@vendure/admin-ui 2.0.7 → 2.0.8

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 (27) hide show
  1. package/catalog/components/product-variant-list/product-variant-list-bulk-actions.d.ts +1 -2
  2. package/core/common/version.d.ts +1 -1
  3. package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +2 -1
  4. package/core/shared/components/asset-preview/asset-preview.component.d.ts +9 -1
  5. package/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.d.ts +2 -0
  6. package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +1 -1
  7. package/esm2022/catalog/components/asset-list/asset-list.component.mjs +1 -1
  8. package/esm2022/catalog/components/assets/assets.component.mjs +2 -2
  9. package/esm2022/catalog/components/product-variant-list/product-variant-list-bulk-actions.mjs +1 -1
  10. package/esm2022/core/common/utilities/custom-field-default-value.mjs +3 -3
  11. package/esm2022/core/common/version.mjs +2 -2
  12. package/esm2022/core/components/base-nav/base-nav.component.mjs +1 -1
  13. package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +1 -1
  14. package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +8 -5
  15. package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +3 -3
  16. package/esm2022/core/shared/components/asset-preview/asset-preview.component.mjs +36 -3
  17. package/esm2022/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.mjs +4 -3
  18. package/esm2022/settings/components/tax-category-list/tax-category-list-bulk-actions.mjs +1 -1
  19. package/esm2022/settings/settings.module.mjs +1 -1
  20. package/esm2022/system/components/job-state-label/job-state-label.component.mjs +1 -1
  21. package/fesm2022/vendure-admin-ui-catalog.mjs +3 -3
  22. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  23. package/fesm2022/vendure-admin-ui-core.mjs +49 -12
  24. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  25. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  26. package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
  27. package/package.json +2 -2
@@ -47,6 +47,10 @@ export class AssetPreviewComponent {
47
47
  this.height = 0;
48
48
  this.centered = true;
49
49
  this.settingFocalPoint = false;
50
+ this.previewAssetIndex = 0;
51
+ this.disableNextButton = false;
52
+ this.disablePreviousButton = false;
53
+ this.showSlideButtons = false;
50
54
  }
51
55
  get fpx() {
52
56
  return this.asset.focalPoint ? this.asset.focalPoint.x : null;
@@ -56,6 +60,15 @@ export class AssetPreviewComponent {
56
60
  }
57
61
  ngOnInit() {
58
62
  const { focalPoint } = this.asset;
63
+ if (this.assets?.length) {
64
+ this.showSlideButtons = true;
65
+ this.previewAssetIndex = this.assets.findIndex(asset => asset.id === this.asset.id) || 0;
66
+ }
67
+ else {
68
+ this.showSlideButtons = false;
69
+ this.updateButtonAccessibility();
70
+ }
71
+ this.updateButtonAccessibility();
59
72
  this.form.get('name')?.setValue(this.asset.name);
60
73
  this.form.get('tags')?.setValue(this.asset.tags?.map(t => t.value));
61
74
  this.subscription = this.form.valueChanges.subscribe(value => {
@@ -168,14 +181,34 @@ export class AssetPreviewComponent {
168
181
  }
169
182
  });
170
183
  }
184
+ nextImage() {
185
+ this.previewAssetIndex = this.previewAssetIndex + 1;
186
+ if (Array.isArray(this.assets)) {
187
+ this.asset = this.assets[this.previewAssetIndex];
188
+ this.updateButtonAccessibility();
189
+ }
190
+ }
191
+ previousImage() {
192
+ this.previewAssetIndex = this.previewAssetIndex - 1;
193
+ if (Array.isArray(this.assets)) {
194
+ this.asset = this.assets[this.previewAssetIndex];
195
+ this.updateButtonAccessibility();
196
+ }
197
+ }
198
+ updateButtonAccessibility() {
199
+ this.disableNextButton = this.assets?.[this.previewAssetIndex + 1]?.id ? false : true;
200
+ this.disablePreviousButton = this.assets?.[this.previewAssetIndex - 1]?.id ? false : true;
201
+ }
171
202
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: AssetPreviewComponent, deps: [{ token: i1.FormBuilder }, { token: i2.DataService }, { token: i3.NotificationService }, { token: i0.ChangeDetectorRef }, { token: i4.ModalService }], target: i0.ɵɵFactoryTarget.Component }); }
172
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: AssetPreviewComponent, selector: "vdr-asset-preview", inputs: { asset: "asset", editable: "editable", customFields: "customFields", customFieldsForm: "customFieldsForm" }, outputs: { assetChange: "assetChange", editClick: "editClick" }, viewQueries: [{ propertyName: "imageElementRef", first: true, predicate: ["imageElement"], descendants: true, static: true }, { propertyName: "previewDivRef", first: true, predicate: ["previewDiv"], descendants: true, static: true }], ngImport: i0, template: "<vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card>\r\n <div *ngIf=\"!editable\" class=\"mb-2\">\r\n <a\r\n class=\"button-ghost\"\r\n [routerLink]=\"['/catalog', 'assets', asset.id]\"\r\n (click)=\"editClick.emit()\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </div>\r\n <vdr-form-field *ngIf=\"editable\" [label]=\"'common.name' | translate\" class=\"mb-2\">\r\n <input\r\n type=\"text\"\r\n [formControl]=\"form.get('name')\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission) || settingFocalPoint\"\r\n />\r\n </vdr-form-field>\r\n <vdr-labeled-data [label]=\"'common.name' | translate\" *ngIf=\"!editable\">\r\n <span class=\"elide\">\r\n {{ asset.name }}\r\n </span>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'asset.source-file' | translate\">\r\n <a [href]=\"asset.source\" [title]=\"asset.source\" target=\"_blank\" class=\"elide source-link\">{{\r\n getSourceFileName()\r\n }}</a>\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.original-asset-size' | translate\">\r\n {{ asset.fileSize | filesize }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.dimensions' | translate\">\r\n {{ asset.width }} x {{ asset.height }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.focal-point' | translate\">\r\n <span *ngIf=\"fpx\"\r\n ><clr-icon shape=\"crosshairs\"></clr-icon> x: {{ fpx | number : '1.2-2' }}, y:\r\n {{ fpy | number : '1.2-2' }}</span\r\n >\r\n <span *ngIf=\"!fpx\">{{ 'common.not-set' | translate }}</span>\r\n <div class=\"flex mt-1\">\r\n <button\r\n class=\"button-small mr-1\"\r\n [disabled]=\"settingFocalPoint\"\r\n (click)=\"setFocalPointStart()\"\r\n >\r\n <ng-container *ngIf=\"!fpx\">{{ 'asset.set-focal-point' | translate }}</ng-container>\r\n <ng-container *ngIf=\"fpx\">{{ 'asset.update-focal-point' | translate }}</ng-container>\r\n </button>\r\n <button\r\n class=\"button-small\"\r\n [disabled]=\"settingFocalPoint\"\r\n *ngIf=\"!!fpx\"\r\n (click)=\"removeFocalPoint()\"\r\n >\r\n {{ 'asset.unset-focal-point' | translate }}\r\n </button>\r\n </div>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.tags' | translate\">\r\n <ng-container *ngIf=\"editable\">\r\n <vdr-tag-selector [formControl]=\"form.get('tags')\"></vdr-tag-selector>\r\n <button class=\"button-small mt-1\" (click)=\"manageTags()\">\r\n <clr-icon shape=\"tags\"></clr-icon>\r\n {{ 'common.manage-tags' | translate }}\r\n </button>\r\n </ng-container>\r\n <div *ngIf=\"!editable\">\r\n <vdr-chip *ngFor=\"let tag of asset.tags\" [colorFrom]=\"tag.value\">\r\n <clr-icon shape=\"tag\" class=\"mr2\"></clr-icon>\r\n {{ tag.value }}</vdr-chip\r\n >\r\n </div>\r\n </vdr-labeled-data>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"customFields.length\" [title]=\"'common.custom-fields' | translate\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Asset\"\r\n [compact]=\"true\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"customFieldsForm\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-card [title]=\"'asset.preview' | translate\">\r\n <vdr-form-field>\r\n <select name=\"options\" [(ngModel)]=\"size\" [disabled]=\"settingFocalPoint\">\r\n <option value=\"tiny\">tiny</option>\r\n <option value=\"thumb\">thumb</option>\r\n <option value=\"small\">small</option>\r\n <option value=\"medium\">medium</option>\r\n <option value=\"large\">large</option>\r\n <option value=\"\">full size</option>\r\n </select>\r\n </vdr-form-field>\r\n <div class=\"asset-detail\">{{ width }} x {{ height }}</div>\r\n <vdr-asset-preview-links [asset]=\"asset\"></vdr-asset-preview-links>\r\n </vdr-card>\r\n <vdr-card>\r\n <vdr-page-entity-info *ngIf=\"asset as entity\" [entity]=\"entity\"></vdr-page-entity-info>\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <div class=\"preview-image\" #previewDiv [class.centered]=\"centered\">\r\n <div class=\"image-wrapper\">\r\n <vdr-focal-point-control\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n [fpx]=\"fpx\"\r\n [fpy]=\"fpy\"\r\n [editable]=\"settingFocalPoint\"\r\n (focalPointChange)=\"onFocalPointChange($event)\"\r\n >\r\n <img\r\n class=\"asset-image\"\r\n [src]=\"asset | assetPreview : size\"\r\n [ngClass]=\"size\"\r\n #imageElement\r\n (load)=\"onImageLoad()\"\r\n />\r\n </vdr-focal-point-control>\r\n <div class=\"focal-point-info\" *ngIf=\"settingFocalPoint\">\r\n <button class=\"icon-button\" (click)=\"setFocalPointCancel()\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <button\r\n class=\"btn btn-primary btn-sm\"\r\n (click)=\"setFocalPointEnd()\"\r\n [disabled]=\"!lastFocalPoint\"\r\n >\r\n <clr-icon shape=\"crosshairs\"></clr-icon>\r\n {{ 'asset.set-focal-point' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</vdr-page-detail-layout>\r\n", styles: [":host{height:100%}.preview-image{width:100%;max-width:800px;height:100%;min-height:60vh;overflow:auto;text-align:center;box-shadow:inset 0 0 5px #0000001a;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACuoAAArqAVDM774AAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAK0lEQVQ4T2P4jwP8xgFGNSADqDwGIF0DlMYAUH0YYFQDMoDKYwASNfz/DwB/JvcficphowAAAABJRU5ErkJggg==);margin-top:var(--space-unit);flex:1}.preview-image.centered{display:flex;align-items:center;justify-content:center}.preview-image vdr-focal-point-control{position:relative;box-shadow:0 0 10px -3px #00000026}.preview-image .image-wrapper{position:relative}.preview-image .asset-image{width:100%}.preview-image .asset-image.tiny{max-width:50px;max-height:50px}.preview-image .asset-image.thumb{max-width:150px;max-height:150px}.preview-image .asset-image.small{max-width:300px;max-height:300px}.preview-image .asset-image.medium{max-width:500px;max-height:500px}.preview-image .asset-image.large{max-width:800px;max-height:800px}.preview-image .focal-point-info{position:absolute;display:flex;right:0}.controls{display:flex;flex-direction:column;margin-left:12px;min-width:15vw;max-width:25vw;transition:opacity .3s}.controls.fade{opacity:.5}.controls .name-input{margin-bottom:24px}.controls ::ng-deep .clr-control-container{width:100%}.controls ::ng-deep .clr-control-container .clr-input{width:100%}.controls .elide{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.controls .source-link{direction:rtl}.controls .preview-select{display:flex;align-items:center}.controls .preview-select clr-select-container{margin-right:12px}\n"], dependencies: [{ kind: "directive", type: i5.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i8.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i9.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: i10.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: i11.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "component", type: i12.FocalPointControlComponent, selector: "vdr-focal-point-control", inputs: ["visible", "editable", "width", "height", "fpx", "fpy"], outputs: ["focalPointChange"] }, { kind: "component", type: i13.TagSelectorComponent, selector: "vdr-tag-selector", inputs: ["placeholder"] }, { kind: "component", type: i14.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }, { kind: "component", type: i15.AssetPreviewLinksComponent, selector: "vdr-asset-preview-links", inputs: ["asset"] }, { kind: "component", type: i16.PageEntityInfoComponent, selector: "vdr-page-entity-info", inputs: ["entity"] }, { kind: "component", type: i17.PageDetailLayoutComponent, selector: "vdr-page-detail-layout" }, { kind: "component", type: i18.PageDetailSidebarComponent, selector: "vdr-page-detail-sidebar" }, { kind: "component", type: i19.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "pipe", type: i6.DecimalPipe, name: "number" }, { kind: "pipe", type: i20.TranslatePipe, name: "translate" }, { kind: "pipe", type: i21.FileSizePipe, name: "filesize" }, { kind: "pipe", type: i22.HasPermissionPipe, name: "hasPermission" }, { kind: "pipe", type: i23.AssetPreviewPipe, name: "assetPreview" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
203
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: AssetPreviewComponent, selector: "vdr-asset-preview", inputs: { asset: "asset", assets: "assets", editable: "editable", customFields: "customFields", customFieldsForm: "customFieldsForm" }, outputs: { assetChange: "assetChange", editClick: "editClick" }, viewQueries: [{ propertyName: "imageElementRef", first: true, predicate: ["imageElement"], descendants: true, static: true }, { propertyName: "previewDivRef", first: true, predicate: ["previewDiv"], descendants: true, static: true }], ngImport: i0, template: "<vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card>\r\n <div *ngIf=\"!editable\" class=\"mb-2\">\r\n <a\r\n class=\"button-ghost\"\r\n [routerLink]=\"['/catalog', 'assets', asset.id]\"\r\n (click)=\"editClick.emit()\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </div>\r\n <vdr-form-field *ngIf=\"editable\" [label]=\"'common.name' | translate\" class=\"mb-2\">\r\n <input\r\n type=\"text\"\r\n [formControl]=\"form.get('name')\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission) || settingFocalPoint\"\r\n />\r\n </vdr-form-field>\r\n <vdr-labeled-data [label]=\"'common.name' | translate\" *ngIf=\"!editable\">\r\n <span class=\"elide\">\r\n {{ asset.name }}\r\n </span>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'asset.source-file' | translate\">\r\n <a [href]=\"asset.source\" [title]=\"asset.source\" target=\"_blank\" class=\"elide source-link\">{{\r\n getSourceFileName()\r\n }}</a>\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.original-asset-size' | translate\">\r\n {{ asset.fileSize | filesize }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.dimensions' | translate\">\r\n {{ asset.width }} x {{ asset.height }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.focal-point' | translate\">\r\n <span *ngIf=\"fpx\"\r\n ><clr-icon shape=\"crosshairs\"></clr-icon> x: {{ fpx | number : '1.2-2' }}, y:\r\n {{ fpy | number : '1.2-2' }}</span\r\n >\r\n <span *ngIf=\"!fpx\">{{ 'common.not-set' | translate }}</span>\r\n <div class=\"flex mt-1\">\r\n <button\r\n class=\"button-small mr-1\"\r\n [disabled]=\"settingFocalPoint\"\r\n (click)=\"setFocalPointStart()\"\r\n >\r\n <ng-container *ngIf=\"!fpx\">{{ 'asset.set-focal-point' | translate }}</ng-container>\r\n <ng-container *ngIf=\"fpx\">{{ 'asset.update-focal-point' | translate }}</ng-container>\r\n </button>\r\n <button\r\n class=\"button-small\"\r\n [disabled]=\"settingFocalPoint\"\r\n *ngIf=\"!!fpx\"\r\n (click)=\"removeFocalPoint()\"\r\n >\r\n {{ 'asset.unset-focal-point' | translate }}\r\n </button>\r\n </div>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.tags' | translate\">\r\n <ng-container *ngIf=\"editable\">\r\n <vdr-tag-selector [formControl]=\"form.get('tags')\"></vdr-tag-selector>\r\n <button class=\"button-small mt-1\" (click)=\"manageTags()\">\r\n <clr-icon shape=\"tags\"></clr-icon>\r\n {{ 'common.manage-tags' | translate }}\r\n </button>\r\n </ng-container>\r\n <div *ngIf=\"!editable\">\r\n <vdr-chip *ngFor=\"let tag of asset.tags\" [colorFrom]=\"tag.value\">\r\n <clr-icon shape=\"tag\" class=\"mr2\"></clr-icon>\r\n {{ tag.value }}</vdr-chip\r\n >\r\n </div>\r\n </vdr-labeled-data>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"customFields.length\" [title]=\"'common.custom-fields' | translate\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Asset\"\r\n [compact]=\"true\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"customFieldsForm\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-card [title]=\"'asset.preview' | translate\">\r\n <vdr-form-field>\r\n <select name=\"options\" [(ngModel)]=\"size\" [disabled]=\"settingFocalPoint\">\r\n <option value=\"tiny\">tiny</option>\r\n <option value=\"thumb\">thumb</option>\r\n <option value=\"small\">small</option>\r\n <option value=\"medium\">medium</option>\r\n <option value=\"large\">large</option>\r\n <option value=\"\">full size</option>\r\n </select>\r\n </vdr-form-field>\r\n <div class=\"asset-detail\">{{ width }} x {{ height }}</div>\r\n <vdr-asset-preview-links [asset]=\"asset\"></vdr-asset-preview-links>\r\n </vdr-card>\r\n <vdr-card>\r\n <vdr-page-entity-info *ngIf=\"asset as entity\" [entity]=\"entity\"></vdr-page-entity-info>\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <div class=\"carousel-container\">\r\n <button *ngIf=\"showSlideButtons\" (click)=\"previousImage()\" [class.disabled]=\"disablePreviousButton\"><clr-icon shape=\"caret left\" class=\"color-weight-800\"></clr-icon\r\n ></button>\r\n <div class=\"preview-image\" #previewDiv [class.centered]=\"centered\">\r\n <div class=\"image-wrapper\">\r\n <vdr-focal-point-control\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n [fpx]=\"fpx\"\r\n [fpy]=\"fpy\"\r\n [editable]=\"settingFocalPoint\"\r\n (focalPointChange)=\"onFocalPointChange($event)\"\r\n >\r\n <img\r\n class=\"asset-image\"\r\n [src]=\"asset | assetPreview : size\"\r\n [ngClass]=\"size\"\r\n #imageElement\r\n (load)=\"onImageLoad()\"\r\n />\r\n </vdr-focal-point-control>\r\n <div class=\"focal-point-info\" *ngIf=\"settingFocalPoint\">\r\n <button class=\"icon-button\" (click)=\"setFocalPointCancel()\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <button\r\n class=\"btn btn-primary btn-sm\"\r\n (click)=\"setFocalPointEnd()\"\r\n [disabled]=\"!lastFocalPoint\"\r\n >\r\n <clr-icon shape=\"crosshairs\"></clr-icon>\r\n {{ 'asset.set-focal-point' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <button *ngIf=\"showSlideButtons\" (click)=\"nextImage()\" [class.disabled]=\"disableNextButton\"><clr-icon shape=\"caret right\" class=\"color-weight-800\"></clr-icon\r\n ></button>\r\n </div>\r\n</vdr-page-detail-layout>\r\n", styles: [":host{height:100%}.preview-image{width:100%;max-width:750px;height:100%;min-height:60vh;overflow:auto;text-align:center;box-shadow:inset 0 0 5px #0000001a;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACuoAAArqAVDM774AAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAK0lEQVQ4T2P4jwP8xgFGNSADqDwGIF0DlMYAUH0YYFQDMoDKYwASNfz/DwB/JvcficphowAAAABJRU5ErkJggg==);margin-top:var(--space-unit);flex:1}.preview-image.centered{display:flex;align-items:center;justify-content:center}.preview-image vdr-focal-point-control{position:relative;box-shadow:0 0 10px -3px #00000026}.preview-image .image-wrapper{position:relative}.preview-image .asset-image{width:100%}.preview-image .asset-image.tiny{max-width:50px;max-height:50px}.preview-image .asset-image.thumb{max-width:150px;max-height:150px}.preview-image .asset-image.small{max-width:300px;max-height:300px}.preview-image .asset-image.medium{max-width:500px;max-height:500px}.preview-image .asset-image.large{max-width:800px;max-height:800px}.preview-image .focal-point-info{position:absolute;display:flex;right:0}.controls{display:flex;flex-direction:column;margin-left:12px;min-width:15vw;max-width:25vw;transition:opacity .3s}.controls.fade{opacity:.5}.controls .name-input{margin-bottom:24px}.controls ::ng-deep .clr-control-container{width:100%}.controls ::ng-deep .clr-control-container .clr-input{width:100%}.controls .elide{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.controls .source-link{direction:rtl}.controls .preview-select{display:flex;align-items:center}.controls .preview-select clr-select-container{margin-right:12px}.carousel-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.carousel-container button{cursor:pointer;width:30px;height:30px;border:none;border-radius:50%;text-align:center;background-color:var(--color-grey-300)}.carousel-container button:hover{background-color:var(--color-grey-400)}.carousel-container .disabled{pointer-events:none;opacity:.4}\n"], dependencies: [{ kind: "directive", type: i5.ClrIconCustomTag, selector: "clr-icon" }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { 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.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i8.ChipComponent, selector: "vdr-chip", inputs: ["icon", "invert", "colorFrom", "colorType"], outputs: ["iconClick"] }, { kind: "component", type: i9.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: i10.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "component", type: i11.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "component", type: i12.FocalPointControlComponent, selector: "vdr-focal-point-control", inputs: ["visible", "editable", "width", "height", "fpx", "fpy"], outputs: ["focalPointChange"] }, { kind: "component", type: i13.TagSelectorComponent, selector: "vdr-tag-selector", inputs: ["placeholder"] }, { kind: "component", type: i14.TabbedCustomFieldsComponent, selector: "vdr-tabbed-custom-fields", inputs: ["entityName", "customFields", "customFieldsFormGroup", "readonly", "compact", "showLabel"] }, { kind: "component", type: i15.AssetPreviewLinksComponent, selector: "vdr-asset-preview-links", inputs: ["asset"] }, { kind: "component", type: i16.PageEntityInfoComponent, selector: "vdr-page-entity-info", inputs: ["entity"] }, { kind: "component", type: i17.PageDetailLayoutComponent, selector: "vdr-page-detail-layout" }, { kind: "component", type: i18.PageDetailSidebarComponent, selector: "vdr-page-detail-sidebar" }, { kind: "component", type: i19.CardComponent, selector: "vdr-card", inputs: ["title", "paddingX"] }, { kind: "pipe", type: i6.DecimalPipe, name: "number" }, { kind: "pipe", type: i20.TranslatePipe, name: "translate" }, { kind: "pipe", type: i21.FileSizePipe, name: "filesize" }, { kind: "pipe", type: i22.HasPermissionPipe, name: "hasPermission" }, { kind: "pipe", type: i23.AssetPreviewPipe, name: "assetPreview" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
173
204
  }
174
205
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: AssetPreviewComponent, decorators: [{
175
206
  type: Component,
176
- args: [{ selector: 'vdr-asset-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card>\r\n <div *ngIf=\"!editable\" class=\"mb-2\">\r\n <a\r\n class=\"button-ghost\"\r\n [routerLink]=\"['/catalog', 'assets', asset.id]\"\r\n (click)=\"editClick.emit()\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </div>\r\n <vdr-form-field *ngIf=\"editable\" [label]=\"'common.name' | translate\" class=\"mb-2\">\r\n <input\r\n type=\"text\"\r\n [formControl]=\"form.get('name')\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission) || settingFocalPoint\"\r\n />\r\n </vdr-form-field>\r\n <vdr-labeled-data [label]=\"'common.name' | translate\" *ngIf=\"!editable\">\r\n <span class=\"elide\">\r\n {{ asset.name }}\r\n </span>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'asset.source-file' | translate\">\r\n <a [href]=\"asset.source\" [title]=\"asset.source\" target=\"_blank\" class=\"elide source-link\">{{\r\n getSourceFileName()\r\n }}</a>\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.original-asset-size' | translate\">\r\n {{ asset.fileSize | filesize }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.dimensions' | translate\">\r\n {{ asset.width }} x {{ asset.height }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.focal-point' | translate\">\r\n <span *ngIf=\"fpx\"\r\n ><clr-icon shape=\"crosshairs\"></clr-icon> x: {{ fpx | number : '1.2-2' }}, y:\r\n {{ fpy | number : '1.2-2' }}</span\r\n >\r\n <span *ngIf=\"!fpx\">{{ 'common.not-set' | translate }}</span>\r\n <div class=\"flex mt-1\">\r\n <button\r\n class=\"button-small mr-1\"\r\n [disabled]=\"settingFocalPoint\"\r\n (click)=\"setFocalPointStart()\"\r\n >\r\n <ng-container *ngIf=\"!fpx\">{{ 'asset.set-focal-point' | translate }}</ng-container>\r\n <ng-container *ngIf=\"fpx\">{{ 'asset.update-focal-point' | translate }}</ng-container>\r\n </button>\r\n <button\r\n class=\"button-small\"\r\n [disabled]=\"settingFocalPoint\"\r\n *ngIf=\"!!fpx\"\r\n (click)=\"removeFocalPoint()\"\r\n >\r\n {{ 'asset.unset-focal-point' | translate }}\r\n </button>\r\n </div>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.tags' | translate\">\r\n <ng-container *ngIf=\"editable\">\r\n <vdr-tag-selector [formControl]=\"form.get('tags')\"></vdr-tag-selector>\r\n <button class=\"button-small mt-1\" (click)=\"manageTags()\">\r\n <clr-icon shape=\"tags\"></clr-icon>\r\n {{ 'common.manage-tags' | translate }}\r\n </button>\r\n </ng-container>\r\n <div *ngIf=\"!editable\">\r\n <vdr-chip *ngFor=\"let tag of asset.tags\" [colorFrom]=\"tag.value\">\r\n <clr-icon shape=\"tag\" class=\"mr2\"></clr-icon>\r\n {{ tag.value }}</vdr-chip\r\n >\r\n </div>\r\n </vdr-labeled-data>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"customFields.length\" [title]=\"'common.custom-fields' | translate\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Asset\"\r\n [compact]=\"true\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"customFieldsForm\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-card [title]=\"'asset.preview' | translate\">\r\n <vdr-form-field>\r\n <select name=\"options\" [(ngModel)]=\"size\" [disabled]=\"settingFocalPoint\">\r\n <option value=\"tiny\">tiny</option>\r\n <option value=\"thumb\">thumb</option>\r\n <option value=\"small\">small</option>\r\n <option value=\"medium\">medium</option>\r\n <option value=\"large\">large</option>\r\n <option value=\"\">full size</option>\r\n </select>\r\n </vdr-form-field>\r\n <div class=\"asset-detail\">{{ width }} x {{ height }}</div>\r\n <vdr-asset-preview-links [asset]=\"asset\"></vdr-asset-preview-links>\r\n </vdr-card>\r\n <vdr-card>\r\n <vdr-page-entity-info *ngIf=\"asset as entity\" [entity]=\"entity\"></vdr-page-entity-info>\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <div class=\"preview-image\" #previewDiv [class.centered]=\"centered\">\r\n <div class=\"image-wrapper\">\r\n <vdr-focal-point-control\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n [fpx]=\"fpx\"\r\n [fpy]=\"fpy\"\r\n [editable]=\"settingFocalPoint\"\r\n (focalPointChange)=\"onFocalPointChange($event)\"\r\n >\r\n <img\r\n class=\"asset-image\"\r\n [src]=\"asset | assetPreview : size\"\r\n [ngClass]=\"size\"\r\n #imageElement\r\n (load)=\"onImageLoad()\"\r\n />\r\n </vdr-focal-point-control>\r\n <div class=\"focal-point-info\" *ngIf=\"settingFocalPoint\">\r\n <button class=\"icon-button\" (click)=\"setFocalPointCancel()\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <button\r\n class=\"btn btn-primary btn-sm\"\r\n (click)=\"setFocalPointEnd()\"\r\n [disabled]=\"!lastFocalPoint\"\r\n >\r\n <clr-icon shape=\"crosshairs\"></clr-icon>\r\n {{ 'asset.set-focal-point' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</vdr-page-detail-layout>\r\n", styles: [":host{height:100%}.preview-image{width:100%;max-width:800px;height:100%;min-height:60vh;overflow:auto;text-align:center;box-shadow:inset 0 0 5px #0000001a;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACuoAAArqAVDM774AAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAK0lEQVQ4T2P4jwP8xgFGNSADqDwGIF0DlMYAUH0YYFQDMoDKYwASNfz/DwB/JvcficphowAAAABJRU5ErkJggg==);margin-top:var(--space-unit);flex:1}.preview-image.centered{display:flex;align-items:center;justify-content:center}.preview-image vdr-focal-point-control{position:relative;box-shadow:0 0 10px -3px #00000026}.preview-image .image-wrapper{position:relative}.preview-image .asset-image{width:100%}.preview-image .asset-image.tiny{max-width:50px;max-height:50px}.preview-image .asset-image.thumb{max-width:150px;max-height:150px}.preview-image .asset-image.small{max-width:300px;max-height:300px}.preview-image .asset-image.medium{max-width:500px;max-height:500px}.preview-image .asset-image.large{max-width:800px;max-height:800px}.preview-image .focal-point-info{position:absolute;display:flex;right:0}.controls{display:flex;flex-direction:column;margin-left:12px;min-width:15vw;max-width:25vw;transition:opacity .3s}.controls.fade{opacity:.5}.controls .name-input{margin-bottom:24px}.controls ::ng-deep .clr-control-container{width:100%}.controls ::ng-deep .clr-control-container .clr-input{width:100%}.controls .elide{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.controls .source-link{direction:rtl}.controls .preview-select{display:flex;align-items:center}.controls .preview-select clr-select-container{margin-right:12px}\n"] }]
207
+ args: [{ selector: 'vdr-asset-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<vdr-page-detail-layout>\r\n <vdr-page-detail-sidebar>\r\n <vdr-card>\r\n <div *ngIf=\"!editable\" class=\"mb-2\">\r\n <a\r\n class=\"button-ghost\"\r\n [routerLink]=\"['/catalog', 'assets', asset.id]\"\r\n (click)=\"editClick.emit()\"\r\n >\r\n <clr-icon shape=\"edit\"></clr-icon>\r\n {{ 'common.edit' | translate }}\r\n <clr-icon shape=\"arrow right\"></clr-icon>\r\n </a>\r\n </div>\r\n <vdr-form-field *ngIf=\"editable\" [label]=\"'common.name' | translate\" class=\"mb-2\">\r\n <input\r\n type=\"text\"\r\n [formControl]=\"form.get('name')\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission) || settingFocalPoint\"\r\n />\r\n </vdr-form-field>\r\n <vdr-labeled-data [label]=\"'common.name' | translate\" *ngIf=\"!editable\">\r\n <span class=\"elide\">\r\n {{ asset.name }}\r\n </span>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'asset.source-file' | translate\">\r\n <a [href]=\"asset.source\" [title]=\"asset.source\" target=\"_blank\" class=\"elide source-link\">{{\r\n getSourceFileName()\r\n }}</a>\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.original-asset-size' | translate\">\r\n {{ asset.fileSize | filesize }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.dimensions' | translate\">\r\n {{ asset.width }} x {{ asset.height }}\r\n </vdr-labeled-data>\r\n\r\n <vdr-labeled-data [label]=\"'asset.focal-point' | translate\">\r\n <span *ngIf=\"fpx\"\r\n ><clr-icon shape=\"crosshairs\"></clr-icon> x: {{ fpx | number : '1.2-2' }}, y:\r\n {{ fpy | number : '1.2-2' }}</span\r\n >\r\n <span *ngIf=\"!fpx\">{{ 'common.not-set' | translate }}</span>\r\n <div class=\"flex mt-1\">\r\n <button\r\n class=\"button-small mr-1\"\r\n [disabled]=\"settingFocalPoint\"\r\n (click)=\"setFocalPointStart()\"\r\n >\r\n <ng-container *ngIf=\"!fpx\">{{ 'asset.set-focal-point' | translate }}</ng-container>\r\n <ng-container *ngIf=\"fpx\">{{ 'asset.update-focal-point' | translate }}</ng-container>\r\n </button>\r\n <button\r\n class=\"button-small\"\r\n [disabled]=\"settingFocalPoint\"\r\n *ngIf=\"!!fpx\"\r\n (click)=\"removeFocalPoint()\"\r\n >\r\n {{ 'asset.unset-focal-point' | translate }}\r\n </button>\r\n </div>\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.tags' | translate\">\r\n <ng-container *ngIf=\"editable\">\r\n <vdr-tag-selector [formControl]=\"form.get('tags')\"></vdr-tag-selector>\r\n <button class=\"button-small mt-1\" (click)=\"manageTags()\">\r\n <clr-icon shape=\"tags\"></clr-icon>\r\n {{ 'common.manage-tags' | translate }}\r\n </button>\r\n </ng-container>\r\n <div *ngIf=\"!editable\">\r\n <vdr-chip *ngFor=\"let tag of asset.tags\" [colorFrom]=\"tag.value\">\r\n <clr-icon shape=\"tag\" class=\"mr2\"></clr-icon>\r\n {{ tag.value }}</vdr-chip\r\n >\r\n </div>\r\n </vdr-labeled-data>\r\n </vdr-card>\r\n <vdr-card *ngIf=\"customFields.length\" [title]=\"'common.custom-fields' | translate\">\r\n <vdr-tabbed-custom-fields\r\n entityName=\"Asset\"\r\n [compact]=\"true\"\r\n [customFields]=\"customFields\"\r\n [customFieldsFormGroup]=\"customFieldsForm\"\r\n [readonly]=\"!(['UpdateCatalog', 'UpdateAsset'] | hasPermission)\"\r\n ></vdr-tabbed-custom-fields>\r\n </vdr-card>\r\n <vdr-card [title]=\"'asset.preview' | translate\">\r\n <vdr-form-field>\r\n <select name=\"options\" [(ngModel)]=\"size\" [disabled]=\"settingFocalPoint\">\r\n <option value=\"tiny\">tiny</option>\r\n <option value=\"thumb\">thumb</option>\r\n <option value=\"small\">small</option>\r\n <option value=\"medium\">medium</option>\r\n <option value=\"large\">large</option>\r\n <option value=\"\">full size</option>\r\n </select>\r\n </vdr-form-field>\r\n <div class=\"asset-detail\">{{ width }} x {{ height }}</div>\r\n <vdr-asset-preview-links [asset]=\"asset\"></vdr-asset-preview-links>\r\n </vdr-card>\r\n <vdr-card>\r\n <vdr-page-entity-info *ngIf=\"asset as entity\" [entity]=\"entity\"></vdr-page-entity-info>\r\n </vdr-card>\r\n </vdr-page-detail-sidebar>\r\n <div class=\"carousel-container\">\r\n <button *ngIf=\"showSlideButtons\" (click)=\"previousImage()\" [class.disabled]=\"disablePreviousButton\"><clr-icon shape=\"caret left\" class=\"color-weight-800\"></clr-icon\r\n ></button>\r\n <div class=\"preview-image\" #previewDiv [class.centered]=\"centered\">\r\n <div class=\"image-wrapper\">\r\n <vdr-focal-point-control\r\n [width]=\"width\"\r\n [height]=\"height\"\r\n [fpx]=\"fpx\"\r\n [fpy]=\"fpy\"\r\n [editable]=\"settingFocalPoint\"\r\n (focalPointChange)=\"onFocalPointChange($event)\"\r\n >\r\n <img\r\n class=\"asset-image\"\r\n [src]=\"asset | assetPreview : size\"\r\n [ngClass]=\"size\"\r\n #imageElement\r\n (load)=\"onImageLoad()\"\r\n />\r\n </vdr-focal-point-control>\r\n <div class=\"focal-point-info\" *ngIf=\"settingFocalPoint\">\r\n <button class=\"icon-button\" (click)=\"setFocalPointCancel()\">\r\n <clr-icon shape=\"times\"></clr-icon>\r\n </button>\r\n <button\r\n class=\"btn btn-primary btn-sm\"\r\n (click)=\"setFocalPointEnd()\"\r\n [disabled]=\"!lastFocalPoint\"\r\n >\r\n <clr-icon shape=\"crosshairs\"></clr-icon>\r\n {{ 'asset.set-focal-point' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <button *ngIf=\"showSlideButtons\" (click)=\"nextImage()\" [class.disabled]=\"disableNextButton\"><clr-icon shape=\"caret right\" class=\"color-weight-800\"></clr-icon\r\n ></button>\r\n </div>\r\n</vdr-page-detail-layout>\r\n", styles: [":host{height:100%}.preview-image{width:100%;max-width:750px;height:100%;min-height:60vh;overflow:auto;text-align:center;box-shadow:inset 0 0 5px #0000001a;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAACuoAAArqAVDM774AAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAK0lEQVQ4T2P4jwP8xgFGNSADqDwGIF0DlMYAUH0YYFQDMoDKYwASNfz/DwB/JvcficphowAAAABJRU5ErkJggg==);margin-top:var(--space-unit);flex:1}.preview-image.centered{display:flex;align-items:center;justify-content:center}.preview-image vdr-focal-point-control{position:relative;box-shadow:0 0 10px -3px #00000026}.preview-image .image-wrapper{position:relative}.preview-image .asset-image{width:100%}.preview-image .asset-image.tiny{max-width:50px;max-height:50px}.preview-image .asset-image.thumb{max-width:150px;max-height:150px}.preview-image .asset-image.small{max-width:300px;max-height:300px}.preview-image .asset-image.medium{max-width:500px;max-height:500px}.preview-image .asset-image.large{max-width:800px;max-height:800px}.preview-image .focal-point-info{position:absolute;display:flex;right:0}.controls{display:flex;flex-direction:column;margin-left:12px;min-width:15vw;max-width:25vw;transition:opacity .3s}.controls.fade{opacity:.5}.controls .name-input{margin-bottom:24px}.controls ::ng-deep .clr-control-container{width:100%}.controls ::ng-deep .clr-control-container .clr-input{width:100%}.controls .elide{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:block}.controls .source-link{direction:rtl}.controls .preview-select{display:flex;align-items:center}.controls .preview-select clr-select-container{margin-right:12px}.carousel-container{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.carousel-container button{cursor:pointer;width:30px;height:30px;border:none;border-radius:50%;text-align:center;background-color:var(--color-grey-300)}.carousel-container button:hover{background-color:var(--color-grey-400)}.carousel-container .disabled{pointer-events:none;opacity:.4}\n"] }]
177
208
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.DataService }, { type: i3.NotificationService }, { type: i0.ChangeDetectorRef }, { type: i4.ModalService }]; }, propDecorators: { asset: [{
178
209
  type: Input
210
+ }], assets: [{
211
+ type: Input
179
212
  }], editable: [{
180
213
  type: Input
181
214
  }], customFields: [{
@@ -193,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImpor
193
226
  type: ViewChild,
194
227
  args: ['previewDiv', { static: true }]
195
228
  }] } });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXByZXZpZXcvYXNzZXQtcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXByZXZpZXcvYXNzZXQtcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFROUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVL0YsTUFBTSxPQUFPLHFCQUFxQjtJQXdCOUIsWUFDWSxXQUF3QixFQUN4QixXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsY0FBaUMsRUFDakMsWUFBMEI7UUFKMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWM7UUEzQjdCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBd0IsRUFBRSxDQUFDO1FBRXRDLGdCQUFXLEdBQUcsSUFB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WTthQUNaLGFBQWEsQ0FBQyx5QkFBeUIsRUFBRTtZQUN0QyxJQUFJLEVBQUUsSUFBSTtTQUNiLENBQUM7YUFDRCxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDO2FBQzdFO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOzhHQTlLUSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwyZENqQ2xDLHE0TkE4SUE7OzJGRDdHYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0ksbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU07eU5BR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFhOEMsZUFBZTtzQkFBbkUsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNRLGFBQWE7c0JBQS9ELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEN1c3RvbUZpZWxkQ29uZmlnLCBVcGRhdGVBc3NldElucHV0IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9wcm92aWRlcnMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJvdmlkZXJzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEFzc2V0TGlrZSB9IGZyb20gJy4uL2Fzc2V0LWdhbGxlcnkvYXNzZXQtZ2FsbGVyeS50eXBlcyc7XHJcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vZm9jYWwtcG9pbnQtY29udHJvbC9mb2NhbC1wb2ludC1jb250cm9sLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hbmFnZVRhZ3NEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9tYW5hZ2UtdGFncy1kaWFsb2cvbWFuYWdlLXRhZ3MtZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgdHlwZSBQcmV2aWV3UHJlc2V0ID0gJ3RpbnknIHwgJ3RodW1iJyB8ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAnJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItYXNzZXQtcHJldmlldycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtcHJldmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9hc3NldC1wcmV2aWV3LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFzc2V0UHJldmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIGFzc2V0OiBBc3NldExpa2U7XHJcbiAgICBASW5wdXQoKSBlZGl0YWJsZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdID0gW107XHJcbiAgICBASW5wdXQoKSBjdXN0b21GaWVsZHNGb3JtOiBVbnR5cGVkRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xyXG4gICAgQE91dHB1dCgpIGFzc2V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxPbWl0PFVwZGF0ZUFzc2V0SW5wdXQsICdmb2NhbFBvaW50Jz4+KCk7XHJcbiAgICBAT3V0cHV0KCkgZWRpdENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIGZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICBuYW1lOiAnJyxcclxuICAgICAgICB0YWdzOiBbW10gYXMgc3RyaW5nW11dLFxyXG4gICAgfSk7XHJcblxyXG4gICAgc2l6ZTogUHJldmlld1ByZXNldCA9ICdtZWRpdW0nO1xyXG4gICAgd2lkdGggPSAwO1xyXG4gICAgaGVpZ2h0ID0gMDtcclxuICAgIGNlbnRlcmVkID0gdHJ1ZTtcclxuICAgIHNldHRpbmdGb2NhbFBvaW50ID0gZmFsc2U7XHJcbiAgICBsYXN0Rm9jYWxQb2ludD86IFBvaW50O1xyXG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VFbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBpbWFnZUVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEltYWdlRWxlbWVudD47XHJcbiAgICBAVmlld0NoaWxkKCdwcmV2aWV3RGl2JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBwcmV2aWV3RGl2UmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIHNpemVQcmlvclRvU2V0dGluZ0ZvY2FsUG9pbnQ6IFByZXZpZXdQcmVzZXQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXHJcbiAgICApIHt9XHJcblxyXG4gICAgZ2V0IGZweCgpOiBudW1iZXIgfCBudWxsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hc3NldC5mb2NhbFBvaW50ID8gdGhpcy5hc3NldC5mb2NhbFBvaW50LnggOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBmcHkoKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXNzZXQuZm9jYWxQb2ludCA/IHRoaXMuYXNzZXQuZm9jYWxQb2ludC55IDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBjb25zdCB7IGZvY2FsUG9pbnQgfSA9IHRoaXMuYXNzZXQ7XHJcbiAgICAgICAgdGhpcy5mb3JtLmdldCgnbmFtZScpPy5zZXRWYWx1ZSh0aGlzLmFzc2V0Lm5hbWUpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5nZXQoJ3RhZ3MnKT8uc2V0VmFsdWUodGhpcy5hc3NldC50YWdzPy5tYXAodCA9PiB0LnZhbHVlKSk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYXNzZXRDaGFuZ2UuZW1pdCh7XHJcbiAgICAgICAgICAgICAgICBpZDogdGhpcy5hc3NldC5pZCxcclxuICAgICAgICAgICAgICAgIG5hbWU6IHZhbHVlLm5hbWUsXHJcbiAgICAgICAgICAgICAgICB0YWdzOiB2YWx1ZS50YWdzLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcclxuICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MCkpXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZURpbWVuc2lvbnMoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U291cmNlRmlsZU5hbWUoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBwYXJ0cyA9IHRoaXMuYXNzZXQuc291cmNlLnNwbGl0KC9bXFxcXFxcL10vZyk7XHJcbiAgICAgICAgcmV0dXJuIHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgfVxyXG5cclxuICAgIG9uSW1hZ2VMb2FkKCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlRGltZW5zaW9ucygpIHtcclxuICAgICAgICBjb25zdCBpbWcgPSB0aGlzLmltYWdlRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMucHJldmlld0RpdlJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IGltZ1dpZHRoID0gaW1nLm5hdHVyYWxXaWR0aDtcclxuICAgICAgICBjb25zdCBpbWdIZWlnaHQgPSBpbWcubmF0dXJhbEhlaWdodDtcclxuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGNvbnRhaW5lci5vZmZzZXRXaWR0aDtcclxuICAgICAgICBjb25zdCBjb250YWluZXJIZWlnaHQgPSBjb250YWluZXIub2Zmc2V0SGVpZ2h0O1xyXG5cclxuICAgICAgICBjb25zdCBjb25zdHJhaW5Ub0NvbnRhaW5lciA9IHRoaXMuc2V0dGluZ0ZvY2FsUG9pbnQ7XHJcbiAgICAgICAgaWYgKGNvbnN0cmFpblRvQ29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xzTWFyZ2luUHggPSA0OCAqIDI7XHJcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUhlaWdodCA9IGNvbnRhaW5lckhlaWdodCAtIGNvbnRyb2xzTWFyZ2luUHg7XHJcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZVdpZHRoID0gY29udGFpbmVyV2lkdGg7XHJcbiAgICAgICAgICAgIGNvbnN0IGhSYXRpbyA9IGltZ0hlaWdodCAvIGF2YWlsYWJsZUhlaWdodDtcclxuICAgICAgICAgICAgY29uc3Qgd1JhdGlvID0gaW1nV2lkdGggLyBhdmFpbGFibGVXaWR0aDtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGltYWdlRXhjZWVkc0F2YWlsYWJsZURpbWVuc2lvbnMgPSAxIDwgaFJhdGlvIHx8IDEgPCB3UmF0aW87XHJcbiAgICAgICAgICAgIGlmIChpbWFnZUV4Y2VlZHNBdmFpbGFibGVEaW1lbnNpb25zKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmYWN0b3IgPSBoUmF0aW8gPCB3UmF0aW8gPyB3UmF0aW8gOiBoUmF0aW87XHJcbiAgICAgICAgICAgICAgICB0aGlzLndpZHRoID0gTWF0aC5yb3VuZChpbWdXaWR0aCAvIGZhY3Rvcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlaWdodCA9IE1hdGgucm91bmQoaW1nSGVpZ2h0IC8gZmFjdG9yKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2VudGVyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMud2lkdGggPSBpbWdXaWR0aDtcclxuICAgICAgICB0aGlzLmhlaWdodCA9IGltZ0hlaWdodDtcclxuICAgICAgICB0aGlzLmNlbnRlcmVkID0gaW1nV2lkdGggPD0gY29udGFpbmVyV2lkdGggJiYgaW1nSGVpZ2h0IDw9IGNvbnRhaW5lckhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRGb2NhbFBvaW50U3RhcnQoKSB7XHJcbiAgICAgICAgdGhpcy5zaXplUHJpb3JUb1NldHRpbmdGb2NhbFBvaW50ID0gdGhpcy5zaXplO1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9ICdtZWRpdW0nO1xyXG4gICAgICAgIHRoaXMuc2V0dGluZ0ZvY2FsUG9pbnQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGFzdEZvY2FsUG9pbnQgPSB0aGlzLmFzc2V0LmZvY2FsUG9pbnQgfHwgeyB4OiAwLjUsIHk6IDAuNSB9O1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUZvY2FsUG9pbnQoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgIC51cGRhdGVBc3NldCh7XHJcbiAgICAgICAgICAgICAgICBpZDogdGhpcy5hc3NldC5pZCxcclxuICAgICAgICAgICAgICAgIGZvY2FsUG9pbnQ6IG51bGwsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnYXNzZXQudXBkYXRlLWZvY2FsLXBvaW50LXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hc3NldCA9IHsgLi4udGhpcy5hc3NldCwgZm9jYWxQb2ludDogbnVsbCB9O1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4gdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmVycm9yKF8oJ2Fzc2V0LnVwZGF0ZS1mb2NhbC1wb2ludC1lcnJvcicpKSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZvY2FsUG9pbnRDaGFuZ2UocG9pbnQ6IFBvaW50KSB7XHJcbiAgICAgICAgdGhpcy5sYXN0Rm9jYWxQb2ludCA9IHBvaW50O1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZvY2FsUG9pbnRDYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nRm9jYWxQb2ludCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubGFzdEZvY2FsUG9pbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5zaXplID0gdGhpcy5zaXplUHJpb3JUb1NldHRpbmdGb2NhbFBvaW50O1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZvY2FsUG9pbnRFbmQoKSB7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nRm9jYWxQb2ludCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2l6ZSA9IHRoaXMuc2l6ZVByaW9yVG9TZXR0aW5nRm9jYWxQb2ludDtcclxuICAgICAgICBpZiAodGhpcy5sYXN0Rm9jYWxQb2ludCkge1xyXG4gICAgICAgICAgICBjb25zdCB7IHgsIHkgfSA9IHRoaXMubGFzdEZvY2FsUG9pbnQ7XHJcbiAgICAgICAgICAgIHRoaXMubGFzdEZvY2FsUG9pbnQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdFxyXG4gICAgICAgICAgICAgICAgLnVwZGF0ZUFzc2V0KHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5hc3NldC5pZCxcclxuICAgICAgICAgICAgICAgICAgICBmb2NhbFBvaW50OiB7IHgsIHkgfSxcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnYXNzZXQudXBkYXRlLWZvY2FsLXBvaW50LXN1Y2Nlc3MnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXNzZXQgPSB7IC4uLnRoaXMuYXNzZXQsIGZvY2FsUG9pbnQ6IHsgeCwgeSB9IH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnYXNzZXQudXBkYXRlLWZvY2FsLXBvaW50LWVycm9yJykpLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbWFuYWdlVGFncygpIHtcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZVxyXG4gICAgICAgICAgICAuZnJvbUNvbXBvbmVudChNYW5hZ2VUYWdzRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICBzaXplOiAnc20nLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY29tbW9uLm5vdGlmeS11cGRhdGVkLXRhZ3Mtc3VjY2VzcycpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPHZkci1wYWdlLWRldGFpbC1sYXlvdXQ+XHJcbiAgICA8dmRyLXBhZ2UtZGV0YWlsLXNpZGViYXI+XHJcbiAgICAgICAgPHZkci1jYXJkPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWVkaXRhYmxlXCIgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLWdob3N0XCJcclxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJbJy9jYXRhbG9nJywgJ2Fzc2V0cycsIGFzc2V0LmlkXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRDbGljay5lbWl0KClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImVkaXRcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24uZWRpdCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJhcnJvdyByaWdodFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQgKm5nSWY9XCJlZGl0YWJsZVwiIFtsYWJlbF09XCInY29tbW9uLm5hbWUnIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm0uZ2V0KCduYW1lJylcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIhKFsnVXBkYXRlQ2F0YWxvZycsICdVcGRhdGVBc3NldCddIHwgaGFzUGVybWlzc2lvbikgfHwgc2V0dGluZ0ZvY2FsUG9pbnRcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC92ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidjb21tb24ubmFtZScgfCB0cmFuc2xhdGVcIiAqbmdJZj1cIiFlZGl0YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlbGlkZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGFzc2V0Lm5hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG4gICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ2Fzc2V0LnNvdXJjZS1maWxlJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiYXNzZXQuc291cmNlXCIgW3RpdGxlXT1cImFzc2V0LnNvdXJjZVwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwiZWxpZGUgc291cmNlLWxpbmtcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgIGdldFNvdXJjZUZpbGVOYW1lKClcclxuICAgICAgICAgICAgICAgIH19PC9hPlxyXG4gICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XHJcblxyXG4gICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ2Fzc2V0Lm9yaWdpbmFsLWFzc2V0LXNpemUnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBhc3NldC5maWxlU2l6ZSB8IGZpbGVzaXplIH19XHJcbiAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuXHJcbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInYXNzZXQuZGltZW5zaW9ucycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7IGFzc2V0LndpZHRoIH19IHgge3sgYXNzZXQuaGVpZ2h0IH19XHJcbiAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuXHJcbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInYXNzZXQuZm9jYWwtcG9pbnQnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImZweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjxjbHItaWNvbiBzaGFwZT1cImNyb3NzaGFpcnNcIj48L2Nsci1pY29uPiB4OiB7eyBmcHggfCBudW1iZXIgOiAnMS4yLTInIH19LCB5OlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGZweSB8IG51bWJlciA6ICcxLjItMicgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWZweFwiPnt7ICdjb21tb24ubm90LXNldCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtdC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1zbWFsbCBtci0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNldHRpbmdGb2NhbFBvaW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEZvY2FsUG9pbnRTdGFydCgpXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZnB4XCI+e3sgJ2Fzc2V0LnNldC1mb2NhbC1wb2ludCcgfCB0cmFuc2xhdGUgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZweFwiPnt7ICdhc3NldC51cGRhdGUtZm9jYWwtcG9pbnQnIHwgdHJhbnNsYXRlIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ1dHRvbi1zbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZXR0aW5nRm9jYWxQb2ludFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiISFmcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlRm9jYWxQb2ludCgpXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdhc3NldC51bnNldC1mb2NhbC1wb2ludCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XHJcbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInY29tbW9uLnRhZ3MnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLXRhZy1zZWxlY3RvciBbZm9ybUNvbnRyb2xdPVwiZm9ybS5nZXQoJ3RhZ3MnKVwiPjwvdmRyLXRhZy1zZWxlY3Rvcj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uLXNtYWxsIG10LTFcIiAoY2xpY2spPVwibWFuYWdlVGFncygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRhZ3NcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnY29tbW9uLm1hbmFnZS10YWdzJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWVkaXRhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHZkci1jaGlwICpuZ0Zvcj1cImxldCB0YWcgb2YgYXNzZXQudGFnc1wiIFtjb2xvckZyb21dPVwidGFnLnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRhZ1wiIGNsYXNzPVwibXIyXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdGFnLnZhbHVlIH19PC92ZHItY2hpcFxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICA8dmRyLWNhcmQgKm5nSWY9XCJjdXN0b21GaWVsZHMubGVuZ3RoXCIgW3RpdGxlXT1cIidjb21tb24uY3VzdG9tLWZpZWxkcycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPHZkci10YWJiZWQtY3VzdG9tLWZpZWxkc1xyXG4gICAgICAgICAgICAgICAgZW50aXR5TmFtZT1cIkFzc2V0XCJcclxuICAgICAgICAgICAgICAgIFtjb21wYWN0XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW2N1c3RvbUZpZWxkc109XCJjdXN0b21GaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgW2N1c3RvbUZpZWxkc0Zvcm1Hcm91cF09XCJjdXN0b21GaWVsZHNGb3JtXCJcclxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIhKFsnVXBkYXRlQ2F0YWxvZycsICdVcGRhdGVBc3NldCddIHwgaGFzUGVybWlzc2lvbilcIlxyXG4gICAgICAgICAgICA+PC92ZHItdGFiYmVkLWN1c3RvbS1maWVsZHM+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICA8dmRyLWNhcmQgW3RpdGxlXT1cIidhc3NldC5wcmV2aWV3JyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9XCJvcHRpb25zXCIgWyhuZ01vZGVsKV09XCJzaXplXCIgW2Rpc2FibGVkXT1cInNldHRpbmdGb2NhbFBvaW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInRpbnlcIj50aW55PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInRodW1iXCI+dGh1bWI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic21hbGxcIj5zbWFsbDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtZWRpdW1cIj5tZWRpdW08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibGFyZ2VcIj5sYXJnZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5mdWxsIHNpemU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXQtZGV0YWlsXCI+e3sgd2lkdGggfX0geCB7eyBoZWlnaHQgfX08L2Rpdj5cclxuICAgICAgICAgICAgPHZkci1hc3NldC1wcmV2aWV3LWxpbmtzIFthc3NldF09XCJhc3NldFwiPjwvdmRyLWFzc2V0LXByZXZpZXctbGlua3M+XHJcbiAgICAgICAgPC92ZHItY2FyZD5cclxuICAgICAgICA8dmRyLWNhcmQ+XHJcbiAgICAgICAgICAgIDx2ZHItcGFnZS1lbnRpdHktaW5mbyAqbmdJZj1cImFzc2V0IGFzIGVudGl0eVwiIFtlbnRpdHldPVwiZW50aXR5XCI+PC92ZHItcGFnZS1lbnRpdHktaW5mbz5cclxuICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgPC92ZHItcGFnZS1kZXRhaWwtc2lkZWJhcj5cclxuICAgIDxkaXYgY2xhc3M9XCJwcmV2aWV3LWltYWdlXCIgI3ByZXZpZXdEaXYgW2NsYXNzLmNlbnRlcmVkXT1cImNlbnRlcmVkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPHZkci1mb2NhbC1wb2ludC1jb250cm9sXHJcbiAgICAgICAgICAgICAgICBbd2lkdGhdPVwid2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCJoZWlnaHRcIlxyXG4gICAgICAgICAgICAgICAgW2ZweF09XCJmcHhcIlxyXG4gICAgICAgICAgICAgICAgW2ZweV09XCJmcHlcIlxyXG4gICAgICAgICAgICAgICAgW2VkaXRhYmxlXT1cInNldHRpbmdGb2NhbFBvaW50XCJcclxuICAgICAgICAgICAgICAgIChmb2NhbFBvaW50Q2hhbmdlKT1cIm9uRm9jYWxQb2ludENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXNzZXQtaW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiYXNzZXQgfCBhc3NldFByZXZpZXcgOiBzaXplXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAjaW1hZ2VFbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgKGxvYWQpPVwib25JbWFnZUxvYWQoKVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L3Zkci1mb2NhbC1wb2ludC1jb250cm9sPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9jYWwtcG9pbnQtaW5mb1wiICpuZ0lmPVwic2V0dGluZ0ZvY2FsUG9pbnRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJpY29uLWJ1dHRvblwiIChjbGljayk9XCJzZXRGb2NhbFBvaW50Q2FuY2VsKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJ0aW1lc1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXRGb2NhbFBvaW50RW5kKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhbGFzdEZvY2FsUG9pbnRcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImNyb3NzaGFpcnNcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdhc3NldC5zZXQtZm9jYWwtcG9pbnQnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC92ZHItcGFnZS1kZXRhaWwtbGF5b3V0PlxyXG4iXX0=
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXByZXZpZXcvYXNzZXQtcHJldmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXByZXZpZXcvYXNzZXQtcHJldmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFROUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVL0YsTUFBTSxPQUFPLHFCQUFxQjtJQTZCOUIsWUFDWSxXQUF3QixFQUN4QixXQUF3QixFQUN4QixtQkFBd0MsRUFDeEMsY0FBaUMsRUFDakMsWUFBMEI7UUFKMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsaUJBQVksR0FBWixZQUFZLENBQWM7UUEvQjdCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsaUJBQVksR0FBd0IsRUFBRSxDQUFDO1FBRXRDLGdCQUFXLEdBQUcsSUFB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RTtnQkFDUSxhQUFhO3NCQUEvRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDdXN0b21GaWVsZENvbmZpZywgVXBkYXRlQXNzZXRJbnB1dCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBc3NldExpa2UgfSBmcm9tICcuLi9hc3NldC1nYWxsZXJ5L2Fzc2V0LWdhbGxlcnkudHlwZXMnO1xyXG5pbXBvcnQgeyBQb2ludCB9IGZyb20gJy4uL2ZvY2FsLXBvaW50LWNvbnRyb2wvZm9jYWwtcG9pbnQtY29udHJvbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYW5hZ2VUYWdzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vbWFuYWdlLXRhZ3MtZGlhbG9nL21hbmFnZS10YWdzLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IHR5cGUgUHJldmlld1ByZXNldCA9ICd0aW55JyB8ICd0aHVtYicgfCAnc21hbGwnIHwgJ21lZGl1bScgfCAnbGFyZ2UnIHwgJyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWFzc2V0LXByZXZpZXcnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Fzc2V0LXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYXNzZXQtcHJldmlldy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3NldFByZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBhc3NldDogQXNzZXRMaWtlO1xyXG4gICAgQElucHV0KCkgYXNzZXRzPzogQXNzZXRMaWtlW107XHJcbiAgICBASW5wdXQoKSBlZGl0YWJsZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdID0gW107XHJcbiAgICBASW5wdXQoKSBjdXN0b21GaWVsZHNGb3JtOiBVbnR5cGVkRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xyXG4gICAgQE91dHB1dCgpIGFzc2V0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxPbWl0PFVwZGF0ZUFzc2V0SW5wdXQsICdmb2NhbFBvaW50Jz4+KCk7XHJcbiAgICBAT3V0cHV0KCkgZWRpdENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIGZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgICBuYW1lOiAnJyxcclxuICAgICAgICB0YWdzOiBbW10gYXMgc3RyaW5nW11dLFxyXG4gICAgfSk7XHJcblxyXG4gICAgc2l6ZTogUHJldmlld1ByZXNldCA9ICdtZWRpdW0nO1xyXG4gICAgd2lkdGggPSAwO1xyXG4gICAgaGVpZ2h0ID0gMDtcclxuICAgIGNlbnRlcmVkID0gdHJ1ZTtcclxuICAgIHNldHRpbmdGb2NhbFBvaW50ID0gZmFsc2U7XHJcbiAgICBsYXN0Rm9jYWxQb2ludD86IFBvaW50O1xyXG4gICAgcHJldmlld0Fzc2V0SW5kZXggPSAwO1xyXG4gICAgZGlzYWJsZU5leHRCdXR0b24gPSBmYWxzZTtcclxuICAgIGRpc2FibGVQcmV2aW91c0J1dHRvbiA9IGZhbHNlO1xyXG4gICAgc2hvd1NsaWRlQnV0dG9ucyA9IGZhbHNlO1xyXG4gICAgQFZpZXdDaGlsZCgnaW1hZ2VFbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBpbWFnZUVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEltYWdlRWxlbWVudD47XHJcbiAgICBAVmlld0NoaWxkKCdwcmV2aWV3RGl2JywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBwcmV2aWV3RGl2UmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIHNpemVQcmlvclRvU2V0dGluZ0ZvY2FsUG9pbnQ6IFByZXZpZXdQcmVzZXQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBNb2RhbFNlcnZpY2UsXHJcbiAgICApIHsgfVxyXG5cclxuICAgIGdldCBmcHgoKTogbnVtYmVyIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXNzZXQuZm9jYWxQb2ludCA/IHRoaXMuYXNzZXQuZm9jYWxQb2ludC54IDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZnB5KCk6IG51bWJlciB8IG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFzc2V0LmZvY2FsUG9pbnQgPyB0aGlzLmFzc2V0LmZvY2FsUG9pbnQueSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgY29uc3QgeyBmb2NhbFBvaW50IH0gPSB0aGlzLmFzc2V0O1xyXG4gICAgICAgIGlmICh0aGlzLmFzc2V0cz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1NsaWRlQnV0dG9ucyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMucHJldmlld0Fzc2V0SW5kZXggPSB0aGlzLmFzc2V0cy5maW5kSW5kZXgoYXNzZXQgPT4gYXNzZXQuaWQgPT09IHRoaXMuYXNzZXQuaWQpIHx8IDA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zaG93U2xpZGVCdXR0b25zID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQnV0dG9uQWNjZXNzaWJpbGl0eSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVwZGF0ZUJ1dHRvbkFjY2Vzc2liaWxpdHkoKTtcclxuICAgICAgICB0aGlzLmZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKHRoaXMuYXNzZXQubmFtZSk7XHJcbiAgICAgICAgdGhpcy5mb3JtLmdldCgndGFncycpPy5zZXRWYWx1ZSh0aGlzLmFzc2V0LnRhZ3M/Lm1hcCh0ID0+IHQudmFsdWUpKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgdGhpcy5hc3NldENoYW5nZS5lbWl0KHtcclxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmFzc2V0LmlkLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogdmFsdWUubmFtZSxcclxuICAgICAgICAgICAgICAgIHRhZ3M6IHZhbHVlLnRhZ3MsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgICAgICAgIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRGltZW5zaW9ucygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXRTb3VyY2VGaWxlTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHBhcnRzID0gdGhpcy5hc3NldC5zb3VyY2Uuc3BsaXQoL1tcXFxcXFwvXS9nKTtcclxuICAgICAgICByZXR1cm4gcGFydHNbcGFydHMubGVuZ3RoIC0gMV07XHJcbiAgICB9XHJcblxyXG4gICAgb25JbWFnZUxvYWQoKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEaW1lbnNpb25zKCk7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVEaW1lbnNpb25zKCkge1xyXG4gICAgICAgIGNvbnN0IGltZyA9IHRoaXMuaW1hZ2VFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5wcmV2aWV3RGl2UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgaW1nV2lkdGggPSBpbWcubmF0dXJhbFdpZHRoO1xyXG4gICAgICAgIGNvbnN0IGltZ0hlaWdodCA9IGltZy5uYXR1cmFsSGVpZ2h0O1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyLm9mZnNldFdpZHRoO1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckhlaWdodCA9IGNvbnRhaW5lci5vZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnN0cmFpblRvQ29udGFpbmVyID0gdGhpcy5zZXR0aW5nRm9jYWxQb2ludDtcclxuICAgICAgICBpZiAoY29uc3RyYWluVG9Db250YWluZXIpIHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbHNNYXJnaW5QeCA9IDQ4ICogMjtcclxuICAgICAgICAgICAgY29uc3QgYXZhaWxhYmxlSGVpZ2h0ID0gY29udGFpbmVySGVpZ2h0IC0gY29udHJvbHNNYXJnaW5QeDtcclxuICAgICAgICAgICAgY29uc3QgYXZhaWxhYmxlV2lkdGggPSBjb250YWluZXJXaWR0aDtcclxuICAgICAgICAgICAgY29uc3QgaFJhdGlvID0gaW1nSGVpZ2h0IC8gYXZhaWxhYmxlSGVpZ2h0O1xyXG4gICAgICAgICAgICBjb25zdCB3UmF0aW8gPSBpbWdXaWR0aCAvIGF2YWlsYWJsZVdpZHRoO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaW1hZ2VFeGNlZWRzQXZhaWxhYmxlRGltZW5zaW9ucyA9IDEgPCBoUmF0aW8gfHwgMSA8IHdSYXRpbztcclxuICAgICAgICAgICAgaWYgKGltYWdlRXhjZWVkc0F2YWlsYWJsZURpbWVuc2lvbnMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZhY3RvciA9IGhSYXRpbyA8IHdSYXRpbyA/IHdSYXRpbyA6IGhSYXRpbztcclxuICAgICAgICAgICAgICAgIHRoaXMud2lkdGggPSBNYXRoLnJvdW5kKGltZ1dpZHRoIC8gZmFjdG9yKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGVpZ2h0ID0gTWF0aC5yb3VuZChpbWdIZWlnaHQgLyBmYWN0b3IpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jZW50ZXJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy53aWR0aCA9IGltZ1dpZHRoO1xyXG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gaW1nSGVpZ2h0O1xyXG4gICAgICAgIHRoaXMuY2VudGVyZWQgPSBpbWdXaWR0aCA8PSBjb250YWluZXJXaWR0aCAmJiBpbWdIZWlnaHQgPD0gY29udGFpbmVySGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIHNldEZvY2FsUG9pbnRTdGFydCgpIHtcclxuICAgICAgICB0aGlzLnNpemVQcmlvclRvU2V0dGluZ0ZvY2FsUG9pbnQgPSB0aGlzLnNpemU7XHJcbiAgICAgICAgdGhpcy5zaXplID0gJ21lZGl1bSc7XHJcbiAgICAgICAgdGhpcy5zZXR0aW5nRm9jYWxQb2ludCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5sYXN0Rm9jYWxQb2ludCA9IHRoaXMuYXNzZXQuZm9jYWxQb2ludCB8fCB7IHg6IDAuNSwgeTogMC41IH07XHJcbiAgICAgICAgdGhpcy51cGRhdGVEaW1lbnNpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlRm9jYWxQb2ludCgpIHtcclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3RcclxuICAgICAgICAgICAgLnVwZGF0ZUFzc2V0KHtcclxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLmFzc2V0LmlkLFxyXG4gICAgICAgICAgICAgICAgZm9jYWxQb2ludDogbnVsbCxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdhc3NldC51cGRhdGUtZm9jYWwtcG9pbnQtc3VjY2VzcycpKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFzc2V0ID0geyAuLi50aGlzLmFzc2V0LCBmb2NhbFBvaW50OiBudWxsIH07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoXygnYXNzZXQudXBkYXRlLWZvY2FsLXBvaW50LWVycm9yJykpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRm9jYWxQb2ludENoYW5nZShwb2ludDogUG9pbnQpIHtcclxuICAgICAgICB0aGlzLmxhc3RGb2NhbFBvaW50ID0gcG9pbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Rm9jYWxQb2ludENhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdGb2NhbFBvaW50ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5sYXN0Rm9jYWxQb2ludCA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLnNpemUgPSB0aGlzLnNpemVQcmlvclRvU2V0dGluZ0ZvY2FsUG9pbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Rm9jYWxQb2ludEVuZCgpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmdGb2NhbFBvaW50ID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zaXplID0gdGhpcy5zaXplUHJpb3JUb1NldHRpbmdGb2NhbFBvaW50O1xyXG4gICAgICAgIGlmICh0aGlzLmxhc3RGb2NhbFBvaW50KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgeCwgeSB9ID0gdGhpcy5sYXN0Rm9jYWxQb2ludDtcclxuICAgICAgICAgICAgdGhpcy5sYXN0Rm9jYWxQb2ludCA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAudXBkYXRlQXNzZXQoe1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLmFzc2V0LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIGZvY2FsUG9pbnQ6IHsgeCwgeSB9LFxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdhc3NldC51cGRhdGUtZm9jYWwtcG9pbnQtc3VjY2VzcycpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hc3NldCA9IHsgLi4udGhpcy5hc3NldCwgZm9jYWxQb2ludDogeyB4LCB5IH0gfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICgpID0+IHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcihfKCdhc3NldC51cGRhdGUtZm9jYWwtcG9pbnQtZXJyb3InKSksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBtYW5hZ2VUYWdzKCkge1xyXG4gICAgICAgIHRoaXMubW9kYWxTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5mcm9tQ29tcG9uZW50KE1hbmFnZVRhZ3NEaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgIHNpemU6ICdzbScsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjb21tb24ubm90aWZ5LXVwZGF0ZWQtdGFncy1zdWNjZXNzJykpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZXh0SW1hZ2UoKSB7XHJcbiAgICAgICAgdGhpcy5wcmV2aWV3QXNzZXRJbmRleCA9IHRoaXMucHJldmlld0Fzc2V0SW5kZXggKyAxO1xyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuYXNzZXRzKSkge1xyXG4gICAgICAgICAgICB0aGlzLmFzc2V0ID0gdGhpcy5hc3NldHNbdGhpcy5wcmV2aWV3QXNzZXRJbmRleF07XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQnV0dG9uQWNjZXNzaWJpbGl0eSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcmV2aW91c0ltYWdlKCkge1xyXG4gICAgICAgIHRoaXMucHJldmlld0Fzc2V0SW5kZXggPSB0aGlzLnByZXZpZXdBc3NldEluZGV4IC0gMTtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmFzc2V0cykpIHtcclxuICAgICAgICAgICAgdGhpcy5hc3NldCA9IHRoaXMuYXNzZXRzW3RoaXMucHJldmlld0Fzc2V0SW5kZXhdO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUJ1dHRvbkFjY2Vzc2liaWxpdHkoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlQnV0dG9uQWNjZXNzaWJpbGl0eSgpIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVOZXh0QnV0dG9uID0gdGhpcy5hc3NldHM/Llt0aGlzLnByZXZpZXdBc3NldEluZGV4ICsgMV0/LmlkID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZVByZXZpb3VzQnV0dG9uID0gdGhpcy5hc3NldHM/Llt0aGlzLnByZXZpZXdBc3NldEluZGV4IC0gMV0/LmlkID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8dmRyLXBhZ2UtZGV0YWlsLWxheW91dD5cclxuICAgIDx2ZHItcGFnZS1kZXRhaWwtc2lkZWJhcj5cclxuICAgICAgICA8dmRyLWNhcmQ+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhZWRpdGFibGVcIiBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b24tZ2hvc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIlsnL2NhdGFsb2cnLCAnYXNzZXRzJywgYXNzZXQuaWRdXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdENsaWNrLmVtaXQoKVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiZWRpdFwiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ2NvbW1vbi5lZGl0JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cImFycm93IHJpZ2h0XCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZCAqbmdJZj1cImVkaXRhYmxlXCIgW2xhYmVsXT1cIidjb21tb24ubmFtZScgfCB0cmFuc2xhdGVcIiBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS5nZXQoJ25hbWUnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiEoWydVcGRhdGVDYXRhbG9nJywgJ1VwZGF0ZUFzc2V0J10gfCBoYXNQZXJtaXNzaW9uKSB8fCBzZXR0aW5nRm9jYWxQb2ludFwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ2NvbW1vbi5uYW1lJyB8IHRyYW5zbGF0ZVwiICpuZ0lmPVwiIWVkaXRhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVsaWRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgYXNzZXQubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XHJcbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInYXNzZXQuc291cmNlLWZpbGUnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJhc3NldC5zb3VyY2VcIiBbdGl0bGVdPVwiYXNzZXQuc291cmNlXCIgdGFyZ2V0PVwiX2JsYW5rXCIgY2xhc3M9XCJlbGlkZSBzb3VyY2UtbGlua1wiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgZ2V0U291cmNlRmlsZU5hbWUoKVxyXG4gICAgICAgICAgICAgICAgfX08L2E+XHJcbiAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuXHJcbiAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInYXNzZXQub3JpZ2luYWwtYXNzZXQtc2l6ZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIHt7IGFzc2V0LmZpbGVTaXplIHwgZmlsZXNpemUgfX1cclxuICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG5cclxuICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidhc3NldC5kaW1lbnNpb25zJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgYXNzZXQud2lkdGggfX0geCB7eyBhc3NldC5oZWlnaHQgfX1cclxuICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG5cclxuICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidhc3NldC5mb2NhbC1wb2ludCcgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZnB4XCJcclxuICAgICAgICAgICAgICAgICAgICA+PGNsci1pY29uIHNoYXBlPVwiY3Jvc3NoYWlyc1wiPjwvY2xyLWljb24+IHg6IHt7IGZweCB8IG51bWJlciA6ICcxLjItMicgfX0sIHk6XHJcbiAgICAgICAgICAgICAgICAgICAge3sgZnB5IHwgbnVtYmVyIDogJzEuMi0yJyB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZnB4XCI+e3sgJ2NvbW1vbi5ub3Qtc2V0JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IG10LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLXNtYWxsIG1yLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2V0dGluZ0ZvY2FsUG9pbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2V0Rm9jYWxQb2ludFN0YXJ0KClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmcHhcIj57eyAnYXNzZXQuc2V0LWZvY2FsLXBvaW50JyB8IHRyYW5zbGF0ZSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZnB4XCI+e3sgJ2Fzc2V0LnVwZGF0ZS1mb2NhbC1wb2ludCcgfCB0cmFuc2xhdGUgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uLXNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNldHRpbmdGb2NhbFBvaW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhIWZweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVGb2NhbFBvaW50KClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2Fzc2V0LnVuc2V0LWZvY2FsLXBvaW50JyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgPHZkci1sYWJlbGVkLWRhdGEgW2xhYmVsXT1cIidjb21tb24udGFncycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlZGl0YWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItdGFnLXNlbGVjdG9yIFtmb3JtQ29udHJvbF09XCJmb3JtLmdldCgndGFncycpXCI+PC92ZHItdGFnLXNlbGVjdG9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24tc21hbGwgbXQtMVwiIChjbGljayk9XCJtYW5hZ2VUYWdzKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidGFnc1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjb21tb24ubWFuYWdlLXRhZ3MnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhZWRpdGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWNoaXAgKm5nRm9yPVwibGV0IHRhZyBvZiBhc3NldC50YWdzXCIgW2NvbG9yRnJvbV09XCJ0YWcudmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwidGFnXCIgY2xhc3M9XCJtcjJcIj48L2Nsci1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB0YWcudmFsdWUgfX08L3Zkci1jaGlwXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgICAgIDx2ZHItY2FyZCAqbmdJZj1cImN1c3RvbUZpZWxkcy5sZW5ndGhcIiBbdGl0bGVdPVwiJ2NvbW1vbi5jdXN0b20tZmllbGRzJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8dmRyLXRhYmJlZC1jdXN0b20tZmllbGRzXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlOYW1lPVwiQXNzZXRcIlxyXG4gICAgICAgICAgICAgICAgW2NvbXBhY3RdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbY3VzdG9tRmllbGRzXT1cImN1c3RvbUZpZWxkc1wiXHJcbiAgICAgICAgICAgICAgICBbY3VzdG9tRmllbGRzRm9ybUdyb3VwXT1cImN1c3RvbUZpZWxkc0Zvcm1cIlxyXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiEoWydVcGRhdGVDYXRhbG9nJywgJ1VwZGF0ZUFzc2V0J10gfCBoYXNQZXJtaXNzaW9uKVwiXHJcbiAgICAgICAgICAgID48L3Zkci10YWJiZWQtY3VzdG9tLWZpZWxkcz5cclxuICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgICAgIDx2ZHItY2FyZCBbdGl0bGVdPVwiJ2Fzc2V0LnByZXZpZXcnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDx2ZHItZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT1cIm9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cInNpemVcIiBbZGlzYWJsZWRdPVwic2V0dGluZ0ZvY2FsUG9pbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwidGlueVwiPnRpbnk8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwidGh1bWJcIj50aHVtYjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzbWFsbFwiPnNtYWxsPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1lZGl1bVwiPm1lZGl1bTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJsYXJnZVwiPmxhcmdlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPmZ1bGwgc2l6ZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhc3NldC1kZXRhaWxcIj57eyB3aWR0aCB9fSB4IHt7IGhlaWdodCB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8dmRyLWFzc2V0LXByZXZpZXctbGlua3MgW2Fzc2V0XT1cImFzc2V0XCI+PC92ZHItYXNzZXQtcHJldmlldy1saW5rcz5cclxuICAgICAgICA8L3Zkci1jYXJkPlxyXG4gICAgICAgIDx2ZHItY2FyZD5cclxuICAgICAgICAgICAgPHZkci1wYWdlLWVudGl0eS1pbmZvICpuZ0lmPVwiYXNzZXQgYXMgZW50aXR5XCIgW2VudGl0eV09XCJlbnRpdHlcIj48L3Zkci1wYWdlLWVudGl0eS1pbmZvPlxyXG4gICAgICAgIDwvdmRyLWNhcmQ+XHJcbiAgICA8L3Zkci1wYWdlLWRldGFpbC1zaWRlYmFyPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWNvbnRhaW5lclwiPlxyXG4gICAgPGJ1dHRvbiAqbmdJZj1cInNob3dTbGlkZUJ1dHRvbnNcIiAoY2xpY2spPVwicHJldmlvdXNJbWFnZSgpXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVQcmV2aW91c0J1dHRvblwiPjxjbHItaWNvbiBzaGFwZT1cImNhcmV0IGxlZnRcIiBjbGFzcz1cImNvbG9yLXdlaWdodC04MDBcIj48L2Nsci1pY29uXHJcbiAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cInByZXZpZXctaW1hZ2VcIiAjcHJldmlld0RpdiBbY2xhc3MuY2VudGVyZWRdPVwiY2VudGVyZWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2Utd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8dmRyLWZvY2FsLXBvaW50LWNvbnRyb2xcclxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCJ3aWR0aFwiXHJcbiAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgICAgICAgICAgICAgICBbZnB4XT1cImZweFwiXHJcbiAgICAgICAgICAgICAgICBbZnB5XT1cImZweVwiXHJcbiAgICAgICAgICAgICAgICBbZWRpdGFibGVdPVwic2V0dGluZ0ZvY2FsUG9pbnRcIlxyXG4gICAgICAgICAgICAgICAgKGZvY2FsUG9pbnRDaGFuZ2UpPVwib25Gb2NhbFBvaW50Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhc3NldC1pbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJhc3NldCB8IGFzc2V0UHJldmlldyA6IHNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICNpbWFnZUVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAobG9hZCk9XCJvbkltYWdlTG9hZCgpXCJcclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvdmRyLWZvY2FsLXBvaW50LWNvbnRyb2w+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb2NhbC1wb2ludC1pbmZvXCIgKm5nSWY9XCJzZXR0aW5nRm9jYWxQb2ludFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImljb24tYnV0dG9uXCIgKGNsaWNrKT1cInNldEZvY2FsUG9pbnRDYW5jZWwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbHItaWNvbiBzaGFwZT1cInRpbWVzXCI+PC9jbHItaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEZvY2FsUG9pbnRFbmQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFsYXN0Rm9jYWxQb2ludFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsci1pY29uIHNoYXBlPVwiY3Jvc3NoYWlyc1wiPjwvY2xyLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ2Fzc2V0LnNldC1mb2NhbC1wb2ludCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGJ1dHRvbiAgKm5nSWY9XCJzaG93U2xpZGVCdXR0b25zXCIgKGNsaWNrKT1cIm5leHRJbWFnZSgpXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVOZXh0QnV0dG9uXCI+PGNsci1pY29uIHNoYXBlPVwiY2FyZXQgcmlnaHRcIiBjbGFzcz1cImNvbG9yLXdlaWdodC04MDBcIj48L2Nsci1pY29uXHJcbiAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvdmRyLXBhZ2UtZGV0YWlsLWxheW91dD5cclxuIl19
@@ -34,15 +34,16 @@ export class AssetPreviewDialogComponent {
34
34
  return this.dataService.product.getAsset(asset.id).mapSingle(data => data.asset);
35
35
  }
36
36
  }));
37
+ this.assetsWithTags$ = of(this.assets ?? []);
37
38
  }
38
39
  hasTags(asset) {
39
40
  return asset.hasOwnProperty('tags');
40
41
  }
41
42
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: AssetPreviewDialogComponent, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Component }); }
42
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: AssetPreviewDialogComponent, selector: "vdr-asset-preview-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n {{ asset.name }}\r\n </div>\r\n</ng-template>\r\n\r\n<vdr-asset-preview\r\n *ngIf=\"assetWithTags$ | async as assetWithTags\"\r\n [asset]=\"assetWithTags\"\r\n (assetChange)=\"assetChanges = $event\"\r\n (editClick)=\"resolveWith()\"\r\n></vdr-asset-preview>\r\n", styles: [":host{height:70vh;overflow:auto}.update-button.hidden{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AssetPreviewComponent, selector: "vdr-asset-preview", inputs: ["asset", "editable", "customFields", "customFieldsForm"], outputs: ["assetChange", "editClick"] }, { kind: "directive", type: i4.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: AssetPreviewDialogComponent, selector: "vdr-asset-preview-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n {{ asset.name }}\r\n </div>\r\n</ng-template>\r\n\r\n<vdr-asset-preview\r\n *ngIf=\"assetWithTags$ | async as assetWithTags\"\r\n [asset]=\"assetWithTags\"\r\n (assetChange)=\"assetChanges = $event\"\r\n (editClick)=\"resolveWith()\"\r\n [assets]=\"assetsWithTags$ | async\"\r\n></vdr-asset-preview>\r\n", styles: [":host{height:70vh;overflow:auto}.update-button.hidden{visibility:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AssetPreviewComponent, selector: "vdr-asset-preview", inputs: ["asset", "assets", "editable", "customFields", "customFieldsForm"], outputs: ["assetChange", "editClick"] }, { kind: "directive", type: i4.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
44
  }
44
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: AssetPreviewDialogComponent, decorators: [{
45
46
  type: Component,
46
- args: [{ selector: 'vdr-asset-preview-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n {{ asset.name }}\r\n </div>\r\n</ng-template>\r\n\r\n<vdr-asset-preview\r\n *ngIf=\"assetWithTags$ | async as assetWithTags\"\r\n [asset]=\"assetWithTags\"\r\n (assetChange)=\"assetChanges = $event\"\r\n (editClick)=\"resolveWith()\"\r\n></vdr-asset-preview>\r\n", styles: [":host{height:70vh;overflow:auto}.update-button.hidden{visibility:hidden}\n"] }]
47
+ args: [{ selector: 'vdr-asset-preview-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n <div class=\"title-row\">\r\n {{ asset.name }}\r\n </div>\r\n</ng-template>\r\n\r\n<vdr-asset-preview\r\n *ngIf=\"assetWithTags$ | async as assetWithTags\"\r\n [asset]=\"assetWithTags\"\r\n (assetChange)=\"assetChanges = $event\"\r\n (editClick)=\"resolveWith()\"\r\n [assets]=\"assetsWithTags$ | async\"\r\n></vdr-asset-preview>\r\n", styles: [":host{height:70vh;overflow:auto}.update-button.hidden{visibility:hidden}\n"] }]
47
48
  }], ctorParameters: function () { return [{ type: i1.DataService }]; } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9hc3NldC1wcmV2aWV3LWRpYWxvZy9hc3NldC1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXByZXZpZXctZGlhbG9nL2Fzc2V0LXByZXZpZXctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7OztBQUs3RixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7OztNQVNoQyxjQUFjO01BQ2QsWUFBWTtDQUNqQixDQUFDO0FBUUYsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFNaEQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3JDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDckIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEI7aUJBQU07Z0JBQ0gsb0VBQW9FO2dCQUNwRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQU0sQ0FBQyxDQUFDO2FBQ3JGO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTyxPQUFPLENBQUMsS0FBZ0I7UUFDNUIsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7OEdBdEJRLDJCQUEyQjtrR0FBM0IsMkJBQTJCLGdFQzlCeEMsZ1dBWUE7OzJGRGtCYSwyQkFBMkI7a0JBTnZDLFNBQVM7K0JBQ0ksMEJBQTBCLG1CQUduQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBHZXRBc3NldFF1ZXJ5LCBVcGRhdGVBc3NldElucHV0IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IEFTU0VUX0ZSQUdNRU5ULCBUQUdfRlJBR01FTlQgfSBmcm9tICcuLi8uLi8uLi9kYXRhL2RlZmluaXRpb25zL3Byb2R1Y3QtZGVmaW5pdGlvbnMnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC50eXBlcyc7XHJcbmltcG9ydCB7IEFzc2V0TGlrZSB9IGZyb20gJy4uL2Fzc2V0LWdhbGxlcnkvYXNzZXQtZ2FsbGVyeS50eXBlcyc7XHJcblxyXG5leHBvcnQgY29uc3QgQVNTRVRfUFJFVklFV19RVUVSWSA9IGdxbGBcclxuICAgIHF1ZXJ5IEFzc2V0UHJldmlld1F1ZXJ5KCRpZDogSUQhKSB7XHJcbiAgICAgICAgYXNzZXQoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5Bc3NldFxyXG4gICAgICAgICAgICB0YWdzIHtcclxuICAgICAgICAgICAgICAgIC4uLlRhZ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtBU1NFVF9GUkFHTUVOVH1cclxuICAgICR7VEFHX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1hc3NldC1wcmV2aWV3LWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtcHJldmlldy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYXNzZXQtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXRQcmV2aWV3RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgRGlhbG9nPHZvaWQ+LCBPbkluaXQge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHt9XHJcbiAgICBhc3NldDogQXNzZXRMaWtlO1xyXG4gICAgYXNzZXRDaGFuZ2VzPzogVXBkYXRlQXNzZXRJbnB1dDtcclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0Pzogdm9pZCkgPT4gdm9pZDtcclxuICAgIGFzc2V0V2l0aFRhZ3MkOiBPYnNlcnZhYmxlPEdldEFzc2V0UXVlcnlbJ2Fzc2V0J10+O1xyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuYXNzZXRXaXRoVGFncyQgPSBvZih0aGlzLmFzc2V0KS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcChhc3NldCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNUYWdzKGFzc2V0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihhc3NldCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdC5nZXRBc3NldChhc3NldC5pZCkubWFwU2luZ2xlKGRhdGEgPT4gZGF0YS5hc3NldCEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFzVGFncyhhc3NldDogQXNzZXRMaWtlKTogYXNzZXQgaXMgQXNzZXRMaWtlICYgeyB0YWdzOiBzdHJpbmdbXSB9IHtcclxuICAgICAgICByZXR1cm4gYXNzZXQuaGFzT3duUHJvcGVydHkoJ3RhZ3MnKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgdmRyRGlhbG9nVGl0bGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcm93XCI+XHJcbiAgICAgICAge3sgYXNzZXQubmFtZSB9fVxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48dmRyLWFzc2V0LXByZXZpZXdcclxuICAgICpuZ0lmPVwiYXNzZXRXaXRoVGFncyQgfCBhc3luYyBhcyBhc3NldFdpdGhUYWdzXCJcclxuICAgIFthc3NldF09XCJhc3NldFdpdGhUYWdzXCJcclxuICAgIChhc3NldENoYW5nZSk9XCJhc3NldENoYW5nZXMgPSAkZXZlbnRcIlxyXG4gICAgKGVkaXRDbGljayk9XCJyZXNvbHZlV2l0aCgpXCJcclxuPjwvdmRyLWFzc2V0LXByZXZpZXc+XHJcbiJdfQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9zaGFyZWQvY29tcG9uZW50cy9hc3NldC1wcmV2aWV3LWRpYWxvZy9hc3NldC1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3NoYXJlZC9jb21wb25lbnRzL2Fzc2V0LXByZXZpZXctZGlhbG9nL2Fzc2V0LXByZXZpZXctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFPLFFBQVEsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBR3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7OztBQUs3RixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUE7Ozs7Ozs7OztNQVNoQyxjQUFjO01BQ2QsWUFBWTtDQUNqQixDQUFDO0FBUUYsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFJLENBQUM7SUFRakQsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQ3JDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDckIsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEI7aUJBQU07Z0JBQ0gsb0VBQW9FO2dCQUNwRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQU0sQ0FBQyxDQUFDO2FBQ3JGO1FBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVPLE9BQU8sQ0FBQyxLQUFnQjtRQUM1QixPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs4R0ExQlEsMkJBQTJCO2tHQUEzQiwyQkFBMkIsZ0VDOUJ4Qyw0WUFhQTs7MkZEaUJhLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFDSSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZ3FsIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBHZXRBc3NldFF1ZXJ5LCBVcGRhdGVBc3NldElucHV0IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IEFTU0VUX0ZSQUdNRU5ULCBUQUdfRlJBR01FTlQgfSBmcm9tICcuLi8uLi8uLi9kYXRhL2RlZmluaXRpb25zL3Byb2R1Y3QtZGVmaW5pdGlvbnMnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4uLy4uLy4uL3Byb3ZpZGVycy9tb2RhbC9tb2RhbC50eXBlcyc7XHJcbmltcG9ydCB7IEFzc2V0TGlrZSB9IGZyb20gJy4uL2Fzc2V0LWdhbGxlcnkvYXNzZXQtZ2FsbGVyeS50eXBlcyc7XHJcblxyXG5leHBvcnQgY29uc3QgQVNTRVRfUFJFVklFV19RVUVSWSA9IGdxbGBcclxuICAgIHF1ZXJ5IEFzc2V0UHJldmlld1F1ZXJ5KCRpZDogSUQhKSB7XHJcbiAgICAgICAgYXNzZXQoaWQ6ICRpZCkge1xyXG4gICAgICAgICAgICAuLi5Bc3NldFxyXG4gICAgICAgICAgICB0YWdzIHtcclxuICAgICAgICAgICAgICAgIC4uLlRhZ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgJHtBU1NFVF9GUkFHTUVOVH1cclxuICAgICR7VEFHX0ZSQUdNRU5UfVxyXG5gO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1hc3NldC1wcmV2aWV3LWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXNzZXQtcHJldmlldy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYXNzZXQtcHJldmlldy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzZXRQcmV2aWV3RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgRGlhbG9nPHZvaWQ+LCBPbkluaXQge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UpIHsgfVxyXG4gICAgYXNzZXQ6IEFzc2V0TGlrZTtcclxuICAgIGFzc2V0cz86IEFzc2V0TGlrZVtdO1xyXG4gICAgYXNzZXRDaGFuZ2VzPzogVXBkYXRlQXNzZXRJbnB1dDtcclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0Pzogdm9pZCkgPT4gdm9pZDtcclxuICAgIGFzc2V0V2l0aFRhZ3MkOiBPYnNlcnZhYmxlPEdldEFzc2V0UXVlcnlbJ2Fzc2V0J10+O1xyXG4gICAgYXNzZXRzV2l0aFRhZ3MkOiBPYnNlcnZhYmxlPEFycmF5PEdldEFzc2V0UXVlcnlbJ2Fzc2V0J10+PjtcclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmFzc2V0V2l0aFRhZ3MkID0gb2YodGhpcy5hc3NldCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoYXNzZXQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzVGFncyhhc3NldCkpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoYXNzZXQpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3QuZ2V0QXNzZXQoYXNzZXQuaWQpLm1hcFNpbmdsZShkYXRhID0+IGRhdGEuYXNzZXQhKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5hc3NldHNXaXRoVGFncyQgPSBvZih0aGlzLmFzc2V0cyA/PyBbXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYXNUYWdzKGFzc2V0OiBBc3NldExpa2UpOiBhc3NldCBpcyBBc3NldExpa2UgJiB7IHRhZ3M6IHN0cmluZ1tdIH0ge1xyXG4gICAgICAgIHJldHVybiBhc3NldC5oYXNPd25Qcm9wZXJ0eSgndGFncycpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT5cclxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yb3dcIj5cclxuICAgICAgICB7eyBhc3NldC5uYW1lIH19XHJcbiAgICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjx2ZHItYXNzZXQtcHJldmlld1xyXG4gICAgKm5nSWY9XCJhc3NldFdpdGhUYWdzJCB8IGFzeW5jIGFzIGFzc2V0V2l0aFRhZ3NcIlxyXG4gICAgW2Fzc2V0XT1cImFzc2V0V2l0aFRhZ3NcIlxyXG4gICAgKGFzc2V0Q2hhbmdlKT1cImFzc2V0Q2hhbmdlcyA9ICRldmVudFwiXHJcbiAgICAoZWRpdENsaWNrKT1cInJlc29sdmVXaXRoKClcIlxyXG4gICAgW2Fzc2V0c109XCJhc3NldHNXaXRoVGFncyQgfCBhc3luY1wiXHJcbj48L3Zkci1hc3NldC1wcmV2aWV3PlxyXG4iXX0=
@@ -7,4 +7,4 @@ export const deleteTaxCategoriesBulkAction = createBulkDeleteAction({
7
7
  getItemName: item => item.name,
8
8
  bulkDelete: (dataService, ids) => dataService.settings.deleteTaxCategories(ids).pipe(map(res => res.deleteTaxCategories)),
9
9
  });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LWNhdGVnb3J5LWxpc3QtYnVsay1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXR0aW5ncy9zcmMvY29tcG9uZW50cy90YXgtY2F0ZWdvcnktbGlzdC90YXgtY2F0ZWdvcnktbGlzdC1idWxrLWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUEyQixVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsc0JBQXNCLENBRWpFO0lBQ0UsUUFBUSxFQUFFLG1CQUFtQjtJQUM3QixrQkFBa0IsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUNsQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7UUFDbkQsZUFBZSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7SUFDMUQsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUk7SUFDOUIsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQzdCLFdBQVcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0NBQzlGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUJ1bGtEZWxldGVBY3Rpb24sIEdldFNlbGxlcnNRdWVyeSwgSXRlbU9mLCBQZXJtaXNzaW9uIH0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IEdldFRheENhdGVnb3J5TGlzdFF1ZXJ5IH0gZnJvbSAnQHZlbmR1cmUvY29yZS9lMmUvZ3JhcGhxbC9nZW5lcmF0ZWQtZTJlLWFkbWluLXR5cGVzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlbGV0ZVRheENhdGVnb3JpZXNCdWxrQWN0aW9uID0gY3JlYXRlQnVsa0RlbGV0ZUFjdGlvbjxcclxuICAgIEl0ZW1PZjxHZXRUYXhDYXRlZ29yeUxpc3RRdWVyeSwgJ3RheENhdGVnb3JpZXMnPlxyXG4+KHtcclxuICAgIGxvY2F0aW9uOiAndGF4LWNhdGVnb3J5LWxpc3QnLFxyXG4gICAgcmVxdWlyZXNQZXJtaXNzaW9uOiB1c2VyUGVybWlzc2lvbnMgPT5cclxuICAgICAgICB1c2VyUGVybWlzc2lvbnMuaW5jbHVkZXMoUGVybWlzc2lvbi5EZWxldGVTZXR0aW5ncykgfHxcclxuICAgICAgICB1c2VyUGVybWlzc2lvbnMuaW5jbHVkZXMoUGVybWlzc2lvbi5EZWxldGVUYXhDYXRlZ29yeSksXHJcbiAgICBnZXRJdGVtTmFtZTogaXRlbSA9PiBpdGVtLm5hbWUsXHJcbiAgICBidWxrRGVsZXRlOiAoZGF0YVNlcnZpY2UsIGlkcykgPT5cclxuICAgICAgICBkYXRhU2VydmljZS5zZXR0aW5ncy5kZWxldGVUYXhDYXRlZ29yaWVzKGlkcykucGlwZShtYXAocmVzID0+IHJlcy5kZWxldGVUYXhDYXRlZ29yaWVzKSksXHJcbn0pO1xyXG4iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LWNhdGVnb3J5LWxpc3QtYnVsay1hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXR0aW5ncy9zcmMvY29tcG9uZW50cy90YXgtY2F0ZWdvcnktbGlzdC90YXgtY2F0ZWdvcnktbGlzdC1idWxrLWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFtQyxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsc0JBQXNCLENBRWpFO0lBQ0UsUUFBUSxFQUFFLG1CQUFtQjtJQUM3QixrQkFBa0IsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUNsQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7UUFDbkQsZUFBZSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7SUFDMUQsV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUk7SUFDOUIsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQzdCLFdBQVcsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0NBQzlGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUJ1bGtEZWxldGVBY3Rpb24sIEdldFRheENhdGVnb3J5TGlzdFF1ZXJ5LCBJdGVtT2YsIFBlcm1pc3Npb24gfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlbGV0ZVRheENhdGVnb3JpZXNCdWxrQWN0aW9uID0gY3JlYXRlQnVsa0RlbGV0ZUFjdGlvbjxcclxuICAgIEl0ZW1PZjxHZXRUYXhDYXRlZ29yeUxpc3RRdWVyeSwgJ3RheENhdGVnb3JpZXMnPlxyXG4+KHtcclxuICAgIGxvY2F0aW9uOiAndGF4LWNhdGVnb3J5LWxpc3QnLFxyXG4gICAgcmVxdWlyZXNQZXJtaXNzaW9uOiB1c2VyUGVybWlzc2lvbnMgPT5cclxuICAgICAgICB1c2VyUGVybWlzc2lvbnMuaW5jbHVkZXMoUGVybWlzc2lvbi5EZWxldGVTZXR0aW5ncykgfHxcclxuICAgICAgICB1c2VyUGVybWlzc2lvbnMuaW5jbHVkZXMoUGVybWlzc2lvbi5EZWxldGVUYXhDYXRlZ29yeSksXHJcbiAgICBnZXRJdGVtTmFtZTogaXRlbSA9PiBpdGVtLm5hbWUsXHJcbiAgICBidWxrRGVsZXRlOiAoZGF0YVNlcnZpY2UsIGlkcykgPT5cclxuICAgICAgICBkYXRhU2VydmljZS5zZXR0aW5ncy5kZWxldGVUYXhDYXRlZ29yaWVzKGlkcykucGlwZShtYXAocmVzID0+IHJlcy5kZWxldGVUYXhDYXRlZ29yaWVzKSksXHJcbn0pO1xyXG4iXX0=
@@ -426,4 +426,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImpor
426
426
  ],
427
427
  }]
428
428
  }], ctorParameters: function () { return [{ type: i1.BulkActionRegistryService }, { type: i1.PageService }]; } });
429
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zZXR0aW5ncy9zcmMvc2V0dGluZ3MubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFFSCwyQkFBMkIsRUFDM0IsOEJBQThCLEVBQzlCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFFeEIsOEJBQThCLEVBQzlCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsK0JBQStCLEVBQy9CLDRCQUE0QixFQUM1Qix3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxZQUFZLEdBQ2YsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQ0gsdUNBQXVDLEVBQ3ZDLDhCQUE4QixFQUM5Qix5Q0FBeUMsR0FDNUMsTUFBTSxtRUFBbUUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUNsSixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxzRUFBc0UsQ0FBQztBQUNySCxPQUFPLEVBQ0gsd0NBQXdDLEVBQ3hDLCtCQUErQixFQUMvQiwwQ0FBMEMsR0FDN0MsTUFBTSxxRUFBcUUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUMvRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQztBQUNuSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM1RyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUM5RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUNoSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUErQ2pELE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFlBQW9CLHlCQUFvRCxFQUFFLFdBQXdCO1FBQTlFLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFDcEUseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUV0RSx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRXZFLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFFN0UseUJBQXlCLENBQUMsa0JBQWtCLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUVwRSx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1FBQ3ZGLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDekYseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUU5RSx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1FBQ3RGLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDeEYseUJBQXlCLENBQUMsa0JBQWtCLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUU3RSx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBRTVFLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFdkUseUJBQXlCLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUV4RSx5QkFBeUIsQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXBFLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFMUUsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLEdBQUcsRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUM7WUFDNUIsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsbUJBQW1CO1NBQ2pDLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsZUFBZTtZQUN6QixHQUFHLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1lBQ3pCLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLDJCQUEyQixDQUFDO2dCQUNuQyxTQUFTLEVBQUUscUJBQXFCO2dCQUNoQyxLQUFLLEVBQUUsdUJBQXVCO2dCQUM5QixTQUFTLEVBQUUsUUFBUTtnQkFDbkIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3RCO3dCQUNJLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQzt3QkFDN0QsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztxQkFDckI7aUJBQ0o7YUFDSixDQUFDO1NBQ0wsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSxjQUFjO1lBQ3hCLEdBQUcsRUFBRSxDQUFDLENBQUMscUJBQXFCLENBQUM7WUFDN0IsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsb0JBQW9CO1NBQ2xDLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLEdBQUcsRUFBRSxDQUFDLENBQUMsa0JBQWtCLENBQUM7WUFDMUIsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsMkJBQTJCLENBQUM7Z0JBQ25DLFNBQVMsRUFBRSxzQkFBc0I7Z0JBQ2pDLEtBQUssRUFBRSx3QkFBd0I7Z0JBQy9CLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixjQUFjLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDdEI7d0JBQ0ksS0FBSyxFQUFFLE1BQU07NEJBQ1QsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssb0JBQW9CO2dDQUNsQyxDQUFDLENBQUMsd0JBQXdCO2dDQUMxQixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUk7NEJBQ2pCLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCLENBQUM7d0JBQ3RDLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7cUJBQ3JCO2lCQUNKO2FBQ0osQ0FBQztTQUNMLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLEdBQUcsRUFBRSxDQUFDLENBQUMsMkJBQTJCLENBQUM7WUFDbkMsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsMEJBQTBCO1NBQ3hDLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsc0JBQXNCO1lBQ2hDLEdBQUcsRUFBRSxDQUFDLENBQUMsd0JBQXdCLENBQUM7WUFDaEMsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsMkJBQTJCLENBQUM7Z0JBQ25DLFNBQVMsRUFBRSxvQkFBb0I7Z0JBQy9CLEtBQUssRUFBRSw4QkFBOEI7Z0JBQ3JDLFNBQVMsRUFBRSxlQUFlO2dCQUMxQixjQUFjLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDdEI7d0JBQ0ksS0FBSyxFQUFFLE1BQU07NEJBQ1QsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFOzRCQUMxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDO3dCQUN6QyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO3FCQUNyQjtpQkFDSjthQUNKLENBQUM7U0FDTCxDQUFDLENBQUM7UUFDSCxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsUUFBUSxFQUFFLFdBQVc7WUFDckIsR0FBRyxFQUFFLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztZQUMxQixLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSxpQkFBaUI7U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLEdBQUcsRUFBRSxDQUFDLENBQUMsZUFBZSxDQUFDO1lBQ3ZCLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLDJCQUEyQixDQUFDO2dCQUNuQyxTQUFTLEVBQUUsbUJBQW1CO2dCQUM5QixLQUFLLEVBQUUscUJBQXFCO2dCQUM1QixTQUFTLEVBQUUsTUFBTTtnQkFDakIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3RCO3dCQUNJLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQzt3QkFDbEUsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztxQkFDckI7aUJBQ0o7YUFDSixDQUFDO1NBQ0wsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsR0FBRyxFQUFFLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQztZQUNyQyxLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSwyQkFBMkI7U0FDekMsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSx3QkFBd0I7WUFDbEMsR0FBRyxFQUFFLENBQUMsQ0FBQywwQkFBMEIsQ0FBQztZQUNsQyxLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSwyQkFBMkIsQ0FBQztnQkFDbkMsU0FBUyxFQUFFLDZCQUE2QjtnQkFDeEMsS0FBSyxFQUFFLCtCQUErQjtnQkFDdEMsU0FBUyxFQUFFLGdCQUFnQjtnQkFDM0IsY0FBYyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3RCO3dCQUNJLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUMsQ0FBQzt3QkFDdEUsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztxQkFDckI7aUJBQ0o7YUFDSixDQUFDO1NBQ0wsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSxzQkFBc0I7WUFDaEMsR0FBRyxFQUFFLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztZQUN4QyxLQUFLLEVBQUUsTUFBTTtZQUNiLFNBQVMsRUFBRSw0QkFBNEI7U0FDMUMsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSxxQkFBcUI7WUFDL0IsR0FBRyxFQUFFLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztZQUNwQyxLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSwwQkFBMEI7U0FDeEMsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSx1QkFBdUI7WUFDakMsR0FBRyxFQUFFLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQztZQUNqQyxLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSwyQkFBMkIsQ0FBQztnQkFDbkMsU0FBUyxFQUFFLDRCQUE0QjtnQkFDdkMsS0FBSyxFQUFFLDhCQUE4QjtnQkFDckMsU0FBUyxFQUFFLGVBQWU7Z0JBQzFCLGNBQWMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUN0Qjt3QkFDSSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0NBQW9DLENBQUM7d0JBQ3JFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7cUJBQ3JCO2lCQUNKO2FBQ0osQ0FBQztTQUNMLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLEdBQUcsRUFBRSxDQUFDLENBQUMsMkJBQTJCLENBQUM7WUFDbkMsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsd0JBQXdCO1NBQ3RDLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLEdBQUcsRUFBRSxDQUFDLENBQUMsdUJBQXVCLENBQUM7WUFDL0IsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsMkJBQTJCLENBQUM7Z0JBQ25DLFNBQVMsRUFBRSwwQkFBMEI7Z0JBQ3JDLEtBQUssRUFBRSw0QkFBNEI7Z0JBQ25DLFNBQVMsRUFBRSxhQUFhO2dCQUN4QixjQUFjLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDdEI7d0JBQ0ksS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDO3dCQUNuRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO3FCQUNyQjtpQkFDSjthQUNKLENBQUM7U0FDTCxDQUFDLENBQUM7UUFDSCxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsUUFBUSxFQUFFLGVBQWU7WUFDekIsR0FBRyxFQUFFLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQztZQUM5QixLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSxvQkFBb0I7U0FDbEMsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsR0FBRyxFQUFFLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQUMzQixLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSwyQkFBMkIsQ0FBQztnQkFDbkMsU0FBUyxFQUFFLHNCQUFzQjtnQkFDakMsS0FBSyxFQUFFLHdCQUF3QjtnQkFDL0IsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLGNBQWMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUN0Qjt3QkFDSSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsOEJBQThCLENBQUM7d0JBQy9ELElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7cUJBQ3JCO2lCQUNKO2FBQ0osQ0FBQztTQUNMLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsY0FBYztZQUN4QixHQUFHLEVBQUUsQ0FBQyxDQUFDLHNCQUFzQixDQUFDO1lBQzlCLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLG9CQUFvQjtTQUNsQyxDQUFDLENBQUM7UUFDSCxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQ3hCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQixHQUFHLEVBQUUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1lBQzFCLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLDJCQUEyQixDQUFDO2dCQUNuQyxTQUFTLEVBQUUsc0JBQXNCO2dCQUNqQyxLQUFLLEVBQUUsd0JBQXdCO2dCQUMvQixTQUFTLEVBQUUsU0FBUztnQkFDcEIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3RCO3dCQUNJLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQzt3QkFDOUQsSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztxQkFDckI7aUJBQ0o7YUFDSixDQUFDO1NBQ0wsQ0FBQyxDQUFDO1FBQ0gsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN4QixRQUFRLEVBQUUsQ0FBQztZQUNYLFFBQVEsRUFBRSxXQUFXO1lBQ3JCLEdBQUcsRUFBRSxDQUFDLENBQUMsa0JBQWtCLENBQUM7WUFDMUIsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsaUJBQWlCO1NBQy9CLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsYUFBYTtZQUN2QixHQUFHLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQztZQUN2QixLQUFLLEVBQUUsRUFBRTtZQUNULFNBQVMsRUFBRSwyQkFBMkIsQ0FBQztnQkFDbkMsU0FBUyxFQUFFLG1CQUFtQjtnQkFDOUIsS0FBSyxFQUFFLHFCQUFxQjtnQkFDNUIsU0FBUyxFQUFFLE1BQU07Z0JBQ2pCLGNBQWMsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUN0Qjt3QkFDSSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUM7d0JBQzNELElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7cUJBQ3JCO2lCQUNKO2FBQ0osQ0FBQztTQUNMLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsdUJBQXVCO1lBQ2pDLEdBQUcsRUFBRSxDQUFDLENBQUMsNEJBQTRCLENBQUM7WUFDcEMsS0FBSyxFQUFFLEVBQUU7WUFDVCxTQUFTLEVBQUUsdUJBQXVCO1NBQ3JDLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxlQUFlLENBQUM7WUFDeEIsUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLEVBQUUsU0FBUztZQUNuQixHQUFHLEVBQUUsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1lBQzVCLEtBQUssRUFBRSxFQUFFO1lBQ1QsU0FBUyxFQUFFLGdCQUFnQjtTQUM5QixDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXZTUSxjQUFjOytHQUFkLGNBQWMsaUJBbENuQix3QkFBd0I7WUFDeEIsMEJBQTBCO1lBQzFCLDBCQUEwQjtZQUMxQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQix1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLHNCQUFzQjtZQUN0QixvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCLG9CQUFvQjtZQUNwQixzQkFBc0I7WUFDdEIsMkJBQTJCO1lBQzNCLDZCQUE2QjtZQUM3QiwwQkFBMEI7WUFDMUIsNEJBQTRCO1lBQzVCLHVCQUF1QjtZQUN2Qix5QkFBeUI7WUFDekIsd0JBQXdCO1lBQ3hCLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsaUNBQWlDO1lBQ2pDLHNDQUFzQztZQUN0QyxpQkFBaUI7WUFDakIsK0JBQStCO1lBQy9CLHVCQUF1QjtZQUN2Qiw2QkFBNkI7WUFDN0IsMkJBQTJCO1lBQzNCLGdCQUFnQjtZQUNoQiw0QkFBNEI7WUFDNUIsbUJBQW1CLGFBekNiLFlBQVk7K0dBNENiLGNBQWMsYUEzQ1o7WUFDUDtnQkFDSSxPQUFPLEVBQUUsTUFBTTtnQkFDZixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO2dCQUNuRSxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7YUFDdEI7U0FDSixZQVJTLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQzs7MkZBNEN4QyxjQUFjO2tCQTdDMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDbEQsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxNQUFNOzRCQUNmLFVBQVUsRUFBRSxDQUFDLFdBQXdCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7NEJBQ25FLEtBQUssRUFBRSxJQUFJOzRCQUNYLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQzt5QkFDdEI7cUJBQ0o7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsMkJBQTJCO3dCQUMzQiw2QkFBNkI7d0JBQzdCLDBCQUEwQjt3QkFDMUIsNEJBQTRCO3dCQUM1Qix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsaUNBQWlDO3dCQUNqQyxzQ0FBc0M7d0JBQ3RDLGlCQUFpQjt3QkFDakIsK0JBQStCO3dCQUMvQix1QkFBdUI7d0JBQ3ZCLDZCQUE2Qjt3QkFDN0IsMkJBQTJCO3dCQUMzQixnQkFBZ0I7d0JBQ2hCLDRCQUE0Qjt3QkFDNUIsbUJBQW1CO3FCQUN0QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJPVVRFUyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XG5pbXBvcnQge1xuICAgIEJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UsXG4gICAgZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyLFxuICAgIEdldEFkbWluaXN0cmF0b3JEZXRhaWxEb2N1bWVudCxcbiAgICBHZXRDaGFubmVsRGV0YWlsRG9jdW1lbnQsXG4gICAgR2V0Q291bnRyeURldGFpbERvY3VtZW50LFxuICAgIEdldEdsb2JhbFNldHRpbmdzRGV0YWlsRG9jdW1lbnQsXG4gICAgR2V0UGF5bWVudE1ldGhvZERldGFpbERvY3VtZW50LFxuICAgIEdldFJvbGVEZXRhaWxEb2N1bWVudCxcbiAgICBHZXRTZWxsZXJEZXRhaWxEb2N1bWVudCxcbiAgICBHZXRTaGlwcGluZ01ldGhvZERldGFpbERvY3VtZW50LFxuICAgIEdldFRheENhdGVnb3J5RGV0YWlsRG9jdW1lbnQsXG4gICAgR2V0VGF4UmF0ZURldGFpbERvY3VtZW50LFxuICAgIEdldFpvbmVEZXRhaWxEb2N1bWVudCxcbiAgICBQYWdlU2VydmljZSxcbiAgICBTaGFyZWRNb2R1bGUsXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xuaW1wb3J0IHsgREVGQVVMVF9DSEFOTkVMX0NPREUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC1jb25zdGFudHMnO1xuXG5pbXBvcnQgeyBBZGRDb3VudHJ5VG9ab25lRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FkZC1jb3VudHJ5LXRvLXpvbmUtZGlhbG9nL2FkZC1jb3VudHJ5LXRvLXpvbmUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkRldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbi1kZXRhaWwvYWRtaW4tZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBkZWxldGVBZG1pbmlzdHJhdG9yc0J1bGtBY3Rpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW5pc3RyYXRvci1saXN0L2FkbWluaXN0cmF0b3ItbGlzdC1idWxrLWFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5pc3RyYXRvckxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW5pc3RyYXRvci1saXN0L2FkbWluaXN0cmF0b3ItbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hhbm5lbERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jaGFubmVsLWRldGFpbC9jaGFubmVsLWRldGFpbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZGVsZXRlQ2hhbm5lbHNCdWxrQWN0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYW5uZWwtbGlzdC9jaGFubmVsLWxpc3QtYnVsay1hY3Rpb25zJztcbmltcG9ydCB7IENoYW5uZWxMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYW5uZWwtbGlzdC9jaGFubmVsLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IENvdW50cnlEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY291bnRyeS1kZXRhaWwvY291bnRyeS1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IGRlbGV0ZUNvdW50cmllc0J1bGtBY3Rpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvY291bnRyeS1saXN0L2NvdW50cnktbGlzdC1idWxrLWFjdGlvbnMnO1xuaW1wb3J0IHsgQ291bnRyeUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY291bnRyeS1saXN0L2NvdW50cnktbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2xvYmFsU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZ2xvYmFsLXNldHRpbmdzL2dsb2JhbC1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGF5bWVudE1ldGhvZERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXltZW50LW1ldGhvZC1kZXRhaWwvcGF5bWVudC1tZXRob2QtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIGFzc2lnblBheW1lbnRNZXRob2RzVG9DaGFubmVsQnVsa0FjdGlvbixcbiAgICBkZWxldGVQYXltZW50TWV0aG9kc0J1bGtBY3Rpb24sXG4gICAgcmVtb3ZlUGF5bWVudE1ldGhvZHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXG59IGZyb20gJy4vY29tcG9uZW50cy9wYXltZW50LW1ldGhvZC1saXN0L3BheW1lbnQtbWV0aG9kLWxpc3QtYnVsay1hY3Rpb25zJztcbmltcG9ydCB7IFBheW1lbnRNZXRob2RMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BheW1lbnQtbWV0aG9kLWxpc3QvcGF5bWVudC1tZXRob2QtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVybWlzc2lvbkdyaWRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcGVybWlzc2lvbi1ncmlkL3Blcm1pc3Npb24tZ3JpZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZmlsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50JztcbmltcG9ydCB7IFJvbGVEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm9sZS1kZXRhaWwvcm9sZS1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IGRlbGV0ZVJvbGVzQnVsa0FjdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9yb2xlLWxpc3Qvcm9sZS1saXN0LWJ1bGstYWN0aW9ucyc7XG5pbXBvcnQgeyBSb2xlTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yb2xlLWxpc3Qvcm9sZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxsZXJEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsbGVyLWRldGFpbC9zZWxsZXItZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBkZWxldGVTZWxsZXJzQnVsa0FjdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9zZWxsZXItbGlzdC9zZWxsZXItbGlzdC1idWxrLWFjdGlvbnMnO1xuaW1wb3J0IHsgU2VsbGVyTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWxsZXItbGlzdC9zZWxsZXItbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2hpcHBpbmdFbGlnaWJpbGl0eVRlc3RSZXN1bHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2hpcHBpbmctZWxpZ2liaWxpdHktdGVzdC1yZXN1bHQvc2hpcHBpbmctZWxpZ2liaWxpdHktdGVzdC1yZXN1bHQuY29tcG9uZW50JztcbmltcG9ydCB7IFNoaXBwaW5nTWV0aG9kRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NoaXBwaW5nLW1ldGhvZC1kZXRhaWwvc2hpcHBpbmctbWV0aG9kLWRldGFpbC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBhc3NpZ25TaGlwcGluZ01ldGhvZHNUb0NoYW5uZWxCdWxrQWN0aW9uLFxuICAgIGRlbGV0ZVNoaXBwaW5nTWV0aG9kc0J1bGtBY3Rpb24sXG4gICAgcmVtb3ZlU2hpcHBpbmdNZXRob2RzRnJvbUNoYW5uZWxCdWxrQWN0aW9uLFxufSBmcm9tICcuL2NvbXBvbmVudHMvc2hpcHBpbmctbWV0aG9kLWxpc3Qvc2hpcHBpbmctbWV0aG9kLWxpc3QtYnVsay1hY3Rpb25zJztcbmltcG9ydCB7IFNoaXBwaW5nTWV0aG9kTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaGlwcGluZy1tZXRob2QtbGlzdC9zaGlwcGluZy1tZXRob2QtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2hpcHBpbmdNZXRob2RUZXN0UmVzdWx0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NoaXBwaW5nLW1ldGhvZC10ZXN0LXJlc3VsdC9zaGlwcGluZy1tZXRob2QtdGVzdC1yZXN1bHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRheENhdGVnb3J5RGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RheC1jYXRlZ29yeS1kZXRhaWwvdGF4LWNhdGVnb3J5LWRldGFpbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZGVsZXRlVGF4Q2F0ZWdvcmllc0J1bGtBY3Rpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvdGF4LWNhdGVnb3J5LWxpc3QvdGF4LWNhdGVnb3J5LWxpc3QtYnVsay1hY3Rpb25zJztcbmltcG9ydCB7IFRheENhdGVnb3J5TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YXgtY2F0ZWdvcnktbGlzdC90YXgtY2F0ZWdvcnktbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGF4UmF0ZURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YXgtcmF0ZS1kZXRhaWwvdGF4LXJhdGUtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBkZWxldGVUYXhSYXRlc0J1bGtBY3Rpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvdGF4LXJhdGUtbGlzdC90YXgtcmF0ZS1saXN0LWJ1bGstYWN0aW9ucyc7XG5pbXBvcnQgeyBUYXhSYXRlTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YXgtcmF0ZS1saXN0L3RheC1yYXRlLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRlc3RBZGRyZXNzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXN0LWFkZHJlc3MtZm9ybS90ZXN0LWFkZHJlc3MtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVzdE9yZGVyQnVpbGRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXN0LW9yZGVyLWJ1aWxkZXIvdGVzdC1vcmRlci1idWlsZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXN0U2hpcHBpbmdNZXRob2RzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rlc3Qtc2hpcHBpbmctbWV0aG9kcy90ZXN0LXNoaXBwaW5nLW1ldGhvZHMuY29tcG9uZW50JztcbmltcG9ydCB7IFpvbmVEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvem9uZS1kZXRhaWwvem9uZS1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IGRlbGV0ZVpvbmVzQnVsa0FjdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy96b25lLWxpc3Qvem9uZS1saXN0LWJ1bGstYWN0aW9ucyc7XG5pbXBvcnQgeyBab25lTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy96b25lLWxpc3Qvem9uZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBab25lTWVtYmVyQ29udHJvbHNEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvem9uZS1tZW1iZXItbGlzdC96b25lLW1lbWJlci1jb250cm9scy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgcmVtb3ZlWm9uZU1lbWJlcnNCdWxrQWN0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL3pvbmUtbWVtYmVyLWxpc3Qvem9uZS1tZW1iZXItbGlzdC1idWxrLWFjdGlvbnMnO1xuaW1wb3J0IHsgWm9uZU1lbWJlckxpc3RIZWFkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvem9uZS1tZW1iZXItbGlzdC96b25lLW1lbWJlci1saXN0LWhlYWRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgWm9uZU1lbWJlckxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvem9uZS1tZW1iZXItbGlzdC96b25lLW1lbWJlci1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXMgfSBmcm9tICcuL3NldHRpbmdzLnJvdXRlcyc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1NoYXJlZE1vZHVsZSwgUm91dGVyTW9kdWxlLmZvckNoaWxkKFtdKV0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IFJPVVRFUyxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChwYWdlU2VydmljZTogUGFnZVNlcnZpY2UpID0+IGNyZWF0ZVJvdXRlcyhwYWdlU2VydmljZSksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgICAgIGRlcHM6IFtQYWdlU2VydmljZV0sXG4gICAgICAgIH0sXG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgVGF4Q2F0ZWdvcnlMaXN0Q29tcG9uZW50LFxuICAgICAgICBUYXhDYXRlZ29yeURldGFpbENvbXBvbmVudCxcbiAgICAgICAgQWRtaW5pc3RyYXRvckxpc3RDb21wb25lbnQsXG4gICAgICAgIFJvbGVMaXN0Q29tcG9uZW50LFxuICAgICAgICBSb2xlRGV0YWlsQ29tcG9uZW50LFxuICAgICAgICBBZG1pbkRldGFpbENvbXBvbmVudCxcbiAgICAgICAgUGVybWlzc2lvbkdyaWRDb21wb25lbnQsXG4gICAgICAgIENvdW50cnlMaXN0Q29tcG9uZW50LFxuICAgICAgICBDb3VudHJ5RGV0YWlsQ29tcG9uZW50LFxuICAgICAgICBUYXhSYXRlTGlzdENvbXBvbmVudCxcbiAgICAgICAgVGF4UmF0ZURldGFpbENvbXBvbmVudCxcbiAgICAgICAgQ2hhbm5lbExpc3RDb21wb25lbnQsXG4gICAgICAgIENoYW5uZWxEZXRhaWxDb21wb25lbnQsXG4gICAgICAgIFNoaXBwaW5nTWV0aG9kTGlzdENvbXBvbmVudCxcbiAgICAgICAgU2hpcHBpbmdNZXRob2REZXRhaWxDb21wb25lbnQsXG4gICAgICAgIFBheW1lbnRNZXRob2RMaXN0Q29tcG9uZW50LFxuICAgICAgICBQYXltZW50TWV0aG9kRGV0YWlsQ29tcG9uZW50LFxuICAgICAgICBHbG9iYWxTZXR0aW5nc0NvbXBvbmVudCxcbiAgICAgICAgVGVzdE9yZGVyQnVpbGRlckNvbXBvbmVudCxcbiAgICAgICAgVGVzdEFkZHJlc3NGb3JtQ29tcG9uZW50LFxuICAgICAgICBTZWxsZXJEZXRhaWxDb21wb25lbnQsXG4gICAgICAgIFNlbGxlckxpc3RDb21wb25lbnQsXG4gICAgICAgIFNoaXBwaW5nTWV0aG9kVGVzdFJlc3VsdENvbXBvbmVudCxcbiAgICAgICAgU2hpcHBpbmdFbGlnaWJpbGl0eVRlc3RSZXN1bHRDb21wb25lbnQsXG4gICAgICAgIFpvbmVMaXN0Q29tcG9uZW50LFxuICAgICAgICBBZGRDb3VudHJ5VG9ab25lRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBab25lTWVtYmVyTGlzdENvbXBvbmVudCxcbiAgICAgICAgWm9uZU1lbWJlckxpc3RIZWFkZXJEaXJlY3RpdmUsXG4gICAgICAgIFpvbmVNZW1iZXJDb250cm9sc0RpcmVjdGl2ZSxcbiAgICAgICAgUHJvZmlsZUNvbXBvbmVudCxcbiAgICAgICAgVGVzdFNoaXBwaW5nTWV0aG9kc0NvbXBvbmVudCxcbiAgICAgICAgWm9uZURldGFpbENvbXBvbmVudCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc01vZHVsZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlOiBCdWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLCBwYWdlU2VydmljZTogUGFnZVNlcnZpY2UpIHtcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlU2VsbGVyc0J1bGtBY3Rpb24pO1xuXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZUNoYW5uZWxzQnVsa0FjdGlvbik7XG5cbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlQWRtaW5pc3RyYXRvcnNCdWxrQWN0aW9uKTtcblxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVSb2xlc0J1bGtBY3Rpb24pO1xuXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGFzc2lnblNoaXBwaW5nTWV0aG9kc1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVTaGlwcGluZ01ldGhvZHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVTaGlwcGluZ01ldGhvZHNCdWxrQWN0aW9uKTtcblxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25QYXltZW50TWV0aG9kc1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVQYXltZW50TWV0aG9kc0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZVBheW1lbnRNZXRob2RzQnVsa0FjdGlvbik7XG5cbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlVGF4Q2F0ZWdvcmllc0J1bGtBY3Rpb24pO1xuXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZVRheFJhdGVzQnVsa0FjdGlvbik7XG5cbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlQ291bnRyaWVzQnVsa0FjdGlvbik7XG5cbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlWm9uZXNCdWxrQWN0aW9uKTtcblxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVab25lTWVtYmVyc0J1bGtBY3Rpb24pO1xuXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnc2VsbGVyLWxpc3QnLFxuICAgICAgICAgICAgdGFiOiBfKCdicmVhZGNydW1iLnNlbGxlcnMnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogU2VsbGVyTGlzdENvbXBvbmVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnc2VsbGVyLWRldGFpbCcsXG4gICAgICAgICAgICB0YWI6IF8oJ3NldHRpbmdzLnNlbGxlcicpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogU2VsbGVyRGV0YWlsQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRTZWxsZXJEZXRhaWxEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdzZWxsZXInLFxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50aXR5ID8gZW50aXR5Lm5hbWUgOiBfKCdzZXR0aW5ncy5jcmVhdGUtbmV3LXNlbGxlcicpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnY2hhbm5lbC1saXN0JyxcbiAgICAgICAgICAgIHRhYjogXygnYnJlYWRjcnVtYi5jaGFubmVscycpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBDaGFubmVsTGlzdENvbXBvbmVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnY2hhbm5lbC1kZXRhaWwnLFxuICAgICAgICAgICAgdGFiOiBfKCdzZXR0aW5ncy5jaGFubmVsJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBDaGFubmVsRGV0YWlsQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRDaGFubmVsRGV0YWlsRG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnY2hhbm5lbCcsXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGVudGl0eS5jb2RlID09PSBERUZBVUxUX0NIQU5ORUxfQ09ERVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdjb21tb24uZGVmYXVsdC1jaGFubmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGVudGl0eS5jb2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBfKCdzZXR0aW5ncy5jcmVhdGUtbmV3LWNoYW5uZWwnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2FkbWluaXN0cmF0b3ItbGlzdCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2JyZWFkY3J1bWIuYWRtaW5pc3RyYXRvcnMnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogQWRtaW5pc3RyYXRvckxpc3RDb21wb25lbnQsXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2FkbWluaXN0cmF0b3ItZGV0YWlsJyxcbiAgICAgICAgICAgIHRhYjogXygnc2V0dGluZ3MuYWRtaW5pc3RyYXRvcicpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQWRtaW5EZXRhaWxDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcXVlcnk6IEdldEFkbWluaXN0cmF0b3JEZXRhaWxEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdhZG1pbmlzdHJhdG9yJyxcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7ZW50aXR5LmZpcnN0TmFtZX0gJHtlbnRpdHkubGFzdE5hbWV9YFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXygnYWRtaW4uY3JlYXRlLW5ldy1hZG1pbmlzdHJhdG9yJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdyb2xlLWxpc3QnLFxuICAgICAgICAgICAgdGFiOiBfKCdicmVhZGNydW1iLnJvbGVzJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IFJvbGVMaXN0Q29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdyb2xlLWRldGFpbCcsXG4gICAgICAgICAgICB0YWI6IF8oJ3NldHRpbmdzLnJvbGUnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IFJvbGVEZXRhaWxDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcXVlcnk6IEdldFJvbGVEZXRhaWxEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdyb2xlJyxcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5kZXNjcmlwdGlvbiA6IF8oJ3NldHRpbmdzLmNyZWF0ZS1uZXctcm9sZScpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnc2hpcHBpbmctbWV0aG9kLWxpc3QnLFxuICAgICAgICAgICAgdGFiOiBfKCdicmVhZGNydW1iLnNoaXBwaW5nLW1ldGhvZHMnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogU2hpcHBpbmdNZXRob2RMaXN0Q29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdzaGlwcGluZy1tZXRob2QtZGV0YWlsJyxcbiAgICAgICAgICAgIHRhYjogXygnc2V0dGluZ3Muc2hpcHBpbmctbWV0aG9kJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBTaGlwcGluZ01ldGhvZERldGFpbENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0U2hpcHBpbmdNZXRob2REZXRhaWxEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdzaGlwcGluZ01ldGhvZCcsXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ3NldHRpbmdzLmNyZWF0ZS1uZXctc2hpcHBpbmctbWV0aG9kJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdzaGlwcGluZy1tZXRob2QtbGlzdCcsXG4gICAgICAgICAgICB0YWI6IF8oJ3NldHRpbmdzLnRlc3Qtc2hpcHBpbmctbWV0aG9kcycpLFxuICAgICAgICAgICAgcm91dGU6ICd0ZXN0JyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogVGVzdFNoaXBwaW5nTWV0aG9kc0NvbXBvbmVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncGF5bWVudC1tZXRob2QtbGlzdCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2JyZWFkY3J1bWIucGF5bWVudC1tZXRob2RzJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IFBheW1lbnRNZXRob2RMaXN0Q29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdwYXltZW50LW1ldGhvZC1kZXRhaWwnLFxuICAgICAgICAgICAgdGFiOiBfKCdzZXR0aW5ncy5wYXltZW50LW1ldGhvZCcpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogUGF5bWVudE1ldGhvZERldGFpbENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0UGF5bWVudE1ldGhvZERldGFpbERvY3VtZW50LFxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ3BheW1lbnRNZXRob2QnLFxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50aXR5ID8gZW50aXR5Lm5hbWUgOiBfKCdzZXR0aW5ncy5jcmVhdGUtbmV3LXBheW1lbnQtbWV0aG9kJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICd0YXgtY2F0ZWdvcnktbGlzdCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2JyZWFkY3J1bWIudGF4LWNhdGVnb3JpZXMnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogVGF4Q2F0ZWdvcnlMaXN0Q29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICd0YXgtY2F0ZWdvcnktZGV0YWlsJyxcbiAgICAgICAgICAgIHRhYjogXygnc2V0dGluZ3MudGF4LWNhdGVnb3J5JyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBUYXhDYXRlZ29yeURldGFpbENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0VGF4Q2F0ZWdvcnlEZXRhaWxEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICd0YXhDYXRlZ29yeScsXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ3NldHRpbmdzLmNyZWF0ZS1uZXctdGF4LWNhdGVnb3J5JyksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICd0YXgtcmF0ZS1saXN0JyxcbiAgICAgICAgICAgIHRhYjogXygnYnJlYWRjcnVtYi50YXgtcmF0ZXMnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogVGF4UmF0ZUxpc3RDb21wb25lbnQsXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3RheC1yYXRlLWRldGFpbCcsXG4gICAgICAgICAgICB0YWI6IF8oJ3NldHRpbmdzLnRheC1yYXRlJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBUYXhSYXRlRGV0YWlsQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRUYXhSYXRlRGV0YWlsRG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAndGF4UmF0ZScsXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ3NldHRpbmdzLmNyZWF0ZS1uZXctdGF4LXJhdGUnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2NvdW50cnktbGlzdCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2JyZWFkY3J1bWIuY291bnRyaWVzJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IENvdW50cnlMaXN0Q29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdjb3VudHJ5LWRldGFpbCcsXG4gICAgICAgICAgICB0YWI6IF8oJ3NldHRpbmdzLmNvdW50cnknKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IENvdW50cnlEZXRhaWxDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcXVlcnk6IEdldENvdW50cnlEZXRhaWxEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdjb3VudHJ5JyxcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnc2V0dGluZ3MuY3JlYXRlLW5ldy1jb3VudHJ5JyksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICd6b25lLWxpc3QnLFxuICAgICAgICAgICAgdGFiOiBfKCdicmVhZGNydW1iLnpvbmVzJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IFpvbmVMaXN0Q29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICd6b25lLWRldGFpbCcsXG4gICAgICAgICAgICB0YWI6IF8oJ3NldHRpbmdzLnpvbmUnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IFpvbmVEZXRhaWxDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcXVlcnk6IEdldFpvbmVEZXRhaWxEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICd6b25lJyxcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnc2V0dGluZ3MuY3JlYXRlLW5ldy16b25lJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdnbG9iYWwtc2V0dGluZy1kZXRhaWwnLFxuICAgICAgICAgICAgdGFiOiBfKCdicmVhZGNydW1iLmdsb2JhbC1zZXR0aW5ncycpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBHbG9iYWxTZXR0aW5nc0NvbXBvbmVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZmlsZScsXG4gICAgICAgICAgICB0YWI6IF8oJ2JyZWFkY3J1bWIucHJvZmlsZScpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBQcm9maWxlQ29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
429
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zZXR0aW5ncy9zcmMvc2V0dGluZ3MubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFFSCwyQkFBMkIsRUFDM0IsOEJBQThCLEVBQzlCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFFeEIsOEJBQThCLEVBQzlCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsK0JBQStCLEVBQy9CLDRCQUE0QixFQUM1Qix3QkFBd0IsRUFDeEIscUJBQXFCLEVBQ3JCLFdBQVcsRUFDWCxZQUFZLEdBQ2YsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM5RixPQUFP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QUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7NEJBQ25FLEtBQUssRUFBRSxJQUFJOzRCQUNYLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQzt5QkFDdEI7cUJBQ0o7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsMkJBQTJCO3dCQUMzQiw2QkFBNkI7d0JBQzdCLDBCQUEwQjt3QkFDMUIsNEJBQTRCO3dCQUM1Qix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsaUNBQWlDO3dCQUNqQyxzQ0FBc0M7d0JBQ3RDLGlCQUFpQjt3QkFDakIsK0JBQStCO3dCQUMvQix1QkFBdUI7d0JBQ3ZCLDZCQUE2Qjt3QkFDN0IsMkJBQTJCO3dCQUMzQixnQkFBZ0I7d0JBQ2hCLDRCQUE0Qjt3QkFDNUIsbUJBQW1CO3FCQUN0QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUk9VVEVTIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgQnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZSxcclxuICAgIGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcixcclxuICAgIEdldEFkbWluaXN0cmF0b3JEZXRhaWxEb2N1bWVudCxcclxuICAgIEdldENoYW5uZWxEZXRhaWxEb2N1bWVudCxcclxuICAgIEdldENvdW50cnlEZXRhaWxEb2N1bWVudCxcclxuICAgIEdldEdsb2JhbFNldHRpbmdzRGV0YWlsRG9jdW1lbnQsXHJcbiAgICBHZXRQYXltZW50TWV0aG9kRGV0YWlsRG9jdW1lbnQsXHJcbiAgICBHZXRSb2xlRGV0YWlsRG9jdW1lbnQsXHJcbiAgICBHZXRTZWxsZXJEZXRhaWxEb2N1bWVudCxcclxuICAgIEdldFNoaXBwaW5nTWV0aG9kRGV0YWlsRG9jdW1lbnQsXHJcbiAgICBHZXRUYXhDYXRlZ29yeURldGFpbERvY3VtZW50LFxyXG4gICAgR2V0VGF4UmF0ZURldGFpbERvY3VtZW50LFxyXG4gICAgR2V0Wm9uZURldGFpbERvY3VtZW50LFxyXG4gICAgUGFnZVNlcnZpY2UsXHJcbiAgICBTaGFyZWRNb2R1bGUsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IERFRkFVTFRfQ0hBTk5FTF9DT0RFIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtY29uc3RhbnRzJztcclxuXHJcbmltcG9ydCB7IEFkZENvdW50cnlUb1pvbmVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRkLWNvdW50cnktdG8tem9uZS1kaWFsb2cvYWRkLWNvdW50cnktdG8tem9uZS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWRtaW5EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW4tZGV0YWlsL2FkbWluLWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBkZWxldGVBZG1pbmlzdHJhdG9yc0J1bGtBY3Rpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvYWRtaW5pc3RyYXRvci1saXN0L2FkbWluaXN0cmF0b3ItbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBBZG1pbmlzdHJhdG9yTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hZG1pbmlzdHJhdG9yLWxpc3QvYWRtaW5pc3RyYXRvci1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENoYW5uZWxEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhbm5lbC1kZXRhaWwvY2hhbm5lbC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgZGVsZXRlQ2hhbm5lbHNCdWxrQWN0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYW5uZWwtbGlzdC9jaGFubmVsLWxpc3QtYnVsay1hY3Rpb25zJztcclxuaW1wb3J0IHsgQ2hhbm5lbExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhbm5lbC1saXN0L2NoYW5uZWwtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb3VudHJ5RGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvdW50cnktZGV0YWlsL2NvdW50cnktZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGRlbGV0ZUNvdW50cmllc0J1bGtBY3Rpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvY291bnRyeS1saXN0L2NvdW50cnktbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBDb3VudHJ5TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb3VudHJ5LWxpc3QvY291bnRyeS1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdsb2JhbFNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dsb2JhbC1zZXR0aW5ncy9nbG9iYWwtc2V0dGluZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGF5bWVudE1ldGhvZERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYXltZW50LW1ldGhvZC1kZXRhaWwvcGF5bWVudC1tZXRob2QtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgICBhc3NpZ25QYXltZW50TWV0aG9kc1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbiAgICBkZWxldGVQYXltZW50TWV0aG9kc0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVQYXltZW50TWV0aG9kc0Zyb21DaGFubmVsQnVsa0FjdGlvbixcclxufSBmcm9tICcuL2NvbXBvbmVudHMvcGF5bWVudC1tZXRob2QtbGlzdC9wYXltZW50LW1ldGhvZC1saXN0LWJ1bGstYWN0aW9ucyc7XHJcbmltcG9ydCB7IFBheW1lbnRNZXRob2RMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BheW1lbnQtbWV0aG9kLWxpc3QvcGF5bWVudC1tZXRob2QtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uR3JpZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wZXJtaXNzaW9uLWdyaWQvcGVybWlzc2lvbi1ncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2ZpbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJvbGVEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm9sZS1kZXRhaWwvcm9sZS1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgZGVsZXRlUm9sZXNCdWxrQWN0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL3JvbGUtbGlzdC9yb2xlLWxpc3QtYnVsay1hY3Rpb25zJztcclxuaW1wb3J0IHsgUm9sZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcm9sZS1saXN0L3JvbGUtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxsZXJEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsbGVyLWRldGFpbC9zZWxsZXItZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGRlbGV0ZVNlbGxlcnNCdWxrQWN0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL3NlbGxlci1saXN0L3NlbGxlci1saXN0LWJ1bGstYWN0aW9ucyc7XHJcbmltcG9ydCB7IFNlbGxlckxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2VsbGVyLWxpc3Qvc2VsbGVyLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2hpcHBpbmdFbGlnaWJpbGl0eVRlc3RSZXN1bHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2hpcHBpbmctZWxpZ2liaWxpdHktdGVzdC1yZXN1bHQvc2hpcHBpbmctZWxpZ2liaWxpdHktdGVzdC1yZXN1bHQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2hpcHBpbmdNZXRob2REZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2hpcHBpbmctbWV0aG9kLWRldGFpbC9zaGlwcGluZy1tZXRob2QtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgICBhc3NpZ25TaGlwcGluZ01ldGhvZHNUb0NoYW5uZWxCdWxrQWN0aW9uLFxyXG4gICAgZGVsZXRlU2hpcHBpbmdNZXRob2RzQnVsa0FjdGlvbixcclxuICAgIHJlbW92ZVNoaXBwaW5nTWV0aG9kc0Zyb21DaGFubmVsQnVsa0FjdGlvbixcclxufSBmcm9tICcuL2NvbXBvbmVudHMvc2hpcHBpbmctbWV0aG9kLWxpc3Qvc2hpcHBpbmctbWV0aG9kLWxpc3QtYnVsay1hY3Rpb25zJztcclxuaW1wb3J0IHsgU2hpcHBpbmdNZXRob2RMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NoaXBwaW5nLW1ldGhvZC1saXN0L3NoaXBwaW5nLW1ldGhvZC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNoaXBwaW5nTWV0aG9kVGVzdFJlc3VsdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaGlwcGluZy1tZXRob2QtdGVzdC1yZXN1bHQvc2hpcHBpbmctbWV0aG9kLXRlc3QtcmVzdWx0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRheENhdGVnb3J5RGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RheC1jYXRlZ29yeS1kZXRhaWwvdGF4LWNhdGVnb3J5LWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBkZWxldGVUYXhDYXRlZ29yaWVzQnVsa0FjdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy90YXgtY2F0ZWdvcnktbGlzdC90YXgtY2F0ZWdvcnktbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBUYXhDYXRlZ29yeUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGF4LWNhdGVnb3J5LWxpc3QvdGF4LWNhdGVnb3J5LWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGF4UmF0ZURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YXgtcmF0ZS1kZXRhaWwvdGF4LXJhdGUtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGRlbGV0ZVRheFJhdGVzQnVsa0FjdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy90YXgtcmF0ZS1saXN0L3RheC1yYXRlLWxpc3QtYnVsay1hY3Rpb25zJztcclxuaW1wb3J0IHsgVGF4UmF0ZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGF4LXJhdGUtbGlzdC90YXgtcmF0ZS1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRlc3RBZGRyZXNzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXN0LWFkZHJlc3MtZm9ybS90ZXN0LWFkZHJlc3MtZm9ybS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXN0T3JkZXJCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rlc3Qtb3JkZXItYnVpbGRlci90ZXN0LW9yZGVyLWJ1aWxkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGVzdFNoaXBwaW5nTWV0aG9kc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90ZXN0LXNoaXBwaW5nLW1ldGhvZHMvdGVzdC1zaGlwcGluZy1tZXRob2RzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFpvbmVEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvem9uZS1kZXRhaWwvem9uZS1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgZGVsZXRlWm9uZXNCdWxrQWN0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL3pvbmUtbGlzdC96b25lLWxpc3QtYnVsay1hY3Rpb25zJztcclxuaW1wb3J0IHsgWm9uZUxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvem9uZS1saXN0L3pvbmUtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBab25lTWVtYmVyQ29udHJvbHNEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvem9uZS1tZW1iZXItbGlzdC96b25lLW1lbWJlci1jb250cm9scy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyByZW1vdmVab25lTWVtYmVyc0J1bGtBY3Rpb24gfSBmcm9tICcuL2NvbXBvbmVudHMvem9uZS1tZW1iZXItbGlzdC96b25lLW1lbWJlci1saXN0LWJ1bGstYWN0aW9ucyc7XHJcbmltcG9ydCB7IFpvbmVNZW1iZXJMaXN0SGVhZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9jb21wb25lbnRzL3pvbmUtbWVtYmVyLWxpc3Qvem9uZS1tZW1iZXItbGlzdC1oZWFkZXIuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgWm9uZU1lbWJlckxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvem9uZS1tZW1iZXItbGlzdC96b25lLW1lbWJlci1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGNyZWF0ZVJvdXRlcyB9IGZyb20gJy4vc2V0dGluZ3Mucm91dGVzJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbU2hhcmVkTW9kdWxlLCBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoW10pXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogUk9VVEVTLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAocGFnZVNlcnZpY2U6IFBhZ2VTZXJ2aWNlKSA9PiBjcmVhdGVSb3V0ZXMocGFnZVNlcnZpY2UpLFxyXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgICAgZGVwczogW1BhZ2VTZXJ2aWNlXSxcclxuICAgICAgICB9LFxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIFRheENhdGVnb3J5TGlzdENvbXBvbmVudCxcclxuICAgICAgICBUYXhDYXRlZ29yeURldGFpbENvbXBvbmVudCxcclxuICAgICAgICBBZG1pbmlzdHJhdG9yTGlzdENvbXBvbmVudCxcclxuICAgICAgICBSb2xlTGlzdENvbXBvbmVudCxcclxuICAgICAgICBSb2xlRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgICAgIEFkbWluRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgICAgIFBlcm1pc3Npb25HcmlkQ29tcG9uZW50LFxyXG4gICAgICAgIENvdW50cnlMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIENvdW50cnlEZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgVGF4UmF0ZUxpc3RDb21wb25lbnQsXHJcbiAgICAgICAgVGF4UmF0ZURldGFpbENvbXBvbmVudCxcclxuICAgICAgICBDaGFubmVsTGlzdENvbXBvbmVudCxcclxuICAgICAgICBDaGFubmVsRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgICAgIFNoaXBwaW5nTWV0aG9kTGlzdENvbXBvbmVudCxcclxuICAgICAgICBTaGlwcGluZ01ldGhvZERldGFpbENvbXBvbmVudCxcclxuICAgICAgICBQYXltZW50TWV0aG9kTGlzdENvbXBvbmVudCxcclxuICAgICAgICBQYXltZW50TWV0aG9kRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgICAgIEdsb2JhbFNldHRpbmdzQ29tcG9uZW50LFxyXG4gICAgICAgIFRlc3RPcmRlckJ1aWxkZXJDb21wb25lbnQsXHJcbiAgICAgICAgVGVzdEFkZHJlc3NGb3JtQ29tcG9uZW50LFxyXG4gICAgICAgIFNlbGxlckRldGFpbENvbXBvbmVudCxcclxuICAgICAgICBTZWxsZXJMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIFNoaXBwaW5nTWV0aG9kVGVzdFJlc3VsdENvbXBvbmVudCxcclxuICAgICAgICBTaGlwcGluZ0VsaWdpYmlsaXR5VGVzdFJlc3VsdENvbXBvbmVudCxcclxuICAgICAgICBab25lTGlzdENvbXBvbmVudCxcclxuICAgICAgICBBZGRDb3VudHJ5VG9ab25lRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgICAgIFpvbmVNZW1iZXJMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIFpvbmVNZW1iZXJMaXN0SGVhZGVyRGlyZWN0aXZlLFxyXG4gICAgICAgIFpvbmVNZW1iZXJDb250cm9sc0RpcmVjdGl2ZSxcclxuICAgICAgICBQcm9maWxlQ29tcG9uZW50LFxyXG4gICAgICAgIFRlc3RTaGlwcGluZ01ldGhvZHNDb21wb25lbnQsXHJcbiAgICAgICAgWm9uZURldGFpbENvbXBvbmVudCxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc01vZHVsZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2U6IEJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UsIHBhZ2VTZXJ2aWNlOiBQYWdlU2VydmljZSkge1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZVNlbGxlcnNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlQ2hhbm5lbHNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlQWRtaW5pc3RyYXRvcnNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlUm9sZXNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduU2hpcHBpbmdNZXRob2RzVG9DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24ocmVtb3ZlU2hpcHBpbmdNZXRob2RzRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVTaGlwcGluZ01ldGhvZHNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduUGF5bWVudE1ldGhvZHNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVQYXltZW50TWV0aG9kc0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlUGF5bWVudE1ldGhvZHNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlVGF4Q2F0ZWdvcmllc0J1bGtBY3Rpb24pO1xyXG5cclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVUYXhSYXRlc0J1bGtBY3Rpb24pO1xyXG5cclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVDb3VudHJpZXNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlWm9uZXNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24ocmVtb3ZlWm9uZU1lbWJlcnNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnc2VsbGVyLWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2JyZWFkY3J1bWIuc2VsbGVycycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogU2VsbGVyTGlzdENvbXBvbmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdzZWxsZXItZGV0YWlsJyxcclxuICAgICAgICAgICAgdGFiOiBfKCdzZXR0aW5ncy5zZWxsZXInKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IFNlbGxlckRldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRTZWxsZXJEZXRhaWxEb2N1bWVudCxcclxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ3NlbGxlcicsXHJcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ3NldHRpbmdzLmNyZWF0ZS1uZXctc2VsbGVyJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnY2hhbm5lbC1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdicmVhZGNydW1iLmNoYW5uZWxzJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBDaGFubmVsTGlzdENvbXBvbmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdjaGFubmVsLWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnc2V0dGluZ3MuY2hhbm5lbCcpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQ2hhbm5lbERldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRDaGFubmVsRGV0YWlsRG9jdW1lbnQsXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdjaGFubmVsJyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBlbnRpdHkuY29kZSA9PT0gREVGQVVMVF9DSEFOTkVMX0NPREVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdjb21tb24uZGVmYXVsdC1jaGFubmVsJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogZW50aXR5LmNvZGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXygnc2V0dGluZ3MuY3JlYXRlLW5ldy1jaGFubmVsJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnYWRtaW5pc3RyYXRvci1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdicmVhZGNydW1iLmFkbWluaXN0cmF0b3JzJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBBZG1pbmlzdHJhdG9yTGlzdENvbXBvbmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdhZG1pbmlzdHJhdG9yLWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnc2V0dGluZ3MuYWRtaW5pc3RyYXRvcicpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQWRtaW5EZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0QWRtaW5pc3RyYXRvckRldGFpbERvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnYWRtaW5pc3RyYXRvcicsXHJcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7ZW50aXR5LmZpcnN0TmFtZX0gJHtlbnRpdHkubGFzdE5hbWV9YFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBfKCdhZG1pbi5jcmVhdGUtbmV3LWFkbWluaXN0cmF0b3InKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdyb2xlLWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2JyZWFkY3J1bWIucm9sZXMnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IFJvbGVMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3JvbGUtZGV0YWlsJyxcclxuICAgICAgICAgICAgdGFiOiBfKCdzZXR0aW5ncy5yb2xlJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBSb2xlRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcXVlcnk6IEdldFJvbGVEZXRhaWxEb2N1bWVudCxcclxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ3JvbGUnLFxyXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50aXR5ID8gZW50aXR5LmRlc2NyaXB0aW9uIDogXygnc2V0dGluZ3MuY3JlYXRlLW5ldy1yb2xlJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnc2hpcHBpbmctbWV0aG9kLWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2JyZWFkY3J1bWIuc2hpcHBpbmctbWV0aG9kcycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogU2hpcHBpbmdNZXRob2RMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3NoaXBwaW5nLW1ldGhvZC1kZXRhaWwnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ3NldHRpbmdzLnNoaXBwaW5nLW1ldGhvZCcpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogU2hpcHBpbmdNZXRob2REZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0U2hpcHBpbmdNZXRob2REZXRhaWxEb2N1bWVudCxcclxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ3NoaXBwaW5nTWV0aG9kJyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnc2V0dGluZ3MuY3JlYXRlLW5ldy1zaGlwcGluZy1tZXRob2QnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdzaGlwcGluZy1tZXRob2QtbGlzdCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnc2V0dGluZ3MudGVzdC1zaGlwcGluZy1tZXRob2RzJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAndGVzdCcsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogVGVzdFNoaXBwaW5nTWV0aG9kc0NvbXBvbmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdwYXltZW50LW1ldGhvZC1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdicmVhZGNydW1iLnBheW1lbnQtbWV0aG9kcycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogUGF5bWVudE1ldGhvZExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncGF5bWVudC1tZXRob2QtZGV0YWlsJyxcclxuICAgICAgICAgICAgdGFiOiBfKCdzZXR0aW5ncy5wYXltZW50LW1ldGhvZCcpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogUGF5bWVudE1ldGhvZERldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRQYXltZW50TWV0aG9kRGV0YWlsRG9jdW1lbnQsXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdwYXltZW50TWV0aG9kJyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnc2V0dGluZ3MuY3JlYXRlLW5ldy1wYXltZW50LW1ldGhvZCcpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3RheC1jYXRlZ29yeS1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdicmVhZGNydW1iLnRheC1jYXRlZ29yaWVzJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBUYXhDYXRlZ29yeUxpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAndGF4LWNhdGVnb3J5LWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnc2V0dGluZ3MudGF4LWNhdGVnb3J5JyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBUYXhDYXRlZ29yeURldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRUYXhDYXRlZ29yeURldGFpbERvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAndGF4Q2F0ZWdvcnknLFxyXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50aXR5ID8gZW50aXR5Lm5hbWUgOiBfKCdzZXR0aW5ncy5jcmVhdGUtbmV3LXRheC1jYXRlZ29yeScpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3RheC1yYXRlLWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2JyZWFkY3J1bWIudGF4LXJhdGVzJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBUYXhSYXRlTGlzdENvbXBvbmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICd0YXgtcmF0ZS1kZXRhaWwnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ3NldHRpbmdzLnRheC1yYXRlJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBUYXhSYXRlRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcXVlcnk6IEdldFRheFJhdGVEZXRhaWxEb2N1bWVudCxcclxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ3RheFJhdGUnLFxyXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50aXR5ID8gZW50aXR5Lm5hbWUgOiBfKCdzZXR0aW5ncy5jcmVhdGUtbmV3LXRheC1yYXRlJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnY291bnRyeS1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdicmVhZGNydW1iLmNvdW50cmllcycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogQ291bnRyeUxpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnY291bnRyeS1kZXRhaWwnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ3NldHRpbmdzLmNvdW50cnknKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IENvdW50cnlEZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0Q291bnRyeURldGFpbERvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnY291bnRyeScsXHJcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ3NldHRpbmdzLmNyZWF0ZS1uZXctY291bnRyeScpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3pvbmUtbGlzdCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnYnJlYWRjcnVtYi56b25lcycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogWm9uZUxpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnem9uZS1kZXRhaWwnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ3NldHRpbmdzLnpvbmUnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IFpvbmVEZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0Wm9uZURldGFpbERvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnem9uZScsXHJcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ3NldHRpbmdzLmNyZWF0ZS1uZXctem9uZScpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2dsb2JhbC1zZXR0aW5nLWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnYnJlYWRjcnVtYi5nbG9iYWwtc2V0dGluZ3MnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IEdsb2JhbFNldHRpbmdzQ29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3Byb2ZpbGUnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2JyZWFkY3J1bWIucHJvZmlsZScpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZmlsZUNvbXBvbmVudCxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=