bpm-core 0.0.86 → 0.0.88

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.
@@ -25,6 +25,7 @@ export class PreviousRequestsComponent {
25
25
  toasterService;
26
26
  i18n;
27
27
  fb;
28
+ cd;
28
29
  previousRequests = [];
29
30
  destroyRef = inject(DestroyRef);
30
31
  loading;
@@ -56,13 +57,14 @@ export class PreviousRequestsComponent {
56
57
  year: null,
57
58
  month: null
58
59
  };
59
- constructor(dialog, sidenavService, coreService, toasterService, i18n, fb) {
60
+ constructor(dialog, sidenavService, coreService, toasterService, i18n, fb, cd) {
60
61
  this.dialog = dialog;
61
62
  this.sidenavService = sidenavService;
62
63
  this.coreService = coreService;
63
64
  this.toasterService = toasterService;
64
65
  this.i18n = i18n;
65
66
  this.fb = fb;
67
+ this.cd = cd;
66
68
  }
67
69
  /**
68
70
  * Initializes the component on initialization.
@@ -125,6 +127,7 @@ export class PreviousRequestsComponent {
125
127
  else {
126
128
  this.getRequests();
127
129
  }
130
+ this.cd.detectChanges();
128
131
  }
129
132
  /**
130
133
  * Clear all filters and reset the form group to its initial state.
@@ -320,7 +323,7 @@ export class PreviousRequestsComponent {
320
323
  this.ngUnsubscribe.next();
321
324
  this.ngUnsubscribe.complete();
322
325
  }
323
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreviousRequestsComponent, deps: [{ token: i1.MatDialog }, { token: i2.SidenavService }, { token: i2.CoreService }, { token: i3.ToastrService }, { token: i2.CoreI18nService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
326
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreviousRequestsComponent, deps: [{ token: i1.MatDialog }, { token: i2.SidenavService }, { token: i2.CoreService }, { token: i3.ToastrService }, { token: i2.CoreI18nService }, { token: i4.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
324
327
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: PreviousRequestsComponent, isStandalone: true, selector: "app-history", ngImport: i0, template: "<section class=\"main-sidenav history-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('PreviousRequests') }}</h3>\r\n <ds-button class=\"close-sidenav\" (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n\r\n <div class=\"sidenav-body bc-light-gray\">\r\n <section class=\"p-3\">\r\n <header class=\"d-flex align-items-center justify-content-between gap-2 mb-3\">\r\n <h2 class=\"fs-20 fw-medium fc-black mb-0 d-flex align-items-center flex-grow-1 gap-3\">\r\n {{ i18n.translate('AllRequests') }}\r\n <span class=\"title-count fs-14 fw-normal\">{{ previousRequests?.length ? previousRequests?.length : '0' }}</span>\r\n </h2>\r\n <ds-button icon size=\"small\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <ds-icon icon=\"filter\" class=\"fc-coral fs-20\" slot=\"prefix\"></ds-icon>\r\n </ds-button>\r\n <mat-button-toggle-group\r\n class=\"icon-toggle flex-nowrap\"\r\n #pageView=\"matButtonToggleGroup\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n value=\"list\"\r\n >\r\n <mat-button-toggle value=\"card\">\r\n <span class=\"sfi sfi-card fs-20\"></span>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"list\">\r\n <span class=\"sfi sfi-list-dots fs-20\"></span>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </header>\r\n\r\n @if (pageView.value === 'card') {\r\n <div class=\"history-cards-container\">\r\n @if (loading) {\r\n <ng-container>\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of [0,1,2,3]\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3 class=\"loading-bg fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"></h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2 loading-bg\"></span>\r\n <span class=\"fs-12 fw-medium fc-black loading-bg\"></span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of previousRequests\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3\r\n class=\"fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"\r\n (click)=\"viewForm(row?.form?.['formId'])\">{{ row?.form?.['formId'] }}</h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2\">{{ i18n.translate('formTableCreationDate') }}</span>\r\n <span class=\"fs-12 fw-medium fc-black\">{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n @if (pageView.value === 'list') {\r\n <div class=\"table-responsive\">\r\n <table *ngIf=\"previousRequests?.length && !loading\">\r\n <thead>\r\n <tr>\r\n <th>{{ i18n.translate('formTableFormId') }}</th>\r\n <th>{{ i18n.translate('formTableCreationDate') }}</th>\r\n <th>{{ i18n.translate('Status') }}</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody *ngFor=\"let row of previousRequests\">\r\n <tr>\r\n <td>\r\n <span class=\"fw-medium cursor-pointer underline fw-bold \" (click)=\"viewForm(row?.form?.['formId'])\">\r\n {{ row?.form?.['formId'] }}\r\n </span>\r\n </td>\r\n <td>{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</td>\r\n <td>\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ds-loading-table *ngIf=\"loading\" [cols]=\"4\" [rows]=\"4\"></ds-loading-table>\r\n </div>\r\n }\r\n @if (!previousRequests?.length && !loading) {\r\n <ng-container *ngTemplateOutlet=\"emptyMessage\"></ng-container>\r\n }\r\n </section>\r\n </div>\r\n</section>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"isOpen = false\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n>\r\n <form [formGroup]=\"filterFormGroup\">\r\n <div class=\"filter-container\">\r\n <div class=\"popup-header border-bottom pb-2\">\r\n <h3 class=\"fs-16 fc-black fw-medium\">{{ i18n.translate('filters') }}</h3>\r\n </div>\r\n <div class=\"d-flex flex-column gap-4 gap-md-3 filter-section bc-white mt-0 pt-3\">\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"status\"\r\n label=\"{{ i18n.translate('status') }}\"\r\n [options]=\"statuses\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"year\"\r\n label=\"{{ i18n.translate('year') }}\"\r\n [options]=\"yearsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"month\"\r\n label=\"{{ i18n.translate('month') }}\"\r\n [options]=\"monthsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mt-4\">\r\n <ds-button shape=\"outline\" size=\"small\" (click)=\"clearFilters()\">\r\n <span class=\"fs-12\"> {{ i18n.translate('clear') }} </span>\r\n </ds-button>\r\n <ds-button class=\"w-100\" size=\"small\" (click)=\"applyFilters()\">\r\n <span class=\"fs-12\">{{ i18n.translate('applyFilters') }} </span>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</ng-template>\r\n\r\n\r\n <ng-template #emptyMessage>\r\n <ds-message label=\"{{i18n.translate('NoData')}}\"></ds-message>\r\n </ng-template>\r\n", styles: [".history-cards-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem 0}.filter-section ::ng-deep .mat-form-field.mat-primary{margin-bottom:0}.filter-section ::ng-deep .select-form-field{--placeholder-fc: var(--dark-gray)}.filter-section ::ng-deep .select-datepicker{--input-width: 200px}table thead{display:none}:host .mat-button-toggle-group{--toggle-bg: var(--white);box-shadow:var(--box-shadow)}:host table{--th-bg: var(--gray);--td-bg: var(--white);--tr-even-bc: var(--white);--tr-odd-bc: var(--white)}ds-button[square]::part(base){--btn-padding: 0}@media (min-width: 768px){.history-sidenav{--sidenav-width: 800px}}:host ::ng-deep .select-filter{--input-height: 35px;--input-width: 120px;--input-border: 1px solid var(--white) !important;--input-border-focuse: 1px solid var(--white);--input-border-active: 1px solid var(--white);box-shadow:var(--box-shadow);--input-bg: var(--white) !important}:host ::ng-deep .decisions-container{max-height:340px;overflow:auto;scroll-behavior:smooth;transition:scroll-behavior .5s ease-in-out;height:340px}@media (max-width: 768px){:host ::ng-deep .decisions-container{max-height:320px;height:320px}}[dir=rtl] :host ::ng-deep .decisions-container--btn.reRequest{transform:scaleX(-1)}@media (min-width: 1200px){:host ::ng-deep .decisions-container--name,:host ::ng-deep .decisions-container--date{max-width:120px}}@media (min-width: 1200px){[dir=rtl] :host ::ng-deep .decisions-container--name{max-width:initial}}:host ::ng-deep .decisions-container--item{display:flex;align-items:center;gap:1rem;min-height:105px;overflow:hidden;position:relative;cursor:pointer}@media (min-width: 991px){:host ::ng-deep .decisions-container--item h4{max-width:calc(100% - 200px);display:inline-block}}:host ::ng-deep .decisions-container--item:not(:last-child){margin-bottom:.75rem}:host ::ng-deep .decisions-container--item ds-status::part(base){--status-width: 60px}:host ::ng-deep .decisions-container--info span{position:relative;display:flex;align-items:center;gap:.5rem}:host ::ng-deep .decisions-container--info span:not(:first-of-type):before{content:\"\";min-width:3px;width:3px;height:3px;border-radius:50%;background-color:var(--black)}@media (min-width: 991px){:host ::ng-deep .decisions-container--status{position:absolute;top:1rem;right:0}}:host ::ng-deep .decisions-title{display:block;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1}::ng-deep .main-portal mat-form-field.no-padding .mat-form-field-wrapper{padding-bottom:0!important}::ng-deep ds-button[hidden]{display:none!important}ds-button[circle]::part(base){--btn-color: inherit;--btn-border-color: inherit;--btn-bg-color: inherit;--btn-height: 25px;--btn-min-width: 25px}ds-button[circle][color=red]{--btn-bg-color: var(--red)}ds-button[circle][color=red]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=green]{--btn-bg-color: var(--green)}ds-button[circle][color=green]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=yellow]{--btn-bg-color: var(--yellow)}ds-button[circle][color=yellow]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]{--btn-bg-color: var(--coral)}ds-button[circle][color=coral]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]:hover svg path,ds-button[circle][color=coral]:hover svg line{fill:var(--coral)}ds-button[circle][color=orange]{--btn-bg-color: var(--orange)}ds-button[circle][color=orange]:hover{--btn-bg-color: var(--white)}@media (min-width: 991px){.decisions-container--item .decisions-container--status{width:0;transition:var(--default-transition)}}@media (min-width: 991px){.decisions-container--item:hover .decisions-container--status{transition:var(--default-transition);width:auto;height:auto;right:1.5rem}}::ng-deep .mat-tooltip{max-width:187px;background:#1d252d}::ng-deep ds-button.dots::part(base){text-decoration:none;padding:0;min-width:auto}@media (max-width: 300px){::ng-deep ds-button[shape=text]::part(base){padding:0 5px}::ng-deep ds-button.mat-menu-trigger::part(base){padding:0 5px}}.search-form-input{color:var(--black);font-weight:var(--font-medium);padding:0 .75rem;border:none;height:100%}.search-form-input::placeholder{color:var(--dark-gray);font-weight:var(--font-regular)}::ng-deep .select-user-dropdown{min-width:300px}::ng-deep .filter-container{background-color:var(--white);padding:1.5rem;border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i6.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i6.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "pipe", type: StatusStylePipe, name: "statusClass" }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: CustomSearchableComponent, selector: "app-custom-searchable", inputs: ["options", "disabled", "displayedLabel", "key", "floatLabel", "className"], outputs: ["selectedValue", "isLengthGreaterThan4"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }] });
325
328
  }
326
329
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreviousRequestsComponent, decorators: [{
@@ -338,5 +341,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
338
341
  CustomSearchableComponent,
339
342
  CdkConnectedOverlay
340
343
  ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<section class=\"main-sidenav history-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('PreviousRequests') }}</h3>\r\n <ds-button class=\"close-sidenav\" (click)=\"closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n\r\n <div class=\"sidenav-body bc-light-gray\">\r\n <section class=\"p-3\">\r\n <header class=\"d-flex align-items-center justify-content-between gap-2 mb-3\">\r\n <h2 class=\"fs-20 fw-medium fc-black mb-0 d-flex align-items-center flex-grow-1 gap-3\">\r\n {{ i18n.translate('AllRequests') }}\r\n <span class=\"title-count fs-14 fw-normal\">{{ previousRequests?.length ? previousRequests?.length : '0' }}</span>\r\n </h2>\r\n <ds-button icon size=\"small\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <ds-icon icon=\"filter\" class=\"fc-coral fs-20\" slot=\"prefix\"></ds-icon>\r\n </ds-button>\r\n <mat-button-toggle-group\r\n class=\"icon-toggle flex-nowrap\"\r\n #pageView=\"matButtonToggleGroup\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n value=\"list\"\r\n >\r\n <mat-button-toggle value=\"card\">\r\n <span class=\"sfi sfi-card fs-20\"></span>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"list\">\r\n <span class=\"sfi sfi-list-dots fs-20\"></span>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </header>\r\n\r\n @if (pageView.value === 'card') {\r\n <div class=\"history-cards-container\">\r\n @if (loading) {\r\n <ng-container>\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of [0,1,2,3]\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3 class=\"loading-bg fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"></h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2 loading-bg\"></span>\r\n <span class=\"fs-12 fw-medium fc-black loading-bg\"></span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of previousRequests\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3\r\n class=\"fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"\r\n (click)=\"viewForm(row?.form?.['formId'])\">{{ row?.form?.['formId'] }}</h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2\">{{ i18n.translate('formTableCreationDate') }}</span>\r\n <span class=\"fs-12 fw-medium fc-black\">{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n }\r\n @if (pageView.value === 'list') {\r\n <div class=\"table-responsive\">\r\n <table *ngIf=\"previousRequests?.length && !loading\">\r\n <thead>\r\n <tr>\r\n <th>{{ i18n.translate('formTableFormId') }}</th>\r\n <th>{{ i18n.translate('formTableCreationDate') }}</th>\r\n <th>{{ i18n.translate('Status') }}</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody *ngFor=\"let row of previousRequests\">\r\n <tr>\r\n <td>\r\n <span class=\"fw-medium cursor-pointer underline fw-bold \" (click)=\"viewForm(row?.form?.['formId'])\">\r\n {{ row?.form?.['formId'] }}\r\n </span>\r\n </td>\r\n <td>{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</td>\r\n <td>\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ds-loading-table *ngIf=\"loading\" [cols]=\"4\" [rows]=\"4\"></ds-loading-table>\r\n </div>\r\n }\r\n @if (!previousRequests?.length && !loading) {\r\n <ng-container *ngTemplateOutlet=\"emptyMessage\"></ng-container>\r\n }\r\n </section>\r\n </div>\r\n</section>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"isOpen = false\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n>\r\n <form [formGroup]=\"filterFormGroup\">\r\n <div class=\"filter-container\">\r\n <div class=\"popup-header border-bottom pb-2\">\r\n <h3 class=\"fs-16 fc-black fw-medium\">{{ i18n.translate('filters') }}</h3>\r\n </div>\r\n <div class=\"d-flex flex-column gap-4 gap-md-3 filter-section bc-white mt-0 pt-3\">\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"status\"\r\n label=\"{{ i18n.translate('status') }}\"\r\n [options]=\"statuses\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"year\"\r\n label=\"{{ i18n.translate('year') }}\"\r\n [options]=\"yearsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"month\"\r\n label=\"{{ i18n.translate('month') }}\"\r\n [options]=\"monthsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mt-4\">\r\n <ds-button shape=\"outline\" size=\"small\" (click)=\"clearFilters()\">\r\n <span class=\"fs-12\"> {{ i18n.translate('clear') }} </span>\r\n </ds-button>\r\n <ds-button class=\"w-100\" size=\"small\" (click)=\"applyFilters()\">\r\n <span class=\"fs-12\">{{ i18n.translate('applyFilters') }} </span>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</ng-template>\r\n\r\n\r\n <ng-template #emptyMessage>\r\n <ds-message label=\"{{i18n.translate('NoData')}}\"></ds-message>\r\n </ng-template>\r\n", styles: [".history-cards-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem 0}.filter-section ::ng-deep .mat-form-field.mat-primary{margin-bottom:0}.filter-section ::ng-deep .select-form-field{--placeholder-fc: var(--dark-gray)}.filter-section ::ng-deep .select-datepicker{--input-width: 200px}table thead{display:none}:host .mat-button-toggle-group{--toggle-bg: var(--white);box-shadow:var(--box-shadow)}:host table{--th-bg: var(--gray);--td-bg: var(--white);--tr-even-bc: var(--white);--tr-odd-bc: var(--white)}ds-button[square]::part(base){--btn-padding: 0}@media (min-width: 768px){.history-sidenav{--sidenav-width: 800px}}:host ::ng-deep .select-filter{--input-height: 35px;--input-width: 120px;--input-border: 1px solid var(--white) !important;--input-border-focuse: 1px solid var(--white);--input-border-active: 1px solid var(--white);box-shadow:var(--box-shadow);--input-bg: var(--white) !important}:host ::ng-deep .decisions-container{max-height:340px;overflow:auto;scroll-behavior:smooth;transition:scroll-behavior .5s ease-in-out;height:340px}@media (max-width: 768px){:host ::ng-deep .decisions-container{max-height:320px;height:320px}}[dir=rtl] :host ::ng-deep .decisions-container--btn.reRequest{transform:scaleX(-1)}@media (min-width: 1200px){:host ::ng-deep .decisions-container--name,:host ::ng-deep .decisions-container--date{max-width:120px}}@media (min-width: 1200px){[dir=rtl] :host ::ng-deep .decisions-container--name{max-width:initial}}:host ::ng-deep .decisions-container--item{display:flex;align-items:center;gap:1rem;min-height:105px;overflow:hidden;position:relative;cursor:pointer}@media (min-width: 991px){:host ::ng-deep .decisions-container--item h4{max-width:calc(100% - 200px);display:inline-block}}:host ::ng-deep .decisions-container--item:not(:last-child){margin-bottom:.75rem}:host ::ng-deep .decisions-container--item ds-status::part(base){--status-width: 60px}:host ::ng-deep .decisions-container--info span{position:relative;display:flex;align-items:center;gap:.5rem}:host ::ng-deep .decisions-container--info span:not(:first-of-type):before{content:\"\";min-width:3px;width:3px;height:3px;border-radius:50%;background-color:var(--black)}@media (min-width: 991px){:host ::ng-deep .decisions-container--status{position:absolute;top:1rem;right:0}}:host ::ng-deep .decisions-title{display:block;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1}::ng-deep .main-portal mat-form-field.no-padding .mat-form-field-wrapper{padding-bottom:0!important}::ng-deep ds-button[hidden]{display:none!important}ds-button[circle]::part(base){--btn-color: inherit;--btn-border-color: inherit;--btn-bg-color: inherit;--btn-height: 25px;--btn-min-width: 25px}ds-button[circle][color=red]{--btn-bg-color: var(--red)}ds-button[circle][color=red]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=green]{--btn-bg-color: var(--green)}ds-button[circle][color=green]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=yellow]{--btn-bg-color: var(--yellow)}ds-button[circle][color=yellow]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]{--btn-bg-color: var(--coral)}ds-button[circle][color=coral]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]:hover svg path,ds-button[circle][color=coral]:hover svg line{fill:var(--coral)}ds-button[circle][color=orange]{--btn-bg-color: var(--orange)}ds-button[circle][color=orange]:hover{--btn-bg-color: var(--white)}@media (min-width: 991px){.decisions-container--item .decisions-container--status{width:0;transition:var(--default-transition)}}@media (min-width: 991px){.decisions-container--item:hover .decisions-container--status{transition:var(--default-transition);width:auto;height:auto;right:1.5rem}}::ng-deep .mat-tooltip{max-width:187px;background:#1d252d}::ng-deep ds-button.dots::part(base){text-decoration:none;padding:0;min-width:auto}@media (max-width: 300px){::ng-deep ds-button[shape=text]::part(base){padding:0 5px}::ng-deep ds-button.mat-menu-trigger::part(base){padding:0 5px}}.search-form-input{color:var(--black);font-weight:var(--font-medium);padding:0 .75rem;border:none;height:100%}.search-form-input::placeholder{color:var(--dark-gray);font-weight:var(--font-regular)}::ng-deep .select-user-dropdown{min-width:300px}::ng-deep .filter-container{background-color:var(--white);padding:1.5rem;border-radius:4px}\n"] }]
341
- }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.SidenavService }, { type: i2.CoreService }, { type: i3.ToastrService }, { type: i2.CoreI18nService }, { type: i4.FormBuilder }] });
342
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvcHJldmlvdXMtcmVxdWVzdHMvcHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvcHJldmlvdXMtcmVxdWVzdHMvcHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBWSxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQWMsV0FBVyxFQUFhLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRWpFLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFN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QUM7dUdBblVVLHlCQUF5QjsyRkFBekIseUJBQXlCLHVFQ3RDdEMsd3pPQTJLQSw0NElEdEpJLFlBQVkseWRBQ1osYUFBYSw4QkFDYixZQUFZLDhCQUNaLGVBQWUsOEJBQ2YsZUFBZSw4QkFDZixtQkFBbUIsNHJCQUNuQixxQkFBcUIsa29CQUNyQixlQUFlLG9EQUNmLGdCQUFnQix1SUFDaEIseUJBQXlCLDJNQUN6QixtQkFBbUI7OzJGQU9WLHlCQUF5QjtrQkF0QnJDLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FFUDt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQix5QkFBeUI7d0JBQ3pCLG1CQUFtQjtxQkFFcEIsV0FHUSxDQUFDLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIERlc3Ryb3lSZWYsIGluamVjdCwgT25Jbml0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge01hdE1lbnVNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7TWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yc30gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7TWF0QnV0dG9uVG9nZ2xlTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZVwiO1xyXG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtDb3JlSTE4blNlcnZpY2UsIENvcmVTZXJ2aWNlLCBTaWRlbmF2U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCB7U3RhdHVzU3R5bGVQaXBlfSBmcm9tIFwiLi4vLi4vLi4vcGlwZXMvc3RhdHVzLXN0eWxlLnBpcGVcIjtcclxuaW1wb3J0IHtUb2FzdHJTZXJ2aWNlfSBmcm9tIFwibmd4LXRvYXN0clwiO1xyXG5pbXBvcnQge0Nka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW59IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5pbXBvcnQge0N1c3RvbVNlYXJjaGFibGVDb21wb25lbnR9IGZyb20gXCIuLi8uLi9zaGFyZWQtY29tcG9uZW50c1wiO1xyXG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XHJcbmltcG9ydCB7U3ViamVjdH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWhpc3RvcnknLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcblxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxyXG4gICAgU3RhdHVzU3R5bGVQaXBlLFxyXG4gICAgQ2RrT3ZlcmxheU9yaWdpbixcclxuICAgIEN1c3RvbVNlYXJjaGFibGVDb21wb25lbnQsXHJcbiAgICBDZGtDb25uZWN0ZWRPdmVybGF5XHJcblxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ByZXZpb3VzLXJlcXVlc3RzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wcmV2aW91cy1yZXF1ZXN0cy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByZXZpb3VzUmVxdWVzdHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIHByZXZpb3VzUmVxdWVzdHM6IGFueVtdID0gW11cclxuICBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuICBsb2FkaW5nOiBib29sZWFuXHJcbiAgZmlsdGVyRm9ybUdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmdcclxuICBpc09wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBtb250aHNPcHRpb25zID0gW1xyXG4gICAge2tleTogJzEnLCB2YWx1ZTogJzEnfSxcclxuICAgIHtrZXk6ICcyJywgdmFsdWU6ICcyJ30sXHJcbiAgICB7a2V5OiAnMycsIHZhbHVlOiAnMyd9LFxyXG4gICAge2tleTogJzQnLCB2YWx1ZTogJzQnfSxcclxuICAgIHtrZXk6ICc1JywgdmFsdWU6ICc1J30sXHJcbiAgICB7a2V5OiAnNicsIHZhbHVlOiAnNid9LFxyXG4gICAge2tleTogJzcnLCB2YWx1ZTogJzcnfSxcclxuICAgIHtrZXk6ICc4JywgdmFsdWU6ICc4J30sXHJcbiAgICB7a2V5OiAnOScsIHZhbHVlOiAnOSd9LFxyXG4gICAge2tleTogJzEwJywgdmFsdWU6ICcxMCd9LFxyXG4gICAge2tleTogJzExJywgdmFsdWU6ICcxMSd9LFxyXG4gICAge2tleTogJzEyJywgdmFsdWU6ICcxMid9XHJcbiAgXTtcclxuICB5ZWFyc09wdGlvbnMgPSBbXHJcbiAgICB7a2V5OiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksIHZhbHVlOiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCl9LFxyXG4gICAge2tleTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gMSwgdmFsdWU6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDF9LFxyXG4gICAge2tleTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gMiwgdmFsdWU6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDJ9LFxyXG4gICAge2tleTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gMywgdmFsdWU6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDN9XTtcclxuXHJcbiAgc3RhdHVzZXMgPSBbXVxyXG4gIHNlYXJjaERhdGEgPSB7XHJcbiAgICB5ZWFyOiBudWxsLFxyXG4gICAgbW9udGg6IG51bGxcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgICAgICAgICAgICBwdWJsaWMgcmVhZG9ubHkgc2lkZW5hdlNlcnZpY2U6IFNpZGVuYXZTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyBjb3JlU2VydmljZTogQ29yZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdGVyU2VydmljZTogVG9hc3RyU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0aGUgY29tcG9uZW50IG9uIGluaXRpYWxpemF0aW9uLlxyXG4gICAqIEl0IGNyZWF0ZXMgYSBmb3JtIGFuZCBzZXRzIHRoZSBhdmFpbGFibGUgc3RhdHVzZXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgICB0aGlzLnN0YXR1c2VzID0gW1xyXG4gICAgICB7a2V5OiBcIkFQUFJPVkVEXCIsIHZhbHVlOiB0aGlzLmkxOG4ubGFuZ3VhZ2UgPT0gJ2VuJyA/IFwiQXBwcm92ZVwiIDogXCLZhdmI2KfZgdmC2KlcIn0sXHJcbiAgICAgIHtrZXk6IFwiUkVKRUNURURcIiwgdmFsdWU6IHRoaXMuaTE4bi5sYW5ndWFnZSA9PSAnZW4nID8gXCJSZWplY3RcIiA6IFwi2YXYsdmB2YjYtlwifSxcclxuICAgICAge2tleTogXCJQRU5ESU5HXCIsIHZhbHVlOiB0aGlzLmkxOG4ubGFuZ3VhZ2UgPT0gJ2VuJyA/IFwiUGVuZGluZ1wiIDogXCLZhdi52YTZglwifVxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgLy8gdmFyaWFibGVzIHRvIG1hbmFnZSBzdWJzY3JpcHRpb25cclxuICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuLy8gbmV3IGhlbHBlciBtZXRob2RzIGZvciBmb3JtIGNvbnRyb2xzXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIGZvcm0gY29udHJvbHMgZm9yIHRoZSBjdXJyZW50IG1vbnRoIGFuZCB5ZWFyLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7b2JqZWN0fSBBbiBvYmplY3QgY29udGFpbmluZyBmb3JtIGNvbnRyb2xzIGZvciB0aGUgY3VycmVudCBtb250aCBhbmQgeWVhci5cclxuICAgKiAgICAgICAgICAgICAgICAgIC0gbW9udGg6IEZvcm1Db250cm9sIGZvciB0aGUgY3VycmVudCBtb250aCB3aXRoIFZhbGlkYXRvcnMgcmVxdWlyZWRcclxuICAgKiAgICAgICAgICAgICAgICAgIC0geWVhcjogRm9ybUNvbnRyb2wgZm9yIHRoZSBjdXJyZW50IHllYXIgd2l0aCBWYWxpZGF0b3JzIHJlcXVpcmVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjdXJyZW50RGF0ZUNvbnRyb2woKTogeyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB9IHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCkgKyAxO1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtb250aDogbmV3IEZvcm1Db250cm9sKHtrZXk6IG1vbnRoLCB2YWx1ZTogbW9udGh9LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgeWVhcjogbmV3IEZvcm1Db250cm9sKHtrZXk6IHllYXIsIHZhbHVlOiB5ZWFyfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgYSBmb3JtIGdyb3VwIGZvciBmaWx0ZXJpbmcgZGF0YS5cclxuICAgKiBJdCBjcmVhdGVzIGZvcm0gY29udHJvbHMgZm9yIHRoZSBjdXJyZW50IGRhdGUgYW5kIHN0YXR1cy5cclxuICAgKiBBbHNvIHNldHMgdXAgYSBzdWJzY3JpcHRpb24gdG8gbGlzdGVuIGZvciBjaGFuZ2VzIGluIHRoZSBzdGF0dXMgY29udHJvbC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgY3JlYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIC4uLnRoaXMuY3VycmVudERhdGVDb250cm9sKCksXHJcbiAgICAgIHN0YXR1czogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ3N0YXR1cycpLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG4gICAgKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLmZpbHRlclN0YXR1cygpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcmZvcm0gaW5pdGlhbGl6YXRpb24gYWZ0ZXIgQW5ndWxhciBoYXMgZnVsbHkgaW5pdGlhbGl6ZWQgYSBjb21wb25lbnQncyB2aWV3LlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5jb3JlU2VydmljZS5oaXN0b3J5RGF0YUxvYWRlZCkge1xyXG4gICAgICB0aGlzLnByZXZpb3VzUmVxdWVzdHMgPSB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdldFJlcXVlc3RzKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIGFsbCBmaWx0ZXJzIGFuZCByZXNldCB0aGUgZm9ybSBncm91cCB0byBpdHMgaW5pdGlhbCBzdGF0ZS5cclxuICAgKiBTZXRzIHRoZSBtb250aCBhbmQgeWVhciBmaWx0ZXJzIHRvIHRoZSBjdXJyZW50IGRhdGUncyBtb250aCBhbmQgeWVhciByZXNwZWN0aXZlbHkuXHJcbiAgICogU2V0cyB0aGUgc3RhdHVzIGZpbHRlciB0byBhbiBlbXB0eSBzdHJpbmcuXHJcbiAgICogVG9nZ2xlcyB0aGUgaXNPcGVuIHByb3BlcnR5IGFuZCB0cmlnZ2VycyB0aGUgZmlsdGVyU3RhdHVzIG1ldGhvZC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgY2xlYXJGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAucmVzZXQoKVxyXG4gICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdtb250aCcpLnNldFZhbHVlKHtrZXk6IG5ldyBEYXRlKCkuZ2V0VVRDTW9udGgoKSArIDEsIHZhbHVlOiBuZXcgRGF0ZSgpLmdldFVUQ01vbnRoKCkgKyAxfSlcclxuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgneWVhcicpLnNldFZhbHVlKHtrZXk6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSwgdmFsdWU6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSArIDF9KVxyXG4gICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdzdGF0dXMnKS5zZXRWYWx1ZSgnJylcclxuICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuXHJcbiAgICB0aGlzLmZpbHRlclN0YXR1cygpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUb2dnbGVzIHRoZSBpc09wZW4gcHJvcGVydHkgYW5kIHRyaWdnZXJzIHRoZSBnZXRSZXF1ZXN0cygpIG1ldGhvZC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgYXBwbHlGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW5cclxuICAgIHRoaXMuZ2V0UmVxdWVzdHMoKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHJlcXVlc3QgZGF0YSBiYXNlZCBvbiBmb3JtIHZhbHVlcy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgZ2V0UmVxdWVzdHMoKSB7XHJcbiAgICBjb25zdCBmb3JtVmFsdWVzID0gdGhpcy5nZXRGb3JtVmFsdWVzKClcclxuICAgIGlmICh0aGlzLmFyZUZvcm1WYWx1ZXNFcXVhbCh0aGlzLnNlYXJjaERhdGEsIGZvcm1WYWx1ZXMpKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyU3RhdHVzKClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudXBkYXRlU2VhcmNoRGF0YShmb3JtVmFsdWVzKVxyXG4gICAgICB0aGlzLnJlcXVlc3RDb3JlRGF0YSgpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGZvcm0gdmFsdWVzIGluY2x1ZGluZyB0aGUgeWVhciBhbmQgbW9udGguXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtPYmplY3R9IFJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHllYXIgYW5kIG1vbnRoIHZhbHVlcy5cclxuICAgKi9cclxuICBnZXRGb3JtVmFsdWVzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgeWVhcjogdGhpcy5nZXRZZWFyVmFsdWUoKSxcclxuICAgICAgbW9udGg6IHRoaXMuZ2V0TW9udGhWYWx1ZSgpLFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBzZWxlY3RlZCB5ZWFyIHZhbHVlIGZyb20gdGhlIGZpbHRlciBmb3JtIGdyb3VwLlxyXG4gICAqXHJcbiAgICogQHJldHVybiBUaGUgc2VsZWN0ZWQgeWVhciB2YWx1ZSBhcyBhIG51bWJlci5cclxuICAgKi9cclxuICBwcml2YXRlIGdldFllYXJWYWx1ZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgneWVhcicpLnZhbHVlPy5rZXk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIG1vbnRoIHZhbHVlIGZyb20gdGhlIGZpbHRlciBmb3JtIGdyb3VwLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgbW9udGggdmFsdWUgcmV0cmlldmVkIGZyb20gdGhlIGZvcm0gZ3JvdXAuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRNb250aFZhbHVlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdtb250aCcpLnZhbHVlPy5rZXk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVja3MgaWYgdGhlIHllYXIgYW5kIG1vbnRoIHZhbHVlcyBvZiB0d28gZm9ybSBvYmplY3RzIGFyZSBlcXVhbC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBmaXJzdCAtIFRoZSBmaXJzdCBmb3JtIG9iamVjdCB0byBjb21wYXJlLlxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBzZWNvbmQgLSBUaGUgc2Vjb25kIGZvcm0gb2JqZWN0IHRvIGNvbXBhcmUuXHJcbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gdHJ1ZSBpZiB0aGUgeWVhciBhbmQgbW9udGggdmFsdWVzIGFyZSBlcXVhbCwgb3RoZXJ3aXNlIGZhbHNlLlxyXG4gICAqL1xyXG4gIGFyZUZvcm1WYWx1ZXNFcXVhbChmaXJzdCwgc2Vjb25kKSB7XHJcbiAgICByZXR1cm4gZmlyc3QueWVhciA9PSBzZWNvbmQueWVhciAmJiBmaXJzdC5tb250aCA9PSBzZWNvbmQubW9udGhcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSB0aGUgc2VhcmNoIGRhdGEgd2l0aCB0aGUgcHJvdmlkZWQgZGF0YS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gVGhlIG5ldyBzZWFyY2ggZGF0YSB0byB1cGRhdGUuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqL1xyXG4gIHVwZGF0ZVNlYXJjaERhdGEoZGF0YSkge1xyXG4gICAgdGhpcy5zZWFyY2hEYXRhID0gZGF0YVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VuZHMgYSByZXF1ZXN0IHRvIHJldHJpZXZlIGNvcmUgZGF0YSB1c2luZyB0aGUgQ29yZSBTZXJ2aWNlIEFQSS5cclxuICAgKiBJbml0aWFsaXplcyBsb2FkaW5nIGFuZCByZXF1ZXN0cyBiZWZvcmUgbWFraW5nIHRoZSBjYWxsLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICByZXF1ZXN0Q29yZURhdGEoKSB7XHJcbiAgICB0aGlzLmluaXRpYWxpemVMb2FkaW5nQW5kUmVxdWVzdHMoKVxyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxyXG4gICAgdGhpcy5jb3JlU2VydmljZS5oaXN0b3J5RGF0YSA9IFtdXHJcbiAgICB0aGlzLnByZXZpb3VzUmVxdWVzdHMgPSBbXVxyXG4gICAgdGhpcy5jb3JlU2VydmljZS5teVJlcXVlc3RzKHRoaXMuc2VhcmNoRGF0YSkucGlwZShcclxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcclxuICAgICkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhID0gcmVzcG9uc2UuaGlzdG9yeTtcclxuICAgICAgICB0aGlzLnByZXZpb3VzUmVxdWVzdHMgPSB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhXHJcbiAgICAgICAgdGhpcy5jb3JlU2VydmljZS5oaXN0b3J5RGF0YUxvYWRlZCA9IHRydWVcclxuICAgICAgICB0aGlzLmZpbHRlclN0YXR1cygpXHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnI/LmVycm9yPy5tZXRhPy5tZXNzYWdlcz8uWycwJ10/Lm1lc3NhZ2U7XHJcbiAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcih0aGlzLmVycm9yTWVzc2FnZSlcclxuICAgICAgfSxcclxuICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgbG9hZGluZyBhbmQgcmVxdWVzdHMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqL1xyXG4gIGluaXRpYWxpemVMb2FkaW5nQW5kUmVxdWVzdHMoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXHJcbiAgICB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhID0gW11cclxuICAgIHRoaXMucHJldmlvdXNSZXF1ZXN0cyA9IFtdXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHN1Y2Nlc3NmdWwgcmVzcG9uc2UgZnJvbSBhIHJlcXVlc3QuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge09iamVjdH0gcmVzcG9uc2UgLSBUaGUgcmVzcG9uc2Ugb2JqZWN0IGNvbnRhaW5pbmcgaGlzdG9yeSBkYXRhLlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgaGFuZGxlUmVxdWVzdFN1Y2Nlc3MocmVzcG9uc2UpIHtcclxuICAgIHRoaXMuY29yZVNlcnZpY2UuaGlzdG9yeURhdGEgPSByZXNwb25zZS5oaXN0b3J5XHJcbiAgICB0aGlzLnByZXZpb3VzUmVxdWVzdHMgPSB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhXHJcbiAgICB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhTG9hZGVkID0gdHJ1ZVxyXG4gICAgdGhpcy5maWx0ZXJTdGF0dXMoKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgZXJyb3IgcmVjZWl2ZWQgZnJvbSBhIHJlcXVlc3RcclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBlcnIgLSBUaGUgZXJyb3Igb2JqZWN0IGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVycm9yXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBoYW5kbGVSZXF1ZXN0RXJyb3IoZXJyKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnI/LmVycm9yPy5tZXRhPy5tZXNzYWdlcz8uWycwJ10/Lm1lc3NhZ2VcclxuICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IodGhpcy5lcnJvck1lc3NhZ2UpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaWx0ZXJzIHRoZSBwcmV2aW91cyByZXF1ZXN0cyBiYXNlZCBvbiB0aGUgc3RhdHVzIHNlbGVjdGVkIGluIHRoZSBmaWx0ZXIgZm9ybS5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgZmlsdGVyU3RhdHVzKCkge1xyXG4gICAgY29uc3Qgc3RhdHVzS2V5ID0gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdzdGF0dXMnKS52YWx1ZT8ua2V5O1xyXG4gICAgdGhpcy5wcmV2aW91c1JlcXVlc3RzID0gdGhpcy5jb3JlU2VydmljZS5oaXN0b3J5RGF0YVxyXG4gICAgbGV0IGZpbHRlckRhdGE6IGFueVtdO1xyXG5cclxuICAgIGlmIChzdGF0dXNLZXkpIHtcclxuICAgICAgZmlsdGVyRGF0YSA9IHRoaXMucHJldmlvdXNSZXF1ZXN0cy5maWx0ZXIoKHJlcXVlc3QpID0+IHJlcXVlc3QuZm9ybT8uWydmb3JtU3RhdHVzJ10/LmtleSA9PT0gc3RhdHVzS2V5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZpbHRlckRhdGEgPSB0aGlzLnByZXZpb3VzUmVxdWVzdHM7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5wcmV2aW91c1JlcXVlc3RzID0gZmlsdGVyRGF0YTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wZW5zIGEgZm9ybSBpbiBhIG5ldyB3aW5kb3cgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGZvcm0gSUQuXHJcbiAgICpcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZm9ybUlkIC0gVGhlIElEIG9mIHRoZSBmb3JtIHRvIGJlIG9wZW5lZC5cclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqL1xyXG4gIHZpZXdGb3JtKGZvcm1JZDogc3RyaW5nKSB7XHJcbiAgICBpZiAoZm9ybUlkKSB7XHJcbiAgICAgIHdpbmRvdy5vcGVuKCcvZ3JvdXAvaS1nYXRlL3dtLWJwbS9mb3Jtcz9mb3JtSWQ9JyArIGZvcm1JZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIHNpZGUgbmF2aWdhdGlvbiBwYW5lbC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgY2xvc2VTaWRlbmF2KCkge1xyXG4gICAgdGhpcy5zaWRlbmF2U2VydmljZS5wdWJsaXNoKCdjbG9zZScsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRW1pdCB0aGUgdmFsdWUgdG8gY29tcGxldGUgYWxsIGFjdGl2ZSBzdWJzY3JpcHRpb25zXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gZW1pdCB0aGUgdmFsdWUgdG8gY29tcGxldGUgYWxsIGFjdGl2ZSBzdWJzY3JpcHRpb25zXHJcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cIm1haW4tc2lkZW5hdiBoaXN0b3J5LXNpZGVuYXZcIj5cclxuICA8ZGl2IGNsYXNzPVwic2lkZW5hdi10aXRsZVwiPlxyXG4gICAgPGgzPnt7IGkxOG4udHJhbnNsYXRlKCdQcmV2aW91c1JlcXVlc3RzJykgfX08L2gzPlxyXG4gICAgPGRzLWJ1dHRvbiBjbGFzcz1cImNsb3NlLXNpZGVuYXZcIiAoY2xpY2spPVwiY2xvc2VTaWRlbmF2KClcIiBpY29uPlxyXG4gICAgICA8ZHMtaWNvbiBpY29uPVwiY2xvc2VcIiBjbGFzcz1cImZzLTIwIGZjLWJsYWNrXCI+PC9kcy1pY29uPlxyXG4gICAgPC9kcy1idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJzaWRlbmF2LWJvZHkgYmMtbGlnaHQtZ3JheVwiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJwLTNcIj5cclxuICAgICAgPGhlYWRlciBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gZ2FwLTIgbWItM1wiPlxyXG4gICAgICAgIDxoMiBjbGFzcz1cImZzLTIwIGZ3LW1lZGl1bSBmYy1ibGFjayBtYi0wIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1ncm93LTEgZ2FwLTNcIj5cclxuICAgICAgICAgIHt7IGkxOG4udHJhbnNsYXRlKCdBbGxSZXF1ZXN0cycpIH19XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlLWNvdW50IGZzLTE0IGZ3LW5vcm1hbFwiPnt7IHByZXZpb3VzUmVxdWVzdHM/Lmxlbmd0aCA/IHByZXZpb3VzUmVxdWVzdHM/Lmxlbmd0aCA6ICcwJyB9fTwvc3Bhbj5cclxuICAgICAgICA8L2gyPlxyXG4gICAgICAgIDxkcy1idXR0b24gaWNvbiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwiaXNPcGVuID0gIWlzT3BlblwiIGNka092ZXJsYXlPcmlnaW4gI3RyaWdnZXI9XCJjZGtPdmVybGF5T3JpZ2luXCI+XHJcbiAgICAgICAgICA8ZHMtaWNvbiBpY29uPVwiZmlsdGVyXCIgY2xhc3M9XCJmYy1jb3JhbCBmcy0yMFwiIHNsb3Q9XCJwcmVmaXhcIj48L2RzLWljb24+XHJcbiAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwXHJcbiAgICAgICAgICBjbGFzcz1cImljb24tdG9nZ2xlIGZsZXgtbm93cmFwXCJcclxuICAgICAgICAgICNwYWdlVmlldz1cIm1hdEJ1dHRvblRvZ2dsZUdyb3VwXCJcclxuICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgdmFsdWU9XCJsaXN0XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJjYXJkXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2ZpIHNmaS1jYXJkIGZzLTIwXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cImxpc3RcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZmkgc2ZpLWxpc3QtZG90cyBmcy0yMFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cclxuICAgICAgPC9oZWFkZXI+XHJcblxyXG4gICAgICBAaWYgKHBhZ2VWaWV3LnZhbHVlID09PSAnY2FyZCcpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGlzdG9yeS1jYXJkcy1jb250YWluZXJcIj5cclxuICAgICAgICAgIEBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTQgbGluZS1oZWlnaHQtMSBiYy13aGl0ZSByYWRpdXMtNiBib3gtc2hhZG93XCIgKm5nRm9yPVwibGV0IHJvdyBvZiBbMCwxLDIsM11cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibG9hZGluZy1iZyBmcy0xNiBmdy1tZWRpdW0gZmxleC1ncm93LTEgbWItMCBjdXJzb3ItcG9pbnRlciB1bmRlcmxpbmUgZnctYm9sZFwiPjwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29sLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTExIGZjLWRhcmstZ3JheSBtYi0yIGxvYWRpbmctYmdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMiBmdy1tZWRpdW0gZmMtYmxhY2sgbG9hZGluZy1iZ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29sLTYganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtNCBsaW5lLWhlaWdodC0xIGJjLXdoaXRlIHJhZGl1cy02IGJveC1zaGFkb3dcIiAqbmdGb3I9XCJsZXQgcm93IG9mIHByZXZpb3VzUmVxdWVzdHNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8aDNcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmcy0xNiBmdy1tZWRpdW0gZmxleC1ncm93LTEgbWItMCBjdXJzb3ItcG9pbnRlciB1bmRlcmxpbmUgZnctYm9sZFwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ2aWV3Rm9ybShyb3c/LmZvcm0/LlsnZm9ybUlkJ10pXCI+e3sgcm93Py5mb3JtPy5bJ2Zvcm1JZCddIH19PC9oMz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2wtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTExIGZjLWRhcmstZ3JheSBtYi0yXCI+e3sgaTE4bi50cmFuc2xhdGUoJ2Zvcm1UYWJsZUNyZWF0aW9uRGF0ZScpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTEyIGZ3LW1lZGl1bSBmYy1ibGFja1wiPnt7IHJvdz8uZm9ybT8uWydjcmVhdGlvbkRhdGUnXSB8IGRhdGU6ICdkZC9NTS95eXl5IGhoOm1tIGEnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvbC02IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtZW5kXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZHMtc3RhdHVzIFthdHRyLnN0YXR1c109XCJyb3c/LmZvcm0/LmZvcm1TdGF0dXM/LmtleSB8IHN0YXR1c0NsYXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgcm93Py5mb3JtPy5mb3JtU3RhdHVzPy52YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2RzLXN0YXR1cz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChwYWdlVmlldy52YWx1ZSA9PT0gJ2xpc3QnKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgIDx0YWJsZSAqbmdJZj1cInByZXZpb3VzUmVxdWVzdHM/Lmxlbmd0aCAmJiAhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGg+e3sgaTE4bi50cmFuc2xhdGUoJ2Zvcm1UYWJsZUZvcm1JZCcpIH19PC90aD5cclxuICAgICAgICAgICAgICA8dGg+e3sgaTE4bi50cmFuc2xhdGUoJ2Zvcm1UYWJsZUNyZWF0aW9uRGF0ZScpIH19PC90aD5cclxuICAgICAgICAgICAgICA8dGg+e3sgaTE4bi50cmFuc2xhdGUoJ1N0YXR1cycpIH19PC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuXHJcbiAgICAgICAgICAgIDx0Ym9keSAqbmdGb3I9XCJsZXQgcm93IG9mIHByZXZpb3VzUmVxdWVzdHNcIj5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtIGN1cnNvci1wb2ludGVyIHVuZGVybGluZSBmdy1ib2xkIFwiIChjbGljayk9XCJ2aWV3Rm9ybShyb3c/LmZvcm0/LlsnZm9ybUlkJ10pXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHJvdz8uZm9ybT8uWydmb3JtSWQnXSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPnt7IHJvdz8uZm9ybT8uWydjcmVhdGlvbkRhdGUnXSAgfCBkYXRlOiAnZGQvTU0veXl5eSBoaDptbSBhJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRzLXN0YXR1cyBbYXR0ci5zdGF0dXNdPVwicm93Py5mb3JtPy5mb3JtU3RhdHVzPy5rZXkgfCBzdGF0dXNDbGFzc1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eyByb3c/LmZvcm0/LmZvcm1TdGF0dXM/LnZhbHVlIH19XHJcbiAgICAgICAgICAgICAgICA8L2RzLXN0YXR1cz5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgIDxkcy1sb2FkaW5nLXRhYmxlICpuZ0lmPVwibG9hZGluZ1wiIFtjb2xzXT1cIjRcIiBbcm93c109XCI0XCI+PC9kcy1sb2FkaW5nLXRhYmxlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoIXByZXZpb3VzUmVxdWVzdHM/Lmxlbmd0aCAmJiAhbG9hZGluZykge1xyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eU1lc3NhZ2VcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgfVxyXG4gICAgPC9zZWN0aW9uPlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+XHJcblxyXG48bmctdGVtcGxhdGVcclxuICBjZGtDb25uZWN0ZWRPdmVybGF5XHJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcF09XCJ0cnVlXCJcclxuICAoYmFja2Ryb3BDbGljayk9XCJpc09wZW4gPSBmYWxzZVwiXHJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlHcm93QWZ0ZXJPcGVuXT1cInRydWVcIlxyXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInRyaWdnZXJcIlxyXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJpc09wZW5cIlxyXG4+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtR3JvdXBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1oZWFkZXIgYm9yZGVyLWJvdHRvbSBwYi0yXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiZnMtMTYgZmMtYmxhY2sgZnctbWVkaXVtXCI+e3sgaTE4bi50cmFuc2xhdGUoJ2ZpbHRlcnMnKSB9fTwvaDM+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC00IGdhcC1tZC0zIGZpbHRlci1zZWN0aW9uIGJjLXdoaXRlIG10LTAgcHQtM1wiPlxyXG5cclxuICAgICAgICA8YXBwLWN1c3RvbS1zZWFyY2hhYmxlXHJcbiAgICAgICAgICBjbGFzcz1cInNlY3Rpb24taXRlbVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGF0dXNcIlxyXG4gICAgICAgICAgbGFiZWw9XCJ7eyBpMThuLnRyYW5zbGF0ZSgnc3RhdHVzJykgfX1cIlxyXG4gICAgICAgICAgW29wdGlvbnNdPVwic3RhdHVzZXNcIlxyXG4gICAgICAgICAgW2Rpc3BsYXllZExhYmVsXT1cIid2YWx1ZSdcIlxyXG4gICAgICAgICAgW2tleV09XCIna2V5J1wiPlxyXG4gICAgICAgIDwvYXBwLWN1c3RvbS1zZWFyY2hhYmxlPlxyXG5cclxuICAgICAgICA8YXBwLWN1c3RvbS1zZWFyY2hhYmxlXHJcbiAgICAgICAgICBjbGFzcz1cInNlY3Rpb24taXRlbVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ5ZWFyXCJcclxuICAgICAgICAgIGxhYmVsPVwie3sgaTE4bi50cmFuc2xhdGUoJ3llYXInKSB9fVwiXHJcbiAgICAgICAgICBbb3B0aW9uc109XCJ5ZWFyc09wdGlvbnNcIlxyXG4gICAgICAgICAgW2Rpc3BsYXllZExhYmVsXT1cIid2YWx1ZSdcIlxyXG4gICAgICAgICAgW2tleV09XCIna2V5J1wiPlxyXG4gICAgICAgIDwvYXBwLWN1c3RvbS1zZWFyY2hhYmxlPlxyXG5cclxuICAgICAgICA8YXBwLWN1c3RvbS1zZWFyY2hhYmxlXHJcbiAgICAgICAgICBjbGFzcz1cInNlY3Rpb24taXRlbVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtb250aFwiXHJcbiAgICAgICAgICBsYWJlbD1cInt7IGkxOG4udHJhbnNsYXRlKCdtb250aCcpIH19XCJcclxuICAgICAgICAgIFtvcHRpb25zXT1cIm1vbnRoc09wdGlvbnNcIlxyXG4gICAgICAgICAgW2Rpc3BsYXllZExhYmVsXT1cIid2YWx1ZSdcIlxyXG4gICAgICAgICAgW2tleV09XCIna2V5J1wiPlxyXG4gICAgICAgIDwvYXBwLWN1c3RvbS1zZWFyY2hhYmxlPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMyBtdC00XCI+XHJcbiAgICAgICAgICA8ZHMtYnV0dG9uIHNoYXBlPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJjbGVhckZpbHRlcnMoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTEyXCI+IHt7IGkxOG4udHJhbnNsYXRlKCdjbGVhcicpIH19IDwvc3Bhbj5cclxuICAgICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgICAgPGRzLWJ1dHRvbiBjbGFzcz1cInctMTAwXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImFwcGx5RmlsdGVycygpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTJcIj57eyBpMThuLnRyYW5zbGF0ZSgnYXBwbHlGaWx0ZXJzJykgfX0gIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9ybT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZW1wdHlNZXNzYWdlPlxyXG4gICAgPGRzLW1lc3NhZ2UgbGFiZWw9XCJ7e2kxOG4udHJhbnNsYXRlKCdOb0RhdGEnKX19XCI+PC9kcy1tZXNzYWdlPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
344
+ }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.SidenavService }, { type: i2.CoreService }, { type: i3.ToastrService }, { type: i2.CoreI18nService }, { type: i4.FormBuilder }, { type: i0.ChangeDetectorRef }] });
345
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvcHJldmlvdXMtcmVxdWVzdHMvcHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvcHJldmlvdXMtcmVxdWVzdHMvcHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBWSxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQWMsV0FBVyxFQUFhLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRWpFLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFN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LElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO3VHQXJVVSx5QkFBeUI7MkZBQXpCLHlCQUF5Qix1RUN0Q3RDLHd6T0EyS0EsNDRJRHRKSSxZQUFZLHlkQUNaLGFBQWEsOEJBQ2IsWUFBWSw4QkFDWixlQUFlLDhCQUNmLGVBQWUsOEJBQ2YsbUJBQW1CLDRyQkFDbkIscUJBQXFCLGtvQkFDckIsZUFBZSxvREFDZixnQkFBZ0IsdUlBQ2hCLHlCQUF5QiwyTUFDekIsbUJBQW1COzsyRkFPVix5QkFBeUI7a0JBdEJyQyxTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBRVA7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QixtQkFBbUI7cUJBRXBCLFdBR1EsQ0FBQyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRGVzdHJveVJlZiwgaW5qZWN0LCBPbkluaXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TWF0TWVudU1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcclxuaW1wb3J0IHtNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtNYXRCdXR0b25Ub2dnbGVNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlXCI7XHJcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge0NvcmVJMThuU2VydmljZSwgQ29yZVNlcnZpY2UsIFNpZGVuYXZTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHtTdGF0dXNTdHlsZVBpcGV9IGZyb20gXCIuLi8uLi8uLi9waXBlcy9zdGF0dXMtc3R5bGUucGlwZVwiO1xyXG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gXCJuZ3gtdG9hc3RyXCI7XHJcbmltcG9ydCB7Q2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XHJcbmltcG9ydCB7Q3VzdG9tU2VhcmNoYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL3NoYXJlZC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcclxuaW1wb3J0IHtTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaGlzdG9yeScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXHJcbiAgICBTdGF0dXNTdHlsZVBpcGUsXHJcbiAgICBDZGtPdmVybGF5T3JpZ2luLFxyXG4gICAgQ3VzdG9tU2VhcmNoYWJsZUNvbXBvbmVudCxcclxuICAgIENka0Nvbm5lY3RlZE92ZXJsYXlcclxuXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ByZXZpb3VzLXJlcXVlc3RzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJldmlvdXNSZXF1ZXN0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHJldmlvdXNSZXF1ZXN0czogYW55W10gPSBbXVxyXG4gIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG4gIGxvYWRpbmc6IGJvb2xlYW5cclxuICBmaWx0ZXJGb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICBlcnJvck1lc3NhZ2U6IHN0cmluZ1xyXG4gIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1vbnRoc09wdGlvbnMgPSBbXHJcbiAgICB7a2V5OiAnMScsIHZhbHVlOiAnMSd9LFxyXG4gICAge2tleTogJzInLCB2YWx1ZTogJzInfSxcclxuICAgIHtrZXk6ICczJywgdmFsdWU6ICczJ30sXHJcbiAgICB7a2V5OiAnNCcsIHZhbHVlOiAnNCd9LFxyXG4gICAge2tleTogJzUnLCB2YWx1ZTogJzUnfSxcclxuICAgIHtrZXk6ICc2JywgdmFsdWU6ICc2J30sXHJcbiAgICB7a2V5OiAnNycsIHZhbHVlOiAnNyd9LFxyXG4gICAge2tleTogJzgnLCB2YWx1ZTogJzgnfSxcclxuICAgIHtrZXk6ICc5JywgdmFsdWU6ICc5J30sXHJcbiAgICB7a2V5OiAnMTAnLCB2YWx1ZTogJzEwJ30sXHJcbiAgICB7a2V5OiAnMTEnLCB2YWx1ZTogJzExJ30sXHJcbiAgICB7a2V5OiAnMTInLCB2YWx1ZTogJzEyJ31cclxuICBdO1xyXG4gIHllYXJzT3B0aW9ucyA9IFtcclxuICAgIHtrZXk6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSwgdmFsdWU6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKX0sXHJcbiAgICB7a2V5OiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAxLCB2YWx1ZTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gMX0sXHJcbiAgICB7a2V5OiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAyLCB2YWx1ZTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gMn0sXHJcbiAgICB7a2V5OiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAzLCB2YWx1ZTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gM31dO1xyXG5cclxuICBzdGF0dXNlcyA9IFtdXHJcbiAgc2VhcmNoRGF0YSA9IHtcclxuICAgIHllYXI6IG51bGwsXHJcbiAgICBtb250aDogbnVsbFxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgc2lkZW5hdlNlcnZpY2U6IFNpZGVuYXZTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyBjb3JlU2VydmljZTogQ29yZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdGVyU2VydmljZTogVG9hc3RyU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0aGUgY29tcG9uZW50IG9uIGluaXRpYWxpemF0aW9uLlxyXG4gICAqIEl0IGNyZWF0ZXMgYSBmb3JtIGFuZCBzZXRzIHRoZSBhdmFpbGFibGUgc3RhdHVzZXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgbGFuZ3VhZ2UuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgICB0aGlzLnN0YXR1c2VzID0gW1xyXG4gICAgICB7a2V5OiBcIkFQUFJPVkVEXCIsIHZhbHVlOiB0aGlzLmkxOG4ubGFuZ3VhZ2UgPT0gJ2VuJyA/IFwiQXBwcm92ZVwiIDogXCLZhdmI2KfZgdmC2KlcIn0sXHJcbiAgICAgIHtrZXk6IFwiUkVKRUNURURcIiwgdmFsdWU6IHRoaXMuaTE4bi5sYW5ndWFnZSA9PSAnZW4nID8gXCJSZWplY3RcIiA6IFwi2YXYsdmB2YjYtlwifSxcclxuICAgICAge2tleTogXCJQRU5ESU5HXCIsIHZhbHVlOiB0aGlzLmkxOG4ubGFuZ3VhZ2UgPT0gJ2VuJyA/IFwiUGVuZGluZ1wiIDogXCLZhdi52YTZglwifVxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgLy8gdmFyaWFibGVzIHRvIG1hbmFnZSBzdWJzY3JpcHRpb25cclxuICBwcml2YXRlIHJlYWRvbmx5IG5nVW5zdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuLy8gbmV3IGhlbHBlciBtZXRob2RzIGZvciBmb3JtIGNvbnRyb2xzXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIGZvcm0gY29udHJvbHMgZm9yIHRoZSBjdXJyZW50IG1vbnRoIGFuZCB5ZWFyLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7b2JqZWN0fSBBbiBvYmplY3QgY29udGFpbmluZyBmb3JtIGNvbnRyb2xzIGZvciB0aGUgY3VycmVudCBtb250aCBhbmQgeWVhci5cclxuICAgKiAgICAgICAgICAgICAgICAgIC0gbW9udGg6IEZvcm1Db250cm9sIGZvciB0aGUgY3VycmVudCBtb250aCB3aXRoIFZhbGlkYXRvcnMgcmVxdWlyZWRcclxuICAgKiAgICAgICAgICAgICAgICAgIC0geWVhcjogRm9ybUNvbnRyb2wgZm9yIHRoZSBjdXJyZW50IHllYXIgd2l0aCBWYWxpZGF0b3JzIHJlcXVpcmVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjdXJyZW50RGF0ZUNvbnRyb2woKTogeyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB9IHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgbW9udGggPSBkYXRlLmdldFVUQ01vbnRoKCkgKyAxO1xyXG4gICAgY29uc3QgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtb250aDogbmV3IEZvcm1Db250cm9sKHtrZXk6IG1vbnRoLCB2YWx1ZTogbW9udGh9LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgeWVhcjogbmV3IEZvcm1Db250cm9sKHtrZXk6IHllYXIsIHZhbHVlOiB5ZWFyfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgYSBmb3JtIGdyb3VwIGZvciBmaWx0ZXJpbmcgZGF0YS5cclxuICAgKiBJdCBjcmVhdGVzIGZvcm0gY29udHJvbHMgZm9yIHRoZSBjdXJyZW50IGRhdGUgYW5kIHN0YXR1cy5cclxuICAgKiBBbHNvIHNldHMgdXAgYSBzdWJzY3JpcHRpb24gdG8gbGlzdGVuIGZvciBjaGFuZ2VzIGluIHRoZSBzdGF0dXMgY29udHJvbC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgY3JlYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIC4uLnRoaXMuY3VycmVudERhdGVDb250cm9sKCksXHJcbiAgICAgIHN0YXR1czogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ3N0YXR1cycpLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG4gICAgKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLmZpbHRlclN0YXR1cygpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcmZvcm0gaW5pdGlhbGl6YXRpb24gYWZ0ZXIgQW5ndWxhciBoYXMgZnVsbHkgaW5pdGlhbGl6ZWQgYSBjb21wb25lbnQncyB2aWV3LlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5jb3JlU2VydmljZS5oaXN0b3J5RGF0YUxvYWRlZCkge1xyXG4gICAgICB0aGlzLnByZXZpb3VzUmVxdWVzdHMgPSB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdldFJlcXVlc3RzKClcclxuICAgIH1cclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgYWxsIGZpbHRlcnMgYW5kIHJlc2V0IHRoZSBmb3JtIGdyb3VwIHRvIGl0cyBpbml0aWFsIHN0YXRlLlxyXG4gICAqIFNldHMgdGhlIG1vbnRoIGFuZCB5ZWFyIGZpbHRlcnMgdG8gdGhlIGN1cnJlbnQgZGF0ZSdzIG1vbnRoIGFuZCB5ZWFyIHJlc3BlY3RpdmVseS5cclxuICAgKiBTZXRzIHRoZSBzdGF0dXMgZmlsdGVyIHRvIGFuIGVtcHR5IHN0cmluZy5cclxuICAgKiBUb2dnbGVzIHRoZSBpc09wZW4gcHJvcGVydHkgYW5kIHRyaWdnZXJzIHRoZSBmaWx0ZXJTdGF0dXMgbWV0aG9kLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBjbGVhckZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5yZXNldCgpXHJcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ21vbnRoJykuc2V0VmFsdWUoe2tleTogbmV3IERhdGUoKS5nZXRVVENNb250aCgpICsgMSwgdmFsdWU6IG5ldyBEYXRlKCkuZ2V0VVRDTW9udGgoKSArIDF9KVxyXG4gICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCd5ZWFyJykuc2V0VmFsdWUoe2tleTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLCB2YWx1ZTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpICsgMX0pXHJcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ3N0YXR1cycpLnNldFZhbHVlKCcnKVxyXG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW5cclxuICAgIHRoaXMuZmlsdGVyU3RhdHVzKClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZXMgdGhlIGlzT3BlbiBwcm9wZXJ0eSBhbmQgdHJpZ2dlcnMgdGhlIGdldFJlcXVlc3RzKCkgbWV0aG9kLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBhcHBseUZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlblxyXG4gICAgdGhpcy5nZXRSZXF1ZXN0cygpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgcmVxdWVzdCBkYXRhIGJhc2VkIG9uIGZvcm0gdmFsdWVzLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBnZXRSZXF1ZXN0cygpIHtcclxuICAgIGNvbnN0IGZvcm1WYWx1ZXMgPSB0aGlzLmdldEZvcm1WYWx1ZXMoKVxyXG4gICAgaWYgKHRoaXMuYXJlRm9ybVZhbHVlc0VxdWFsKHRoaXMuc2VhcmNoRGF0YSwgZm9ybVZhbHVlcykpIHtcclxuICAgICAgdGhpcy5maWx0ZXJTdGF0dXMoKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51cGRhdGVTZWFyY2hEYXRhKGZvcm1WYWx1ZXMpXHJcbiAgICAgIHRoaXMucmVxdWVzdENvcmVEYXRhKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgZm9ybSB2YWx1ZXMgaW5jbHVkaW5nIHRoZSB5ZWFyIGFuZCBtb250aC5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge09iamVjdH0gUmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgeWVhciBhbmQgbW9udGggdmFsdWVzLlxyXG4gICAqL1xyXG4gIGdldEZvcm1WYWx1ZXMoKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB5ZWFyOiB0aGlzLmdldFllYXJWYWx1ZSgpLFxyXG4gICAgICBtb250aDogdGhpcy5nZXRNb250aFZhbHVlKCksXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIHNlbGVjdGVkIHllYXIgdmFsdWUgZnJvbSB0aGUgZmlsdGVyIGZvcm0gZ3JvdXAuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIFRoZSBzZWxlY3RlZCB5ZWFyIHZhbHVlIGFzIGEgbnVtYmVyLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0WWVhclZhbHVlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCd5ZWFyJykudmFsdWU/LmtleTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgbW9udGggdmFsdWUgZnJvbSB0aGUgZmlsdGVyIGZvcm0gZ3JvdXAuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHtudW1iZXJ9IFRoZSBtb250aCB2YWx1ZSByZXRyaWV2ZWQgZnJvbSB0aGUgZm9ybSBncm91cC5cclxuICAgKi9cclxuICBwcml2YXRlIGdldE1vbnRoVmFsdWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ21vbnRoJykudmFsdWU/LmtleTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiB0aGUgeWVhciBhbmQgbW9udGggdmFsdWVzIG9mIHR3byBmb3JtIG9iamVjdHMgYXJlIGVxdWFsLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IGZpcnN0IC0gVGhlIGZpcnN0IGZvcm0gb2JqZWN0IHRvIGNvbXBhcmUuXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IHNlY29uZCAtIFRoZSBzZWNvbmQgZm9ybSBvYmplY3QgdG8gY29tcGFyZS5cclxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0cnVlIGlmIHRoZSB5ZWFyIGFuZCBtb250aCB2YWx1ZXMgYXJlIGVxdWFsLCBvdGhlcndpc2UgZmFsc2UuXHJcbiAgICovXHJcbiAgYXJlRm9ybVZhbHVlc0VxdWFsKGZpcnN0LCBzZWNvbmQpIHtcclxuICAgIHJldHVybiBmaXJzdC55ZWFyID09IHNlY29uZC55ZWFyICYmIGZpcnN0Lm1vbnRoID09IHNlY29uZC5tb250aFxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHRoZSBzZWFyY2ggZGF0YSB3aXRoIHRoZSBwcm92aWRlZCBkYXRhLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IGRhdGEgLSBUaGUgbmV3IHNlYXJjaCBkYXRhIHRvIHVwZGF0ZS5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgdXBkYXRlU2VhcmNoRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLnNlYXJjaERhdGEgPSBkYXRhXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIHJlcXVlc3QgdG8gcmV0cmlldmUgY29yZSBkYXRhIHVzaW5nIHRoZSBDb3JlIFNlcnZpY2UgQVBJLlxyXG4gICAqIEluaXRpYWxpemVzIGxvYWRpbmcgYW5kIHJlcXVlc3RzIGJlZm9yZSBtYWtpbmcgdGhlIGNhbGwuXHJcbiAgICpcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqL1xyXG4gIHJlcXVlc3RDb3JlRGF0YSgpIHtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUxvYWRpbmdBbmRSZXF1ZXN0cygpXHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXHJcbiAgICB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhID0gW11cclxuICAgIHRoaXMucHJldmlvdXNSZXF1ZXN0cyA9IFtdXHJcbiAgICB0aGlzLmNvcmVTZXJ2aWNlLm15UmVxdWVzdHModGhpcy5zZWFyY2hEYXRhKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKVxyXG4gICAgKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29yZVNlcnZpY2UuaGlzdG9yeURhdGEgPSByZXNwb25zZS5oaXN0b3J5O1xyXG4gICAgICAgIHRoaXMucHJldmlvdXNSZXF1ZXN0cyA9IHRoaXMuY29yZVNlcnZpY2UuaGlzdG9yeURhdGFcclxuICAgICAgICB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhTG9hZGVkID0gdHJ1ZVxyXG4gICAgICAgIHRoaXMuZmlsdGVyU3RhdHVzKClcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycj8uZXJyb3I/Lm1ldGE/Lm1lc3NhZ2VzPy5bJzAnXT8ubWVzc2FnZTtcclxuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKHRoaXMuZXJyb3JNZXNzYWdlKVxyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZTogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyBsb2FkaW5nIGFuZCByZXF1ZXN0cy5cclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgaW5pdGlhbGl6ZUxvYWRpbmdBbmRSZXF1ZXN0cygpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWVcclxuICAgIHRoaXMuY29yZVNlcnZpY2UuaGlzdG9yeURhdGEgPSBbXVxyXG4gICAgdGhpcy5wcmV2aW91c1JlcXVlc3RzID0gW11cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZXMgc3VjY2Vzc2Z1bCByZXNwb25zZSBmcm9tIGEgcmVxdWVzdC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSByZXNwb25zZSAtIFRoZSByZXNwb25zZSBvYmplY3QgY29udGFpbmluZyBoaXN0b3J5IGRhdGEuXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBoYW5kbGVSZXF1ZXN0U3VjY2VzcyhyZXNwb25zZSkge1xyXG4gICAgdGhpcy5jb3JlU2VydmljZS5oaXN0b3J5RGF0YSA9IHJlc3BvbnNlLmhpc3RvcnlcclxuICAgIHRoaXMucHJldmlvdXNSZXF1ZXN0cyA9IHRoaXMuY29yZVNlcnZpY2UuaGlzdG9yeURhdGFcclxuICAgIHRoaXMuY29yZVNlcnZpY2UuaGlzdG9yeURhdGFMb2FkZWQgPSB0cnVlXHJcbiAgICB0aGlzLmZpbHRlclN0YXR1cygpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBlcnJvciByZWNlaXZlZCBmcm9tIGEgcmVxdWVzdFxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IGVyciAtIFRoZSBlcnJvciBvYmplY3QgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JcclxuICAgKiBAcmV0dXJuIHt2b2lkfVxyXG4gICAqL1xyXG4gIGhhbmRsZVJlcXVlc3RFcnJvcihlcnIpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXHJcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVycj8uZXJyb3I/Lm1ldGE/Lm1lc3NhZ2VzPy5bJzAnXT8ubWVzc2FnZVxyXG4gICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcih0aGlzLmVycm9yTWVzc2FnZSlcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbHRlcnMgdGhlIHByZXZpb3VzIHJlcXVlc3RzIGJhc2VkIG9uIHRoZSBzdGF0dXMgc2VsZWN0ZWQgaW4gdGhlIGZpbHRlciBmb3JtLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBmaWx0ZXJTdGF0dXMoKSB7XHJcbiAgICBjb25zdCBzdGF0dXNLZXkgPSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ3N0YXR1cycpLnZhbHVlPy5rZXk7XHJcbiAgICB0aGlzLnByZXZpb3VzUmVxdWVzdHMgPSB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhXHJcbiAgICBsZXQgZmlsdGVyRGF0YTogYW55W107XHJcblxyXG4gICAgaWYgKHN0YXR1c0tleSkge1xyXG4gICAgICBmaWx0ZXJEYXRhID0gdGhpcy5wcmV2aW91c1JlcXVlc3RzLmZpbHRlcigocmVxdWVzdCkgPT4gcmVxdWVzdC5mb3JtPy5bJ2Zvcm1TdGF0dXMnXT8ua2V5ID09PSBzdGF0dXNLZXkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlsdGVyRGF0YSA9IHRoaXMucHJldmlvdXNSZXF1ZXN0cztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnByZXZpb3VzUmVxdWVzdHMgPSBmaWx0ZXJEYXRhO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgYSBmb3JtIGluIGEgbmV3IHdpbmRvdyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgZm9ybSBJRC5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtSWQgLSBUaGUgSUQgb2YgdGhlIGZvcm0gdG8gYmUgb3BlbmVkLlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgdmlld0Zvcm0oZm9ybUlkOiBzdHJpbmcpIHtcclxuICAgIGlmIChmb3JtSWQpIHtcclxuICAgICAgd2luZG93Lm9wZW4oJy9ncm91cC9pLWdhdGUvd20tYnBtL2Zvcm1zP2Zvcm1JZD0nICsgZm9ybUlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsb3NlcyB0aGUgc2lkZSBuYXZpZ2F0aW9uIHBhbmVsLlxyXG4gICAqXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKi9cclxuICBjbG9zZVNpZGVuYXYoKSB7XHJcbiAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnB1Ymxpc2goJ2Nsb3NlJywgbnVsbCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0IHRoZSB2YWx1ZSB0byBjb21wbGV0ZSBhbGwgYWN0aXZlIHN1YnNjcmlwdGlvbnNcclxuICAgKlxyXG4gICAqIEByZXR1cm4ge3ZvaWR9XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBlbWl0IHRoZSB2YWx1ZSB0byBjb21wbGV0ZSBhbGwgYWN0aXZlIHN1YnNjcmlwdGlvbnNcclxuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwibWFpbi1zaWRlbmF2IGhpc3Rvcnktc2lkZW5hdlwiPlxyXG4gIDxkaXYgY2xhc3M9XCJzaWRlbmF2LXRpdGxlXCI+XHJcbiAgICA8aDM+e3sgaTE4bi50cmFuc2xhdGUoJ1ByZXZpb3VzUmVxdWVzdHMnKSB9fTwvaDM+XHJcbiAgICA8ZHMtYnV0dG9uIGNsYXNzPVwiY2xvc2Utc2lkZW5hdlwiIChjbGljayk9XCJjbG9zZVNpZGVuYXYoKVwiIGljb24+XHJcbiAgICAgIDxkcy1pY29uIGljb249XCJjbG9zZVwiIGNsYXNzPVwiZnMtMjAgZmMtYmxhY2tcIj48L2RzLWljb24+XHJcbiAgICA8L2RzLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInNpZGVuYXYtYm9keSBiYy1saWdodC1ncmF5XCI+XHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cInAtM1wiPlxyXG4gICAgICA8aGVhZGVyIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBnYXAtMiBtYi0zXCI+XHJcbiAgICAgICAgPGgyIGNsYXNzPVwiZnMtMjAgZnctbWVkaXVtIGZjLWJsYWNrIG1iLTAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWdyb3ctMSBnYXAtM1wiPlxyXG4gICAgICAgICAge3sgaTE4bi50cmFuc2xhdGUoJ0FsbFJlcXVlc3RzJykgfX1cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGUtY291bnQgZnMtMTQgZnctbm9ybWFsXCI+e3sgcHJldmlvdXNSZXF1ZXN0cz8ubGVuZ3RoID8gcHJldmlvdXNSZXF1ZXN0cz8ubGVuZ3RoIDogJzAnIH19PC9zcGFuPlxyXG4gICAgICAgIDwvaDI+XHJcbiAgICAgICAgPGRzLWJ1dHRvbiBpY29uIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJpc09wZW4gPSAhaXNPcGVuXCIgY2RrT3ZlcmxheU9yaWdpbiAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIj5cclxuICAgICAgICAgIDxkcy1pY29uIGljb249XCJmaWx0ZXJcIiBjbGFzcz1cImZjLWNvcmFsIGZzLTIwXCIgc2xvdD1cInByZWZpeFwiPjwvZHMtaWNvbj5cclxuICAgICAgICA8L2RzLWJ1dHRvbj5cclxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXBcclxuICAgICAgICAgIGNsYXNzPVwiaWNvbi10b2dnbGUgZmxleC1ub3dyYXBcIlxyXG4gICAgICAgICAgI3BhZ2VWaWV3PVwibWF0QnV0dG9uVG9nZ2xlR3JvdXBcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICB2YWx1ZT1cImxpc3RcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cImNhcmRcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZmkgc2ZpLWNhcmQgZnMtMjBcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwibGlzdFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNmaSBzZmktbGlzdC1kb3RzIGZzLTIwXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxyXG4gICAgICA8L2hlYWRlcj5cclxuXHJcbiAgICAgIEBpZiAocGFnZVZpZXcudmFsdWUgPT09ICdjYXJkJykge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoaXN0b3J5LWNhcmRzLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgQGlmIChsb2FkaW5nKSB7XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtNCBsaW5lLWhlaWdodC0xIGJjLXdoaXRlIHJhZGl1cy02IGJveC1zaGFkb3dcIiAqbmdGb3I9XCJsZXQgcm93IG9mIFswLDEsMiwzXVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJsb2FkaW5nLWJnIGZzLTE2IGZ3LW1lZGl1bSBmbGV4LWdyb3ctMSBtYi0wIGN1cnNvci1wb2ludGVyIHVuZGVybGluZSBmdy1ib2xkXCI+PC9oMz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2wtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTEgZmMtZGFyay1ncmF5IG1iLTIgbG9hZGluZy1iZ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTEyIGZ3LW1lZGl1bSBmYy1ibGFjayBsb2FkaW5nLWJnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2wtNiBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC00IGxpbmUtaGVpZ2h0LTEgYmMtd2hpdGUgcmFkaXVzLTYgYm94LXNoYWRvd1wiICpuZ0Zvcj1cImxldCByb3cgb2YgcHJldmlvdXNSZXF1ZXN0c1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxoM1xyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZzLTE2IGZ3LW1lZGl1bSBmbGV4LWdyb3ctMSBtYi0wIGN1cnNvci1wb2ludGVyIHVuZGVybGluZSBmdy1ib2xkXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInZpZXdGb3JtKHJvdz8uZm9ybT8uWydmb3JtSWQnXSlcIj57eyByb3c/LmZvcm0/LlsnZm9ybUlkJ10gfX08L2gzPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvbC02XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTEgZmMtZGFyay1ncmF5IG1iLTJcIj57eyBpMThuLnRyYW5zbGF0ZSgnZm9ybVRhYmxlQ3JlYXRpb25EYXRlJykgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTIgZnctbWVkaXVtIGZjLWJsYWNrXCI+e3sgcm93Py5mb3JtPy5bJ2NyZWF0aW9uRGF0ZSddIHwgZGF0ZTogJ2RkL01NL3l5eXkgaGg6bW0gYScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29sLTYganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1lbmRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxkcy1zdGF0dXMgW2F0dHIuc3RhdHVzXT1cInJvdz8uZm9ybT8uZm9ybVN0YXR1cz8ua2V5IHwgc3RhdHVzQ2xhc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyByb3c/LmZvcm0/LmZvcm1TdGF0dXM/LnZhbHVlIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvZHMtc3RhdHVzPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKHBhZ2VWaWV3LnZhbHVlID09PSAnbGlzdCcpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgPHRhYmxlICpuZ0lmPVwicHJldmlvdXNSZXF1ZXN0cz8ubGVuZ3RoICYmICFsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0aD57eyBpMThuLnRyYW5zbGF0ZSgnZm9ybVRhYmxlRm9ybUlkJykgfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD57eyBpMThuLnRyYW5zbGF0ZSgnZm9ybVRhYmxlQ3JlYXRpb25EYXRlJykgfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD57eyBpMThuLnRyYW5zbGF0ZSgnU3RhdHVzJykgfX08L3RoPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICAgICAgPHRib2R5ICpuZ0Zvcj1cImxldCByb3cgb2YgcHJldmlvdXNSZXF1ZXN0c1wiPlxyXG4gICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW0gY3Vyc29yLXBvaW50ZXIgdW5kZXJsaW5lIGZ3LWJvbGQgXCIgKGNsaWNrKT1cInZpZXdGb3JtKHJvdz8uZm9ybT8uWydmb3JtSWQnXSlcIj5cclxuICAgICAgICAgICAgICAgICAge3sgcm93Py5mb3JtPy5bJ2Zvcm1JZCddIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+e3sgcm93Py5mb3JtPy5bJ2NyZWF0aW9uRGF0ZSddICB8IGRhdGU6ICdkZC9NTS95eXl5IGhoOm1tIGEnIH19PC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZHMtc3RhdHVzIFthdHRyLnN0YXR1c109XCJyb3c/LmZvcm0/LmZvcm1TdGF0dXM/LmtleSB8IHN0YXR1c0NsYXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHJvdz8uZm9ybT8uZm9ybVN0YXR1cz8udmFsdWUgfX1cclxuICAgICAgICAgICAgICAgIDwvZHMtc3RhdHVzPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgPGRzLWxvYWRpbmctdGFibGUgKm5nSWY9XCJsb2FkaW5nXCIgW2NvbHNdPVwiNFwiIFtyb3dzXT1cIjRcIj48L2RzLWxvYWRpbmctdGFibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGlmICghcHJldmlvdXNSZXF1ZXN0cz8ubGVuZ3RoICYmICFsb2FkaW5nKSB7XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5TWVzc2FnZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICB9XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuXHJcbjxuZy10ZW1wbGF0ZVxyXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlcclxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheUhhc0JhY2tkcm9wXT1cInRydWVcIlxyXG4gIChiYWNrZHJvcENsaWNrKT1cImlzT3BlbiA9IGZhbHNlXCJcclxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheUdyb3dBZnRlck9wZW5dPVwidHJ1ZVwiXHJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiXHJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cImlzT3BlblwiXHJcbj5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZpbHRlckZvcm1Hcm91cFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbHRlci1jb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBvcHVwLWhlYWRlciBib3JkZXItYm90dG9tIHBiLTJcIj5cclxuICAgICAgICA8aDMgY2xhc3M9XCJmcy0xNiBmYy1ibGFjayBmdy1tZWRpdW1cIj57eyBpMThuLnRyYW5zbGF0ZSgnZmlsdGVycycpIH19PC9oMz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZ2FwLTQgZ2FwLW1kLTMgZmlsdGVyLXNlY3Rpb24gYmMtd2hpdGUgbXQtMCBwdC0zXCI+XHJcblxyXG4gICAgICAgIDxhcHAtY3VzdG9tLXNlYXJjaGFibGVcclxuICAgICAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN0YXR1c1wiXHJcbiAgICAgICAgICBsYWJlbD1cInt7IGkxOG4udHJhbnNsYXRlKCdzdGF0dXMnKSB9fVwiXHJcbiAgICAgICAgICBbb3B0aW9uc109XCJzdGF0dXNlc1wiXHJcbiAgICAgICAgICBbZGlzcGxheWVkTGFiZWxdPVwiJ3ZhbHVlJ1wiXHJcbiAgICAgICAgICBba2V5XT1cIidrZXknXCI+XHJcbiAgICAgICAgPC9hcHAtY3VzdG9tLXNlYXJjaGFibGU+XHJcblxyXG4gICAgICAgIDxhcHAtY3VzdG9tLXNlYXJjaGFibGVcclxuICAgICAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInllYXJcIlxyXG4gICAgICAgICAgbGFiZWw9XCJ7eyBpMThuLnRyYW5zbGF0ZSgneWVhcicpIH19XCJcclxuICAgICAgICAgIFtvcHRpb25zXT1cInllYXJzT3B0aW9uc1wiXHJcbiAgICAgICAgICBbZGlzcGxheWVkTGFiZWxdPVwiJ3ZhbHVlJ1wiXHJcbiAgICAgICAgICBba2V5XT1cIidrZXknXCI+XHJcbiAgICAgICAgPC9hcHAtY3VzdG9tLXNlYXJjaGFibGU+XHJcblxyXG4gICAgICAgIDxhcHAtY3VzdG9tLXNlYXJjaGFibGVcclxuICAgICAgICAgIGNsYXNzPVwic2VjdGlvbi1pdGVtXCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1vbnRoXCJcclxuICAgICAgICAgIGxhYmVsPVwie3sgaTE4bi50cmFuc2xhdGUoJ21vbnRoJykgfX1cIlxyXG4gICAgICAgICAgW29wdGlvbnNdPVwibW9udGhzT3B0aW9uc1wiXHJcbiAgICAgICAgICBbZGlzcGxheWVkTGFiZWxdPVwiJ3ZhbHVlJ1wiXHJcbiAgICAgICAgICBba2V5XT1cIidrZXknXCI+XHJcbiAgICAgICAgPC9hcHAtY3VzdG9tLXNlYXJjaGFibGU+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zIG10LTRcIj5cclxuICAgICAgICAgIDxkcy1idXR0b24gc2hhcGU9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImNsZWFyRmlsdGVycygpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTJcIj4ge3sgaTE4bi50cmFuc2xhdGUoJ2NsZWFyJykgfX0gPC9zcGFuPlxyXG4gICAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgICA8ZHMtYnV0dG9uIGNsYXNzPVwidy0xMDBcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwiYXBwbHlGaWx0ZXJzKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMlwiPnt7IGkxOG4udHJhbnNsYXRlKCdhcHBseUZpbHRlcnMnKSB9fSAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNlbXB0eU1lc3NhZ2U+XHJcbiAgICA8ZHMtbWVzc2FnZSBsYWJlbD1cInt7aTE4bi50cmFuc2xhdGUoJ05vRGF0YScpfX1cIj48L2RzLW1lc3NhZ2U+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -1,4 +1,4 @@
1
- import { FormControl, NG_VALUE_ACCESSOR, Validators, } from '@angular/forms';
1
+ import { FormControl, NG_VALUE_ACCESSOR, } from '@angular/forms';
2
2
  import { Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, EventEmitter, forwardRef, inject, Inject, Input, Output, ViewChild, } from '@angular/core';
3
3
  import { CustomDateFormat } from './date-format';
4
4
  import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
@@ -89,8 +89,7 @@ export class DatePickerComponent extends ControlValueAccessorDirective {
89
89
  const date = new Date(this.customMinDate);
90
90
  this.minDateValue = new Date(date.getFullYear(), date.getMonth(), date.getDate());
91
91
  }
92
- if (this.required)
93
- this.control.addValidators(Validators.required);
92
+ // if (this.required) this.control.addValidators(Validators.required);
94
93
  }
95
94
  focusPicker(picker) {
96
95
  picker.open();
@@ -173,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
173
172
  type: ViewChild,
174
173
  args: [MatDatepicker]
175
174
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUVMLFNBQVMsRUFDVCxzQkFBc0IsRUFDdEIsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDcEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBRWhFLE1BQU0sZ0JBQWdCLEdBQUc7SUFDdkIsS0FBSyxFQUFFO1FBQ0wsU0FBUyxFQUFFLE1BQU07S0FDbEI7SUFDRCxPQUFPLEVBQUU7UUFDUCxTQUFTLEVBQUUsTUFBTTtRQUNqQixjQUFjLEVBQUUsTUFBTTtRQUN0QixhQUFhLEVBQUUsSUFBSTtRQUNuQixrQkFBa0IsRUFBRSxNQUFNO0tBQzNCO0NBQ0YsQ0FBQztBQTJCRixNQUFNLE9BQU8sbUJBQ1gsU0FBUSw2QkFBbUM7SUFHM0MsSUFBSSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDaEIsU0FBUyxDQUFVO0lBQ25CLFlBQVksQ0FBVTtJQUN0QixRQUFRLENBQVU7SUFDakIsU0FBUyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVELFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDWCxLQUFLLENBQVU7SUFDUyxVQUFVLENBQW1CO0lBQzlELFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFaEMsSUFBYSxNQUFNLENBQUMsT0FBZTtRQUNqQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDOUIsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQ3RCLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUN2QixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFeUIsVUFBVSxDQUFxQjtJQUN6RCxVQUFVLEdBQVEsTUFBTSxDQUFDO0lBQ2hCLFFBQVE7UUFDZixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDaEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVk7YUFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN6QixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEMsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN0RSxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxDQUMxQixXQUFXLEdBQUcsQ0FBQyxFQUNmLFlBQVksRUFDWixVQUFVLEdBQUcsQ0FBQyxDQUNmLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxDQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLEVBQ2xCLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDZixJQUFJLENBQUMsT0FBTyxFQUFFLENBQ2YsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FDMUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNsQixJQUFJLENBQUMsUUFBUSxFQUFFLEVBQ2YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUNmLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQU07UUFDaEIsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLEtBQUssRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckMsSUFBSSxVQUFVLENBQUM7WUFDZixVQUFVLEdBQUcsTUFBTSxDQUNqQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQ3JCLDhCQUE4QixDQUMvQixDQUFDO1lBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsS0FBSztRQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUM5QixnQkFBZ0IsQ0FBQyxLQUFLLEVBQ3RCLGdCQUFnQixDQUFDLE9BQU8sQ0FDekIsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLFlBQVksQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMxQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBN0hVLG1CQUFtQjsyRkFBbkIsbUJBQW1CLDROQW5CbkI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSTthQUNaO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsUUFBUSxFQUFFLGdCQUFnQjthQUMzQjtTQUNGLHNFQWdDVSxhQUFhLDRGQ3ZGMUIsNC9EQWlFQSx5TURQSSxhQUFhOzsyRkFNSixtQkFBbUI7a0JBekIvQixTQUFTOytCQUNFLGdCQUFnQixjQUdkLElBQUksV0FDUCxDQUFDLHNCQUFzQixDQUFDLGFBQ3RCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDOzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsZ0JBQWdCOzRCQUN6QixRQUFRLEVBQUUsZ0JBQWdCO3lCQUMzQjtxQkFDRixXQUVRO3dCQUNQLGFBQWE7d0JBQ2IsR0FBRyxvQkFBb0I7d0JBQ3ZCLEdBQUcsY0FBYzt3QkFDakIsR0FBRyxPQUFPO3FCQUNYOzhCQU9RLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUUsS0FBSztzQkFBYixLQUFLO2dCQUMyQixVQUFVO3NCQUExQyxNQUFNO3VCQUFDLGdCQUFnQjtnQkFHWCxNQUFNO3NCQUFsQixLQUFLO2dCQVNvQixVQUFVO3NCQUFuQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEZvcm1Db250cm9sLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIFZhbGlkYXRvcnMsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXHJcbiAgRGVzdHJveVJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBpbmplY3QsXHJcbiAgSW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3VzdG9tRGF0ZUZvcm1hdCB9IGZyb20gJy4vZGF0ZS1mb3JtYXQnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZSB9IGZyb20gJy4uL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgZm9ybWF0IH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5pbXBvcnQgeyBNYXREYXRlUGlja2VySW1wb3J0cywgTWF0Rm9ybUltcG9ydHMsIFNoYXJlZHMgfSBmcm9tICcuLi9zaGFyZWQtaW1wb3J0cyc7XHJcbmltcG9ydCB7IE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5jb25zdCBZRUFSX09OTFlfRk9STUFUID0ge1xyXG4gIHBhcnNlOiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdZWVlZJyxcclxuICB9LFxyXG4gIGRpc3BsYXk6IHtcclxuICAgIGRhdGVJbnB1dDogJ1lZWVknLFxyXG4gICAgbW9udGhZZWFyTGFiZWw6ICdZWVlZJyxcclxuICAgIGRhdGVBMTF5TGFiZWw6ICdMTCcsXHJcbiAgICBtb250aFllYXJBMTF5TGFiZWw6ICdZWVlZJyxcclxuICB9LFxyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZGF0ZXBpY2tlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVBpY2tlckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUyxcclxuICAgICAgdXNlQ2xhc3M6IEN1c3RvbURhdGVGb3JtYXQsXHJcbiAgICB9LFxyXG4gIF0sXHJcblxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdERhdGVwaWNrZXIsXHJcbiAgICAuLi5NYXREYXRlUGlja2VySW1wb3J0cyxcclxuICAgIC4uLk1hdEZvcm1JbXBvcnRzLFxyXG4gICAgLi4uU2hhcmVkc1xyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQ29tcG9uZW50PFR5cGU+XHJcbiAgZXh0ZW5kcyBDb250cm9sVmFsdWVBY2Nlc3NvckRpcmVjdGl2ZTxUeXBlPlxyXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgZGF0ZSA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIEBJbnB1dCgpIGNsYXNzTmFtZSE6IHN0cmluZztcclxuICBASW5wdXQoKSBjYWxlbmRhclR5cGUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgeWVhck9ubHk6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIGRhdGVWYWx1ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgc2hvd0lzbGFtaWMgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlcnJvciE6IHN0cmluZztcclxuICBASW5qZWN0KE1BVF9EQVRFX0ZPUk1BVFMpIHB1YmxpYyBkYXRlRm9ybWF0OiBDdXN0b21EYXRlRm9ybWF0O1xyXG4gIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBmb3JtYXQoX2Zvcm1hdDogc3RyaW5nKSB7XHJcbiAgICBpZiAoX2Zvcm1hdCkge1xyXG4gICAgICB0aGlzLmRhdGVGb3JtYXQudXBkYXRlRGF0ZUZvcm1hdChcclxuICAgICAgICB7IGRhdGVJbnB1dDogX2Zvcm1hdCB9LFxyXG4gICAgICAgIHsgZGF0ZUlucHV0OiBfZm9ybWF0IH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoTWF0RGF0ZXBpY2tlcikgZGF0ZXBpY2tlcjogTWF0RGF0ZXBpY2tlcjxhbnk+O1xyXG4gIGZsb2F0TGFiZWw6IGFueSA9ICdhdXRvJztcclxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KClcclxuICAgIHRoaXMuYWN0aW9uU3RhdGVTZXJ2aWNlLnJlc2V0QWN0aW9uJFxyXG4gICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXHJcbiAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5pc1JlYWRPbmx5ICYmIHRoaXMuY29udHJvbC5lbmFibGVkKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sLnJlc2V0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5pc1JlYWRPbmx5ICYmIHRoaXMueWVhck9ubHkpIHRoaXMuYWN0aXZhdGVZZWFyT25seU1vZGUoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIHRoaXMuc2V0RGF0ZUZvcm1Db250cm9sKCk7XHJcbiAgfVxyXG5cclxuICBzZXREYXRlRm9ybUNvbnRyb2woKSB7XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICBjb25zdCBjdXJyZW50WWVhciA9IHRvZGF5LmdldEZ1bGxZZWFyKCk7XHJcbiAgICBjb25zdCBjdXJyZW50TW9udGggPSB0b2RheS5nZXRNb250aCgpO1xyXG4gICAgY29uc3QgY3VycmVudERheSA9IHRvZGF5LmdldERhdGUoKTtcclxuICAgIGlmICh0aGlzLm1pbkRhdGUpIHtcclxuICAgICAgaWYgKHRoaXMubWluRGF0ZSA9PSAndG9kYXknKSB7XHJcbiAgICAgICAgdGhpcy5taW5EYXRlVmFsdWUgPSBuZXcgRGF0ZShjdXJyZW50WWVhciwgY3VycmVudE1vbnRoLCBjdXJyZW50RGF5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm1heERhdGUpIHtcclxuICAgICAgaWYgKHRoaXMubWF4RGF0ZSA9PSAndG9kYXknKSB7XHJcbiAgICAgICAgdGhpcy5tYXhEYXRlVmFsdWUgPSBuZXcgRGF0ZShjdXJyZW50WWVhciwgY3VycmVudE1vbnRoLCBjdXJyZW50RGF5KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLm1heERhdGUgPT0gJ29uZVllYXInKSB7XHJcbiAgICAgICAgdGhpcy5tYXhEYXRlVmFsdWUgPSBuZXcgRGF0ZShcclxuICAgICAgICAgIGN1cnJlbnRZZWFyICsgMSxcclxuICAgICAgICAgIGN1cnJlbnRNb250aCxcclxuICAgICAgICAgIGN1cnJlbnREYXkgLSAxXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VzdG9tTWF4RGF0ZSkge1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5jdXN0b21NYXhEYXRlKTtcclxuICAgICAgdGhpcy5tYXhEYXRlVmFsdWUgPSBuZXcgRGF0ZShcclxuICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXN0b21NaW5EYXRlKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmN1c3RvbU1pbkRhdGUpO1xyXG4gICAgICB0aGlzLm1pbkRhdGVWYWx1ZSA9IG5ldyBEYXRlKFxyXG4gICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgICBkYXRlLmdldE1vbnRoKCksXHJcbiAgICAgICAgZGF0ZS5nZXREYXRlKClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJlcXVpcmVkKSB0aGlzLmNvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG4gIGZvY3VzUGlja2VyKHBpY2tlcikge1xyXG4gICAgcGlja2VyLm9wZW4oKTtcclxuICB9XHJcblxyXG4gIGRhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50Py52YWx1ZSAmJiAhdGhpcy5pc0Rpc2FibGVkKSB7XHJcbiAgICAgIGxldCBpbnB1dFZhbHVlO1xyXG4gICAgICBpbnB1dFZhbHVlID0gZm9ybWF0KFxyXG4gICAgICAgIG5ldyBEYXRlKGV2ZW50LnZhbHVlKSxcclxuICAgICAgICBcInl5eXktTU0tZGQnVCdISDptbTpzcy5TU1N4eHhcIlxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoaW5wdXRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhckRhdGVWYWx1ZShldmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250cm9sLnJlc2V0KCk7XHJcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhY3RpdmF0ZVllYXJPbmx5TW9kZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0ZUZvcm1hdC51cGRhdGVEYXRlRm9ybWF0KFxyXG4gICAgICBZRUFSX09OTFlfRk9STUFULnBhcnNlLFxyXG4gICAgICBZRUFSX09OTFlfRk9STUFULmRpc3BsYXlcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5jb250cm9sKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShmb3JtYXQobmV3IERhdGUodGhpcy5jb250cm9sLnZhbHVlKSwgJ3l5eXknKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVwaWNrZXIuc3RhcnRWaWV3ID0gJ211bHRpLXllYXInO1xyXG4gICAgdGhpcy5kYXRlcGlja2VyLnllYXJTZWxlY3RlZC5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGZvcm1hdChuZXcgRGF0ZShlKSwgJ3l5eXknKSk7XHJcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5jbG9zZSgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXIub3BlbmVkU3RyZWFtLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgneWVhci1vbmx5Jyk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0ZXBpY2tlci5jbG9zZWRTdHJlYW0uc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCd5ZWFyLW9ubHknKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCJAaWYoIWlzUmVhZE9ubHkpIHtcclxuICA8bmctY29udGFpbmVyPlxyXG4gICAgQGlmKGxhYmVsKSB7XHJcbiAgICAgIDxhcHAtZm9ybS1sYWJlbCBbbGFiZWxdPVwibGFiZWxcIiBbb3B0aW9uYWxdPVwiIXJlcXVpcmVkXCIgW3Rvb2x0aXBdPVwidG9vbHRpcFwiPjwvYXBwLWZvcm0tbGFiZWw+XHJcbiAgICB9XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImRhdGVQaWNrZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gbWItMVwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGRcclxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpbnB1dC1kaXNhYmxlZCc6IGlzRGlzYWJsZWQgfVwiXHJcbiAgICAgICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXHJcbiAgICAgID5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJtYXQtZm9ybS1jb250ZW50XCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgKGRhdGVJbnB1dCk9XCJkYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwibGFiZWwgPyAoJ3NlbGVjdCcgfCB0cmFuc2xhdGUpICsgJyAnICsgbGFiZWwgOiAnJ1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJmb2N1c1BpY2tlcihkcClcIlxyXG4gICAgICAgICAgICBbbWluXT1cIm1pbkRhdGVWYWx1ZVwiXHJcbiAgICAgICAgICAgIFttYXhdPVwibWF4RGF0ZVZhbHVlXCJcclxuICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwiZHBcIlxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgIEBpZihjb250cm9sPy52YWx1ZSkge1xyXG4gICAgICAgICAgPGRzLWljb25cclxuICAgICAgICAgICAgbWF0U3VmZml4XHJcbiAgICAgICAgICAgIGljb249XCJjbG9zZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmMtY29yYWwgZnMtMTAgbXgtMiBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhckRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAgID48L2RzLWljb24+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cImRwXCI+XHJcbiAgICAgICAgICA8ZHMtaWNvblxyXG4gICAgICAgICAgICBpY29uPVwiY2FsZW5kYXItb1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZmMtYmxhY2sgZnMtMThcIlxyXG4gICAgICAgICAgICBtYXREYXRlcGlja2VyVG9nZ2xlSWNvblxyXG4gICAgICAgICAgPjwvZHMtaWNvbj5cclxuICAgICAgICA8L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuXHJcbiAgICAgICAgPG1hdC1kYXRlcGlja2VyICNkcD48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgIDwhLS0gPG1hdC1lcnJvciAqbmdJZj1cImVycm9yTWVzc2FnZVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj4gLS0+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtdmFsaWRhdGlvbi1lcnJvcnMgW2Vycm9yc109XCJjb250cm9sLmVycm9yc1wiPjwvYXBwLXZhbGlkYXRpb24tZXJyb3JzPlxyXG5cclxuICA8L25nLWNvbnRhaW5lcj5cclxufVxyXG5cclxuQGlmKGlzUmVhZE9ubHkgJiYgY29udHJvbC52YWx1ZSkge1xyXG4gIDxuZy1jb250YWluZXI+XHJcbiAgICA8YXBwLWluZm8taXRlbVxyXG4gICAgICBjbGFzcz1cImluZm8taXRlbSB3LTEwMFwiXHJcbiAgICAgIHR5cGU9XCJkYXRlXCJcclxuICAgICAgW2luc2lkZVRhYmxlXT1cImluc2lkZVRhYmxlXCJcclxuICAgICAgW2RhdGVUeXBlXT1cImNhbGVuZGFyVHlwZVwiXHJcbiAgICAgIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICAgIFt2YWx1ZV09XCJjb250cm9sLnZhbHVlXCJcclxuICAgICAgW2hhc0xhYmVsXT1cIiEhbGFiZWxcIlxyXG4gICAgPlxyXG4gICAgPC9hcHAtaW5mby1pdGVtPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG59XHJcbiJdfQ==
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlZC1jb21wb25lbnRzL2Zvcm0tZmllbGQvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxpQkFBaUIsR0FFbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBRUwsU0FBUyxFQUNULHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7Ozs7QUFFaEUsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsTUFBTTtLQUNsQjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLGNBQWMsRUFBRSxNQUFNO1FBQ3RCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLE1BQU07S0FDM0I7Q0FDRixDQUFDO0FBMkJGLE1BQU0sT0FBTyxtQkFDWCxTQUFRLDZCQUFtQztJQUczQyxJQUFJLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUNoQixTQUFTLENBQVU7SUFDbkIsWUFBWSxDQUFVO0lBQ3RCLFFBQVEsQ0FBVTtJQUNqQixTQUFTLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUQsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUNYLEtBQUssQ0FBVTtJQUNTLFVBQVUsQ0FBbUI7SUFDOUQsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVoQyxJQUFhLE1BQU0sQ0FBQyxPQUFlO1FBQ2pDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUM5QixFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsRUFDdEIsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQ3ZCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUV5QixVQUFVLENBQXFCO0lBQ3pELFVBQVUsR0FBUSxNQUFNLENBQUM7SUFDaEIsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUNoQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWTthQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN4QyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDdEUsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQzFCLFdBQVcsR0FBRyxDQUFDLEVBQ2YsWUFBWSxFQUNaLFVBQVUsR0FBRyxDQUFDLENBQ2YsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQzFCLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFDbEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUNmLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FDZixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksSUFBSSxDQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLEVBQ2xCLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDZixJQUFJLENBQUMsT0FBTyxFQUFFLENBQ2YsQ0FBQztRQUNKLENBQUM7UUFDRCxzRUFBc0U7SUFDeEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFNO1FBQ2hCLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JDLElBQUksVUFBVSxDQUFDO1lBQ2YsVUFBVSxHQUFHLE1BQU0sQ0FDakIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUNyQiw4QkFBOEIsQ0FDL0IsQ0FBQztZQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQUs7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDOUIsZ0JBQWdCLENBQUMsS0FBSyxFQUN0QixnQkFBZ0IsQ0FBQyxPQUFPLENBQ3pCLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7UUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDMUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMxQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQTdIVSxtQkFBbUI7MkZBQW5CLG1CQUFtQiw0TkFuQm5CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbEQsS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7Z0JBQ3pCLFFBQVEsRUFBRSxnQkFBZ0I7YUFDM0I7U0FDRixzRUFnQ1UsYUFBYSw0RkN2RjFCLDQvREFpRUEseU1EUEksYUFBYTs7MkZBTUosbUJBQW1CO2tCQXpCL0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FHZCxJQUFJLFdBQ1AsQ0FBQyxzQkFBc0IsQ0FBQyxhQUN0Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGdCQUFnQjs0QkFDekIsUUFBUSxFQUFFLGdCQUFnQjt5QkFDM0I7cUJBQ0YsV0FFUTt3QkFDUCxhQUFhO3dCQUNiLEdBQUcsb0JBQW9CO3dCQUN2QixHQUFHLGNBQWM7d0JBQ2pCLEdBQUcsT0FBTztxQkFDWDs4QkFPUSxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNO2dCQUVFLEtBQUs7c0JBQWIsS0FBSztnQkFDMkIsVUFBVTtzQkFBMUMsTUFBTTt1QkFBQyxnQkFBZ0I7Z0JBR1gsTUFBTTtzQkFBbEIsS0FBSztnQkFTb0IsVUFBVTtzQkFBbkMsU0FBUzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBGb3JtQ29udHJvbCxcclxuICBOR19WQUxVRV9BQ0NFU1NPUixcclxuICBWYWxpZGF0b3JzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgaW5qZWN0LFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEN1c3RvbURhdGVGb3JtYXQgfSBmcm9tICcuL2RhdGUtZm9ybWF0JztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmUgfSBmcm9tICcuLi9jb250cm9sLXZhbHVlLWFjY2Vzc29yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHsgTWF0RGF0ZVBpY2tlckltcG9ydHMsIE1hdEZvcm1JbXBvcnRzLCBTaGFyZWRzIH0gZnJvbSAnLi4vc2hhcmVkLWltcG9ydHMnO1xyXG5pbXBvcnQgeyBNQVRfREFURV9GT1JNQVRTIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdERhdGVwaWNrZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuY29uc3QgWUVBUl9PTkxZX0ZPUk1BVCA9IHtcclxuICBwYXJzZToge1xyXG4gICAgZGF0ZUlucHV0OiAnWVlZWScsXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6ICdZWVlZJyxcclxuICAgIG1vbnRoWWVhckxhYmVsOiAnWVlZWScsXHJcbiAgICBkYXRlQTExeUxhYmVsOiAnTEwnLFxyXG4gICAgbW9udGhZZWFyQTExeUxhYmVsOiAnWVlZWScsXHJcbiAgfSxcclxufTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWRhdGVwaWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE1BVF9EQVRFX0ZPUk1BVFMsXHJcbiAgICAgIHVzZUNsYXNzOiBDdXN0b21EYXRlRm9ybWF0LFxyXG4gICAgfSxcclxuICBdLFxyXG5cclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXREYXRlcGlja2VyLFxyXG4gICAgLi4uTWF0RGF0ZVBpY2tlckltcG9ydHMsXHJcbiAgICAuLi5NYXRGb3JtSW1wb3J0cyxcclxuICAgIC4uLlNoYXJlZHNcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudDxUeXBlPlxyXG4gIGV4dGVuZHMgQ29udHJvbFZhbHVlQWNjZXNzb3JEaXJlY3RpdmU8VHlwZT5cclxuICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXRcclxue1xyXG4gIGRhdGUgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICBASW5wdXQoKSBjbGFzc05hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2FsZW5kYXJUeXBlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHllYXJPbmx5OiBib29sZWFuO1xyXG4gIEBPdXRwdXQoKSBkYXRlVmFsdWU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHNob3dJc2xhbWljID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZXJyb3IhOiBzdHJpbmc7XHJcbiAgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwdWJsaWMgZGF0ZUZvcm1hdDogQ3VzdG9tRGF0ZUZvcm1hdDtcclxuICBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG5cclxuICBASW5wdXQoKSBzZXQgZm9ybWF0KF9mb3JtYXQ6IHN0cmluZykge1xyXG4gICAgaWYgKF9mb3JtYXQpIHtcclxuICAgICAgdGhpcy5kYXRlRm9ybWF0LnVwZGF0ZURhdGVGb3JtYXQoXHJcbiAgICAgICAgeyBkYXRlSW5wdXQ6IF9mb3JtYXQgfSxcclxuICAgICAgICB7IGRhdGVJbnB1dDogX2Zvcm1hdCB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKE1hdERhdGVwaWNrZXIpIGRhdGVwaWNrZXI6IE1hdERhdGVwaWNrZXI8YW55PjtcclxuICBmbG9hdExhYmVsOiBhbnkgPSAnYXV0byc7XHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpXHJcbiAgICB0aGlzLmFjdGlvblN0YXRlU2VydmljZS5yZXNldEFjdGlvbiRcclxuICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaXNSZWFkT25seSAmJiB0aGlzLmNvbnRyb2wuZW5hYmxlZCkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5yZXNldCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNSZWFkT25seSAmJiB0aGlzLnllYXJPbmx5KSB0aGlzLmFjdGl2YXRlWWVhck9ubHlNb2RlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICB0aGlzLnNldERhdGVGb3JtQ29udHJvbCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGF0ZUZvcm1Db250cm9sKCkge1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgY3VycmVudFllYXIgPSB0b2RheS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgY3VycmVudE1vbnRoID0gdG9kYXkuZ2V0TW9udGgoKTtcclxuICAgIGNvbnN0IGN1cnJlbnREYXkgPSB0b2RheS5nZXREYXRlKCk7XHJcbiAgICBpZiAodGhpcy5taW5EYXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLm1pbkRhdGUgPT0gJ3RvZGF5Jykge1xyXG4gICAgICAgIHRoaXMubWluRGF0ZVZhbHVlID0gbmV3IERhdGUoY3VycmVudFllYXIsIGN1cnJlbnRNb250aCwgY3VycmVudERheSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5tYXhEYXRlKSB7XHJcbiAgICAgIGlmICh0aGlzLm1heERhdGUgPT0gJ3RvZGF5Jykge1xyXG4gICAgICAgIHRoaXMubWF4RGF0ZVZhbHVlID0gbmV3IERhdGUoY3VycmVudFllYXIsIGN1cnJlbnRNb250aCwgY3VycmVudERheSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5tYXhEYXRlID09ICdvbmVZZWFyJykge1xyXG4gICAgICAgIHRoaXMubWF4RGF0ZVZhbHVlID0gbmV3IERhdGUoXHJcbiAgICAgICAgICBjdXJyZW50WWVhciArIDEsXHJcbiAgICAgICAgICBjdXJyZW50TW9udGgsXHJcbiAgICAgICAgICBjdXJyZW50RGF5IC0gMVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1c3RvbU1heERhdGUpIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuY3VzdG9tTWF4RGF0ZSk7XHJcbiAgICAgIHRoaXMubWF4RGF0ZVZhbHVlID0gbmV3IERhdGUoXHJcbiAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIGRhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICBkYXRlLmdldERhdGUoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VzdG9tTWluRGF0ZSkge1xyXG4gICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5jdXN0b21NaW5EYXRlKTtcclxuICAgICAgdGhpcy5taW5EYXRlVmFsdWUgPSBuZXcgRGF0ZShcclxuICAgICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgZGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIGRhdGUuZ2V0RGF0ZSgpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICAvLyBpZiAodGhpcy5yZXF1aXJlZCkgdGhpcy5jb250cm9sLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgfVxyXG5cclxuICBmb2N1c1BpY2tlcihwaWNrZXIpIHtcclxuICAgIHBpY2tlci5vcGVuKCk7XHJcbiAgfVxyXG5cclxuICBkYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudD8udmFsdWUgJiYgIXRoaXMuaXNEaXNhYmxlZCkge1xyXG4gICAgICBsZXQgaW5wdXRWYWx1ZTtcclxuICAgICAgaW5wdXRWYWx1ZSA9IGZvcm1hdChcclxuICAgICAgICBuZXcgRGF0ZShldmVudC52YWx1ZSksXHJcbiAgICAgICAgXCJ5eXl5LU1NLWRkJ1QnSEg6bW06c3MuU1NTeHh4XCJcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKGlucHV0VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJEYXRlVmFsdWUoZXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udHJvbC5yZXNldCgpO1xyXG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWN0aXZhdGVZZWFyT25seU1vZGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQudXBkYXRlRGF0ZUZvcm1hdChcclxuICAgICAgWUVBUl9PTkxZX0ZPUk1BVC5wYXJzZSxcclxuICAgICAgWUVBUl9PTkxZX0ZPUk1BVC5kaXNwbGF5XHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoZm9ybWF0KG5ldyBEYXRlKHRoaXMuY29udHJvbC52YWx1ZSksICd5eXl5JykpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRlcGlja2VyLnN0YXJ0VmlldyA9ICdtdWx0aS15ZWFyJztcclxuICAgIHRoaXMuZGF0ZXBpY2tlci55ZWFyU2VsZWN0ZWQuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShmb3JtYXQobmV3IERhdGUoZSksICd5eXl5JykpO1xyXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuY2xvc2UoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRlcGlja2VyLm9wZW5lZFN0cmVhbS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ3llYXItb25seScpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGVwaWNrZXIuY2xvc2VkU3RyZWFtLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgneWVhci1vbmx5Jyk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiQGlmKCFpc1JlYWRPbmx5KSB7XHJcbiAgPG5nLWNvbnRhaW5lcj5cclxuICAgIEBpZihsYWJlbCkge1xyXG4gICAgICA8YXBwLWZvcm0tbGFiZWwgW2xhYmVsXT1cImxhYmVsXCIgW29wdGlvbmFsXT1cIiFyZXF1aXJlZFwiIFt0b29sdGlwXT1cInRvb2x0aXBcIj48L2FwcC1mb3JtLWxhYmVsPlxyXG4gICAgfVxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJkYXRlUGlja2VyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG1iLTFcIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaW5wdXQtZGlzYWJsZWQnOiBpc0Rpc2FibGVkIH1cIlxyXG4gICAgICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwibWF0LWZvcm0tY29udGVudFwiPlxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgIChkYXRlSW5wdXQpPVwiZGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImxhYmVsID8gKCdzZWxlY3QnIHwgdHJhbnNsYXRlKSArICcgJyArIGxhYmVsIDogJydcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZm9jdXNQaWNrZXIoZHApXCJcclxuICAgICAgICAgICAgW21pbl09XCJtaW5EYXRlVmFsdWVcIlxyXG4gICAgICAgICAgICBbbWF4XT1cIm1heERhdGVWYWx1ZVwiXHJcbiAgICAgICAgICAgIHJlYWRvbmx5XHJcbiAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cImRwXCJcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICBAaWYoY29udHJvbD8udmFsdWUpIHtcclxuICAgICAgICAgIDxkcy1pY29uXHJcbiAgICAgICAgICAgIG1hdFN1ZmZpeFxyXG4gICAgICAgICAgICBpY29uPVwiY2xvc2VcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZjLWNvcmFsIGZzLTEwIG14LTIgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xlYXJEYXRlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC9kcy1pY29uPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJkcFwiPlxyXG4gICAgICAgICAgPGRzLWljb25cclxuICAgICAgICAgICAgaWNvbj1cImNhbGVuZGFyLW9cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZjLWJsYWNrIGZzLTE4XCJcclxuICAgICAgICAgICAgbWF0RGF0ZXBpY2tlclRvZ2dsZUljb25cclxuICAgICAgICAgID48L2RzLWljb24+XHJcbiAgICAgICAgPC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcblxyXG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZHA+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgICA8IS0tIDxtYXQtZXJyb3IgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIj57e2Vycm9yTWVzc2FnZX19PC9tYXQtZXJyb3I+IC0tPlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YXBwLXZhbGlkYXRpb24tZXJyb3JzIFtlcnJvcnNdPVwiY29udHJvbC5lcnJvcnNcIj48L2FwcC12YWxpZGF0aW9uLWVycm9ycz5cclxuXHJcbiAgPC9uZy1jb250YWluZXI+XHJcbn1cclxuXHJcbkBpZihpc1JlYWRPbmx5ICYmIGNvbnRyb2wudmFsdWUpIHtcclxuICA8bmctY29udGFpbmVyPlxyXG4gICAgPGFwcC1pbmZvLWl0ZW1cclxuICAgICAgY2xhc3M9XCJpbmZvLWl0ZW0gdy0xMDBcIlxyXG4gICAgICB0eXBlPVwiZGF0ZVwiXHJcbiAgICAgIFtpbnNpZGVUYWJsZV09XCJpbnNpZGVUYWJsZVwiXHJcbiAgICAgIFtkYXRlVHlwZV09XCJjYWxlbmRhclR5cGVcIlxyXG4gICAgICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gICAgICBbdmFsdWVdPVwiY29udHJvbC52YWx1ZVwiXHJcbiAgICAgIFtoYXNMYWJlbF09XCIhIWxhYmVsXCJcclxuICAgID5cclxuICAgIDwvYXBwLWluZm8taXRlbT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxufVxyXG4iXX0=
@@ -1,47 +1,14 @@
1
- /*
2
- /!* eslint-disable @typescript-eslint/ban-types *!/
3
- /!* eslint-disable @typescript-eslint/no-empty-function *!/
4
- /!* eslint-disable @typescript-eslint/no-explicit-any *!/
5
- import {Injectable} from '@angular/core';
6
- import {BehaviorSubject, Subject} from "rxjs";
7
-
8
- @Injectable({
9
- providedIn: 'root'
10
- })
11
- export class SidenavService {
12
- public subject = new BehaviorSubject({});
13
- public data: any;
14
- public sideNavOpened = new BehaviorSubject(false);
15
- constructor() { }
16
-
17
- publish(eventName: string, componentName: any , position: any = 'end', mode: any = 'over', data?: any) {
18
- this.subject.next({ eventName, componentName, position, mode, data });
19
- }
20
-
21
- }
22
- */
23
1
  import { Injectable } from '@angular/core';
24
2
  import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';
25
3
  import * as i0 from "@angular/core";
26
4
  export class SidenavService {
27
5
  subject = new Subject();
28
- subjectNav = new Subject();
29
- sideNavServiceCode = new Subject();
30
- subjectNavEditTable = new ReplaySubject();
31
- subjectNavAfterEditTable = new ReplaySubject();
32
- subjectTabledata = new ReplaySubject();
33
- subjectNavWeekDuration = new BehaviorSubject({});
34
6
  sideNavOpened = new BehaviorSubject(false);
35
7
  data = new ReplaySubject();
36
8
  field = new ReplaySubject();
37
9
  mode = new ReplaySubject();
38
10
  index = new ReplaySubject();
39
11
  value = new BehaviorSubject(false);
40
- discountTable = new Subject();
41
- resolveMode = false;
42
- confirmMode = false;
43
- formGroup = new BehaviorSubject(null);
44
- unsubscribeSubject = new Subject();
45
12
  contentData = {};
46
13
  afterClosed = new ReplaySubject();
47
14
  publish(eventName, componentName, position = 'end', mode = 'over', content) {
@@ -58,12 +25,12 @@ export class SidenavService {
58
25
  this.contentData = {};
59
26
  }
60
27
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SidenavService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
61
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SidenavService, providedIn: 'any' });
28
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SidenavService, providedIn: 'root' });
62
29
  }
63
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: SidenavService, decorators: [{
64
31
  type: Injectable,
65
32
  args: [{
66
- providedIn: 'any',
33
+ providedIn: 'root',
67
34
  }]
68
35
  }] });
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9zaWRlbmF2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXFCRTtBQUNGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUsvRCxNQUFNLE9BQU8sY0FBYztJQUNsQixPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQU0sQ0FBQztJQUM1QixVQUFVLEdBQUcsSUFBSSxPQUFPLEVBQU0sQ0FBQztJQUMvQixrQkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBTSxDQUFDO0lBQ3ZDLG1CQUFtQixHQUFHLElBQUksYUFBYSxFQUFNLENBQUM7SUFDOUMsd0JBQXdCLEdBQUcsSUFBSSxhQUFhLEVBQU0sQ0FBQztJQUNuRCxnQkFBZ0IsR0FBRyxJQUFJLGFBQWEsRUFBTSxDQUFDO0lBQzNDLHNCQUFzQixHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxJQUFJLEdBQVEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNoQyxLQUFLLEdBQVEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNqQyxJQUFJLEdBQVEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNoQyxLQUFLLEdBQVEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNqQyxLQUFLLEdBQVEsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsYUFBYSxHQUFHLElBQUksT0FBTyxFQUFNLENBQUM7SUFDbEMsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixXQUFXLEdBQVksS0FBSyxDQUFDO0lBQzdCLFNBQVMsR0FBUSxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxrQkFBa0IsR0FBUSxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBQ2pELFdBQVcsR0FBUSxFQUFFLENBQUM7SUFDdEIsV0FBVyxHQUF1QixJQUFJLGFBQWEsRUFBRSxDQUFDO0lBRTdELE9BQU8sQ0FBQyxTQUFpQixFQUFFLGFBQWtCLEVBQUUsV0FBZ0IsS0FBSyxFQUFFLE9BQVksTUFBTSxFQUFFLE9BQWE7UUFDckcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBVTtRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDeEIsQ0FBQzt1R0FuQ1UsY0FBYzsyR0FBZCxjQUFjLGNBRlgsS0FBSzs7MkZBRVIsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsS0FBSztpQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4vISogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlcyAqIS9cclxuLyEqIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvbiAqIS9cclxuLyEqIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKiEvXHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2lkZW5hdlNlcnZpY2Uge1xyXG4gIHB1YmxpYyBzdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh7fSk7XHJcbiAgcHVibGljIGRhdGE6IGFueTtcclxuICBwdWJsaWMgc2lkZU5hdk9wZW5lZCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIHB1Ymxpc2goZXZlbnROYW1lOiBzdHJpbmcsIGNvbXBvbmVudE5hbWU6IGFueSAgLCBwb3NpdGlvbjogYW55ID0gJ2VuZCcsIG1vZGU6IGFueSA9ICdvdmVyJywgZGF0YT86IGFueSkge1xyXG4gICAgdGhpcy5zdWJqZWN0Lm5leHQoeyBldmVudE5hbWUsIGNvbXBvbmVudE5hbWUsIHBvc2l0aW9uLCBtb2RlLCBkYXRhIH0pO1xyXG4gIH1cclxuXHJcbn1cclxuKi9cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdhbnknLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2lkZW5hdlNlcnZpY2Uge1xyXG4gIHB1YmxpYyBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8e30+KCk7XHJcbiAgcHVibGljIHN1YmplY3ROYXYgPSBuZXcgU3ViamVjdDx7fT4oKTtcclxuICBwdWJsaWMgc2lkZU5hdlNlcnZpY2VDb2RlID0gbmV3IFN1YmplY3Q8e30+KCk7XHJcbiAgcHVibGljIHN1YmplY3ROYXZFZGl0VGFibGUgPSBuZXcgUmVwbGF5U3ViamVjdDx7fT4oKTtcclxuICBwdWJsaWMgc3ViamVjdE5hdkFmdGVyRWRpdFRhYmxlID0gbmV3IFJlcGxheVN1YmplY3Q8e30+KCk7XHJcbiAgcHVibGljIHN1YmplY3RUYWJsZWRhdGEgPSBuZXcgUmVwbGF5U3ViamVjdDx7fT4oKTtcclxuICBwdWJsaWMgc3ViamVjdE5hdldlZWtEdXJhdGlvbiA9IG5ldyBCZWhhdmlvclN1YmplY3Qoe30pO1xyXG4gIHB1YmxpYyBzaWRlTmF2T3BlbmVkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcbiAgcHVibGljIGRhdGE6IGFueSA9IG5ldyBSZXBsYXlTdWJqZWN0KCk7XHJcbiAgcHVibGljIGZpZWxkOiBhbnkgPSBuZXcgUmVwbGF5U3ViamVjdCgpO1xyXG4gIHB1YmxpYyBtb2RlOiBhbnkgPSBuZXcgUmVwbGF5U3ViamVjdCgpO1xyXG4gIHB1YmxpYyBpbmRleDogYW55ID0gbmV3IFJlcGxheVN1YmplY3QoKTtcclxuICBwdWJsaWMgdmFsdWU6IGFueSA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIHB1YmxpYyBkaXNjb3VudFRhYmxlID0gbmV3IFN1YmplY3Q8e30+KCk7XHJcbiAgcHVibGljIHJlc29sdmVNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNvbmZpcm1Nb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGZvcm1Hcm91cDogYW55ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcclxuICBwdWJsaWMgdW5zdWJzY3JpYmVTdWJqZWN0OiBhbnkgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIHB1YmxpYyBjb250ZW50RGF0YTogYW55ID0ge307XHJcbiAgcHVibGljIGFmdGVyQ2xvc2VkOiBSZXBsYXlTdWJqZWN0PGFueT4gPSBuZXcgUmVwbGF5U3ViamVjdCgpO1xyXG5cclxuICBwdWJsaXNoKGV2ZW50TmFtZTogc3RyaW5nLCBjb21wb25lbnROYW1lOiBhbnksIHBvc2l0aW9uOiBhbnkgPSAnZW5kJywgbW9kZTogYW55ID0gJ292ZXInLCBjb250ZW50PzogYW55KSB7XHJcbiAgICB0aGlzLnNpZGVOYXZPcGVuZWQubmV4dCh0cnVlKTtcclxuICAgIGlmIChjb250ZW50KSB7XHJcbiAgICAgIHRoaXMuY29udGVudERhdGEgPSBjb250ZW50O1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdWJqZWN0Lm5leHQoeyBldmVudE5hbWUsIGNvbXBvbmVudE5hbWUsIHBvc2l0aW9uLCBtb2RlLCBjb250ZW50IH0pO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VTaWRlbmF2KGRhdGE/OiBhbnkpIHtcclxuICAgIHRoaXMucHVibGlzaCgnY2xvc2UnLCBudWxsKTtcclxuICAgIHRoaXMuYWZ0ZXJDbG9zZWQubmV4dChkYXRhKTtcclxuICAgIHRoaXMuYWZ0ZXJDbG9zZWQgPSBuZXcgUmVwbGF5U3ViamVjdCgpO1xyXG4gICAgdGhpcy5jb250ZW50RGF0YSA9IHt9O1xyXG4gIH1cclxufVxyXG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZW5hdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9zaWRlbmF2LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSy9ELE1BQU0sT0FBTyxjQUFjO0lBQ2xCLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBTSxDQUFDO0lBQzVCLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxJQUFJLEdBQVEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNoQyxLQUFLLEdBQVEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNqQyxJQUFJLEdBQVEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNoQyxLQUFLLEdBQVEsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUNqQyxLQUFLLEdBQVEsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsV0FBVyxHQUFRLEVBQUUsQ0FBQztJQUN0QixXQUFXLEdBQXVCLElBQUksYUFBYSxFQUFFLENBQUM7SUFFN0QsT0FBTyxDQUFDLFNBQWlCLEVBQUUsYUFBa0IsRUFBRSxXQUFnQixLQUFLLEVBQUUsT0FBWSxNQUFNLEVBQUUsT0FBYTtRQUNyRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7UUFDN0IsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFVO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO3VHQXhCVSxjQUFjOzJHQUFkLGNBQWMsY0FGWCxNQUFNOzsyRkFFVCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWRlbmF2U2VydmljZSB7XHJcbiAgcHVibGljIHN1YmplY3QgPSBuZXcgU3ViamVjdDx7fT4oKTtcclxuICBwdWJsaWMgc2lkZU5hdk9wZW5lZCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG4gIHB1YmxpYyBkYXRhOiBhbnkgPSBuZXcgUmVwbGF5U3ViamVjdCgpO1xyXG4gIHB1YmxpYyBmaWVsZDogYW55ID0gbmV3IFJlcGxheVN1YmplY3QoKTtcclxuICBwdWJsaWMgbW9kZTogYW55ID0gbmV3IFJlcGxheVN1YmplY3QoKTtcclxuICBwdWJsaWMgaW5kZXg6IGFueSA9IG5ldyBSZXBsYXlTdWJqZWN0KCk7XHJcbiAgcHVibGljIHZhbHVlOiBhbnkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuICBwdWJsaWMgY29udGVudERhdGE6IGFueSA9IHt9O1xyXG4gIHB1YmxpYyBhZnRlckNsb3NlZDogUmVwbGF5U3ViamVjdDxhbnk+ID0gbmV3IFJlcGxheVN1YmplY3QoKTtcclxuXHJcbiAgcHVibGlzaChldmVudE5hbWU6IHN0cmluZywgY29tcG9uZW50TmFtZTogYW55LCBwb3NpdGlvbjogYW55ID0gJ2VuZCcsIG1vZGU6IGFueSA9ICdvdmVyJywgY29udGVudD86IGFueSkge1xyXG4gICAgdGhpcy5zaWRlTmF2T3BlbmVkLm5leHQodHJ1ZSk7XHJcbiAgICBpZiAoY29udGVudCkge1xyXG4gICAgICB0aGlzLmNvbnRlbnREYXRhID0gY29udGVudDtcclxuICAgIH1cclxuICAgIHRoaXMuc3ViamVjdC5uZXh0KHsgZXZlbnROYW1lLCBjb21wb25lbnROYW1lLCBwb3NpdGlvbiwgbW9kZSwgY29udGVudCB9KTtcclxuICB9XHJcblxyXG4gIGNsb3NlU2lkZW5hdihkYXRhPzogYW55KSB7XHJcbiAgICB0aGlzLnB1Ymxpc2goJ2Nsb3NlJywgbnVsbCk7XHJcbiAgICB0aGlzLmFmdGVyQ2xvc2VkLm5leHQoZGF0YSk7XHJcbiAgICB0aGlzLmFmdGVyQ2xvc2VkID0gbmV3IFJlcGxheVN1YmplY3QoKTtcclxuICAgIHRoaXMuY29udGVudERhdGEgPSB7fTtcclxuICB9XHJcbn1cclxuIl19