@bizdoc/core 2.3.24 → 2.3.26

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.
@@ -133,11 +133,11 @@ export class BrowseFilterComponent {
133
133
  this._destroy.complete();
134
134
  }
135
135
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BrowseFilterComponent, deps: [{ token: i1.FormBuilder }, { token: i2.SessionService }, { token: i0.ChangeDetectorRef }, { token: i3.MailboxService }, { token: i4.AccountService }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component }); }
136
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: BrowseFilterComponent, selector: "bizdoc-browse-filter", inputs: { values: "values", folderId: "folderId", exclude: "exclude" }, outputs: { valuesChange: "valuesChange" }, viewQueries: [{ propertyName: "chips", first: true, predicate: MatChipListbox, descendants: true, static: true }, { propertyName: "contains", first: true, predicate: ["contains"], descendants: true, read: ElementRef, static: true }, { propertyName: "sender", first: true, predicate: ["sender"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"column gap\">\n @if (!exclude || exclude.indexOf('contains') < 0) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput formControlName=\"contains\" autocomplete=\"off\" placeholder=\"{{'Contains' | translate}}\" #contains>\n @if (form.value.contains) {\n <button matSuffix mat-icon-button aria-label=\"\" (click)=\"form.controls.contains.setValue(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n }\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput [matAutocomplete]=\"senders\" [placeholder]=\"'Sender' | translate\" [formControl]=\"senderId\" #sender />\n <mat-autocomplete #senders [displayWith]=\"displayFn\" (optionSelected)=\"senderSelected($event)\">\n @for (u of senders$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n @if (senderId.value) {\n <button matSuffix mat-icon-button (click)=\"clearSender()\"><mat-icon>clear</mat-icon></button>\n }\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [placeholder]=\"'Status'|translate\" formControlName=\"state\">\n <mat-option>\n {{ 'All' | translate }}\n </mat-option>\n @for (s of states; track s) {\n <mat-option [value]=\"s.name\">\n {{s.title}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [placeholder]=\"'Form' | translate\" formControlName=\"form\">\n <mat-option>\n {{ 'All' | translate }}\n </mat-option>\n @for (f of forms; track f) {\n <mat-option [value]=\"f.name\">{{f.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-chip-listbox id=\"tags\" (change)=\"toggleTag($event)\">\n @for (tag of tags; track tag) {\n <mat-chip-option color=\"accent\">\n {{tag}}\n </mat-chip-option>\n }\n </mat-chip-listbox>\n @if (filters) {\n <bizdoc-cube-filter class=\"cube-filter\"\n [cube]=\"filters.cube\"\n [include]=\"filters.axes\"\n [axes]=\"values\"\n (axesChange)=\"axesChange($event)\"></bizdoc-cube-filter>\n }\n</form>\n", styles: [".cube-filter ::ng-deep form{padding:0}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i5.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "component", type: i6.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: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i11.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: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: ["cube", "exclude", "include", "axes"], outputs: ["axesChange"] }, { kind: "pipe", type: i14.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] }); }
136
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: BrowseFilterComponent, selector: "bizdoc-browse-filter", inputs: { values: "values", folderId: "folderId", exclude: "exclude" }, outputs: { valuesChange: "valuesChange" }, viewQueries: [{ propertyName: "chips", first: true, predicate: MatChipListbox, descendants: true, static: true }, { propertyName: "contains", first: true, predicate: ["contains"], descendants: true, read: ElementRef, static: true }, { propertyName: "sender", first: true, predicate: ["sender"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"column gap\" autocomplete=\"off\">\n @if (!exclude || exclude.indexOf('contains') < 0) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput formControlName=\"contains\" placeholder=\"{{'Contains' | translate}}\" #contains>\n @if (form.value.contains) {\n <button matSuffix mat-icon-button aria-label=\"\" (click)=\"form.controls.contains.setValue(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n }\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput [matAutocomplete]=\"senders\" [placeholder]=\"'Sender' | translate\" [formControl]=\"senderId\" #sender />\n <mat-autocomplete #senders [displayWith]=\"displayFn\" (optionSelected)=\"senderSelected($event)\">\n @for (u of senders$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n @if (senderId.value) {\n <button matSuffix mat-icon-button (click)=\"clearSender()\"><mat-icon>clear</mat-icon></button>\n }\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [placeholder]=\"'Status'|translate\" formControlName=\"state\">\n <mat-option>\n {{ 'All' | translate }}\n </mat-option>\n @for (s of states; track s) {\n <mat-option [value]=\"s.name\">\n {{s.title}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [placeholder]=\"'Form' | translate\" formControlName=\"form\">\n <mat-option>\n {{ 'All' | translate }}\n </mat-option>\n @for (f of forms; track f) {\n <mat-option [value]=\"f.name\">{{f.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-chip-listbox id=\"tags\" (change)=\"toggleTag($event)\">\n @for (tag of tags; track tag) {\n <mat-chip-option color=\"accent\">\n {{tag}}\n </mat-chip-option>\n }\n </mat-chip-listbox>\n @if (filters) {\n <bizdoc-cube-filter class=\"cube-filter\"\n [cube]=\"filters.cube\"\n [include]=\"filters.axes\"\n [axes]=\"values\"\n (axesChange)=\"axesChange($event)\"></bizdoc-cube-filter>\n }\n</form>\n", styles: [".cube-filter ::ng-deep form{padding:0}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i5.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "component", type: i6.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: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i11.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: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.CubeFilterComponent, selector: "bizdoc-cube-filter", inputs: ["cube", "exclude", "include", "axes"], outputs: ["axesChange"] }, { kind: "pipe", type: i14.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] }); }
137
137
  }
138
138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BrowseFilterComponent, decorators: [{
139
139
  type: Component,
140
- args: [{ selector: 'bizdoc-browse-filter', template: "<form [formGroup]=\"form\" class=\"column gap\">\n @if (!exclude || exclude.indexOf('contains') < 0) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput formControlName=\"contains\" autocomplete=\"off\" placeholder=\"{{'Contains' | translate}}\" #contains>\n @if (form.value.contains) {\n <button matSuffix mat-icon-button aria-label=\"\" (click)=\"form.controls.contains.setValue(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n }\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput [matAutocomplete]=\"senders\" [placeholder]=\"'Sender' | translate\" [formControl]=\"senderId\" #sender />\n <mat-autocomplete #senders [displayWith]=\"displayFn\" (optionSelected)=\"senderSelected($event)\">\n @for (u of senders$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n @if (senderId.value) {\n <button matSuffix mat-icon-button (click)=\"clearSender()\"><mat-icon>clear</mat-icon></button>\n }\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [placeholder]=\"'Status'|translate\" formControlName=\"state\">\n <mat-option>\n {{ 'All' | translate }}\n </mat-option>\n @for (s of states; track s) {\n <mat-option [value]=\"s.name\">\n {{s.title}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [placeholder]=\"'Form' | translate\" formControlName=\"form\">\n <mat-option>\n {{ 'All' | translate }}\n </mat-option>\n @for (f of forms; track f) {\n <mat-option [value]=\"f.name\">{{f.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-chip-listbox id=\"tags\" (change)=\"toggleTag($event)\">\n @for (tag of tags; track tag) {\n <mat-chip-option color=\"accent\">\n {{tag}}\n </mat-chip-option>\n }\n </mat-chip-listbox>\n @if (filters) {\n <bizdoc-cube-filter class=\"cube-filter\"\n [cube]=\"filters.cube\"\n [include]=\"filters.axes\"\n [axes]=\"values\"\n (axesChange)=\"axesChange($event)\"></bizdoc-cube-filter>\n }\n</form>\n", styles: [".cube-filter ::ng-deep form{padding:0}\n"] }]
140
+ args: [{ selector: 'bizdoc-browse-filter', template: "<form [formGroup]=\"form\" class=\"column gap\" autocomplete=\"off\">\n @if (!exclude || exclude.indexOf('contains') < 0) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput formControlName=\"contains\" placeholder=\"{{'Contains' | translate}}\" #contains>\n @if (form.value.contains) {\n <button matSuffix mat-icon-button aria-label=\"\" (click)=\"form.controls.contains.setValue(null)\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </mat-form-field>\n }\n <mat-form-field subscriptSizing=\"dynamic\">\n <input matInput [matAutocomplete]=\"senders\" [placeholder]=\"'Sender' | translate\" [formControl]=\"senderId\" #sender />\n <mat-autocomplete #senders [displayWith]=\"displayFn\" (optionSelected)=\"senderSelected($event)\">\n @for (u of senders$ | async; track u) {\n <mat-option [value]=\"u\">\n <span>{{u.name}}</span>\n </mat-option>\n }\n </mat-autocomplete>\n @if (senderId.value) {\n <button matSuffix mat-icon-button (click)=\"clearSender()\"><mat-icon>clear</mat-icon></button>\n }\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [placeholder]=\"'Status'|translate\" formControlName=\"state\">\n <mat-option>\n {{ 'All' | translate }}\n </mat-option>\n @for (s of states; track s) {\n <mat-option [value]=\"s.name\">\n {{s.title}}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-select [placeholder]=\"'Form' | translate\" formControlName=\"form\">\n <mat-option>\n {{ 'All' | translate }}\n </mat-option>\n @for (f of forms; track f) {\n <mat-option [value]=\"f.name\">{{f.title}}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-chip-listbox id=\"tags\" (change)=\"toggleTag($event)\">\n @for (tag of tags; track tag) {\n <mat-chip-option color=\"accent\">\n {{tag}}\n </mat-chip-option>\n }\n </mat-chip-listbox>\n @if (filters) {\n <bizdoc-cube-filter class=\"cube-filter\"\n [cube]=\"filters.cube\"\n [include]=\"filters.axes\"\n [axes]=\"values\"\n (axesChange)=\"axesChange($event)\"></bizdoc-cube-filter>\n }\n</form>\n", styles: [".cube-filter ::ng-deep form{padding:0}\n"] }]
141
141
  }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.SessionService }, { type: i0.ChangeDetectorRef }, { type: i3.MailboxService }, { type: i4.AccountService }, { type: undefined, decorators: [{
142
142
  type: Inject,
143
143
  args: [BIZDOC_CONFIG]
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
159
159
  type: ViewChild,
160
160
  args: ['sender', { static: true, read: ElementRef }]
161
161
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYnJvd3NlL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQXFCLFNBQVMsRUFBNEIsS0FBSyxFQUFFLFVBQVUsRUFBb0MsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJMLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUF3QixNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQUUvRSxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUM7QUFPNUIsNkJBQTZCO0FBQzdCLE1BQU0sT0FBTyxxQkFBcUI7SUEyQmhDLHlCQUF5QjtJQUN6QixZQUFvQixHQUFnQixFQUMxQixRQUF3QixFQUN4QixHQUFzQixFQUN0QixRQUF3QixFQUN4QixTQUF5QixFQUNGLE9BQXFCO1FBTGxDLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDRixZQUFPLEdBQVAsT0FBTyxDQUFjO1FBaEM3QyxZQUFPLEdBQUcsa0JBQWtCLENBQUM7UUFJbkIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUM5RCxhQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsU0FBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFtQjtZQUMvQyxRQUFRLEVBQUUsSUFBSTtZQUNkLElBQUksRUFBRSxJQUFJO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsSUFBSTtZQUNkLEdBQUcsRUFBRSxJQUFJO1NBQ1YsQ0FBQyxDQUFDO1FBWU0sWUFBTyxHQUFnRSxFQUFFLENBQUM7UUFDbEUsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFROUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzVDLENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZO2dCQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNwQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDeEIsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pHLE1BQU0sS0FBSyxHQUFxQixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ08sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakYsSUFBSSxNQUFNLENBQUMsT0FBTztnQkFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ2hDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0RCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1lBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDaEMsQ0FBQzs7WUFFQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQVE7UUFDZCxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFDLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBWSxFQUFFLEdBQWlDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ00sUUFBUSxDQUFDLEtBQXVCO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDakMsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxJQUFJO1lBQ1gsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtZQUNWLEdBQUcsRUFBRSxJQUFJO1NBQ1YsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLElBQUksS0FBSyxDQUFDLFFBQVE7WUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztJQUMvQixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELFVBQVUsQ0FBQyxJQUFhO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxTQUFTLENBQUMsR0FBeUI7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFDRCxTQUFTLENBQUMsSUFBYztRQUN0QixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3RDLENBQUM7SUFDRCxJQUFJLENBQUMsR0FBNkI7UUFDaEMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELGNBQWMsQ0FBQyxDQUErQjtRQUM1QyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQWlCLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2xELElBQUksSUFBSSxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBMUhVLHFCQUFxQix3S0FpQ3RCLGFBQWE7a0dBakNaLHFCQUFxQixzTkFzQnJCLGNBQWMsZ0lBQ29CLFVBQVUseUdBQ1osVUFBVSxnRUMvQ3ZELGd5RUE2REE7OzJGRHRDYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0Usc0JBQXNCOzswQkFzQzdCLE1BQU07MkJBQUMsYUFBYTt5Q0EvQmQsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNhLFlBQVk7c0JBQTlCLE1BQU07Z0JBaUJzQyxLQUFLO3NCQUFqRCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2dCLFFBQVE7c0JBQWxFLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNBLE1BQU07c0JBQTlELFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBJbnB1dCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIHN3aXRjaE1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdGF0ZSwgRm9ybSwgVXNlckluZm8sIEF4ZXNNYXAgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IGNsZWFudXAsIGlzU3RyaW5nIH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWFpbGJveFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL21haWxib3guc2VydmljZSc7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9hY2NvdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBWElTX1ZBTFVFX1BBVFRFUk4gfSBmcm9tICcuLi8uLi9jdWJlL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQklaRE9DX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IE1hdENoaXBMaXN0Ym94LCBNYXRDaGlwTGlzdGJveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuXHJcbmNvbnN0IEZJTFRFUl9ERUJPVU5DRSA9IDI1MDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWJyb3dzZS1maWx0ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbi8qKiBicm93c2UtZmlsdGVyIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBCcm93c2VGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBwYXR0ZXJuID0gQVhJU19WQUxVRV9QQVRURVJOO1xyXG4gIEBJbnB1dCgpIHZhbHVlczogQnJvd3NlRmlsdGVyQXJncztcclxuICBASW5wdXQoKSBmb2xkZXJJZD86IHN0cmluZztcclxuICBASW5wdXQoKSBleGNsdWRlPzogc3RyaW5nW107XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QnJvd3NlRmlsdGVyQXJncz4oKTtcclxuICByZWFkb25seSBzZW5kZXJJZCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwPEJyb3dzZUZpbHRlckFyZ3M+KHtcclxuICAgIGNvbnRhaW5zOiBudWxsLFxyXG4gICAgZm9ybTogbnVsbCxcclxuICAgIHN0YXRlOiBudWxsLFxyXG4gICAgc2VuZGVySWQ6IG51bGwsXHJcbiAgICB0YWc6IG51bGxcclxuICB9KTtcclxuICBmb3JtczogRm9ybVtdO1xyXG4gIHN0YXRlczogU3RhdGVbXTtcclxuICBzZW5kZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICB0YWdzOiBzdHJpbmdbXTtcclxuICBmaWx0ZXJzOiB7XHJcbiAgICBjdWJlPzogc3RyaW5nO1xyXG4gICAgYXhlczogc3RyaW5nW107XHJcbiAgfTtcclxuICBAVmlld0NoaWxkKE1hdENoaXBMaXN0Ym94LCB7IHN0YXRpYzogdHJ1ZSB9KSBjaGlwczogTWF0Q2hpcExpc3Rib3g7XHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbnMnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KSBjb250YWluczogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdzZW5kZXInLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KSBzZW5kZXI6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgcmVhZG9ubHkgc291cmNlczogeyBbZGF0YXR5cGU6IHN0cmluZ106IE9ic2VydmFibGU8eyBbbmFtZTogc3RyaW5nXTogYW55IH0+IH0gPSB7fTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogYnJvd3NlLWZpbHRlciBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9tYWlsYm94OiBNYWlsYm94U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIEBJbmplY3QoQklaRE9DX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBCaXpEb2NDb25maWcpIHtcclxuICAgIHRoaXMuc3RhdGVzID0gX3Nlc3Npb24ucHJvZmlsZS5zdGF0ZXM7XHJcbiAgICB0aGlzLmZvcm1zID0gX3Nlc3Npb24ucHJvZmlsZS5mb3JtcztcclxuICAgIHRoaXMudGFncyA9IF9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy50YWdzO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbmRlcklkKSB0aGlzLnNlbmRlcnMkID0gdGhpcy5zZW5kZXJJZC52YWx1ZUNoYW5nZXMuXHJcbiAgICAgIHBpcGUoZGVib3VuY2VUaW1lKDI1MCksXHJcbiAgICAgICAgZmlsdGVyKHYgPT4gaXNTdHJpbmcodikpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgc3dpdGNoTWFwKHYgPT4gdGhpcy5fbWFpbGJveC5zZW5kZXJzKHYpKSk7XHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoRklMVEVSX0RFQk9VTkNFKSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZTogQnJvd3NlRmlsdGVyQXJncyA9IHsgLi4udiB9O1xyXG4gICAgICBjbGVhbnVwKHZhbHVlKTtcclxuICAgICAgdGhpcy52YWx1ZXNDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2luaXRpYWxpemUoKTtcclxuICAgIHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZXMpO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2luaXRpYWxpemUoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZSgpIHtcclxuICAgIGlmICh0aGlzLmZvbGRlcklkKSB7XHJcbiAgICAgIGNvbnN0IGZvbGRlciA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb2xkZXJzLmZpbmQoZiA9PiBmLm5hbWUgPT09IHRoaXMuZm9sZGVySWQpO1xyXG4gICAgICBpZiAoZm9sZGVyLmZpbHRlcnMpXHJcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gZm9sZGVyLmZpbHRlcnM7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9jb25maWcuZm9sZGVycyAmJiB0aGlzLl9jb25maWcuZm9sZGVycy5heGVzKSB7XHJcbiAgICAgIGNvbnN0IHsgYXhlcywgY3ViZSB9ID0gdGhpcy5fY29uZmlnLmZvbGRlcnM7XHJcbiAgICAgIHRoaXMuZmlsdGVycyA9IHsgYXhlcywgY3ViZSB9O1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmZpbHRlcnMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheShrZXlWYWx1ZSkge1xyXG4gICAgcmV0dXJuIGtleVZhbHVlID8ga2V5VmFsdWUudmFsdWUgOiBudWxsO1xyXG4gIH1cclxuICBjaGFuZ2UoYXhpczogc3RyaW5nLCBldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIHRoaXMuZm9ybS5jb250cm9sc1theGlzXS5zZXRWYWx1ZShldnQub3B0aW9uLnZhbHVlLmtleSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogQnJvd3NlRmlsdGVyQXJncykge1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgIGNvbnRhaW5zOiBudWxsLFxyXG4gICAgICBmb3JtOiBudWxsLFxyXG4gICAgICBzdGF0ZTogbnVsbCxcclxuICAgICAgc2VuZGVySWQ6IG51bGwsXHJcbiAgICAgIGZsYWc6IG51bGwsXHJcbiAgICAgIHRhZzogbnVsbFxyXG4gICAgfSwgdmFsdWUpLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICBpZiAodmFsdWUuc2VuZGVySWQpXHJcbiAgICAgIHRoaXMuX2FjY291bnRzLmdldCh2YWx1ZS5zZW5kZXJJZCkuc3Vic2NyaWJlKHUgPT4gdGhpcy5zZW5kZXJJZC5zZXRWYWx1ZSh1LCB7IGVtaXRFdmVudDogZmFsc2UgfSkpO1xyXG4gICAgdGhpcy5jaGlwcy52YWx1ZSA9IHZhbHVlLnRhZztcclxuICB9XHJcbiAgY2xlYXJTZW5kZXIoKSB7XHJcbiAgICB0aGlzLnNlbmRlcklkLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBzZW5kZXJJZDogbnVsbCB9KTtcclxuICB9XHJcbiAgYXhlc0NoYW5nZShheGVzOiBBeGVzTWFwKSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHsgLi4udGhpcy5mb3JtLnZhbHVlLCAuLi5heGVzIH07XHJcbiAgICBjbGVhbnVwKHZhbHVlKTtcclxuICAgIHRoaXMudmFsdWVzQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gIH1cclxuICB0b2dnbGVUYWcoZXZ0OiBNYXRDaGlwTGlzdGJveENoYW5nZSkge1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLnRhZy5zZXRWYWx1ZSh0aGlzLmZvcm0uY29udHJvbHMudGFnLnZhbHVlICE9PSBldnQudmFsdWUgPyBldnQudmFsdWUgOiBudWxsKTtcclxuICB9XHJcbiAgZGlzcGxheUZuKGl0ZW06IFVzZXJJbmZvKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBpdGVtID8gaXRlbS5uYW1lIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuICBkcm9wKGV2dDogQ2RrRHJhZ0Ryb3A8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICBldnQuaXRlbS5kYXRhO1xyXG4gIH1cclxuICBzZW5kZXJTZWxlY3RlZChlOiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XHJcbiAgICBjb25zdCBpbmZvID0gZS5vcHRpb24udmFsdWUgYXMgVXNlckluZm87XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHNlbmRlcklkOiBpbmZvID8gaW5mby5pZCA6IG51bGwgfSk7XHJcbiAgfVxyXG4gIGZvY3VzKCkge1xyXG4gICAgaWYgKHRoaXMuY29udGFpbnMpIHRoaXMuY29udGFpbnMubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5zZW5kZXIpIHRoaXMuc2VuZGVyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQnJvd3NlRmlsdGVyQXJncyB7XHJcbiAgZm9ybT86IHN0cmluZztcclxuICBmbGFnPzogYm9vbGVhbjtcclxuICBzdGF0ZT86IHN0cmluZztcclxuICBjb250YWlucz86IHN0cmluZztcclxuICBzZW5kZXJJZD86IHN0cmluZztcclxuICB0YWc/OiBzdHJpbmc7XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW4gZ2FwXCI+XG4gIEBpZiAoIWV4Y2x1ZGUgfHwgZXhjbHVkZS5pbmRleE9mKCdjb250YWlucycpIDwgMCkge1xuICA8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjb250YWluc1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHBsYWNlaG9sZGVyPVwie3snQ29udGFpbnMnIHwgdHJhbnNsYXRlfX1cIiAjY29udGFpbnM+XG4gICAgQGlmIChmb3JtLnZhbHVlLmNvbnRhaW5zKSB7XG4gICAgPGJ1dHRvbiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJcIiAoY2xpY2spPVwiZm9ybS5jb250cm9scy5jb250YWlucy5zZXRWYWx1ZShudWxsKVwiPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIH1cbiAgPG1hdC1mb3JtLWZpZWxkIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICA8aW5wdXQgbWF0SW5wdXQgW21hdEF1dG9jb21wbGV0ZV09XCJzZW5kZXJzXCIgW3BsYWNlaG9sZGVyXT1cIidTZW5kZXInIHwgdHJhbnNsYXRlXCIgW2Zvcm1Db250cm9sXT1cInNlbmRlcklkXCIgI3NlbmRlciAvPlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlICNzZW5kZXJzIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5Rm5cIiAob3B0aW9uU2VsZWN0ZWQpPVwic2VuZGVyU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgQGZvciAodSBvZiBzZW5kZXJzJCB8IGFzeW5jOyB0cmFjayB1KSB7XG4gICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidVwiPlxuICAgICAgICA8c3Bhbj57e3UubmFtZX19PC9zcGFuPlxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgfVxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICBAaWYgKHNlbmRlcklkLnZhbHVlKSB7XG4gICAgPGJ1dHRvbiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjbGVhclNlbmRlcigpXCI+PG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICB9XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxtYXQtZm9ybS1maWVsZCBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgPG1hdC1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cIidTdGF0dXMnfHRyYW5zbGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cInN0YXRlXCI+XG4gICAgICA8bWF0LW9wdGlvbj5cbiAgICAgICAge3sgJ0FsbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIEBmb3IgKHMgb2Ygc3RhdGVzOyB0cmFjayBzKSB7XG4gICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwicy5uYW1lXCI+XG4gICAgICAgIHt7cy50aXRsZX19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICB9XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgIDxtYXQtc2VsZWN0IFtwbGFjZWhvbGRlcl09XCInRm9ybScgfCB0cmFuc2xhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJmb3JtXCI+XG4gICAgICA8bWF0LW9wdGlvbj5cbiAgICAgICAge3sgJ0FsbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIEBmb3IgKGYgb2YgZm9ybXM7IHRyYWNrIGYpIHtcbiAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJmLm5hbWVcIj57e2YudGl0bGV9fTwvbWF0LW9wdGlvbj5cbiAgICAgIH1cbiAgICA8L21hdC1zZWxlY3Q+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxtYXQtY2hpcC1saXN0Ym94IGlkPVwidGFnc1wiIChjaGFuZ2UpPVwidG9nZ2xlVGFnKCRldmVudClcIj5cbiAgICBAZm9yICh0YWcgb2YgdGFnczsgdHJhY2sgdGFnKSB7XG4gICAgPG1hdC1jaGlwLW9wdGlvbiBjb2xvcj1cImFjY2VudFwiPlxuICAgICAge3t0YWd9fVxuICAgIDwvbWF0LWNoaXAtb3B0aW9uPlxuICAgIH1cbiAgPC9tYXQtY2hpcC1saXN0Ym94PlxuICBAaWYgKGZpbHRlcnMpIHtcbiAgPGJpemRvYy1jdWJlLWZpbHRlciBjbGFzcz1cImN1YmUtZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY3ViZV09XCJmaWx0ZXJzLmN1YmVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbmNsdWRlXT1cImZpbHRlcnMuYXhlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2F4ZXNdPVwidmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAoYXhlc0NoYW5nZSk9XCJheGVzQ2hhbmdlKCRldmVudClcIj48L2JpemRvYy1jdWJlLWZpbHRlcj5cbiAgfVxuPC9mb3JtPlxuIl19
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYnJvd3NlL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQXFCLFNBQVMsRUFBNEIsS0FBSyxFQUFFLFVBQVUsRUFBb0MsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJMLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFJekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUF3QixNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQUUvRSxNQUFNLGVBQWUsR0FBRyxHQUFHLENBQUM7QUFPNUIsNkJBQTZCO0FBQzdCLE1BQU0sT0FBTyxxQkFBcUI7SUEyQmhDLHlCQUF5QjtJQUN6QixZQUFvQixHQUFnQixFQUMxQixRQUF3QixFQUN4QixHQUFzQixFQUN0QixRQUF3QixFQUN4QixTQUF5QixFQUNGLE9BQXFCO1FBTGxDLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsUUFBRyxHQUFILEdBQUcs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ZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBJbnB1dCwgRWxlbWVudFJlZiwgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIHN3aXRjaE1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdGF0ZSwgRm9ybSwgVXNlckluZm8sIEF4ZXNNYXAgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IGNsZWFudXAsIGlzU3RyaW5nIH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWFpbGJveFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL21haWxib3guc2VydmljZSc7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9hY2NvdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBWElTX1ZBTFVFX1BBVFRFUk4gfSBmcm9tICcuLi8uLi9jdWJlL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQklaRE9DX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IE1hdENoaXBMaXN0Ym94LCBNYXRDaGlwTGlzdGJveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuXHJcbmNvbnN0IEZJTFRFUl9ERUJPVU5DRSA9IDI1MDtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWJyb3dzZS1maWx0ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbi8qKiBicm93c2UtZmlsdGVyIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBCcm93c2VGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBwYXR0ZXJuID0gQVhJU19WQUxVRV9QQVRURVJOO1xyXG4gIEBJbnB1dCgpIHZhbHVlczogQnJvd3NlRmlsdGVyQXJncztcclxuICBASW5wdXQoKSBmb2xkZXJJZD86IHN0cmluZztcclxuICBASW5wdXQoKSBleGNsdWRlPzogc3RyaW5nW107XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHZhbHVlc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8QnJvd3NlRmlsdGVyQXJncz4oKTtcclxuICByZWFkb25seSBzZW5kZXJJZCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgcmVhZG9ubHkgZm9ybSA9IHRoaXMuX2ZiLmdyb3VwPEJyb3dzZUZpbHRlckFyZ3M+KHtcclxuICAgIGNvbnRhaW5zOiBudWxsLFxyXG4gICAgZm9ybTogbnVsbCxcclxuICAgIHN0YXRlOiBudWxsLFxyXG4gICAgc2VuZGVySWQ6IG51bGwsXHJcbiAgICB0YWc6IG51bGxcclxuICB9KTtcclxuICBmb3JtczogRm9ybVtdO1xyXG4gIHN0YXRlczogU3RhdGVbXTtcclxuICBzZW5kZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICB0YWdzOiBzdHJpbmdbXTtcclxuICBmaWx0ZXJzOiB7XHJcbiAgICBjdWJlPzogc3RyaW5nO1xyXG4gICAgYXhlczogc3RyaW5nW107XHJcbiAgfTtcclxuICBAVmlld0NoaWxkKE1hdENoaXBMaXN0Ym94LCB7IHN0YXRpYzogdHJ1ZSB9KSBjaGlwczogTWF0Q2hpcExpc3Rib3g7XHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbnMnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KSBjb250YWluczogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdzZW5kZXInLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KSBzZW5kZXI6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XHJcbiAgcmVhZG9ubHkgc291cmNlczogeyBbZGF0YXR5cGU6IHN0cmluZ106IE9ic2VydmFibGU8eyBbbmFtZTogc3RyaW5nXTogYW55IH0+IH0gPSB7fTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogYnJvd3NlLWZpbHRlciBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9tYWlsYm94OiBNYWlsYm94U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIEBJbmplY3QoQklaRE9DX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBCaXpEb2NDb25maWcpIHtcclxuICAgIHRoaXMuc3RhdGVzID0gX3Nlc3Npb24ucHJvZmlsZS5zdGF0ZXM7XHJcbiAgICB0aGlzLmZvcm1zID0gX3Nlc3Npb24ucHJvZmlsZS5mb3JtcztcclxuICAgIHRoaXMudGFncyA9IF9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy50YWdzO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbmRlcklkKSB0aGlzLnNlbmRlcnMkID0gdGhpcy5zZW5kZXJJZC52YWx1ZUNoYW5nZXMuXHJcbiAgICAgIHBpcGUoZGVib3VuY2VUaW1lKDI1MCksXHJcbiAgICAgICAgZmlsdGVyKHYgPT4gaXNTdHJpbmcodikpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgc3dpdGNoTWFwKHYgPT4gdGhpcy5fbWFpbGJveC5zZW5kZXJzKHYpKSk7XHJcbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoRklMVEVSX0RFQk9VTkNFKSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZTogQnJvd3NlRmlsdGVyQXJncyA9IHsgLi4udiB9O1xyXG4gICAgICBjbGVhbnVwKHZhbHVlKTtcclxuICAgICAgdGhpcy52YWx1ZXNDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX2luaXRpYWxpemUoKTtcclxuICAgIHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZXMpO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2luaXRpYWxpemUoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZSgpIHtcclxuICAgIGlmICh0aGlzLmZvbGRlcklkKSB7XHJcbiAgICAgIGNvbnN0IGZvbGRlciA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb2xkZXJzLmZpbmQoZiA9PiBmLm5hbWUgPT09IHRoaXMuZm9sZGVySWQpO1xyXG4gICAgICBpZiAoZm9sZGVyLmZpbHRlcnMpXHJcbiAgICAgICAgdGhpcy5maWx0ZXJzID0gZm9sZGVyLmZpbHRlcnM7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9jb25maWcuZm9sZGVycyAmJiB0aGlzLl9jb25maWcuZm9sZGVycy5heGVzKSB7XHJcbiAgICAgIGNvbnN0IHsgYXhlcywgY3ViZSB9ID0gdGhpcy5fY29uZmlnLmZvbGRlcnM7XHJcbiAgICAgIHRoaXMuZmlsdGVycyA9IHsgYXhlcywgY3ViZSB9O1xyXG4gICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmZpbHRlcnMgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheShrZXlWYWx1ZSkge1xyXG4gICAgcmV0dXJuIGtleVZhbHVlID8ga2V5VmFsdWUudmFsdWUgOiBudWxsO1xyXG4gIH1cclxuICBjaGFuZ2UoYXhpczogc3RyaW5nLCBldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIHRoaXMuZm9ybS5jb250cm9sc1theGlzXS5zZXRWYWx1ZShldnQub3B0aW9uLnZhbHVlLmtleSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXRWYWx1ZSh2YWx1ZTogQnJvd3NlRmlsdGVyQXJncykge1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoT2JqZWN0LmFzc2lnbih7XHJcbiAgICAgIGNvbnRhaW5zOiBudWxsLFxyXG4gICAgICBmb3JtOiBudWxsLFxyXG4gICAgICBzdGF0ZTogbnVsbCxcclxuICAgICAgc2VuZGVySWQ6IG51bGwsXHJcbiAgICAgIGZsYWc6IG51bGwsXHJcbiAgICAgIHRhZzogbnVsbFxyXG4gICAgfSwgdmFsdWUpLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICBpZiAodmFsdWUuc2VuZGVySWQpXHJcbiAgICAgIHRoaXMuX2FjY291bnRzLmdldCh2YWx1ZS5zZW5kZXJJZCkuc3Vic2NyaWJlKHUgPT4gdGhpcy5zZW5kZXJJZC5zZXRWYWx1ZSh1LCB7IGVtaXRFdmVudDogZmFsc2UgfSkpO1xyXG4gICAgdGhpcy5jaGlwcy52YWx1ZSA9IHZhbHVlLnRhZztcclxuICB9XHJcbiAgY2xlYXJTZW5kZXIoKSB7XHJcbiAgICB0aGlzLnNlbmRlcklkLnNldFZhbHVlKG51bGwpO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBzZW5kZXJJZDogbnVsbCB9KTtcclxuICB9XHJcbiAgYXhlc0NoYW5nZShheGVzOiBBeGVzTWFwKSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHsgLi4udGhpcy5mb3JtLnZhbHVlLCAuLi5heGVzIH07XHJcbiAgICBjbGVhbnVwKHZhbHVlKTtcclxuICAgIHRoaXMudmFsdWVzQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gIH1cclxuICB0b2dnbGVUYWcoZXZ0OiBNYXRDaGlwTGlzdGJveENoYW5nZSkge1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzLnRhZy5zZXRWYWx1ZSh0aGlzLmZvcm0uY29udHJvbHMudGFnLnZhbHVlICE9PSBldnQudmFsdWUgPyBldnQudmFsdWUgOiBudWxsKTtcclxuICB9XHJcbiAgZGlzcGxheUZuKGl0ZW06IFVzZXJJbmZvKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiBpdGVtID8gaXRlbS5uYW1lIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuICBkcm9wKGV2dDogQ2RrRHJhZ0Ryb3A8c3RyaW5nLCBhbnk+KSB7XHJcbiAgICBldnQuaXRlbS5kYXRhO1xyXG4gIH1cclxuICBzZW5kZXJTZWxlY3RlZChlOiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XHJcbiAgICBjb25zdCBpbmZvID0gZS5vcHRpb24udmFsdWUgYXMgVXNlckluZm87XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHNlbmRlcklkOiBpbmZvID8gaW5mby5pZCA6IG51bGwgfSk7XHJcbiAgfVxyXG4gIGZvY3VzKCkge1xyXG4gICAgaWYgKHRoaXMuY29udGFpbnMpIHRoaXMuY29udGFpbnMubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5zZW5kZXIpIHRoaXMuc2VuZGVyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQnJvd3NlRmlsdGVyQXJncyB7XHJcbiAgZm9ybT86IHN0cmluZztcclxuICBmbGFnPzogYm9vbGVhbjtcclxuICBzdGF0ZT86IHN0cmluZztcclxuICBjb250YWlucz86IHN0cmluZztcclxuICBzZW5kZXJJZD86IHN0cmluZztcclxuICB0YWc/OiBzdHJpbmc7XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW4gZ2FwXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCI+XG4gIEBpZiAoIWV4Y2x1ZGUgfHwgZXhjbHVkZS5pbmRleE9mKCdjb250YWlucycpIDwgMCkge1xuICA8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjb250YWluc1wiIHBsYWNlaG9sZGVyPVwie3snQ29udGFpbnMnIHwgdHJhbnNsYXRlfX1cIiAjY29udGFpbnM+XG4gICAgQGlmIChmb3JtLnZhbHVlLmNvbnRhaW5zKSB7XG4gICAgPGJ1dHRvbiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJcIiAoY2xpY2spPVwiZm9ybS5jb250cm9scy5jb250YWlucy5zZXRWYWx1ZShudWxsKVwiPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIH1cbiAgPG1hdC1mb3JtLWZpZWxkIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICA8aW5wdXQgbWF0SW5wdXQgW21hdEF1dG9jb21wbGV0ZV09XCJzZW5kZXJzXCIgW3BsYWNlaG9sZGVyXT1cIidTZW5kZXInIHwgdHJhbnNsYXRlXCIgW2Zvcm1Db250cm9sXT1cInNlbmRlcklkXCIgI3NlbmRlciAvPlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlICNzZW5kZXJzIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5Rm5cIiAob3B0aW9uU2VsZWN0ZWQpPVwic2VuZGVyU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgQGZvciAodSBvZiBzZW5kZXJzJCB8IGFzeW5jOyB0cmFjayB1KSB7XG4gICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidVwiPlxuICAgICAgICA8c3Bhbj57e3UubmFtZX19PC9zcGFuPlxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgfVxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICBAaWYgKHNlbmRlcklkLnZhbHVlKSB7XG4gICAgPGJ1dHRvbiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjbGVhclNlbmRlcigpXCI+PG1hdC1pY29uPmNsZWFyPC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICB9XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxtYXQtZm9ybS1maWVsZCBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgPG1hdC1zZWxlY3QgW3BsYWNlaG9sZGVyXT1cIidTdGF0dXMnfHRyYW5zbGF0ZVwiIGZvcm1Db250cm9sTmFtZT1cInN0YXRlXCI+XG4gICAgICA8bWF0LW9wdGlvbj5cbiAgICAgICAge3sgJ0FsbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIEBmb3IgKHMgb2Ygc3RhdGVzOyB0cmFjayBzKSB7XG4gICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwicy5uYW1lXCI+XG4gICAgICAgIHt7cy50aXRsZX19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgICB9XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgIDxtYXQtc2VsZWN0IFtwbGFjZWhvbGRlcl09XCInRm9ybScgfCB0cmFuc2xhdGVcIiBmb3JtQ29udHJvbE5hbWU9XCJmb3JtXCI+XG4gICAgICA8bWF0LW9wdGlvbj5cbiAgICAgICAge3sgJ0FsbCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIEBmb3IgKGYgb2YgZm9ybXM7IHRyYWNrIGYpIHtcbiAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJmLm5hbWVcIj57e2YudGl0bGV9fTwvbWF0LW9wdGlvbj5cbiAgICAgIH1cbiAgICA8L21hdC1zZWxlY3Q+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxtYXQtY2hpcC1saXN0Ym94IGlkPVwidGFnc1wiIChjaGFuZ2UpPVwidG9nZ2xlVGFnKCRldmVudClcIj5cbiAgICBAZm9yICh0YWcgb2YgdGFnczsgdHJhY2sgdGFnKSB7XG4gICAgPG1hdC1jaGlwLW9wdGlvbiBjb2xvcj1cImFjY2VudFwiPlxuICAgICAge3t0YWd9fVxuICAgIDwvbWF0LWNoaXAtb3B0aW9uPlxuICAgIH1cbiAgPC9tYXQtY2hpcC1saXN0Ym94PlxuICBAaWYgKGZpbHRlcnMpIHtcbiAgPGJpemRvYy1jdWJlLWZpbHRlciBjbGFzcz1cImN1YmUtZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY3ViZV09XCJmaWx0ZXJzLmN1YmVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbmNsdWRlXT1cImZpbHRlcnMuYXhlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2F4ZXNdPVwidmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAoYXhlc0NoYW5nZSk9XCJheGVzQ2hhbmdlKCRldmVudClcIj48L2JpemRvYy1jdWJlLWZpbHRlcj5cbiAgfVxuPC9mb3JtPlxuIl19
@@ -211,7 +211,7 @@ export class ComposeFormComponent {
211
211
  };
212
212
  }
213
213
  tag(evt) {
214
- this._popup.open(TagsComponent, evt.currentTarget, {
214
+ this._popup.open(TagsComponent, evt.target, {
215
215
  data: this.model
216
216
  });
217
217
  }
@@ -472,4 +472,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
472
472
  type: ViewChild,
473
473
  args: ['component', { read: ViewContainerRef, static: true }]
474
474
  }] } });
475
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF5QixnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUl2SyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRyxPQUFPLEVBQVcsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJM0YsT0FBTyxFQUE2QixjQUFjLEVBQW1CLE1BQU0seUJBQXlCLENBQUM7QUFPckcsT0FBTyxFQUFFLE9BQU8sRUFBaUIsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3JELE9BQU8sRUFBRSxZQUFZLEVBQW9CLE1BQU0sd0JBQXdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5ELE1BQU0sQ0FBQyxNQUNMLG9CQUFvQixHQUFHLElBQUk7QUFDM0Is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YSxXQUFXO3NCQUE3QixNQUFNO2dCQUVQLEtBQUs7c0JBREosS0FBSztnQkFFYSxXQUFXO3NCQUE3QixNQUFNO2dCQUNZLEtBQUs7c0JBQXZCLE1BQU07Z0JBQ0UsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSytCLFlBQVk7c0JBQWhELFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDZ0IsV0FBVztzQkFBN0QsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2lCLFVBQVU7c0JBQTNFLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgT25EZXN0cm95LCBFbGVtZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnQsIFZpZXdDaGlsZCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgZnJvbSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIHRhcCwgc3dpdGNoTWFwLCBzdGFydFdpdGgsIG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgY2xlYW51cCwgZGVlcEFzc2lnbiwgaXNCb29sZWFuLCBpc1Byb21pc2UsIHF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBSZWNpcGllbnRNb2RlbCwgRm9ybSwgQWN0aW9uLCBBdHRhY2htZW50IH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50LCBWaWV3TW9kZSB9IGZyb20gJy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYWlsYm94U2VydmljZSwgSXRlbUV4dHJhLCBET0NVTUVOVF9NT0RFTCwgQXR0YWNobWVudEV4dHJhIH0gZnJvbSAnLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3VpZGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9ndWlkZS9ndWlkZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlcic7XHJcbmltcG9ydCB7IEZvcm1SZWYsIFNhdmVFdmVudEFyZ3MgfSBmcm9tICcuL2Zvcm0tcmVmJztcclxuaW1wb3J0IHsgQXR0YWNobWVudHNDb21wb25lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnRzL2F0dGFjaG1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhZ3NDb21wb25lbnQgfSBmcm9tICcuL3RhZy90YWdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBvcHVwIH0gZnJvbSAnLi4vY29yZS9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gXCIuLi9jb3JlL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBBY3Rpb25EaWFsb2csIEFjdGlvbkRpYWxvZ0RhdGEgfSBmcm9tICcuL2FjdGlvbi9hY3Rpb24uZGlhbG9nJztcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gJy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcblxyXG5leHBvcnQgY29uc3RcclxuICBSRVBPUlRfRURJVElOR19ERUxBWSA9IDIwMDAsXHJcbiAgLyoqIHNhdmUgZHJhZnQgbXMgKi9cclxuICBBVVRPX1NBVkVfREVMQVkgPSA1MDAwLFxyXG4gIEVESVRJTkdfTUVTU0FHRV9ERUxBWSA9IDMwMDA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdmb3JtLWNvbnRhaW5lciBiaXpkb2MtY29tcG9zZSdcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb3NlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIG1vZGVsOiBSZWNpcGllbnRNb2RlbDxhbnk+O1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjaXBpZW50TW9kZWw8YW55Pj4oKTtcclxuICBmb3JtOiBGb3JtO1xyXG4gIEBJbnB1dCgpXHJcbiAgd29ya2luZyA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSB3b3JraW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlydHkgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgZGlydHlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQElucHV0KClcclxuICB2YWxpZCA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWxpZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQElucHV0KCkgbW9kZTogVmlld01vZGU7XHJcbiAgQElucHV0KCkgY29udGFjdHMgPSB0cnVlO1xyXG4gIGFjdGlvbnM6IEFjdGlvbltdID0gW107XHJcbiAgcGFnZTogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIGhlbHA6IHN0cmluZztcclxuICBlZGl0aW5nOiBzdHJpbmc7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZScsIHsgc3RhdGljOiB0cnVlIH0pIF9maWxlRWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKEF0dGFjaG1lbnRzQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBhdHRhY2htZW50czogQXR0YWNobWVudHNDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnY29tcG9uZW50JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgX2NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICBwcml2YXRlIF9mb3JtUmVmOiBGb3JtUmVmO1xyXG4gIHByaXZhdGUgX2luc3RhbmNlOiBGb3JtQ29tcG9uZW50PGFueT47XHJcbiAgcHJpdmF0ZSBfZWRpdGluZ1Rhc2s6IE5vZGVKUy5UaW1lb3V0O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgX3BvcHVwOiBQb3B1cCxcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfc25hY2tiYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSBfY2Y6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgX2d1aWRlOiBHdWlkZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdpbmc6IEh1YlNlcnZpY2VcclxuICApIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9maWxlRWxlbWVudC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuX2ZpbGVDaGFuZ2VMaXN0ZW5lci5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy5jYWxsYmFjayQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShlID0+XHJcbiAgICAgIHRoaXMuX2luc3RhbmNlLm9uTWVzc2FnZVxyXG4gICAgICAmJiB0aGlzLl9pbnN0YW5jZS5vbk1lc3NhZ2UoZS5tZXNzYWdlKSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcuZWRpdGluZyQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShlID0+XHJcbiAgICAgIGUuaWQgPT09IHRoaXMubW9kZWwuaWQgJiZcclxuICAgICAgdGhpcy5fZWRpdGluZyhlLnVzZXJJZCkpO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLnVwZGF0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgaWYgKGUubW9kZWwuaWQgPT09IHRoaXMubW9kZWwuaWQpIHtcclxuICAgICAgICAoZS51c2VySWQgIT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSAmJlxyXG4gICAgICAgICAgdGhpcy5fYWNjb3VudHMuZ2V0KGUudXNlcklkKS5zdWJzY3JpYmUodSA9PlxyXG4gICAgICAgICAgICB0aGlzLl9zbmFja2Jhci5vcGVuKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ01haWxWZXJzaW9uVXBkYXRlJywgdGhpcy5tb2RlbC5udW1iZXIsIHUubmFtZSksXHJcbiAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlLmdldCgnT0snKSwge1xyXG4gICAgICAgICAgICAgIGRpcmVjdGlvbjogdGhpcy5fc2Vzc2lvbi5kaXJlY3Rpb24sXHJcbiAgICAgICAgICAgIH0pLm9uQWN0aW9uKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLl9hc3NpZ24oZS5tb2RlbCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fcmVzZXQoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWFpbGJveC5jaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKGUgPT4gIXRoaXMud29ya2luZyAmJiBlLmlkID09PSB0aGlzLm1vZGVsLmlkICYmIHRoaXMuX2Fzc2lnbihlKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2VkaXRpbmcodXNlcklkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2FjY291bnRzLmdldCh1c2VySWQpLnN1YnNjcmliZSh1ID0+IHtcclxuICAgICAgdGhpcy5lZGl0aW5nID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdFZGl0aW5nJywgdS5nZW5kZXIsIHUubmFtZSk7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9lZGl0aW5nVGFzayk7XHJcbiAgICAgIHRoaXMuX2VkaXRpbmdUYXNrID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmVkaXRpbmcgPSBudWxsLCBFRElUSU5HX01FU1NBR0VfREVMQVkpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLl9mb3JtUmVmICYmIHRoaXMuX2Zvcm1SZWYuX2Rlc3Ryb3koKTtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSB0aGlzLm1vZGVsLmZvcm1JZCk7XHJcbiAgICB0aGlzLmhlbHAgPSB0aGlzLmZvcm0uZ3VpZGU7XHJcbiAgICBpZiAoIXRoaXMuZm9ybS50ZW1wbGF0ZSlcclxuICAgICAgdGhyb3cgKGBGb3JtICcke3RoaXMuZm9ybS5uYW1lfScgbW9kZWwgbWlzc2luZyAnW1RlbXBsYXRlKCldJyBhdHRyaWJ1dGUuYCk7XHJcbiAgICBjb25zdCBjb21wID0gdGhpcy5fY2YuY29tcG9uZW50KHRoaXMuZm9ybS50ZW1wbGF0ZSk7XHJcbiAgICB0aGlzLl9mb3JtUmVmID0gbmV3IEZvcm1SZWYodGhpcy5mb3JtKTtcclxuICAgIHRoaXMuX2Zvcm1SZWYuX25hdmlnYXRpbmcuXHJcbiAgICAgIHN1YnNjcmliZShwID0+IHRoaXMucGFnZSA9IHApO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fc3RhdGVDaGFuZ2UucGlwZShzdGFydFdpdGgoKSkuXHJcbiAgICAgIHN1YnNjcmliZSgoKSA9PiB0aGlzLmhlbHAgPSB0aGlzLl9mb3JtUmVmLmhlbHApO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBGb3JtUmVmLCB1c2VWYWx1ZTogdGhpcy5fZm9ybVJlZlxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIHByb3ZpZGU6IERPQ1VNRU5UX01PREVMLCB1c2VWYWx1ZTogdGhpcy5tb2RlbFxyXG4gICAgICAgIH1cclxuICAgICAgXSwgcGFyZW50OiB0aGlzLl9pbmplY3RvclxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9jb250YWluZXIuY2xlYXIoKTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuX2NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcCwgeyBpbmplY3RvciB9KTtcclxuXHJcbiAgICB0aGlzLl9pbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBGb3JtQ29tcG9uZW50PGFueT47XHJcbiAgICB0aGlzLl9mb3JtUmVmLl9tb2RlID0gdGhpcy5faW5zdGFuY2UubW9kZSA9IHRoaXMubW9kZTtcclxuICAgIHRoaXMuX2luc3RhbmNlLmZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgY29uc3QgeyBkaXJ0eSwgdmFsaWQgfSA9IHRoaXMuX2luc3RhbmNlLmZvcm07XHJcbiAgICAgIHRoaXMuZGlydHkgPSBkaXJ0eTtcclxuICAgICAgdGhpcy5kaXJ0eUNoYW5nZS5lbWl0KGRpcnR5KTtcclxuICAgICAgdGhpcy52YWxpZCA9IHZhbGlkO1xyXG4gICAgICB0aGlzLnZhbGlkQ2hhbmdlLmVtaXQodmFsaWQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm1vZGVsLmRyYWZ0ICYmIHRoaXMuX2luc3RhbmNlLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICAvL2RlYm91bmNlVGltZShSRVBPUlRfRURJVElOR19ERUxBWSksXHJcbiAgICAgIC8vdGFwKCgpID0+ICF0aGlzLndvcmtpbmcgJiYgdGhpcy5fbWFpbGJveC5lZGl0aW5nKHRoaXMubW9kZWwuZG9jdW1lbnRJZCkpLFxyXG4gICAgICBkZWJvdW5jZVRpbWUoQVVUT19TQVZFX0RFTEFZKVxyXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4gIXRoaXMud29ya2luZyAmJiB0aGlzLmRpcnR5ICYmXHJcbiAgICAgIHRoaXMuc2F2ZShmYWxzZSkuc3Vic2NyaWJlKCkpO1xyXG4gICAgdGhpcy5faW5zdGFuY2Uub25CaW5kKHRoaXMubW9kZWwpO1xyXG4gICAgdGhpcy5fcmVzZXQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsZUNoYW5nZUxpc3RlbmVyKGV2OiBFdmVudCkge1xyXG4gICAgY29uc3QgeyBmaWxlcyB9ID0gZXYudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQsXHJcbiAgICAgIGFycjogRmlsZVtdID0gW107XHJcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXJyLnB1c2goZmlsZXNbaV0pO1xyXG4gICAgICB0aGlzLnVwbG9hZChhcnIpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fZmlsZUVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5hdHRhY2htZW50cy5uZ09uQ2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfYXBwbHljaGFuZ2VzKCkge1xyXG4gICAgZGVlcEFzc2lnbih0aGlzLm1vZGVsLm1vZGVsLCB0aGlzLl9pbnN0YW5jZS5mb3JtLnZhbHVlKTtcclxuICB9XHJcbiAgbmF2aWdhdGUocGFnZTogYW55KSB7XHJcbiAgICBjb25zdCBwYWdlbiA9IHBhcnNlSW50KHBhZ2UpO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fbmF2aWdhdGluZy5uZXh0KGlzTmFOKHBhZ2VuKSA/IHBhZ2UgOiBwYWdlbik7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2dldEFjdGlvbkFkamVjdGl2ZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gKGFjdGlvbi5hZGplY3RpdmUgfHwgYWN0aW9uLnBhc3QgfHwgYWN0aW9uLnRpdGxlKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZmVlZGJhY2tcclxuICAgKi9cclxuICBwcml2YXRlIF9zYXZlKGZlZWRiYWNrOiBib29sZWFuKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICBjb25zdCB7IGlkLCB2ZXJzaW9uLCBmb3JtSWQsIG1vZGVsLCBkcmFmdCB9ID0gdGhpcy5tb2RlbDtcclxuICAgIHJldHVybiB0aGlzLl9tYWlsYm94LnNhdmUoaWQsIGZvcm1JZCwgdmVyc2lvbiwgbW9kZWwpLnBpcGUoXHJcbiAgICAgIHRhcCh7XHJcbiAgICAgICAgbmV4dDogbSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9hc3NpZ24obSwgZmFsc2UpO1xyXG4gICAgICAgICAgdGhpcy5fcmVzZXQoKTtcclxuICAgICAgICAgIGZlZWRiYWNrICYmXHJcbiAgICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KGRyYWZ0ID8gJ0RyYWZ0U2F2ZWQnIDogJ0NoYW5nZXNTYXZlZCcpO1xyXG4gICAgICAgICAgdGhpcy5zYXZlZC5lbWl0KCk7XHJcbiAgICAgICAgfSwgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgICAgZmVlZGJhY2sgJiZcclxuICAgICAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSwgJ1NhdmVFcnInKTtcclxuICAgICAgICB9LCBmaW5hbGl6ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSwgbWFwKCgpID0+IHRydWUpKTtcclxuICB9XHJcbiAgdXBsb2FkKGZpbGVzOiBGaWxlW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy53b3JraW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgbGV0IGV4aXN0czogYm9vbGVhbjtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzID0gW10gYXMgT2JzZXJ2YWJsZTxhbnk+W107XHJcbiAgICBmaWxlcy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICBpZiAoIWV4aXN0cylcclxuICAgICAgICBleGlzdHMgPSB0aGlzLm1vZGVsLmF0dGFjaG1lbnRzLnNvbWUoYSA9PiBhLmZpbGVOYW1lID09PSBmLm5hbWUgJiYgIWEuZGVsZXRlZCAmJiAhKGEgYXMgQXR0YWNobWVudEV4dHJhKS5mYWlsZWQpO1xyXG4gICAgICBjb25zdCByZXRyeSA9IHRoaXMubW9kZWwuYXR0YWNobWVudHMuZmluZEluZGV4KGEgPT4gYS5maWxlTmFtZSA9PT0gZi5uYW1lICYmIChhIGFzIEF0dGFjaG1lbnRFeHRyYSkuZmFpbGVkKTtcclxuICAgICAgaWYgKHJldHJ5ID4gLTEpXHJcbiAgICAgICAgdGhpcy5tb2RlbC5hdHRhY2htZW50cy5zcGxpY2UocmV0cnksIDEpO1xyXG4gICAgICBjb25zdCBtb2RlbCA9IHRoaXMuX2NvbnN0cnVjdEF0dGFjaG1lbnQoZik7XHJcbiAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl9tYWlsYm94LnVwbG9hZCh0aGlzLm1vZGVsLmlkLCB0aGlzLm1vZGVsLmZvcm1JZCwgdGhpcy5tb2RlbC52ZXJzaW9uLCBmKS5cclxuICAgICAgICBwaXBlKHRhcChcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fc2IudG9hc3QoXHJcbiAgICAgICAgICAgICAgICAhZXhpc3RzID8gJ1VwbG9hZE9rJyA6ICdVcGxvYWRWZXJzaW9uT2snLCBmLm5hbWUpO1xyXG4gICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24obW9kZWwsIHIsIHsgcHJvZ3Jlc3M6IG51bGwsIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMubW9kZWwuYXR0YWNobWVudHMucHVzaChtb2RlbCk7XHJcbiAgICAgICAgICAgIH0sIGVycm9yOiBlID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVFcnJvcihlLCAnVXBsb2FkRmFpbGVkJywgZi5uYW1lKTtcclxuICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgICB9LCBmaW5hbGl6ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKG9ic2VydmFibGUpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb25zdHJ1Y3RBdHRhY2htZW50KGZpbGU6IEZpbGUpIHtcclxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCksIHV0YyA9IG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgKyBub3cuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHVzZXJJZDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCxcclxuICAgICAgYnlJZDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5SWQsXHJcbiAgICAgIHRpbWU6IHV0Yy50b0pTT04oKSBhcyBhbnksXHJcbiAgICAgIGZpbGVOYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgIGNvbnRlbnRUeXBlOiBmaWxlLnR5cGVcclxuICAgIH0gYXMgQXR0YWNobWVudDtcclxuICB9XHJcbiAgdGFnKGV2dDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihUYWdzQ29tcG9uZW50LCAoZXZ0LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpLCB7XHJcbiAgICAgIGRhdGE6IHRoaXMubW9kZWxcclxuICAgIH0pXHJcbiAgfVxyXG4gIHByaXZhdGUgX3Jlc2V0KCkge1xyXG4gICAgZnVuY3Rpb24gc29ydEFjdGlvbnMoYTogQWN0aW9uLCBiOiBBY3Rpb24pIHtcclxuICAgICAgaWYgKGEuZ3JvdXAgJiYgYi5ncm91cCAmJiBhLmdyb3VwICE9PSBiLmdyb3VwKVxyXG4gICAgICAgIHJldHVybiBhLmdyb3VwIDwgYi5ncm91cCA/IC0xIDogMTtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9pbnN0YW5jZS5mb3JtLnJlc2V0KHRoaXMubW9kZWwubW9kZWwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMudmFsaWQgPSB0aGlzLl9pbnN0YW5jZS5mb3JtLnZhbGlkO1xyXG4gICAgdGhpcy52YWxpZENoYW5nZS5lbWl0KHRoaXMudmFsaWQpO1xyXG4gICAgdGhpcy5kaXJ0eSA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaXJ0eUNoYW5nZS5lbWl0KHRoaXMuZGlydHkpO1xyXG4gICAgdGhpcy5hY3Rpb25zID0gdGhpcy5tb2RlbC5hY3Rpb25zLmxlbmd0aCA/XHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5hY3Rpb25zLlxyXG4gICAgICAgIGZpbHRlcihhID0+IHRoaXMubW9kZWwuYWN0aW9ucy5pbmRleE9mKGEubmFtZSkgPiAtMSkuXHJcbiAgICAgICAgc29ydChzb3J0QWN0aW9ucykgOiBbXTtcclxuICB9XHJcblxyXG4gIGd1aWRlKG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZ3VpZGUuc3RhcnQobmFtZSk7XHJcbiAgfVxyXG4gIGF0dGFjaCgpIHtcclxuICAgIGNvbnN0IGVsZW0gPSB0aGlzLl9maWxlRWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBlbGVtLmNsaWNrKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZlZWRiYWNrXHJcbiAgICovXHJcbiAgc2F2ZShmZWVkYmFjayA9IHRydWUpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIHRoaXMuX2FwcGx5Y2hhbmdlcygpO1xyXG4gICAgY29uc3Qgc2F2ZUFyZ3MgPSB7IGNhbmNlbDogZmFsc2UgfSBhcyBTYXZlRXZlbnRBcmdzO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fc2F2aW5nLm5leHQoc2F2ZUFyZ3MpO1xyXG4gICAgaWYgKHNhdmVBcmdzLmNhbmNlbClcclxuICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgIGlmICh0aGlzLl9pbnN0YW5jZS5vblNhdmUpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5faW5zdGFuY2Uub25TYXZlKCk7XHJcbiAgICAgIGlmIChpc0Jvb2xlYW4ocmVzdWx0KSkge1xyXG4gICAgICAgIGlmICghcmVzdWx0KSB7XHJcbiAgICAgICAgICBmZWVkYmFjayAmJiB0aGlzLl9zYi50b2FzdCgnVmFsaWRhdGVFcnInKTtcclxuICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKGlzUHJvbWlzZShyZXN1bHQpKVxyXG4gICAgICAgIHJldHVybiBmcm9tKHJlc3VsdCkucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fc2F2ZShmZWVkYmFjaykpKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHJldHVybiByZXN1bHQucGlwZShzd2l0Y2hNYXAoKCkgPT4gdGhpcy5fc2F2ZShmZWVkYmFjaykpKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9zYXZlKGZlZWRiYWNrKTtcclxuICB9XHJcbiAgZmxhZygpIHtcclxuICAgIGNvbnN0IGV4dHJhID0gdGhpcy5tb2RlbCBhcyBJdGVtRXh0cmEsIHsgZmxhZyB9ID0gdGhpcy5tb2RlbDtcclxuICAgIGV4dHJhLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JraW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuX21haWxib3guZmxhZyh0aGlzLm1vZGVsLmlkLCAhZmxhZykuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubW9kZWwuZmxhZyA9ICFmbGFnO1xyXG4gICAgICAgIGV4dHJhLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgfSwgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICBleHRyYS53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBzdWJtaXQoKSB7XHJcbiAgICB0aGlzLl9hcHBseWNoYW5nZXMoKTtcclxuICAgIGNvbnN0IHsgaWQsIHZlcnNpb24sIGZvcm1JZCwgbW9kZWwsIG51bWJlciB9ID0gdGhpcy5tb2RlbDtcclxuICAgIHRoaXMud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgIHJldHVybiB0aGlzLl9tYWlsYm94LnN1Ym1pdChpZCwgdmVyc2lvbiwgZm9ybUlkLCBtb2RlbCkuXHJcbiAgICAgIHBpcGUodGFwKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9zYi50b2FzdCgnU3VibWl0dGVkJywgbnVtYmVyKTtcclxuICAgICAgICB9LCBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFcnJvcihlLCAnU3VibWl0RXJyJyk7XHJcbiAgICAgICAgfSwgZmluYWxpemU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSkpO1xyXG4gIH1cclxuICBiYWNrKCkge1xyXG4gICAgdGhpcy5fZm9ybVJlZi5uYXZpZ2F0ZSgpO1xyXG4gIH1cclxuICBkaXNjYXJkKCkge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLl9zYi5hc2soJ0Rpc2NhcmRBc2snLCAnRGlzY2FyZCcsIHtcclxuICAgICAgICBjb2xvcjogJ3dhcm4nLCBvazogJ0Rpc2NhcmQnXHJcbiAgICAgIH0pLnN1YnNjcmliZShvayA9PiB7XHJcbiAgICAgICAgaWYgKG9rKSB7XHJcbiAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMuX21haWxib3guZGVsZXRlKHRoaXMubW9kZWwuaWQpLlxyXG4gICAgICAgICAgICBzdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIG9ic2VydmUubmV4dCgpO1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVFcnJvcihlLCAnTmV0d29ya0VycicpO1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZS5lcnJvcigpO1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2VuZChhY3Rpb246IHN0cmluZykge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLl9kaWFsb2cub3BlbihBY3Rpb25EaWFsb2csIHtcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBhY3Rpb24sXHJcbiAgICAgICAgICBpdGVtOiB0aGlzLm1vZGVsXHJcbiAgICAgICAgfSBhcyBBY3Rpb25EaWFsb2dEYXRhLFxyXG4gICAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlXHJcbiAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGFyZ3MgPT4ge1xyXG4gICAgICAgIGlmIChhcmdzKSB7XHJcbiAgICAgICAgICB0aGlzLl9hcHBseWNoYW5nZXMoKTtcclxuICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHF1ZXJ5UGFyYW1zKGFyZ3MpO1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgY29uc3QgeyBpZCwgdmVyc2lvbiwgbnVtYmVyLCBtb2RlbCwgZm9ybUlkIH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuX21haWxib3guc2VuZChpZCwgdmVyc2lvbiwgZm9ybUlkLCBtb2RlbCwgYWN0aW9uLCBwYXJhbXMpLlxyXG4gICAgICAgICAgICBzdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgIG5leHQ6IHIgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luID0gci5yZWNpcGllbnRzLmZpbHRlcihyID0+IHIub3JpZ2luSWQgPT09IGlkKTtcclxuICAgICAgICAgICAgICAgIGlmIChvcmlnaW4ubGVuZ3RoKVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLl9hY2NvdW50cy5nZXRBbGwob3JpZ2luLm1hcChyID0+IHIudXNlcklkKSkuc3Vic2NyaWJlKHUgPT5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zYi50b2FzdCgnU2VudFRvJywgbnVtYmVyLCB0aGlzLl9nZXRBY3Rpb25BZGplY3RpdmUoYWN0aW9uKSwgdGhpcy5fdHJhbnNsYXRlLmpvaW4odS5tYXAodSA9PiB1Lm5hbWUpKSkpO1xyXG4gICAgICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLl9zYi50b2FzdCgnU2VudCcsIG51bWJlciwgdGhpcy5fZ2V0QWN0aW9uQWRqZWN0aXZlKGFjdGlvbikpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLm5leHQoKTtcclxuICAgICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgICB9LCBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdTZW5kRXJyJyk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKCk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBvYnNlcnZlLmVycm9yKCk7XHJcbiAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNvcHkoKSB7XHJcbiAgICB0aGlzLl9tYWlsYm94LmNvcHkodGhpcy5tb2RlbC5kb2N1bWVudElkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiBpID0+IHtcclxuICAgICAgICB0aGlzLl9zYi50b2FzdCgnQ29waWVkJywgaS5udW1iZXIgfHwgdGhpcy5mb3JtLnRpdGxlKTtcclxuICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2knLCBpLmlkLmVuY29kZUlkKCldLCB7XHJcbiAgICAgICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuQ2xlYXIsXHJcbiAgICAgICAgICBzdGF0ZTogeyBpdGVtOiBpIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSwgZXJyb3I6ICgpID0+IHRoaXMuX3NiLmVycm9yKClcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwYXJhbSByZXNwb25zZVxyXG4gICAqIEBwYXJhbSBpdGVtXHJcbiAgICogQHBhcmFtIG1lc3NhZ2UgcmVzb3VyY2VcclxuICAgKiBAcGFyYW0gYXJnc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2hhbmRsZUVycm9yKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSB8IGFueSwgbWVzc2FnZTogc3RyaW5nLCAuLi5hcmdzOiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKHJlc3BvbnNlLmNvbnN0cnVjdG9yLm5hbWUgPT09ICdQb3NpdGlvbkVycm9yJylcclxuICAgICAgc3dpdGNoIChyZXNwb25zZS5jb2RlKSB7XHJcbiAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1VzZXJEZW5pZWRHZW9FcnInKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignR2VvRXJyJyk7XHJcbiAgICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgc3dpdGNoIChyZXNwb25zZS5zdGF0dXMpIHtcclxuICAgICAgICBjYXNlIDQwMTpcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKCdVbmF1dGhvcml6ZWQnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDA5OiAvLyB2ZXJzaW9uIGNoYW5nZVxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBjb25zdCBvYmogPSByZXNwb25zZS5lcnJvciAvKiBzZXJpYWxpemVkIG1vZGVsICovIGFzIFJlY2lwaWVudE1vZGVsPGFueT47XHJcbiAgICAgICAgICAgIG9iaiAmJiB0aGlzLl9hc3NpZ24ob2JqKTtcclxuICAgICAgICAgICAgdGhpcy5fcmVzZXQoKTtcclxuICAgICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1ZlcnNpb25FcnInLCB0aGlzLm1vZGVsLm51bWJlcik7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIGNhc2UgNDA2OiAvLyB2YWxpZGF0aW9uXHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvclN0cmluZyhyZXNwb25zZS5lcnJvcik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIDQyNjogLy8gbGljZW5zZSBcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKCdMaWNlbnNlRXJyJyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IobWVzc2FnZSwgLi4uYXJncyk7XHJcbiAgICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfYXNzaWduKG1vZGVsOiBSZWNpcGllbnRNb2RlbCwgZW1pdEV2ZW50PzogYm9vbGVhbikge1xyXG4gICAgT2JqZWN0LmFzc2lnbih0aGlzLm1vZGVsLCBtb2RlbCwgeyAvLyBwcmVzZXJ2ZSBvYmplY3QgcmVmIGluIG1vZGVsXHJcbiAgICAgIG1vZGVsOiBkZWVwQXNzaWduKHRoaXMubW9kZWwubW9kZWwsIG1vZGVsLm1vZGVsKVxyXG4gICAgfSk7XHJcbiAgICBpZiAoZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICAgIHRoaXMuX2Zvcm1SZWYuX21vZGVsQ2hhbmdlLm5leHQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWhlYWRlclwiPlxuICA8IS0tPGJpemRvYy1wZW9wbGUgW21vZGVsXT1cIm1vZGVsXCIgKm5nSWY9XCJtb2RlICE9PSAnY29tcG9zZScgJiYgY29udGFjdHNcIj48L2JpemRvYy1wZW9wbGU+LS0+XG4gIDxiaXpkb2MtYXR0YWNobWVudHMgW21vZGVsXT1cIm1vZGVsXCIgW2luY2x1ZGVEZWxldGVkXT1cInRydWVcIiBbdmlld2VkSW5kaWNhdG9yXT1cImZhbHNlXCI+PC9iaXpkb2MtYXR0YWNobWVudHM+XG4gIEBpZiAoIW1vZGVsLnJlcGxpZWQgJiYgbW9kZSAhPT0gJ2NvbXBvc2UnICYmIG1vZGVsLm5vdGUpIHtcbiAgPGRpdiBjbGFzcz1cImNvbXBvc2Utbm90ZVwiPlxuICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIj5pbmZvPC9tYXQtaWNvbj4gPHNwYW4gY2xhc3M9XCJtYXQtYm9keS0yXCI+e3ttb2RlbC5ub3RlfX08L3NwYW4+XG4gIDwvZGl2PlxuICB9XG4gIEBpZiAobW9kZWwudGFncykge1xuICA8bWF0LWNoaXAtc2V0PlxuICAgIEBmb3IgKHRhZyBvZiBtb2RlbC50YWdzOyB0cmFjayB0YWcpIHtcbiAgICA8bWF0LWNoaXAgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiPnt7dGFnfX08L21hdC1jaGlwPlxuICAgIH1cbiAgPC9tYXQtY2hpcC1zZXQ+XG4gIH1cbiAgQGlmIChlZGl0aW5nKSB7XG4gIDxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+e3sgZWRpdGluZyB9fTwvZGl2PlxuICB9XG48L2Rpdj5cbjxuZy1jb250YWluZXIgI2NvbXBvbmVudD48L25nLWNvbnRhaW5lcj5cbjxmb3JtIHN0eWxlPVwiZGlzcGxheTpub25lXCI+PGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGUgbXVsdGlwbGUgLz48L2Zvcm0+XG4iXX0=
475
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF5QixnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUl2SyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRyxPQUFPLEVBQVcsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJM0YsT0FBTyxFQUE2QixjQUFjLEVBQW1CLE1BQU0seUJBQXlCLENBQUM7QUFPckcsT0FBTyxFQUFFLE9BQU8sRUFBaUIsTUFBTSxZQUFZLENBQUM7QUFDcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3JELE9BQU8sRUFBRSxZQUFZLEVBQW9CLE1BQU0sd0JBQXdCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRW5ELE1BQU0sQ0FBQyxNQUNMLG9CQUFvQixHQUFHLElBQUk7QUFDM0Is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YSxXQUFXO3NCQUE3QixNQUFNO2dCQUVQLEtBQUs7c0JBREosS0FBSztnQkFFYSxXQUFXO3NCQUE3QixNQUFNO2dCQUNZLEtBQUs7c0JBQXZCLE1BQU07Z0JBQ0UsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSytCLFlBQVk7c0JBQWhELFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDZ0IsV0FBVztzQkFBN0QsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2lCLFVBQVU7c0JBQTNFLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgT25EZXN0cm95LCBFbGVtZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnQsIFZpZXdDaGlsZCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgZnJvbSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIHRhcCwgc3dpdGNoTWFwLCBzdGFydFdpdGgsIG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgY2xlYW51cCwgZGVlcEFzc2lnbiwgaXNCb29sZWFuLCBpc1Byb21pc2UsIHF1ZXJ5UGFyYW1zIH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBSZWNpcGllbnRNb2RlbCwgRm9ybSwgQWN0aW9uLCBBdHRhY2htZW50IH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50LCBWaWV3TW9kZSB9IGZyb20gJy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNYWlsYm94U2VydmljZSwgSXRlbUV4dHJhLCBET0NVTUVOVF9NT0RFTCwgQXR0YWNobWVudEV4dHJhIH0gZnJvbSAnLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3VpZGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9ndWlkZS9ndWlkZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlcic7XHJcbmltcG9ydCB7IEZvcm1SZWYsIFNhdmVFdmVudEFyZ3MgfSBmcm9tICcuL2Zvcm0tcmVmJztcclxuaW1wb3J0IHsgQXR0YWNobWVudHNDb21wb25lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnRzL2F0dGFjaG1lbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhZ3NDb21wb25lbnQgfSBmcm9tICcuL3RhZy90YWdzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBvcHVwIH0gZnJvbSAnLi4vY29yZS9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVySW1wbCB9IGZyb20gXCIuLi9jb3JlL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBBY3Rpb25EaWFsb2csIEFjdGlvbkRpYWxvZ0RhdGEgfSBmcm9tICcuL2FjdGlvbi9hY3Rpb24uZGlhbG9nJztcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gJy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcblxyXG5leHBvcnQgY29uc3RcclxuICBSRVBPUlRfRURJVElOR19ERUxBWSA9IDIwMDAsXHJcbiAgLyoqIHNhdmUgZHJhZnQgbXMgKi9cclxuICBBVVRPX1NBVkVfREVMQVkgPSA1MDAwLFxyXG4gIEVESVRJTkdfTUVTU0FHRV9ERUxBWSA9IDMwMDA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdmb3JtLWNvbnRhaW5lciBiaXpkb2MtY29tcG9zZSdcclxuICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wb3NlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIG1vZGVsOiBSZWNpcGllbnRNb2RlbDxhbnk+O1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjaXBpZW50TW9kZWw8YW55Pj4oKTtcclxuICBmb3JtOiBGb3JtO1xyXG4gIEBJbnB1dCgpXHJcbiAgd29ya2luZyA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSB3b3JraW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgZGlydHkgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgZGlydHlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQElucHV0KClcclxuICB2YWxpZCA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWxpZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2F2ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQElucHV0KCkgbW9kZTogVmlld01vZGU7XHJcbiAgQElucHV0KCkgY29udGFjdHMgPSB0cnVlO1xyXG4gIGFjdGlvbnM6IEFjdGlvbltdID0gW107XHJcbiAgcGFnZTogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIGhlbHA6IHN0cmluZztcclxuICBlZGl0aW5nOiBzdHJpbmc7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZScsIHsgc3RhdGljOiB0cnVlIH0pIF9maWxlRWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKEF0dGFjaG1lbnRzQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBhdHRhY2htZW50czogQXR0YWNobWVudHNDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnY29tcG9uZW50JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgX2NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICBwcml2YXRlIF9mb3JtUmVmOiBGb3JtUmVmO1xyXG4gIHByaXZhdGUgX2luc3RhbmNlOiBGb3JtQ29tcG9uZW50PGFueT47XHJcbiAgcHJpdmF0ZSBfZWRpdGluZ1Rhc2s6IE5vZGVKUy5UaW1lb3V0O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgX3BvcHVwOiBQb3B1cCxcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXJJbXBsLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfc25hY2tiYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgcHJpdmF0ZSBfY2Y6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgX2d1aWRlOiBHdWlkZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdpbmc6IEh1YlNlcnZpY2VcclxuICApIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9maWxlRWxlbWVudC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuX2ZpbGVDaGFuZ2VMaXN0ZW5lci5iaW5kKHRoaXMpKTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy5jYWxsYmFjayQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShlID0+XHJcbiAgICAgIHRoaXMuX2luc3RhbmNlLm9uTWVzc2FnZVxyXG4gICAgICAmJiB0aGlzLl9pbnN0YW5jZS5vbk1lc3NhZ2UoZS5tZXNzYWdlKSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcuZWRpdGluZyQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShlID0+XHJcbiAgICAgIGUuaWQgPT09IHRoaXMubW9kZWwuaWQgJiZcclxuICAgICAgdGhpcy5fZWRpdGluZyhlLnVzZXJJZCkpO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLnVwZGF0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgaWYgKGUubW9kZWwuaWQgPT09IHRoaXMubW9kZWwuaWQpIHtcclxuICAgICAgICAoZS51c2VySWQgIT09IHRoaXMuX3Nlc3Npb24udXNlcklkKSAmJlxyXG4gICAgICAgICAgdGhpcy5fYWNjb3VudHMuZ2V0KGUudXNlcklkKS5zdWJzY3JpYmUodSA9PlxyXG4gICAgICAgICAgICB0aGlzLl9zbmFja2Jhci5vcGVuKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ01haWxWZXJzaW9uVXBkYXRlJywgdGhpcy5tb2RlbC5udW1iZXIsIHUubmFtZSksXHJcbiAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlLmdldCgnT0snKSwge1xyXG4gICAgICAgICAgICAgIGRpcmVjdGlvbjogdGhpcy5fc2Vzc2lvbi5kaXJlY3Rpb24sXHJcbiAgICAgICAgICAgIH0pLm9uQWN0aW9uKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLl9hc3NpZ24oZS5tb2RlbCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fcmVzZXQoKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWFpbGJveC5jaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5cclxuICAgICAgc3Vic2NyaWJlKGUgPT4gIXRoaXMud29ya2luZyAmJiBlLmlkID09PSB0aGlzLm1vZGVsLmlkICYmIHRoaXMuX2Fzc2lnbihlKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2VkaXRpbmcodXNlcklkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2FjY291bnRzLmdldCh1c2VySWQpLnN1YnNjcmliZSh1ID0+IHtcclxuICAgICAgdGhpcy5lZGl0aW5nID0gdGhpcy5fdHJhbnNsYXRlLnBlcnNvbmFsaXplKCdFZGl0aW5nJywgdS5nZW5kZXIsIHUubmFtZSk7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9lZGl0aW5nVGFzayk7XHJcbiAgICAgIHRoaXMuX2VkaXRpbmdUYXNrID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmVkaXRpbmcgPSBudWxsLCBFRElUSU5HX01FU1NBR0VfREVMQVkpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLl9mb3JtUmVmICYmIHRoaXMuX2Zvcm1SZWYuX2Rlc3Ryb3koKTtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSB0aGlzLm1vZGVsLmZvcm1JZCk7XHJcbiAgICB0aGlzLmhlbHAgPSB0aGlzLmZvcm0uZ3VpZGU7XHJcbiAgICBpZiAoIXRoaXMuZm9ybS50ZW1wbGF0ZSlcclxuICAgICAgdGhyb3cgKGBGb3JtICcke3RoaXMuZm9ybS5uYW1lfScgbW9kZWwgbWlzc2luZyAnW1RlbXBsYXRlKCldJyBhdHRyaWJ1dGUuYCk7XHJcbiAgICBjb25zdCBjb21wID0gdGhpcy5fY2YuY29tcG9uZW50KHRoaXMuZm9ybS50ZW1wbGF0ZSk7XHJcbiAgICB0aGlzLl9mb3JtUmVmID0gbmV3IEZvcm1SZWYodGhpcy5mb3JtKTtcclxuICAgIHRoaXMuX2Zvcm1SZWYuX25hdmlnYXRpbmcuXHJcbiAgICAgIHN1YnNjcmliZShwID0+IHRoaXMucGFnZSA9IHApO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fc3RhdGVDaGFuZ2UucGlwZShzdGFydFdpdGgoKSkuXHJcbiAgICAgIHN1YnNjcmliZSgoKSA9PiB0aGlzLmhlbHAgPSB0aGlzLl9mb3JtUmVmLmhlbHApO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBGb3JtUmVmLCB1c2VWYWx1ZTogdGhpcy5fZm9ybVJlZlxyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgIHByb3ZpZGU6IERPQ1VNRU5UX01PREVMLCB1c2VWYWx1ZTogdGhpcy5tb2RlbFxyXG4gICAgICAgIH1cclxuICAgICAgXSwgcGFyZW50OiB0aGlzLl9pbmplY3RvclxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9jb250YWluZXIuY2xlYXIoKTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuX2NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcCwgeyBpbmplY3RvciB9KTtcclxuXHJcbiAgICB0aGlzLl9pbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZSBhcyBGb3JtQ29tcG9uZW50PGFueT47XHJcbiAgICB0aGlzLl9mb3JtUmVmLl9tb2RlID0gdGhpcy5faW5zdGFuY2UubW9kZSA9IHRoaXMubW9kZTtcclxuICAgIHRoaXMuX2luc3RhbmNlLmZvcm0uc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgY29uc3QgeyBkaXJ0eSwgdmFsaWQgfSA9IHRoaXMuX2luc3RhbmNlLmZvcm07XHJcbiAgICAgIHRoaXMuZGlydHkgPSBkaXJ0eTtcclxuICAgICAgdGhpcy5kaXJ0eUNoYW5nZS5lbWl0KGRpcnR5KTtcclxuICAgICAgdGhpcy52YWxpZCA9IHZhbGlkO1xyXG4gICAgICB0aGlzLnZhbGlkQ2hhbmdlLmVtaXQodmFsaWQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm1vZGVsLmRyYWZ0ICYmIHRoaXMuX2luc3RhbmNlLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICAvL2RlYm91bmNlVGltZShSRVBPUlRfRURJVElOR19ERUxBWSksXHJcbiAgICAgIC8vdGFwKCgpID0+ICF0aGlzLndvcmtpbmcgJiYgdGhpcy5fbWFpbGJveC5lZGl0aW5nKHRoaXMubW9kZWwuZG9jdW1lbnRJZCkpLFxyXG4gICAgICBkZWJvdW5jZVRpbWUoQVVUT19TQVZFX0RFTEFZKVxyXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4gIXRoaXMud29ya2luZyAmJiB0aGlzLmRpcnR5ICYmXHJcbiAgICAgIHRoaXMuc2F2ZShmYWxzZSkuc3Vic2NyaWJlKCkpO1xyXG4gICAgdGhpcy5faW5zdGFuY2Uub25CaW5kKHRoaXMubW9kZWwpO1xyXG4gICAgdGhpcy5fcmVzZXQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZmlsZUNoYW5nZUxpc3RlbmVyKGV2OiBFdmVudCkge1xyXG4gICAgY29uc3QgeyBmaWxlcyB9ID0gZXYudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQsXHJcbiAgICAgIGFycjogRmlsZVtdID0gW107XHJcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspXHJcbiAgICAgICAgYXJyLnB1c2goZmlsZXNbaV0pO1xyXG4gICAgICB0aGlzLnVwbG9hZChhcnIpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fZmlsZUVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5hdHRhY2htZW50cy5uZ09uQ2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfYXBwbHljaGFuZ2VzKCkge1xyXG4gICAgZGVlcEFzc2lnbih0aGlzLm1vZGVsLm1vZGVsLCB0aGlzLl9pbnN0YW5jZS5mb3JtLnZhbHVlKTtcclxuICB9XHJcbiAgbmF2aWdhdGUocGFnZTogYW55KSB7XHJcbiAgICBjb25zdCBwYWdlbiA9IHBhcnNlSW50KHBhZ2UpO1xyXG4gICAgdGhpcy5fZm9ybVJlZi5fbmF2aWdhdGluZy5uZXh0KGlzTmFOKHBhZ2VuKSA/IHBhZ2UgOiBwYWdlbik7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2dldEFjdGlvbkFkamVjdGl2ZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gKGFjdGlvbi5hZGplY3RpdmUgfHwgYWN0aW9uLnBhc3QgfHwgYWN0aW9uLnRpdGxlKS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZmVlZGJhY2tcclxuICAgKi9cclxuICBwcml2YXRlIF9zYXZlKGZlZWRiYWNrOiBib29sZWFuKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICBjb25zdCB7IGlkLCB2ZXJzaW9uLCBmb3JtSWQsIG1vZGVsLCBkcmFmdCB9ID0gdGhpcy5tb2RlbDtcclxuICAgIHJldHVybiB0aGlzLl9tYWlsYm94LnNhdmUoaWQsIGZvcm1JZCwgdmVyc2lvbiwgbW9kZWwpLnBpcGUoXHJcbiAgICAgIHRhcCh7XHJcbiAgICAgICAgbmV4dDogbSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9hc3NpZ24obSwgZmFsc2UpO1xyXG4gICAgICAgICAgdGhpcy5fcmVzZXQoKTtcclxuICAgICAgICAgIGZlZWRiYWNrICYmXHJcbiAgICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KGRyYWZ0ID8gJ0RyYWZ0U2F2ZWQnIDogJ0NoYW5nZXNTYXZlZCcpO1xyXG4gICAgICAgICAgdGhpcy5zYXZlZC5lbWl0KCk7XHJcbiAgICAgICAgfSwgZXJyb3I6IGUgPT4ge1xyXG4gICAgICAgICAgZmVlZGJhY2sgJiZcclxuICAgICAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSwgJ1NhdmVFcnInKTtcclxuICAgICAgICB9LCBmaW5hbGl6ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSwgbWFwKCgpID0+IHRydWUpKTtcclxuICB9XHJcbiAgdXBsb2FkKGZpbGVzOiBGaWxlW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgdGhpcy53b3JraW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgbGV0IGV4aXN0czogYm9vbGVhbjtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzID0gW10gYXMgT2JzZXJ2YWJsZTxhbnk+W107XHJcbiAgICBmaWxlcy5mb3JFYWNoKGYgPT4ge1xyXG4gICAgICBpZiAoIWV4aXN0cylcclxuICAgICAgICBleGlzdHMgPSB0aGlzLm1vZGVsLmF0dGFjaG1lbnRzLnNvbWUoYSA9PiBhLmZpbGVOYW1lID09PSBmLm5hbWUgJiYgIWEuZGVsZXRlZCAmJiAhKGEgYXMgQXR0YWNobWVudEV4dHJhKS5mYWlsZWQpO1xyXG4gICAgICBjb25zdCByZXRyeSA9IHRoaXMubW9kZWwuYXR0YWNobWVudHMuZmluZEluZGV4KGEgPT4gYS5maWxlTmFtZSA9PT0gZi5uYW1lICYmIChhIGFzIEF0dGFjaG1lbnRFeHRyYSkuZmFpbGVkKTtcclxuICAgICAgaWYgKHJldHJ5ID4gLTEpXHJcbiAgICAgICAgdGhpcy5tb2RlbC5hdHRhY2htZW50cy5zcGxpY2UocmV0cnksIDEpO1xyXG4gICAgICBjb25zdCBtb2RlbCA9IHRoaXMuX2NvbnN0cnVjdEF0dGFjaG1lbnQoZik7XHJcbiAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl9tYWlsYm94LnVwbG9hZCh0aGlzLm1vZGVsLmlkLCB0aGlzLm1vZGVsLmZvcm1JZCwgdGhpcy5tb2RlbC52ZXJzaW9uLCBmKS5cclxuICAgICAgICBwaXBlKHRhcChcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fc2IudG9hc3QoXHJcbiAgICAgICAgICAgICAgICAhZXhpc3RzID8gJ1VwbG9hZE9rJyA6ICdVcGxvYWRWZXJzaW9uT2snLCBmLm5hbWUpO1xyXG4gICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24obW9kZWwsIHIsIHsgcHJvZ3Jlc3M6IG51bGwsIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMubW9kZWwuYXR0YWNobWVudHMucHVzaChtb2RlbCk7XHJcbiAgICAgICAgICAgIH0sIGVycm9yOiBlID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVFcnJvcihlLCAnVXBsb2FkRmFpbGVkJywgZi5uYW1lKTtcclxuICAgICAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICAgICAgICB9LCBmaW5hbGl6ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKG9ic2VydmFibGUpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb25zdHJ1Y3RBdHRhY2htZW50KGZpbGU6IEZpbGUpIHtcclxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCksIHV0YyA9IG5ldyBEYXRlKG5vdy5nZXRUaW1lKCkgKyBub3cuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHVzZXJJZDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCxcclxuICAgICAgYnlJZDogdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmJ5SWQsXHJcbiAgICAgIHRpbWU6IHV0Yy50b0pTT04oKSBhcyBhbnksXHJcbiAgICAgIGZpbGVOYW1lOiBmaWxlLm5hbWUsXHJcbiAgICAgIGNvbnRlbnRUeXBlOiBmaWxlLnR5cGVcclxuICAgIH0gYXMgQXR0YWNobWVudDtcclxuICB9XHJcbiAgdGFnKGV2dDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihUYWdzQ29tcG9uZW50LCAoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCksIHtcclxuICAgICAgZGF0YTogdGhpcy5tb2RlbFxyXG4gICAgfSlcclxuICB9XHJcbiAgcHJpdmF0ZSBfcmVzZXQoKSB7XHJcbiAgICBmdW5jdGlvbiBzb3J0QWN0aW9ucyhhOiBBY3Rpb24sIGI6IEFjdGlvbikge1xyXG4gICAgICBpZiAoYS5ncm91cCAmJiBiLmdyb3VwICYmIGEuZ3JvdXAgIT09IGIuZ3JvdXApXHJcbiAgICAgICAgcmV0dXJuIGEuZ3JvdXAgPCBiLmdyb3VwID8gLTEgOiAxO1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICAgIHRoaXMuX2luc3RhbmNlLmZvcm0ucmVzZXQodGhpcy5tb2RlbC5tb2RlbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy52YWxpZCA9IHRoaXMuX2luc3RhbmNlLmZvcm0udmFsaWQ7XHJcbiAgICB0aGlzLnZhbGlkQ2hhbmdlLmVtaXQodGhpcy52YWxpZCk7XHJcbiAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XHJcbiAgICB0aGlzLmRpcnR5Q2hhbmdlLmVtaXQodGhpcy5kaXJ0eSk7XHJcbiAgICB0aGlzLmFjdGlvbnMgPSB0aGlzLm1vZGVsLmFjdGlvbnMubGVuZ3RoID9cclxuICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuXHJcbiAgICAgICAgZmlsdGVyKGEgPT4gdGhpcy5tb2RlbC5hY3Rpb25zLmluZGV4T2YoYS5uYW1lKSA+IC0xKS5cclxuICAgICAgICBzb3J0KHNvcnRBY3Rpb25zKSA6IFtdO1xyXG4gIH1cclxuXHJcbiAgZ3VpZGUobmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9ndWlkZS5zdGFydChuYW1lKTtcclxuICB9XHJcbiAgYXR0YWNoKCkge1xyXG4gICAgY29uc3QgZWxlbSA9IHRoaXMuX2ZpbGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGVsZW0uY2xpY2soKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZmVlZGJhY2tcclxuICAgKi9cclxuICBzYXZlKGZlZWRiYWNrID0gdHJ1ZSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgdGhpcy5fYXBwbHljaGFuZ2VzKCk7XHJcbiAgICBjb25zdCBzYXZlQXJncyA9IHsgY2FuY2VsOiBmYWxzZSB9IGFzIFNhdmVFdmVudEFyZ3M7XHJcbiAgICB0aGlzLl9mb3JtUmVmLl9zYXZpbmcubmV4dChzYXZlQXJncyk7XHJcbiAgICBpZiAoc2F2ZUFyZ3MuY2FuY2VsKVxyXG4gICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgaWYgKHRoaXMuX2luc3RhbmNlLm9uU2F2ZSkge1xyXG4gICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9pbnN0YW5jZS5vblNhdmUoKTtcclxuICAgICAgaWYgKGlzQm9vbGVhbihyZXN1bHQpKSB7XHJcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcclxuICAgICAgICAgIGZlZWRiYWNrICYmIHRoaXMuX3NiLnRvYXN0KCdWYWxpZGF0ZUVycicpO1xyXG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoaXNQcm9taXNlKHJlc3VsdCkpXHJcbiAgICAgICAgcmV0dXJuIGZyb20ocmVzdWx0KS5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9zYXZlKGZlZWRiYWNrKSkpO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLl9zYXZlKGZlZWRiYWNrKSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX3NhdmUoZmVlZGJhY2spO1xyXG4gIH1cclxuICBmbGFnKCkge1xyXG4gICAgY29uc3QgZXh0cmEgPSB0aGlzLm1vZGVsIGFzIEl0ZW1FeHRyYSwgeyBmbGFnIH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgZXh0cmEud29ya2luZyA9IHRydWU7XHJcbiAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5fbWFpbGJveC5mbGFnKHRoaXMubW9kZWwuaWQsICFmbGFnKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5mbGFnID0gIWZsYWc7XHJcbiAgICAgICAgZXh0cmEud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICB9LCBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIGV4dHJhLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIHRoaXMuX2FwcGx5Y2hhbmdlcygpO1xyXG4gICAgY29uc3QgeyBpZCwgdmVyc2lvbiwgZm9ybUlkLCBtb2RlbCwgbnVtYmVyIH0gPSB0aGlzLm1vZGVsO1xyXG4gICAgdGhpcy53b3JraW5nID0gdHJ1ZTtcclxuICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgcmV0dXJuIHRoaXMuX21haWxib3guc3VibWl0KGlkLCB2ZXJzaW9uLCBmb3JtSWQsIG1vZGVsKS5cclxuICAgICAgcGlwZSh0YXAoe1xyXG4gICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KCdTdWJtaXR0ZWQnLCBudW1iZXIpO1xyXG4gICAgICAgIH0sIGVycm9yOiBlID0+IHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdTdWJtaXRFcnInKTtcclxuICAgICAgICB9LCBmaW5hbGl6ZTogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSk7XHJcbiAgfVxyXG4gIGJhY2soKSB7XHJcbiAgICB0aGlzLl9mb3JtUmVmLm5hdmlnYXRlKCk7XHJcbiAgfVxyXG4gIGRpc2NhcmQoKSB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHRoaXMuX3NiLmFzaygnRGlzY2FyZEFzaycsICdEaXNjYXJkJywge1xyXG4gICAgICAgIGNvbG9yOiAnd2FybicsIG9rOiAnRGlzY2FyZCdcclxuICAgICAgfSkuc3Vic2NyaWJlKG9rID0+IHtcclxuICAgICAgICBpZiAob2spIHtcclxuICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgdGhpcy5fbWFpbGJveC5kZWxldGUodGhpcy5tb2RlbC5pZCkuXHJcbiAgICAgICAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtpbmdDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBlcnJvcjogZSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZUVycm9yKGUsICdOZXR3b3JrRXJyJyk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLmVycm9yKCk7XHJcbiAgICAgICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZW5kKGFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHRoaXMuX2RpYWxvZy5vcGVuKEFjdGlvbkRpYWxvZywge1xyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGFjdGlvbixcclxuICAgICAgICAgIGl0ZW06IHRoaXMubW9kZWxcclxuICAgICAgICB9IGFzIEFjdGlvbkRpYWxvZ0RhdGEsXHJcbiAgICAgICAgY2xvc2VPbk5hdmlnYXRpb246IHRydWVcclxuICAgICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoYXJncyA9PiB7XHJcbiAgICAgICAgaWYgKGFyZ3MpIHtcclxuICAgICAgICAgIHRoaXMuX2FwcGx5Y2hhbmdlcygpO1xyXG4gICAgICAgICAgY29uc3QgcGFyYW1zID0gcXVlcnlQYXJhbXMoYXJncyk7XHJcbiAgICAgICAgICB0aGlzLndvcmtpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgICBjb25zdCB7IGlkLCB2ZXJzaW9uLCBudW1iZXIsIG1vZGVsLCBmb3JtSWQgfSA9IHRoaXMubW9kZWw7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5fbWFpbGJveC5zZW5kKGlkLCB2ZXJzaW9uLCBmb3JtSWQsIG1vZGVsLCBhY3Rpb24sIHBhcmFtcykuXHJcbiAgICAgICAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW4gPSByLnJlY2lwaWVudHMuZmlsdGVyKHIgPT4gci5vcmlnaW5JZCA9PT0gaWQpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG9yaWdpbi5sZW5ndGgpXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuX2FjY291bnRzLmdldEFsbChvcmlnaW4ubWFwKHIgPT4gci51c2VySWQpKS5zdWJzY3JpYmUodSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KCdTZW50VG8nLCBudW1iZXIsIHRoaXMuX2dldEFjdGlvbkFkamVjdGl2ZShhY3Rpb24pLCB0aGlzLl90cmFuc2xhdGUuam9pbih1Lm1hcCh1ID0+IHUubmFtZSkpKSk7XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KCdTZW50JywgbnVtYmVyLCB0aGlzLl9nZXRBY3Rpb25BZGplY3RpdmUoYWN0aW9uKSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMud29ya2luZ0NoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIG9ic2VydmUubmV4dCgpO1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgIH0sIGVycm9yOiBlID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JraW5nQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlRXJyb3IoZSwgJ1NlbmRFcnInKTtcclxuICAgICAgICAgICAgICAgIG9ic2VydmUuZXJyb3IoKTtcclxuICAgICAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9ic2VydmUuZXJyb3IoKTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY29weSgpIHtcclxuICAgIHRoaXMuX21haWxib3guY29weSh0aGlzLm1vZGVsLmRvY3VtZW50SWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IGkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3NiLnRvYXN0KCdDb3BpZWQnLCBpLm51bWJlciB8fCB0aGlzLmZvcm0udGl0bGUpO1xyXG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvaScsIGkuaWQuZW5jb2RlSWQoKV0sIHtcclxuICAgICAgICAgIHBvbGljeTogT3BlblBvbGljeS5DbGVhcixcclxuICAgICAgICAgIHN0YXRlOiB7IGl0ZW06IGkgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9LCBlcnJvcjogKCkgPT4gdGhpcy5fc2IuZXJyb3IoKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHJlc3BvbnNlXHJcbiAgICogQHBhcmFtIGl0ZW1cclxuICAgKiBAcGFyYW0gbWVzc2FnZSByZXNvdXJjZVxyXG4gICAqIEBwYXJhbSBhcmdzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfaGFuZGxlRXJyb3IocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55LCBtZXNzYWdlOiBzdHJpbmcsIC4uLmFyZ3M6IHN0cmluZ1tdKSB7XHJcbiAgICBpZiAocmVzcG9uc2UuY29uc3RydWN0b3IubmFtZSA9PT0gJ1Bvc2l0aW9uRXJyb3InKVxyXG4gICAgICBzd2l0Y2ggKHJlc3BvbnNlLmNvZGUpIHtcclxuICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignVXNlckRlbmllZEdlb0VycicpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKCdHZW9FcnInKTtcclxuICAgICAgfVxyXG4gICAgZWxzZVxyXG4gICAgICBzd2l0Y2ggKHJlc3BvbnNlLnN0YXR1cykge1xyXG4gICAgICAgIGNhc2UgNDAxOlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ1VuYXV0aG9yaXplZCcpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSA0MDk6IC8vIHZlcnNpb24gY2hhbmdlXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9iaiA9IHJlc3BvbnNlLmVycm9yIC8qIHNlcmlhbGl6ZWQgbW9kZWwgKi8gYXMgUmVjaXBpZW50TW9kZWw8YW55PjtcclxuICAgICAgICAgICAgb2JqICYmIHRoaXMuX2Fzc2lnbihvYmopO1xyXG4gICAgICAgICAgICB0aGlzLl9yZXNldCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9zYi5lcnJvcignVmVyc2lvbkVycicsIHRoaXMubW9kZWwubnVtYmVyKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgY2FzZSA0MDY6IC8vIHZhbGlkYXRpb25cclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yU3RyaW5nKHJlc3BvbnNlLmVycm9yKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgNDI2OiAvLyBsaWNlbnNlIFxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ0xpY2Vuc2VFcnInKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcihtZXNzYWdlLCAuLi5hcmdzKTtcclxuICAgICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9hc3NpZ24obW9kZWw6IFJlY2lwaWVudE1vZGVsLCBlbWl0RXZlbnQ/OiBib29sZWFuKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMubW9kZWwsIG1vZGVsLCB7IC8vIHByZXNlcnZlIG9iamVjdCByZWYgaW4gbW9kZWxcclxuICAgICAgbW9kZWw6IGRlZXBBc3NpZ24odGhpcy5tb2RlbC5tb2RlbCwgbW9kZWwubW9kZWwpXHJcbiAgICB9KTtcclxuICAgIGlmIChlbWl0RXZlbnQgIT09IGZhbHNlKSB7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgICAgdGhpcy5fZm9ybVJlZi5fbW9kZWxDaGFuZ2UubmV4dCh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZvcm0taGVhZGVyXCI+XG4gIDwhLS08Yml6ZG9jLXBlb3BsZSBbbW9kZWxdPVwibW9kZWxcIiAqbmdJZj1cIm1vZGUgIT09ICdjb21wb3NlJyAmJiBjb250YWN0c1wiPjwvYml6ZG9jLXBlb3BsZT4tLT5cbiAgPGJpemRvYy1hdHRhY2htZW50cyBbbW9kZWxdPVwibW9kZWxcIiBbaW5jbHVkZURlbGV0ZWRdPVwidHJ1ZVwiIFt2aWV3ZWRJbmRpY2F0b3JdPVwiZmFsc2VcIj48L2JpemRvYy1hdHRhY2htZW50cz5cbiAgQGlmICghbW9kZWwucmVwbGllZCAmJiBtb2RlICE9PSAnY29tcG9zZScgJiYgbW9kZWwubm90ZSkge1xuICA8ZGl2IGNsYXNzPVwiY29tcG9zZS1ub3RlXCI+XG4gICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiPmluZm88L21hdC1pY29uPiA8c3BhbiBjbGFzcz1cIm1hdC1ib2R5LTJcIj57e21vZGVsLm5vdGV9fTwvc3Bhbj5cbiAgPC9kaXY+XG4gIH1cbiAgQGlmIChtb2RlbC50YWdzKSB7XG4gIDxtYXQtY2hpcC1zZXQ+XG4gICAgQGZvciAodGFnIG9mIG1vZGVsLnRhZ3M7IHRyYWNrIHRhZykge1xuICAgIDxtYXQtY2hpcCBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCI+e3t0YWd9fTwvbWF0LWNoaXA+XG4gICAgfVxuICA8L21hdC1jaGlwLXNldD5cbiAgfVxuICBAaWYgKGVkaXRpbmcpIHtcbiAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj57eyBlZGl0aW5nIH19PC9kaXY+XG4gIH1cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAjY29tcG9uZW50PjwvbmctY29udGFpbmVyPlxuPGZvcm0gc3R5bGU9XCJkaXNwbGF5Om5vbmVcIj48aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZSBtdWx0aXBsZSAvPjwvZm9ybT5cbiJdfQ==
@@ -151,11 +151,11 @@ export class CombinationPickerBody {
151
151
  this.modeChange.complete();
152
152
  }
153
153
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CombinationPickerBody, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: COMBINATION_PICKER_BODY, optional: true }, { token: i1.FormBuilder }, { token: i2.PromptService }, { token: i3.CubeInfo }, { token: i4.DatasourceService }, { token: i0.ChangeDetectorRef }, { token: i5.SessionService }, { token: i6.CubeService }], target: i0.ɵɵFactoryTarget.Component }); }
154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: CombinationPickerBody, selector: "bizdoc-combination-picker-body", viewQueries: [{ propertyName: "axes", predicate: MatSelect, descendants: true }], ngImport: i0, template: "<div class=\"account-picker-popup\" cdkTrapFocus>\n @switch (mode) {\n <!--[@transformPanel]=\"enter\"-->\n @case ('filter') {\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\n <!-- filter -->\n <form [formGroup]=\"_form\">\n @for (a of _axes; track a; let i = $index) {\n <mat-form-field>\n <mat-label>{{a.title}}</mat-label>\n <mat-select [formControlName]=\"a.name\">\n @if (_keys[a.name].length>1) {\n <mat-option>{{'All'|translate}}</mat-option>\n }\n @for (key of _keys[a.name]; track key) {\n <mat-option [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\n }\n </mat-select>\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\n </mat-form-field>\n }\n </form>\n <div class=\"actions\">\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\n <mat-icon>search</mat-icon>\n </button>\n </div>\n }\n <!-- results -->\n @case ('results') {\n <div class=\"actions\">\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n </div>\n <mat-action-list>\n @for (codes of _combinations; track codes) {\n <mat-list-item (click)=\"_select(codes)\">\n <h3 matListItemTitle>{{_nameOf(codes)}}</h3>\n @if (_explorable) {\n <p matListItemLine><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\n }\n </mat-list-item>\n }\n </mat-action-list>\n }\n }\n</div>\n", styles: [".account-picker-popup{display:flex;flex-direction:column;width:100%}.account-picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;display:flex}.account-picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:50%;padding:0 5px 5px 0}.account-picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.account-picker-popup ::ng-deep .mat-mdc-list-base{overflow:auto}.account-picker-popup ::ng-deep .mat-mdc-list-base .mat-mdc-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatActionList, selector: "mat-action-list", exportAs: ["matActionList"] }, { kind: "component", type: i8.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i8.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i8.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] }); }
154
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: CombinationPickerBody, selector: "bizdoc-combination-picker-body", viewQueries: [{ propertyName: "axes", predicate: MatSelect, descendants: true }], ngImport: i0, template: "<div class=\"account-picker-popup\" cdkTrapFocus>\n @switch (mode) {\n <!--[@transformPanel]=\"enter\"-->\n @case ('filter') {\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\n <!-- filter -->\n <form [formGroup]=\"_form\">\n @for (a of _axes; track a; let i = $index) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{a.title}}</mat-label>\n <mat-select [formControlName]=\"a.name\">\n @if (_keys[a.name].length>1) {\n <mat-option>{{'All'|translate}}</mat-option>\n }\n @for (key of _keys[a.name]; track key) {\n <mat-option [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\n }\n </mat-select>\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\n </mat-form-field>\n }\n </form>\n <div class=\"actions\">\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\n <mat-icon>search</mat-icon>\n </button>\n </div>\n }\n <!-- results -->\n @case ('results') {\n <div class=\"actions\">\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n </div>\n <mat-action-list>\n @for (codes of _combinations; track codes) {\n <mat-list-item (click)=\"_select(codes)\">\n <h3 matListItemTitle>{{_nameOf(codes)}}</h3>\n @if (_explorable) {\n <p matListItemLine><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\n }\n </mat-list-item>\n }\n </mat-action-list>\n }\n }\n</div>\n", styles: [".account-picker-popup{display:flex;flex-direction:column;width:100%}.account-picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;gap:8px;display:flex}.account-picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:50%}.account-picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.account-picker-popup ::ng-deep .mat-mdc-list-base{overflow:auto}.account-picker-popup ::ng-deep .mat-mdc-list-base .mat-mdc-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatActionList, selector: "mat-action-list", exportAs: ["matActionList"] }, { kind: "component", type: i8.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i8.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i8.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] }); }
155
155
  }
156
156
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CombinationPickerBody, decorators: [{
157
157
  type: Component,
158
- args: [{ selector: 'bizdoc-combination-picker-body', template: "<div class=\"account-picker-popup\" cdkTrapFocus>\n @switch (mode) {\n <!--[@transformPanel]=\"enter\"-->\n @case ('filter') {\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\n <!-- filter -->\n <form [formGroup]=\"_form\">\n @for (a of _axes; track a; let i = $index) {\n <mat-form-field>\n <mat-label>{{a.title}}</mat-label>\n <mat-select [formControlName]=\"a.name\">\n @if (_keys[a.name].length>1) {\n <mat-option>{{'All'|translate}}</mat-option>\n }\n @for (key of _keys[a.name]; track key) {\n <mat-option [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\n }\n </mat-select>\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\n </mat-form-field>\n }\n </form>\n <div class=\"actions\">\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\n <mat-icon>search</mat-icon>\n </button>\n </div>\n }\n <!-- results -->\n @case ('results') {\n <div class=\"actions\">\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n </div>\n <mat-action-list>\n @for (codes of _combinations; track codes) {\n <mat-list-item (click)=\"_select(codes)\">\n <h3 matListItemTitle>{{_nameOf(codes)}}</h3>\n @if (_explorable) {\n <p matListItemLine><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\n }\n </mat-list-item>\n }\n </mat-action-list>\n }\n }\n</div>\n", styles: [".account-picker-popup{display:flex;flex-direction:column;width:100%}.account-picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;display:flex}.account-picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:50%;padding:0 5px 5px 0}.account-picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.account-picker-popup ::ng-deep .mat-mdc-list-base{overflow:auto}.account-picker-popup ::ng-deep .mat-mdc-list-base .mat-mdc-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"] }]
158
+ args: [{ selector: 'bizdoc-combination-picker-body', template: "<div class=\"account-picker-popup\" cdkTrapFocus>\n @switch (mode) {\n <!--[@transformPanel]=\"enter\"-->\n @case ('filter') {\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\n <!-- filter -->\n <form [formGroup]=\"_form\">\n @for (a of _axes; track a; let i = $index) {\n <mat-form-field subscriptSizing=\"dynamic\">\n <mat-label>{{a.title}}</mat-label>\n <mat-select [formControlName]=\"a.name\">\n @if (_keys[a.name].length>1) {\n <mat-option>{{'All'|translate}}</mat-option>\n }\n @for (key of _keys[a.name]; track key) {\n <mat-option [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\n }\n </mat-select>\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\n </mat-form-field>\n }\n </form>\n <div class=\"actions\">\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\n <mat-icon>search</mat-icon>\n </button>\n </div>\n }\n <!-- results -->\n @case ('results') {\n <div class=\"actions\">\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\n </div>\n <mat-action-list>\n @for (codes of _combinations; track codes) {\n <mat-list-item (click)=\"_select(codes)\">\n <h3 matListItemTitle>{{_nameOf(codes)}}</h3>\n @if (_explorable) {\n <p matListItemLine><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\n }\n </mat-list-item>\n }\n </mat-action-list>\n }\n }\n</div>\n", styles: [".account-picker-popup{display:flex;flex-direction:column;width:100%}.account-picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;gap:8px;display:flex}.account-picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:50%}.account-picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.account-picker-popup ::ng-deep .mat-mdc-list-base{overflow:auto}.account-picker-popup ::ng-deep .mat-mdc-list-base .mat-mdc-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"] }]
159
159
  }], ctorParameters: () => [{ type: undefined, decorators: [{
160
160
  type: Optional
161
161
  }, {
@@ -170,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
170
170
  type: ViewChildren,
171
171
  args: [MatSelect]
172
172
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcGlja2VyLWJvZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5wdXRzL2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2lucHV0cy9jb21iaW5hdGlvbi1waWNrZXItYm9keS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBRXpKLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQVMxQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0Isa0JBQWtCLENBQUMsQ0FBQztBQStCbkcsTUFBTTtBQU1OLE1BQU0sT0FBTyxxQkFBcUI7SUFlaEMsWUFDdUMsVUFBK0IsRUFDdkIsV0FBZ0MsRUFDckUsR0FBZ0IsRUFDaEIsU0FBd0IsRUFDeEIsWUFBc0IsRUFDdEIsR0FBc0IsRUFDdEIsR0FBc0IsRUFDdEIsUUFBd0IsRUFDeEIsUUFBcUI7UUFOckIsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENB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LEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBM0lVLHFCQUFxQixrQkFnQlYsZUFBZSw2QkFDZix1QkFBdUI7a0dBakJsQyxxQkFBcUIsK0ZBSWxCLFNBQVMsZ0RDdER6Qiw0MURBOENBOzsyRkRJYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZ0NBQWdDOzswQkFvQnZDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBQ2xDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsdUJBQXVCOzZPQWJwQixJQUFJO3NCQUE1QixZQUFZO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwsIEluamVjdCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQ3ViZUF4aXMsIEN1YmUgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gXCIuLi9kYXRhc291cmNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDdWJlSW5mbyB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUtaW5mby5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN1bVNldHRpbmdzIH0gZnJvbSBcIi4uLy4uL2N1YmUvbWF0cml4L3RhYmxlLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENPTUJJTkFUSU9OX1BJQ0tFUl9CT0RZID0gbmV3IEluamVjdGlvblRva2VuPENvbWJpbmF0aW9uQm9keURhdGE+KCdjb21iaW5hdGlvbl9ib2R5Jyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbWJpbmF0aW9uQm9keURhdGEge1xyXG4gIGN1YmU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIGxpbWl0OiBudW1iZXI7XHJcbiAgZGl2aWRlcjogc3RyaW5nO1xyXG4gIGRpc3BsYXlEaXZpZGVyOiBzdHJpbmc7XHJcbiAgZXhwbG9yZVNldHRpbmdzOiBFeHBsb3JlU2V0dGluZ3M7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwbG9yZVNldHRpbmdzIHtcclxuICBlbmFibGU/OiBib29sZWFuO1xyXG4gIC8qKiBjdWJlIHZpZXcgbmFtZSAqL1xyXG4gIHZpZXc/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdHM/OiB7XHJcbiAgICBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcik7XHJcbiAgfTtcclxuICBpbmRpY2VzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgLyoqIG9uZSBvciBtb3JlIGF4aXMgKi9cclxuICBmaWx0ZXJzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgeEF4aXM6IHN0cmluZztcclxuICBzZXJpZXM6IHN0cmluZztcclxuICBzdW0/OiBTdW1TZXR0aW5ncyB8IFN1bVNldHRpbmdzW10sXHJcbiAgLyoqICovXHJcbiAgYWdncmVnYXRlPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgc2VyaWVzVG90YWxMYWJlbD86IHN0cmluZztcclxuICB4QXhpc1RvdGFsTGFiZWw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE1vZGUgPSAnZmlsdGVyJyB8ICdyZXN1bHRzJztcclxuLyoqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWNvbWJpbmF0aW9uLXBpY2tlci1ib2R5JyxcclxuICB0ZW1wbGF0ZVVybDogJ2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydjb21iaW5hdGlvbi1waWNrZXItYm9keS5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbWJpbmF0aW9uUGlja2VyQm9keSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbWJpbmF0aW9uU2VsZWN0ZWRFdmVudD4oKTtcclxuICByZWFkb25seSBtb2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RlPigpO1xyXG4gIG1vZGU6IE1vZGU7XHJcbiAgQFZpZXdDaGlsZHJlbihNYXRTZWxlY3QpIGF4ZXM6IFF1ZXJ5TGlzdDxNYXRTZWxlY3Q+O1xyXG4gIHJlYWRvbmx5IF9leHBsb3JhYmxlOiBib29sZWFuO1xyXG4gIF93b3JraW5nID0gZmFsc2U7XHJcbiAgcmVhZG9ubHkgX2F4ZXM6IEN1YmVBeGlzW107XHJcbiAgcmVhZG9ubHkgX2Zvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgX2tleXM6IHsgW3R5cGU6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpW10gfSA9IHt9O1xyXG4gIHJlYWRvbmx5IF92YWx1ZXM6IHsgW3R5cGU6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB7IFtrZXk6IG51bWJlcl06IGFueSB9IH0gPSB7fTtcclxuICBfY29tYmluYXRpb25zOiBzdHJpbmdbXVtdO1xyXG4gIHByaXZhdGUgX2RhdGE6IENvbWJpbmF0aW9uQm9keURhdGE7XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBkaWFsb2dEYXRhOiBDb21iaW5hdGlvbkJvZHlEYXRhLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChDT01CSU5BVElPTl9QSUNLRVJfQk9EWSkgb3ZlcmxheURhdGE6IENvbWJpbmF0aW9uQm9keURhdGEsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9zbmFja2JhcjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRJbmZvOiBDdWJlSW5mbyxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogQ3ViZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuX2RhdGEgPSBvdmVybGF5RGF0YSB8fCBkaWFsb2dEYXRhO1xyXG4gICAgY29uc3QgeyBjdWJlLCBleHBsb3JlU2V0dGluZ3MgfSA9IHRoaXMuX2RhdGE7XHJcbiAgICB0aGlzLl9leHBsb3JhYmxlID0gZXhwbG9yZVNldHRpbmdzICE9PSB1bmRlZmluZWQ7XHJcbiAgICBpZiAoY3ViZSlcclxuICAgICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIGlmICghdGhpcy5fY3ViZSkgdGhyb3cgJ05vIGN1YmUnO1xyXG4gICAgdGhpcy5fYXhlcyA9IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiBhLmNvbWJpbmF0aW9uKTtcclxuICAgIGlmICghdGhpcy5fYXhlcy5sZW5ndGgpIHRocm93ICdObyBheGlzIHdpdGggY29tYmluYXRpb24nO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2F4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgICAgIHRoaXMuX2tleXNbYS5uYW1lXSA9IFtdO1xyXG4gICAgICB0aGlzLl9mb3JtLmFkZENvbnRyb2woYS5uYW1lLCBjb250cm9sKTtcclxuICAgICAgdGhpcy5fZHMubWFwKGEuZGF0YVR5cGUpLnN1YnNjcmliZShtID0+IHtcclxuICAgICAgICB0aGlzLl92YWx1ZXNbYS5kYXRhVHlwZV0gPSBtO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSB0aGlzLl9rZXlzW2EubmFtZV0gPSBPYmplY3Qua2V5cyhtKTtcclxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPT09IDEpIGNvbnRyb2wuc2V0VmFsdWUoa2V5c1swXSk7XHJcbiAgICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuX2RhdGEudmFsdWUgJiYgdGhpcy5fcGF0Y2hGb3JtKHRoaXMuX2RhdGEudmFsdWUpO1xyXG4gICAgdGhpcy5fc3dpdGNoTW9kZSgnZmlsdGVyJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcGF0Y2hGb3JtKGNvZGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgY29kZXMgPSBjb2RlLnNwbGl0KHRoaXMuX2RhdGEuZGl2aWRlciksXHJcbiAgICAgIHZhbHVlcyA9IHt9O1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKChhLCBpKSA9PiBjb2Rlc1tpXSAmJiAodmFsdWVzW2EubmFtZV0gPSBjb2Rlc1tpXSkpO1xyXG4gICAgdGhpcy5fZm9ybS5wYXRjaFZhbHVlKHZhbHVlcyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB2YWxcclxuICAgKi9cclxuICBfc3dpdGNoTW9kZSh2YWw6IE1vZGUpIHtcclxuICAgIHRoaXMubW9kZSA9IHZhbDtcclxuICAgIHRoaXMubW9kZUNoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHZhbCA9PT0gJ2ZpbHRlcicpIHRoaXMuYXhlcy5maXJzdC5mb2N1cygpO1xyXG4gICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9LCAwKVxyXG4gIH1cclxuICAvKipcclxuICAgKiBmaWx0ZXIgKi9cclxuICBfZmlsdGVyKCkge1xyXG4gICAgdGhpcy5fd29ya2luZyA9IHRydWU7XHJcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLl9mb3JtLnZhbHVlLCBhcmdzID0ge307XHJcbiAgICB0aGlzLl9heGVzLmZvckVhY2goYSA9PiB2YWx1ZXNbYS5uYW1lXSAmJiAoYXJnc1thLm5hbWVdID0gdmFsdWVzW2EubmFtZV0pKTtcclxuICAgIHRoaXMuX3NlcnZpY2UuY29tYmluYXRpb25zKHRoaXMuX2N1YmUubmFtZSwgYXJncywgeyB0YWtlOiB0aGlzLl9kYXRhLmxpbWl0LCBwcm9ncmVzczogZmFsc2UgfSkuXHJcbiAgICAgIHBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5fd29ya2luZyA9IGZhbHNlKSkuXHJcbiAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9jb21iaW5hdGlvbnMgPSByO1xyXG4gICAgICAgICAgdGhpcy5fc3dpdGNoTW9kZSgncmVzdWx0cycpO1xyXG4gICAgICAgICAgci5sZW5ndGggPT09IHRoaXMuX2RhdGEubGltaXQgJiYgdGhpcy5fc25hY2tiYXIudG9hc3QoJ1Rha2VNb3JlJyk7XHJcbiAgICAgICAgfSwgZXJyb3I6ICgpID0+IHRoaXMuX3NuYWNrYmFyLmVycm9yKClcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGl0ZW0gc2VsZWN0XHJcbiAgICogQHBhcmFtIGNvZGVcclxuICAgKi9cclxuICBfc2VsZWN0KGF4ZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX25hbWVPZihheGVzKSxcclxuICAgICAgdmFsdWUgPSB0aGlzLl9jb2RlT2YoYXhlcyk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHsgdmFsdWUsIGRlc2NyaXB0aW9uLCBheGVzIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gY29kZXNcclxuICAgKi9cclxuICBfY29kZU9mKGNvZGVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gY29kZXMuam9pbih0aGlzLl9kYXRhLmRpdmlkZXIpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiB0cmFuc2xhdGUgY29kZSBzZWdtZW50cyB0byBuYW1lc1xyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgX25hbWVPZihjb2Rlczogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F4ZXMubWFwKChhLCBpKSA9PiB0aGlzLl92YWx1ZXNbYS5kYXRhVHlwZV1bY29kZXNbaV1dIHx8IGNvZGVzW2ldKS5cclxuICAgICAgam9pbih0aGlzLl9kYXRhLmRpc3BsYXlEaXZpZGVyIHx8ICcgJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIG9wZW4gaW5mb1xyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqL1xyXG4gIF9pbmZvKGNvZGVzOiBzdHJpbmdbXSwgZXZ0OiBFdmVudCkge1xyXG4gICAgY29uc3QgeyBkZWZhdWx0cyB9ID0gdGhpcy5fZGF0YS5leHBsb3JlU2V0dGluZ3MgfHwge307XHJcbiAgICBjb25zdCBheGVzID0ge1xyXG4gICAgICAuLi5kZWZhdWx0c1xyXG4gICAgfTtcclxuICAgIGNvZGVzLnNsaWNlKDAsIHRoaXMuX2F4ZXMubGVuZ3RoKS5mb3JFYWNoKChhLCBpKSA9PiBheGVzW3RoaXMuX2F4ZXNbaV0ubmFtZV0gPSBhKTtcclxuXHJcbiAgICB0aGlzLl9hY2NvdW50SW5mby5wb3B1cChheGVzLCBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB7XHJcbiAgICAgIC4uLnRoaXMuX2RhdGEuZXhwbG9yZVNldHRpbmdzLFxyXG4gICAgICBjdWJlOiB0aGlzLl9jdWJlLm5hbWVcclxuICAgIH0pO1xyXG5cclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLm1vZGVDaGFuZ2UuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluYXRpb25TZWxlY3RlZEV2ZW50IHtcclxuICByZWFkb25seSB2YWx1ZTogc3RyaW5nOyByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nOyByZWFkb25seSBheGVzOiBzdHJpbmdbXTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYWNjb3VudC1waWNrZXItcG9wdXBcIiBjZGtUcmFwRm9jdXM+XG4gIEBzd2l0Y2ggKG1vZGUpIHtcbiAgICA8IS0tW0B0cmFuc2Zvcm1QYW5lbF09XCJlbnRlclwiLS0+XG4gICAgQGNhc2UgKCdmaWx0ZXInKSB7XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIFtzdHlsZS52aXNpYmlsaXR5XT1cIl93b3JraW5nID8gJ3Zpc2libGUnOidoaWRkZW4nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgPCEtLSBmaWx0ZXIgLS0+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIl9mb3JtXCI+XG4gICAgICAgIEBmb3IgKGEgb2YgX2F4ZXM7IHRyYWNrIGE7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD57e2EudGl0bGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sTmFtZV09XCJhLm5hbWVcIj5cbiAgICAgICAgICAgICAgQGlmIChfa2V5c1thLm5hbWVdLmxlbmd0aD4xKSB7XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24+e3snQWxsJ3x0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAZm9yIChrZXkgb2YgX2tleXNbYS5uYW1lXTsgdHJhY2sga2V5KSB7XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImtleVwiPnt7X3ZhbHVlc1thLmRhdGFUeXBlXVtrZXldfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgIDxtYXQtaGludD57e19mb3JtLmNvbnRyb2xzW2EubmFtZV0udmFsdWV9fTwvbWF0LWhpbnQ+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgfVxuICAgICAgPC9mb3JtPlxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIl9maWx0ZXIoKVwiIFtkaXNhYmxlZF09XCJfd29ya2luZ1wiIFtiaXpkb2NUb29sdGlwXT1cIidTZWFyY2gnfHRyYW5zbGF0ZVwiIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiIFt0YWJJbmRleF09XCJfYXhlcy5sZW5ndGhcIj5cbiAgICAgICAgICA8bWF0LWljb24+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPCEtLSByZXN1bHRzIC0tPlxuICAgIEBjYXNlICgncmVzdWx0cycpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJfc3dpdGNoTW9kZSgnZmlsdGVyJylcIiBbYml6ZG9jVG9vbHRpcF09XCInRmlsdGVyJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+ZmlsdGVyX2xpc3Q8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8bWF0LWFjdGlvbi1saXN0PlxuICAgICAgICBAZm9yIChjb2RlcyBvZiBfY29tYmluYXRpb25zOyB0cmFjayBjb2Rlcykge1xuICAgICAgICAgIDxtYXQtbGlzdC1pdGVtIChjbGljayk9XCJfc2VsZWN0KGNvZGVzKVwiPlxuICAgICAgICAgICAgPGgzIG1hdExpc3RJdGVtVGl0bGU+e3tfbmFtZU9mKGNvZGVzKX19PC9oMz5cbiAgICAgICAgICAgIEBpZiAoX2V4cGxvcmFibGUpIHtcbiAgICAgICAgICAgICAgPHAgbWF0TGlzdEl0ZW1MaW5lPjxhIChjbGljayk9XCJfaW5mbyhjb2RlcywgJGV2ZW50KVwiPnt7X2NvZGVPZihjb2Rlcyl9fTwvYT48L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICB9XG4gICAgICA8L21hdC1hY3Rpb24tbGlzdD5cbiAgICB9XG4gIH1cbjwvZGl2PlxuIl19
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcGlja2VyLWJvZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5wdXRzL2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2lucHV0cy9jb21iaW5hdGlvbi1waWNrZXItYm9keS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBRXpKLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQVMxQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0Isa0JBQWtCLENBQUMsQ0FBQztBQStCbkcsTUFBTTtBQU1OLE1BQU0sT0FBTyxxQkFBcUI7SUFlaEMsWUFDdUMsVUFBK0IsRUFDdkIsV0FBZ0MsRUFDckUsR0FBZ0IsRUFDaEIsU0FBd0IsRUFDeEIsWUFBc0IsRUFDdEIsR0FBc0IsRUFDdEIsR0FBc0IsRUFDdEIsUUFBd0IsRUFDeEIsUUFBcUI7UUFOckIsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENB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LEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBM0lVLHFCQUFxQixrQkFnQlYsZUFBZSw2QkFDZix1QkFBdUI7a0dBakJsQyxxQkFBcUIsK0ZBSWxCLFNBQVMsZ0RDdER6Qix3M0RBOENBOzsyRkRJYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZ0NBQWdDOzswQkFvQnZDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBQ2xDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsdUJBQXVCOzZPQWJwQixJQUFJO3NCQUE1QixZQUFZO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwsIEluamVjdCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQ3ViZUF4aXMsIEN1YmUgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gXCIuLi9kYXRhc291cmNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDdWJlSW5mbyB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUtaW5mby5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN1bVNldHRpbmdzIH0gZnJvbSBcIi4uLy4uL2N1YmUvbWF0cml4L3RhYmxlLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENPTUJJTkFUSU9OX1BJQ0tFUl9CT0RZID0gbmV3IEluamVjdGlvblRva2VuPENvbWJpbmF0aW9uQm9keURhdGE+KCdjb21iaW5hdGlvbl9ib2R5Jyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbWJpbmF0aW9uQm9keURhdGEge1xyXG4gIGN1YmU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIGxpbWl0OiBudW1iZXI7XHJcbiAgZGl2aWRlcjogc3RyaW5nO1xyXG4gIGRpc3BsYXlEaXZpZGVyOiBzdHJpbmc7XHJcbiAgZXhwbG9yZVNldHRpbmdzOiBFeHBsb3JlU2V0dGluZ3M7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwbG9yZVNldHRpbmdzIHtcclxuICBlbmFibGU/OiBib29sZWFuO1xyXG4gIC8qKiBjdWJlIHZpZXcgbmFtZSAqL1xyXG4gIHZpZXc/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdHM/OiB7XHJcbiAgICBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcik7XHJcbiAgfTtcclxuICBpbmRpY2VzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgLyoqIG9uZSBvciBtb3JlIGF4aXMgKi9cclxuICBmaWx0ZXJzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgeEF4aXM6IHN0cmluZztcclxuICBzZXJpZXM6IHN0cmluZztcclxuICBzdW0/OiBTdW1TZXR0aW5ncyB8IFN1bVNldHRpbmdzW10sXHJcbiAgLyoqICovXHJcbiAgYWdncmVnYXRlPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgc2VyaWVzVG90YWxMYWJlbD86IHN0cmluZztcclxuICB4QXhpc1RvdGFsTGFiZWw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE1vZGUgPSAnZmlsdGVyJyB8ICdyZXN1bHRzJztcclxuLyoqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWNvbWJpbmF0aW9uLXBpY2tlci1ib2R5JyxcclxuICB0ZW1wbGF0ZVVybDogJ2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydjb21iaW5hdGlvbi1waWNrZXItYm9keS5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbWJpbmF0aW9uUGlja2VyQm9keSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbWJpbmF0aW9uU2VsZWN0ZWRFdmVudD4oKTtcclxuICByZWFkb25seSBtb2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RlPigpO1xyXG4gIG1vZGU6IE1vZGU7XHJcbiAgQFZpZXdDaGlsZHJlbihNYXRTZWxlY3QpIGF4ZXM6IFF1ZXJ5TGlzdDxNYXRTZWxlY3Q+O1xyXG4gIHJlYWRvbmx5IF9leHBsb3JhYmxlOiBib29sZWFuO1xyXG4gIF93b3JraW5nID0gZmFsc2U7XHJcbiAgcmVhZG9ubHkgX2F4ZXM6IEN1YmVBeGlzW107XHJcbiAgcmVhZG9ubHkgX2Zvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgX2tleXM6IHsgW3R5cGU6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpW10gfSA9IHt9O1xyXG4gIHJlYWRvbmx5IF92YWx1ZXM6IHsgW3R5cGU6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB7IFtrZXk6IG51bWJlcl06IGFueSB9IH0gPSB7fTtcclxuICBfY29tYmluYXRpb25zOiBzdHJpbmdbXVtdO1xyXG4gIHByaXZhdGUgX2RhdGE6IENvbWJpbmF0aW9uQm9keURhdGE7XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBkaWFsb2dEYXRhOiBDb21iaW5hdGlvbkJvZHlEYXRhLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChDT01CSU5BVElPTl9QSUNLRVJfQk9EWSkgb3ZlcmxheURhdGE6IENvbWJpbmF0aW9uQm9keURhdGEsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9zbmFja2JhcjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRJbmZvOiBDdWJlSW5mbyxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogQ3ViZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuX2RhdGEgPSBvdmVybGF5RGF0YSB8fCBkaWFsb2dEYXRhO1xyXG4gICAgY29uc3QgeyBjdWJlLCBleHBsb3JlU2V0dGluZ3MgfSA9IHRoaXMuX2RhdGE7XHJcbiAgICB0aGlzLl9leHBsb3JhYmxlID0gZXhwbG9yZVNldHRpbmdzICE9PSB1bmRlZmluZWQ7XHJcbiAgICBpZiAoY3ViZSlcclxuICAgICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIGlmICghdGhpcy5fY3ViZSkgdGhyb3cgJ05vIGN1YmUnO1xyXG4gICAgdGhpcy5fYXhlcyA9IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiBhLmNvbWJpbmF0aW9uKTtcclxuICAgIGlmICghdGhpcy5fYXhlcy5sZW5ndGgpIHRocm93ICdObyBheGlzIHdpdGggY29tYmluYXRpb24nO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2F4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgICAgIHRoaXMuX2tleXNbYS5uYW1lXSA9IFtdO1xyXG4gICAgICB0aGlzLl9mb3JtLmFkZENvbnRyb2woYS5uYW1lLCBjb250cm9sKTtcclxuICAgICAgdGhpcy5fZHMubWFwKGEuZGF0YVR5cGUpLnN1YnNjcmliZShtID0+IHtcclxuICAgICAgICB0aGlzLl92YWx1ZXNbYS5kYXRhVHlwZV0gPSBtO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSB0aGlzLl9rZXlzW2EubmFtZV0gPSBPYmplY3Qua2V5cyhtKTtcclxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPT09IDEpIGNvbnRyb2wuc2V0VmFsdWUoa2V5c1swXSk7XHJcbiAgICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuX2RhdGEudmFsdWUgJiYgdGhpcy5fcGF0Y2hGb3JtKHRoaXMuX2RhdGEudmFsdWUpO1xyXG4gICAgdGhpcy5fc3dpdGNoTW9kZSgnZmlsdGVyJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcGF0Y2hGb3JtKGNvZGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgY29kZXMgPSBjb2RlLnNwbGl0KHRoaXMuX2RhdGEuZGl2aWRlciksXHJcbiAgICAgIHZhbHVlcyA9IHt9O1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKChhLCBpKSA9PiBjb2Rlc1tpXSAmJiAodmFsdWVzW2EubmFtZV0gPSBjb2Rlc1tpXSkpO1xyXG4gICAgdGhpcy5fZm9ybS5wYXRjaFZhbHVlKHZhbHVlcyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB2YWxcclxuICAgKi9cclxuICBfc3dpdGNoTW9kZSh2YWw6IE1vZGUpIHtcclxuICAgIHRoaXMubW9kZSA9IHZhbDtcclxuICAgIHRoaXMubW9kZUNoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHZhbCA9PT0gJ2ZpbHRlcicpIHRoaXMuYXhlcy5maXJzdC5mb2N1cygpO1xyXG4gICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9LCAwKVxyXG4gIH1cclxuICAvKipcclxuICAgKiBmaWx0ZXIgKi9cclxuICBfZmlsdGVyKCkge1xyXG4gICAgdGhpcy5fd29ya2luZyA9IHRydWU7XHJcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLl9mb3JtLnZhbHVlLCBhcmdzID0ge307XHJcbiAgICB0aGlzLl9heGVzLmZvckVhY2goYSA9PiB2YWx1ZXNbYS5uYW1lXSAmJiAoYXJnc1thLm5hbWVdID0gdmFsdWVzW2EubmFtZV0pKTtcclxuICAgIHRoaXMuX3NlcnZpY2UuY29tYmluYXRpb25zKHRoaXMuX2N1YmUubmFtZSwgYXJncywgeyB0YWtlOiB0aGlzLl9kYXRhLmxpbWl0LCBwcm9ncmVzczogZmFsc2UgfSkuXHJcbiAgICAgIHBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5fd29ya2luZyA9IGZhbHNlKSkuXHJcbiAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9jb21iaW5hdGlvbnMgPSByO1xyXG4gICAgICAgICAgdGhpcy5fc3dpdGNoTW9kZSgncmVzdWx0cycpO1xyXG4gICAgICAgICAgci5sZW5ndGggPT09IHRoaXMuX2RhdGEubGltaXQgJiYgdGhpcy5fc25hY2tiYXIudG9hc3QoJ1Rha2VNb3JlJyk7XHJcbiAgICAgICAgfSwgZXJyb3I6ICgpID0+IHRoaXMuX3NuYWNrYmFyLmVycm9yKClcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGl0ZW0gc2VsZWN0XHJcbiAgICogQHBhcmFtIGNvZGVcclxuICAgKi9cclxuICBfc2VsZWN0KGF4ZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX25hbWVPZihheGVzKSxcclxuICAgICAgdmFsdWUgPSB0aGlzLl9jb2RlT2YoYXhlcyk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHsgdmFsdWUsIGRlc2NyaXB0aW9uLCBheGVzIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gY29kZXNcclxuICAgKi9cclxuICBfY29kZU9mKGNvZGVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gY29kZXMuam9pbih0aGlzLl9kYXRhLmRpdmlkZXIpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiB0cmFuc2xhdGUgY29kZSBzZWdtZW50cyB0byBuYW1lc1xyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgX25hbWVPZihjb2Rlczogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F4ZXMubWFwKChhLCBpKSA9PiB0aGlzLl92YWx1ZXNbYS5kYXRhVHlwZV1bY29kZXNbaV1dIHx8IGNvZGVzW2ldKS5cclxuICAgICAgam9pbih0aGlzLl9kYXRhLmRpc3BsYXlEaXZpZGVyIHx8ICcgJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIG9wZW4gaW5mb1xyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqL1xyXG4gIF9pbmZvKGNvZGVzOiBzdHJpbmdbXSwgZXZ0OiBFdmVudCkge1xyXG4gICAgY29uc3QgeyBkZWZhdWx0cyB9ID0gdGhpcy5fZGF0YS5leHBsb3JlU2V0dGluZ3MgfHwge307XHJcbiAgICBjb25zdCBheGVzID0ge1xyXG4gICAgICAuLi5kZWZhdWx0c1xyXG4gICAgfTtcclxuICAgIGNvZGVzLnNsaWNlKDAsIHRoaXMuX2F4ZXMubGVuZ3RoKS5mb3JFYWNoKChhLCBpKSA9PiBheGVzW3RoaXMuX2F4ZXNbaV0ubmFtZV0gPSBhKTtcclxuXHJcbiAgICB0aGlzLl9hY2NvdW50SW5mby5wb3B1cChheGVzLCBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB7XHJcbiAgICAgIC4uLnRoaXMuX2RhdGEuZXhwbG9yZVNldHRpbmdzLFxyXG4gICAgICBjdWJlOiB0aGlzLl9jdWJlLm5hbWVcclxuICAgIH0pO1xyXG5cclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLm1vZGVDaGFuZ2UuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluYXRpb25TZWxlY3RlZEV2ZW50IHtcclxuICByZWFkb25seSB2YWx1ZTogc3RyaW5nOyByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nOyByZWFkb25seSBheGVzOiBzdHJpbmdbXTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYWNjb3VudC1waWNrZXItcG9wdXBcIiBjZGtUcmFwRm9jdXM+XG4gIEBzd2l0Y2ggKG1vZGUpIHtcbiAgICA8IS0tW0B0cmFuc2Zvcm1QYW5lbF09XCJlbnRlclwiLS0+XG4gICAgQGNhc2UgKCdmaWx0ZXInKSB7XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIFtzdHlsZS52aXNpYmlsaXR5XT1cIl93b3JraW5nID8gJ3Zpc2libGUnOidoaWRkZW4nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgPCEtLSBmaWx0ZXIgLS0+XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIl9mb3JtXCI+XG4gICAgICAgIEBmb3IgKGEgb2YgX2F4ZXM7IHRyYWNrIGE7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3thLnRpdGxlfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiYS5uYW1lXCI+XG4gICAgICAgICAgICAgIEBpZiAoX2tleXNbYS5uYW1lXS5sZW5ndGg+MSkge1xuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uPnt7J0FsbCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGZvciAoa2V5IG9mIF9rZXlzW2EubmFtZV07IHRyYWNrIGtleSkge1xuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJrZXlcIj57e192YWx1ZXNbYS5kYXRhVHlwZV1ba2V5XX19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICA8bWF0LWhpbnQ+e3tfZm9ybS5jb250cm9sc1thLm5hbWVdLnZhbHVlfX08L21hdC1oaW50PlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIH1cbiAgICAgIDwvZm9ybT5cbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJfZmlsdGVyKClcIiBbZGlzYWJsZWRdPVwiX3dvcmtpbmdcIiBbYml6ZG9jVG9vbHRpcF09XCInU2VhcmNoJ3x0cmFuc2xhdGVcIiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIiBbdGFiSW5kZXhdPVwiX2F4ZXMubGVuZ3RoXCI+XG4gICAgICAgICAgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIDwhLS0gcmVzdWx0cyAtLT5cbiAgICBAY2FzZSAoJ3Jlc3VsdHMnKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiX3N3aXRjaE1vZGUoJ2ZpbHRlcicpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0ZpbHRlcid8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmZpbHRlcl9saXN0PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG1hdC1hY3Rpb24tbGlzdD5cbiAgICAgICAgQGZvciAoY29kZXMgb2YgX2NvbWJpbmF0aW9uczsgdHJhY2sgY29kZXMpIHtcbiAgICAgICAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwiX3NlbGVjdChjb2RlcylcIj5cbiAgICAgICAgICAgIDxoMyBtYXRMaXN0SXRlbVRpdGxlPnt7X25hbWVPZihjb2Rlcyl9fTwvaDM+XG4gICAgICAgICAgICBAaWYgKF9leHBsb3JhYmxlKSB7XG4gICAgICAgICAgICAgIDxwIG1hdExpc3RJdGVtTGluZT48YSAoY2xpY2spPVwiX2luZm8oY29kZXMsICRldmVudClcIj57e19jb2RlT2YoY29kZXMpfX08L2E+PC9wPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtYWN0aW9uLWxpc3Q+XG4gICAgfVxuICB9XG48L2Rpdj5cbiJdfQ==
@@ -11,7 +11,7 @@ export class PopupComponent {
11
11
  ngOnInit() {
12
12
  const { component, data } = this._data;
13
13
  if (component instanceof TemplateRef)
14
- this._container.createEmbeddedView(component, { $implicit: data });
14
+ this._container.createEmbeddedView(component, data);
15
15
  else {
16
16
  const injector = Injector.create({ providers: [{ provide: POPUP_DATA, useValue: data }], parent: this._injector });
17
17
  const cRef = this._container.createComponent(component, { injector });
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
32
32
  type: ViewChild,
33
33
  args: ['container', { static: true, read: ViewContainerRef }]
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL3BvcHVwL3BvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9wb3B1cC9wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUk5SCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFZdEQsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBd0MsS0FBZ0IsRUFDOUMsSUFBbUIsRUFDbkIsU0FBbUI7UUFGVyxVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQzlDLFNBQUksR0FBSixJQUFJLENBQWU7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTtJQUFJLENBQUM7SUFFbEMsUUFBUTtRQUNOLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN2QyxJQUFJLFNBQVMsWUFBWSxXQUFXO1lBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDaEUsQ0FBQztZQUNKLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ25ILE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFFdEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZELENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OEdBbEJVLGNBQWMsa0JBR0wsVUFBVTtrR0FIbkIsY0FBYyx3SUFDb0IsZ0JBQWdCLDJDQ2pCL0QsNktBTUE7OzJGRFVhLGNBQWM7a0JBSjFCLFNBQVM7K0JBQ0UsY0FBYzs7MEJBTVgsTUFBTTsyQkFBQyxVQUFVO3VGQUZtQyxVQUFVO3NCQUExRSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIEluamVjdGlvblRva2VuLCBJbmplY3RvciwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgUG9wdXBSZWYgfSBmcm9tIFwiLi9wb3B1cC1yZWZcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBQT1BVUF9EQVRBID0gbmV3IEluamVjdGlvblRva2VuKCdwb3B1cCcpO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQb3B1cERhdGE8VCA9IGFueT4ge1xyXG4gIGRhdGE/OiBhbnk7XHJcbiAgY29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxhbnk+IHwgVGVtcGxhdGVSZWY8VD47XHJcbiAgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1wb3B1cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BvcHVwLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHtzdGF0aWM6IHRydWUsIHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSkgX2NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICBwcml2YXRlIF9pbnN0YW5jZTogYW55O1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoUE9QVVBfREFUQSkgcHJpdmF0ZSBfZGF0YTogUG9wdXBEYXRhLFxyXG4gICAgcHJpdmF0ZSBfcmVmOiBQb3B1cFJlZjxhbnk+LFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGNvbXBvbmVudCwgZGF0YSB9ID0gdGhpcy5fZGF0YTtcclxuICAgIGlmIChjb21wb25lbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZikgXHJcbiAgICAgIHRoaXMuX2NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcoY29tcG9uZW50LCB7ICRpbXBsaWNpdDogZGF0YSB9KTtcclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7IHByb3ZpZGVyczogW3sgcHJvdmlkZTogUE9QVVBfREFUQSwgdXNlVmFsdWU6IGRhdGEgfV0sIHBhcmVudDogdGhpcy5faW5qZWN0b3IgfSk7XHJcbiAgICAgIGNvbnN0IGNSZWYgPSB0aGlzLl9jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCwgeyBpbmplY3RvciB9KTtcclxuXHJcbiAgICAgIHRoaXMuX2luc3RhbmNlID0gdGhpcy5fcmVmLl9pbnN0YW5jZSA9IGNSZWYuaW5zdGFuY2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9yZWYuX29wZW5lZC5uZXh0KHRoaXMuX2luc3RhbmNlKTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJwb3B1cC1jb250ZW50XCI+XHJcbiAgPG5nLWNvbnRhaW5lciAjY29udGFpbmVyPjwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInRvb2x0aXAtY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cInRvb2x0aXBcIj48L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL3BvcHVwL3BvcHVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9wb3B1cC9wb3B1cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFVLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUk5SCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7QUFZdEQsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBd0MsS0FBZ0IsRUFDOUMsSUFBbUIsRUFDbkIsU0FBbUI7UUFGVyxVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQzlDLFNBQUksR0FBSixJQUFJLENBQWU7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBVTtJQUFJLENBQUM7SUFFbEMsUUFBUTtRQUNOLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN2QyxJQUFJLFNBQVMsWUFBWSxXQUFXO1lBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2pELENBQUM7WUFDSixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUNuSCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRXRFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQWxCVSxjQUFjLGtCQUdMLFVBQVU7a0dBSG5CLGNBQWMsd0lBQ29CLGdCQUFnQiwyQ0NqQi9ELDZLQU1BOzsyRkRVYSxjQUFjO2tCQUoxQixTQUFTOytCQUNFLGNBQWM7OzBCQU1YLE1BQU07MkJBQUMsVUFBVTt1RkFGbUMsVUFBVTtzQkFBMUUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IsIE9uSW5pdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7IFBvcHVwUmVmIH0gZnJvbSBcIi4vcG9wdXAtcmVmXCI7XHJcblxyXG5leHBvcnQgY29uc3QgUE9QVVBfREFUQSA9IG5ldyBJbmplY3Rpb25Ub2tlbigncG9wdXAnKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9wdXBEYXRhPFQgPSBhbnk+IHtcclxuICBkYXRhPzogYW55O1xyXG4gIGNvbXBvbmVudD86IENvbXBvbmVudFR5cGU8YW55PiB8IFRlbXBsYXRlUmVmPFQ+O1xyXG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtcG9wdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3B1cC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvcHVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7c3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIF9jb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgcHJpdmF0ZSBfaW5zdGFuY2U6IGFueTtcclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KFBPUFVQX0RBVEEpIHByaXZhdGUgX2RhdGE6IFBvcHVwRGF0YSxcclxuICAgIHByaXZhdGUgX3JlZjogUG9wdXBSZWY8YW55PixcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBjb21wb25lbnQsIGRhdGEgfSA9IHRoaXMuX2RhdGE7XHJcbiAgICBpZiAoY29tcG9uZW50IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIFxyXG4gICAgICB0aGlzLl9jb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KGNvbXBvbmVudCwgZGF0YSk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoeyBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFBPUFVQX0RBVEEsIHVzZVZhbHVlOiBkYXRhIH1dLCBwYXJlbnQ6IHRoaXMuX2luamVjdG9yIH0pO1xyXG4gICAgICBjb25zdCBjUmVmID0gdGhpcy5fY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIHsgaW5qZWN0b3IgfSk7XHJcblxyXG4gICAgICB0aGlzLl9pbnN0YW5jZSA9IHRoaXMuX3JlZi5faW5zdGFuY2UgPSBjUmVmLmluc3RhbmNlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcmVmLl9vcGVuZWQubmV4dCh0aGlzLl9pbnN0YW5jZSk7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8ZGl2IGNsYXNzPVwicG9wdXAtY29udGVudFwiPlxyXG4gIDxuZy1jb250YWluZXIgI2NvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0b29sdGlwXCI+PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=