@bizdoc/core 2.3.15 → 2.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/themes/brown.min.css +49 -42
- package/assets/themes/dark.min.css +47 -40
- package/assets/themes/deep-purple-light-blue.min.css +46 -44
- package/assets/themes/deep-purple-teal.min.css +46 -44
- package/assets/themes/default.min.css +46 -44
- package/assets/themes/green.min.css +49 -42
- package/assets/themes/indigo.min.css +49 -42
- package/assets/themes/syncfusion.min.css +90 -0
- package/esm2022/lib/admin/architecture/designer.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/cube.component.mjs +10 -9
- package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +3 -3
- package/esm2022/lib/admin/form/workflow/node.component.mjs +4 -4
- package/esm2022/lib/admin/form/workflow/role-node.component.mjs +5 -5
- package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +2 -2
- package/esm2022/lib/admin/patterns/patterns.component.mjs +3 -3
- package/esm2022/lib/admin/profiler/outofoffice.component.mjs +9 -7
- package/esm2022/lib/app.component.mjs +5 -1
- package/esm2022/lib/browse/filter/filter.component.mjs +2 -3
- package/esm2022/lib/compose/action/assign-action.component.mjs +4 -4
- package/esm2022/lib/compose/action/moveto-action.component.mjs +8 -8
- package/esm2022/lib/compose/action/return-action.component.mjs +3 -3
- package/esm2022/lib/core/models.mjs +1 -1
- package/esm2022/lib/core/translations.mjs +5 -4
- package/esm2022/lib/cube/grid/spreadsheet.component.mjs +16 -11
- package/esm2022/lib/cube/matrix/table.component.mjs +3 -3
- package/esm2022/lib/modules/grid.module.mjs +3 -3
- package/esm2022/lib/options/options.component.mjs +6 -4
- package/esm2022/lib/scheduler/schedule.component.mjs +3 -3
- package/fesm2022/bizdoc-core.mjs +78 -64
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/admin/architecture/elements/cube.component.d.ts +1 -1
- package/lib/admin/profiler/outofoffice.component.d.ts +2 -0
- package/lib/core/translations.d.ts +4 -3
- package/lib/cube/grid/spreadsheet.component.d.ts +6 -1
- package/lib/options/options.component.d.ts +2 -0
- package/package.json +1 -1
@@ -6,7 +6,7 @@ import { MatChipInput } from '@angular/material/chips';
|
|
6
6
|
import { COMMA, ENTER, SEMICOLON } from '@angular/cdk/keycodes';
|
7
7
|
import { MatInput } from '@angular/material/input';
|
8
8
|
import { BIZDOC_CONFIG } from '../core/configuration';
|
9
|
-
import { isString } from '../core/functions';
|
9
|
+
import { isMobile, isString } from '../core/functions';
|
10
10
|
import * as i0 from "@angular/core";
|
11
11
|
import * as i1 from "@angular/cdk/overlay";
|
12
12
|
import * as i2 from "@angular/forms";
|
@@ -38,6 +38,8 @@ export class OptionsComponent {
|
|
38
38
|
this._sb = _sb;
|
39
39
|
this._session = _session;
|
40
40
|
this._destroy = new Subject();
|
41
|
+
this.today = new Date();
|
42
|
+
this.isMobile = isMobile();
|
41
43
|
this._requiredValidator = (control) => {
|
42
44
|
const parent = control.parent;
|
43
45
|
if (parent && parent.controls.active.value && !control.value)
|
@@ -217,11 +219,11 @@ export class OptionsComponent {
|
|
217
219
|
this._destroy.complete();
|
218
220
|
}
|
219
221
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OptionsComponent, deps: [{ token: OPTION_PANEL }, { token: i1.OverlayRef }, { token: i2.FormBuilder }, { token: i3.AccountService }, { token: i4.PromptService }, { token: i5.SessionService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
|
220
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: OptionsComponent, selector: "bizdoc-options", viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "outOfOffice", first: true, predicate: ["outOfOffice"], descendants: true, read: MatExpansionPanel, static: true }, { propertyName: "notifications", first: true, predicate: ["notifications"], descendants: true, read: MatExpansionPanel, static: true }], ngImport: i0, template: "<form [formGroup]=\"form\" autocomplete=\"off\">\r\n <mat-accordion>\r\n <mat-expansion-panel #notifications>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Notifications' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>notifications</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"notifications\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"toggleSound()\" [bizdocTooltip]=\"'Sound'|translate\"><mat-icon>{{options.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n <br />\r\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #emails>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Emails' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>alternate_email</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #outOfOffice>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'OutOfOffice' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>trending_flat</mat-icon>-->\r\n <!--{{'OutOfOfficeTip' | translate}}-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitueId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"setSubstitute($event)\">\r\n <mat-option *ngFor=\"let u of susers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <div>\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"from\" formControlName=\"from\" placeholder=\"{{'From'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"from\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #from></mat-datepicker>\r\n </mat-form-field>\r\n \r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"to\" formControlName=\"to\" [min]=\"form.value.outOfOffice?.from\" placeholder=\"{{'To'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"to\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #to></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #grantAccess>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'GrantAccess' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>account_circle</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"grantAccess\" class=\"grant-section\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n <mat-chip-row *ngFor=\"let u of form.value.grantAccess.users || []\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [formControl]=\"gusers\" placeholder=\"{{'Users'| translate}}\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #preferences>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Preferences' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon></mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-chip-grid #chips>\r\n <mat-chip-row *ngFor=\"let item of form.value.tags\"\r\n [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'Tags'|translate\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n <mat-slide-toggle [formControl]=\"aRIA\">{{'ARIA' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n</form>\r\n", styles: [":host{max-width:80vw}.grant-section{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i7.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i7.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "directive", type: i8.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i8.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i8.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i8.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i8.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "component", type: i9.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i9.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i9.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i10.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i11.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i10.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i12.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i12.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i12.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i13.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i14.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i15.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i16.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i17.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i18.TranslatePipe, name: "translate" }, { kind: "pipe", type: i19.UserNamePipe, name: "userName" }] }); }
|
222
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: OptionsComponent, selector: "bizdoc-options", viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }, { propertyName: "outOfOffice", first: true, predicate: ["outOfOffice"], descendants: true, read: MatExpansionPanel, static: true }, { propertyName: "notifications", first: true, predicate: ["notifications"], descendants: true, read: MatExpansionPanel, static: true }], ngImport: i0, template: "<form [formGroup]=\"form\" autocomplete=\"off\">\r\n <mat-accordion>\r\n <mat-expansion-panel #notifications>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Notifications' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>notifications</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"notifications\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"toggleSound()\" [bizdocTooltip]=\"'Sound'|translate\"><mat-icon>{{options.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n <br />\r\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #emails>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Emails' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>alternate_email</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #outOfOffice>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'OutOfOffice' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>trending_flat</mat-icon>-->\r\n <!--{{'OutOfOfficeTip' | translate}}-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitueId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"setSubstitute($event)\">\r\n <mat-option *ngFor=\"let u of susers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"dates\" required>\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n @if (form.controls.outOfOffice.controls.from.hasError('required') || form.controls.outOfOffice.controls.to.hasError('required')) {\r\n <mat-error [innerHTML]=\"'AreRequiredErr'|translate : ('Dates'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #grantAccess>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'GrantAccess' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>account_circle</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"grantAccess\" class=\"grant-section\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n <mat-chip-row *ngFor=\"let u of form.value.grantAccess.users || []\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [formControl]=\"gusers\" placeholder=\"{{'Users'| translate}}\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #preferences>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Preferences' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon></mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-chip-grid #chips>\r\n <mat-chip-row *ngFor=\"let item of form.value.tags\"\r\n [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'Tags'|translate\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n <mat-slide-toggle [formControl]=\"aRIA\">{{'ARIA' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n</form>\r\n", styles: [":host{max-width:80vw}.grant-section{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i7.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i7.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "directive", type: i8.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i8.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i8.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i8.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i8.MatExpansionPanelDescription, selector: "mat-panel-description" }, { kind: "component", type: i9.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i9.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i9.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i9.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i9.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: i10.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i11.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i10.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i12.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i12.MatLabel, selector: "mat-label" }, { kind: "directive", type: i12.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i12.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i12.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i13.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i14.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i15.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i16.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i17.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i18.TranslatePipe, name: "translate" }, { kind: "pipe", type: i19.UserNamePipe, name: "userName" }] }); }
|
221
223
|
}
|
222
224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: OptionsComponent, decorators: [{
|
223
225
|
type: Component,
|
224
|
-
args: [{ selector: 'bizdoc-options', template: "<form [formGroup]=\"form\" autocomplete=\"off\">\r\n <mat-accordion>\r\n <mat-expansion-panel #notifications>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Notifications' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>notifications</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"notifications\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"toggleSound()\" [bizdocTooltip]=\"'Sound'|translate\"><mat-icon>{{options.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n <br />\r\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #emails>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Emails' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>alternate_email</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #outOfOffice>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'OutOfOffice' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>trending_flat</mat-icon>-->\r\n <!--{{'OutOfOfficeTip' | translate}}-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitueId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"setSubstitute($event)\">\r\n <mat-option *ngFor=\"let u of susers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <
|
226
|
+
args: [{ selector: 'bizdoc-options', template: "<form [formGroup]=\"form\" autocomplete=\"off\">\r\n <mat-accordion>\r\n <mat-expansion-panel #notifications>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Notifications' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>notifications</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"notifications\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"toggleSound()\" [bizdocTooltip]=\"'Sound'|translate\"><mat-icon>{{options.notifications.sound ? 'volume_up' : 'volume_off'}}</mat-icon></button>\r\n </div>\r\n <br />\r\n <mat-slide-toggle formControlName=\"myDocumentStateChange\">{{'MyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"anyDocumentStateChange\">{{'AnyStateChange' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentMyDocument\">{{'CommentMyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"commentAnyDocument\">{{'CommentAnyDocument' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"likes\" [style.display]=\"voating?'':'none'\">{{'LikedComment' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"tagged\">{{'TaggedInComments' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"upcomingEvents\">{{'UpcomingEvents' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"cubeAnomaly\">{{'CubeAnomaly' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #emails>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Emails' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>alternate_email</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"emails\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-slide-toggle formControlName=\"mail\">{{'Mails' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"chat\">{{'Conversations' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"notifications\">{{'EmailNotifications' | translate}}</mat-slide-toggle>\r\n <mat-slide-toggle formControlName=\"events\">{{'AlarmEvents' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #outOfOffice>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'OutOfOffice' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>trending_flat</mat-icon>-->\r\n <!--{{'OutOfOfficeTip' | translate}}-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"outOfOffice\" class=\"column\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitueId\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"form.value.outOfOffice.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"setSubstitute($event)\">\r\n <mat-option *ngFor=\"let u of susers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'OutOfOfficeTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Dates'|translate}}</mat-label>\r\n <mat-date-range-input [rangePicker]=\"dates\" required>\r\n <input matStartDate formControlName=\"from\" [placeholder]=\"'From'|translate\" [min]=\"today\">\r\n <input matEndDate formControlName=\"to\" [placeholder]=\"'To'|translate\">\r\n </mat-date-range-input>\r\n <mat-datepicker-toggle matSuffix [for]=\"dates\"></mat-datepicker-toggle>\r\n <mat-date-range-picker #dates [touchUi]=\"isMobile\"></mat-date-range-picker>\r\n @if (form.controls.outOfOffice.controls.from.hasError('required') || form.controls.outOfOffice.controls.to.hasError('required')) {\r\n <mat-error [innerHTML]=\"'AreRequiredErr'|translate : ('Dates'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #grantAccess>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'GrantAccess' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon>account_circle</mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div formGroupName=\"grantAccess\" class=\"grant-section\">\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!form.value.grantAccess.active\">\r\n <mat-chip-row *ngFor=\"let u of form.value.grantAccess.users || []\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [formControl]=\"gusers\" placeholder=\"{{'Users'| translate}}\"\r\n #grantInput\r\n [matAutocomplete]=\"grantAuto\"\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\"> - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-hint>{{'GrantTip' | translate}}</mat-hint>\r\n </mat-form-field>\r\n </div>\r\n </mat-expansion-panel>\r\n <mat-expansion-panel #preferences>\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n {{'Preferences' | translate}}\r\n </mat-panel-title>\r\n <mat-panel-description>\r\n <!--<mat-icon></mat-icon>-->\r\n </mat-panel-description>\r\n </mat-expansion-panel-header>\r\n <div class=\"column\">\r\n <mat-form-field>\r\n <mat-chip-grid #chips>\r\n <mat-chip-row *ngFor=\"let item of form.value.tags\"\r\n [removable]=\"true\" (removed)=\"removeTag(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'Tags'|translate\"\r\n [matChipInputFor]=\"chips\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"addTag($event)\">\r\n </mat-form-field>\r\n <mat-slide-toggle [formControl]=\"aRIA\">{{'ARIA' | translate}}</mat-slide-toggle>\r\n </div>\r\n </mat-expansion-panel>\r\n </mat-accordion>\r\n</form>\r\n", styles: [":host{max-width:80vw}.grant-section{display:flex;flex-direction:column}\n"] }]
|
225
227
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
226
228
|
type: Inject,
|
227
229
|
args: [OPTION_PANEL]
|
@@ -241,4 +243,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
241
243
|
type: ViewChild,
|
242
244
|
args: ['notifications', { read: MatExpansionPanel, static: true }]
|
243
245
|
}] } });
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL29wdGlvbnMvb3B0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL29wdGlvbnMvb3B0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsT0FBTyxFQUFjLEtBQUssRUFBTSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTdDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBYSxTQUFTLENBQUMsQ0FBQztBQVd0RSx1QkFBdUI7QUFDdkIsTUFBTSxPQUFPLGdCQUFnQjtJQXNEM0IsbUJBQW1CO0lBQ25CLFlBQTBDLE9BQW1CLEVBQUUsVUFBc0IsRUFBVSxHQUFn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dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIEluamVjdGlvblRva2VuLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBtZXJnZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgTWF0RXhwYW5zaW9uUGFuZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQgeyBNYXRDaGlwSW5wdXQsIE1hdENoaXBJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xyXG5pbXBvcnQgeyBDT01NQSwgRU5URVIsIFNFTUlDT0xPTiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgQklaRE9DX0NPTkZJRywgQml6RG9jQ29uZmlnIH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IE9wdGlvbnMsIFVzZXJJbmZvIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIE9wdGlvblR5cGUgPSAnbm90aWZpY2F0aW9ucycgfCAnb3V0b2ZvZmZpY2UnIHwgJ2VtYWlscycgfCAnZ3JhbnRhY2Nlc3MnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9QVElPTl9QQU5FTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPcHRpb25EYXRhPignb3B0aW9ucycpO1xyXG5cclxuaW50ZXJmYWNlIE9wdGlvbkRhdGEge1xyXG4gIG9wZW46IE9wdGlvblR5cGU7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLW9wdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vcHRpb25zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIG9wdGlvbnMgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIE9wdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWRWYWxpZGF0b3IgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwgPT4ge1xyXG4gICAgY29uc3QgcGFyZW50ID0gKGNvbnRyb2wucGFyZW50IGFzIEZvcm1Hcm91cCk7XHJcbiAgICBpZiAocGFyZW50ICYmIHBhcmVudC5jb250cm9scy5hY3RpdmUudmFsdWUgJiYgIWNvbnRyb2wudmFsdWUpIHJldHVybiB7XHJcbiAgICAgIHJlcXVpcmVkOiB0cnVlXHJcbiAgICB9XHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoJ3N1YnN0aXR1ZUlucHV0JywgeyByZWFkOiBNYXRJbnB1dCB9KSBzdWJzdGl0dWVJbnB1dDogTWF0SW5wdXQ7XHJcbiAgQFZpZXdDaGlsZCgnZ3JhbnRJbnB1dCcsIHsgcmVhZDogTWF0Q2hpcElucHV0IH0pIGdyYW50SW5wdXQ6IE1hdENoaXBJbnB1dDtcclxuICByZWFkb25seSBsYW5ndWFnZSA9IHRoaXMuX2ZiLmNvbnRyb2wodGhpcy5fc2Vzc2lvbi5sYW5ndWFnZSk7XHJcbiAgcmVhZG9ubHkgYVJJQSA9IHRoaXMuX2ZiLmNvbnRyb2wodGhpcy5fc2Vzc2lvbi5hcmlhKTtcclxuICByZWFkb25seSBsYW5ndWFnZXMgPSB0aGlzLl9zZXNzaW9uLmxhbmd1YWdlcztcclxuICByZWFkb25seSBndXNlcnMgPSB0aGlzLl9mYi5jb250cm9sKFtdKTtcclxuICByZWFkb25seSBzdWJzdGl0dWVJZCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIG5vdGlmaWNhdGlvbnM6IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgYWN0aXZlOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgbGlrZXM6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBjb21tZW50TXlEb2N1bWVudDogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIGNvbW1lbnRBbnlEb2N1bWVudDogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIHVwY29taW5nRXZlbnRzOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgdGFnZ2VkOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgYW55RG9jdW1lbnRTdGF0ZUNoYW5nZTogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIG15RG9jdW1lbnRTdGF0ZUNoYW5nZTogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIGN1YmVBbm9tYWx5OiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgc291bmQ6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgfSksXHJcbiAgICB0YWdzOiB0aGlzLl9mYi5jb250cm9sKG51bGwpLFxyXG4gICAgZW1haWxzOiB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgIGFjdGl2ZTogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIG1haWw6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBjaGF0OiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgbm90aWZpY2F0aW9uczogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIGV2ZW50czogdGhpcy5fZmIuY29udHJvbChmYWxzZSlcclxuICAgIH0pLFxyXG4gICAgb3V0T2ZPZmZpY2U6IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgYWN0aXZlOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgc3Vic3RpdHVlSWQ6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgdGhpcy5fcmVxdWlyZWRWYWxpZGF0b3IpLFxyXG4gICAgICBmcm9tOiB0aGlzLl9mYi5jb250cm9sKG51bGwpLFxyXG4gICAgICB0bzogdGhpcy5fZmIuY29udHJvbChudWxsKVxyXG4gICAgfSksXHJcbiAgICBncmFudEFjY2VzczogdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBhY3RpdmU6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICB1c2VyczogdGhpcy5fZmIuY29udHJvbChudWxsLCB0aGlzLl9yZXF1aXJlZFZhbGlkYXRvcilcclxuICAgIH0pXHJcbiAgfSk7XHJcbiAgc3VzZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICBndXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+O1xyXG4gIHZvYXRpbmc6IGJvb2xlYW47XHJcbiAgb3B0aW9uczogT3B0aW9ucztcclxuICByZWFkb25seSBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQSwgU0VNSUNPTE9OXTtcclxuICBAVmlld0NoaWxkKCdvdXRPZk9mZmljZScsIHsgcmVhZDogTWF0RXhwYW5zaW9uUGFuZWwsIHN0YXRpYzogdHJ1ZSB9KSBvdXRPZk9mZmljZTogTWF0RXhwYW5zaW9uUGFuZWw7XHJcbiAgQFZpZXdDaGlsZCgnbm90aWZpY2F0aW9ucycsIHsgcmVhZDogTWF0RXhwYW5zaW9uUGFuZWwsIHN0YXRpYzogdHJ1ZSB9KSBub3RpZmljYXRpb25zOiBNYXRFeHBhbnNpb25QYW5lbDtcclxuICAvKiogb3B0aW9ucyBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChPUFRJT05fUEFORUwpIHByaXZhdGUgX29wdGlvbjogT3B0aW9uRGF0YSwgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiwgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLCBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdChCSVpET0NfQ09ORklHKSBjb25maWc6IEJpekRvY0NvbmZpZykge1xyXG4gICAgdGhpcy52b2F0aW5nID0gIWNvbmZpZy5jb21tZW50cyB8fCBjb25maWcuY29tbWVudHMudm90aW5nICE9PSBmYWxzZTtcclxuICAgIG1lcmdlKG92ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpLnBpcGUoZmlsdGVyKGsgPT4gay5rZXkgPT09ICdFc2NhcGUnKSksIG92ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpKS5cclxuICAgICAgc3Vic2NyaWJlKCgpID0+IG92ZXJsYXlSZWYuZGlzcG9zZSgpKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFSSUEudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKHYgPT4gdGhpcy5fc2Vzc2lvbi5hcmlhID0gdik7XHJcbiAgICB0aGlzLmxhbmd1YWdlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodiA9PiB0aGlzLl9zZXNzaW9uLmxhbmd1YWdlID0gdik7XHJcbiAgICBjb25zdCBvdXRPZk9mZmljZSA9IHRoaXMuZm9ybS5jb250cm9scy5vdXRPZk9mZmljZTtcclxuICAgIGNvbnN0IGdyYW50QWNjZXNzID0gdGhpcy5mb3JtLmNvbnRyb2xzLmdyYW50QWNjZXNzO1xyXG4gICAgY29uc3Qgbm90aWZpY2F0aW9ucyA9IHRoaXMuZm9ybS5jb250cm9scy5ub3RpZmljYXRpb25zO1xyXG4gICAgY29uc3QgZW1haWxzID0gdGhpcy5mb3JtLmNvbnRyb2xzLmVtYWlscztcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucztcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKG9wdGlvbnMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIGlmICghb3B0aW9ucy5ub3RpZmljYXRpb25zLmFjdGl2ZSlcclxuICAgICAgdGhpcy5fdG9nZ2xlKG5vdGlmaWNhdGlvbnMsIGZhbHNlLCAnbGlrZXMnLFxyXG4gICAgICAgICdjb21tZW50TXlEb2N1bWVudCcsXHJcbiAgICAgICAgJ2NvbW1lbnRBbnlEb2N1bWVudCcsXHJcbiAgICAgICAgJ3VwY29taW5nRXZlbnRzJyxcclxuICAgICAgICAndGFnZ2VkJyxcclxuICAgICAgICAnYW55RG9jdW1lbnRTdGF0ZUNoYW5nZScsXHJcbiAgICAgICAgJ215RG9jdW1lbnRTdGF0ZUNoYW5nZScsXHJcbiAgICAgICAgJ2N1YmVBbm9tYWx5Jyk7XHJcbiAgICBpZiAoIW9wdGlvbnMuZW1haWxzLmFjdGl2ZSlcclxuICAgICAgdGhpcy5fdG9nZ2xlKGVtYWlscywgZmFsc2UsICdtYWlsJyxcclxuICAgICAgICAnY2hhdCcsXHJcbiAgICAgICAgJ25vdGlmaWNhdGlvbnMnLFxyXG4gICAgICAgICdldmVudHMnKTtcclxuICAgIGlmICghb3B0aW9ucy5ncmFudEFjY2Vzcy5hY3RpdmUpXHJcbiAgICAgIHRoaXMuZ3VzZXJzLmRpc2FibGUoKTtcclxuICAgIGlmICghb3B0aW9ucy5vdXRPZk9mZmljZS5hY3RpdmUpIHtcclxuICAgICAgdGhpcy5zdWJzdGl0dWVJZC5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuX3RvZ2dsZShvdXRPZk9mZmljZSwgZmFsc2UsICdmcm9tJywgJ3RvJyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICghb3B0aW9ucy5vdXRPZk9mZmljZS5mcm9tKVxyXG4gICAgICB0aGlzLl90b2dnbGUob3V0T2ZPZmZpY2UsIGZhbHNlLCAndG8nKTtcclxuICAgIC8vIGNoYW5nZVxyXG4gICAgbm90aWZpY2F0aW9ucy5jb250cm9scy5hY3RpdmUudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKGFjdGl2ZSA9PlxyXG4gICAgICAgIHRoaXMuX3RvZ2dsZShub3RpZmljYXRpb25zLCBhY3RpdmUsICdsaWtlcycsXHJcbiAgICAgICAgICAnY29tbWVudE15RG9jdW1lbnQnLFxyXG4gICAgICAgICAgJ2NvbW1lbnRBbnlEb2N1bWVudCcsXHJcbiAgICAgICAgICAndXBjb21pbmdFdmVudHMnLFxyXG4gICAgICAgICAgJ3RhZ2dlZCcsXHJcbiAgICAgICAgICAnYW55RG9jdW1lbnRTdGF0ZUNoYW5nZScsXHJcbiAgICAgICAgICAnbXlEb2N1bWVudFN0YXRlQ2hhbmdlJyxcclxuICAgICAgICAgICdjdWJlQW5vbWFseScpKTtcclxuICAgIGVtYWlscy5jb250cm9scy5hY3RpdmUudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKGFjdGl2ZSA9PiB0aGlzLl90b2dnbGUoZW1haWxzLCBhY3RpdmUsICdtYWlsJyxcclxuICAgICAgICAnY2hhdCcsXHJcbiAgICAgICAgJ25vdGlmaWNhdGlvbnMnLFxyXG4gICAgICAgICdldmVudHMnKSk7XHJcbiAgICBncmFudEFjY2Vzcy5jb250cm9scy5hY3RpdmUudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKGFjdGl2ZSA9PiB7XHJcbiAgICAgICAgaWYgKGFjdGl2ZSkge1xyXG4gICAgICAgICAgdGhpcy5ndXNlcnMuZW5hYmxlKCk7XHJcbiAgICAgICAgICB0aGlzLmdyYW50SW5wdXQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB0aGlzLmd1c2Vycy5lbmFibGUoKTtcclxuICAgICAgfSk7XHJcbiAgICBvdXRPZk9mZmljZS5jb250cm9scy5hY3RpdmUudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKGFjdGl2ZSA9PiB7XHJcbiAgICAgICAgaWYgKGFjdGl2ZSkge1xyXG4gICAgICAgICAgdGhpcy5zdWJzdGl0dWVJZC5lbmFibGUoKTtcclxuICAgICAgICAgIHRoaXMuc3Vic3RpdHVlSW5wdXQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5zdWJzdGl0dWVJZC5kaXNhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5fdG9nZ2xlKG91dE9mT2ZmaWNlLCBhY3RpdmUsICdmcm9tJyk7XHJcbiAgICAgICAgdGhpcy5fdG9nZ2xlKG91dE9mT2ZmaWNlLCBhY3RpdmUgJiYgb3V0T2ZPZmZpY2UuY29udHJvbHMuZnJvbS52YWx1ZSwgJ3RvJyk7XHJcbiAgICAgIH0pO1xyXG4gICAgb3V0T2ZPZmZpY2UuY29udHJvbHMuZnJvbS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUoZnJvbSA9PlxyXG4gICAgICAgIHRoaXMuX3RvZ2dsZShvdXRPZk9mZmljZSwgZnJvbSAhPT0gbnVsbCwgJ3RvJykpO1xyXG4gICAgdGhpcy5ndXNlcnMkID0gdGhpcy5ndXNlcnMudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICBmaWx0ZXIodiA9PiBpc1N0cmluZyh2KSksXHJcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PiB0aGlzLl9hY2NvdW50cy5maW5kQWxsKHYgYXMgYW55KSksXHJcbiAgICAgIG1hcChyID0+IHtcclxuICAgICAgICBjb25zdCBleGNsdWRlID0gKGdyYW50QWNjZXNzLnZhbHVlLnVzZXJzIGFzIHN0cmluZ1tdKT8uc2xpY2UoKSB8fCBbXTtcclxuICAgICAgICBleGNsdWRlLnB1c2godGhpcy5fc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCk7XHJcbiAgICAgICAgcmV0dXJuIHIuZmlsdGVyKHUgPT4gZXhjbHVkZS5pbmRleE9mKHUuaWQpIDwgMCk7XHJcbiAgICAgIH0pKTtcclxuICAgIHRoaXMuc3VzZXJzJCA9IHRoaXMuc3Vic3RpdHVlSWQudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICB0YXAodiA9PlxyXG4gICAgICAgICF2ICYmIG91dE9mT2ZmaWNlLmNvbnRyb2xzLnN1YnN0aXR1ZUlkLnNldFZhbHVlKG51bGwpXHJcbiAgICAgICksXHJcbiAgICAgIGZpbHRlcih2ID0+IGlzU3RyaW5nKHYpKSxcclxuICAgICAgc3dpdGNoTWFwKHYgPT4gdGhpcy5fYWNjb3VudHMuZmluZEFsbCh2KSksXHJcbiAgICAgIG1hcChyID0+IHIuZmlsdGVyKHUgPT4gdS5pZCAhPT0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCkpKTtcclxuICAgIGlmIChvcHRpb25zLm91dE9mT2ZmaWNlLnN1YnN0aXR1ZUlkKVxyXG4gICAgICB0aGlzLl9hY2NvdW50cy5nZXQob3B0aW9ucy5vdXRPZk9mZmljZS5zdWJzdGl0dWVJZCkuc3Vic2NyaWJlKHUgPT5cclxuICAgICAgICB0aGlzLnN1YnN0aXR1ZUlkLnNldFZhbHVlKHUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KSk7XHJcbiAgICBpZiAodGhpcy5fb3B0aW9uKVxyXG4gICAgICBzd2l0Y2ggKHRoaXMuX29wdGlvbi5vcGVuKSB7XHJcbiAgICAgICAgY2FzZSAnb3V0b2ZvZmZpY2UnOlxyXG4gICAgICAgICAgdGhpcy5vdXRPZk9mZmljZS5vcGVuKCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLm9wZW4oKTtcclxuICAgICAgfVxyXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyMDApLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLmZvcm0udmFsaWQgJiZcclxuICAgICAgdGhpcy5fc2Vzc2lvbi51cGRhdGUodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpLnN1YnNjcmliZSh7IGVycm9yOiAoKSA9PiB0aGlzLl9zYi5lcnJvcigpIH0pKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdG9nZ2xlKGdyb3VwOiBGb3JtR3JvdXAsIGFjdGl2ZTogYm9vbGVhbiwgLi4uY29udHJvbHM6IHN0cmluZ1tdKSB7XHJcbiAgICBjb250cm9scy5mb3JFYWNoKG5hbWUgPT4ge1xyXG4gICAgICBpZiAoIWFjdGl2ZSkgZ3JvdXAuY29udHJvbHNbbmFtZV0uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIGVsc2UgZ3JvdXAuY29udHJvbHNbbmFtZV0uZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICB0b2dnbGVTb3VuZCgpIHtcclxuICAgIHRoaXMuZm9ybS5jb250cm9scy5ub3RpZmljYXRpb25zLmNvbnRyb2xzLnNvdW5kLnNldFZhbHVlKCF0aGlzLm9wdGlvbnMubm90aWZpY2F0aW9ucy5zb3VuZCk7XHJcbiAgfVxyXG4gIGRpc3BsYXkgPSAoaXRlbTogVXNlckluZm8pID0+IHtcclxuICAgIHJldHVybiBpdGVtID8gaXRlbS5uYW1lIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGFkZFRhZyhldmVudDogTWF0Q2hpcElucHV0RXZlbnQpIHtcclxuICAgIGNvbnN0IHsgY2hpcElucHV0LCB2YWx1ZSB9ID0gZXZlbnQ7XHJcblxyXG4gICAgLy8gQWRkIG91ciBmcnVpdFxyXG4gICAgaWYgKCh2YWx1ZSB8fCAnJykudHJpbSgpKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy50YWdzLnB1c2godmFsdWUudHJpbSgpKTtcclxuICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe30pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJlc2V0IHRoZSBpbnB1dCB2YWx1ZSBcclxuICAgIGNoaXBJbnB1dD8uY2xlYXIoKTtcclxuICB9XHJcbiAgcmVtb3ZlVGFnKHRhZzogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMudGFncy5yZW1vdmUodGFnKTtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHt9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkXHJcbiAgICovXHJcbiAgcmVtb3ZlR3JhbnQoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgdXNlcnMgPSB0aGlzLmZvcm0udmFsdWUuZ3JhbnRBY2Nlc3MudXNlcnMgYXMgc3RyaW5nW107XHJcbiAgICBjb25zdCBpbmRleCA9IHVzZXJzLmluZGV4T2YoaWQpO1xyXG5cclxuICAgIGlmIChpbmRleCA+PSAwKVxyXG4gICAgICB1c2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe30pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaW5wXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgYWRkR3JhbnQoaW5wOiBIVE1MSW5wdXRFbGVtZW50LCBldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgY29uc3QgdXNlcnMgPSB0aGlzLmZvcm0udmFsdWUuZ3JhbnRBY2Nlc3MudXNlcnMgYXMgc3RyaW5nW107XHJcbiAgICBjb25zdCBpZCA9IGV2ZW50Lm9wdGlvbi52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICBpZiAoIXVzZXJzKVxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzLmdyYW50QWNjZXNzKS5jb250cm9scy51c2Vycy5zZXRWYWx1ZShbaWRdKTtcclxuICAgIGVsc2VcclxuICAgICAgdXNlcnMucHVzaChpZCk7XHJcbiAgICBpbnAudmFsdWUgPSAnJztcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHt9KTtcclxuICB9XHJcbiAgc2V0U3Vic3RpdHV0ZShldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgKHRoaXMuZm9ybS5jb250cm9scy5vdXRPZk9mZmljZSkuY29udHJvbHMuc3Vic3RpdHVlSWQuc2V0VmFsdWUoKGV2ZW50Lm9wdGlvbi52YWx1ZSBhcyBVc2VySW5mbykuaWQpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICA8bWF0LWFjY29yZGlvbj5cclxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsICNub3RpZmljYXRpb25zPlxyXG4gICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgIHt7J05vdGlmaWNhdGlvbnMnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj5ub3RpZmljYXRpb25zPC9tYXQtaWNvbj4tLT5cclxuICAgICAgICA8L21hdC1wYW5lbC1kZXNjcmlwdGlvbj5cclxuICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwibm90aWZpY2F0aW9uc1wiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aXZlXCI+e3snQWN0aXZlJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZVNvdW5kKClcIiBbYml6ZG9jVG9vbHRpcF09XCInU291bmQnfHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj57e29wdGlvbnMubm90aWZpY2F0aW9ucy5zb3VuZCA/ICd2b2x1bWVfdXAnIDogJ3ZvbHVtZV9vZmYnfX08L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxiciAvPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cIm15RG9jdW1lbnRTdGF0ZUNoYW5nZVwiPnt7J015U3RhdGVDaGFuZ2UnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiYW55RG9jdW1lbnRTdGF0ZUNoYW5nZVwiPnt7J0FueVN0YXRlQ2hhbmdlJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImNvbW1lbnRNeURvY3VtZW50XCI+e3snQ29tbWVudE15RG9jdW1lbnQnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiY29tbWVudEFueURvY3VtZW50XCI+e3snQ29tbWVudEFueURvY3VtZW50JyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImxpa2VzXCIgW3N0eWxlLmRpc3BsYXldPVwidm9hdGluZz8nJzonbm9uZSdcIj57eydMaWtlZENvbW1lbnQnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwidGFnZ2VkXCI+e3snVGFnZ2VkSW5Db21tZW50cycgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJ1cGNvbWluZ0V2ZW50c1wiPnt7J1VwY29taW5nRXZlbnRzJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImN1YmVBbm9tYWx5XCI+e3snQ3ViZUFub21hbHknIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgPG1hdC1leHBhbnNpb24tcGFuZWwgI2VtYWlscz5cclxuICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICB7eydFbWFpbHMnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj5hbHRlcm5hdGVfZW1haWw8L21hdC1pY29uPi0tPlxyXG4gICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJlbWFpbHNcIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImFjdGl2ZVwiPnt7J0FjdGl2ZScgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8YnIgLz5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJtYWlsXCI+e3snTWFpbHMnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiY2hhdFwiPnt7J0NvbnZlcnNhdGlvbnMnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwibm90aWZpY2F0aW9uc1wiPnt7J0VtYWlsTm90aWZpY2F0aW9ucycgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJldmVudHNcIj57eydBbGFybUV2ZW50cycgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCAjb3V0T2ZPZmZpY2U+XHJcbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAge3snT3V0T2ZPZmZpY2UnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj50cmVuZGluZ19mbGF0PC9tYXQtaWNvbj4tLT5cclxuICAgICAgICAgIDwhLS17eydPdXRPZk9mZmljZVRpcCcgfCB0cmFuc2xhdGV9fS0tPlxyXG4gICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJvdXRPZk9mZmljZVwiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aXZlXCI+e3snQWN0aXZlJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxiciAvPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbZm9ybUNvbnRyb2xdPVwic3Vic3RpdHVlSWRcIiB0eXBlPVwic2VhcmNoXCIgW21hdEF1dG9jb21wbGV0ZV09XCJzYXV0b1wiICNzdWJzdGl0dWVJbnB1dFxyXG4gICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQXNzb2NpYXRlJyB8IHRyYW5zbGF0ZVwiIFtyZXF1aXJlZF09XCJmb3JtLnZhbHVlLm91dE9mT2ZmaWNlLmFjdGl2ZVwiIC8+XHJcbiAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjc2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwic2V0U3Vic3RpdHV0ZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1IG9mIHN1c2VycyQgfCBhc3luY1wiIFt2YWx1ZV09XCJ1XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3t1Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICAgICAgPG1hdC1oaW50Pnt7J091dE9mT2ZmaWNlVGlwJyB8IHRyYW5zbGF0ZX19PC9tYXQtaGludD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJmcm9tXCIgZm9ybUNvbnRyb2xOYW1lPVwiZnJvbVwiIHBsYWNlaG9sZGVyPVwie3snRnJvbSd8IHRyYW5zbGF0ZX19XCIgLz5cclxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBbZm9yXT1cImZyb21cIiBtYXRTdWZmaXg+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZnJvbT48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICZuYnNwO1xyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwidG9cIiBmb3JtQ29udHJvbE5hbWU9XCJ0b1wiIFttaW5dPVwiZm9ybS52YWx1ZS5vdXRPZk9mZmljZT8uZnJvbVwiIHBsYWNlaG9sZGVyPVwie3snVG8nfCB0cmFuc2xhdGV9fVwiIC8+XHJcbiAgICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgW2Zvcl09XCJ0b1wiIG1hdFN1ZmZpeD48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICN0bz48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCAjZ3JhbnRBY2Nlc3M+XHJcbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAge3snR3JhbnRBY2Nlc3MnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj5hY2NvdW50X2NpcmNsZTwvbWF0LWljb24+LS0+XHJcbiAgICAgICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cImdyYW50QWNjZXNzXCIgY2xhc3M9XCJncmFudC1zZWN0aW9uXCI+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aXZlXCI+e3snQWN0aXZlJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtY2hpcC1ncmlkICNncmFudExpc3QgW2F0dHIuYXJpYS1sYWJlbF09XCJcIiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsdWUuZ3JhbnRBY2Nlc3MuYWN0aXZlXCI+XHJcbiAgICAgICAgICAgIDxtYXQtY2hpcC1yb3cgKm5nRm9yPVwibGV0IHUgb2YgZm9ybS52YWx1ZS5ncmFudEFjY2Vzcy51c2VycyB8fCBbXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlR3JhbnQodSlcIj5cclxuICAgICAgICAgICAgICB7e3UgfCB1c2VyTmFtZSB8IGFzeW5jfX1cclxuICAgICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L21hdC1jaGlwLXJvdz5cclxuICAgICAgICAgIDwvbWF0LWNoaXAtZ3JpZD5cclxuICAgICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwiZ3VzZXJzXCIgcGxhY2Vob2xkZXI9XCJ7eydVc2Vycyd8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgICAgICAgICAgICAjZ3JhbnRJbnB1dFxyXG4gICAgICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiZ3JhbnRBdXRvXCJcclxuICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImdyYW50TGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiPlxyXG4gICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2dyYW50QXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJhZGRHcmFudChncmFudElucHV0LCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1IG9mIGd1c2VycyQgfCBhc3luY1wiIFt2YWx1ZV09XCJ1LmlkXCI+XHJcbiAgICAgICAgICAgICAge3t1Lm5hbWV9fVxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidS5lbWFpbFwiPiZuYnNwOyAtIHt7dS5lbWFpbH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgICAgICA8bWF0LWhpbnQ+e3snR3JhbnRUaXAnIHwgdHJhbnNsYXRlfX08L21hdC1oaW50PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4gICAgPG1hdC1leHBhbnNpb24tcGFuZWwgI3ByZWZlcmVuY2VzPlxyXG4gICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgIHt7J1ByZWZlcmVuY2VzJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9tYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgPG1hdC1wYW5lbC1kZXNjcmlwdGlvbj5cclxuICAgICAgICAgIDwhLS08bWF0LWljb24+PC9tYXQtaWNvbj4tLT5cclxuICAgICAgICA8L21hdC1wYW5lbC1kZXNjcmlwdGlvbj5cclxuICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxtYXQtY2hpcC1ncmlkICNjaGlwcz5cclxuICAgICAgICAgICAgPG1hdC1jaGlwLXJvdyAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmb3JtLnZhbHVlLnRhZ3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwidHJ1ZVwiIChyZW1vdmVkKT1cInJlbW92ZVRhZyhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgIHt7aXRlbX19XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9tYXQtY2hpcC1yb3c+XHJcbiAgICAgICAgICA8L21hdC1jaGlwLWdyaWQ+XHJcbiAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cIidUYWdzJ3x0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcHNcIlxyXG4gICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIlxyXG4gICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cImFkZFRhZygkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBbZm9ybUNvbnRyb2xdPVwiYVJJQVwiPnt7J0FSSUEnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG4gIDwvbWF0LWFjY29yZGlvbj5cclxuPC9mb3JtPlxyXG4iXX0=
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL29wdGlvbnMvb3B0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL29wdGlvbnMvb3B0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRyxPQUFPLEVBQUUsT0FBTyxFQUFjLEtBQUssRUFBTSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLHVCQUF1QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVF2RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWEsU0FBUyxDQUFDLENBQUM7QUFXdEUsdUJBQXVCO0FBQ3ZCLE1BQU0sT0FBTyxnQkFBZ0I7SUF3RDNCLG1CQUFtQjtJQUNuQixZQUEwQyxPQUFtQixFQUFFLFVBQXNCLEVBQVUsR0FBZ0IsRUFDckcsU0FBeUIsRUFBVSxHQUFrQixFQUNyRCxRQUF3QixFQUNULE1BQW9CO1FBSEgsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFrQyxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBQ3JHLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUNyRCxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQTFEakIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDdkMsVUFBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbkIsYUFBUSxHQUFHLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLHVCQUFrQixHQUFHLENBQUMsT0FBd0IsRUFBaUMsRUFBRTtZQUN2RixNQUFNLE1BQU0sR0FBSSxPQUFPLENBQUMsTUFBb0IsQ0FBQztZQUM3QyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSztnQkFBRSxPQUFPO29CQUNuRSxRQUFRLEVBQUUsSUFBSTtpQkFDZixDQUFBO1FBQ0gsQ0FBQyxDQUFBO1FBR1EsYUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsY0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQ3BDLFdBQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixnQkFBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLFNBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUM3QixhQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQzVCLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQzlCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDMUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUMzQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUN2QyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUMvQixzQkFBc0IsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQy9DLHFCQUFxQixFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDOUMsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDcEMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQzthQUMvQixDQUFDO1lBQ0YsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUM1QixNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQ3JCLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQy9CLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQzdCLGFBQWEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3RDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7YUFDaEMsQ0FBQztZQUNGLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDMUIsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDL0IsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUM7Z0JBQzVELElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQzVCLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7YUFDM0IsQ0FBQztZQUNGLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDMUIsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDL0IsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUM7YUFDdkQsQ0FBQztTQUNILENBQUMsQ0FBQztRQUtNLHVCQUFrQixHQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQTBIbEUsWUFBTyxHQUFHLENBQUMsSUFBYyxFQUFFLEVBQUU7WUFDM0IsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNqQyxDQUFDLENBQUE7UUFwSEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDO1FBQ3BFLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakcsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkQsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBQ25ELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUNuRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDdkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU07WUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFDeEMsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLHdCQUF3QixFQUN4Qix1QkFBdUIsRUFDdkIsYUFBYSxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTTtZQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUNoQyxNQUFNLEVBQ04sZUFBZSxFQUNmLFFBQVEsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTTtZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRCxDQUFDO2FBQ0ksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSTtZQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsU0FBUztRQUNULGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2RSxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFDekMsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLHdCQUF3QixFQUN4Qix1QkFBdUIsRUFDdkIsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFDckQsTUFBTSxFQUNOLGVBQWUsRUFDZixRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2YsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JFLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqQixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsQ0FBQzs7Z0JBQ0ksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUNMLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyRSxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakIsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLENBQUM7O2dCQUVDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE1BQU0sSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0UsQ0FBQyxDQUFDLENBQUM7UUFDTCxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkUsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ25FLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN4QixZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQVEsQ0FBQyxDQUFDLEVBQ2hELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLE1BQU0sT0FBTyxHQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDckUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDeEUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ04sQ0FBQyxDQUFDLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUN0RCxFQUNELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN4QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN6QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLFdBQVc7WUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDaEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLElBQUksQ0FBQyxPQUFPO1lBQ2QsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUMxQixLQUFLLGFBQWE7b0JBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ3hCLE1BQU07Z0JBQ1I7b0JBQ0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5QixDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUN0RixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEcsQ0FBQztJQUNPLE9BQU8sQ0FBQyxLQUFnQixFQUFFLE1BQWUsRUFBRSxHQUFHLFFBQWtCO1FBQ3RFLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLE1BQU07Z0JBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzs7Z0JBQzNELEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFLRCxNQUFNLENBQUMsS0FBd0I7UUFDN0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFFbkMsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUVELHlCQUF5QjtRQUN6QixTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEVBQVU7UUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQWlCLENBQUM7UUFDNUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVoQyxJQUFJLEtBQUssSUFBSSxDQUFDO1lBQ1osS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsR0FBcUIsRUFBRSxLQUFtQztRQUNqRSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBaUIsQ0FBQztRQUM1RCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQWUsQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSztZQUNSLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDOztZQUUvRCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELGFBQWEsQ0FBQyxLQUFtQztRQUMvQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzhHQXBPVSxnQkFBZ0Isa0JBeURQLFlBQVksMkpBR3RCLGFBQWE7a0dBNURaLGdCQUFnQixtSkFVVSxRQUFRLG1HQUNaLFlBQVkscUdBMkNYLGlCQUFpQix1SEFDZixpQkFBaUIsMkNDdEZ2RCw0M1BBbUpBOzsyRkRwSGEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLGdCQUFnQjs7MEJBOERiLE1BQU07MkJBQUMsWUFBWTs7MEJBRzdCLE1BQU07MkJBQUMsYUFBYTt5Q0FsRDBCLGNBQWM7c0JBQTlELFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO2dCQUNFLFVBQVU7c0JBQTFELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtnQkEyQ3NCLFdBQVc7c0JBQS9FLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0ksYUFBYTtzQkFBbkYsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgSW5qZWN0aW9uVG9rZW4sIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUsIG1lcmdlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBNYXRFeHBhbnNpb25QYW5lbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XHJcbmltcG9ydCB7IE1hdENoaXBJbnB1dCwgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XHJcbmltcG9ydCB7IENPTU1BLCBFTlRFUiwgU0VNSUNPTE9OIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBCSVpET0NfQ09ORklHLCBCaXpEb2NDb25maWcgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBpc01vYmlsZSwgaXNTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IE9wdGlvbnMsIFVzZXJJbmZvIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIE9wdGlvblR5cGUgPSAnbm90aWZpY2F0aW9ucycgfCAnb3V0b2ZvZmZpY2UnIHwgJ2VtYWlscycgfCAnZ3JhbnRhY2Nlc3MnO1xyXG5cclxuZXhwb3J0IGNvbnN0IE9QVElPTl9QQU5FTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxPcHRpb25EYXRhPignb3B0aW9ucycpO1xyXG5cclxuaW50ZXJmYWNlIE9wdGlvbkRhdGEge1xyXG4gIG9wZW46IE9wdGlvblR5cGU7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLW9wdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vcHRpb25zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIG9wdGlvbnMgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIE9wdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcmVhZG9ubHkgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIHJlYWRvbmx5IGlzTW9iaWxlID0gaXNNb2JpbGUoKTtcclxuICBwcml2YXRlIF9yZXF1aXJlZFZhbGlkYXRvciA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICBjb25zdCBwYXJlbnQgPSAoY29udHJvbC5wYXJlbnQgYXMgRm9ybUdyb3VwKTtcclxuICAgIGlmIChwYXJlbnQgJiYgcGFyZW50LmNvbnRyb2xzLmFjdGl2ZS52YWx1ZSAmJiAhY29udHJvbC52YWx1ZSkgcmV0dXJuIHtcclxuICAgICAgcmVxdWlyZWQ6IHRydWVcclxuICAgIH1cclxuICB9XHJcbiAgQFZpZXdDaGlsZCgnc3Vic3RpdHVlSW5wdXQnLCB7IHJlYWQ6IE1hdElucHV0IH0pIHN1YnN0aXR1ZUlucHV0OiBNYXRJbnB1dDtcclxuICBAVmlld0NoaWxkKCdncmFudElucHV0JywgeyByZWFkOiBNYXRDaGlwSW5wdXQgfSkgZ3JhbnRJbnB1dDogTWF0Q2hpcElucHV0O1xyXG4gIHJlYWRvbmx5IGxhbmd1YWdlID0gdGhpcy5fZmIuY29udHJvbCh0aGlzLl9zZXNzaW9uLmxhbmd1YWdlKTtcclxuICByZWFkb25seSBhUklBID0gdGhpcy5fZmIuY29udHJvbCh0aGlzLl9zZXNzaW9uLmFyaWEpO1xyXG4gIHJlYWRvbmx5IGxhbmd1YWdlcyA9IHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2VzO1xyXG4gIHJlYWRvbmx5IGd1c2VycyA9IHRoaXMuX2ZiLmNvbnRyb2woW10pO1xyXG4gIHJlYWRvbmx5IHN1YnN0aXR1ZUlkID0gdGhpcy5fZmIuY29udHJvbChudWxsKTtcclxuICByZWFkb25seSBmb3JtID0gdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgbm90aWZpY2F0aW9uczogdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBhY3RpdmU6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBsaWtlczogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIGNvbW1lbnRNeURvY3VtZW50OiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgY29tbWVudEFueURvY3VtZW50OiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgdXBjb21pbmdFdmVudHM6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICB0YWdnZWQ6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBhbnlEb2N1bWVudFN0YXRlQ2hhbmdlOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgbXlEb2N1bWVudFN0YXRlQ2hhbmdlOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgY3ViZUFub21hbHk6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBzb3VuZDogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICB9KSxcclxuICAgIHRhZ3M6IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCksXHJcbiAgICBlbWFpbHM6IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgYWN0aXZlOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgbWFpbDogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIGNoYXQ6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBub3RpZmljYXRpb25zOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKSxcclxuICAgICAgZXZlbnRzOiB0aGlzLl9mYi5jb250cm9sKGZhbHNlKVxyXG4gICAgfSksXHJcbiAgICBvdXRPZk9mZmljZTogdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICBhY3RpdmU6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgICBzdWJzdGl0dWVJZDogdGhpcy5fZmIuY29udHJvbChudWxsLCB0aGlzLl9yZXF1aXJlZFZhbGlkYXRvciksXHJcbiAgICAgIGZyb206IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCksXHJcbiAgICAgIHRvOiB0aGlzLl9mYi5jb250cm9sKG51bGwpXHJcbiAgICB9KSxcclxuICAgIGdyYW50QWNjZXNzOiB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICAgIGFjdGl2ZTogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICAgIHVzZXJzOiB0aGlzLl9mYi5jb250cm9sKG51bGwsIHRoaXMuX3JlcXVpcmVkVmFsaWRhdG9yKVxyXG4gICAgfSlcclxuICB9KTtcclxuICBzdXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+O1xyXG4gIGd1c2VycyQ6IE9ic2VydmFibGU8VXNlckluZm9bXT47XHJcbiAgdm9hdGluZzogYm9vbGVhbjtcclxuICBvcHRpb25zOiBPcHRpb25zO1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BLCBTRU1JQ09MT05dO1xyXG4gIEBWaWV3Q2hpbGQoJ291dE9mT2ZmaWNlJywgeyByZWFkOiBNYXRFeHBhbnNpb25QYW5lbCwgc3RhdGljOiB0cnVlIH0pIG91dE9mT2ZmaWNlOiBNYXRFeHBhbnNpb25QYW5lbDtcclxuICBAVmlld0NoaWxkKCdub3RpZmljYXRpb25zJywgeyByZWFkOiBNYXRFeHBhbnNpb25QYW5lbCwgc3RhdGljOiB0cnVlIH0pIG5vdGlmaWNhdGlvbnM6IE1hdEV4cGFuc2lvblBhbmVsO1xyXG4gIC8qKiBvcHRpb25zIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE9QVElPTl9QQU5FTCkgcHJpdmF0ZSBfb3B0aW9uOiBPcHRpb25EYXRhLCBvdmVybGF5UmVmOiBPdmVybGF5UmVmLCBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UsIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBASW5qZWN0KEJJWkRPQ19DT05GSUcpIGNvbmZpZzogQml6RG9jQ29uZmlnKSB7XHJcbiAgICB0aGlzLnZvYXRpbmcgPSAhY29uZmlnLmNvbW1lbnRzIHx8IGNvbmZpZy5jb21tZW50cy52b3RpbmcgIT09IGZhbHNlO1xyXG4gICAgbWVyZ2Uob3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKCkucGlwZShmaWx0ZXIoayA9PiBrLmtleSA9PT0gJ0VzY2FwZScpKSwgb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkpLlxyXG4gICAgICBzdWJzY3JpYmUoKCkgPT4gb3ZlcmxheVJlZi5kaXNwb3NlKCkpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYVJJQS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUodiA9PiB0aGlzLl9zZXNzaW9uLmFyaWEgPSB2KTtcclxuICAgIHRoaXMubGFuZ3VhZ2UudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2ID0+IHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2UgPSB2KTtcclxuICAgIGNvbnN0IG91dE9mT2ZmaWNlID0gdGhpcy5mb3JtLmNvbnRyb2xzLm91dE9mT2ZmaWNlO1xyXG4gICAgY29uc3QgZ3JhbnRBY2Nlc3MgPSB0aGlzLmZvcm0uY29udHJvbHMuZ3JhbnRBY2Nlc3M7XHJcbiAgICBjb25zdCBub3RpZmljYXRpb25zID0gdGhpcy5mb3JtLmNvbnRyb2xzLm5vdGlmaWNhdGlvbnM7XHJcbiAgICBjb25zdCBlbWFpbHMgPSB0aGlzLmZvcm0uY29udHJvbHMuZW1haWxzO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucyA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5vcHRpb25zO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUob3B0aW9ucywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgaWYgKCFvcHRpb25zLm5vdGlmaWNhdGlvbnMuYWN0aXZlKVxyXG4gICAgICB0aGlzLl90b2dnbGUobm90aWZpY2F0aW9ucywgZmFsc2UsICdsaWtlcycsXHJcbiAgICAgICAgJ2NvbW1lbnRNeURvY3VtZW50JyxcclxuICAgICAgICAnY29tbWVudEFueURvY3VtZW50JyxcclxuICAgICAgICAndXBjb21pbmdFdmVudHMnLFxyXG4gICAgICAgICd0YWdnZWQnLFxyXG4gICAgICAgICdhbnlEb2N1bWVudFN0YXRlQ2hhbmdlJyxcclxuICAgICAgICAnbXlEb2N1bWVudFN0YXRlQ2hhbmdlJyxcclxuICAgICAgICAnY3ViZUFub21hbHknKTtcclxuICAgIGlmICghb3B0aW9ucy5lbWFpbHMuYWN0aXZlKVxyXG4gICAgICB0aGlzLl90b2dnbGUoZW1haWxzLCBmYWxzZSwgJ21haWwnLFxyXG4gICAgICAgICdjaGF0JyxcclxuICAgICAgICAnbm90aWZpY2F0aW9ucycsXHJcbiAgICAgICAgJ2V2ZW50cycpO1xyXG4gICAgaWYgKCFvcHRpb25zLmdyYW50QWNjZXNzLmFjdGl2ZSlcclxuICAgICAgdGhpcy5ndXNlcnMuZGlzYWJsZSgpO1xyXG4gICAgaWYgKCFvcHRpb25zLm91dE9mT2ZmaWNlLmFjdGl2ZSkge1xyXG4gICAgICB0aGlzLnN1YnN0aXR1ZUlkLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5fdG9nZ2xlKG91dE9mT2ZmaWNlLCBmYWxzZSwgJ2Zyb20nLCAndG8nKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKCFvcHRpb25zLm91dE9mT2ZmaWNlLmZyb20pXHJcbiAgICAgIHRoaXMuX3RvZ2dsZShvdXRPZk9mZmljZSwgZmFsc2UsICd0bycpO1xyXG4gICAgLy8gY2hhbmdlXHJcbiAgICBub3RpZmljYXRpb25zLmNvbnRyb2xzLmFjdGl2ZS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUoYWN0aXZlID0+XHJcbiAgICAgICAgdGhpcy5fdG9nZ2xlKG5vdGlmaWNhdGlvbnMsIGFjdGl2ZSwgJ2xpa2VzJyxcclxuICAgICAgICAgICdjb21tZW50TXlEb2N1bWVudCcsXHJcbiAgICAgICAgICAnY29tbWVudEFueURvY3VtZW50JyxcclxuICAgICAgICAgICd1cGNvbWluZ0V2ZW50cycsXHJcbiAgICAgICAgICAndGFnZ2VkJyxcclxuICAgICAgICAgICdhbnlEb2N1bWVudFN0YXRlQ2hhbmdlJyxcclxuICAgICAgICAgICdteURvY3VtZW50U3RhdGVDaGFuZ2UnLFxyXG4gICAgICAgICAgJ2N1YmVBbm9tYWx5JykpO1xyXG4gICAgZW1haWxzLmNvbnRyb2xzLmFjdGl2ZS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUoYWN0aXZlID0+IHRoaXMuX3RvZ2dsZShlbWFpbHMsIGFjdGl2ZSwgJ21haWwnLFxyXG4gICAgICAgICdjaGF0JyxcclxuICAgICAgICAnbm90aWZpY2F0aW9ucycsXHJcbiAgICAgICAgJ2V2ZW50cycpKTtcclxuICAgIGdyYW50QWNjZXNzLmNvbnRyb2xzLmFjdGl2ZS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUoYWN0aXZlID0+IHtcclxuICAgICAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgICAgICB0aGlzLmd1c2Vycy5lbmFibGUoKTtcclxuICAgICAgICAgIHRoaXMuZ3JhbnRJbnB1dC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHRoaXMuZ3VzZXJzLmVuYWJsZSgpO1xyXG4gICAgICB9KTtcclxuICAgIG91dE9mT2ZmaWNlLmNvbnRyb2xzLmFjdGl2ZS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLlxyXG4gICAgICBzdWJzY3JpYmUoYWN0aXZlID0+IHtcclxuICAgICAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgICAgICB0aGlzLnN1YnN0aXR1ZUlkLmVuYWJsZSgpO1xyXG4gICAgICAgICAgdGhpcy5zdWJzdGl0dWVJbnB1dC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLnN1YnN0aXR1ZUlkLmRpc2FibGUoKTtcclxuICAgICAgICB0aGlzLl90b2dnbGUob3V0T2ZPZmZpY2UsIGFjdGl2ZSwgJ2Zyb20nKTtcclxuICAgICAgICB0aGlzLl90b2dnbGUob3V0T2ZPZmZpY2UsIGFjdGl2ZSAmJiBvdXRPZk9mZmljZS5jb250cm9scy5mcm9tLnZhbHVlLCAndG8nKTtcclxuICAgICAgfSk7XHJcbiAgICBvdXRPZk9mZmljZS5jb250cm9scy5mcm9tLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuXHJcbiAgICAgIHN1YnNjcmliZShmcm9tID0+XHJcbiAgICAgICAgdGhpcy5fdG9nZ2xlKG91dE9mT2ZmaWNlLCBmcm9tICE9PSBudWxsLCAndG8nKSk7XHJcbiAgICB0aGlzLmd1c2VycyQgPSB0aGlzLmd1c2Vycy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgIGZpbHRlcih2ID0+IGlzU3RyaW5nKHYpKSxcclxuICAgICAgZGVib3VuY2VUaW1lKDEwMCksXHJcbiAgICAgIHN3aXRjaE1hcCh2ID0+IHRoaXMuX2FjY291bnRzLmZpbmRBbGwodiBhcyBhbnkpKSxcclxuICAgICAgbWFwKHIgPT4ge1xyXG4gICAgICAgIGNvbnN0IGV4Y2x1ZGUgPSAoZ3JhbnRBY2Nlc3MudmFsdWUudXNlcnMgYXMgc3RyaW5nW10pPy5zbGljZSgpIHx8IFtdO1xyXG4gICAgICAgIGV4Y2x1ZGUucHVzaCh0aGlzLl9zZXNzaW9uLnByb2ZpbGUudXNlcklkKTtcclxuICAgICAgICByZXR1cm4gci5maWx0ZXIodSA9PiBleGNsdWRlLmluZGV4T2YodS5pZCkgPCAwKTtcclxuICAgICAgfSkpO1xyXG4gICAgdGhpcy5zdXNlcnMkID0gdGhpcy5zdWJzdGl0dWVJZC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgIHRhcCh2ID0+XHJcbiAgICAgICAgIXYgJiYgb3V0T2ZPZmZpY2UuY29udHJvbHMuc3Vic3RpdHVlSWQuc2V0VmFsdWUobnVsbClcclxuICAgICAgKSxcclxuICAgICAgZmlsdGVyKHYgPT4gaXNTdHJpbmcodikpLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PiB0aGlzLl9hY2NvdW50cy5maW5kQWxsKHYpKSxcclxuICAgICAgbWFwKHIgPT4gci5maWx0ZXIodSA9PiB1LmlkICE9PSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUudXNlcklkKSkpO1xyXG4gICAgaWYgKG9wdGlvbnMub3V0T2ZPZmZpY2Uuc3Vic3RpdHVlSWQpXHJcbiAgICAgIHRoaXMuX2FjY291bnRzLmdldChvcHRpb25zLm91dE9mT2ZmaWNlLnN1YnN0aXR1ZUlkKS5zdWJzY3JpYmUodSA9PlxyXG4gICAgICAgIHRoaXMuc3Vic3RpdHVlSWQuc2V0VmFsdWUodSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcclxuICAgIGlmICh0aGlzLl9vcHRpb24pXHJcbiAgICAgIHN3aXRjaCAodGhpcy5fb3B0aW9uLm9wZW4pIHtcclxuICAgICAgICBjYXNlICdvdXRvZm9mZmljZSc6XHJcbiAgICAgICAgICB0aGlzLm91dE9mT2ZmaWNlLm9wZW4oKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMub3BlbigpO1xyXG4gICAgICB9XHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDIwMCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgIHRoaXMuZm9ybS52YWxpZCAmJlxyXG4gICAgICB0aGlzLl9zZXNzaW9uLnVwZGF0ZSh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSkuc3Vic2NyaWJlKHsgZXJyb3I6ICgpID0+IHRoaXMuX3NiLmVycm9yKCkgfSkpO1xyXG4gIH1cclxuICBwcml2YXRlIF90b2dnbGUoZ3JvdXA6IEZvcm1Hcm91cCwgYWN0aXZlOiBib29sZWFuLCAuLi5jb250cm9sczogc3RyaW5nW10pIHtcclxuICAgIGNvbnRyb2xzLmZvckVhY2gobmFtZSA9PiB7XHJcbiAgICAgIGlmICghYWN0aXZlKSBncm91cC5jb250cm9sc1tuYW1lXS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgZWxzZSBncm91cC5jb250cm9sc1tuYW1lXS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRvZ2dsZVNvdW5kKCkge1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLm5vdGlmaWNhdGlvbnMuY29udHJvbHMuc291bmQuc2V0VmFsdWUoIXRoaXMub3B0aW9ucy5ub3RpZmljYXRpb25zLnNvdW5kKTtcclxuICB9XHJcbiAgZGlzcGxheSA9IChpdGVtOiBVc2VySW5mbykgPT4ge1xyXG4gICAgcmV0dXJuIGl0ZW0gPyBpdGVtLm5hbWUgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgYWRkVGFnKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCkge1xyXG4gICAgY29uc3QgeyBjaGlwSW5wdXQsIHZhbHVlIH0gPSBldmVudDtcclxuXHJcbiAgICAvLyBBZGQgb3VyIGZydWl0XHJcbiAgICBpZiAoKHZhbHVlIHx8ICcnKS50cmltKCkpIHtcclxuICAgICAgdGhpcy5vcHRpb25zLnRhZ3MucHVzaCh2YWx1ZS50cmltKCkpO1xyXG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7fSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVzZXQgdGhlIGlucHV0IHZhbHVlIFxyXG4gICAgY2hpcElucHV0Py5jbGVhcigpO1xyXG4gIH1cclxuICByZW1vdmVUYWcodGFnOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3B0aW9ucy50YWdzLnJlbW92ZSh0YWcpO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe30pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaWRcclxuICAgKi9cclxuICByZW1vdmVHcmFudChpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB1c2VycyA9IHRoaXMuZm9ybS52YWx1ZS5ncmFudEFjY2Vzcy51c2VycyBhcyBzdHJpbmdbXTtcclxuICAgIGNvbnN0IGluZGV4ID0gdXNlcnMuaW5kZXhPZihpZCk7XHJcblxyXG4gICAgaWYgKGluZGV4ID49IDApXHJcbiAgICAgIHVzZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7fSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBpbnBcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBhZGRHcmFudChpbnA6IEhUTUxJbnB1dEVsZW1lbnQsIGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCB1c2VycyA9IHRoaXMuZm9ybS52YWx1ZS5ncmFudEFjY2Vzcy51c2VycyBhcyBzdHJpbmdbXTtcclxuICAgIGNvbnN0IGlkID0gZXZlbnQub3B0aW9uLnZhbHVlIGFzIHN0cmluZztcclxuICAgIGlmICghdXNlcnMpXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHMuZ3JhbnRBY2Nlc3MpLmNvbnRyb2xzLnVzZXJzLnNldFZhbHVlKFtpZF0pO1xyXG4gICAgZWxzZVxyXG4gICAgICB1c2Vycy5wdXNoKGlkKTtcclxuICAgIGlucC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe30pO1xyXG4gIH1cclxuICBzZXRTdWJzdGl0dXRlKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XHJcbiAgICAodGhpcy5mb3JtLmNvbnRyb2xzLm91dE9mT2ZmaWNlKS5jb250cm9scy5zdWJzdGl0dWVJZC5zZXRWYWx1ZSgoZXZlbnQub3B0aW9uLnZhbHVlIGFzIFVzZXJJbmZvKS5pZCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG4gIDxtYXQtYWNjb3JkaW9uPlxyXG4gICAgPG1hdC1leHBhbnNpb24tcGFuZWwgI25vdGlmaWNhdGlvbnM+XHJcbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAge3snTm90aWZpY2F0aW9ucycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgICAgICA8IS0tPG1hdC1pY29uPm5vdGlmaWNhdGlvbnM8L21hdC1pY29uPi0tPlxyXG4gICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJub3RpZmljYXRpb25zXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJhY3RpdmVcIj57eydBY3RpdmUnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlU291bmQoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidTb3VuZCd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnt7b3B0aW9ucy5ub3RpZmljYXRpb25zLnNvdW5kID8gJ3ZvbHVtZV91cCcgOiAndm9sdW1lX29mZid9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwibXlEb2N1bWVudFN0YXRlQ2hhbmdlXCI+e3snTXlTdGF0ZUNoYW5nZScgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJhbnlEb2N1bWVudFN0YXRlQ2hhbmdlXCI+e3snQW55U3RhdGVDaGFuZ2UnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiY29tbWVudE15RG9jdW1lbnRcIj57eydDb21tZW50TXlEb2N1bWVudCcgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJjb21tZW50QW55RG9jdW1lbnRcIj57eydDb21tZW50QW55RG9jdW1lbnQnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwibGlrZXNcIiBbc3R5bGUuZGlzcGxheV09XCJ2b2F0aW5nPycnOidub25lJ1wiPnt7J0xpa2VkQ29tbWVudCcgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJ0YWdnZWRcIj57eydUYWdnZWRJbkNvbW1lbnRzJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cInVwY29taW5nRXZlbnRzXCI+e3snVXBjb21pbmdFdmVudHMnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiY3ViZUFub21hbHlcIj57eydDdWJlQW5vbWFseScgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCAjZW1haWxzPlxyXG4gICAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgICAgPG1hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICAgIHt7J0VtYWlscycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgICAgICA8IS0tPG1hdC1pY29uPmFsdGVybmF0ZV9lbWFpbDwvbWF0LWljb24+LS0+XHJcbiAgICAgICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cImVtYWlsc1wiIGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aXZlXCI+e3snQWN0aXZlJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxiciAvPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cIm1haWxcIj57eydNYWlscycgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJjaGF0XCI+e3snQ29udmVyc2F0aW9ucycgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJub3RpZmljYXRpb25zXCI+e3snRW1haWxOb3RpZmljYXRpb25zJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImV2ZW50c1wiPnt7J0FsYXJtRXZlbnRzJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsICNvdXRPZk9mZmljZT5cclxuICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICB7eydPdXRPZk9mZmljZScgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgICAgICA8IS0tPG1hdC1pY29uPnRyZW5kaW5nX2ZsYXQ8L21hdC1pY29uPi0tPlxyXG4gICAgICAgICAgPCEtLXt7J091dE9mT2ZmaWNlVGlwJyB8IHRyYW5zbGF0ZX19LS0+XHJcbiAgICAgICAgPC9tYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cIm91dE9mT2ZmaWNlXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJhY3RpdmVcIj57eydBY3RpdmUnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJzdWJzdGl0dWVJZFwiIHR5cGU9XCJzZWFyY2hcIiBbbWF0QXV0b2NvbXBsZXRlXT1cInNhdXRvXCIgI3N1YnN0aXR1ZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBc3NvY2lhdGUnIHwgdHJhbnNsYXRlXCIgW3JlcXVpcmVkXT1cImZvcm0udmFsdWUub3V0T2ZPZmZpY2UuYWN0aXZlXCIgLz5cclxuICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNzYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJzZXRTdWJzdGl0dXRlKCRldmVudClcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHUgb2Ygc3VzZXJzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInVcIj5cclxuICAgICAgICAgICAgICA8c3Bhbj57e3UubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgICAgICA8bWF0LWhpbnQ+e3snT3V0T2ZPZmZpY2VUaXAnIHwgdHJhbnNsYXRlfX08L21hdC1oaW50PlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydEYXRlcyd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtZGF0ZS1yYW5nZS1pbnB1dCBbcmFuZ2VQaWNrZXJdPVwiZGF0ZXNcIiByZXF1aXJlZD5cclxuICAgICAgICAgICAgPGlucHV0IG1hdFN0YXJ0RGF0ZSBmb3JtQ29udHJvbE5hbWU9XCJmcm9tXCIgW3BsYWNlaG9sZGVyXT1cIidGcm9tJ3x0cmFuc2xhdGVcIiBbbWluXT1cInRvZGF5XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRFbmREYXRlIGZvcm1Db250cm9sTmFtZT1cInRvXCIgW3BsYWNlaG9sZGVyXT1cIidUbyd8dHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxyXG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJkYXRlc1wiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgPG1hdC1kYXRlLXJhbmdlLXBpY2tlciAjZGF0ZXMgW3RvdWNoVWldPVwiaXNNb2JpbGVcIj48L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cclxuICAgICAgICAgIEBpZiAoZm9ybS5jb250cm9scy5vdXRPZk9mZmljZS5jb250cm9scy5mcm9tLmhhc0Vycm9yKCdyZXF1aXJlZCcpIHx8IGZvcm0uY29udHJvbHMub3V0T2ZPZmZpY2UuY29udHJvbHMudG8uaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcclxuICAgICAgICAgIDxtYXQtZXJyb3IgW2lubmVySFRNTF09XCInQXJlUmVxdWlyZWRFcnInfHRyYW5zbGF0ZSA6ICgnRGF0ZXMnfHRyYW5zbGF0ZSlcIj48L21hdC1lcnJvcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsICNncmFudEFjY2Vzcz5cclxuICAgICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XHJcbiAgICAgICAgICB7eydHcmFudEFjY2VzcycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgIDxtYXQtcGFuZWwtZGVzY3JpcHRpb24+XHJcbiAgICAgICAgICA8IS0tPG1hdC1pY29uPmFjY291bnRfY2lyY2xlPC9tYXQtaWNvbj4tLT5cclxuICAgICAgICA8L21hdC1wYW5lbC1kZXNjcmlwdGlvbj5cclxuICAgICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwiZ3JhbnRBY2Nlc3NcIiBjbGFzcz1cImdyYW50LXNlY3Rpb25cIj5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJhY3RpdmVcIj57eydBY3RpdmUnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1jaGlwLWdyaWQgI2dyYW50TGlzdCBbYXR0ci5hcmlhLWxhYmVsXT1cIlwiIFtkaXNhYmxlZF09XCIhZm9ybS52YWx1ZS5ncmFudEFjY2Vzcy5hY3RpdmVcIj5cclxuICAgICAgICAgICAgPG1hdC1jaGlwLXJvdyAqbmdGb3I9XCJsZXQgdSBvZiBmb3JtLnZhbHVlLmdyYW50QWNjZXNzLnVzZXJzIHx8IFtdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVHcmFudCh1KVwiPlxyXG4gICAgICAgICAgICAgIHt7dSB8IHVzZXJOYW1lIHwgYXN5bmN9fVxyXG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG4gICAgICAgICAgPC9tYXQtY2hpcC1ncmlkPlxyXG4gICAgICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJndXNlcnNcIiBwbGFjZWhvbGRlcj1cInt7J1VzZXJzJ3wgdHJhbnNsYXRlfX1cIlxyXG4gICAgICAgICAgICAgICAgICNncmFudElucHV0XHJcbiAgICAgICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJncmFudEF1dG9cIlxyXG4gICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiZ3JhbnRMaXN0XCJcclxuICAgICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCI+XHJcbiAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjZ3JhbnRBdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cImFkZEdyYW50KGdyYW50SW5wdXQsICRldmVudClcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHUgb2YgZ3VzZXJzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInUuaWRcIj5cclxuICAgICAgICAgICAgICB7e3UubmFtZX19XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ1LmVtYWlsXCI+Jm5ic3A7IC0ge3t1LmVtYWlsfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgICAgIDxtYXQtaGludD57eydHcmFudFRpcCcgfCB0cmFuc2xhdGV9fTwvbWF0LWhpbnQ+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgICA8bWF0LWV4cGFuc2lvbi1wYW5lbCAjcHJlZmVyZW5jZXM+XHJcbiAgICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgICA8bWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgICAgICAge3snUHJlZmVyZW5jZXMnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8bWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj48L21hdC1pY29uPi0tPlxyXG4gICAgICAgIDwvbWF0LXBhbmVsLWRlc2NyaXB0aW9uPlxyXG4gICAgICA8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPG1hdC1jaGlwLWdyaWQgI2NoaXBzPlxyXG4gICAgICAgICAgICA8bWF0LWNoaXAtcm93ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZvcm0udmFsdWUudGFnc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJ0cnVlXCIgKHJlbW92ZWQpPVwicmVtb3ZlVGFnKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAge3tpdGVtfX1cclxuICAgICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L21hdC1jaGlwLXJvdz5cclxuICAgICAgICAgIDwvbWF0LWNoaXAtZ3JpZD5cclxuICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwiJ1RhZ3MnfHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwc1wiXHJcbiAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiXHJcbiAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkVGFnKCRldmVudClcIj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIFtmb3JtQ29udHJvbF09XCJhUklBXCI+e3snQVJJQScgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcbiAgPC9tYXQtYWNjb3JkaW9uPlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
@@ -148,11 +148,11 @@ export class ScheduleViewComponent {
|
|
148
148
|
this._router.navigate(['mailbox/d', evt.documentId.encodeId()]);
|
149
149
|
}
|
150
150
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ScheduleViewComponent, deps: [{ token: i1.SessionService }, { token: i2.MailboxService }, { token: i3.PanesRouter }, { token: i4.PromptService }], target: i0.ɵɵFactoryTarget.Component }); }
|
151
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: ScheduleViewComponent, selector: "bizdoc-schedule", inputs: { selectedDate: "selectedDate" }, outputs: { selectedDateChange: "selectedDateChange" }, viewQueries: [{ propertyName: "schedule", first: true, predicate: ["schedule"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button [bizdocTooltip]=\"'PrevPage'|translate\" (click)=\"prev()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-body\">{{ starting | dateRange : ending : calendarOptions }}</span>\r\n <button mat-icon-button [bizdocTooltip]=\"'NextPage'|translate\" (click)=\"next()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'View'|translate\" [matMenuTriggerFor]=\"view\"><mat-icon>view_agenda</mat-icon></button>\r\n <mat-menu #view>\r\n <button mat-menu-item (click)=\"changeView('WorkWeek')\">{{'WorkWeek'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Month')\">{{'Month'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Agenda')\">{{'Agenda'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('MonthAgenda')\">{{'MonthAgenda'|translate}}</button>\r\n <!--<button mat-menu-item (click)=\"changeView('TimelineMonth')\">{{'TimelineMonth'|translate}}</button>-->\r\n <button mat-menu-item (click)=\"changeView('Day')\">{{'Day'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Year')\">{{'Year'|translate}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"export()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<style scoped> \r\n .e-popup-close {\r\n display: none\r\n }\r\n</style>\r\n<ejs-schedule #schedule [eventSettings]=\"eventSettings\" [currentView]=\"currentView\" [selectedDate]=\"selectedDate\"\r\n [readonly]=\"true\" (navigating)=\"nav($event)\" height=\"100%\" [showHeaderBar]=\"false\"\r\n (select)=\"select($event)\" class=\"flex\"\r\n (eventClick)=\"eventClick($event)\" (dragStart)=\"drag($event)\" [@swape]=\"page\">\r\n <e-views>\r\n <e-view option=\"Month\"></e-view>\r\n <e-view option=\"Day\"></e-view>\r\n <e-view option=\"WorkWeek\"></e-view>\r\n <e-view option=\"Agenda\"></e-view>\r\n <e-view option=\"MonthAgenda\"></e-view>\r\n <e-view option=\"TimelineMonth\"></e-view>\r\n <e-view option=\"Year\"></e-view>\r\n </e-views>\r\n</ejs-schedule>\r\n", styles: ["::ng-deep .e-dlg-container{display:none}::ng-deep .e-popup{display:none}:host{display:flex;flex-direction:column}\n", " \n .e-popup-close {\n display: none\n }\n"], dependencies: [{ kind: "component", type: i5.ScheduleComponent, selector: "ejs-schedule", inputs: ["agendaDaysCount", "allowDragAndDrop", "allowInline", "allowKeyboardInteraction", "allowMultiCellSelection", "allowMultiDrag", "allowMultiRowSelection", "allowResizing", "allowSwiping", "calendarMode", "cellHeaderTemplate", "cellTemplate", "cssClass", "currentView", "dateFormat", "dateHeaderTemplate", "dateRangeTemplate", "dayHeaderTemplate", "editorFooterTemplate", "editorHeaderTemplate", "editorTemplate", "enableAdaptiveUI", "enableAllDayScroll", "enableHtmlSanitizer", "enablePersistence", "enableRecurrenceValidation", "enableRtl", "endHour", "eventDragArea", "eventSettings", "firstDayOfWeek", "firstMonthOfYear", "group", "headerIndentTemplate", "headerRows", "height", "hideEmptyAgendaDays", "locale", "maxDate", "minDate", "monthHeaderTemplate", "monthsCount", "quickInfoOnSelectionEnd", "quickInfoTemplates", "readonly", "resourceHeaderTemplate", "resources", "rowAutoHeight", "selectedDate", "showHeaderBar", "showQuickInfo", "showTimeIndicator", "showWeekNumber", "showWeekend", "startHour", "timeFormat", "timeScale", "timezone", "timezoneDataSource", "toolbarItems", "views", "weekRule", "width", "workDays", "workHours"], outputs: ["actionBegin", "actionComplete", "actionFailure", "cellClick", "cellDoubleClick", "created", "dataBinding", "dataBound", "destroyed", "drag", "dragStart", "dragStop", "eventClick", "eventDoubleClick", "eventRendered", "hover", "moreEventsClick", "navigating", "popupClose", "popupOpen", "renderCell", "resizeStart", "resizeStop", "resizing", "select", "virtualScrollStart", "virtualScrollStop", "currentViewChange", "selectedDateChange"] }, { kind: "directive", type: i5.ViewDirective, selector: "e-views>e-view", inputs: ["allowVirtualScrolling", "cellHeaderTemplate", "cellTemplate", "dateFormat", "dateHeaderTemplate", "dateRangeTemplate", "dayHeaderTemplate", "displayDate", "displayName", "enableLazyLoading", "endHour", "eventTemplate", "firstDayOfWeek", "firstMonthOfYear", "group", "headerIndentTemplate", "headerRows", "interval", "isSelected", "maxEventsPerRow", "monthHeaderTemplate", "monthsCount", "numberOfWeeks", "option", "orientation", "readonly", "resourceHeaderTemplate", "showWeekNumber", "showWeekend", "startHour", "timeFormat", "timeScale", "workDays"] }, { kind: "directive", type: i5.ViewsDirective, selector: "ejs-schedule>e-views" }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i11.DateRangePipe, name: "dateRange" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }], animations: [swapAnimation] }); }
|
151
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: ScheduleViewComponent, selector: "bizdoc-schedule", inputs: { selectedDate: "selectedDate" }, outputs: { selectedDateChange: "selectedDateChange" }, viewQueries: [{ propertyName: "schedule", first: true, predicate: ["schedule"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button [bizdocTooltip]=\"'PrevPage'|translate\" (click)=\"prev()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-body\">{{ starting | dateRange : ending : calendarOptions }}</span>\r\n <button mat-icon-button [bizdocTooltip]=\"'NextPage'|translate\" (click)=\"next()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'View'|translate\" [matMenuTriggerFor]=\"view\"><mat-icon>view_agenda</mat-icon></button>\r\n <mat-menu #view>\r\n <button mat-menu-item (click)=\"changeView('WorkWeek')\">{{'WorkWeek'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Month')\">{{'Month'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Agenda')\">{{'Agenda'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('MonthAgenda')\">{{'MonthAgenda'|translate}}</button>\r\n <!--<button mat-menu-item (click)=\"changeView('TimelineMonth')\">{{'TimelineMonth'|translate}}</button>-->\r\n <button mat-menu-item (click)=\"changeView('Day')\">{{'Day'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Year')\">{{'Year'|translate}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"export()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<style scoped> \r\n .e-popup-close {\r\n display: none\r\n }\r\n</style>\r\n<ejs-schedule #schedule [eventSettings]=\"eventSettings\" [currentView]=\"currentView\" [selectedDate]=\"selectedDate\"\r\n [readonly]=\"true\" (navigating)=\"nav($event)\" height=\"100%\" [showHeaderBar]=\"false\"\r\n (select)=\"select($event)\" class=\"flex\"\r\n (eventClick)=\"eventClick($event)\" (dragStart)=\"drag($event)\" [@swape]=\"page\" class=\"flex\">\r\n <e-views>\r\n <e-view option=\"Month\"></e-view>\r\n <e-view option=\"Day\"></e-view>\r\n <e-view option=\"WorkWeek\"></e-view>\r\n <e-view option=\"Agenda\"></e-view>\r\n <e-view option=\"MonthAgenda\"></e-view>\r\n <e-view option=\"TimelineMonth\"></e-view>\r\n <e-view option=\"Year\"></e-view>\r\n </e-views>\r\n</ejs-schedule>\r\n", styles: ["::ng-deep .e-dlg-container{display:none}::ng-deep .e-popup{display:none}:host{display:flex;height:100%;flex-direction:column}\n", " \n .e-popup-close {\n display: none\n }\n"], dependencies: [{ kind: "component", type: i5.ScheduleComponent, selector: "ejs-schedule", inputs: ["agendaDaysCount", "allowDragAndDrop", "allowInline", "allowKeyboardInteraction", "allowMultiCellSelection", "allowMultiDrag", "allowMultiRowSelection", "allowResizing", "allowSwiping", "calendarMode", "cellHeaderTemplate", "cellTemplate", "cssClass", "currentView", "dateFormat", "dateHeaderTemplate", "dateRangeTemplate", "dayHeaderTemplate", "editorFooterTemplate", "editorHeaderTemplate", "editorTemplate", "enableAdaptiveUI", "enableAllDayScroll", "enableHtmlSanitizer", "enablePersistence", "enableRecurrenceValidation", "enableRtl", "endHour", "eventDragArea", "eventSettings", "firstDayOfWeek", "firstMonthOfYear", "group", "headerIndentTemplate", "headerRows", "height", "hideEmptyAgendaDays", "locale", "maxDate", "minDate", "monthHeaderTemplate", "monthsCount", "quickInfoOnSelectionEnd", "quickInfoTemplates", "readonly", "resourceHeaderTemplate", "resources", "rowAutoHeight", "selectedDate", "showHeaderBar", "showQuickInfo", "showTimeIndicator", "showWeekNumber", "showWeekend", "startHour", "timeFormat", "timeScale", "timezone", "timezoneDataSource", "toolbarItems", "views", "weekRule", "width", "workDays", "workHours"], outputs: ["actionBegin", "actionComplete", "actionFailure", "cellClick", "cellDoubleClick", "created", "dataBinding", "dataBound", "destroyed", "drag", "dragStart", "dragStop", "eventClick", "eventDoubleClick", "eventRendered", "hover", "moreEventsClick", "navigating", "popupClose", "popupOpen", "renderCell", "resizeStart", "resizeStop", "resizing", "select", "virtualScrollStart", "virtualScrollStop", "currentViewChange", "selectedDateChange"] }, { kind: "directive", type: i5.ViewDirective, selector: "e-views>e-view", inputs: ["allowVirtualScrolling", "cellHeaderTemplate", "cellTemplate", "dateFormat", "dateHeaderTemplate", "dateRangeTemplate", "dayHeaderTemplate", "displayDate", "displayName", "enableLazyLoading", "endHour", "eventTemplate", "firstDayOfWeek", "firstMonthOfYear", "group", "headerIndentTemplate", "headerRows", "interval", "isSelected", "maxEventsPerRow", "monthHeaderTemplate", "monthsCount", "numberOfWeeks", "option", "orientation", "readonly", "resourceHeaderTemplate", "showWeekNumber", "showWeekend", "startHour", "timeFormat", "timeScale", "workDays"] }, { kind: "directive", type: i5.ViewsDirective, selector: "ejs-schedule>e-views" }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i11.DateRangePipe, name: "dateRange" }, { kind: "pipe", type: i12.TranslatePipe, name: "translate" }], animations: [swapAnimation] }); }
|
152
152
|
}
|
153
153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ScheduleViewComponent, decorators: [{
|
154
154
|
type: Component,
|
155
|
-
args: [{ selector: 'bizdoc-schedule', animations: [swapAnimation], template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button [bizdocTooltip]=\"'PrevPage'|translate\" (click)=\"prev()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-body\">{{ starting | dateRange : ending : calendarOptions }}</span>\r\n <button mat-icon-button [bizdocTooltip]=\"'NextPage'|translate\" (click)=\"next()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'View'|translate\" [matMenuTriggerFor]=\"view\"><mat-icon>view_agenda</mat-icon></button>\r\n <mat-menu #view>\r\n <button mat-menu-item (click)=\"changeView('WorkWeek')\">{{'WorkWeek'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Month')\">{{'Month'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Agenda')\">{{'Agenda'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('MonthAgenda')\">{{'MonthAgenda'|translate}}</button>\r\n <!--<button mat-menu-item (click)=\"changeView('TimelineMonth')\">{{'TimelineMonth'|translate}}</button>-->\r\n <button mat-menu-item (click)=\"changeView('Day')\">{{'Day'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Year')\">{{'Year'|translate}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"export()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<style scoped> \r\n .e-popup-close {\r\n display: none\r\n }\r\n</style>\r\n<ejs-schedule #schedule [eventSettings]=\"eventSettings\" [currentView]=\"currentView\" [selectedDate]=\"selectedDate\"\r\n [readonly]=\"true\" (navigating)=\"nav($event)\" height=\"100%\" [showHeaderBar]=\"false\"\r\n (select)=\"select($event)\" class=\"flex\"\r\n (eventClick)=\"eventClick($event)\" (dragStart)=\"drag($event)\" [@swape]=\"page\">\r\n <e-views>\r\n <e-view option=\"Month\"></e-view>\r\n <e-view option=\"Day\"></e-view>\r\n <e-view option=\"WorkWeek\"></e-view>\r\n <e-view option=\"Agenda\"></e-view>\r\n <e-view option=\"MonthAgenda\"></e-view>\r\n <e-view option=\"TimelineMonth\"></e-view>\r\n <e-view option=\"Year\"></e-view>\r\n </e-views>\r\n</ejs-schedule>\r\n", styles: ["::ng-deep .e-dlg-container{display:none}::ng-deep .e-popup{display:none}:host{display:flex;flex-direction:column}\n", " \n .e-popup-close {\n display: none\n }\n"] }]
|
155
|
+
args: [{ selector: 'bizdoc-schedule', animations: [swapAnimation], template: "<mat-toolbar class=\"nav-toolbar\">\r\n <button mat-icon-button [bizdocTooltip]=\"'PrevPage'|translate\" (click)=\"prev()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_left</mat-icon></button>\r\n <span class=\"mat-body\">{{ starting | dateRange : ending : calendarOptions }}</span>\r\n <button mat-icon-button [bizdocTooltip]=\"'NextPage'|translate\" (click)=\"next()\"><mat-icon class=\"mat-icon-rtl-mirror\">keyboard_arrow_right</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [bizdocTooltip]=\"'View'|translate\" [matMenuTriggerFor]=\"view\"><mat-icon>view_agenda</mat-icon></button>\r\n <mat-menu #view>\r\n <button mat-menu-item (click)=\"changeView('WorkWeek')\">{{'WorkWeek'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Month')\">{{'Month'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Agenda')\">{{'Agenda'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('MonthAgenda')\">{{'MonthAgenda'|translate}}</button>\r\n <!--<button mat-menu-item (click)=\"changeView('TimelineMonth')\">{{'TimelineMonth'|translate}}</button>-->\r\n <button mat-menu-item (click)=\"changeView('Day')\">{{'Day'|translate}}</button>\r\n <button mat-menu-item (click)=\"changeView('Year')\">{{'Year'|translate}}</button>\r\n </mat-menu>\r\n <button mat-icon-button (click)=\"export()\" bizdocTooltip=\"{{'Download' | translate}}\"><mat-icon>save_alt</mat-icon></button>\r\n</mat-toolbar>\r\n<style scoped> \r\n .e-popup-close {\r\n display: none\r\n }\r\n</style>\r\n<ejs-schedule #schedule [eventSettings]=\"eventSettings\" [currentView]=\"currentView\" [selectedDate]=\"selectedDate\"\r\n [readonly]=\"true\" (navigating)=\"nav($event)\" height=\"100%\" [showHeaderBar]=\"false\"\r\n (select)=\"select($event)\" class=\"flex\"\r\n (eventClick)=\"eventClick($event)\" (dragStart)=\"drag($event)\" [@swape]=\"page\" class=\"flex\">\r\n <e-views>\r\n <e-view option=\"Month\"></e-view>\r\n <e-view option=\"Day\"></e-view>\r\n <e-view option=\"WorkWeek\"></e-view>\r\n <e-view option=\"Agenda\"></e-view>\r\n <e-view option=\"MonthAgenda\"></e-view>\r\n <e-view option=\"TimelineMonth\"></e-view>\r\n <e-view option=\"Year\"></e-view>\r\n </e-views>\r\n</ejs-schedule>\r\n", styles: ["::ng-deep .e-dlg-container{display:none}::ng-deep .e-popup{display:none}:host{display:flex;height:100%;flex-direction:column}\n", " \n .e-popup-close {\n display: none\n }\n"] }]
|
156
156
|
}], ctorParameters: () => [{ type: i1.SessionService }, { type: i2.MailboxService }, { type: i3.PanesRouter }, { type: i4.PromptService }], propDecorators: { selectedDateChange: [{
|
157
157
|
type: Output
|
158
158
|
}], selectedDate: [{
|
@@ -161,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
161
161
|
type: ViewChild,
|
162
162
|
args: ['schedule', { static: true }]
|
163
163
|
}] } });
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9zY2hlZHVsZXIvc2NoZWR1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9zY2hlZHVsZXIvc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQTJDLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUsxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU25ELHlCQUF5QjtBQUN6QixNQUFNLE9BQU8scUJBQXFCO0lBY2hDLHFCQUFxQjtJQUNyQixZQUNFLE9BQXVCLEVBQ2YsUUFBd0IsRUFDeEIsT0FBb0IsRUFDcEIsR0FBa0I7UUFGbEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBbEJULHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFeEQsb0JBQWUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDakQsa0JBQWEsR0FBdUI7WUFDM0MsV0FBVyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLO1lBQzdELFVBQVUsRUFBRSxFQUFFO1NBQ2YsQ0FBQztRQUtNLGlCQUFZLEdBQVMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQVMsSUFBSSxVQUFVLENBQUM7UUFRdEYsSUFBSSxDQUFD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QUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLENBQUMsQ0FBa0I7SUFFekIsQ0FBQztJQUNELFVBQVUsQ0FBQyxDQUFpQjtRQUMxQixNQUFNLEdBQUcsR0FBSSxDQUFDLENBQUMsS0FBYSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7OEdBMUlVLHFCQUFxQjtrR0FBckIscUJBQXFCLGlTQ2pCbEMsOHlFQW9DQSxtK0hEeEJjLENBQUMsYUFBYSxDQUFDOzsyRkFLaEIscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLGlCQUFpQixjQUVmLENBQUMsYUFBYSxDQUFDO3NLQU1SLGtCQUFrQjtzQkFBcEMsTUFBTTtnQkFDRSxZQUFZO3NCQUFwQixLQUFLO2dCQU9tQyxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRXZlbnRTZXR0aW5nc01vZGVsLCBWaWV3LCBOYXZpZ2F0aW5nRXZlbnRBcmdzLCBFdmVudENsaWNrQXJncywgU2NoZWR1bGUsIFNlbGVjdEV2ZW50QXJncyB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1zY2hlZHVsZSc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBzd2FwQW5pbWF0aW9uIH0gZnJvbSAnLi4vY29yZS9hbmltYXRpb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXNjaGVkdWxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGFuaW1hdGlvbnM6IFtzd2FwQW5pbWF0aW9uXSxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL3NjaGVkdWxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIFNjaGVkdWxlciBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ZWREYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZTogRGF0ZTtcclxuICByZWFkb25seSBjYWxlbmRhck9wdGlvbnMgPSB7IG06ICdNTU0nLCBkOiAnRCcsIHc6IGZhbHNlIH07XHJcbiAgcmVhZG9ubHkgZXZlbnRTZXR0aW5nczogRXZlbnRTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgYWxsb3dBZGRpbmc6IGZhbHNlLCBhbGxvd0VkaXRpbmc6IGZhbHNlLCBhbGxvd0RlbGV0aW5nOiBmYWxzZSxcclxuICAgIGRhdGFTb3VyY2U6IFtdXHJcbiAgfTtcclxuICBwYWdlOiBudW1iZXI7XHJcbiAgQFZpZXdDaGlsZCgnc2NoZWR1bGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzY2hlZHVsZTogU2NoZWR1bGU7XHJcbiAgc3RhcnRpbmc6IERhdGU7XHJcbiAgZW5kaW5nOiBEYXRlO1xyXG4gIHByaXZhdGUgX2N1cnJlbnRWaWV3OiBWaWV3ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NjaGVkdWxlVmlldycpIGFzIFZpZXcgfHwgJ1dvcmtXZWVrJztcclxuICAgIGhvbGlkYXlzOiBhbnk7XHJcbiAgLyoqIFNjaGVkdWxlciBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmhvbGlkYXlzID0gc2Vzc2lvbi5wcm9maWxlLmhvbGlkYXlzICYmXHJcbiAgICAgIHNlc3Npb24ucHJvZmlsZS5ob2xpZGF5cy5tYXAoaCA9PiAoeyBmcm9tOiBoLnN0YXJ0RGF0ZSwgdG86IGguZnJvbURhdGUsIGxhYmVsOiBoLnRpdGxlIH0pKVxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5fcG9wdWxhdGUoKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLy90aGlzLnNjaGVkdWxlLnNjcm9sbFRvKHRoaXMuc2VsZWN0ZWREYXRlLnRvVGltZVN0cmluZygpKTtcclxuICB9XHJcbiAgZXhwb3J0KCkge1xyXG4gICAgdGhpcy5zY2hlZHVsZS5leHBvcnRUb0lDYWxlbmRhcigpO1xyXG4gIH1cclxuICBjaGFuZ2VWaWV3KHZpZXc6IFZpZXcpIHtcclxuICAgIHRoaXMuc2NoZWR1bGUuY2hhbmdlVmlldyh2aWV3KTtcclxuICB9XHJcbiAgZ2V0IGN1cnJlbnRWaWV3KCk6IFZpZXcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRWaWV3O1xyXG4gIH1cclxuICBzZXQgY3VycmVudFZpZXcodmFsdWU6IFZpZXcpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzY2hlZHVsZVZpZXcnLCB2YWx1ZSk7XHJcbiAgICB0aGlzLl9jdXJyZW50VmlldyA9IHZhbHVlO1xyXG4gIH1cclxuICBwcmV2KCkge1xyXG4gICAgbGV0IGRhdGUgPSBkYXlqcyh0aGlzLnNjaGVkdWxlLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFZpZXcpIHtcclxuICAgICAgY2FzZSAnTW9udGgnOlxyXG4gICAgICBjYXNlICdBZ2VuZGEnOlxyXG4gICAgICBjYXNlICdNb250aEFnZW5kYSc6XHJcbiAgICAgICAgZGF0ZSA9IGRhdGUuYWRkKC0xLCAnTScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdEYXknOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgtMSwgJ2QnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnV29ya1dlZWsnOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgtMSwgJ3cnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnWWVhcic6XHJcbiAgICAgICAgZGF0ZSA9IGRhdGUuYWRkKC0xLCAneScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zY2hlZHVsZS5jaGFuZ2VEYXRlKGRhdGUudG9EYXRlKCkpO1xyXG4gIH1cclxuICBuZXh0KCkge1xyXG4gICAgbGV0IGRhdGUgPSBkYXlqcyh0aGlzLnNjaGVkdWxlLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFZpZXcpIHtcclxuICAgICAgY2FzZSAnTW9udGgnOlxyXG4gICAgICBjYXNlICdBZ2VuZGEnOlxyXG4gICAgICBjYXNlICdNb250aEFnZW5kYSc6XHJcbiAgICAgICAgZGF0ZSA9IGRhdGUuYWRkKDEsICdNJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0RheSc6XHJcbiAgICAgICAgZGF0ZSA9IGRhdGUuYWRkKDEsICdkJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1dvcmtXZWVrJzpcclxuICAgICAgICBkYXRlID0gZGF0ZS5hZGQoMSwgJ3cnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnWWVhcic6XHJcbiAgICAgICAgZGF0ZSA9IGRhdGUuYWRkKDEsICd5Jyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNjaGVkdWxlLmNoYW5nZURhdGUoZGF0ZS50b0RhdGUoKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3BvcHVsYXRlKCkge1xyXG4gICAgY29uc3QgZGF0ZXMgPSB0aGlzLnNjaGVkdWxlLmdldEN1cnJlbnRWaWV3RGF0ZXMoKTtcclxuICAgIGlmICghZGF0ZXMubGVuZ3RoKSBkYXRlcy5wdXNoKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50Vmlldykge1xyXG4gICAgICBjYXNlICdNb250aCc6XHJcbiAgICAgIGNhc2UgJ0FnZW5kYSc6XHJcbiAgICAgIGNhc2UgJ01vbnRoQWdlbmRhJzpcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnRGF5JzpcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnV29ya1dlZWsnOlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdZZWFyJzpcclxuICAgICAgICBkYXRlcy5wdXNoKGRheWpzKGRhdGVzWzBdKS5hZGQoMSwgJ3knKS50b0RhdGUoKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0YXJ0aW5nID0gZGF0ZXNbMF0gYXMgRGF0ZSxcclxuICAgICAgdGhpcy5lbmRpbmcgPSBkYXRlc1tkYXRlcy5sZW5ndGggLSAxXSBhcyBEYXRlO1xyXG4gICAgdGhpcy5fbWFpbGJveC5ldmVudHModGhpcy5zdGFydGluZywgdGhpcy5lbmRpbmcpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHIgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSByLm1hcChlID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIElkOiBlLmlkLFxyXG4gICAgICAgICAgICBkb2N1bWVudElkOiBlLmRvY3VtZW50SWQsXHJcbiAgICAgICAgICAgIFN0YXJ0VGltZTogbmV3IERhdGUoZS5zdGFydGluZyksXHJcbiAgICAgICAgICAgIEVuZFRpbWU6IGUuZW5kaW5nID8gbmV3IERhdGUoZS5lbmRpbmcpIDogbnVsbCxcclxuICAgICAgICAgICAgU3ViamVjdDogZS50aXRsZSxcclxuICAgICAgICAgICAgSXNBbGxEYXk6ICFlLmVuZGluZyB8fCBlLmVuZGluZyA9PT0gZS5zdGFydGluZ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUuZXZlbnRTZXR0aW5ncy5kYXRhU291cmNlID0gZGF0YTtcclxuICAgICAgICB0aGlzLnBhZ2UgPSB0aGlzLnN0YXJ0aW5nLnZhbHVlT2YoKTtcclxuICAgICAgfSwgZXJyb3I6ICgpID0+IHRoaXMuX3NiLmVycm9yKClcclxuICAgIH0pO1xyXG4gIH1cclxuICBkcmFnKF86IERyYWdFdmVudCkge1xyXG4gICAgdGhpcy5fbWFpbGJveC5jaGFuZ2VFdmVudCgxLCB7IHN0YXJ0aW5nOiBudWxsIH0pLnN1YnNjcmliZSh7IGVycm9yOiAoKSA9PiB0aGlzLl9zYi5lcnJvcigpIH0pO1xyXG4gIH1cclxuICBuYXYoZTogTmF2aWdhdGluZ0V2ZW50QXJncykge1xyXG4gICAgc3dpdGNoIChlLmFjdGlvbikge1xyXG4gICAgICBjYXNlICd2aWV3JzpcclxuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gZS5jdXJyZW50VmlldyBhcyBWaWV3O1xyXG4gICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQoZS5jdXJyZW50RGF0ZSk7XHJcbiAgICAgICAgdGhpcy5fcG9wdWxhdGUoKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgc2VsZWN0KGU6IFNlbGVjdEV2ZW50QXJncykge1xyXG5cclxuICB9XHJcbiAgZXZlbnRDbGljayhlOiBFdmVudENsaWNrQXJncykge1xyXG4gICAgY29uc3QgZXZ0ID0gKGUuZXZlbnQgYXMgYW55KTtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvZCcsIGV2dC5kb2N1bWVudElkLmVuY29kZUlkKCldKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC10b29sYmFyIGNsYXNzPVwibmF2LXRvb2xiYXJcIj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYml6ZG9jVG9vbHRpcF09XCInUHJldlBhZ2UnfHRyYW5zbGF0ZVwiIChjbGljayk9XCJwcmV2KClcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+a2V5Ym9hcmRfYXJyb3dfbGVmdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJtYXQtYm9keVwiPnt7IHN0YXJ0aW5nIHwgZGF0ZVJhbmdlIDogZW5kaW5nIDogY2FsZW5kYXJPcHRpb25zICB9fTwvc3Bhbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYml6ZG9jVG9vbHRpcF09XCInTmV4dFBhZ2UnfHRyYW5zbGF0ZVwiIChjbGljayk9XCJuZXh0KClcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYml6ZG9jVG9vbHRpcF09XCInVmlldyd8dHJhbnNsYXRlXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInZpZXdcIj48bWF0LWljb24+dmlld19hZ2VuZGE8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudSAjdmlldz5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY2hhbmdlVmlldygnV29ya1dlZWsnKVwiPnt7J1dvcmtXZWVrJ3x0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGFuZ2VWaWV3KCdNb250aCcpXCI+e3snTW9udGgnfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoYW5nZVZpZXcoJ0FnZW5kYScpXCI+e3snQWdlbmRhJ3x0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGFuZ2VWaWV3KCdNb250aEFnZW5kYScpXCI+e3snTW9udGhBZ2VuZGEnfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8IS0tPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGFuZ2VWaWV3KCdUaW1lbGluZU1vbnRoJylcIj57eydUaW1lbGluZU1vbnRoJ3x0cmFuc2xhdGV9fTwvYnV0dG9uPi0tPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGFuZ2VWaWV3KCdEYXknKVwiPnt7J0RheSd8dHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY2hhbmdlVmlldygnWWVhcicpXCI+e3snWWVhcid8dHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICA8L21hdC1tZW51PlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJleHBvcnQoKVwiIGJpemRvY1Rvb2x0aXA9XCJ7eydEb3dubG9hZCcgfCB0cmFuc2xhdGV9fVwiPjxtYXQtaWNvbj5zYXZlX2FsdDwvbWF0LWljb24+PC9idXR0b24+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxzdHlsZSBzY29wZWQ+IFxyXG4gIC5lLXBvcHVwLWNsb3NlIHtcclxuICAgIGRpc3BsYXk6IG5vbmVcclxuICB9XHJcbjwvc3R5bGU+XHJcbjxlanMtc2NoZWR1bGUgI3NjaGVkdWxlIFtldmVudFNldHRpbmdzXT1cImV2ZW50U2V0dGluZ3NcIiBbY3VycmVudFZpZXddPVwiY3VycmVudFZpZXdcIiBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXHJcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIiAobmF2aWdhdGluZyk9XCJuYXYoJGV2ZW50KVwiIGhlaWdodD1cIjEwMCVcIiBbc2hvd0hlYWRlckJhcl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgKHNlbGVjdCk9XCJzZWxlY3QoJGV2ZW50KVwiIGNsYXNzPVwiZmxleFwiXHJcbiAgICAgICAgICAgICAgKGV2ZW50Q2xpY2spPVwiZXZlbnRDbGljaygkZXZlbnQpXCIgKGRyYWdTdGFydCk9XCJkcmFnKCRldmVudClcIiBbQHN3YXBlXT1cInBhZ2VcIj5cclxuICA8ZS12aWV3cz5cclxuICAgIDxlLXZpZXcgb3B0aW9uPVwiTW9udGhcIj48L2Utdmlldz5cclxuICAgIDxlLXZpZXcgb3B0aW9uPVwiRGF5XCI+PC9lLXZpZXc+XHJcbiAgICA8ZS12aWV3IG9wdGlvbj1cIldvcmtXZWVrXCI+PC9lLXZpZXc+XHJcbiAgICA8ZS12aWV3IG9wdGlvbj1cIkFnZW5kYVwiPjwvZS12aWV3PlxyXG4gICAgPGUtdmlldyBvcHRpb249XCJNb250aEFnZW5kYVwiPjwvZS12aWV3PlxyXG4gICAgPGUtdmlldyBvcHRpb249XCJUaW1lbGluZU1vbnRoXCI+PC9lLXZpZXc+XHJcbiAgICA8ZS12aWV3IG9wdGlvbj1cIlllYXJcIj48L2Utdmlldz5cclxuICA8L2Utdmlld3M+XHJcbjwvZWpzLXNjaGVkdWxlPlxyXG4iXX0=
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9zY2hlZHVsZXIvc2NoZWR1bGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9zY2hlZHVsZXIvc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQTJDLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUsxQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBU25ELHlCQUF5QjtBQUN6QixNQUFNLE9BQU8scUJBQXFCO0lBY2hDLHFCQUFxQjtJQUNyQixZQUNFLE9BQXVCLEVBQ2YsUUFBd0IsRUFDeEIsT0FBb0IsRUFDcEIsR0FBa0I7UUFGbEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBbEJULHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFeEQsb0JBQWUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDakQsa0JBQWEsR0FBdUI7WUFDM0MsV0FBVyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxLQUFLO1lBQzdELFVBQVUsRUFBRSxFQUFFO1NBQ2YsQ0FBQztRQUtNLGlCQUFZLEdBQVMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQVMsSUFBSSxVQUFVLENBQUM7UUFRdEYsSUFBSSxDQUFD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QUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLENBQUMsQ0FBa0I7SUFFekIsQ0FBQztJQUNELFVBQVUsQ0FBQyxDQUFpQjtRQUMxQixNQUFNLEdBQUcsR0FBSSxDQUFDLENBQUMsS0FBYSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7OEdBMUlVLHFCQUFxQjtrR0FBckIscUJBQXFCLGlTQ2pCbEMsNnpFQW9DQSwrK0hEeEJjLENBQUMsYUFBYSxDQUFDOzsyRkFLaEIscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLGlCQUFpQixjQUVmLENBQUMsYUFBYSxDQUFDO3NLQU1SLGtCQUFrQjtzQkFBcEMsTUFBTTtnQkFDRSxZQUFZO3NCQUFwQixLQUFLO2dCQU9tQyxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRXZlbnRTZXR0aW5nc01vZGVsLCBWaWV3LCBOYXZpZ2F0aW5nRXZlbnRBcmdzLCBFdmVudENsaWNrQXJncywgU2NoZWR1bGUsIFNlbGVjdEV2ZW50QXJncyB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1zY2hlZHVsZSc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBzd2FwQW5pbWF0aW9uIH0gZnJvbSAnLi4vY29yZS9hbmltYXRpb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLXNjaGVkdWxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZWR1bGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGFuaW1hdGlvbnM6IFtzd2FwQW5pbWF0aW9uXSxcclxuICBzdHlsZVVybHM6IFtcclxuICAgICcuL3NjaGVkdWxlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuLyoqIFNjaGVkdWxlciBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ZWREYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZTogRGF0ZTtcclxuICByZWFkb25seSBjYWxlbmRhck9wdGlvbnMgPSB7IG06ICdNTU0nLCBkOiAnRCcsIHc6IGZhbHNlIH07XHJcbiAgcmVhZG9ubHkgZXZlbnRTZXR0aW5nczogRXZlbnRTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgYWxsb3dBZGRpbmc6IGZhbHNlLCBhbGxvd0VkaXRpbmc6IGZhbHNlLCBhbGxvd0RlbGV0aW5nOiBmYWxzZSxcclxuICAgIGRhdGFTb3VyY2U6IFtdXHJcbiAgfTtcclxuICBwYWdlOiBudW1iZXI7XHJcbiAgQFZpZXdDaGlsZCgnc2NoZWR1bGUnLCB7IHN0YXRpYzogdHJ1ZSB9KSBzY2hlZHVsZTogU2NoZWR1bGU7XHJcbiAgc3RhcnRpbmc6IERhdGU7XHJcbiAgZW5kaW5nOiBEYXRlO1xyXG4gIHByaXZhdGUgX2N1cnJlbnRWaWV3OiBWaWV3ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3NjaGVkdWxlVmlldycpIGFzIFZpZXcgfHwgJ1dvcmtXZWVrJztcclxuICAgIGhvbGlkYXlzOiBhbnk7XHJcbiAgLyoqIFNjaGVkdWxlciBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmhvbGlkYXlzID0gc2Vzc2lvbi5wcm9maWxlLmhvbGlkYXlzICYmXHJcbiAgICAgIHNlc3Npb24ucHJvZmlsZS5ob2xpZGF5cy5tYXAoaCA9PiAoeyBmcm9tOiBoLnN0YXJ0RGF0ZSwgdG86IGguZnJvbURhdGUsIGxhYmVsOiBoLnRpdGxlIH0pKVxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy5fcG9wdWxhdGUoKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLy90aGlzLnNjaGVkdWxlLnNjcm9sbFRvKHRoaXMuc2VsZWN0ZWREYXRlLnRvVGltZVN0cmluZygpKTtcclxuICB9XHJcbiAgZXhwb3J0KCkge1xyXG4gICAgdGhpcy5zY2hlZHVsZS5leHBvcnRUb0lDYWxlbmRhcigpO1xyXG4gIH1cclxuICBjaGFuZ2VWaWV3KHZpZXc6IFZpZXcpIHtcclxuICAgIHRoaXMuc2NoZWR1bGUuY2hhbmdlVmlldyh2aWV3KTtcclxuICB9XHJcbiAgZ2V0IGN1cnJlbnRWaWV3KCk6IFZpZXcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRWaWV3O1xyXG4gIH1cclxuICBzZXQgY3VycmVudFZpZXcodmFsdWU6IFZpZXcpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzY2hlZHVsZVZpZXcnLCB2YWx1ZSk7XHJcbiAgICB0aGlzLl9jdXJyZW50VmlldyA9IHZhbHVlO1xyXG4gIH1cclxuICBwcmV2KCkge1xyXG4gICAgbGV0IGRhdGUgPSBkYXlqcyh0aGlzLnNjaGVkdWxlLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFZpZXcpIHtcclxuICAgICAgY2FzZSAnTW9udGgnOlxyXG4gICAgICBjYXNlICdBZ2VuZGEnOlxyXG4gICAgICBjYXNlICdNb250aEFnZW5kYSc6XHJcbiAgICAgICAgZGF0ZSA9IGRhdGUuYWRkKC0xLCAnTScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdEYXknOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgtMSwgJ2QnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnV29ya1dlZWsnOlxyXG4gICAgICAgIGRhdGUgPSBkYXRlLmFkZCgtMSwgJ3cnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnWWVhcic6XHJcbiAgICAgICAgZGF0ZSA9IGRhdGUuYWRkKC0xLCAneScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zY2hlZHVsZS5jaGFuZ2VEYXRlKGRhdGUudG9EYXRlKCkpO1xyXG4gIH1cclxuICBuZXh0KCkge1xyXG4gICAgbGV0IGRhdGUgPSBkYXlqcyh0aGlzLnNjaGVkdWxlLnNlbGVjdGVkRGF0ZSk7XHJcbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFZpZXcpIHtcclxuICAgICAgY2FzZSAnTW9udGgnOlxyXG4gICAgICBjYXNlICdBZ2VuZGEnOlxyXG4gICAgICBjYXNlICdNb250aEFnZW5kYSc6XHJcbiAgICAgICAgZGF0ZSA9IGRhdGUuYWRkKDEsICdNJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0RheSc6XHJcbiAgICAgICAgZGF0ZSA9IGRhdGUuYWRkKDEsICdkJyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ1dvcmtXZWVrJzpcclxuICAgICAgICBkYXRlID0gZGF0ZS5hZGQoMSwgJ3cnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnWWVhcic6XHJcbiAgICAgICAgZGF0ZSA9IGRhdGUuYWRkKDEsICd5Jyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNjaGVkdWxlLmNoYW5nZURhdGUoZGF0ZS50b0RhdGUoKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3BvcHVsYXRlKCkge1xyXG4gICAgY29uc3QgZGF0ZXMgPSB0aGlzLnNjaGVkdWxlLmdldEN1cnJlbnRWaWV3RGF0ZXMoKTtcclxuICAgIGlmICghZGF0ZXMubGVuZ3RoKSBkYXRlcy5wdXNoKHRoaXMuc2VsZWN0ZWREYXRlKTtcclxuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50Vmlldykge1xyXG4gICAgICBjYXNlICdNb250aCc6XHJcbiAgICAgIGNhc2UgJ0FnZW5kYSc6XHJcbiAgICAgIGNhc2UgJ01vbnRoQWdlbmRhJzpcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnRGF5JzpcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnV29ya1dlZWsnOlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdZZWFyJzpcclxuICAgICAgICBkYXRlcy5wdXNoKGRheWpzKGRhdGVzWzBdKS5hZGQoMSwgJ3knKS50b0RhdGUoKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0YXJ0aW5nID0gZGF0ZXNbMF0gYXMgRGF0ZSxcclxuICAgICAgdGhpcy5lbmRpbmcgPSBkYXRlc1tkYXRlcy5sZW5ndGggLSAxXSBhcyBEYXRlO1xyXG4gICAgdGhpcy5fbWFpbGJveC5ldmVudHModGhpcy5zdGFydGluZywgdGhpcy5lbmRpbmcpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IHIgPT4ge1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSByLm1hcChlID0+IHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIElkOiBlLmlkLFxyXG4gICAgICAgICAgICBkb2N1bWVudElkOiBlLmRvY3VtZW50SWQsXHJcbiAgICAgICAgICAgIFN0YXJ0VGltZTogbmV3IERhdGUoZS5zdGFydGluZyksXHJcbiAgICAgICAgICAgIEVuZFRpbWU6IGUuZW5kaW5nID8gbmV3IERhdGUoZS5lbmRpbmcpIDogbnVsbCxcclxuICAgICAgICAgICAgU3ViamVjdDogZS50aXRsZSxcclxuICAgICAgICAgICAgSXNBbGxEYXk6ICFlLmVuZGluZyB8fCBlLmVuZGluZyA9PT0gZS5zdGFydGluZ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuc2NoZWR1bGUuZXZlbnRTZXR0aW5ncy5kYXRhU291cmNlID0gZGF0YTtcclxuICAgICAgICB0aGlzLnBhZ2UgPSB0aGlzLnN0YXJ0aW5nLnZhbHVlT2YoKTtcclxuICAgICAgfSwgZXJyb3I6ICgpID0+IHRoaXMuX3NiLmVycm9yKClcclxuICAgIH0pO1xyXG4gIH1cclxuICBkcmFnKF86IERyYWdFdmVudCkge1xyXG4gICAgdGhpcy5fbWFpbGJveC5jaGFuZ2VFdmVudCgxLCB7IHN0YXJ0aW5nOiBudWxsIH0pLnN1YnNjcmliZSh7IGVycm9yOiAoKSA9PiB0aGlzLl9zYi5lcnJvcigpIH0pO1xyXG4gIH1cclxuICBuYXYoZTogTmF2aWdhdGluZ0V2ZW50QXJncykge1xyXG4gICAgc3dpdGNoIChlLmFjdGlvbikge1xyXG4gICAgICBjYXNlICd2aWV3JzpcclxuICAgICAgICB0aGlzLmN1cnJlbnRWaWV3ID0gZS5jdXJyZW50VmlldyBhcyBWaWV3O1xyXG4gICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlQ2hhbmdlLmVtaXQoZS5jdXJyZW50RGF0ZSk7XHJcbiAgICAgICAgdGhpcy5fcG9wdWxhdGUoKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgc2VsZWN0KGU6IFNlbGVjdEV2ZW50QXJncykge1xyXG5cclxuICB9XHJcbiAgZXZlbnRDbGljayhlOiBFdmVudENsaWNrQXJncykge1xyXG4gICAgY29uc3QgZXZ0ID0gKGUuZXZlbnQgYXMgYW55KTtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvZCcsIGV2dC5kb2N1bWVudElkLmVuY29kZUlkKCldKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC10b29sYmFyIGNsYXNzPVwibmF2LXRvb2xiYXJcIj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYml6ZG9jVG9vbHRpcF09XCInUHJldlBhZ2UnfHRyYW5zbGF0ZVwiIChjbGljayk9XCJwcmV2KClcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+a2V5Ym9hcmRfYXJyb3dfbGVmdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJtYXQtYm9keVwiPnt7IHN0YXJ0aW5nIHwgZGF0ZVJhbmdlIDogZW5kaW5nIDogY2FsZW5kYXJPcHRpb25zICB9fTwvc3Bhbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYml6ZG9jVG9vbHRpcF09XCInTmV4dFBhZ2UnfHRyYW5zbGF0ZVwiIChjbGljayk9XCJuZXh0KClcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYml6ZG9jVG9vbHRpcF09XCInVmlldyd8dHJhbnNsYXRlXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInZpZXdcIj48bWF0LWljb24+dmlld19hZ2VuZGE8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudSAjdmlldz5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY2hhbmdlVmlldygnV29ya1dlZWsnKVwiPnt7J1dvcmtXZWVrJ3x0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGFuZ2VWaWV3KCdNb250aCcpXCI+e3snTW9udGgnfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNoYW5nZVZpZXcoJ0FnZW5kYScpXCI+e3snQWdlbmRhJ3x0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGFuZ2VWaWV3KCdNb250aEFnZW5kYScpXCI+e3snTW9udGhBZ2VuZGEnfHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8IS0tPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGFuZ2VWaWV3KCdUaW1lbGluZU1vbnRoJylcIj57eydUaW1lbGluZU1vbnRoJ3x0cmFuc2xhdGV9fTwvYnV0dG9uPi0tPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjaGFuZ2VWaWV3KCdEYXknKVwiPnt7J0RheSd8dHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY2hhbmdlVmlldygnWWVhcicpXCI+e3snWWVhcid8dHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICA8L21hdC1tZW51PlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJleHBvcnQoKVwiIGJpemRvY1Rvb2x0aXA9XCJ7eydEb3dubG9hZCcgfCB0cmFuc2xhdGV9fVwiPjxtYXQtaWNvbj5zYXZlX2FsdDwvbWF0LWljb24+PC9idXR0b24+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxzdHlsZSBzY29wZWQ+IFxyXG4gIC5lLXBvcHVwLWNsb3NlIHtcclxuICAgIGRpc3BsYXk6IG5vbmVcclxuICB9XHJcbjwvc3R5bGU+XHJcbjxlanMtc2NoZWR1bGUgI3NjaGVkdWxlIFtldmVudFNldHRpbmdzXT1cImV2ZW50U2V0dGluZ3NcIiBbY3VycmVudFZpZXddPVwiY3VycmVudFZpZXdcIiBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZVwiXHJcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIiAobmF2aWdhdGluZyk9XCJuYXYoJGV2ZW50KVwiIGhlaWdodD1cIjEwMCVcIiBbc2hvd0hlYWRlckJhcl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgKHNlbGVjdCk9XCJzZWxlY3QoJGV2ZW50KVwiIGNsYXNzPVwiZmxleFwiXHJcbiAgICAgICAgICAgICAgKGV2ZW50Q2xpY2spPVwiZXZlbnRDbGljaygkZXZlbnQpXCIgKGRyYWdTdGFydCk9XCJkcmFnKCRldmVudClcIiBbQHN3YXBlXT1cInBhZ2VcIiBjbGFzcz1cImZsZXhcIj5cclxuICA8ZS12aWV3cz5cclxuICAgIDxlLXZpZXcgb3B0aW9uPVwiTW9udGhcIj48L2Utdmlldz5cclxuICAgIDxlLXZpZXcgb3B0aW9uPVwiRGF5XCI+PC9lLXZpZXc+XHJcbiAgICA8ZS12aWV3IG9wdGlvbj1cIldvcmtXZWVrXCI+PC9lLXZpZXc+XHJcbiAgICA8ZS12aWV3IG9wdGlvbj1cIkFnZW5kYVwiPjwvZS12aWV3PlxyXG4gICAgPGUtdmlldyBvcHRpb249XCJNb250aEFnZW5kYVwiPjwvZS12aWV3PlxyXG4gICAgPGUtdmlldyBvcHRpb249XCJUaW1lbGluZU1vbnRoXCI+PC9lLXZpZXc+XHJcbiAgICA8ZS12aWV3IG9wdGlvbj1cIlllYXJcIj48L2Utdmlldz5cclxuICA8L2Utdmlld3M+XHJcbjwvZWpzLXNjaGVkdWxlPlxyXG4iXX0=
|