@eui/components 18.2.0-snapshot-1726189861918 → 18.2.0-snapshot-1726671866540
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/components/EuiDatepickerComponent.html +37 -0
- package/docs/components/EuiFilePreviewComponent.html +112 -448
- package/docs/components/EuiFileUploadComponent.html +157 -1
- package/docs/dependencies.html +2 -2
- package/docs/injectables/EuiFileUploadUtilsService.html +70 -0
- package/docs/js/menu-wc.js +9 -9
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/modules/EuiFileUploadModule.html +9 -0
- package/esm2022/eui-datepicker/eui-datepicker.component.mjs +6 -3
- package/esm2022/eui-file-upload/eui-file-upload.component.mjs +39 -5
- package/esm2022/eui-file-upload/eui-file-upload.module.mjs +6 -5
- package/esm2022/eui-file-upload/file-preview/file-preview.component.mjs +42 -63
- package/esm2022/eui-file-upload/index.mjs +2 -1
- package/esm2022/eui-file-upload/utils/eui-file-upload.utils.mjs +34 -1
- package/eui-datepicker/eui-datepicker.component.d.ts +2 -1
- package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
- package/eui-file-upload/eui-file-upload.component.d.ts +31 -3
- package/eui-file-upload/eui-file-upload.component.d.ts.map +1 -1
- package/eui-file-upload/eui-file-upload.module.d.ts +2 -1
- package/eui-file-upload/eui-file-upload.module.d.ts.map +1 -1
- package/eui-file-upload/file-preview/file-preview.component.d.ts +29 -25
- package/eui-file-upload/file-preview/file-preview.component.d.ts.map +1 -1
- package/eui-file-upload/index.d.ts +1 -0
- package/eui-file-upload/index.d.ts.map +1 -1
- package/eui-file-upload/utils/eui-file-upload.utils.d.ts +6 -0
- package/eui-file-upload/utils/eui-file-upload.utils.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-datepicker.mjs +5 -2
- package/fesm2022/eui-components-eui-datepicker.mjs.map +1 -1
- package/fesm2022/eui-components-eui-file-upload.mjs +116 -71
- package/fesm2022/eui-components-eui-file-upload.mjs.map +1 -1
- package/package.json +3 -3
@@ -1,5 +1,6 @@
|
|
1
|
-
import { Component, HostBinding, HostListener, Input, ViewEncapsulation, ViewChildren, Output, EventEmitter, booleanAttribute, } from '@angular/core';
|
1
|
+
import { Component, HostBinding, HostListener, Input, ViewEncapsulation, ViewChildren, Output, EventEmitter, booleanAttribute, ContentChildren, } from '@angular/core';
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
3
|
+
import { EuiTemplateDirective } from '@eui/components/directives';
|
3
4
|
import * as i0 from "@angular/core";
|
4
5
|
import * as i1 from "@angular/common";
|
5
6
|
import * as i2 from "@eui/components/eui-button";
|
@@ -72,6 +73,25 @@ export class EuiFileUploadComponent {
|
|
72
73
|
this.hasPreviewAsImage = false;
|
73
74
|
}
|
74
75
|
}
|
76
|
+
ngAfterViewInit() {
|
77
|
+
// TODO EUI19: Change detection to OnPush to get rid of setTimeout workaround.
|
78
|
+
setTimeout(() => {
|
79
|
+
this.templates.forEach((item) => {
|
80
|
+
if (item.getType() === 'uploadedFile') {
|
81
|
+
this.uploadedFileTemplate = item.template;
|
82
|
+
}
|
83
|
+
if (item.getType() === 'browseButton') {
|
84
|
+
this.browseButtonTemplate = item.template;
|
85
|
+
}
|
86
|
+
if (item.getType() === 'resetButton') {
|
87
|
+
this.resetButtonTemplate = item.template;
|
88
|
+
}
|
89
|
+
if (item.getType() === 'progressBar') {
|
90
|
+
this.progressBarTemplate = item.template;
|
91
|
+
}
|
92
|
+
});
|
93
|
+
});
|
94
|
+
}
|
75
95
|
onDragEnter() {
|
76
96
|
if (!this.isDropAreaDisabled) {
|
77
97
|
this.dragEntered = true;
|
@@ -80,6 +100,10 @@ export class EuiFileUploadComponent {
|
|
80
100
|
onDragLeave() {
|
81
101
|
this.dragEntered = false;
|
82
102
|
}
|
103
|
+
/**
|
104
|
+
* Remove a file from the array of files choosen by the user.
|
105
|
+
* @param index Index of the file to remove in the array.
|
106
|
+
*/
|
83
107
|
removeFromList(index) {
|
84
108
|
this.files = this.files.filter((f, i) => i !== index);
|
85
109
|
if (this.files.length === 0) {
|
@@ -88,6 +112,10 @@ export class EuiFileUploadComponent {
|
|
88
112
|
this.getTotalSize();
|
89
113
|
this.onChange([...this.uploadedFiles, ...this.files]);
|
90
114
|
}
|
115
|
+
/**
|
116
|
+
* Remove a file from the array of files provided to the component as existing values.
|
117
|
+
* @param index Index of the file to remove in the array.
|
118
|
+
*/
|
91
119
|
removeFromUploadedList(index) {
|
92
120
|
this.uploadedFiles = this.uploadedFiles.filter((f, i) => i !== index);
|
93
121
|
if (this.files.length === 0) {
|
@@ -96,6 +124,9 @@ export class EuiFileUploadComponent {
|
|
96
124
|
this.getTotalSize();
|
97
125
|
this.onChange([...this.uploadedFiles, ...this.files]);
|
98
126
|
}
|
127
|
+
/**
|
128
|
+
* Reset the list of files in the component.
|
129
|
+
*/
|
99
130
|
resetList() {
|
100
131
|
this.files = [];
|
101
132
|
this.uploadedFiles = [];
|
@@ -133,13 +164,13 @@ export class EuiFileUploadComponent {
|
|
133
164
|
});
|
134
165
|
}
|
135
166
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EuiFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
136
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
167
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: EuiFileUploadComponent, selector: "eui-file-upload", inputs: { e2eAttr: "e2eAttr", progress: "progress", accept: "accept", maxFiles: "maxFiles", isMultiple: ["isMultiple", "isMultiple", booleanAttribute], hasProgressBar: ["hasProgressBar", "hasProgressBar", booleanAttribute], hasPreview: ["hasPreview", "hasPreview", booleanAttribute], hasPreviewAsImage: ["hasPreviewAsImage", "hasPreviewAsImage", booleanAttribute], hasPreviewAsIcon: ["hasPreviewAsIcon", "hasPreviewAsIcon", booleanAttribute], hasTotalSizeDisplayed: ["hasTotalSizeDisplayed", "hasTotalSizeDisplayed", booleanAttribute], hasResetButton: ["hasResetButton", "hasResetButton", booleanAttribute], hasDragArea: ["hasDragArea", "hasDragArea", booleanAttribute], isItemsClickable: ["isItemsClickable", "isItemsClickable", booleanAttribute] }, outputs: { fileDrop: "fileDrop", itemClick: "itemClick" }, host: { listeners: { "change": "emitFiles($event.target.files)" }, properties: { "class": "this.cssClasses" } }, providers: [
|
137
168
|
{
|
138
169
|
provide: NG_VALUE_ACCESSOR,
|
139
170
|
useExisting: EuiFileUploadComponent,
|
140
171
|
multi: true,
|
141
172
|
},
|
142
|
-
], viewQueries: [{ propertyName: "fileInputs", predicate: ["input"], descendants: true }], ngImport: i0, template: "<div\n
|
173
|
+
], queries: [{ propertyName: "templates", predicate: EuiTemplateDirective }], viewQueries: [{ propertyName: "fileInputs", predicate: ["input"], descendants: true }], ngImport: i0, template: "@if (hasDragArea) {\n <div\n class=\"eui-file-upload__drop-area\"\n [class.eui-file-upload__drop-area--active]=\"dragEntered\"\n [class.eui-file-upload__drop-area--disabled]=\"isDropAreaDisabled\">\n <span class=\"eui-file-upload__fake-btn\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</span>\n <span>{{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}</span>\n <input\n #input\n class=\"eui-file-upload__file-input\"\n attr.aria-label=\"{{ 'eui.euifileupload.CHOOSE-FILE' | translate }} 'or' {{\n 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate\n }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n [attr.disabled]=\"isDropAreaDisabled ? 'disabled' : null\"\n [multiple]=\"isMultiple\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\" />\n </div>\n} @else {\n <div class=\"eui-file-upload__simple-input-file\">\n <label for=\"file-{{ randomNumberId }}\">\n @if (browseButtonTemplate) {\n <ng-template [ngTemplateOutlet]=\"browseButtonTemplate\"></ng-template>\n } @else {\n <button euiButton type=\"button\" (click)=\"openBrowseWindow()\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</button>\n }\n </label>\n \n @if (isMultiple) {\n <input\n #input\n aria-label=\"Choose Multiple Files\"\n class=\"file-input\"\n id=\"file-{{ randomNumberId }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n multiple />\n } @else {\n <input\n #input\n aria-label=\"Choose a single file\"\n class=\"file-input\"\n id=\"file-{{ randomNumberId }}\"\n type=\"file\"\n accept=\"{{ accept }}\" />\n }\n </div>\n}\n\n@if (hasProgressBar) {\n @if (progressBarTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"progressBarTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { progress } }\">\n </ng-template>\n } @else {\n <eui-file-upload-progress [progress]=\"progress\"></eui-file-upload-progress>\n }\n}\n\n@for (uploadedFile of uploadedFiles; let i = $index; track $index) {\n <div>\n <eui-file-preview\n [isItemsClickable]=\"isItemsClickable\"\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n [uploadedFileTemplate]=\"uploadedFileTemplate\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromUploadedList($event)\">\n </eui-file-preview>\n </div>\n}\n\n@for (file of files; let i = $index; track $index) {\n <div>\n <eui-file-preview\n isFileObject\n [isItemsClickable]=\"isItemsClickable\"\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n [uploadedFileTemplate]=\"uploadedFileTemplate\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromList($event)\">\n </eui-file-preview>\n </div>\n}\n\n@if (filesTotalSize && hasTotalSizeDisplayed) {\n <div class=\"eui-file-upload__total-size\">\n {{ filesTotalSize | filesize }} {{ 'eui.euifileupload.TOTAL-SIZE' | translate }}\n </div>\n}\n\n<ng-content></ng-content>\n\n@if (showResetBtn) {\n @if (resetButtonTemplate) {\n <ng-template [ngTemplateOutlet]=\"resetButtonTemplate\"></ng-template>\n } @else {\n <button euiButton type=\"button\" (click)=\"resetList()\">\n {{ 'eui.euifileupload.RESET-LIST' | translate }}\n </button>\n }\n}\n", styles: [".eui-18 .eui-file-upload__total-size{margin-bottom:1rem;font:var(--eui-f-m-bold)}.eui-18 .eui-file-upload__drop-area{outline:1px dashed var(--eui-c-info);border-radius:var(--eui-br-m);margin:0 0 10px;padding:30px;position:relative;-webkit-transition:.2s;transition:.2s}.eui-18 .eui-file-upload__drop-area--active{background-color:var(--eui-c-primary-bg);outline:3px dashed var(--eui-c-info);border-radius:var(--eui-br-m);margin:0 0 10px;padding:30px;position:relative;-webkit-transition:.2s;transition:.2s}.eui-18 .eui-file-upload__drop-area--disabled{opacity:.75;cursor:not-allowed}.eui-18 .eui-file-upload__drop-area--disabled .file-input{cursor:default}.eui-18 .eui-file-upload__fake-btn{background-color:#fff;border:var(--eui-bw-xs) solid #9e9ec4;border-radius:var(--eui-br-m);margin-right:8px;padding:8px 15px}.eui-18 .eui-file-upload__file-input{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.eui-18 .eui-file-upload__file-input:not(:disabled){cursor:pointer}.eui-18 .eui-file-upload__simple-input-file{margin-bottom:var(--eui-s-xs)}.eui-18 .eui-file-upload__simple-input-file .file-input{display:none}.eui-18 .eui-file-upload__preview{align-items:center;display:flex;justify-content:space-between;margin:5px 0}.eui-18 .eui-file-upload__preview--left{align-items:center;display:flex;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-file-upload__preview--left__image{margin-right:var(--eui-s-m)}.eui-18 .eui-file-upload__preview--left__image img{width:180px}.eui-18 .eui-file-upload__preview--left__image .loading-container{text-align:center;width:180px}.eui-18 .eui-file-upload__preview--left__filename{display:block}.eui-18 .eui-file-upload__preview--right{align-items:center;display:flex;margin-left:auto}.eui-18 .eui-file-upload__progress-bar-container{margin-bottom:var(--eui-s-2xs)}.eui-18 .eui-file-upload__progress-bar-container .progress-bar{background-color:var(--eui-c-primary);height:var(--eui-s-2xs)}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EuiFileUploadProgressComponent, selector: "eui-file-upload-progress", inputs: ["progress"] }, { kind: "component", type: i4.EuiFilePreviewComponent, selector: "eui-file-preview", inputs: ["file", "uploadedFileTemplate", "index", "previewAsIconConfig", "hasPreview", "isFilenameDisplayed", "isFilesizeDisplayed", "isFiletypeDisplayed", "hasPreviewAsImage", "hasPreviewAsIcon", "isItemsClickable", "isFileObject"], outputs: ["removeFromList", "itemClick"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.EuiFileSizePipe, name: "filesize" }], encapsulation: i0.ViewEncapsulation.None }); }
|
143
174
|
}
|
144
175
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EuiFileUploadComponent, decorators: [{
|
145
176
|
type: Component,
|
@@ -149,7 +180,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
149
180
|
useExisting: EuiFileUploadComponent,
|
150
181
|
multi: true,
|
151
182
|
},
|
152
|
-
], encapsulation: ViewEncapsulation.None, template: "<div\n
|
183
|
+
], encapsulation: ViewEncapsulation.None, template: "@if (hasDragArea) {\n <div\n class=\"eui-file-upload__drop-area\"\n [class.eui-file-upload__drop-area--active]=\"dragEntered\"\n [class.eui-file-upload__drop-area--disabled]=\"isDropAreaDisabled\">\n <span class=\"eui-file-upload__fake-btn\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</span>\n <span>{{ 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate }}</span>\n <input\n #input\n class=\"eui-file-upload__file-input\"\n attr.aria-label=\"{{ 'eui.euifileupload.CHOOSE-FILE' | translate }} 'or' {{\n 'eui.euifileupload.DRAG-AND-DROP-FILE-HERE' | translate\n }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n [attr.disabled]=\"isDropAreaDisabled ? 'disabled' : null\"\n [multiple]=\"isMultiple\"\n (dragenter)=\"onDragEnter()\"\n (dragleave)=\"onDragLeave()\" />\n </div>\n} @else {\n <div class=\"eui-file-upload__simple-input-file\">\n <label for=\"file-{{ randomNumberId }}\">\n @if (browseButtonTemplate) {\n <ng-template [ngTemplateOutlet]=\"browseButtonTemplate\"></ng-template>\n } @else {\n <button euiButton type=\"button\" (click)=\"openBrowseWindow()\">{{ 'eui.euifileupload.CHOOSE-FILE' | translate }}</button>\n }\n </label>\n \n @if (isMultiple) {\n <input\n #input\n aria-label=\"Choose Multiple Files\"\n class=\"file-input\"\n id=\"file-{{ randomNumberId }}\"\n type=\"file\"\n accept=\"{{ accept }}\"\n multiple />\n } @else {\n <input\n #input\n aria-label=\"Choose a single file\"\n class=\"file-input\"\n id=\"file-{{ randomNumberId }}\"\n type=\"file\"\n accept=\"{{ accept }}\" />\n }\n </div>\n}\n\n@if (hasProgressBar) {\n @if (progressBarTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"progressBarTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { progress } }\">\n </ng-template>\n } @else {\n <eui-file-upload-progress [progress]=\"progress\"></eui-file-upload-progress>\n }\n}\n\n@for (uploadedFile of uploadedFiles; let i = $index; track $index) {\n <div>\n <eui-file-preview\n [isItemsClickable]=\"isItemsClickable\"\n [index]=\"i\"\n [file]=\"uploadedFile\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n [uploadedFileTemplate]=\"uploadedFileTemplate\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromUploadedList($event)\">\n </eui-file-preview>\n </div>\n}\n\n@for (file of files; let i = $index; track $index) {\n <div>\n <eui-file-preview\n isFileObject\n [isItemsClickable]=\"isItemsClickable\"\n [index]=\"i\"\n [file]=\"file\"\n [hasPreview]=\"hasPreview\"\n [hasPreviewAsImage]=\"hasPreviewAsImage\"\n [hasPreviewAsIcon]=\"hasPreviewAsIcon\"\n [uploadedFileTemplate]=\"uploadedFileTemplate\"\n (itemClick)=\"onItemClick($event)\"\n (removeFromList)=\"removeFromList($event)\">\n </eui-file-preview>\n </div>\n}\n\n@if (filesTotalSize && hasTotalSizeDisplayed) {\n <div class=\"eui-file-upload__total-size\">\n {{ filesTotalSize | filesize }} {{ 'eui.euifileupload.TOTAL-SIZE' | translate }}\n </div>\n}\n\n<ng-content></ng-content>\n\n@if (showResetBtn) {\n @if (resetButtonTemplate) {\n <ng-template [ngTemplateOutlet]=\"resetButtonTemplate\"></ng-template>\n } @else {\n <button euiButton type=\"button\" (click)=\"resetList()\">\n {{ 'eui.euifileupload.RESET-LIST' | translate }}\n </button>\n }\n}\n", styles: [".eui-18 .eui-file-upload__total-size{margin-bottom:1rem;font:var(--eui-f-m-bold)}.eui-18 .eui-file-upload__drop-area{outline:1px dashed var(--eui-c-info);border-radius:var(--eui-br-m);margin:0 0 10px;padding:30px;position:relative;-webkit-transition:.2s;transition:.2s}.eui-18 .eui-file-upload__drop-area--active{background-color:var(--eui-c-primary-bg);outline:3px dashed var(--eui-c-info);border-radius:var(--eui-br-m);margin:0 0 10px;padding:30px;position:relative;-webkit-transition:.2s;transition:.2s}.eui-18 .eui-file-upload__drop-area--disabled{opacity:.75;cursor:not-allowed}.eui-18 .eui-file-upload__drop-area--disabled .file-input{cursor:default}.eui-18 .eui-file-upload__fake-btn{background-color:#fff;border:var(--eui-bw-xs) solid #9e9ec4;border-radius:var(--eui-br-m);margin-right:8px;padding:8px 15px}.eui-18 .eui-file-upload__file-input{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.eui-18 .eui-file-upload__file-input:not(:disabled){cursor:pointer}.eui-18 .eui-file-upload__simple-input-file{margin-bottom:var(--eui-s-xs)}.eui-18 .eui-file-upload__simple-input-file .file-input{display:none}.eui-18 .eui-file-upload__preview{align-items:center;display:flex;justify-content:space-between;margin:5px 0}.eui-18 .eui-file-upload__preview--left{align-items:center;display:flex;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-18 .eui-file-upload__preview--left__image{margin-right:var(--eui-s-m)}.eui-18 .eui-file-upload__preview--left__image img{width:180px}.eui-18 .eui-file-upload__preview--left__image .loading-container{text-align:center;width:180px}.eui-18 .eui-file-upload__preview--left__filename{display:block}.eui-18 .eui-file-upload__preview--right{align-items:center;display:flex;margin-left:auto}.eui-18 .eui-file-upload__progress-bar-container{margin-bottom:var(--eui-s-2xs)}.eui-18 .eui-file-upload__progress-bar-container .progress-bar{background-color:var(--eui-c-primary);height:var(--eui-s-2xs)}\n"] }]
|
153
184
|
}], propDecorators: { e2eAttr: [{
|
154
185
|
type: Input
|
155
186
|
}], progress: [{
|
@@ -165,6 +196,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
165
196
|
}], cssClasses: [{
|
166
197
|
type: HostBinding,
|
167
198
|
args: ['class']
|
199
|
+
}], templates: [{
|
200
|
+
type: ContentChildren,
|
201
|
+
args: [EuiTemplateDirective]
|
168
202
|
}], fileInputs: [{
|
169
203
|
type: ViewChildren,
|
170
204
|
args: ['input']
|
@@ -199,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
199
233
|
type: HostListener,
|
200
234
|
args: ['change', ['$event.target.files']]
|
201
235
|
}] } });
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1maWxlLXVwbG9hZC9ldWktZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWZpbGUtdXBsb2FkL2V1aS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLGlCQUFpQixFQUVqQixZQUFZLEVBRVosTUFBTSxFQUNOLFlBQVksRUFDWixnQkFBZ0IsR0FDbkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQWlCekUsTUFBTSxPQUFPLHNCQUFzQjtJQWJuQztRQWNhLFlBQU8sR0FBRyxpQkFBaUIsQ0FBQztRQUU1QixXQUFNLEdBQUcsR0FBRyxDQUFDO1FBRVosYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDeEMsbUhBQW1IO1FBQ25ILDhEQUE4RDtRQUNwRCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQXlDLENBQUM7UUFXekUsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixtQkFBYyxHQUFHLENBQUMsQ0FBQztRQUNuQixtQkFBYyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ25ELGtCQUFhLEdBQStCLEVBQUUsQ0FBQztRQUMvQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUdhLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDekIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLDBCQUFxQixHQUFHLElBQUksQ0FBQztRQUM3QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUE4R2pFLG1IQUFtSDtRQUNuSCw4REFBOEQ7UUFDdEQsYUFBUSxHQUFRLEdBQVMsRUFBRSxHQUFpQyxDQUFDLENBQUM7S0FRekU7SUFoSkcsSUFDVyxVQUFVO1FBQ2pCLE9BQU87WUFDSCxpQkFBaUI7U0FDcEI7YUFDSSxJQUFJLENBQUMsR0FBRyxDQUFDO2FBQ1QsSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQW1CZ0QsU0FBUyxDQUFDLFFBQWtCO1FBQ3pFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN0RCxLQUFLLE1BQU0sUUFBUSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hHLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNwRCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFFcEQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUNqRixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztnQkFFRCxDQUFDLEVBQUUsQ0FBQztZQUNSLENBQUM7UUFFTCxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkcsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDbEQsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNsQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzVILENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUV0RCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxLQUFhO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUM7UUFFdEUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sU0FBUztRQUNaLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLGdCQUFnQjtRQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVELG1IQUFtSDtJQUNuSCw4REFBOEQ7SUFDdkQsV0FBVyxDQUFDLENBQXdDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxtSEFBbUg7SUFDbkgsOERBQThEO0lBQzlELFVBQVUsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELG1IQUFtSDtJQUNuSCw4REFBOEQ7SUFDOUQsZ0JBQWdCLENBQUMsRUFBTztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsbUhBQW1IO0lBQ25ILDhEQUE4RDtJQUM5RCxpQkFBaUIsQ0FBQyxFQUFPLElBQXdDLENBQUM7SUFNMUQsWUFBWTtRQUNoQixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBekpRLHNCQUFzQjtrR0FBdEIsc0JBQXNCLG9LQTBCWCxnQkFBZ0Isd0RBQ2hCLGdCQUFnQiw0Q0FDaEIsZ0JBQWdCLGlFQUNoQixnQkFBZ0IsOERBQ2hCLGdCQUFnQiw2RUFDaEIsZ0JBQWdCLHdEQUNoQixnQkFBZ0IsK0NBQ2hCLGdCQUFnQiw4REFDaEIsZ0JBQWdCLDRMQTVDekI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsc0JBQXNCO2dCQUNuQyxLQUFLLEVBQUUsSUFBSTthQUNkO1NBQ0osa0hDM0JMLHErRkErRUE7OzJGRGhEYSxzQkFBc0I7a0JBYmxDLFNBQVM7K0JBQ0ksaUJBQWlCLGFBRWhCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsd0JBQXdCOzRCQUNuQyxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJOzhCQUc1QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUdHLFNBQVM7c0JBQWxCLE1BQU07Z0JBR0ksVUFBVTtzQkFEcEIsV0FBVzt1QkFBQyxPQUFPO2dCQWNHLFVBQVU7c0JBQWhDLFlBQVk7dUJBQUMsT0FBTztnQkFFbUIsVUFBVTtzQkFBakQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxjQUFjO3NCQUFyRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFVBQVU7c0JBQWpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsaUJBQWlCO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLGdCQUFnQjtzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxxQkFBcUI7c0JBQTVELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsY0FBYztzQkFBckQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxXQUFXO3NCQUFsRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLGdCQUFnQjtzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFVyxTQUFTO3NCQUF6RCxZQUFZO3VCQUFDLFFBQVEsRUFBRSxDQUFDLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBib29sZWFuQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgRXVpVXBsb2FkZWRGaWxlSW50ZXJmYWNlIH0gZnJvbSAnLi9tb2RlbHMvdXBsb2FkZWQtZmlsZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLWZpbGUtdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRXVpRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLWZpbGUtdXBsb2FkJztcbiAgICBASW5wdXQoKSBwcm9ncmVzczogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGFjY2VwdCA9ICcqJztcbiAgICBASW5wdXQoKSBtYXhGaWxlczogbnVtYmVyO1xuICAgIEBPdXRwdXQoKSBmaWxlRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAT3V0cHV0KCkgaXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxCbG9iIHwgRXVpVXBsb2FkZWRGaWxlSW50ZXJmYWNlIHwgYW55PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnZXVpLWZpbGUtdXBsb2FkJyxcbiAgICAgICAgXVxuICAgICAgICAgICAgLmpvaW4oJyAnKVxuICAgICAgICAgICAgLnRyaW0oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmlsZXM6IEZpbGVbXSA9IFtdO1xuICAgIHB1YmxpYyBmaWxlc1RvdGFsU2l6ZSA9IDA7XG4gICAgcHVibGljIHJhbmRvbU51bWJlcklkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApO1xuICAgIHB1YmxpYyB1cGxvYWRlZEZpbGVzOiBFdWlVcGxvYWRlZEZpbGVJbnRlcmZhY2VbXSA9IFtdO1xuICAgIHB1YmxpYyBkcmFnRW50ZXJlZCA9IGZhbHNlO1xuICAgIEBWaWV3Q2hpbGRyZW4oJ2lucHV0JykgZmlsZUlucHV0czogUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4+O1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzTXVsdGlwbGUgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNQcm9ncmVzc0JhciA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1ByZXZpZXcgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNQcmV2aWV3QXNJbWFnZSA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1ByZXZpZXdBc0ljb24gPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzVG90YWxTaXplRGlzcGxheWVkID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzUmVzZXRCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNEcmFnQXJlYSA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0l0ZW1zQ2xpY2thYmxlID0gZmFsc2U7XG5cbiAgICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudC50YXJnZXQuZmlsZXMnXSkgZW1pdEZpbGVzKGZpbGVMaXN0OiBGaWxlTGlzdCk6IHZvaWQge1xuICAgICAgICBsZXQgaSA9IFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLnRoaXMuZmlsZXNdLmxlbmd0aDtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmaWxlTGlzdCkge1xuICAgICAgICAgICAgaWYgKGZpbGVMaXN0W3Byb3BlcnR5XSAmJiB0eXBlb2YgZmlsZUxpc3RbcHJvcGVydHldID09PSAnb2JqZWN0JyAmJiAoIXRoaXMubWF4RmlsZXMgfHwgaSA8IHRoaXMubWF4RmlsZXMpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlTGlzdFtwcm9wZXJ0eV0ubmFtZS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVtmaWxlTmFtZS5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjY2VwdC5pbmRleE9mKGZpbGVFeHRlbnNpb24udG9Mb3dlckNhc2UoKSkgIT09IC0xIHx8IHRoaXMuYWNjZXB0ID09PSAnKicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlcy5wdXNoKGZpbGVMaXN0W3Byb3BlcnR5XSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdldFRvdGFsU2l6ZSgpO1xuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPyB0aGlzLm9uQ2hhbmdlKFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLnRoaXMuZmlsZXNdKSA6IHRoaXMub25DaGFuZ2UodGhpcy5maWxlcyk7XG4gICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dHMpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0cy5maXJzdC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICB0aGlzLmZpbGVJbnB1dHMubGFzdC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRyYWdFbnRlcmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZmlsZURyb3AuZW1pdCgpO1xuICAgIH1cblxuICAgIGdldCBzaG93UmVzZXRCdG4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc1Jlc2V0QnV0dG9uICYmIHRoaXMuaXNNdWx0aXBsZSAmJiAodGhpcy5maWxlcy5sZW5ndGggPiAwIHx8IHRoaXMudXBsb2FkZWRGaWxlcy5sZW5ndGggPiAwKTtcbiAgICB9XG5cbiAgICBnZXQgaXNEcm9wQXJlYURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKCF0aGlzLmlzTXVsdGlwbGUgJiYgdGhpcy5maWxlcy5sZW5ndGggPT09IDEpIHx8IFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLnRoaXMuZmlsZXNdLmxlbmd0aCA9PT0gdGhpcy5tYXhGaWxlcztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJldmlld0FzSWNvbikge1xuICAgICAgICAgICAgdGhpcy5oYXNQcmV2aWV3QXNJbWFnZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EcmFnRW50ZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0Ryb3BBcmVhRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZHJhZ0VudGVyZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25EcmFnTGVhdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZHJhZ0VudGVyZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVtb3ZlRnJvbUxpc3QoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKGYsIGkpID0+IGkgIT09IGluZGV4KTtcblxuICAgICAgICBpZiAodGhpcy5maWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ2V0VG90YWxTaXplKCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoWy4uLnRoaXMudXBsb2FkZWRGaWxlcywgLi4udGhpcy5maWxlc10pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVGcm9tVXBsb2FkZWRMaXN0KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzLmZpbHRlcigoZiwgaSkgPT4gaSAhPT0gaW5kZXgpO1xuXG4gICAgICAgIGlmICh0aGlzLmZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdldFRvdGFsU2l6ZSgpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLnRoaXMuZmlsZXNdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbGVzID0gW107XG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFtdO1xuICAgICAgICB0aGlzLmdldFRvdGFsU2l6ZSgpO1xuICAgICAgICB0aGlzLnByb2dyZXNzID0gMDtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi50aGlzLmZpbGVzXSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW5Ccm93c2VXaW5kb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsZUlucHV0cy5maXJzdC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHVibGljIG9uSXRlbUNsaWNrKGU6IEJsb2IgfCBFdWlVcGxvYWRlZEZpbGVJbnRlcmZhY2UgfCBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtQ2xpY2suZW1pdChlKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gdmFsdWUgfHwgW107XG4gICAgICAgIHRoaXMuZmlsZXMgPSBbXTtcbiAgICAgICAgdGhpcy5nZXRUb3RhbFNpemUoKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHsvKiBOb3RoaW5nIHRvIGJlIERvbmUgc28gZmFyICovfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCk6IHZvaWQgPT4gey8qIE5vdGhpbmcgdG8gYmUgRG9uZSBzbyBmYXIgKi99O1xuXG4gICAgcHJpdmF0ZSBnZXRUb3RhbFNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsZXNUb3RhbFNpemUgPSAwO1xuICAgICAgICB0aGlzLmZpbGVzLmZvckVhY2goKGYpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsZXNUb3RhbFNpemUgKz0gZi5zaXplO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX2Ryb3AtYXJlYVwiXG4gICAgW2NsYXNzLmV1aS1maWxlLXVwbG9hZF9fZHJvcC1hcmVhLS1hY3RpdmVdPVwiZHJhZ0VudGVyZWRcIlxuICAgIFtjbGFzcy5ldWktZmlsZS11cGxvYWRfX2Ryb3AtYXJlYS0tZGlzYWJsZWRdPVwiaXNEcm9wQXJlYURpc2FibGVkXCJcbiAgICAqbmdJZj1cImhhc0RyYWdBcmVhXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX2Zha2UtYnRuXCI+e3sgJ2V1aS5ldWlmaWxldXBsb2FkLkNIT09TRS1GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICA8c3Bhbj57eyAnZXVpLmV1aWZpbGV1cGxvYWQuRFJBRy1BTkQtRFJPUC1GSUxFLUhFUkUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX2ZpbGUtaW5wdXRcIlxuICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyAnZXVpLmV1aWZpbGV1cGxvYWQuQ0hPT1NFLUZJTEUnIHwgdHJhbnNsYXRlIH19ICdvcicge3tcbiAgICAgICAgICAgICdldWkuZXVpZmlsZXVwbG9hZC5EUkFHLUFORC1EUk9QLUZJTEUtSEVSRScgfCB0cmFuc2xhdGVcbiAgICAgICAgfX1cIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGFjY2VwdD1cInt7IGFjY2VwdCB9fVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cImlzRHJvcEFyZWFEaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICAgICAgW211bHRpcGxlXT1cImlzTXVsdGlwbGVcIlxuICAgICAgICAoZHJhZ2VudGVyKT1cIm9uRHJhZ0VudGVyKClcIlxuICAgICAgICAoZHJhZ2xlYXZlKT1cIm9uRHJhZ0xlYXZlKClcIiAvPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZXVpLWZpbGUtdXBsb2FkX19zaW1wbGUtaW5wdXQtZmlsZVwiICpuZ0lmPVwiIWhhc0RyYWdBcmVhXCI+XG4gICAgPGxhYmVsIGZvcj1cImZpbGUte3sgcmFuZG9tTnVtYmVySWQgfX1cIj5cbiAgICAgICAgPGJ1dHRvbiBldWlCdXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuQnJvd3NlV2luZG93KClcIj57eyAnZXVpLmV1aWZpbGV1cGxvYWQuQ0hPT1NFLUZJTEUnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XG4gICAgPC9sYWJlbD5cblxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgKm5nSWY9XCJpc011bHRpcGxlXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNob29zZSBNdWx0aXBsZSBGaWxlc1wiXG4gICAgICAgIGNsYXNzPVwiZmlsZS1pbnB1dFwiXG4gICAgICAgIGlkPVwiZmlsZS17eyByYW5kb21OdW1iZXJJZCB9fVwiXG4gICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgYWNjZXB0PVwie3sgYWNjZXB0IH19XCJcbiAgICAgICAgbXVsdGlwbGUgLz5cbiAgICA8aW5wdXRcbiAgICAgICAgI2lucHV0XG4gICAgICAgICpuZ0lmPVwiIWlzTXVsdGlwbGVcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQ2hvb3NlIGEgc2luZ2xlIGZpbGVcIlxuICAgICAgICBjbGFzcz1cImZpbGUtaW5wdXRcIlxuICAgICAgICBpZD1cImZpbGUte3sgcmFuZG9tTnVtYmVySWQgfX1cIlxuICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgIGFjY2VwdD1cInt7IGFjY2VwdCB9fVwiIC8+XG48L2Rpdj5cbjxldWktZmlsZS11cGxvYWQtcHJvZ3Jlc3MgKm5nSWY9XCJoYXNQcm9ncmVzc0JhclwiIFtwcm9ncmVzc109XCJwcm9ncmVzc1wiPjwvZXVpLWZpbGUtdXBsb2FkLXByb2dyZXNzPlxuXG48ZGl2ICpuZ0Zvcj1cImxldCB1cGxvYWRlZEZpbGUgb2YgdXBsb2FkZWRGaWxlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgIDxldWktZmlsZS1wcmV2aWV3XG4gICAgICAgIFtpc0l0ZW1zQ2xpY2thYmxlXT1cImlzSXRlbXNDbGlja2FibGVcIlxuICAgICAgICBbaW5kZXhdPVwiaVwiXG4gICAgICAgIFtmaWxlXT1cInVwbG9hZGVkRmlsZVwiXG4gICAgICAgIFtoYXNQcmV2aWV3XT1cImhhc1ByZXZpZXdcIlxuICAgICAgICBbaGFzUHJldmlld0FzSW1hZ2VdPVwiaGFzUHJldmlld0FzSW1hZ2VcIlxuICAgICAgICBbaGFzUHJldmlld0FzSWNvbl09XCJoYXNQcmV2aWV3QXNJY29uXCJcbiAgICAgICAgKGl0ZW1DbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKHJlbW92ZUZyb21MaXN0KT1cInJlbW92ZUZyb21VcGxvYWRlZExpc3QoJGV2ZW50KVwiPlxuICAgIDwvZXVpLWZpbGUtcHJldmlldz5cbjwvZGl2PlxuXG48ZGl2ICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgPGV1aS1maWxlLXByZXZpZXdcbiAgICAgICAgW2lzSXRlbXNDbGlja2FibGVdPVwiaXNJdGVtc0NsaWNrYWJsZVwiXG4gICAgICAgIFtpbmRleF09XCJpXCJcbiAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXG4gICAgICAgIFtoYXNQcmV2aWV3XT1cImhhc1ByZXZpZXdcIlxuICAgICAgICBbaGFzUHJldmlld0FzSW1hZ2VdPVwiaGFzUHJldmlld0FzSW1hZ2VcIlxuICAgICAgICBbaGFzUHJldmlld0FzSWNvbl09XCJoYXNQcmV2aWV3QXNJY29uXCJcbiAgICAgICAgKGl0ZW1DbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKHJlbW92ZUZyb21MaXN0KT1cInJlbW92ZUZyb21MaXN0KCRldmVudClcIj5cbiAgICA8L2V1aS1maWxlLXByZXZpZXc+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImV1aS1maWxlLXVwbG9hZF9fdG90YWwtc2l6ZVwiICpuZ0lmPVwiZmlsZXNUb3RhbFNpemUgJiYgaGFzVG90YWxTaXplRGlzcGxheWVkXCI+XG4gICAge3sgZmlsZXNUb3RhbFNpemUgfCBmaWxlc2l6ZSB9fSB7eyAnZXVpLmV1aWZpbGV1cGxvYWQuVE9UQUwtU0laRScgfCB0cmFuc2xhdGUgfX1cbjwvZGl2PlxuXG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48YnV0dG9uIGV1aUJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInJlc2V0TGlzdCgpXCIgKm5nSWY9XCJzaG93UmVzZXRCdG5cIj5cbiAgICB7eyAnZXVpLmV1aWZpbGV1cGxvYWQuUkVTRVQtTElTVCcgfCB0cmFuc2xhdGUgfX1cbjwvYnV0dG9uPlxuIl19
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1maWxlLXVwbG9hZC9ldWktZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZXVpLWZpbGUtdXBsb2FkL2V1aS1maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUNMLGlCQUFpQixFQUVqQixZQUFZLEVBRVosTUFBTSxFQUNOLFlBQVksRUFDWixnQkFBZ0IsRUFFaEIsZUFBZSxHQUVsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBaUJsRSxNQUFNLE9BQU8sc0JBQXNCO0lBYm5DO1FBY2EsWUFBTyxHQUFHLGlCQUFpQixDQUFDO1FBRTVCLFdBQU0sR0FBRyxHQUFHLENBQUM7UUFFWixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxtSEFBbUg7UUFDbkgsOERBQThEO1FBQ3BELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBeUMsQ0FBQztRQVd6RSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLG1CQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUM7UUFDbkQsa0JBQWEsR0FBK0IsRUFBRSxDQUFDO1FBQy9DLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBV2EsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xC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QUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLHFCQUFxQjtzQkFBNUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxjQUFjO3NCQUFyRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLFdBQVc7c0JBQWxELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsZ0JBQWdCO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVXLFNBQVM7c0JBQXpELFlBQVk7dUJBQUMsUUFBUSxFQUFFLENBQUMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBPbkluaXQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBFdWlUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9kaXJlY3RpdmVzJztcblxuaW1wb3J0IHsgRXVpVXBsb2FkZWRGaWxlSW50ZXJmYWNlIH0gZnJvbSAnLi9tb2RlbHMvdXBsb2FkZWQtZmlsZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZXVpLWZpbGUtdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXVpLWZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRXVpRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgRXVpRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLWZpbGUtdXBsb2FkJztcbiAgICBASW5wdXQoKSBwcm9ncmVzczogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGFjY2VwdCA9ICcqJztcbiAgICBASW5wdXQoKSBtYXhGaWxlczogbnVtYmVyO1xuICAgIEBPdXRwdXQoKSBmaWxlRHJvcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBAT3V0cHV0KCkgaXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxCbG9iIHwgRXVpVXBsb2FkZWRGaWxlSW50ZXJmYWNlIHwgYW55PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAnZXVpLWZpbGUtdXBsb2FkJyxcbiAgICAgICAgXVxuICAgICAgICAgICAgLmpvaW4oJyAnKVxuICAgICAgICAgICAgLnRyaW0oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmlsZXM6IEZpbGVbXSA9IFtdO1xuICAgIHB1YmxpYyBmaWxlc1RvdGFsU2l6ZSA9IDA7XG4gICAgcHVibGljIHJhbmRvbU51bWJlcklkID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDApO1xuICAgIHB1YmxpYyB1cGxvYWRlZEZpbGVzOiBFdWlVcGxvYWRlZEZpbGVJbnRlcmZhY2VbXSA9IFtdO1xuICAgIHB1YmxpYyBkcmFnRW50ZXJlZCA9IGZhbHNlO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihFdWlUZW1wbGF0ZURpcmVjdGl2ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8RXVpVGVtcGxhdGVEaXJlY3RpdmU+O1xuXG4gICAgQFZpZXdDaGlsZHJlbignaW5wdXQnKSBmaWxlSW5wdXRzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj47XG5cbiAgICBwdWJsaWMgdXBsb2FkZWRGaWxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiB7IGZpbGU6IEV1aVVwbG9hZGVkRmlsZUludGVyZmFjZSwgaW5kZXg6IG51bWJlciwgaXNGaWxlT2JqZWN0OiBib29sZWFuIH0gfT47XG4gICAgcHVibGljIGJyb3dzZUJ1dHRvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG4gICAgcHVibGljIHJlc2V0QnV0dG9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcbiAgICBwdWJsaWMgcHJvZ3Jlc3NCYXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IHsgcHJvZ3Jlc3M6IG51bWJlciB9IH0+O1xuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzTXVsdGlwbGUgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNQcm9ncmVzc0JhciA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1ByZXZpZXcgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNQcmV2aWV3QXNJbWFnZSA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhhc1ByZXZpZXdBc0ljb24gPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzVG90YWxTaXplRGlzcGxheWVkID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzUmVzZXRCdXR0b24gPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNEcmFnQXJlYSA9IGZhbHNlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0l0ZW1zQ2xpY2thYmxlID0gZmFsc2U7XG5cbiAgICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudC50YXJnZXQuZmlsZXMnXSkgZW1pdEZpbGVzKGZpbGVMaXN0OiBGaWxlTGlzdCk6IHZvaWQge1xuICAgICAgICBsZXQgaSA9IFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLnRoaXMuZmlsZXNdLmxlbmd0aDtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBmaWxlTGlzdCkge1xuICAgICAgICAgICAgaWYgKGZpbGVMaXN0W3Byb3BlcnR5XSAmJiB0eXBlb2YgZmlsZUxpc3RbcHJvcGVydHldID09PSAnb2JqZWN0JyAmJiAoIXRoaXMubWF4RmlsZXMgfHwgaSA8IHRoaXMubWF4RmlsZXMpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBmaWxlTGlzdFtwcm9wZXJ0eV0ubmFtZS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVtmaWxlTmFtZS5sZW5ndGggLSAxXTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjY2VwdC5pbmRleE9mKGZpbGVFeHRlbnNpb24udG9Mb3dlckNhc2UoKSkgIT09IC0xIHx8IHRoaXMuYWNjZXB0ID09PSAnKicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlcy5wdXNoKGZpbGVMaXN0W3Byb3BlcnR5XSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaSsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdldFRvdGFsU2l6ZSgpO1xuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPyB0aGlzLm9uQ2hhbmdlKFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLnRoaXMuZmlsZXNdKSA6IHRoaXMub25DaGFuZ2UodGhpcy5maWxlcyk7XG4gICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dHMpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0cy5maXJzdC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICB0aGlzLmZpbGVJbnB1dHMubGFzdC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRyYWdFbnRlcmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZmlsZURyb3AuZW1pdCgpO1xuICAgIH1cblxuICAgIGdldCBzaG93UmVzZXRCdG4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc1Jlc2V0QnV0dG9uICYmIHRoaXMuaXNNdWx0aXBsZSAmJiAodGhpcy5maWxlcy5sZW5ndGggPiAwIHx8IHRoaXMudXBsb2FkZWRGaWxlcy5sZW5ndGggPiAwKTtcbiAgICB9XG5cbiAgICBnZXQgaXNEcm9wQXJlYURpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKCF0aGlzLmlzTXVsdGlwbGUgJiYgdGhpcy5maWxlcy5sZW5ndGggPT09IDEpIHx8IFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLnRoaXMuZmlsZXNdLmxlbmd0aCA9PT0gdGhpcy5tYXhGaWxlcztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJldmlld0FzSWNvbikge1xuICAgICAgICAgICAgdGhpcy5oYXNQcmV2aWV3QXNJbWFnZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBUT0RPIEVVSTE5OiBDaGFuZ2UgZGV0ZWN0aW9uIHRvIE9uUHVzaCB0byBnZXQgcmlkIG9mIHNldFRpbWVvdXQgd29ya2Fyb3VuZC5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uZ2V0VHlwZSgpID09PSAndXBsb2FkZWRGaWxlJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uZ2V0VHlwZSgpID09PSAnYnJvd3NlQnV0dG9uJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJyb3dzZUJ1dHRvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uZ2V0VHlwZSgpID09PSAncmVzZXRCdXR0b24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRCdXR0b25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmdldFR5cGUoKSA9PT0gJ3Byb2dyZXNzQmFyJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2dyZXNzQmFyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkRyYWdFbnRlcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRHJvcEFyZWFEaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5kcmFnRW50ZXJlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkRyYWdMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kcmFnRW50ZXJlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhIGZpbGUgZnJvbSB0aGUgYXJyYXkgb2YgZmlsZXMgY2hvb3NlbiBieSB0aGUgdXNlci5cbiAgICAgKiBAcGFyYW0gaW5kZXggSW5kZXggb2YgdGhlIGZpbGUgdG8gcmVtb3ZlIGluIHRoZSBhcnJheS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVtb3ZlRnJvbUxpc3QoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIoKGYsIGkpID0+IGkgIT09IGluZGV4KTtcblxuICAgICAgICBpZiAodGhpcy5maWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3MgPSAwO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ2V0VG90YWxTaXplKCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoWy4uLnRoaXMudXBsb2FkZWRGaWxlcywgLi4udGhpcy5maWxlc10pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSBhIGZpbGUgZnJvbSB0aGUgYXJyYXkgb2YgZmlsZXMgcHJvdmlkZWQgdG8gdGhlIGNvbXBvbmVudCBhcyBleGlzdGluZyB2YWx1ZXMuXG4gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIHRoZSBmaWxlIHRvIHJlbW92ZSBpbiB0aGUgYXJyYXkuXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZUZyb21VcGxvYWRlZExpc3QoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXMuZmlsdGVyKChmLCBpKSA9PiBpICE9PSBpbmRleCk7XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnByb2dyZXNzID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0VG90YWxTaXplKCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoWy4uLnRoaXMudXBsb2FkZWRGaWxlcywgLi4udGhpcy5maWxlc10pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2V0IHRoZSBsaXN0IG9mIGZpbGVzIGluIHRoZSBjb21wb25lbnQuXG4gICAgICovXG4gICAgcHVibGljIHJlc2V0TGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbXTtcbiAgICAgICAgdGhpcy5nZXRUb3RhbFNpemUoKTtcbiAgICAgICAgdGhpcy5wcm9ncmVzcyA9IDA7XG4gICAgICAgIHRoaXMub25DaGFuZ2UoWy4uLnRoaXMudXBsb2FkZWRGaWxlcywgLi4udGhpcy5maWxlc10pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuQnJvd3NlV2luZG93KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbGVJbnB1dHMuZmlyc3QubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHB1YmxpYyBvbkl0ZW1DbGljayhlOiBCbG9iIHwgRXVpVXBsb2FkZWRGaWxlSW50ZXJmYWNlIHwgYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoZSk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IHZhbHVlIHx8IFtdO1xuICAgICAgICB0aGlzLmZpbGVzID0gW107XG4gICAgICAgIHRoaXMuZ2V0VG90YWxTaXplKCk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7LyogTm90aGluZyB0byBiZSBEb25lIHNvIGZhciAqL31cblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByaXZhdGUgb25DaGFuZ2U6IGFueSA9ICgpOiB2b2lkID0+IHsvKiBOb3RoaW5nIHRvIGJlIERvbmUgc28gZmFyICovfTtcblxuICAgIHByaXZhdGUgZ2V0VG90YWxTaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbGVzVG90YWxTaXplID0gMDtcbiAgICAgICAgdGhpcy5maWxlcy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbGVzVG90YWxTaXplICs9IGYuc2l6ZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiQGlmIChoYXNEcmFnQXJlYSkge1xuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX2Ryb3AtYXJlYVwiXG4gICAgICAgIFtjbGFzcy5ldWktZmlsZS11cGxvYWRfX2Ryb3AtYXJlYS0tYWN0aXZlXT1cImRyYWdFbnRlcmVkXCJcbiAgICAgICAgW2NsYXNzLmV1aS1maWxlLXVwbG9hZF9fZHJvcC1hcmVhLS1kaXNhYmxlZF09XCJpc0Ryb3BBcmVhRGlzYWJsZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX2Zha2UtYnRuXCI+e3sgJ2V1aS5ldWlmaWxldXBsb2FkLkNIT09TRS1GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgJ2V1aS5ldWlmaWxldXBsb2FkLkRSQUctQU5ELURST1AtRklMRS1IRVJFJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRcbiAgICAgICAgICAgIGNsYXNzPVwiZXVpLWZpbGUtdXBsb2FkX19maWxlLWlucHV0XCJcbiAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7ICdldWkuZXVpZmlsZXVwbG9hZC5DSE9PU0UtRklMRScgfCB0cmFuc2xhdGUgfX0gJ29yJyB7e1xuICAgICAgICAgICAgICAgICdldWkuZXVpZmlsZXVwbG9hZC5EUkFHLUFORC1EUk9QLUZJTEUtSEVSRScgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgIGFjY2VwdD1cInt7IGFjY2VwdCB9fVwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc0Ryb3BBcmVhRGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgICAgICBbbXVsdGlwbGVdPVwiaXNNdWx0aXBsZVwiXG4gICAgICAgICAgICAoZHJhZ2VudGVyKT1cIm9uRHJhZ0VudGVyKClcIlxuICAgICAgICAgICAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgpXCIgLz5cbiAgICA8L2Rpdj5cbn0gQGVsc2Uge1xuICAgIDxkaXYgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX3NpbXBsZS1pbnB1dC1maWxlXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJmaWxlLXt7IHJhbmRvbU51bWJlcklkIH19XCI+XG4gICAgICAgICAgICBAaWYgKGJyb3dzZUJ1dHRvblRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJyb3dzZUJ1dHRvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxidXR0b24gZXVpQnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3BlbkJyb3dzZVdpbmRvdygpXCI+e3sgJ2V1aS5ldWlmaWxldXBsb2FkLkNIT09TRS1GSUxFJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2xhYmVsPlxuICAgIFxuICAgICAgICBAaWYgKGlzTXVsdGlwbGUpIHtcbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNpbnB1dFxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDaG9vc2UgTXVsdGlwbGUgRmlsZXNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgaWQ9XCJmaWxlLXt7IHJhbmRvbU51bWJlcklkIH19XCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgYWNjZXB0PVwie3sgYWNjZXB0IH19XCJcbiAgICAgICAgICAgICAgICBtdWx0aXBsZSAvPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNpbnB1dFxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDaG9vc2UgYSBzaW5nbGUgZmlsZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmaWxlLWlucHV0XCJcbiAgICAgICAgICAgICAgICBpZD1cImZpbGUte3sgcmFuZG9tTnVtYmVySWQgfX1cIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgICBhY2NlcHQ9XCJ7eyBhY2NlcHQgfX1cIiAvPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG5cbkBpZiAoaGFzUHJvZ3Jlc3NCYXIpIHtcbiAgICBAaWYgKHByb2dyZXNzQmFyVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwcm9ncmVzc0JhclRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogeyBwcm9ncmVzcyB9IH1cIj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGV1aS1maWxlLXVwbG9hZC1wcm9ncmVzcyBbcHJvZ3Jlc3NdPVwicHJvZ3Jlc3NcIj48L2V1aS1maWxlLXVwbG9hZC1wcm9ncmVzcz5cbiAgICB9XG59XG5cbkBmb3IgKHVwbG9hZGVkRmlsZSBvZiB1cGxvYWRlZEZpbGVzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgJGluZGV4KSB7XG4gICAgPGRpdj5cbiAgICAgICAgPGV1aS1maWxlLXByZXZpZXdcbiAgICAgICAgICAgIFtpc0l0ZW1zQ2xpY2thYmxlXT1cImlzSXRlbXNDbGlja2FibGVcIlxuICAgICAgICAgICAgW2luZGV4XT1cImlcIlxuICAgICAgICAgICAgW2ZpbGVdPVwidXBsb2FkZWRGaWxlXCJcbiAgICAgICAgICAgIFtoYXNQcmV2aWV3XT1cImhhc1ByZXZpZXdcIlxuICAgICAgICAgICAgW2hhc1ByZXZpZXdBc0ltYWdlXT1cImhhc1ByZXZpZXdBc0ltYWdlXCJcbiAgICAgICAgICAgIFtoYXNQcmV2aWV3QXNJY29uXT1cImhhc1ByZXZpZXdBc0ljb25cIlxuICAgICAgICAgICAgW3VwbG9hZGVkRmlsZVRlbXBsYXRlXT1cInVwbG9hZGVkRmlsZVRlbXBsYXRlXCJcbiAgICAgICAgICAgIChpdGVtQ2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAocmVtb3ZlRnJvbUxpc3QpPVwicmVtb3ZlRnJvbVVwbG9hZGVkTGlzdCgkZXZlbnQpXCI+XG4gICAgICAgIDwvZXVpLWZpbGUtcHJldmlldz5cbiAgICA8L2Rpdj5cbn1cblxuQGZvciAoZmlsZSBvZiBmaWxlczsgbGV0IGkgPSAkaW5kZXg7IHRyYWNrICRpbmRleCkge1xuICAgIDxkaXY+XG4gICAgICAgIDxldWktZmlsZS1wcmV2aWV3XG4gICAgICAgICAgICBpc0ZpbGVPYmplY3RcbiAgICAgICAgICAgIFtpc0l0ZW1zQ2xpY2thYmxlXT1cImlzSXRlbXNDbGlja2FibGVcIlxuICAgICAgICAgICAgW2luZGV4XT1cImlcIlxuICAgICAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXG4gICAgICAgICAgICBbaGFzUHJldmlld109XCJoYXNQcmV2aWV3XCJcbiAgICAgICAgICAgIFtoYXNQcmV2aWV3QXNJbWFnZV09XCJoYXNQcmV2aWV3QXNJbWFnZVwiXG4gICAgICAgICAgICBbaGFzUHJldmlld0FzSWNvbl09XCJoYXNQcmV2aWV3QXNJY29uXCJcbiAgICAgICAgICAgIFt1cGxvYWRlZEZpbGVUZW1wbGF0ZV09XCJ1cGxvYWRlZEZpbGVUZW1wbGF0ZVwiXG4gICAgICAgICAgICAoaXRlbUNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKHJlbW92ZUZyb21MaXN0KT1cInJlbW92ZUZyb21MaXN0KCRldmVudClcIj5cbiAgICAgICAgPC9ldWktZmlsZS1wcmV2aWV3PlxuICAgIDwvZGl2PlxufVxuXG5AaWYgKGZpbGVzVG90YWxTaXplICYmIGhhc1RvdGFsU2l6ZURpc3BsYXllZCkge1xuICAgIDxkaXYgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX3RvdGFsLXNpemVcIj5cbiAgICAgICAge3sgZmlsZXNUb3RhbFNpemUgfCBmaWxlc2l6ZSB9fSB7eyAnZXVpLmV1aWZpbGV1cGxvYWQuVE9UQUwtU0laRScgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2Rpdj5cbn1cblxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG5AaWYgKHNob3dSZXNldEJ0bikge1xuICAgIEBpZiAocmVzZXRCdXR0b25UZW1wbGF0ZSkge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicmVzZXRCdXR0b25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxidXR0b24gZXVpQnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwicmVzZXRMaXN0KClcIj5cbiAgICAgICAgICAgIHt7ICdldWkuZXVpZmlsZXVwbG9hZC5SRVNFVC1MSVNUJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICB9XG59XG4iXX0=
|
@@ -3,6 +3,7 @@ import { CommonModule } from '@angular/common';
|
|
3
3
|
import { TranslateModule } from '@ngx-translate/core';
|
4
4
|
import { EuiButtonModule } from '@eui/components/eui-button';
|
5
5
|
import { EuiIconModule } from '@eui/components/eui-icon';
|
6
|
+
import { EuiTemplateDirectiveModule } from '@eui/components/directives';
|
6
7
|
import { EuiFileUploadComponent } from './eui-file-upload.component';
|
7
8
|
import { EuiFileUploadProgressComponent } from './progress/eui-file-upload-progress.component';
|
8
9
|
import { EuiFilePreviewComponent } from './file-preview/file-preview.component';
|
@@ -11,16 +12,16 @@ import { EuiFileUploadUtilsService } from './utils/eui-file-upload.utils';
|
|
11
12
|
import * as i0 from "@angular/core";
|
12
13
|
export class EuiFileUploadModule {
|
13
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EuiFileUploadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
14
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: EuiFileUploadModule, declarations: [EuiFileUploadComponent, EuiFileUploadProgressComponent, EuiFilePreviewComponent, EuiFileSizePipe], imports: [CommonModule, EuiButtonModule, EuiIconModule, TranslateModule], exports: [EuiFileUploadComponent] }); }
|
15
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EuiFileUploadModule, providers: [EuiFileUploadUtilsService], imports: [CommonModule, EuiButtonModule, EuiIconModule, TranslateModule] }); }
|
15
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.1", ngImport: i0, type: EuiFileUploadModule, declarations: [EuiFileUploadComponent, EuiFileUploadProgressComponent, EuiFilePreviewComponent, EuiFileSizePipe], imports: [CommonModule, EuiButtonModule, EuiIconModule, TranslateModule, EuiTemplateDirectiveModule], exports: [EuiFileUploadComponent, EuiFileSizePipe, EuiTemplateDirectiveModule] }); }
|
16
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EuiFileUploadModule, providers: [EuiFileUploadUtilsService], imports: [CommonModule, EuiButtonModule, EuiIconModule, TranslateModule, EuiTemplateDirectiveModule, EuiTemplateDirectiveModule] }); }
|
16
17
|
}
|
17
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EuiFileUploadModule, decorators: [{
|
18
19
|
type: NgModule,
|
19
20
|
args: [{
|
20
|
-
imports: [CommonModule, EuiButtonModule, EuiIconModule, TranslateModule],
|
21
|
+
imports: [CommonModule, EuiButtonModule, EuiIconModule, TranslateModule, EuiTemplateDirectiveModule],
|
21
22
|
declarations: [EuiFileUploadComponent, EuiFileUploadProgressComponent, EuiFilePreviewComponent, EuiFileSizePipe],
|
22
23
|
providers: [EuiFileUploadUtilsService],
|
23
|
-
exports: [EuiFileUploadComponent],
|
24
|
+
exports: [EuiFileUploadComponent, EuiFileSizePipe, EuiTemplateDirectiveModule],
|
24
25
|
}]
|
25
26
|
}] });
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWZpbGUtdXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2V1aS1maWxlLXVwbG9hZC9ldWktZmlsZS11cGxvYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFRMUUsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsaUJBSmIsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxhQURyRyxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsMEJBQTBCLGFBR3pGLHNCQUFzQixFQUFFLGVBQWUsRUFBRSwwQkFBMEI7K0dBRXBFLG1CQUFtQixhQUhqQixDQUFDLHlCQUF5QixDQUFDLFlBRjVCLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSwwQkFBMEIsRUFHaEQsMEJBQTBCOzsyRkFFcEUsbUJBQW1CO2tCQU4vQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSwwQkFBMEIsQ0FBQztvQkFDcEcsWUFBWSxFQUFFLENBQUMsc0JBQXNCLEVBQUUsOEJBQThCLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxDQUFDO29CQUNoSCxTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDdEMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IEV1aUJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9ldWktYnV0dG9uJztcbmltcG9ydCB7IEV1aUljb25Nb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWljb24nO1xuaW1wb3J0IHsgRXVpVGVtcGxhdGVEaXJlY3RpdmVNb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZGlyZWN0aXZlcyc7XG5cbmltcG9ydCB7IEV1aUZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL2V1aS1maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXVpRmlsZVVwbG9hZFByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzcy9ldWktZmlsZS11cGxvYWQtcHJvZ3Jlc3MuY29tcG9uZW50JztcbmltcG9ydCB7IEV1aUZpbGVQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9maWxlLXByZXZpZXcvZmlsZS1wcmV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFdWlGaWxlU2l6ZVBpcGUgfSBmcm9tICcuL3BpcGVzL2ZpbGVzaXplLnBpcGUnO1xuaW1wb3J0IHsgRXVpRmlsZVVwbG9hZFV0aWxzU2VydmljZSB9IGZyb20gJy4vdXRpbHMvZXVpLWZpbGUtdXBsb2FkLnV0aWxzJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBFdWlCdXR0b25Nb2R1bGUsIEV1aUljb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgRXVpVGVtcGxhdGVEaXJlY3RpdmVNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW0V1aUZpbGVVcGxvYWRDb21wb25lbnQsIEV1aUZpbGVVcGxvYWRQcm9ncmVzc0NvbXBvbmVudCwgRXVpRmlsZVByZXZpZXdDb21wb25lbnQsIEV1aUZpbGVTaXplUGlwZV0sXG4gICAgcHJvdmlkZXJzOiBbRXVpRmlsZVVwbG9hZFV0aWxzU2VydmljZV0sXG4gICAgZXhwb3J0czogW0V1aUZpbGVVcGxvYWRDb21wb25lbnQsIEV1aUZpbGVTaXplUGlwZSwgRXVpVGVtcGxhdGVEaXJlY3RpdmVNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlGaWxlVXBsb2FkTW9kdWxlIHt9XG4iXX0=
|
@@ -1,53 +1,11 @@
|
|
1
|
-
import { Component, Input, ChangeDetectionStrategy, ViewEncapsulation, Output, EventEmitter, } from '@angular/core';
|
2
|
-
import {
|
1
|
+
import { Component, Input, ChangeDetectionStrategy, ViewEncapsulation, Output, EventEmitter, ContentChildren, booleanAttribute, } from '@angular/core';
|
2
|
+
import { EuiTemplateDirective } from '@eui/components/directives';
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
import * as i1 from "@angular/common";
|
5
5
|
import * as i2 from "@eui/components/eui-button";
|
6
6
|
import * as i3 from "@eui/components/eui-icon";
|
7
7
|
import * as i4 from "../pipes/filesize.pipe";
|
8
8
|
export class EuiFilePreviewComponent {
|
9
|
-
get hasPreview() {
|
10
|
-
return this._hasPreview;
|
11
|
-
}
|
12
|
-
set hasPreview(value) {
|
13
|
-
this._hasPreview = coerceBooleanProperty(value);
|
14
|
-
}
|
15
|
-
get isFilenameDisplayed() {
|
16
|
-
return this._isFilenameDisplayed;
|
17
|
-
}
|
18
|
-
set isFilenameDisplayed(value) {
|
19
|
-
this._isFilenameDisplayed = coerceBooleanProperty(value);
|
20
|
-
}
|
21
|
-
get isFilesizeDisplayed() {
|
22
|
-
return this._isFilesizeDisplayed;
|
23
|
-
}
|
24
|
-
set isFilesizeDisplayed(value) {
|
25
|
-
this._isFilesizeDisplayed = coerceBooleanProperty(value);
|
26
|
-
}
|
27
|
-
get isFiletypeDisplayed() {
|
28
|
-
return this._isFiletypeDisplayed;
|
29
|
-
}
|
30
|
-
set isFiletypeDisplayed(value) {
|
31
|
-
this._isFiletypeDisplayed = coerceBooleanProperty(value);
|
32
|
-
}
|
33
|
-
get hasPreviewAsImage() {
|
34
|
-
return this._hasPreviewAsImage;
|
35
|
-
}
|
36
|
-
set hasPreviewAsImage(value) {
|
37
|
-
this._hasPreviewAsImage = coerceBooleanProperty(value);
|
38
|
-
}
|
39
|
-
get hasPreviewAsIcon() {
|
40
|
-
return this._hasPreviewAsIcon;
|
41
|
-
}
|
42
|
-
set hasPreviewAsIcon(value) {
|
43
|
-
this._hasPreviewAsIcon = coerceBooleanProperty(value);
|
44
|
-
}
|
45
|
-
get isItemsClickable() {
|
46
|
-
return this._isItemsClickable;
|
47
|
-
}
|
48
|
-
set isItemsClickable(value) {
|
49
|
-
this._isItemsClickable = coerceBooleanProperty(value);
|
50
|
-
}
|
51
9
|
constructor(cd) {
|
52
10
|
this.cd = cd;
|
53
11
|
this.previewAsIconConfig = {
|
@@ -79,15 +37,15 @@ export class EuiFilePreviewComponent {
|
|
79
37
|
// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
|
80
38
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
81
39
|
this.itemClick = new EventEmitter();
|
82
|
-
this.
|
83
|
-
this.
|
84
|
-
this.
|
85
|
-
this.
|
86
|
-
this.
|
87
|
-
this.
|
88
|
-
this.
|
40
|
+
this.hasPreview = true;
|
41
|
+
this.isFilenameDisplayed = true;
|
42
|
+
this.isFilesizeDisplayed = true;
|
43
|
+
this.isFiletypeDisplayed = true;
|
44
|
+
this.hasPreviewAsImage = true;
|
45
|
+
this.hasPreviewAsIcon = false;
|
46
|
+
this.isItemsClickable = false;
|
47
|
+
this.isFileObject = false;
|
89
48
|
}
|
90
|
-
// imageUrl
|
91
49
|
ngOnInit() {
|
92
50
|
if (this.hasPreviewAsIcon) {
|
93
51
|
this.hasPreviewAsImage = false;
|
@@ -95,7 +53,6 @@ export class EuiFilePreviewComponent {
|
|
95
53
|
if (this.file instanceof Blob) {
|
96
54
|
const reader = new FileReader();
|
97
55
|
reader.readAsArrayBuffer(this.file);
|
98
|
-
// reader.readAsDataURL(this.file as Blob);
|
99
56
|
// TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html
|
100
57
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
101
58
|
reader.onload = (event) => {
|
@@ -124,6 +81,13 @@ export class EuiFilePreviewComponent {
|
|
124
81
|
this.cd.detectChanges();
|
125
82
|
}
|
126
83
|
}
|
84
|
+
ngAfterViewInit() {
|
85
|
+
this.templates.forEach((item) => {
|
86
|
+
if (item.getType() === 'uploadedFile') {
|
87
|
+
this.uploadedFileTemplate = item.template;
|
88
|
+
}
|
89
|
+
});
|
90
|
+
}
|
127
91
|
onRemoveFromList() {
|
128
92
|
this.removeFromList.emit(this.index);
|
129
93
|
}
|
@@ -146,13 +110,15 @@ export class EuiFilePreviewComponent {
|
|
146
110
|
return !this.previewAsIconConfig[f] ? 'eui-file-empty-o' : this.previewAsIconConfig[f];
|
147
111
|
}
|
148
112
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EuiFilePreviewComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
149
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: EuiFilePreviewComponent, selector: "eui-file-preview", inputs: { file: "file", uploadedFileTemplate: "uploadedFileTemplate", index: "index", previewAsIconConfig: "previewAsIconConfig", hasPreview: ["hasPreview", "hasPreview", booleanAttribute], isFilenameDisplayed: ["isFilenameDisplayed", "isFilenameDisplayed", booleanAttribute], isFilesizeDisplayed: ["isFilesizeDisplayed", "isFilesizeDisplayed", booleanAttribute], isFiletypeDisplayed: ["isFiletypeDisplayed", "isFiletypeDisplayed", booleanAttribute], hasPreviewAsImage: ["hasPreviewAsImage", "hasPreviewAsImage", booleanAttribute], hasPreviewAsIcon: ["hasPreviewAsIcon", "hasPreviewAsIcon", booleanAttribute], isItemsClickable: ["isItemsClickable", "isItemsClickable", booleanAttribute], isFileObject: ["isFileObject", "isFileObject", booleanAttribute] }, outputs: { removeFromList: "removeFromList", itemClick: "itemClick" }, queries: [{ propertyName: "templates", predicate: EuiTemplateDirective }], ngImport: i0, template: "@if (uploadedFileTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"uploadedFileTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { file: { id: file.id, name: file.name, url: file.url || previewData?.display, size: file.size, type: file.type }, index, isFileObject } }\">\n </ng-template>\n} @else {\n <div class=\"eui-file-upload__preview\">\n <div class=\"eui-file-upload__preview--left\">\n <div class=\"eui-file-upload__preview--left__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\" />\n <eui-icon-svg *ngIf=\"previewData && !previewData.image\" icon=\"{{ previewData.display }}\" size=\"l\" fillColor=\"info-100\" class=\"eui-u-mr-s\"></eui-icon-svg>\n <div *ngIf=\"isLoading\" class=\"loading-container\">\n <eui-icon-svg isLoading size=\"2xl\"></eui-icon-svg>\n </div>\n </div>\n <div *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <eui-icon-svg icon=\"{{ icon }}\" size=\"l\" fillColor=\"info-100\" class=\"eui-u-mr-s\"></eui-icon-svg>\n </div>\n <div class=\"eui-file-upload__preview--left__filename eui-u-text-truncate\" *ngIf=\"isFilenameDisplayed\">\n <ng-container *ngIf=\"!isItemsClickable\">\n {{ file.name }}\n </ng-container>\n <ng-container *ngIf=\"isItemsClickable\">\n <a href=\"#\" (click)=\"onItemClick($event)\" class=\"eui-u-text-link eui-u-text-truncate\">{{ file.name }}</a>\n </ng-container>\n </div>\n </div>\n <div class=\"eui-file-upload__preview--right\">\n <div class=\"eui-u-text-no-wrap eui-u-ml-m\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"eui-u-ml-m\" *ngIf=\"isFiletypeDisplayed\"><span euiLabel>{{ file.type }}</span></div>\n <div class=\"eui-u-ml-m\">\n <button euiButton euiDanger euiRounded euiIconButton euiBasicButton type=\"button\" (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-ecl-trash\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n}\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "pipe", type: i4.EuiFileSizePipe, name: "filesize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
150
114
|
}
|
151
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: EuiFilePreviewComponent, decorators: [{
|
152
116
|
type: Component,
|
153
|
-
args: [{ selector: 'eui-file-preview', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"eui-file-upload__preview\">\n
|
117
|
+
args: [{ selector: 'eui-file-preview', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if (uploadedFileTemplate) {\n <ng-template\n [ngTemplateOutlet]=\"uploadedFileTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: { file: { id: file.id, name: file.name, url: file.url || previewData?.display, size: file.size, type: file.type }, index, isFileObject } }\">\n </ng-template>\n} @else {\n <div class=\"eui-file-upload__preview\">\n <div class=\"eui-file-upload__preview--left\">\n <div class=\"eui-file-upload__preview--left__image\" *ngIf=\"hasPreview && hasPreviewAsImage\">\n <img [src]=\"previewData.display\" *ngIf=\"url && previewData.image\" />\n <eui-icon-svg *ngIf=\"previewData && !previewData.image\" icon=\"{{ previewData.display }}\" size=\"l\" fillColor=\"info-100\" class=\"eui-u-mr-s\"></eui-icon-svg>\n <div *ngIf=\"isLoading\" class=\"loading-container\">\n <eui-icon-svg isLoading size=\"2xl\"></eui-icon-svg>\n </div>\n </div>\n <div *ngIf=\"hasPreview && hasPreviewAsIcon\">\n <eui-icon-svg icon=\"{{ icon }}\" size=\"l\" fillColor=\"info-100\" class=\"eui-u-mr-s\"></eui-icon-svg>\n </div>\n <div class=\"eui-file-upload__preview--left__filename eui-u-text-truncate\" *ngIf=\"isFilenameDisplayed\">\n <ng-container *ngIf=\"!isItemsClickable\">\n {{ file.name }}\n </ng-container>\n <ng-container *ngIf=\"isItemsClickable\">\n <a href=\"#\" (click)=\"onItemClick($event)\" class=\"eui-u-text-link eui-u-text-truncate\">{{ file.name }}</a>\n </ng-container>\n </div>\n </div>\n <div class=\"eui-file-upload__preview--right\">\n <div class=\"eui-u-text-no-wrap eui-u-ml-m\" *ngIf=\"isFilesizeDisplayed\">{{ file.size | filesize }}</div>\n <div class=\"eui-u-ml-m\" *ngIf=\"isFiletypeDisplayed\"><span euiLabel>{{ file.type }}</span></div>\n <div class=\"eui-u-ml-m\">\n <button euiButton euiDanger euiRounded euiIconButton euiBasicButton type=\"button\" (click)=\"onRemoveFromList()\">\n <eui-icon-svg icon=\"eui-ecl-trash\"></eui-icon-svg>\n </button>\n </div>\n </div>\n </div>\n}\n" }]
|
154
118
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { file: [{
|
155
119
|
type: Input
|
120
|
+
}], uploadedFileTemplate: [{
|
121
|
+
type: Input
|
156
122
|
}], index: [{
|
157
123
|
type: Input
|
158
124
|
}], previewAsIconConfig: [{
|
@@ -162,18 +128,31 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
162
128
|
}], itemClick: [{
|
163
129
|
type: Output
|
164
130
|
}], hasPreview: [{
|
165
|
-
type: Input
|
131
|
+
type: Input,
|
132
|
+
args: [{ transform: booleanAttribute }]
|
166
133
|
}], isFilenameDisplayed: [{
|
167
|
-
type: Input
|
134
|
+
type: Input,
|
135
|
+
args: [{ transform: booleanAttribute }]
|
168
136
|
}], isFilesizeDisplayed: [{
|
169
|
-
type: Input
|
137
|
+
type: Input,
|
138
|
+
args: [{ transform: booleanAttribute }]
|
170
139
|
}], isFiletypeDisplayed: [{
|
171
|
-
type: Input
|
140
|
+
type: Input,
|
141
|
+
args: [{ transform: booleanAttribute }]
|
172
142
|
}], hasPreviewAsImage: [{
|
173
|
-
type: Input
|
143
|
+
type: Input,
|
144
|
+
args: [{ transform: booleanAttribute }]
|
174
145
|
}], hasPreviewAsIcon: [{
|
175
|
-
type: Input
|
146
|
+
type: Input,
|
147
|
+
args: [{ transform: booleanAttribute }]
|
176
148
|
}], isItemsClickable: [{
|
177
|
-
type: Input
|
149
|
+
type: Input,
|
150
|
+
args: [{ transform: booleanAttribute }]
|
151
|
+
}], isFileObject: [{
|
152
|
+
type: Input,
|
153
|
+
args: [{ transform: booleanAttribute }]
|
154
|
+
}], templates: [{
|
155
|
+
type: ContentChildren,
|
156
|
+
args: [EuiTemplateDirective]
|
178
157
|
}] } });
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2V1aS1maWxlLXVwbG9hZC9maWxlLXByZXZpZXcvZmlsZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2V1aS1maWxlLXVwbG9hZC9maWxlLXByZXZpZXcvZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFFakIsTUFBTSxFQUNOLFlBQVksR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQWdCLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQVU1RSxNQUFNLE9BQU8sdUJBQXVCO0lBMkNoQyxJQUNJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksVUFBVSxDQUFDLEtBQW1CO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQ0ksbUJBQW1CO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLG1CQUFtQixDQUFDLEtBQW1CO1FBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFDSSxtQkFBbUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksbUJBQW1CLENBQUMsS0FBbUI7UUFDdkMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUNJLG1CQUFtQjtRQUNuQixPQUFPLElBQUks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QUcsQ0FBQyxLQUFLLE1BQU0sSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTVHLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxhQUFxQjtRQUN4QyxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdEMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDOzhHQTVLUSx1QkFBdUI7a0dBQXZCLHVCQUF1Qix1ZUNwQnBDLG0xREErQkE7OzJGRFhhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxrQkFBa0IsbUJBRVgsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTtzRkFLNUIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBeUJJLGNBQWM7c0JBQXZCLE1BQU07Z0JBVUcsU0FBUztzQkFBbEIsTUFBTTtnQkFHSCxVQUFVO3NCQURiLEtBQUs7Z0JBU0YsbUJBQW1CO3NCQUR0QixLQUFLO2dCQVNGLG1CQUFtQjtzQkFEdEIsS0FBSztnQkFTRixtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBU0YsaUJBQWlCO3NCQURwQixLQUFLO2dCQVNGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFTRixnQkFBZ0I7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgSW5wdXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmltcG9ydCB7IEV1aVVwbG9hZGVkRmlsZUludGVyZmFjZSB9IGZyb20gJy4uL21vZGVscy91cGxvYWRlZC1maWxlLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdldWktZmlsZS1wcmV2aWV3JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlGaWxlUHJldmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQElucHV0KCkgZmlsZTogQmxvYiB8IEV1aVVwbG9hZGVkRmlsZUludGVyZmFjZSB8IGFueTtcbiAgICBASW5wdXQoKSBpbmRleDogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgcHJldmlld0FzSWNvbkNvbmZpZyA9IHtcbiAgICAgICAgYXZpOiAnZXVpLWZpbGUtdmlkZW8nLFxuICAgICAgICBodG1sOiAnZXVpLWZpbGUtaHRtbCcsXG4gICAgICAgIGh0bTogJ2V1aS1maWxlLWNvZGUnLFxuICAgICAgICBqczogJ2V1aS1maWxlLWNvZGUnLFxuICAgICAgICBqc29uOiAnZXVpLWZpbGUtY29kZScsXG4gICAgICAgIG1wMzogJ2V1aS1maWxlLWF1ZGlvJyxcbiAgICAgICAgbXA0OiAnZXVpLWZpbGUtdmlkZW8nLFxuICAgICAgICBwZGY6ICdldWktZmlsZS1wZGYnLFxuICAgICAgICBwbmc6ICdldWktZmlsZS1pbWFnZScsXG4gICAgICAgIHN2ZzogJ2V1aS1maWxlLWltYWdlJyxcbiAgICAgICAgdHh0OiAnZXVpLWZpbGUtdGV4dCcsXG4gICAgICAgIHhtbDogJ2V1aS1maWxlLWNvZGUnLFxuICAgICAgICBqcGVnOiAnZXVpLWZpbGUtaW1hZ2UnLFxuICAgICAgICBqcGc6ICdldWktZmlsZS1pbWFnZScsXG4gICAgICAgIHppcDogJ2V1aS1maWxlLWFyY2hpdmUnLFxuICAgICAgICBkb2M6ICdldWktZmlsZS13b3JkJyxcbiAgICAgICAgZG9jeDogJ2V1aS1maWxlLXdvcmQtbycsXG4gICAgICAgIHhsczogJ2V1aS1maWxlLWV4Y2VsLW8nLFxuICAgICAgICB4bHN4OiAnZXVpLWZpbGUtZXhjZWwtbycsXG4gICAgICAgIHBwdDogJ2V1aS1maWxlLXBvd2VycG9pbnQnLFxuICAgICAgICBjc3Y6ICdldWktZmlsZS10ZXh0JyxcbiAgICAgICAgcnRmOiAnZXVpLWZpbGUtdGV4dCcsXG4gICAgfTtcblxuICAgIEBPdXRwdXQoKSByZW1vdmVGcm9tTGlzdCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgcHVibGljIHVybDogc3RyaW5nO1xuICAgIHB1YmxpYyBpY29uOiBzdHJpbmc7XG4gICAgcHVibGljIGZpbGVFeHRlbnNpb246IHN0cmluZztcbiAgICBwdWJsaWMgcHJldmlld0RhdGE6IHsgaW1hZ2U6IGJvb2xlYW47IGRpc3BsYXk6IHN0cmluZyB9O1xuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBPdXRwdXQoKSBpdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEJsb2IgfCBFdWlVcGxvYWRlZEZpbGVJbnRlcmZhY2UgfCBhbnk+KCk7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBoYXNQcmV2aWV3KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzUHJldmlldztcbiAgICB9XG4gICAgc2V0IGhhc1ByZXZpZXcodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9oYXNQcmV2aWV3ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaGFzUHJldmlldyA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNGaWxlbmFtZURpc3BsYXllZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRmlsZW5hbWVEaXNwbGF5ZWQ7XG4gICAgfVxuICAgIHNldCBpc0ZpbGVuYW1lRGlzcGxheWVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNGaWxlbmFtZURpc3BsYXllZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzRmlsZW5hbWVEaXNwbGF5ZWQgPSB0cnVlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRmlsZXNpemVEaXNwbGF5ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ZpbGVzaXplRGlzcGxheWVkO1xuICAgIH1cbiAgICBzZXQgaXNGaWxlc2l6ZURpc3BsYXllZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2lzRmlsZXNpemVEaXNwbGF5ZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0ZpbGVzaXplRGlzcGxheWVkID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0ZpbGV0eXBlRGlzcGxheWVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNGaWxldHlwZURpc3BsYXllZDtcbiAgICB9XG4gICAgc2V0IGlzRmlsZXR5cGVEaXNwbGF5ZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0ZpbGV0eXBlRGlzcGxheWVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNGaWxldHlwZURpc3BsYXllZCA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzUHJldmlld0FzSW1hZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNQcmV2aWV3QXNJbWFnZTtcbiAgICB9XG4gICAgc2V0IGhhc1ByZXZpZXdBc0ltYWdlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faGFzUHJldmlld0FzSW1hZ2UgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNQcmV2aWV3QXNJbWFnZSA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzUHJldmlld0FzSWNvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1ByZXZpZXdBc0ljb247XG4gICAgfVxuICAgIHNldCBoYXNQcmV2aWV3QXNJY29uKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faGFzUHJldmlld0FzSWNvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhc1ByZXZpZXdBc0ljb24gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0l0ZW1zQ2xpY2thYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNJdGVtc0NsaWNrYWJsZTtcbiAgICB9XG4gICAgc2V0IGlzSXRlbXNDbGlja2FibGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0l0ZW1zQ2xpY2thYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNJdGVtc0NsaWNrYWJsZSA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgICAvLyBpbWFnZVVybFxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5oYXNQcmV2aWV3QXNJY29uKSB7XG4gICAgICAgICAgICB0aGlzLmhhc1ByZXZpZXdBc0ltYWdlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5maWxlIGluc3RhbmNlb2YgQmxvYikge1xuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcih0aGlzLmZpbGUgYXMgQmxvYik7XG4gICAgICAgICAgICAvLyByZWFkZXIucmVhZEFzRGF0YVVSTCh0aGlzLmZpbGUgYXMgQmxvYik7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKGV2ZW50OiBhbnkpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVybCA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlRXh0ZW5zaW9uID0gdGhpcy5nZXRGaWxlRXh0ZW5zaW9uKHRoaXMuZmlsZS5uYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLmljb24gPSB0aGlzLmdldEljb25Gb3JNaW1lKHRoaXMuZmlsZUV4dGVuc2lvbik7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3JlYWRlci5yZXN1bHRdLCB7IHR5cGU6IHRoaXMuZmlsZS50eXBlIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcblxuICAgICAgICAgICAgICAgIHRoaXMucHJldmlld0RhdGEgPSB0aGlzLmdldFByZXZpZXdGb3JNaW1lKHRoaXMuZmlsZUV4dGVuc2lvbiwgaW1hZ2VVcmwpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZHN0YXJ0ID0gKGV2ZW50OiBQcm9ncmVzc0V2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXJsID0gKHRoaXMuZmlsZSBhcyBFdWlVcGxvYWRlZEZpbGVJbnRlcmZhY2UpLnVybDtcbiAgICAgICAgICAgIHRoaXMuZmlsZUV4dGVuc2lvbiA9IHRoaXMuZ2V0RmlsZUV4dGVuc2lvbih0aGlzLmZpbGUubmFtZSk7XG4gICAgICAgICAgICB0aGlzLmljb24gPSB0aGlzLmdldEljb25Gb3JNaW1lKHRoaXMuZmlsZUV4dGVuc2lvbik7XG5cbiAgICAgICAgICAgIHRoaXMucHJldmlld0RhdGEgPSB0aGlzLmdldFByZXZpZXdGb3JNaW1lKHRoaXMuZmlsZUV4dGVuc2lvbiwgdGhpcy51cmwpO1xuXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblJlbW92ZUZyb21MaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbW92ZUZyb21MaXN0LmVtaXQodGhpcy5pbmRleCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uSXRlbUNsaWNrKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXRlbUNsaWNrLmVtaXQodGhpcy5maWxlKTtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RmlsZUV4dGVuc2lvbihmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZXh0ID0gZmlsZU5hbWUuc3BsaXQoJy4nKTtcblxuICAgICAgICByZXR1cm4gZXh0W2V4dC5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByZXZpZXdGb3JNaW1lKGZpbGVFeHRlbnNpb246IHN0cmluZywgaW1nVXJsOiBzdHJpbmcpOiB7IGltYWdlOiBib29sZWFuOyBkaXNwbGF5OiBzdHJpbmcgfSB7XG4gICAgICAgIGNvbnN0IGYgPSBmaWxlRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGNvbnN0IGltYWdlID0gZiA9PT0gJ2pwZWcnIHx8IGYgPT09ICdqcGcnIHx8IGYgPT09ICdwbmcnIHx8IGYgPT09ICdnaWYnID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICBjb25zdCBkaXNwbGF5ID0gZiA9PT0gJ2pwZWcnIHx8IGYgPT09ICdqcGcnIHx8IGYgPT09ICdwbmcnIHx8IGYgPT09ICdnaWYnID8gaW1nVXJsIDogdGhpcy5nZXRJY29uRm9yTWltZShmKTtcblxuICAgICAgICByZXR1cm4geyBpbWFnZSwgZGlzcGxheSB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0SWNvbkZvck1pbWUoZmlsZUV4dGVuc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZiA9IGZpbGVFeHRlbnNpb24udG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuICF0aGlzLnByZXZpZXdBc0ljb25Db25maWdbZl0gPyAnZXVpLWZpbGUtZW1wdHktbycgOiB0aGlzLnByZXZpZXdBc0ljb25Db25maWdbZl07XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImV1aS1maWxlLXVwbG9hZF9fcHJldmlld1wiPlxuICAgIDxkaXYgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX3ByZXZpZXctLWxlZnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS1maWxlLXVwbG9hZF9fcHJldmlldy0tbGVmdF9faW1hZ2VcIiAqbmdJZj1cImhhc1ByZXZpZXcgJiYgaGFzUHJldmlld0FzSW1hZ2VcIj5cbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJwcmV2aWV3RGF0YS5kaXNwbGF5XCIgKm5nSWY9XCJ1cmwgJiYgcHJldmlld0RhdGEuaW1hZ2VcIiAvPlxuICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyAqbmdJZj1cInByZXZpZXdEYXRhICYmICFwcmV2aWV3RGF0YS5pbWFnZVwiIGljb249XCJ7eyBwcmV2aWV3RGF0YS5kaXNwbGF5IH19XCIgc2l6ZT1cImxcIiBmaWxsQ29sb3I9XCJpbmZvLTEwMFwiIGNsYXNzPVwiZXVpLXUtbXItc1wiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGlzTG9hZGluZyBzaXplPVwiMnhsXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJoYXNQcmV2aWV3ICYmIGhhc1ByZXZpZXdBc0ljb25cIj5cbiAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cInt7IGljb24gfX1cIiBzaXplPVwibFwiIGZpbGxDb2xvcj1cImluZm8tMTAwXCIgY2xhc3M9XCJldWktdS1tci1zXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLWZpbGUtdXBsb2FkX19wcmV2aWV3LS1sZWZ0X19maWxlbmFtZSBldWktdS10ZXh0LXRydW5jYXRlXCIgKm5nSWY9XCJpc0ZpbGVuYW1lRGlzcGxheWVkXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSXRlbXNDbGlja2FibGVcIj5cbiAgICAgICAgICAgICAgICB7eyBmaWxlLm5hbWUgfX1cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzSXRlbXNDbGlja2FibGVcIj5cbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCIgY2xhc3M9XCJldWktdS10ZXh0LWxpbmsgZXVpLXUtdGV4dC10cnVuY2F0ZVwiPnt7IGZpbGUubmFtZSB9fTwvYT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZXVpLWZpbGUtdXBsb2FkX19wcmV2aWV3LS1yaWdodFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXUtdGV4dC1uby13cmFwIGV1aS11LW1sLW1cIiAqbmdJZj1cImlzRmlsZXNpemVEaXNwbGF5ZWRcIj57eyBmaWxlLnNpemUgfCBmaWxlc2l6ZSB9fTwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXUtbWwtbVwiICpuZ0lmPVwiaXNGaWxldHlwZURpc3BsYXllZFwiPjxzcGFuIGV1aUxhYmVsPnt7IGZpbGUudHlwZSB9fTwvc3Bhbj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImV1aS11LW1sLW1cIj5cbiAgICAgICAgICAgIDxidXR0b24gZXVpQnV0dG9uIGV1aURhbmdlciBldWlSb3VuZGVkIGV1aUljb25CdXR0b24gZXVpQmFzaWNCdXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvblJlbW92ZUZyb21MaXN0KClcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWNsLXRyYXNoXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2V1aS1maWxlLXVwbG9hZC9maWxlLXByZXZpZXcvZmlsZS1wcmV2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2V1aS1maWxlLXVwbG9hZC9maWxlLXByZXZpZXcvZmlsZS1wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFFakIsTUFBTSxFQUNOLFlBQVksRUFDWixlQUFlLEVBR2YsZ0JBQWdCLEdBRW5CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFVbEUsTUFBTSxPQUFPLHVCQUF1QjtJQXVEaEMsWUFBb0IsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFoRGhDLHdCQUFtQixHQUFHO1lBQzNCLEdBQUcsRUFBRSxnQkFBZ0I7WUFDckIsSUFBSSxFQUFFLGVBQWU7WUFDckIsR0FBRyxFQUFFLGVBQWU7WUFDcEIsRUFBRSxFQUFFLGVBQWU7WUFDbkIsSUFBSSxFQUFFLGVBQWU7WUFDckIsR0FBRyxFQUFFLGdCQUFnQjtZQUNyQixHQUFHLEVBQUUsZ0JBQWdCO1lBQ3JCLEdBQUcsRUFBRSxjQUFjO1lBQ25CLEdBQUcsRUFBRSxnQkFBZ0I7WUFDckIsR0FBRyxFQUFFLGdCQUFnQjtZQUNyQixHQUFHLEVBQUUsZUFBZTtZQUNwQixHQUFHLEVBQUUsZUFBZTtZQUNwQixJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLEdBQUcsRUFBRSxnQkFBZ0I7WUFDckIsR0FBRyxFQUFFLGtCQUFrQjtZQUN2QixHQUFHLEVBQUUsZUFBZTtZQUNwQixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLEdBQUcsRUFBRSxrQkFBa0I7WUFDdkIs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QkFBZ0IsRUFBRTtnQkFDRSxtQkFBbUI7c0JBQTFELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsbUJBQW1CO3NCQUExRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLG1CQUFtQjtzQkFBMUQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxpQkFBaUI7c0JBQXhELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsZ0JBQWdCO3NCQUF2RCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUNFLGdCQUFnQjtzQkFBdkQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxZQUFZO3NCQUFuRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVDLFNBQVM7c0JBQS9DLGVBQWU7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIElucHV0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBFdWlUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9kaXJlY3RpdmVzJztcblxuaW1wb3J0IHsgRXVpVXBsb2FkZWRGaWxlSW50ZXJmYWNlIH0gZnJvbSAnLi4vbW9kZWxzL3VwbG9hZGVkLWZpbGUubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V1aS1maWxlLXByZXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlLXByZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEV1aUZpbGVQcmV2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICAvLyBUT0RPOiBmaW5kIHRoZSBjb3JyZWN0IHR5cGUgb3IgdHVybiBpbnRvIGEgZ2VuZXJpYywgaHR0cHM6Ly93d3cudHlwZXNjcmlwdGxhbmcub3JnL2RvY3MvaGFuZGJvb2svMi9nZW5lcmljcy5odG1sXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBASW5wdXQoKSBmaWxlOiBCbG9iIHwgRXVpVXBsb2FkZWRGaWxlSW50ZXJmYWNlIHwgYW55O1xuICAgIEBJbnB1dCgpIHVwbG9hZGVkRmlsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogeyBmaWxlOiBFdWlVcGxvYWRlZEZpbGVJbnRlcmZhY2UsIGluZGV4OiBudW1iZXIsIGlzRmlsZU9iamVjdDogYm9vbGVhbiB9IH0+O1xuICAgIEBJbnB1dCgpIGluZGV4OiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSBwcmV2aWV3QXNJY29uQ29uZmlnID0ge1xuICAgICAgICBhdmk6ICdldWktZmlsZS12aWRlbycsXG4gICAgICAgIGh0bWw6ICdldWktZmlsZS1odG1sJyxcbiAgICAgICAgaHRtOiAnZXVpLWZpbGUtY29kZScsXG4gICAgICAgIGpzOiAnZXVpLWZpbGUtY29kZScsXG4gICAgICAgIGpzb246ICdldWktZmlsZS1jb2RlJyxcbiAgICAgICAgbXAzOiAnZXVpLWZpbGUtYXVkaW8nLFxuICAgICAgICBtcDQ6ICdldWktZmlsZS12aWRlbycsXG4gICAgICAgIHBkZjogJ2V1aS1maWxlLXBkZicsXG4gICAgICAgIHBuZzogJ2V1aS1maWxlLWltYWdlJyxcbiAgICAgICAgc3ZnOiAnZXVpLWZpbGUtaW1hZ2UnLFxuICAgICAgICB0eHQ6ICdldWktZmlsZS10ZXh0JyxcbiAgICAgICAgeG1sOiAnZXVpLWZpbGUtY29kZScsXG4gICAgICAgIGpwZWc6ICdldWktZmlsZS1pbWFnZScsXG4gICAgICAgIGpwZzogJ2V1aS1maWxlLWltYWdlJyxcbiAgICAgICAgemlwOiAnZXVpLWZpbGUtYXJjaGl2ZScsXG4gICAgICAgIGRvYzogJ2V1aS1maWxlLXdvcmQnLFxuICAgICAgICBkb2N4OiAnZXVpLWZpbGUtd29yZC1vJyxcbiAgICAgICAgeGxzOiAnZXVpLWZpbGUtZXhjZWwtbycsXG4gICAgICAgIHhsc3g6ICdldWktZmlsZS1leGNlbC1vJyxcbiAgICAgICAgcHB0OiAnZXVpLWZpbGUtcG93ZXJwb2ludCcsXG4gICAgICAgIGNzdjogJ2V1aS1maWxlLXRleHQnLFxuICAgICAgICBydGY6ICdldWktZmlsZS10ZXh0JyxcbiAgICB9O1xuXG4gICAgQE91dHB1dCgpIHJlbW92ZUZyb21MaXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBwdWJsaWMgdXJsOiBzdHJpbmc7XG4gICAgcHVibGljIGljb246IHN0cmluZztcbiAgICBwdWJsaWMgZmlsZUV4dGVuc2lvbjogc3RyaW5nO1xuICAgIHB1YmxpYyBwcmV2aWV3RGF0YTogeyBpbWFnZTogYm9vbGVhbjsgZGlzcGxheTogc3RyaW5nIH07XG4gICAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gICAgLy8gVE9ETzogZmluZCB0aGUgY29ycmVjdCB0eXBlIG9yIHR1cm4gaW50byBhIGdlbmVyaWMsIGh0dHBzOi8vd3d3LnR5cGVzY3JpcHRsYW5nLm9yZy9kb2NzL2hhbmRib29rLzIvZ2VuZXJpY3MuaHRtbFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgQE91dHB1dCgpIGl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8QmxvYiB8IEV1aVVwbG9hZGVkRmlsZUludGVyZmFjZSB8IGFueT4oKTtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNQcmV2aWV3ID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNGaWxlbmFtZURpc3BsYXllZCA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzRmlsZXNpemVEaXNwbGF5ZWQgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc0ZpbGV0eXBlRGlzcGxheWVkID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaGFzUHJldmlld0FzSW1hZ2UgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBoYXNQcmV2aWV3QXNJY29uID0gZmFsc2U7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGlzSXRlbXNDbGlja2FibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgaXNGaWxlT2JqZWN0ID0gZmFsc2U7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEV1aVRlbXBsYXRlRGlyZWN0aXZlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxFdWlUZW1wbGF0ZURpcmVjdGl2ZT47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5oYXNQcmV2aWV3QXNJY29uKSB7XG4gICAgICAgICAgICB0aGlzLmhhc1ByZXZpZXdBc0ltYWdlID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5maWxlIGluc3RhbmNlb2YgQmxvYikge1xuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcih0aGlzLmZpbGUgYXMgQmxvYik7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IGZpbmQgdGhlIGNvcnJlY3QgdHlwZSBvciB0dXJuIGludG8gYSBnZW5lcmljLCBodHRwczovL3d3dy50eXBlc2NyaXB0bGFuZy5vcmcvZG9jcy9oYW5kYm9vay8yL2dlbmVyaWNzLmh0bWxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKGV2ZW50OiBhbnkpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVybCA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlRXh0ZW5zaW9uID0gdGhpcy5nZXRGaWxlRXh0ZW5zaW9uKHRoaXMuZmlsZS5uYW1lKTtcbiAgICAgICAgICAgICAgICB0aGlzLmljb24gPSB0aGlzLmdldEljb25Gb3JNaW1lKHRoaXMuZmlsZUV4dGVuc2lvbik7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3JlYWRlci5yZXN1bHRdLCB7IHR5cGU6IHRoaXMuZmlsZS50eXBlIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGltYWdlVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcblxuICAgICAgICAgICAgICAgIHRoaXMucHJldmlld0RhdGEgPSB0aGlzLmdldFByZXZpZXdGb3JNaW1lKHRoaXMuZmlsZUV4dGVuc2lvbiwgaW1hZ2VVcmwpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZHN0YXJ0ID0gKGV2ZW50OiBQcm9ncmVzc0V2ZW50KTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXJsID0gKHRoaXMuZmlsZSBhcyBFdWlVcGxvYWRlZEZpbGVJbnRlcmZhY2UpLnVybDtcbiAgICAgICAgICAgIHRoaXMuZmlsZUV4dGVuc2lvbiA9IHRoaXMuZ2V0RmlsZUV4dGVuc2lvbih0aGlzLmZpbGUubmFtZSk7XG4gICAgICAgICAgICB0aGlzLmljb24gPSB0aGlzLmdldEljb25Gb3JNaW1lKHRoaXMuZmlsZUV4dGVuc2lvbik7XG5cbiAgICAgICAgICAgIHRoaXMucHJldmlld0RhdGEgPSB0aGlzLmdldFByZXZpZXdGb3JNaW1lKHRoaXMuZmlsZUV4dGVuc2lvbiwgdGhpcy51cmwpO1xuXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0uZ2V0VHlwZSgpID09PSAndXBsb2FkZWRGaWxlJykge1xuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25SZW1vdmVGcm9tTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW1vdmVGcm9tTGlzdC5lbWl0KHRoaXMuaW5kZXgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkl0ZW1DbGljayhlOiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLml0ZW1DbGljay5lbWl0KHRoaXMuZmlsZSk7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpbGVFeHRlbnNpb24oZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGV4dCA9IGZpbGVOYW1lLnNwbGl0KCcuJyk7XG5cbiAgICAgICAgcmV0dXJuIGV4dFtleHQubGVuZ3RoIC0gMV07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQcmV2aWV3Rm9yTWltZShmaWxlRXh0ZW5zaW9uOiBzdHJpbmcsIGltZ1VybDogc3RyaW5nKTogeyBpbWFnZTogYm9vbGVhbjsgZGlzcGxheTogc3RyaW5nIH0ge1xuICAgICAgICBjb25zdCBmID0gZmlsZUV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBjb25zdCBpbWFnZSA9IGYgPT09ICdqcGVnJyB8fCBmID09PSAnanBnJyB8fCBmID09PSAncG5nJyB8fCBmID09PSAnZ2lmJyA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgY29uc3QgZGlzcGxheSA9IGYgPT09ICdqcGVnJyB8fCBmID09PSAnanBnJyB8fCBmID09PSAncG5nJyB8fCBmID09PSAnZ2lmJyA/IGltZ1VybCA6IHRoaXMuZ2V0SWNvbkZvck1pbWUoZik7XG5cbiAgICAgICAgcmV0dXJuIHsgaW1hZ2UsIGRpc3BsYXkgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEljb25Gb3JNaW1lKGZpbGVFeHRlbnNpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGYgPSBmaWxlRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiAhdGhpcy5wcmV2aWV3QXNJY29uQ29uZmlnW2ZdID8gJ2V1aS1maWxlLWVtcHR5LW8nIDogdGhpcy5wcmV2aWV3QXNJY29uQ29uZmlnW2ZdO1xuICAgIH1cbn1cbiIsIkBpZiAodXBsb2FkZWRGaWxlVGVtcGxhdGUpIHtcbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidXBsb2FkZWRGaWxlVGVtcGxhdGVcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHsgZmlsZTogeyBpZDogZmlsZS5pZCwgbmFtZTogZmlsZS5uYW1lLCB1cmw6IGZpbGUudXJsIHx8IHByZXZpZXdEYXRhPy5kaXNwbGF5LCBzaXplOiBmaWxlLnNpemUsIHR5cGU6IGZpbGUudHlwZSB9LCBpbmRleCwgaXNGaWxlT2JqZWN0IH0gfVwiPlxuICAgIDwvbmctdGVtcGxhdGU+XG59IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXVpLWZpbGUtdXBsb2FkX19wcmV2aWV3XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX3ByZXZpZXctLWxlZnRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX3ByZXZpZXctLWxlZnRfX2ltYWdlXCIgKm5nSWY9XCJoYXNQcmV2aWV3ICYmIGhhc1ByZXZpZXdBc0ltYWdlXCI+XG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cInByZXZpZXdEYXRhLmRpc3BsYXlcIiAqbmdJZj1cInVybCAmJiBwcmV2aWV3RGF0YS5pbWFnZVwiIC8+XG4gICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyAqbmdJZj1cInByZXZpZXdEYXRhICYmICFwcmV2aWV3RGF0YS5pbWFnZVwiIGljb249XCJ7eyBwcmV2aWV3RGF0YS5kaXNwbGF5IH19XCIgc2l6ZT1cImxcIiBmaWxsQ29sb3I9XCJpbmZvLTEwMFwiIGNsYXNzPVwiZXVpLXUtbXItc1wiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaXNMb2FkaW5nIHNpemU9XCIyeGxcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImhhc1ByZXZpZXcgJiYgaGFzUHJldmlld0FzSWNvblwiPlxuICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cInt7IGljb24gfX1cIiBzaXplPVwibFwiIGZpbGxDb2xvcj1cImluZm8tMTAwXCIgY2xhc3M9XCJldWktdS1tci1zXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX3ByZXZpZXctLWxlZnRfX2ZpbGVuYW1lIGV1aS11LXRleHQtdHJ1bmNhdGVcIiAqbmdJZj1cImlzRmlsZW5hbWVEaXNwbGF5ZWRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzSXRlbXNDbGlja2FibGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZmlsZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzSXRlbXNDbGlja2FibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiIGNsYXNzPVwiZXVpLXUtdGV4dC1saW5rIGV1aS11LXRleHQtdHJ1bmNhdGVcIj57eyBmaWxlLm5hbWUgfX08L2E+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJldWktZmlsZS11cGxvYWRfX3ByZXZpZXctLXJpZ2h0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXUtdGV4dC1uby13cmFwIGV1aS11LW1sLW1cIiAqbmdJZj1cImlzRmlsZXNpemVEaXNwbGF5ZWRcIj57eyBmaWxlLnNpemUgfCBmaWxlc2l6ZSB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV1aS11LW1sLW1cIiAqbmdJZj1cImlzRmlsZXR5cGVEaXNwbGF5ZWRcIj48c3BhbiBldWlMYWJlbD57eyBmaWxlLnR5cGUgfX08L3NwYW4+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXVpLXUtbWwtbVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gZXVpQnV0dG9uIGV1aURhbmdlciBldWlSb3VuZGVkIGV1aUljb25CdXR0b24gZXVpQmFzaWNCdXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvblJlbW92ZUZyb21MaXN0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiZXVpLWVjbC10cmFzaFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuIl19
|