fabrikantencore 2.8.9 → 2.9.2

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.
Files changed (21) hide show
  1. package/esm2022/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.mjs +1 -1
  2. package/esm2022/src/app/modules/fabrikantencore/components/fab-actionmenu/fab-actionmenu.component.mjs +6 -3
  3. package/esm2022/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.mjs +15 -12
  4. package/esm2022/src/app/modules/fabrikantencore/components/fab-filter-fold/fab-filter-fold.component.mjs +4 -5
  5. package/esm2022/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.mjs +10 -3
  6. package/esm2022/src/app/modules/fabrikantencore/components/fab-multiselect/fab-multiselect.component.mjs +5 -2
  7. package/esm2022/src/app/modules/fabrikantencore/components/fab-multiselect-fold/fab-multiselect-fold.component.mjs +4 -5
  8. package/esm2022/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.mjs +14 -11
  9. package/esm2022/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +38 -4
  10. package/esm2022/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +172 -1
  11. package/fesm2022/fabrikantencore.mjs +304 -85
  12. package/fesm2022/fabrikantencore.mjs.map +1 -1
  13. package/package.json +2 -2
  14. package/src/app/modules/fabrikantencore/components/fab-actionmenu/fab-actionmenu.component.d.ts +2 -1
  15. package/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.d.ts +3 -1
  16. package/src/app/modules/fabrikantencore/components/fab-filter-fold/fab-filter-fold.component.d.ts +0 -1
  17. package/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.d.ts +3 -0
  18. package/src/app/modules/fabrikantencore/components/fab-multiselect-fold/fab-multiselect-fold.component.d.ts +0 -1
  19. package/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.d.ts +3 -1
  20. package/src/app/modules/fabrikantencore/services/fabrikanten.service.d.ts +4 -2
  21. package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +53 -1
@@ -3,14 +3,16 @@ import { TranslationCategory, TranslationSubCategory } from '../../swagger/Swagg
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../services/fabrikanten.service";
5
5
  import * as i2 from "../../services/translate.service";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "@angular/material/legacy-form-field";
8
- import * as i5 from "@angular/material/legacy-input";
9
- import * as i6 from "@angular/forms";
10
- import * as i7 from "@angular/material/legacy-tooltip";
6
+ import * as i3 from "@angular/router";
7
+ import * as i4 from "@angular/common";
8
+ import * as i5 from "@angular/material/legacy-form-field";
9
+ import * as i6 from "@angular/material/legacy-input";
10
+ import * as i7 from "@angular/forms";
11
+ import * as i8 from "@angular/material/legacy-tooltip";
11
12
  class FabRangeInputComponent {
12
13
  FabrikantenService;
13
14
  TranslateService;
15
+ ActivatedRoute;
14
16
  ChangeDetectorRef;
15
17
  //@Input() rangeinput: FabrikantenRangeInputViewModel;
16
18
  _rangeinput;
@@ -31,9 +33,10 @@ class FabRangeInputComponent {
31
33
  return TranslationSubCategory;
32
34
  }
33
35
  //public tooltip: string = "";
34
- constructor(FabrikantenService, TranslateService, ChangeDetectorRef) {
36
+ constructor(FabrikantenService, TranslateService, ActivatedRoute, ChangeDetectorRef) {
35
37
  this.FabrikantenService = FabrikantenService;
36
38
  this.TranslateService = TranslateService;
39
+ this.ActivatedRoute = ActivatedRoute;
37
40
  this.ChangeDetectorRef = ChangeDetectorRef;
38
41
  }
39
42
  ngOnInit() {
@@ -51,7 +54,7 @@ class FabRangeInputComponent {
51
54
  }
52
55
  }
53
56
  if (process) {
54
- this.FabrikantenService.SetRangeInput(this._rangeinput.id, this.value, this.ChangeDetectorRef);
57
+ this.FabrikantenService.SetRangeInput(this._rangeinput.id, this.value, this.ChangeDetectorRef, this.ActivatedRoute);
55
58
  }
56
59
  }
57
60
  GetMin() {
@@ -86,14 +89,14 @@ class FabRangeInputComponent {
86
89
  return "";
87
90
  }
88
91
  }
89
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FabRangeInputComponent, deps: [{ token: i1.FabrikantenService }, { token: i2.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
90
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: FabRangeInputComponent, selector: "app-fab-range-input", inputs: { rangeinput: "rangeinput" }, ngImport: i0, template: "\r\n <mat-form-field appearance=\"fill\" class=\"fullwidth\">\r\n <mat-label>\r\n {{ TranslateService.GetActiveValue(TranslationCategory.RangeInput, TranslationSubCategory.Name, rangeinput.id) }}\r\n <span *ngIf=\"rangeinput.required\">*</span>\r\n </mat-label>\r\n <input *ngIf=\"GetMin() == -1 && GetMax() == -1\" matInput type=\"number\" matTooltipClass=\"filter-tooltip\" matTooltip=\"{{ GetToolTip() }}\" [(ngModel)]=\"value\" (change)=\"ProcessChange()\">\r\n <input *ngIf=\"GetMin() != -1 && GetMax() != -1\" matInput type=\"number\" matTooltipClass=\"filter-tooltip\" [min]=\"GetMin()\" [max]=\"GetMax()\" matTooltip=\"{{ GetToolTip() }}\" [(ngModel)]=\"value\" (change)=\"ProcessChange()\">\r\n <input *ngIf=\"GetMin() == -1 && GetMax() != -1\" matInput type=\"number\" matTooltipClass=\"filter-tooltip\" [max]=\"GetMax()\" matTooltip=\"{{ GetToolTip() }}\" [(ngModel)]=\"value\" (change)=\"ProcessChange()\">\r\n <input *ngIf=\"GetMin() != -1 && GetMax() == -1\" matInput type=\"number\" matTooltipClass=\"filter-tooltip\" [min]=\"GetMin()\" matTooltip=\"{{ GetToolTip() }}\" [(ngModel)]=\"value\" (change)=\"ProcessChange()\">\r\n <mat-error>{{ GetToolTip() }}</mat-error>\r\n </mat-form-field>\r\n\r\n", styles: [".fullwidth{width:100%}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.MatLegacyError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i6.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: i6.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i6.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
92
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FabRangeInputComponent, deps: [{ token: i1.FabrikantenService }, { token: i2.TranslateService }, { token: i3.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
93
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: FabRangeInputComponent, selector: "app-fab-range-input", inputs: { rangeinput: "rangeinput" }, ngImport: i0, template: "\r\n <mat-form-field appearance=\"fill\" class=\"fullwidth\">\r\n <mat-label>\r\n {{ TranslateService.GetActiveValue(TranslationCategory.RangeInput, TranslationSubCategory.Name, rangeinput.id) }}\r\n <span *ngIf=\"rangeinput.required\">*</span>\r\n </mat-label>\r\n <input *ngIf=\"GetMin() == -1 && GetMax() == -1\" matInput type=\"number\" matTooltipClass=\"filter-tooltip\" matTooltip=\"{{ GetToolTip() }}\" [(ngModel)]=\"value\" (change)=\"ProcessChange()\">\r\n <input *ngIf=\"GetMin() != -1 && GetMax() != -1\" matInput type=\"number\" matTooltipClass=\"filter-tooltip\" [min]=\"GetMin()\" [max]=\"GetMax()\" matTooltip=\"{{ GetToolTip() }}\" [(ngModel)]=\"value\" (change)=\"ProcessChange()\">\r\n <input *ngIf=\"GetMin() == -1 && GetMax() != -1\" matInput type=\"number\" matTooltipClass=\"filter-tooltip\" [max]=\"GetMax()\" matTooltip=\"{{ GetToolTip() }}\" [(ngModel)]=\"value\" (change)=\"ProcessChange()\">\r\n <input *ngIf=\"GetMin() != -1 && GetMax() == -1\" matInput type=\"number\" matTooltipClass=\"filter-tooltip\" [min]=\"GetMin()\" matTooltip=\"{{ GetToolTip() }}\" [(ngModel)]=\"value\" (change)=\"ProcessChange()\">\r\n <mat-error>{{ GetToolTip() }}</mat-error>\r\n </mat-form-field>\r\n\r\n", styles: [".fullwidth{width:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatLegacyError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i7.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: i7.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i7.MaxValidator, selector: "input[type=number][max][formControlName],input[type=number][max][formControl],input[type=number][max][ngModel]", inputs: ["max"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
91
94
  }
92
95
  export { FabRangeInputComponent };
93
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FabRangeInputComponent, decorators: [{
94
97
  type: Component,
95
98
  args: [{ selector: 'app-fab-range-input', template: "\r\n <mat-form-field appearance=\"fill\" class=\"fullwidth\">\r\n <mat-label>\r\n {{ TranslateService.GetActiveValue(TranslationCategory.RangeInput, TranslationSubCategory.Name, rangeinput.id) }}\r\n <span *ngIf=\"rangeinput.required\">*</span>\r\n </mat-label>\r\n <input *ngIf=\"GetMin() == -1 && GetMax() == -1\" matInput type=\"number\" matTooltipClass=\"filter-tooltip\" matTooltip=\"{{ GetToolTip() }}\" [(ngModel)]=\"value\" (change)=\"ProcessChange()\">\r\n <input *ngIf=\"GetMin() != -1 && GetMax() != -1\" matInput type=\"number\" matTooltipClass=\"filter-tooltip\" [min]=\"GetMin()\" [max]=\"GetMax()\" matTooltip=\"{{ GetToolTip() }}\" [(ngModel)]=\"value\" (change)=\"ProcessChange()\">\r\n <input *ngIf=\"GetMin() == -1 && GetMax() != -1\" matInput type=\"number\" matTooltipClass=\"filter-tooltip\" [max]=\"GetMax()\" matTooltip=\"{{ GetToolTip() }}\" [(ngModel)]=\"value\" (change)=\"ProcessChange()\">\r\n <input *ngIf=\"GetMin() != -1 && GetMax() == -1\" matInput type=\"number\" matTooltipClass=\"filter-tooltip\" [min]=\"GetMin()\" matTooltip=\"{{ GetToolTip() }}\" [(ngModel)]=\"value\" (change)=\"ProcessChange()\">\r\n <mat-error>{{ GetToolTip() }}</mat-error>\r\n </mat-form-field>\r\n\r\n", styles: [".fullwidth{width:100%}\n"] }]
96
- }], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.TranslateService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { rangeinput: [{
99
+ }], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.TranslateService }, { type: i3.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { rangeinput: [{
97
100
  type: Input
98
101
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXJhbmdlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcmFuZ2UtaW5wdXQvZmFiLXJhbmdlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcmFuZ2UtaW5wdXQvZmFiLXJhbmdlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUc1RSxPQUFPLEVBQWtDLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7OztBQUUxSCxNQUthLHNCQUFzQjtJQTZCYjtJQUNYO0lBQ0M7SUE3QlYsc0RBQXNEO0lBRXRELFdBQVcsQ0FBaUM7SUFDNUMsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxLQUFxQztRQUMzRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV6QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFTSxLQUFLLENBQVM7SUFFckIsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxDQUFDO0lB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LHNCQUFzQjsyRkFBdEIsc0JBQXNCLGlHQ1ZuQyxndUNBYUE7O1NESGEsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UscUJBQXFCO3dLQWFsQixVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFicmlrYW50ZW5SYW5nZUlucHV0Vmlld01vZGVsLCBUcmFuc2xhdGlvbkNhdGVnb3J5LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5IH0gZnJvbSAnLi4vLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZhYi1yYW5nZS1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhYi1yYW5nZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZmFiLXJhbmdlLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZhYlJhbmdlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvL0BJbnB1dCgpIHJhbmdlaW5wdXQ6IEZhYnJpa2FudGVuUmFuZ2VJbnB1dFZpZXdNb2RlbDtcclxuXHJcbiAgX3JhbmdlaW5wdXQ6IEZhYnJpa2FudGVuUmFuZ2VJbnB1dFZpZXdNb2RlbDtcclxuICBnZXQgcmFuZ2VpbnB1dCgpOiBGYWJyaWthbnRlblJhbmdlSW5wdXRWaWV3TW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlaW5wdXQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBzZXQgcmFuZ2VpbnB1dCh2YWx1ZTogRmFicmlrYW50ZW5SYW5nZUlucHV0Vmlld01vZGVsKSB7XHJcbiAgICB0aGlzLl9yYW5nZWlucHV0ID0gdmFsdWU7XHJcblxyXG4gICAgaWYgKHRoaXMuX3JhbmdlaW5wdXQudmFsdWUgIT0gXCJcIikge1xyXG4gICAgICB0aGlzLnZhbHVlID0gcGFyc2VJbnQodGhpcy5fcmFuZ2VpbnB1dC52YWx1ZSArIFwiXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHZhbHVlOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBnZXQgVHJhbnNsYXRpb25DYXRlZ29yeSgpIHtcclxuICAgIHJldHVybiBUcmFuc2xhdGlvbkNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5KCkge1xyXG4gICAgcmV0dXJuIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnk7XHJcbiAgfVxyXG5cclxuICAvL3B1YmxpYyB0b29sdGlwOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIEZhYnJpa2FudGVuU2VydmljZTogRmFicmlrYW50ZW5TZXJ2aWNlLFxyXG4gICAgcHVibGljIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBQcm9jZXNzQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdmFyIHByb2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIGlmICh0aGlzLl9yYW5nZWlucHV0LmluY2x1c2llZk1heGltdW0pIHtcclxuICAgICAgaWYgKHRoaXMudmFsdWUgPiB0aGlzLl9yYW5nZWlucHV0Lm1heGltdW0pIHtcclxuICAgICAgICBwcm9jZXNzID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fcmFuZ2VpbnB1dC5pbmNsdXNpZWZNaW5pbXVtKSB7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlIDwgdGhpcy5fcmFuZ2VpbnB1dC5taW5pbXVtKSB7XHJcbiAgICAgICAgcHJvY2VzcyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHByb2Nlc3MpIHtcclxuICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuU2V0UmFuZ2VJbnB1dCh0aGlzLl9yYW5nZWlucHV0LmlkLCB0aGlzLnZhbHVlLCB0aGlzLkNoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRNaW4oKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLl9yYW5nZWlucHV0LmluY2x1c2llZk1pbmltdW0pIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3JhbmdlaW5wdXQubWluaW11bTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gLTE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0TWF4KCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy5fcmFuZ2VpbnB1dC5pbmNsdXNpZWZNYXhpbXVtKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9yYW5nZWlucHV0Lm1heGltdW07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIC0xO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFRvb2xUaXAoKTogc3RyaW5nIHtcclxuICAgIHZhciB0b29sdGlwID0gdGhpcy5HZXRUcmFuc2xhdGVTdHJpbmcoKTtcclxuXHJcbiAgICB2YXIgdG9vbHRpcCA9IHRvb2x0aXAucmVwbGFjZShcInttaW59XCIsIHRoaXMuX3JhbmdlaW5wdXQubWluaW11bS50b1N0cmluZygpKTtcclxuICAgIHZhciB0b29sdGlwID0gdG9vbHRpcC5yZXBsYWNlKFwie21heH1cIiwgdGhpcy5fcmFuZ2VpbnB1dC5tYXhpbXVtLnRvU3RyaW5nKCkpO1xyXG5cclxuICAgIHJldHVybiB0b29sdGlwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBHZXRUcmFuc2xhdGVTdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5fcmFuZ2VpbnB1dC5pbmNsdXNpZWZNaW5pbXVtICYmIHRoaXMuX3JhbmdlaW5wdXQuaW5jbHVzaWVmTWF4aW11bSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LkluY2x1c2l2ZU1heCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLl9yYW5nZWlucHV0LmluY2x1c2llZk1pbmltdW0gJiYgIXRoaXMuX3JhbmdlaW5wdXQuaW5jbHVzaWVmTWF4aW11bSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LkluY2x1c2l2ZU1pbik7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLl9yYW5nZWlucHV0LmluY2x1c2llZk1pbmltdW0gJiYgdGhpcy5fcmFuZ2VpbnB1dC5pbmNsdXNpZWZNYXhpbXVtKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuSW5jbHVzaXZlTWluTWF4KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiXHJcbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJmdWxsd2lkdGhcIj5cclxuICAgIDxtYXQtbGFiZWw+XHJcbiAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5SYW5nZUlucHV0LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIHJhbmdlaW5wdXQuaWQpIH19XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwicmFuZ2VpbnB1dC5yZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICA8L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCAqbmdJZj1cIkdldE1pbigpID09IC0xICYmIEdldE1heCgpID09IC0xXCIgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIG1hdFRvb2x0aXBDbGFzcz1cImZpbHRlci10b29sdGlwXCIgbWF0VG9vbHRpcD1cInt7IEdldFRvb2xUaXAoKSB9fVwiIFsobmdNb2RlbCldPVwidmFsdWVcIiAoY2hhbmdlKT1cIlByb2Nlc3NDaGFuZ2UoKVwiPlxyXG4gICAgPGlucHV0ICpuZ0lmPVwiR2V0TWluKCkgIT0gLTEgJiYgR2V0TWF4KCkgIT0gLTFcIiBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgbWF0VG9vbHRpcENsYXNzPVwiZmlsdGVyLXRvb2x0aXBcIiBbbWluXT1cIkdldE1pbigpXCIgW21heF09XCJHZXRNYXgoKVwiIG1hdFRvb2x0aXA9XCJ7eyBHZXRUb29sVGlwKCkgfX1cIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKGNoYW5nZSk9XCJQcm9jZXNzQ2hhbmdlKClcIj5cclxuICAgIDxpbnB1dCAqbmdJZj1cIkdldE1pbigpID09IC0xICYmIEdldE1heCgpICE9IC0xXCIgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIG1hdFRvb2x0aXBDbGFzcz1cImZpbHRlci10b29sdGlwXCIgW21heF09XCJHZXRNYXgoKVwiIG1hdFRvb2x0aXA9XCJ7eyBHZXRUb29sVGlwKCkgfX1cIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKGNoYW5nZSk9XCJQcm9jZXNzQ2hhbmdlKClcIj5cclxuICAgIDxpbnB1dCAqbmdJZj1cIkdldE1pbigpICE9IC0xICYmIEdldE1heCgpID09IC0xXCIgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIG1hdFRvb2x0aXBDbGFzcz1cImZpbHRlci10b29sdGlwXCIgW21pbl09XCJHZXRNaW4oKVwiIG1hdFRvb2x0aXA9XCJ7eyBHZXRUb29sVGlwKCkgfX1cIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKGNoYW5nZSk9XCJQcm9jZXNzQ2hhbmdlKClcIj5cclxuICAgIDxtYXQtZXJyb3I+e3sgR2V0VG9vbFRpcCgpIH19PC9tYXQtZXJyb3I+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFiLXJhbmdlLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcmFuZ2UtaW5wdXQvZmFiLXJhbmdlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvY29tcG9uZW50cy9mYWItcmFuZ2UtaW5wdXQvZmFiLXJhbmdlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUk1RSxPQUFPLEVBQWtDLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7QUFFMUgsTUFLYSxzQkFBc0I7SUE2QmI7SUFDWDtJQUNBO0lBQ0M7SUE5QlYsc0RBQXNEO0lBRXRELFdBQVcsQ0FBaUM7SUFDNUMsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxLQUFxQztRQUMzRCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV6QixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNwRDtJQUNILENBQUM7SUFFTSxLQUFLLENBQVM7SUFFckIsSUFBVyxtQkFBbUI7UUFDNUIsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxzQkFBc0IsQ0FBQztJQUNoQyxD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QUFlLENBQUMsQ0FBQztTQUNqSDthQUNJO1lBQ0gsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7dUdBaEdVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLGlHQ1huQyxndUNBYUE7O1NERmEsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UscUJBQXFCO3FNQWFsQixVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mYWJyaWthbnRlbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGYWJyaWthbnRlblJhbmdlSW5wdXRWaWV3TW9kZWwsIFRyYW5zbGF0aW9uQ2F0ZWdvcnksIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkgfSBmcm9tICcuLi8uLi9zd2FnZ2VyL1N3YWdnZXJDbGllbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZmFiLXJhbmdlLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmFiLXJhbmdlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mYWItcmFuZ2UtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmFiUmFuZ2VJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vQElucHV0KCkgcmFuZ2VpbnB1dDogRmFicmlrYW50ZW5SYW5nZUlucHV0Vmlld01vZGVsO1xyXG5cclxuICBfcmFuZ2VpbnB1dDogRmFicmlrYW50ZW5SYW5nZUlucHV0Vmlld01vZGVsO1xyXG4gIGdldCByYW5nZWlucHV0KCk6IEZhYnJpa2FudGVuUmFuZ2VJbnB1dFZpZXdNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2VpbnB1dDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCByYW5nZWlucHV0KHZhbHVlOiBGYWJyaWthbnRlblJhbmdlSW5wdXRWaWV3TW9kZWwpIHtcclxuICAgIHRoaXMuX3JhbmdlaW5wdXQgPSB2YWx1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5fcmFuZ2VpbnB1dC52YWx1ZSAhPSBcIlwiKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBwYXJzZUludCh0aGlzLl9yYW5nZWlucHV0LnZhbHVlICsgXCJcIik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdmFsdWU6IG51bWJlcjtcclxuXHJcbiAgcHVibGljIGdldCBUcmFuc2xhdGlvbkNhdGVnb3J5KCkge1xyXG4gICAgcmV0dXJuIFRyYW5zbGF0aW9uQ2F0ZWdvcnk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkoKSB7XHJcbiAgICByZXR1cm4gVHJhbnNsYXRpb25TdWJDYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIC8vcHVibGljIHRvb2x0aXA6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgRmFicmlrYW50ZW5TZXJ2aWNlOiBGYWJyaWthbnRlblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgVHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHB1YmxpYyBBY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBQcm9jZXNzQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdmFyIHByb2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIGlmICh0aGlzLl9yYW5nZWlucHV0LmluY2x1c2llZk1heGltdW0pIHtcclxuICAgICAgaWYgKHRoaXMudmFsdWUgPiB0aGlzLl9yYW5nZWlucHV0Lm1heGltdW0pIHtcclxuICAgICAgICBwcm9jZXNzID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fcmFuZ2VpbnB1dC5pbmNsdXNpZWZNaW5pbXVtKSB7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlIDwgdGhpcy5fcmFuZ2VpbnB1dC5taW5pbXVtKSB7XHJcbiAgICAgICAgcHJvY2VzcyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHByb2Nlc3MpIHtcclxuICAgICAgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuU2V0UmFuZ2VJbnB1dCh0aGlzLl9yYW5nZWlucHV0LmlkLCB0aGlzLnZhbHVlLCB0aGlzLkNoYW5nZURldGVjdG9yUmVmLCB0aGlzLkFjdGl2YXRlZFJvdXRlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRNaW4oKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLl9yYW5nZWlucHV0LmluY2x1c2llZk1pbmltdW0pIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3JhbmdlaW5wdXQubWluaW11bTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gLTE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0TWF4KCk6IG51bWJlciB7XHJcbiAgICBpZiAodGhpcy5fcmFuZ2VpbnB1dC5pbmNsdXNpZWZNYXhpbXVtKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9yYW5nZWlucHV0Lm1heGltdW07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIC0xO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFRvb2xUaXAoKTogc3RyaW5nIHtcclxuICAgIHZhciB0b29sdGlwID0gdGhpcy5HZXRUcmFuc2xhdGVTdHJpbmcoKTtcclxuXHJcbiAgICB2YXIgdG9vbHRpcCA9IHRvb2x0aXAucmVwbGFjZShcInttaW59XCIsIHRoaXMuX3JhbmdlaW5wdXQubWluaW11bS50b1N0cmluZygpKTtcclxuICAgIHZhciB0b29sdGlwID0gdG9vbHRpcC5yZXBsYWNlKFwie21heH1cIiwgdGhpcy5fcmFuZ2VpbnB1dC5tYXhpbXVtLnRvU3RyaW5nKCkpO1xyXG5cclxuICAgIHJldHVybiB0b29sdGlwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBHZXRUcmFuc2xhdGVTdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5fcmFuZ2VpbnB1dC5pbmNsdXNpZWZNaW5pbXVtICYmIHRoaXMuX3JhbmdlaW5wdXQuaW5jbHVzaWVmTWF4aW11bSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LkluY2x1c2l2ZU1heCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLl9yYW5nZWlucHV0LmluY2x1c2llZk1pbmltdW0gJiYgIXRoaXMuX3JhbmdlaW5wdXQuaW5jbHVzaWVmTWF4aW11bSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlKFRyYW5zbGF0aW9uQ2F0ZWdvcnkuQ29tbW9uLCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5LkluY2x1c2l2ZU1pbik7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLl9yYW5nZWlucHV0LmluY2x1c2llZk1pbmltdW0gJiYgdGhpcy5fcmFuZ2VpbnB1dC5pbmNsdXNpZWZNYXhpbXVtKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5Db21tb24sIFRyYW5zbGF0aW9uU3ViQ2F0ZWdvcnkuSW5jbHVzaXZlTWluTWF4KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiXHJcbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJmdWxsd2lkdGhcIj5cclxuICAgIDxtYXQtbGFiZWw+XHJcbiAgICAgIHt7IFRyYW5zbGF0ZVNlcnZpY2UuR2V0QWN0aXZlVmFsdWUoVHJhbnNsYXRpb25DYXRlZ29yeS5SYW5nZUlucHV0LCBUcmFuc2xhdGlvblN1YkNhdGVnb3J5Lk5hbWUsIHJhbmdlaW5wdXQuaWQpIH19XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwicmFuZ2VpbnB1dC5yZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICA8L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCAqbmdJZj1cIkdldE1pbigpID09IC0xICYmIEdldE1heCgpID09IC0xXCIgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIG1hdFRvb2x0aXBDbGFzcz1cImZpbHRlci10b29sdGlwXCIgbWF0VG9vbHRpcD1cInt7IEdldFRvb2xUaXAoKSB9fVwiIFsobmdNb2RlbCldPVwidmFsdWVcIiAoY2hhbmdlKT1cIlByb2Nlc3NDaGFuZ2UoKVwiPlxyXG4gICAgPGlucHV0ICpuZ0lmPVwiR2V0TWluKCkgIT0gLTEgJiYgR2V0TWF4KCkgIT0gLTFcIiBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgbWF0VG9vbHRpcENsYXNzPVwiZmlsdGVyLXRvb2x0aXBcIiBbbWluXT1cIkdldE1pbigpXCIgW21heF09XCJHZXRNYXgoKVwiIG1hdFRvb2x0aXA9XCJ7eyBHZXRUb29sVGlwKCkgfX1cIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKGNoYW5nZSk9XCJQcm9jZXNzQ2hhbmdlKClcIj5cclxuICAgIDxpbnB1dCAqbmdJZj1cIkdldE1pbigpID09IC0xICYmIEdldE1heCgpICE9IC0xXCIgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIG1hdFRvb2x0aXBDbGFzcz1cImZpbHRlci10b29sdGlwXCIgW21heF09XCJHZXRNYXgoKVwiIG1hdFRvb2x0aXA9XCJ7eyBHZXRUb29sVGlwKCkgfX1cIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKGNoYW5nZSk9XCJQcm9jZXNzQ2hhbmdlKClcIj5cclxuICAgIDxpbnB1dCAqbmdJZj1cIkdldE1pbigpICE9IC0xICYmIEdldE1heCgpID09IC0xXCIgbWF0SW5wdXQgdHlwZT1cIm51bWJlclwiIG1hdFRvb2x0aXBDbGFzcz1cImZpbHRlci10b29sdGlwXCIgW21pbl09XCJHZXRNaW4oKVwiIG1hdFRvb2x0aXA9XCJ7eyBHZXRUb29sVGlwKCkgfX1cIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKGNoYW5nZSk9XCJQcm9jZXNzQ2hhbmdlKClcIj5cclxuICAgIDxtYXQtZXJyb3I+e3sgR2V0VG9vbFRpcCgpIH19PC9tYXQtZXJyb3I+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiJdfQ==