@smartbit4all/ng-client 4.2.125 → 4.2.127
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/esm2022/lib/smart-client/smart-component-api-client.mjs +3 -19
- package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +3 -2
- package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs +96 -66
- package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +13 -11
- package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +15 -2
- package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.mjs +4 -4
- package/fesm2022/smartbit4all-ng-client.mjs +123 -94
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.d.ts +19 -10
- package/lib/smart-form/widgets/smartformwidget/smartformwidget.component.d.ts +2 -8
- package/package.json +1 -1
- package/smartbit4all-ng-client-4.2.127.tgz +0 -0
- package/smartbit4all-ng-client-4.2.125.tgz +0 -0
package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs
CHANGED
|
@@ -90,8 +90,21 @@ export class TableLayoutDefinerComponent {
|
|
|
90
90
|
let index = this.view.orderedColumnNames.indexOf(propertyName);
|
|
91
91
|
if (index > -1) {
|
|
92
92
|
this.view?.orderedColumnNames.splice(index, 1);
|
|
93
|
+
this.mapOrderedColumnsToObject();
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
this.view?.orderedColumnNames.splice(form.widgets[0].key, 1);
|
|
97
|
+
delete this.orderedColumnsAsObject[form.widgets[0].key];
|
|
98
|
+
Object.entries(this.orderedColumnsAsObject)
|
|
99
|
+
.filter(([key]) => key > form.widgets[0].key)
|
|
100
|
+
.map(([key]) => moveItemInArray(this.forms, key, key - 1));
|
|
101
|
+
this.orderedColumnsAsObject = Object.fromEntries(Object.entries(this.orderedColumnsAsObject).map(([key, value]) => {
|
|
102
|
+
if (key > form.widgets[0].key) {
|
|
103
|
+
return [key - 1, value];
|
|
104
|
+
}
|
|
105
|
+
return [key, value];
|
|
106
|
+
}));
|
|
93
107
|
}
|
|
94
|
-
this.mapOrderedColumnsToObject();
|
|
95
108
|
this.constructForms();
|
|
96
109
|
this.showAddBtn = this.forms.length < this.getMaxColumnCount();
|
|
97
110
|
}
|
|
@@ -179,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
179
192
|
type: ViewChildren,
|
|
180
193
|
args: ['forms']
|
|
181
194
|
}] } });
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbGF5b3V0LWRlZmluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZ3JpZC9jb21wb25lbnRzL3RhYmxlLWxheW91dC1kZWZpbmVyL3RhYmxlLWxheW91dC1kZWZpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWdyaWQvY29tcG9uZW50cy90YWJsZS1sYXlvdXQtZGVmaW5lci90YWJsZS1sYXlvdXQtZGVmaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsbUJBQW1CLEdBRXBCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBUSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQWlCaEQsTUFBTSxPQUFPLDJCQUEyQjtJQVV0QyxZQUNrQyxJQUFxQixFQUM3QyxTQUFvRDtRQUQ1QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQVh0RCxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJekMsMkJBQXNCLEdBQThCLEVBQUUsQ0FBQztRQUMvRCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsZUFBVSxHQUFZLElBQUksQ0FBQztRQU16QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFLLENBQUMsVUFBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNsRixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDdEQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDeEUsSUFBSSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztnQkFFNUQsSUFBSSxjQUFjLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUMvQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQy9ELENBQUM7Z0JBRUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDNUYsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMscUJBQStCO1FBQzNDLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUM1RSxJQUFJLElBQUksR0FBYztnQkFDcEIsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDckQsU0FBUyxFQUFFLHdCQUF3QixDQUFDLEdBQUc7Z0JBQ3ZDLHFCQUFxQixFQUFFLElBQUk7Z0JBQzNCLE9BQU8sRUFBRTtvQkFDUDt3QkFDRSxHQUFHLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRTt3QkFDckIsS0FBSyxFQUFFLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU07d0JBQ2hDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSyxDQUFDLFVBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQzVFLENBQUMsT0FBdUIsRUFBRSxFQUFFOzRCQUMxQixPQUFPO2dDQUNMLEdBQUcsRUFBRSxFQUFFO2dDQUNQLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztnQ0FDcEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZO2dDQUMzQixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTs2QkFDL0IsQ0FBQzt3QkFDSixDQUFDLENBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVILFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNoQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLEtBQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzNFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWU7UUFDMUIsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBSSxDQUFDLENBQUM7UUFDckUsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVPLHNCQUFzQixDQUFDLElBQVk7UUFDekMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FDN0MsQ0FBQyxLQUFxQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLElBQUksQ0FDdkQsRUFBRSxLQUFLLENBQUM7UUFDVCxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksQ0FBQyxLQUE0QjtRQUMvQixlQUFlLENBQUMsSUFBSSxDQUFDLEtBQU0sRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxJQUFJLEdBQWM7WUFDcEIsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUNyRCxTQUFTLEVBQUUsd0JBQXdCLENBQUMsR0FBRztZQUN2QyxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsS0FBSyxFQUFFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUM7b0JBQ3ZDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO29CQUNoQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUssQ0FBQyxVQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQXVCLEVBQUUsRUFBRTt3QkFDeEUsT0FBTzs0QkFDTCxHQUFHLEVBQUUsRUFBRTs0QkFDUCxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7NEJBQ3BCLEtBQUssRUFBRSxPQUFPLENBQUMsWUFBWTs0QkFDM0IsSUFBSSxFQUFFLG1CQUFtQixDQUFDLElBQUk7eUJBQy9CLENBQUM7b0JBQ0osQ0FBQyxDQUFDO2lCQUNIO2FBQ0Y7U0FDRixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJLENBQUMsSUFBSyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDO1FBRXBELElBQUksVUFBVSxHQUFtQjtZQUMvQixXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUssQ0FBQyxXQUFXO1lBQ25DLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFLLENBQUMsa0JBQWtCO1NBQ2xELENBQUM7UUFFRixNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ3pELE1BQU0sQ0FBQyxJQUFJLEVBQ1gsTUFBTSxDQUFDLFVBQVUsRUFDakIsVUFBVSxDQUNYLENBQUM7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBZSxFQUFFLEVBQUU7WUFDeEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUksQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBd0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFNUUsSUFBSSxxQkFBcUIsR0FBRyxlQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO1lBQ2pFLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxxQkFBcUIsQ0FBQztJQUMvQixDQUFDO0lBRU8seUJBQXlCO1FBQy9CLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBYSxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ2pFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFtQixFQUFFLEVBQUU7WUFDN0QsSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBYztRQUN6QixJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUksQ0FBQztRQUU5QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN0RSxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBbE1VLDJCQUEyQixrQkFXNUIsZUFBZTttR0FYZCwyQkFBMkIsMEpDMUJ4Qyx1bkNBMkJBOzs0RkREYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsMEJBQTBCOzswQkFlakMsTUFBTTsyQkFBQyxlQUFlO29FQVRGLFlBQVk7c0JBQWxDLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHtcclxuICBTbWFydEZvcm0sXHJcbiAgU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLFxyXG4gIFNtYXJ0Rm9ybVdpZGdldFR5cGUsXHJcbiAgU21hcnRmb3JtQ29tcG9uZW50LFxyXG59IGZyb20gJy4uLy4uLy4uL3NtYXJ0LWZvcm0vcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR3JpZENvbHVtbk1ldGEsIEdyaWRVcGRhdGVEYXRhLCBHcmlkVmlldyB9IGZyb20gJy4uLy4uL2FwaS9ncmlkLWFwaSc7XHJcbmltcG9ydCB7IFNtYXJ0R3JpZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zbWFydC1ncmlkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTbWFydERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi8uLi9zbWFydC1kaWFsb2cvcHJvamVjdHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUxheW91dERlZmluZXJDb25maWcge1xyXG4gIHV1aWQ6IHN0cmluZztcclxuICBpZGVudGlmaWVyOiBzdHJpbmc7XHJcbiAgdmlldzogR3JpZFZpZXc7XHJcbiAgc2VydmljZTogU21hcnRHcmlkU2VydmljZTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtdGFibGUtbGF5b3V0LWRlZmluZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1sYXlvdXQtZGVmaW5lci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtbGF5b3V0LWRlZmluZXIuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVMYXlvdXREZWZpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgQFZpZXdDaGlsZHJlbignZm9ybXMnKSBmb3JtQ2hpbGRyZW4/OiBTbWFydGZvcm1Db21wb25lbnRbXTtcclxuICBmb3Jtcz86IFNtYXJ0Rm9ybVtdO1xyXG4gIHZpZXc/OiBHcmlkVmlldztcclxuICBwcml2YXRlIG9yZGVyZWRDb2x1bW5zQXNPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICBkaXNhYmxlU2F2ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGFsd2F5c1Nob3dDb2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHNob3dBZGRCdG46IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogU21hcnREaWFsb2dEYXRhLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUYWJsZUxheW91dERlZmluZXJDb21wb25lbnQ+XHJcbiAgKSB7XHJcbiAgICB0aGlzLnZpZXcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGRhdGEuY3VzdG9tQ29tcG9uZW50SW5wdXRzLmNvbmZpZy52aWV3KSk7XHJcbiAgICB0aGlzLm1hcE9yZGVyZWRDb2x1bW5zVG9PYmplY3QoKTtcclxuICAgIHRoaXMuY29uc3RydWN0Rm9ybXMoKTtcclxuICAgIHRoaXMuZ2V0QWx3YXlzU2hvd0NvbHVtbnMoKTtcclxuICAgIHRoaXMuc2hvd0FkZEJ0biA9ICEodGhpcy5mb3JtcyEubGVuZ3RoID09IHRoaXMuZ2V0TWF4Q29sdW1uQ291bnQoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1heENvbHVtbkNvdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMudmlldyEuZGVzY3JpcHRvciEuY29sdW1ucy5maWx0ZXIoKGNvbCkgPT4gIWNvbC5hbHdheXNIaWRkZW4pLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NpYmVGb3JWYWx1ZUNoYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJzY2liZUZvclZhbHVlQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtQ2hpbGRyZW4/LmZvckVhY2goKGNvbXA6IFNtYXJ0Zm9ybUNvbXBvbmVudCkgPT4ge1xyXG4gICAgICBjb21wLm9uVmFsdWVDaGFuZ2VTdWJqZWN0Py5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgbGV0IHVwZGF0ZWRPcmRlcmVkQ29sdW1ucyA9IHRoaXMuZ2V0VXBkYXRlZE9yZGVyZWRDb2x1bW5zKCk7XHJcblxyXG4gICAgICAgIGxldCBmaW5kRHVwbGljYXRlcyA9IHVwZGF0ZWRPcmRlcmVkQ29sdW1ucy5maWx0ZXIoXHJcbiAgICAgICAgICAoaXRlbSwgaW5kZXgpID0+IHVwZGF0ZWRPcmRlcmVkQ29sdW1ucy5pbmRleE9mKGl0ZW0pICE9PSBpbmRleFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuZGlzYWJsZVNhdmUgPSBmaW5kRHVwbGljYXRlcy5sZW5ndGggPiAwIHx8IHRoaXMuaGFzRW1wdHlWYWx1ZSh1cGRhdGVkT3JkZXJlZENvbHVtbnMpO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGFzRW1wdHlWYWx1ZSh1cGRhdGVkT3JkZXJlZENvbHVtbnM6IHN0cmluZ1tdKSB7XHJcbiAgICByZXR1cm4gdXBkYXRlZE9yZGVyZWRDb2x1bW5zLnNvbWUoKHZhbHVlKSA9PiB2YWx1ZS5sZW5ndGggPT09IDApO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0Rm9ybXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1zID0gdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMubWFwKChjb2w6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBsZXQgZm9ybTogU21hcnRGb3JtID0ge1xyXG4gICAgICAgIGNvbXBvbmVudE1vZGVsOiB7IGRhdGE6IHRoaXMub3JkZXJlZENvbHVtbnNBc09iamVjdCB9LFxyXG4gICAgICAgIGRpcmVjdGlvbjogU21hcnRGb3JtV2lkZ2V0RGlyZWN0aW9uLkNPTCxcclxuICAgICAgICB1c2VPblZhbHVlQ2hhbmdlRXZlbnQ6IHRydWUsXHJcbiAgICAgICAgd2lkZ2V0czogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBrZXk6IGluZGV4LnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5TRUxFQ1QsXHJcbiAgICAgICAgICAgIHZhbHVlTGlzdDogdGhpcy52aWV3IS5kZXNjcmlwdG9yIS5jb2x1bW5zLmZpbHRlcigoY20pID0+ICFjbS5hbHdheXNIaWRkZW4pLm1hcChcclxuICAgICAgICAgICAgICAoY29sTWV0YTogR3JpZENvbHVtbk1ldGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAgIGtleTogJycsXHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBjb2xNZXRhLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogY29sTWV0YS5wcm9wZXJ0eU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU6IFNtYXJ0Rm9ybVdpZGdldFR5cGUuSVRFTSxcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdLFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gZm9ybTtcclxuICAgIH0pO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnN1YnNjaWJlRm9yVmFsdWVDaGFuZ2UoKTtcclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuXHJcbiAgYWRkQ29sdW1uKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9ybXMhLmxlbmd0aCA8IHRoaXMuZ2V0TWF4Q29sdW1uQ291bnQoKSkge1xyXG4gICAgICB0aGlzLnZpZXc/Lm9yZGVyZWRDb2x1bW5OYW1lcy5wdXNoKCcnKTtcclxuICAgICAgdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W3RoaXMudmlldyEub3JkZXJlZENvbHVtbk5hbWVzLmxlbmd0aCAtIDFdID0gJyc7XHJcbiAgICAgIHRoaXMuY29uc3RydWN0Rm9ybXMoKTtcclxuICAgICAgdGhpcy5kaXNhYmxlU2F2ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dBZGRCdG4gPSB0aGlzLmZvcm1zIS5sZW5ndGggPCB0aGlzLmdldE1heENvbHVtbkNvdW50KCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVDb2x1bW4oZm9ybTogU21hcnRGb3JtKTogdm9pZCB7XHJcbiAgICBsZXQgcHJvcGVydHlOYW1lID0gdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W2Zvcm0ud2lkZ2V0c1swXS5rZXkhXTtcclxuICAgIGxldCBpbmRleCA9IHRoaXMudmlldyEub3JkZXJlZENvbHVtbk5hbWVzLmluZGV4T2YocHJvcGVydHlOYW1lKTtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHRoaXMudmlldz8ub3JkZXJlZENvbHVtbk5hbWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1hcE9yZGVyZWRDb2x1bW5zVG9PYmplY3QoKTtcclxuICAgIHRoaXMuY29uc3RydWN0Rm9ybXMoKTtcclxuICAgIHRoaXMuc2hvd0FkZEJ0biA9IHRoaXMuZm9ybXMhLmxlbmd0aCA8IHRoaXMuZ2V0TWF4Q29sdW1uQ291bnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TGFiZWxGcm9tQ29sdW1uTWV0YShwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IGxhYmVsID0gdGhpcy52aWV3Py5kZXNjcmlwdG9yPy5jb2x1bW5zLmZpbmQoXHJcbiAgICAgICh2YWx1ZTogR3JpZENvbHVtbk1ldGEpID0+IHZhbHVlLnByb3BlcnR5TmFtZSA9PT0gcHJvcFxyXG4gICAgKT8ubGFiZWw7XHJcbiAgICByZXR1cm4gbGFiZWwgPz8gcHJvcDtcclxuICB9XHJcblxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZm9ybXMhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybUZvckNvbChjb2w6IHN0cmluZyk6IFNtYXJ0Rm9ybSB7XHJcbiAgICBsZXQgZm9ybTogU21hcnRGb3JtID0ge1xyXG4gICAgICBjb21wb25lbnRNb2RlbDogeyBkYXRhOiB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3QgfSxcclxuICAgICAgZGlyZWN0aW9uOiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uQ09MLFxyXG4gICAgICB3aWRnZXRzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAga2V5OiBjb2wsXHJcbiAgICAgICAgICBsYWJlbDogdGhpcy5nZXRMYWJlbEZyb21Db2x1bW5NZXRhKGNvbCksXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVCxcclxuICAgICAgICAgIHZhbHVlTGlzdDogdGhpcy52aWV3IS5kZXNjcmlwdG9yIS5jb2x1bW5zLm1hcCgoY29sTWV0YTogR3JpZENvbHVtbk1ldGEpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBrZXk6ICcnLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiBjb2xNZXRhLmxhYmVsLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBjb2xNZXRhLnByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc3VibWl0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMgPSB0aGlzLmdldFVwZGF0ZWRPcmRlcmVkQ29sdW1ucygpO1xyXG4gICAgbGV0IGNvbmZpZyA9IHRoaXMuZGF0YS5jdXN0b21Db21wb25lbnRJbnB1dHMuY29uZmlnO1xyXG5cclxuICAgIGxldCB1cGRhdGVEYXRhOiBHcmlkVXBkYXRlRGF0YSA9IHtcclxuICAgICAgb3JkZXJCeUxpc3Q6IHRoaXMudmlldyEub3JkZXJCeUxpc3QsXHJcbiAgICAgIG9yZGVyZWRDb2x1bW5OYW1lczogdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMsXHJcbiAgICB9O1xyXG5cclxuICAgIGF3YWl0IHRoaXMuZGF0YS5jdXN0b21Db21wb25lbnRJbnB1dHMuY29uZmlnLnNlcnZpY2UudXBkYXRlKFxyXG4gICAgICBjb25maWcudXVpZCxcclxuICAgICAgY29uZmlnLmlkZW50aWZpZXIsXHJcbiAgICAgIHVwZGF0ZURhdGFcclxuICAgICk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VXBkYXRlZE9yZGVyZWRDb2x1bW5zKCkge1xyXG4gICAgbGV0IHVwZGF0ZWRLZXlPcmRlciA9IHRoaXMuZm9ybXMhLm1hcCgoZm9ybTogU21hcnRGb3JtKSA9PiB7XHJcbiAgICAgIHJldHVybiBmb3JtLndpZGdldHNbMF0ua2V5ITtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZm9ybUNoaWxkcmVuPy5mb3JFYWNoKChjb21wOiBTbWFydGZvcm1Db21wb25lbnQpID0+IGNvbXAuc3VibWl0Rm9ybSgpKTtcclxuXHJcbiAgICBsZXQgdXBkYXRlZE9yZGVyZWRDb2x1bW5zID0gdXBkYXRlZEtleU9yZGVyIS5tYXAoKHZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMub3JkZXJlZENvbHVtbnNBc09iamVjdFt2YWx1ZV07XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB1cGRhdGVkT3JkZXJlZENvbHVtbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcE9yZGVyZWRDb2x1bW5zVG9PYmplY3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXc/Lm9yZGVyZWRDb2x1bW5OYW1lcy5tYXAoKHZhbHVlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W2luZGV4XSA9IHZhbHVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFsd2F5c1Nob3dDb2x1bW5zKCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3Py5kZXNjcmlwdG9yPy5jb2x1bW5zLmZvckVhY2goKGNvbDogR3JpZENvbHVtbk1ldGEpID0+IHtcclxuICAgICAgaWYgKGNvbC5hbHdheXNTaG93KSB7XHJcbiAgICAgICAgdGhpcy5hbHdheXNTaG93Q29sdW1ucy5wdXNoKGNvbC5wcm9wZXJ0eU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzQWx3YXlzU2hvdyhjb2w6IFNtYXJ0Rm9ybSkge1xyXG4gICAgbGV0IGtleSA9IGNvbC53aWRnZXRzWzBdLmtleSE7XHJcblxyXG4gICAgaWYgKHRoaXMuYWx3YXlzU2hvd0NvbHVtbnMuaW5jbHVkZXModGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W2tleV0pKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZWRpdC1jb2x1bW5zLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJleGFtcGxlLWxpc3RcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbi1tZXRhLXJvd1wiICpuZ0Zvcj1cImxldCBjb2wgb2YgZm9ybXNcIiBjZGtEcmFnIGNka0RyYWdMb2NrQXhpcz1cInlcIj5cclxuICAgICAgPHNtYXJ0LWljb24gY29sb3I9XCJwcmltYXJ5XCIgaWNvbj1cImRyYWdfaGFuZGxlXCI+PC9zbWFydC1pY29uPlxyXG4gICAgICA8c21hcnRmb3JtIGNsYXNzPVwiZm9ybVwiICNmb3JtcyBbc21hcnRGb3JtXT1cImNvbFwiPjwvc21hcnRmb3JtPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJpc0Fsd2F5c1Nob3coY29sKSAmJiAodmlldz8ub3JkZXJlZENvbHVtbk5hbWVzKSEubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInJlbW92ZUNvbHVtbihjb2wpXCJcclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uPmRlbGV0ZV9vdXRsaW5lPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYWRkLWJ0blwiICpuZ0lmPVwic2hvd0FkZEJ0blwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImFkZENvbHVtbigpXCI+XHJcbiAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImJ1dHRvbi10b29sYmFyXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+IE3DqWdzZW0gPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlU2F2ZVwiIChjbGljayk9XCJzdWJtaXQoKVwiPlxyXG4gICAgICBNZW50w6lzXHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbGF5b3V0LWRlZmluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvc21hcnQtZ3JpZC9jb21wb25lbnRzL3RhYmxlLWxheW91dC1kZWZpbmVyL3RhYmxlLWxheW91dC1kZWZpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LWdyaWQvY29tcG9uZW50cy90YWJsZS1sYXlvdXQtZGVmaW5lci90YWJsZS1sYXlvdXQtZGVmaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsbUJBQW1CLEdBRXBCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBUSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQWlCaEQsTUFBTSxPQUFPLDJCQUEyQjtJQVV0QyxZQUNrQyxJQUFxQixFQUM3QyxTQUFvRDtRQUQ1QixTQUFJLEdBQUosSUFBSSxDQUFpQjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQVh0RCxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFJekMsMkJBQXNCLEdBQThCLEVBQUUsQ0FBQztRQUMvRCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsZUFBVSxHQUFZLElBQUksQ0FBQztRQU16QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFLLENBQUMsVUFBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNsRixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUU7WUFDdEQsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDeEUsSUFBSSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztnQkFFNUQsSUFBSSxjQUFjLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUMvQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQy9ELENBQUM7Z0JBRUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDNUYsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMscUJBQStCO1FBQzNDLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVcsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUM1RSxJQUFJLElBQUksR0FBYztnQkFDcEIsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtnQkFDckQsU0FBUyxFQUFFLHdCQUF3QixDQUFDLEdBQUc7Z0JBQ3ZDLHFCQUFxQixFQUFFLElBQUk7Z0JBQzNCLE9BQU8sRUFBRTtvQkFDUDt3QkFDRSxHQUFHLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRTt3QkFDckIsS0FBSyxFQUFFLEVBQUU7d0JBQ1QsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU07d0JBQ2hDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSyxDQUFDLFVBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQzVFLENBQUMsT0FBdUIsRUFBRSxFQUFFOzRCQUMxQixPQUFPO2dDQUNMLEdBQUcsRUFBRSxFQUFFO2dDQUNQLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztnQ0FDcEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZO2dDQUMzQixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTs2QkFDL0IsQ0FBQzt3QkFDSixDQUFDLENBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVILFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNoQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLEtBQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzNFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWU7UUFDMUIsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBSSxDQUFDLENBQUM7UUFDckUsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNuQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBSSxDQUFDLENBQUM7WUFFekQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUM7aUJBQ3hDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFFLEdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUksQ0FBQztpQkFDdEQsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFNLEVBQUUsR0FBVSxFQUFHLEdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTlFLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUM5QyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7Z0JBQy9ELElBQUssR0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBSSxFQUFFLENBQUM7b0JBQ3hDLE9BQU8sQ0FBRSxHQUFXLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxDQUFDO2dCQUNELE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNsRSxDQUFDO0lBRU8sc0JBQXNCLENBQUMsSUFBWTtRQUN6QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUM3QyxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUN2RCxFQUFFLEtBQUssQ0FBQztRQUNULE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQTRCO1FBQy9CLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBTSxFQUFFLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBVztRQUN2QixJQUFJLElBQUksR0FBYztZQUNwQixjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQ3JELFNBQVMsRUFBRSx3QkFBd0IsQ0FBQyxHQUFHO1lBQ3ZDLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxHQUFHLEVBQUUsR0FBRztvQkFDUixLQUFLLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQztvQkFDdkMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU07b0JBQ2hDLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSyxDQUFDLFVBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBdUIsRUFBRSxFQUFFO3dCQUN4RSxPQUFPOzRCQUNMLEdBQUcsRUFBRSxFQUFFOzRCQUNQLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSzs0QkFDcEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxZQUFZOzRCQUMzQixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTt5QkFDL0IsQ0FBQztvQkFDSixDQUFDLENBQUM7aUJBQ0g7YUFDRjtTQUNGLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTTtRQUNWLElBQUksQ0FBQyxJQUFLLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDaEUsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFFcEQsSUFBSSxVQUFVLEdBQW1CO1lBQy9CLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSyxDQUFDLFdBQVc7WUFDbkMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUssQ0FBQyxrQkFBa0I7U0FDbEQsQ0FBQztRQUVGLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDekQsTUFBTSxDQUFDLElBQUksRUFDWCxNQUFNLENBQUMsVUFBVSxFQUNqQixVQUFVLENBQ1gsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsSUFBSSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFlLEVBQUUsRUFBRTtZQUN4RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBSSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUU1RSxJQUFJLHFCQUFxQixHQUFHLGVBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDakUsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLHFCQUFxQixDQUFDO0lBQy9CLENBQUM7SUFFTyx5QkFBeUI7UUFDL0IsSUFBSSxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDakUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQW1CLEVBQUUsRUFBRTtZQUM3RCxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFjO1FBQ3pCLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBSSxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RFLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzsrR0FsTlUsMkJBQTJCLGtCQVc1QixlQUFlO21HQVhkLDJCQUEyQiwwSkMxQnhDLHVuQ0EyQkE7OzRGRERhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7OzBCQWVqQyxNQUFNOzJCQUFDLGVBQWU7b0VBVEYsWUFBWTtzQkFBbEMsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQge1xyXG4gIFNtYXJ0Rm9ybSxcclxuICBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24sXHJcbiAgU21hcnRGb3JtV2lkZ2V0VHlwZSxcclxuICBTbWFydGZvcm1Db21wb25lbnQsXHJcbn0gZnJvbSAnLi4vLi4vLi4vc21hcnQtZm9ybS9wcm9qZWN0cyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHcmlkQ29sdW1uTWV0YSwgR3JpZFVwZGF0ZURhdGEsIEdyaWRWaWV3IH0gZnJvbSAnLi4vLi4vYXBpL2dyaWQtYXBpJztcclxuaW1wb3J0IHsgU21hcnRHcmlkU2VydmljZSB9IGZyb20gJy4uLy4uL3NtYXJ0LWdyaWQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0RGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uLy4uL3NtYXJ0LWRpYWxvZy9wcm9qZWN0cyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlTGF5b3V0RGVmaW5lckNvbmZpZyB7XHJcbiAgdXVpZDogc3RyaW5nO1xyXG4gIGlkZW50aWZpZXI6IHN0cmluZztcclxuICB2aWV3OiBHcmlkVmlldztcclxuICBzZXJ2aWNlOiBTbWFydEdyaWRTZXJ2aWNlO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC10YWJsZS1sYXlvdXQtZGVmaW5lcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWxheW91dC1kZWZpbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1sYXlvdXQtZGVmaW5lci5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUxheW91dERlZmluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBAVmlld0NoaWxkcmVuKCdmb3JtcycpIGZvcm1DaGlsZHJlbj86IFNtYXJ0Zm9ybUNvbXBvbmVudFtdO1xyXG4gIGZvcm1zPzogU21hcnRGb3JtW107XHJcbiAgdmlldz86IEdyaWRWaWV3O1xyXG4gIHByaXZhdGUgb3JkZXJlZENvbHVtbnNBc09iamVjdDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xyXG4gIGRpc2FibGVTYXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYWx3YXlzU2hvd0NvbHVtbnM6IHN0cmluZ1tdID0gW107XHJcbiAgc2hvd0FkZEJ0bjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBTbWFydERpYWxvZ0RhdGEsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFRhYmxlTGF5b3V0RGVmaW5lckNvbXBvbmVudD5cclxuICApIHtcclxuICAgIHRoaXMudmlldyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YS5jdXN0b21Db21wb25lbnRJbnB1dHMuY29uZmlnLnZpZXcpKTtcclxuICAgIHRoaXMubWFwT3JkZXJlZENvbHVtbnNUb09iamVjdCgpO1xyXG4gICAgdGhpcy5jb25zdHJ1Y3RGb3JtcygpO1xyXG4gICAgdGhpcy5nZXRBbHdheXNTaG93Q29sdW1ucygpO1xyXG4gICAgdGhpcy5zaG93QWRkQnRuID0gISh0aGlzLmZvcm1zIS5sZW5ndGggPT0gdGhpcy5nZXRNYXhDb2x1bW5Db3VudCgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TWF4Q29sdW1uQ291bnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy52aWV3IS5kZXNjcmlwdG9yIS5jb2x1bW5zLmZpbHRlcigoY29sKSA9PiAhY29sLmFsd2F5c0hpZGRlbikubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY2liZUZvclZhbHVlQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjaWJlRm9yVmFsdWVDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm1DaGlsZHJlbj8uZm9yRWFjaCgoY29tcDogU21hcnRmb3JtQ29tcG9uZW50KSA9PiB7XHJcbiAgICAgIGNvbXAub25WYWx1ZUNoYW5nZVN1YmplY3Q/LnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBsZXQgdXBkYXRlZE9yZGVyZWRDb2x1bW5zID0gdGhpcy5nZXRVcGRhdGVkT3JkZXJlZENvbHVtbnMoKTtcclxuXHJcbiAgICAgICAgbGV0IGZpbmREdXBsaWNhdGVzID0gdXBkYXRlZE9yZGVyZWRDb2x1bW5zLmZpbHRlcihcclxuICAgICAgICAgIChpdGVtLCBpbmRleCkgPT4gdXBkYXRlZE9yZGVyZWRDb2x1bW5zLmluZGV4T2YoaXRlbSkgIT09IGluZGV4XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5kaXNhYmxlU2F2ZSA9IGZpbmREdXBsaWNhdGVzLmxlbmd0aCA+IDAgfHwgdGhpcy5oYXNFbXB0eVZhbHVlKHVwZGF0ZWRPcmRlcmVkQ29sdW1ucyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYXNFbXB0eVZhbHVlKHVwZGF0ZWRPcmRlcmVkQ29sdW1uczogc3RyaW5nW10pIHtcclxuICAgIHJldHVybiB1cGRhdGVkT3JkZXJlZENvbHVtbnMuc29tZSgodmFsdWUpID0+IHZhbHVlLmxlbmd0aCA9PT0gMCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RGb3JtcygpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybXMgPSB0aGlzLnZpZXchLm9yZGVyZWRDb2x1bW5OYW1lcy5tYXAoKGNvbDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGxldCBmb3JtOiBTbWFydEZvcm0gPSB7XHJcbiAgICAgICAgY29tcG9uZW50TW9kZWw6IHsgZGF0YTogdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0IH0sXHJcbiAgICAgICAgZGlyZWN0aW9uOiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uQ09MLFxyXG4gICAgICAgIHVzZU9uVmFsdWVDaGFuZ2VFdmVudDogdHJ1ZSxcclxuICAgICAgICB3aWRnZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGtleTogaW5kZXgudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgbGFiZWw6ICcnLFxyXG4gICAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVCxcclxuICAgICAgICAgICAgdmFsdWVMaXN0OiB0aGlzLnZpZXchLmRlc2NyaXB0b3IhLmNvbHVtbnMuZmlsdGVyKChjbSkgPT4gIWNtLmFsd2F5c0hpZGRlbikubWFwKFxyXG4gICAgICAgICAgICAgIChjb2xNZXRhOiBHcmlkQ29sdW1uTWV0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAga2V5OiAnJyxcclxuICAgICAgICAgICAgICAgICAgbGFiZWw6IGNvbE1ldGEubGFiZWwsXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBjb2xNZXRhLnByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgICAgICAgdHlwZTogU21hcnRGb3JtV2lkZ2V0VHlwZS5JVEVNLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH07XHJcbiAgICAgIHJldHVybiBmb3JtO1xyXG4gICAgfSk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc3Vic2NpYmVGb3JWYWx1ZUNoYW5nZSgpO1xyXG4gICAgfSwgMTAwMCk7XHJcbiAgfVxyXG5cclxuICBhZGRDb2x1bW4oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5mb3JtcyEubGVuZ3RoIDwgdGhpcy5nZXRNYXhDb2x1bW5Db3VudCgpKSB7XHJcbiAgICAgIHRoaXMudmlldz8ub3JkZXJlZENvbHVtbk5hbWVzLnB1c2goJycpO1xyXG4gICAgICB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3RbdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMubGVuZ3RoIC0gMV0gPSAnJztcclxuICAgICAgdGhpcy5jb25zdHJ1Y3RGb3JtcygpO1xyXG4gICAgICB0aGlzLmRpc2FibGVTYXZlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0FkZEJ0biA9IHRoaXMuZm9ybXMhLmxlbmd0aCA8IHRoaXMuZ2V0TWF4Q29sdW1uQ291bnQoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUNvbHVtbihmb3JtOiBTbWFydEZvcm0pOiB2b2lkIHtcclxuICAgIGxldCBwcm9wZXJ0eU5hbWUgPSB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3RbZm9ybS53aWRnZXRzWzBdLmtleSFdO1xyXG4gICAgbGV0IGluZGV4ID0gdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMuaW5kZXhPZihwcm9wZXJ0eU5hbWUpO1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy52aWV3Py5vcmRlcmVkQ29sdW1uTmFtZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5tYXBPcmRlcmVkQ29sdW1uc1RvT2JqZWN0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZpZXc/Lm9yZGVyZWRDb2x1bW5OYW1lcy5zcGxpY2UoZm9ybS53aWRnZXRzWzBdLmtleSBhcyBhbnksIDEpO1xyXG4gICAgICBkZWxldGUgdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W2Zvcm0ud2lkZ2V0c1swXS5rZXkhXTtcclxuXHJcbiAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMub3JkZXJlZENvbHVtbnNBc09iamVjdClcclxuICAgICAgICAuZmlsdGVyKChba2V5XSkgPT4gKGtleSBhcyBhbnkpID4gZm9ybS53aWRnZXRzWzBdLmtleSEpXHJcbiAgICAgICAgLm1hcCgoW2tleV0pID0+IG1vdmVJdGVtSW5BcnJheSh0aGlzLmZvcm1zISwga2V5IGFzIGFueSwgKGtleSBhcyBhbnkpIC0gMSkpO1xyXG5cclxuICAgICAgdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxyXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHRoaXMub3JkZXJlZENvbHVtbnNBc09iamVjdCkubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcclxuICAgICAgICAgIGlmICgoa2V5IGFzIGFueSkgPiBmb3JtLndpZGdldHNbMF0ua2V5ISkge1xyXG4gICAgICAgICAgICByZXR1cm4gWyhrZXkgYXMgYW55KSAtIDEsIHZhbHVlXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBba2V5LCB2YWx1ZV07XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29uc3RydWN0Rm9ybXMoKTtcclxuICAgIHRoaXMuc2hvd0FkZEJ0biA9IHRoaXMuZm9ybXMhLmxlbmd0aCA8IHRoaXMuZ2V0TWF4Q29sdW1uQ291bnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TGFiZWxGcm9tQ29sdW1uTWV0YShwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IGxhYmVsID0gdGhpcy52aWV3Py5kZXNjcmlwdG9yPy5jb2x1bW5zLmZpbmQoXHJcbiAgICAgICh2YWx1ZTogR3JpZENvbHVtbk1ldGEpID0+IHZhbHVlLnByb3BlcnR5TmFtZSA9PT0gcHJvcFxyXG4gICAgKT8ubGFiZWw7XHJcbiAgICByZXR1cm4gbGFiZWwgPz8gcHJvcDtcclxuICB9XHJcblxyXG4gIGRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPHN0cmluZ1tdPikge1xyXG4gICAgbW92ZUl0ZW1JbkFycmF5KHRoaXMuZm9ybXMhLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybUZvckNvbChjb2w6IHN0cmluZyk6IFNtYXJ0Rm9ybSB7XHJcbiAgICBsZXQgZm9ybTogU21hcnRGb3JtID0ge1xyXG4gICAgICBjb21wb25lbnRNb2RlbDogeyBkYXRhOiB0aGlzLm9yZGVyZWRDb2x1bW5zQXNPYmplY3QgfSxcclxuICAgICAgZGlyZWN0aW9uOiBTbWFydEZvcm1XaWRnZXREaXJlY3Rpb24uQ09MLFxyXG4gICAgICB3aWRnZXRzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAga2V5OiBjb2wsXHJcbiAgICAgICAgICBsYWJlbDogdGhpcy5nZXRMYWJlbEZyb21Db2x1bW5NZXRhKGNvbCksXHJcbiAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLlNFTEVDVCxcclxuICAgICAgICAgIHZhbHVlTGlzdDogdGhpcy52aWV3IS5kZXNjcmlwdG9yIS5jb2x1bW5zLm1hcCgoY29sTWV0YTogR3JpZENvbHVtbk1ldGEpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBrZXk6ICcnLFxyXG4gICAgICAgICAgICAgIGxhYmVsOiBjb2xNZXRhLmxhYmVsLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBjb2xNZXRhLnByb3BlcnR5TmFtZSxcclxuICAgICAgICAgICAgICB0eXBlOiBTbWFydEZvcm1XaWRnZXRUeXBlLklURU0sXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc3VibWl0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMgPSB0aGlzLmdldFVwZGF0ZWRPcmRlcmVkQ29sdW1ucygpO1xyXG4gICAgbGV0IGNvbmZpZyA9IHRoaXMuZGF0YS5jdXN0b21Db21wb25lbnRJbnB1dHMuY29uZmlnO1xyXG5cclxuICAgIGxldCB1cGRhdGVEYXRhOiBHcmlkVXBkYXRlRGF0YSA9IHtcclxuICAgICAgb3JkZXJCeUxpc3Q6IHRoaXMudmlldyEub3JkZXJCeUxpc3QsXHJcbiAgICAgIG9yZGVyZWRDb2x1bW5OYW1lczogdGhpcy52aWV3IS5vcmRlcmVkQ29sdW1uTmFtZXMsXHJcbiAgICB9O1xyXG5cclxuICAgIGF3YWl0IHRoaXMuZGF0YS5jdXN0b21Db21wb25lbnRJbnB1dHMuY29uZmlnLnNlcnZpY2UudXBkYXRlKFxyXG4gICAgICBjb25maWcudXVpZCxcclxuICAgICAgY29uZmlnLmlkZW50aWZpZXIsXHJcbiAgICAgIHVwZGF0ZURhdGFcclxuICAgICk7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VXBkYXRlZE9yZGVyZWRDb2x1bW5zKCkge1xyXG4gICAgbGV0IHVwZGF0ZWRLZXlPcmRlciA9IHRoaXMuZm9ybXMhLm1hcCgoZm9ybTogU21hcnRGb3JtKSA9PiB7XHJcbiAgICAgIHJldHVybiBmb3JtLndpZGdldHNbMF0ua2V5ITtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZm9ybUNoaWxkcmVuPy5mb3JFYWNoKChjb21wOiBTbWFydGZvcm1Db21wb25lbnQpID0+IGNvbXAuc3VibWl0Rm9ybSgpKTtcclxuXHJcbiAgICBsZXQgdXBkYXRlZE9yZGVyZWRDb2x1bW5zID0gdXBkYXRlZEtleU9yZGVyIS5tYXAoKHZhbHVlOiBzdHJpbmcpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMub3JkZXJlZENvbHVtbnNBc09iamVjdFt2YWx1ZV07XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB1cGRhdGVkT3JkZXJlZENvbHVtbnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcE9yZGVyZWRDb2x1bW5zVG9PYmplY3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpZXc/Lm9yZGVyZWRDb2x1bW5OYW1lcy5tYXAoKHZhbHVlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgdGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W2luZGV4XSA9IHZhbHVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFsd2F5c1Nob3dDb2x1bW5zKCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3Py5kZXNjcmlwdG9yPy5jb2x1bW5zLmZvckVhY2goKGNvbDogR3JpZENvbHVtbk1ldGEpID0+IHtcclxuICAgICAgaWYgKGNvbC5hbHdheXNTaG93KSB7XHJcbiAgICAgICAgdGhpcy5hbHdheXNTaG93Q29sdW1ucy5wdXNoKGNvbC5wcm9wZXJ0eU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzQWx3YXlzU2hvdyhjb2w6IFNtYXJ0Rm9ybSkge1xyXG4gICAgbGV0IGtleSA9IGNvbC53aWRnZXRzWzBdLmtleSE7XHJcblxyXG4gICAgaWYgKHRoaXMuYWx3YXlzU2hvd0NvbHVtbnMuaW5jbHVkZXModGhpcy5vcmRlcmVkQ29sdW1uc0FzT2JqZWN0W2tleV0pKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZWRpdC1jb2x1bW5zLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJleGFtcGxlLWxpc3RcIiBjZGtEcm9wTGlzdCAoY2RrRHJvcExpc3REcm9wcGVkKT1cImRyb3AoJGV2ZW50KVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbHVtbi1tZXRhLXJvd1wiICpuZ0Zvcj1cImxldCBjb2wgb2YgZm9ybXNcIiBjZGtEcmFnIGNka0RyYWdMb2NrQXhpcz1cInlcIj5cclxuICAgICAgPHNtYXJ0LWljb24gY29sb3I9XCJwcmltYXJ5XCIgaWNvbj1cImRyYWdfaGFuZGxlXCI+PC9zbWFydC1pY29uPlxyXG4gICAgICA8c21hcnRmb3JtIGNsYXNzPVwiZm9ybVwiICNmb3JtcyBbc21hcnRGb3JtXT1cImNvbFwiPjwvc21hcnRmb3JtPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJpc0Fsd2F5c1Nob3coY29sKSAmJiAodmlldz8ub3JkZXJlZENvbHVtbk5hbWVzKSEubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInJlbW92ZUNvbHVtbihjb2wpXCJcclxuICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uPmRlbGV0ZV9vdXRsaW5lPC9tYXQtaWNvbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYWRkLWJ0blwiICpuZ0lmPVwic2hvd0FkZEJ0blwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImFkZENvbHVtbigpXCI+XHJcbiAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImJ1dHRvbi10b29sYmFyXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+IE3DqWdzZW0gPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlU2F2ZVwiIChjbGljayk9XCJzdWJtaXQoKVwiPlxyXG4gICAgICBNZW50w6lzXHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -18,7 +18,7 @@ export class PrimeFileUploaderComponent {
|
|
|
18
18
|
this.title = this.title ?? 'Dokumentum hozzáadása';
|
|
19
19
|
this.subTitle = this.subTitle ?? 'tallózás vagy behúzás';
|
|
20
20
|
this.maxSizeBytes = this.maxSizeMb * 1024 * 1024;
|
|
21
|
-
this.
|
|
21
|
+
this.fileFormatsString = this.fileFormats?.join(', ') ?? '';
|
|
22
22
|
}
|
|
23
23
|
isMobile() {
|
|
24
24
|
return /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
|
|
@@ -67,11 +67,11 @@ export class PrimeFileUploaderComponent {
|
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PrimeFileUploaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: PrimeFileUploaderComponent, selector: "prime-file-uploader", inputs: { isMultiple: "isMultiple", autoUpload: "autoUpload", maxSizeMb: "maxSizeMb", fileFormats: "fileFormats", title: "title", subTitle: "subTitle" }, outputs: { uploadFilesEvent: "uploadFilesEvent" }, viewQueries: [{ propertyName: "fileUploadPrime", first: true, predicate: ["fileUploadPrimeNg"], descendants: true }], ngImport: i0, template: "@if(isMultiple){\r\n<p-fileUpload\r\n #fileUploadPrimeNg\r\n name=\"files[]\"\r\n url=\"\"\r\n (onSelect)=\"select($event)\"\r\n (onSend)=\"uploadFiles($event)\"\r\n [multiple]=\"isMultiple\"\r\n [accept]=\"fileFormatsString\"\r\n [maxFileSize]=\"maxSizeBytes\"\r\n uploadLabel=\"Felt\u00F6lt\u00E9s\"\r\n cancelLabel=\"M\u00E9gsem\"\r\n chooseLabel=\"V\u00E1laszt\u00E1s\"\r\n>\r\n <ng-template pTemplate=\"content\" *ngIf=\"!isMobile()\">\r\n <ng-container *ngTemplateOutlet=\"uploader\" />\r\n </ng-template>\r\n <ng-template pTemplate=\"file\" let-file let-i=\"index\">\r\n <ng-container *ngTemplateOutlet=\"fileContainer; context: { $implicit: file, i: i }\" />\r\n </ng-template>\r\n</p-fileUpload>\r\n} @else{\r\n<p-fileUpload\r\n #fileUploadPrimeNg\r\n name=\"files[]\"\r\n url=\"\"\r\n (onSelect)=\"select($event)\"\r\n (onSend)=\"uploadFiles($event)\"\r\n [multiple]=\"isMultiple\"\r\n [accept]=\"fileFormatsString\"\r\n [maxFileSize]=\"maxSizeBytes\"\r\n [ngClass]=\"{ singlePrimeNg: true, autoUpload: autoUpload }\"\r\n uploadLabel=\"Felt\u00F6lt\u00E9s\"\r\n cancelLabel=\"M\u00E9gsem\"\r\n chooseLabel=\"V\u00E1laszt\u00E1s\"\r\n>\r\n <ng-template pTemplate=\"content\" *ngIf=\"!isMobile()\">\r\n <ng-container *ngTemplateOutlet=\"uploader\" />\r\n </ng-template>\r\n <ng-template pTemplate=\"file\" let-file let-i=\"index\">\r\n <ng-container *ngTemplateOutlet=\"fileContainer; context: { $implicit: file, i: i }\" />\r\n </ng-template>\r\n</p-fileUpload>\r\n}\r\n\r\n<ng-template #uploader let-file let-i=\"index\">\r\n <div class=\"uploadField\" (click)=\"fileUploadPrime.choose()\">\r\n <div class=\"uploadData\"\r\n ><smart-icon class=\"uploadIcon\" [icon]=\"'upload'\"></smart-icon>\r\n <div class=\"dataField\">\r\n <span class=\"title message\">{{ title }}</span>\r\n <span class=\"message\">{{ subTitle }}</span>\r\n <span class=\"message\">{{ fileFormatsString }}</span>\r\n <span class=\"message\"> max {{ maxSizeMb }} Mb</span>\r\n </div>\r\n </div>\r\n @if(isMultiple == false && autoUpload == false && (files && files.length > 0)){\r\n <ui-action-button [descriptor]=\"uploadButton\" (actionClick)=\"fileUploadPrime.upload()\" />\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #fileContainer let-file let-i=\"index\">\r\n <div class=\"p-fileupload-file\">\r\n @if(file.objectURL){\r\n <img role=\"presentation\" [alt]=\"file.name\" [src]=\"file.objectURL\" width=\"50\" height=\"50\" />\r\n }@else {\r\n <i class=\"pi pi-file\" style=\"font-size: 2rem\"></i>\r\n }\r\n\r\n <div class=\"fileData\">\r\n <span class=\"fileName\">{{ file.name }}</span>\r\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\r\n </div>\r\n <div class=\"fileButtons\">\r\n <button\r\n pButton\r\n icon=\"pi pi-download\"\r\n class=\"p-button-text file-action\"\r\n (click)=\"downloadFile(file)\"\r\n aria-label=\"Download\"\r\n style=\"color: var(--primary-color)\"\r\n ></button>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-text file-action\"\r\n (click)=\"fileUploadPrime.remove($event, i)\"\r\n aria-label=\"Remove\"\r\n style=\"color: rgb(239, 68, 68)\"\r\n ></button\r\n ></div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}:host ::ng-deep .p-fileupload .p-fileupload-buttonbar{display:flex!important;flex-direction:row;justify-content:center;flex-wrap:wrap;gap:1rem}:host ::ng-deep .p-fileupload .p-fileupload-row>div{width:fit-content}:host ::ng-deep .p-fileupload .p-fileupload-content{padding:unset;align-content:center;text-align:center}.message{font-size:smaller;text-align:center;color:#6b7280}.title{font-size:unset;color:var(--primary-color)}.uploadField{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:1rem;padding:.5rem 1rem;cursor:pointer}.uploadField:hover{background-color:rgb(from var(--border-color) r g b / .1)}:host ::ng-deep .p-fileupload-row{border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}:host ::ng-deep .p-fileupload-choose,:host ::ng-deep .p-fileupload-row ::ng-deep button,:host ::ng-deep .p-fileupload-buttonbar ::ng-deep button{background-color:var(--primary-color);border-color:var(--primary-color)}:host ::ng-deep .p-fileupload-choose:hover,:host ::ng-deep .p-fileupload-row ::ng-deep button:hover,:host ::ng-deep .p-fileupload-buttonbar ::ng-deep button:hover{background-color:rgba(from var(--primary-color) r g b/.8)}.p-fileupload-file{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border:1px solid #dee2e6}.p-file-data{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}.fileSize{display:flex;justify-content:flex-start}.fileData{flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding-right:1rem}.uploadData{flex:1;display:flex;flex-direction:row;justify-content:flex-start;gap:1rem}.fileName{text-align:start}.singlePrimeNg ::ng-deep .uploadField{padding:1rem}.uploadIcon{align-content:center}:host ::ng-deep .uploadIcon i{font-size:2rem}:host ::ng-deep .p-fileupload-file i,:host ::ng-deep .uploadIcon i,:host ::ng-deep img{display:flex;justify-content:center;width:3rem}.dataField{display:flex;flex-direction:column;justify-content:flex-start;align-items:baseline}:host ::ng-deep .autoUpload.singlePrimeNg ::ng-deep .p-fileupload-buttonbar{display:none!important}.singlePrimeNg ::ng-deep .p-fileupload-content{display:flex;flex-direction:column-reverse}.singlePrimeNg ::ng-deep .p-fileupload-content p-progressbar,.singlePrimeNg ::ng-deep .p-fileupload .p-fileupload-buttonbar{display:none!important}.singlePrimeNg ::ng-deep .p-fileupload-file{border:unset;border-top:1px solid var(--border-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i5.FileUpload, selector: "p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "component", type: i6.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass"], outputs: ["actionClick", "actionDoubleClick"] }] }); }
|
|
70
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: PrimeFileUploaderComponent, selector: "prime-file-uploader", inputs: { isMultiple: "isMultiple", autoUpload: "autoUpload", maxSizeMb: "maxSizeMb", fileFormats: "fileFormats", title: "title", subTitle: "subTitle" }, outputs: { uploadFilesEvent: "uploadFilesEvent" }, viewQueries: [{ propertyName: "fileUploadPrime", first: true, predicate: ["fileUploadPrimeNg"], descendants: true }], ngImport: i0, template: "@if(isMultiple){\r\n<p-fileUpload\r\n #fileUploadPrimeNg\r\n name=\"files[]\"\r\n url=\"\"\r\n (onSelect)=\"select($event)\"\r\n (onSend)=\"uploadFiles($event)\"\r\n [multiple]=\"isMultiple\"\r\n [accept]=\"fileFormatsString\"\r\n [maxFileSize]=\"maxSizeBytes\"\r\n uploadLabel=\"Felt\u00F6lt\u00E9s\"\r\n cancelLabel=\"M\u00E9gsem\"\r\n chooseLabel=\"V\u00E1laszt\u00E1s\"\r\n>\r\n <ng-template pTemplate=\"content\" *ngIf=\"!isMobile()\">\r\n <ng-container *ngTemplateOutlet=\"uploader\" />\r\n </ng-template>\r\n <ng-template pTemplate=\"file\" let-file let-i=\"index\">\r\n <ng-container *ngTemplateOutlet=\"fileContainer; context: { $implicit: file, i: i }\" />\r\n </ng-template>\r\n</p-fileUpload>\r\n} @else{\r\n<p-fileUpload\r\n #fileUploadPrimeNg\r\n name=\"files[]\"\r\n url=\"\"\r\n (onSelect)=\"select($event)\"\r\n (onSend)=\"uploadFiles($event)\"\r\n [multiple]=\"isMultiple\"\r\n [accept]=\"fileFormatsString\"\r\n [maxFileSize]=\"maxSizeBytes\"\r\n [ngClass]=\"{ singlePrimeNg: true, autoUpload: autoUpload }\"\r\n uploadLabel=\"Felt\u00F6lt\u00E9s\"\r\n cancelLabel=\"M\u00E9gsem\"\r\n chooseLabel=\"V\u00E1laszt\u00E1s\"\r\n>\r\n <ng-template pTemplate=\"content\" *ngIf=\"!isMobile()\">\r\n <ng-container *ngTemplateOutlet=\"uploader\" />\r\n </ng-template>\r\n <ng-template pTemplate=\"file\" let-file let-i=\"index\">\r\n <ng-container *ngTemplateOutlet=\"fileContainer; context: { $implicit: file, i: i }\" />\r\n </ng-template>\r\n</p-fileUpload>\r\n}\r\n\r\n<ng-template #uploader let-file let-i=\"index\">\r\n <div class=\"uploadField\" (click)=\"fileUploadPrime.choose()\">\r\n <div class=\"uploadData\"\r\n ><smart-icon class=\"uploadIcon\" [icon]=\"'upload'\"></smart-icon>\r\n <div class=\"dataField\">\r\n <span class=\"title message\">{{ title }}</span>\r\n <span class=\"message\">{{ subTitle }}</span>\r\n <span class=\"message\">{{ fileFormatsString }}</span>\r\n <span class=\"message\"> max {{ maxSizeMb }} Mb</span>\r\n </div>\r\n </div>\r\n @if(isMultiple == false && autoUpload == false && (files && files.length > 0)){\r\n <ui-action-button [descriptor]=\"uploadButton\" (actionClick)=\"fileUploadPrime.upload()\" />\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #fileContainer let-file let-i=\"index\">\r\n <div class=\"p-fileupload-file\">\r\n @if(file.objectURL){\r\n <img role=\"presentation\" [alt]=\"file.name\" [src]=\"file.objectURL\" width=\"50\" height=\"50\" />\r\n }@else {\r\n <i class=\"pi pi-file\" style=\"font-size: 2rem\"></i>\r\n }\r\n\r\n <div class=\"fileData\">\r\n <span class=\"fileName\">{{ file.name }}</span>\r\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\r\n </div>\r\n <div class=\"fileButtons\">\r\n <button\r\n pButton\r\n icon=\"pi pi-download\"\r\n class=\"p-button-text file-action\"\r\n (click)=\"downloadFile(file)\"\r\n aria-label=\"Download\"\r\n style=\"color: var(--primary-color)\"\r\n ></button>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-text file-action\"\r\n (click)=\"fileUploadPrime.remove($event, i)\"\r\n aria-label=\"Remove\"\r\n style=\"color: rgb(239, 68, 68)\"\r\n ></button\r\n ></div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}:host ::ng-deep .p-fileupload .p-fileupload-buttonbar{display:flex!important;flex-direction:row;justify-content:center;flex-wrap:wrap;gap:1rem}:host ::ng-deep .p-fileupload .p-fileupload-row>div{width:fit-content}:host ::ng-deep .p-fileupload .p-fileupload-content{padding:unset;align-content:center;text-align:center}.message{font-size:smaller;text-align:center;color:#6b7280}.title{font-size:unset;color:var(--primary-color)}.uploadField{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:1rem;padding:.5rem 1rem;cursor:pointer}.uploadField:hover{background-color:rgb(from var(--border-color) r g b / .1)}:host ::ng-deep .p-fileupload-row{border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}:host ::ng-deep .p-fileupload-choose,:host ::ng-deep .p-fileupload-row ::ng-deep button,:host ::ng-deep .p-fileupload-buttonbar ::ng-deep button{background-color:var(--primary-color);border-color:var(--primary-color)}:host ::ng-deep .p-fileupload-choose:hover,:host ::ng-deep .p-fileupload-row ::ng-deep button:hover,:host ::ng-deep .p-fileupload-buttonbar ::ng-deep button:hover{background-color:rgba(from var(--primary-color) r g b/.8)}.p-fileupload-file{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border:1px solid #dee2e6}.p-file-data{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}.fileSize{display:flex;justify-content:flex-start}.fileData{flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding-right:1rem}.uploadData{flex:1;display:flex;flex-direction:row;justify-content:flex-start;gap:1rem}.fileName{text-align:start}.singlePrimeNg ::ng-deep .uploadField{padding:1rem}.uploadIcon{align-content:center}:host ::ng-deep .uploadIcon i{font-size:2rem}:host ::ng-deep .p-fileupload-file i,:host ::ng-deep .uploadIcon i,:host ::ng-deep img{display:flex;justify-content:center;width:3rem}.dataField{display:flex;flex-direction:column;justify-content:flex-start;align-items:baseline}:host ::ng-deep .autoUpload.singlePrimeNg ::ng-deep .p-fileupload-buttonbar{display:none!important}.singlePrimeNg ::ng-deep .p-fileupload-content{display:flex;flex-direction:column-reverse}.singlePrimeNg ::ng-deep .p-fileupload-content p-progressbar,.singlePrimeNg ::ng-deep .p-fileupload .p-fileupload-buttonbar{display:none!important}.singlePrimeNg ::ng-deep .p-fileupload-file{border:unset;border-top:1px solid var(--border-color)}:host ::ng-deep .p-fileupload.p-fileupload-advanced .p-message{margin:unset}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i5.FileUpload, selector: "p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "component", type: i6.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass"], outputs: ["actionClick", "actionDoubleClick"] }] }); }
|
|
71
71
|
}
|
|
72
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PrimeFileUploaderComponent, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
|
-
args: [{ selector: 'prime-file-uploader', template: "@if(isMultiple){\r\n<p-fileUpload\r\n #fileUploadPrimeNg\r\n name=\"files[]\"\r\n url=\"\"\r\n (onSelect)=\"select($event)\"\r\n (onSend)=\"uploadFiles($event)\"\r\n [multiple]=\"isMultiple\"\r\n [accept]=\"fileFormatsString\"\r\n [maxFileSize]=\"maxSizeBytes\"\r\n uploadLabel=\"Felt\u00F6lt\u00E9s\"\r\n cancelLabel=\"M\u00E9gsem\"\r\n chooseLabel=\"V\u00E1laszt\u00E1s\"\r\n>\r\n <ng-template pTemplate=\"content\" *ngIf=\"!isMobile()\">\r\n <ng-container *ngTemplateOutlet=\"uploader\" />\r\n </ng-template>\r\n <ng-template pTemplate=\"file\" let-file let-i=\"index\">\r\n <ng-container *ngTemplateOutlet=\"fileContainer; context: { $implicit: file, i: i }\" />\r\n </ng-template>\r\n</p-fileUpload>\r\n} @else{\r\n<p-fileUpload\r\n #fileUploadPrimeNg\r\n name=\"files[]\"\r\n url=\"\"\r\n (onSelect)=\"select($event)\"\r\n (onSend)=\"uploadFiles($event)\"\r\n [multiple]=\"isMultiple\"\r\n [accept]=\"fileFormatsString\"\r\n [maxFileSize]=\"maxSizeBytes\"\r\n [ngClass]=\"{ singlePrimeNg: true, autoUpload: autoUpload }\"\r\n uploadLabel=\"Felt\u00F6lt\u00E9s\"\r\n cancelLabel=\"M\u00E9gsem\"\r\n chooseLabel=\"V\u00E1laszt\u00E1s\"\r\n>\r\n <ng-template pTemplate=\"content\" *ngIf=\"!isMobile()\">\r\n <ng-container *ngTemplateOutlet=\"uploader\" />\r\n </ng-template>\r\n <ng-template pTemplate=\"file\" let-file let-i=\"index\">\r\n <ng-container *ngTemplateOutlet=\"fileContainer; context: { $implicit: file, i: i }\" />\r\n </ng-template>\r\n</p-fileUpload>\r\n}\r\n\r\n<ng-template #uploader let-file let-i=\"index\">\r\n <div class=\"uploadField\" (click)=\"fileUploadPrime.choose()\">\r\n <div class=\"uploadData\"\r\n ><smart-icon class=\"uploadIcon\" [icon]=\"'upload'\"></smart-icon>\r\n <div class=\"dataField\">\r\n <span class=\"title message\">{{ title }}</span>\r\n <span class=\"message\">{{ subTitle }}</span>\r\n <span class=\"message\">{{ fileFormatsString }}</span>\r\n <span class=\"message\"> max {{ maxSizeMb }} Mb</span>\r\n </div>\r\n </div>\r\n @if(isMultiple == false && autoUpload == false && (files && files.length > 0)){\r\n <ui-action-button [descriptor]=\"uploadButton\" (actionClick)=\"fileUploadPrime.upload()\" />\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #fileContainer let-file let-i=\"index\">\r\n <div class=\"p-fileupload-file\">\r\n @if(file.objectURL){\r\n <img role=\"presentation\" [alt]=\"file.name\" [src]=\"file.objectURL\" width=\"50\" height=\"50\" />\r\n }@else {\r\n <i class=\"pi pi-file\" style=\"font-size: 2rem\"></i>\r\n }\r\n\r\n <div class=\"fileData\">\r\n <span class=\"fileName\">{{ file.name }}</span>\r\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\r\n </div>\r\n <div class=\"fileButtons\">\r\n <button\r\n pButton\r\n icon=\"pi pi-download\"\r\n class=\"p-button-text file-action\"\r\n (click)=\"downloadFile(file)\"\r\n aria-label=\"Download\"\r\n style=\"color: var(--primary-color)\"\r\n ></button>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-text file-action\"\r\n (click)=\"fileUploadPrime.remove($event, i)\"\r\n aria-label=\"Remove\"\r\n style=\"color: rgb(239, 68, 68)\"\r\n ></button\r\n ></div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}:host ::ng-deep .p-fileupload .p-fileupload-buttonbar{display:flex!important;flex-direction:row;justify-content:center;flex-wrap:wrap;gap:1rem}:host ::ng-deep .p-fileupload .p-fileupload-row>div{width:fit-content}:host ::ng-deep .p-fileupload .p-fileupload-content{padding:unset;align-content:center;text-align:center}.message{font-size:smaller;text-align:center;color:#6b7280}.title{font-size:unset;color:var(--primary-color)}.uploadField{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:1rem;padding:.5rem 1rem;cursor:pointer}.uploadField:hover{background-color:rgb(from var(--border-color) r g b / .1)}:host ::ng-deep .p-fileupload-row{border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}:host ::ng-deep .p-fileupload-choose,:host ::ng-deep .p-fileupload-row ::ng-deep button,:host ::ng-deep .p-fileupload-buttonbar ::ng-deep button{background-color:var(--primary-color);border-color:var(--primary-color)}:host ::ng-deep .p-fileupload-choose:hover,:host ::ng-deep .p-fileupload-row ::ng-deep button:hover,:host ::ng-deep .p-fileupload-buttonbar ::ng-deep button:hover{background-color:rgba(from var(--primary-color) r g b/.8)}.p-fileupload-file{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border:1px solid #dee2e6}.p-file-data{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}.fileSize{display:flex;justify-content:flex-start}.fileData{flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding-right:1rem}.uploadData{flex:1;display:flex;flex-direction:row;justify-content:flex-start;gap:1rem}.fileName{text-align:start}.singlePrimeNg ::ng-deep .uploadField{padding:1rem}.uploadIcon{align-content:center}:host ::ng-deep .uploadIcon i{font-size:2rem}:host ::ng-deep .p-fileupload-file i,:host ::ng-deep .uploadIcon i,:host ::ng-deep img{display:flex;justify-content:center;width:3rem}.dataField{display:flex;flex-direction:column;justify-content:flex-start;align-items:baseline}:host ::ng-deep .autoUpload.singlePrimeNg ::ng-deep .p-fileupload-buttonbar{display:none!important}.singlePrimeNg ::ng-deep .p-fileupload-content{display:flex;flex-direction:column-reverse}.singlePrimeNg ::ng-deep .p-fileupload-content p-progressbar,.singlePrimeNg ::ng-deep .p-fileupload .p-fileupload-buttonbar{display:none!important}.singlePrimeNg ::ng-deep .p-fileupload-file{border:unset;border-top:1px solid var(--border-color)}\n"] }]
|
|
74
|
+
args: [{ selector: 'prime-file-uploader', template: "@if(isMultiple){\r\n<p-fileUpload\r\n #fileUploadPrimeNg\r\n name=\"files[]\"\r\n url=\"\"\r\n (onSelect)=\"select($event)\"\r\n (onSend)=\"uploadFiles($event)\"\r\n [multiple]=\"isMultiple\"\r\n [accept]=\"fileFormatsString\"\r\n [maxFileSize]=\"maxSizeBytes\"\r\n uploadLabel=\"Felt\u00F6lt\u00E9s\"\r\n cancelLabel=\"M\u00E9gsem\"\r\n chooseLabel=\"V\u00E1laszt\u00E1s\"\r\n>\r\n <ng-template pTemplate=\"content\" *ngIf=\"!isMobile()\">\r\n <ng-container *ngTemplateOutlet=\"uploader\" />\r\n </ng-template>\r\n <ng-template pTemplate=\"file\" let-file let-i=\"index\">\r\n <ng-container *ngTemplateOutlet=\"fileContainer; context: { $implicit: file, i: i }\" />\r\n </ng-template>\r\n</p-fileUpload>\r\n} @else{\r\n<p-fileUpload\r\n #fileUploadPrimeNg\r\n name=\"files[]\"\r\n url=\"\"\r\n (onSelect)=\"select($event)\"\r\n (onSend)=\"uploadFiles($event)\"\r\n [multiple]=\"isMultiple\"\r\n [accept]=\"fileFormatsString\"\r\n [maxFileSize]=\"maxSizeBytes\"\r\n [ngClass]=\"{ singlePrimeNg: true, autoUpload: autoUpload }\"\r\n uploadLabel=\"Felt\u00F6lt\u00E9s\"\r\n cancelLabel=\"M\u00E9gsem\"\r\n chooseLabel=\"V\u00E1laszt\u00E1s\"\r\n>\r\n <ng-template pTemplate=\"content\" *ngIf=\"!isMobile()\">\r\n <ng-container *ngTemplateOutlet=\"uploader\" />\r\n </ng-template>\r\n <ng-template pTemplate=\"file\" let-file let-i=\"index\">\r\n <ng-container *ngTemplateOutlet=\"fileContainer; context: { $implicit: file, i: i }\" />\r\n </ng-template>\r\n</p-fileUpload>\r\n}\r\n\r\n<ng-template #uploader let-file let-i=\"index\">\r\n <div class=\"uploadField\" (click)=\"fileUploadPrime.choose()\">\r\n <div class=\"uploadData\"\r\n ><smart-icon class=\"uploadIcon\" [icon]=\"'upload'\"></smart-icon>\r\n <div class=\"dataField\">\r\n <span class=\"title message\">{{ title }}</span>\r\n <span class=\"message\">{{ subTitle }}</span>\r\n <span class=\"message\">{{ fileFormatsString }}</span>\r\n <span class=\"message\"> max {{ maxSizeMb }} Mb</span>\r\n </div>\r\n </div>\r\n @if(isMultiple == false && autoUpload == false && (files && files.length > 0)){\r\n <ui-action-button [descriptor]=\"uploadButton\" (actionClick)=\"fileUploadPrime.upload()\" />\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #fileContainer let-file let-i=\"index\">\r\n <div class=\"p-fileupload-file\">\r\n @if(file.objectURL){\r\n <img role=\"presentation\" [alt]=\"file.name\" [src]=\"file.objectURL\" width=\"50\" height=\"50\" />\r\n }@else {\r\n <i class=\"pi pi-file\" style=\"font-size: 2rem\"></i>\r\n }\r\n\r\n <div class=\"fileData\">\r\n <span class=\"fileName\">{{ file.name }}</span>\r\n <span class=\"fileSize\">{{ formatSize(file.size) }}</span>\r\n </div>\r\n <div class=\"fileButtons\">\r\n <button\r\n pButton\r\n icon=\"pi pi-download\"\r\n class=\"p-button-text file-action\"\r\n (click)=\"downloadFile(file)\"\r\n aria-label=\"Download\"\r\n style=\"color: var(--primary-color)\"\r\n ></button>\r\n <button\r\n pButton\r\n icon=\"pi pi-times\"\r\n class=\"p-button-text file-action\"\r\n (click)=\"fileUploadPrime.remove($event, i)\"\r\n aria-label=\"Remove\"\r\n style=\"color: rgb(239, 68, 68)\"\r\n ></button\r\n ></div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{--border-color: #a6aabd60;--warninig-color: #be2d2e;--def-border-radius: .5rem}:host ::ng-deep .p-fileupload .p-fileupload-buttonbar{display:flex!important;flex-direction:row;justify-content:center;flex-wrap:wrap;gap:1rem}:host ::ng-deep .p-fileupload .p-fileupload-row>div{width:fit-content}:host ::ng-deep .p-fileupload .p-fileupload-content{padding:unset;align-content:center;text-align:center}.message{font-size:smaller;text-align:center;color:#6b7280}.title{font-size:unset;color:var(--primary-color)}.uploadField{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;gap:1rem;padding:.5rem 1rem;cursor:pointer}.uploadField:hover{background-color:rgb(from var(--border-color) r g b / .1)}:host ::ng-deep .p-fileupload-row{border-top:1px solid #dee2e6;border-bottom:1px solid #dee2e6}:host ::ng-deep .p-fileupload-choose,:host ::ng-deep .p-fileupload-row ::ng-deep button,:host ::ng-deep .p-fileupload-buttonbar ::ng-deep button{background-color:var(--primary-color);border-color:var(--primary-color)}:host ::ng-deep .p-fileupload-choose:hover,:host ::ng-deep .p-fileupload-row ::ng-deep button:hover,:host ::ng-deep .p-fileupload-buttonbar ::ng-deep button:hover{background-color:rgba(from var(--primary-color) r g b/.8)}.p-fileupload-file{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border:1px solid #dee2e6}.p-file-data{flex:1;display:flex;flex-direction:row;justify-content:flex-start;align-items:center}.fileSize{display:flex;justify-content:flex-start}.fileData{flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding-right:1rem}.uploadData{flex:1;display:flex;flex-direction:row;justify-content:flex-start;gap:1rem}.fileName{text-align:start}.singlePrimeNg ::ng-deep .uploadField{padding:1rem}.uploadIcon{align-content:center}:host ::ng-deep .uploadIcon i{font-size:2rem}:host ::ng-deep .p-fileupload-file i,:host ::ng-deep .uploadIcon i,:host ::ng-deep img{display:flex;justify-content:center;width:3rem}.dataField{display:flex;flex-direction:column;justify-content:flex-start;align-items:baseline}:host ::ng-deep .autoUpload.singlePrimeNg ::ng-deep .p-fileupload-buttonbar{display:none!important}.singlePrimeNg ::ng-deep .p-fileupload-content{display:flex;flex-direction:column-reverse}.singlePrimeNg ::ng-deep .p-fileupload-content p-progressbar,.singlePrimeNg ::ng-deep .p-fileupload .p-fileupload-buttonbar{display:none!important}.singlePrimeNg ::ng-deep .p-fileupload-file{border:unset;border-top:1px solid var(--border-color)}:host ::ng-deep .p-fileupload.p-fileupload-advanced .p-message{margin:unset}\n"] }]
|
|
75
75
|
}], propDecorators: { fileUploadPrime: [{
|
|
76
76
|
type: ViewChild,
|
|
77
77
|
args: ['fileUploadPrimeNg']
|
|
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
90
90
|
}], uploadFilesEvent: [{
|
|
91
91
|
type: Output
|
|
92
92
|
}] } });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWUtZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2NvbXBvbmVudHMvdXBsb2FkLXdpZGdldC9wcmltZS1maWxlLXVwbG9hZGVyL3ByaW1lLWZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi9jb21wb25lbnRzL3VwbG9hZC13aWRnZXQvcHJpbWUtZmlsZS11cGxvYWRlci9wcmltZS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFDTCxZQUFZLEVBQ1osa0JBQWtCLEdBRW5CLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7O0FBT3RELE1BQU0sT0FBTywwQkFBMEI7SUFMdkM7UUFTVyxlQUFVLEdBQWEsS0FBSyxDQUFDO1FBQzdCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFldEIscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBRXpDLENBQUM7S0F3RE47SUFqRUMsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSx1QkFBdUIsQ0FBQztRQUNuRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksdUJBQXVCLENBQUM7UUFDekQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBTUQsUUFBUTtRQUNOLE9BQU8sMkJBQTJCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUNELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBVTtRQUNmLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFDRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1lBQ3pCLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUs7U0FDbEMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVU7UUFDckIsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVixNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsT0FBTyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQVk7UUFDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPO1lBQ0wsS0FBSyxFQUFFLFdBQVc7WUFDbEIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsSUFBSSxFQUFFLGtCQUFrQixDQUFDLE1BQU07WUFDL0IsSUFBSSxFQUFFLFFBQVE7WUFDZCxZQUFZLEVBQUUsWUFBWSxDQUFDLEdBQUc7U0FDL0IsQ0FBQztJQUNKLENBQUM7K0dBN0VVLDBCQUEwQjttR0FBMUIsMEJBQTBCLDhYQ2R2QyxzMUdBOEZBOzs0RkRoRmEsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHFCQUFxQjs4QkFLQyxlQUFlO3NCQUE5QyxTQUFTO3VCQUFDLG1CQUFtQjtnQkFFckIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFZSSxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWQgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xyXG5pbXBvcnQgeyBVcGxvYWRXaWRnZXRVdGlscyB9IGZyb20gJy4uL3VwbG9hZC13aWRnZXQudXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIEljb25Qb3NpdGlvbixcclxuICBVaUFjdGlvbkJ1dHRvblR5cGUsXHJcbiAgVWlBY3Rpb25EZXNjcmlwdG9yLFxyXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uL3ZpZXctY29udGV4dC9hcGkvbW9kZWwvbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncHJpbWUtZmlsZS11cGxvYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ByaW1lLWZpbGUtdXBsb2FkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9wcmltZS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5jc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJpbWVGaWxlVXBsb2FkZXJDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVVcGxvYWRQcmltZU5nJykgZmlsZVVwbG9hZFByaW1lITogRmlsZVVwbG9hZDtcclxuXHJcbiAgQElucHV0KCkgaXNNdWx0aXBsZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYXV0b1VwbG9hZD86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBtYXhTaXplTWI6IG51bWJlciA9IDI1O1xyXG4gIEBJbnB1dCgpIGZpbGVGb3JtYXRzPzogc3RyaW5nW107XHJcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3ViVGl0bGU/OiBzdHJpbmc7XHJcblxyXG4gIG1heFNpemVCeXRlcz86IG51bWJlcjtcclxuICBmaWxlRm9ybWF0c1N0cmluZz86IHN0cmluZztcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRpdGxlID0gdGhpcy50aXRsZSA/PyAnRG9rdW1lbnR1bSBob3p6w6FhZMOhc2EnO1xyXG4gICAgdGhpcy5zdWJUaXRsZSA9IHRoaXMuc3ViVGl0bGUgPz8gJ3RhbGzDs3rDoXMgdmFneSBiZWjDunrDoXMnO1xyXG4gICAgdGhpcy5tYXhTaXplQnl0ZXMgPSB0aGlzLm1heFNpemVNYiAqIDEwMjQgKiAxMDI0O1xyXG4gICAgdGhpcy5maWxlRm9ybWF0cyA9IHRoaXMuZmlsZUZvcm1hdHM/LmNvbmNhdCgnLCAnKTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSB1cGxvYWRGaWxlc0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBmaWxlczogYW55W107XHJcbiAgfT4oKTtcclxuXHJcbiAgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gL2lQaG9uZXxpUGFkfGlQb2R8QW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XHJcbiAgfVxyXG5cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsZVVwbG9hZFByaW1lLmNsZWFyKCk7XHJcbiAgfVxyXG4gIG9uRmlsZVNlbGVjdChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVVcGxvYWRQcmltZS5vbkZpbGVTZWxlY3QoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmF1dG9VcGxvYWQpIHtcclxuICAgICAgdGhpcy51cGxvYWRGaWxlcyhldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVwbG9hZEZpbGVzKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudXBsb2FkRmlsZXNFdmVudC5lbWl0KHtcclxuICAgICAgZmlsZXM6IHRoaXMuZmlsZVVwbG9hZFByaW1lLmZpbGVzLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5maWxlVXBsb2FkUHJpbWUuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkRmlsZShmaWxlOiBGaWxlKSB7XHJcbiAgICBsZXQgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7XHJcbiAgICBsZXQgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGEuaHJlZiA9IHVybDtcclxuICAgIGEuZG93bmxvYWQgPSBmaWxlLm5hbWU7XHJcbiAgICBhLmNsaWNrKCk7XHJcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0U2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBVcGxvYWRXaWRnZXRVdGlscy5mb3JtYXRTaXplKGJ5dGVzKTtcclxuICB9XHJcblxyXG4gIGdldCBmaWxlcygpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5maWxlVXBsb2FkUHJpbWU/LmZpbGVzO1xyXG4gIH1cclxuXHJcbiAgc2V0IGZpbGVzKGZpbGVzOiBhbnlbXSkge1xyXG4gICAgdGhpcy5maWxlVXBsb2FkUHJpbWUuZmlsZXMgPSBmaWxlcztcclxuICB9XHJcblxyXG4gIGdldCB1cGxvYWRCdXR0b24oKTogVWlBY3Rpb25EZXNjcmlwdG9yIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRpdGxlOiAnRmVsdMO2bHTDqXMnLFxyXG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxyXG4gICAgICB0eXBlOiBVaUFjdGlvbkJ1dHRvblR5cGUuUkFJU0VELFxyXG4gICAgICBpY29uOiAndXBsb2FkJyxcclxuICAgICAgaWNvblBvc2l0aW9uOiBJY29uUG9zaXRpb24uUFJFLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiQGlmKGlzTXVsdGlwbGUpe1xyXG48cC1maWxlVXBsb2FkXHJcbiAgI2ZpbGVVcGxvYWRQcmltZU5nXHJcbiAgbmFtZT1cImZpbGVzW11cIlxyXG4gIHVybD1cIlwiXHJcbiAgKG9uU2VsZWN0KT1cInNlbGVjdCgkZXZlbnQpXCJcclxuICAob25TZW5kKT1cInVwbG9hZEZpbGVzKCRldmVudClcIlxyXG4gIFttdWx0aXBsZV09XCJpc011bHRpcGxlXCJcclxuICBbYWNjZXB0XT1cImZpbGVGb3JtYXRzU3RyaW5nXCJcclxuICBbbWF4RmlsZVNpemVdPVwibWF4U2l6ZUJ5dGVzXCJcclxuICB1cGxvYWRMYWJlbD1cIkZlbHTDtmx0w6lzXCJcclxuICBjYW5jZWxMYWJlbD1cIk3DqWdzZW1cIlxyXG4gIGNob29zZUxhYmVsPVwiVsOhbGFzenTDoXNcIlxyXG4+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIiAqbmdJZj1cIiFpc01vYmlsZSgpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBsb2FkZXJcIiAvPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZpbGVcIiBsZXQtZmlsZSBsZXQtaT1cImluZGV4XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZUNvbnRhaW5lcjsgY29udGV4dDogeyAkaW1wbGljaXQ6IGZpbGUsIGk6IGkgfVwiIC8+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWZpbGVVcGxvYWQ+XHJcbn0gQGVsc2V7XHJcbjxwLWZpbGVVcGxvYWRcclxuICAjZmlsZVVwbG9hZFByaW1lTmdcclxuICBuYW1lPVwiZmlsZXNbXVwiXHJcbiAgdXJsPVwiXCJcclxuICAob25TZWxlY3QpPVwic2VsZWN0KCRldmVudClcIlxyXG4gIChvblNlbmQpPVwidXBsb2FkRmlsZXMoJGV2ZW50KVwiXHJcbiAgW211bHRpcGxlXT1cImlzTXVsdGlwbGVcIlxyXG4gIFthY2NlcHRdPVwiZmlsZUZvcm1hdHNTdHJpbmdcIlxyXG4gIFttYXhGaWxlU2l6ZV09XCJtYXhTaXplQnl0ZXNcIlxyXG4gIFtuZ0NsYXNzXT1cInsgc2luZ2xlUHJpbWVOZzogdHJ1ZSwgYXV0b1VwbG9hZDogYXV0b1VwbG9hZCB9XCJcclxuICB1cGxvYWRMYWJlbD1cIkZlbHTDtmx0w6lzXCJcclxuICBjYW5jZWxMYWJlbD1cIk3DqWdzZW1cIlxyXG4gIGNob29zZUxhYmVsPVwiVsOhbGFzenTDoXNcIlxyXG4+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIiAqbmdJZj1cIiFpc01vYmlsZSgpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBsb2FkZXJcIiAvPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZpbGVcIiBsZXQtZmlsZSBsZXQtaT1cImluZGV4XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZUNvbnRhaW5lcjsgY29udGV4dDogeyAkaW1wbGljaXQ6IGZpbGUsIGk6IGkgfVwiIC8+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWZpbGVVcGxvYWQ+XHJcbn1cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdXBsb2FkZXIgbGV0LWZpbGUgbGV0LWk9XCJpbmRleFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWRGaWVsZFwiIChjbGljayk9XCJmaWxlVXBsb2FkUHJpbWUuY2hvb3NlKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWREYXRhXCJcclxuICAgICAgPjxzbWFydC1pY29uIGNsYXNzPVwidXBsb2FkSWNvblwiIFtpY29uXT1cIid1cGxvYWQnXCI+PC9zbWFydC1pY29uPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0YUZpZWxkXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZSBtZXNzYWdlXCI+e3sgdGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXNzYWdlXCI+e3sgc3ViVGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXNzYWdlXCI+e3sgZmlsZUZvcm1hdHNTdHJpbmcgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXNzYWdlXCI+IG1heCB7eyBtYXhTaXplTWIgfX0gTWI8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYoaXNNdWx0aXBsZSA9PSBmYWxzZSAmJiBhdXRvVXBsb2FkID09IGZhbHNlICYmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwKSl7XHJcbiAgICA8dWktYWN0aW9uLWJ1dHRvbiBbZGVzY3JpcHRvcl09XCJ1cGxvYWRCdXR0b25cIiAoYWN0aW9uQ2xpY2spPVwiZmlsZVVwbG9hZFByaW1lLnVwbG9hZCgpXCIgLz5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZmlsZUNvbnRhaW5lciBsZXQtZmlsZSBsZXQtaT1cImluZGV4XCI+XHJcbiAgPGRpdiBjbGFzcz1cInAtZmlsZXVwbG9hZC1maWxlXCI+XHJcbiAgICBAaWYoZmlsZS5vYmplY3RVUkwpe1xyXG4gICAgPGltZyByb2xlPVwicHJlc2VudGF0aW9uXCIgW2FsdF09XCJmaWxlLm5hbWVcIiBbc3JjXT1cImZpbGUub2JqZWN0VVJMXCIgd2lkdGg9XCI1MFwiIGhlaWdodD1cIjUwXCIgLz5cclxuICAgIH1AZWxzZSB7XHJcbiAgICA8aSBjbGFzcz1cInBpIHBpLWZpbGVcIiBzdHlsZT1cImZvbnQtc2l6ZTogMnJlbVwiPjwvaT5cclxuICAgIH1cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsZURhdGFcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlTmFtZVwiPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlU2l6ZVwiPnt7IGZvcm1hdFNpemUoZmlsZS5zaXplKSB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbGVCdXR0b25zXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgaWNvbj1cInBpIHBpLWRvd25sb2FkXCJcclxuICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgZmlsZS1hY3Rpb25cIlxyXG4gICAgICAgIChjbGljayk9XCJkb3dubG9hZEZpbGUoZmlsZSlcIlxyXG4gICAgICAgIGFyaWEtbGFiZWw9XCJEb3dubG9hZFwiXHJcbiAgICAgICAgc3R5bGU9XCJjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcilcIlxyXG4gICAgICA+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgaWNvbj1cInBpIHBpLXRpbWVzXCJcclxuICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgZmlsZS1hY3Rpb25cIlxyXG4gICAgICAgIChjbGljayk9XCJmaWxlVXBsb2FkUHJpbWUucmVtb3ZlKCRldmVudCwgaSlcIlxyXG4gICAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmVcIlxyXG4gICAgICAgIHN0eWxlPVwiY29sb3I6IHJnYigyMzksIDY4LCA2OClcIlxyXG4gICAgICA+PC9idXR0b25cclxuICAgID48L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWUtZmlsZS11cGxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2NvbXBvbmVudHMvdXBsb2FkLXdpZGdldC9wcmltZS1maWxlLXVwbG9hZGVyL3ByaW1lLWZpbGUtdXBsb2FkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi9jb21wb25lbnRzL3VwbG9hZC13aWRnZXQvcHJpbWUtZmlsZS11cGxvYWRlci9wcmltZS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFDTCxZQUFZLEVBQ1osa0JBQWtCLEdBRW5CLE1BQU0sOENBQThDLENBQUM7Ozs7Ozs7O0FBT3RELE1BQU0sT0FBTywwQkFBMEI7SUFMdkM7UUFTVyxlQUFVLEdBQWEsS0FBSyxDQUFDO1FBQzdCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFnQnRCLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUV6QyxDQUFDO0tBd0ROO0lBbEVDLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksdUJBQXVCLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLHVCQUF1QixDQUFDO1FBQ3pELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWpELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUQsQ0FBQztJQU1ELFFBQVE7UUFDTixPQUFPLDJCQUEyQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBVTtRQUNyQixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQVU7UUFDZixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLO1NBQ2xDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFVO1FBQ3JCLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1YsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLE9BQU8saUJBQWlCLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUFZO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTztZQUNMLEtBQUssRUFBRSxXQUFXO1lBQ2xCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO1lBQy9CLElBQUksRUFBRSxRQUFRO1lBQ2QsWUFBWSxFQUFFLFlBQVksQ0FBQyxHQUFHO1NBQy9CLENBQUM7SUFDSixDQUFDOytHQTlFVSwwQkFBMEI7bUdBQTFCLDBCQUEwQiw4WENkdkMsczFHQThGQTs7NEZEaEZhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSxxQkFBcUI7OEJBS0MsZUFBZTtzQkFBOUMsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBRXJCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBYUksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkIH0gZnJvbSAncHJpbWVuZy9maWxldXBsb2FkJztcclxuaW1wb3J0IHsgVXBsb2FkV2lkZ2V0VXRpbHMgfSBmcm9tICcuLi91cGxvYWQtd2lkZ2V0LnV0aWxzJztcclxuaW1wb3J0IHtcclxuICBJY29uUG9zaXRpb24sXHJcbiAgVWlBY3Rpb25CdXR0b25UeXBlLFxyXG4gIFVpQWN0aW9uRGVzY3JpcHRvcixcclxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi92aWV3LWNvbnRleHQvYXBpL21vZGVsL21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3ByaW1lLWZpbGUtdXBsb2FkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmltZS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcHJpbWUtZmlsZS11cGxvYWRlci5jb21wb25lbnQuY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFByaW1lRmlsZVVwbG9hZGVyQ29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKCdmaWxlVXBsb2FkUHJpbWVOZycpIGZpbGVVcGxvYWRQcmltZSE6IEZpbGVVcGxvYWQ7XHJcblxyXG4gIEBJbnB1dCgpIGlzTXVsdGlwbGUhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGF1dG9VcGxvYWQ/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbWF4U2l6ZU1iOiBudW1iZXIgPSAyNTtcclxuICBASW5wdXQoKSBmaWxlRm9ybWF0cz86IHN0cmluZ1tdO1xyXG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN1YlRpdGxlPzogc3RyaW5nO1xyXG5cclxuICBtYXhTaXplQnl0ZXM/OiBudW1iZXI7XHJcbiAgZmlsZUZvcm1hdHNTdHJpbmc/OiBzdHJpbmc7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50aXRsZSA9IHRoaXMudGl0bGUgPz8gJ0Rva3VtZW50dW0gaG96esOhYWTDoXNhJztcclxuICAgIHRoaXMuc3ViVGl0bGUgPSB0aGlzLnN1YlRpdGxlID8/ICd0YWxsw7N6w6FzIHZhZ3kgYmVow7p6w6FzJztcclxuICAgIHRoaXMubWF4U2l6ZUJ5dGVzID0gdGhpcy5tYXhTaXplTWIgKiAxMDI0ICogMTAyNDtcclxuXHJcbiAgICB0aGlzLmZpbGVGb3JtYXRzU3RyaW5nID0gdGhpcy5maWxlRm9ybWF0cz8uam9pbignLCAnKSA/PyAnJztcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSB1cGxvYWRGaWxlc0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBmaWxlczogYW55W107XHJcbiAgfT4oKTtcclxuXHJcbiAgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gL2lQaG9uZXxpUGFkfGlQb2R8QW5kcm9pZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk7XHJcbiAgfVxyXG5cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZmlsZVVwbG9hZFByaW1lLmNsZWFyKCk7XHJcbiAgfVxyXG4gIG9uRmlsZVNlbGVjdChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVVcGxvYWRQcmltZS5vbkZpbGVTZWxlY3QoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0KGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmF1dG9VcGxvYWQpIHtcclxuICAgICAgdGhpcy51cGxvYWRGaWxlcyhldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVwbG9hZEZpbGVzKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudXBsb2FkRmlsZXNFdmVudC5lbWl0KHtcclxuICAgICAgZmlsZXM6IHRoaXMuZmlsZVVwbG9hZFByaW1lLmZpbGVzLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5maWxlVXBsb2FkUHJpbWUuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIGRvd25sb2FkRmlsZShmaWxlOiBGaWxlKSB7XHJcbiAgICBsZXQgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7XHJcbiAgICBsZXQgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgIGEuaHJlZiA9IHVybDtcclxuICAgIGEuZG93bmxvYWQgPSBmaWxlLm5hbWU7XHJcbiAgICBhLmNsaWNrKCk7XHJcbiAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0U2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBVcGxvYWRXaWRnZXRVdGlscy5mb3JtYXRTaXplKGJ5dGVzKTtcclxuICB9XHJcblxyXG4gIGdldCBmaWxlcygpOiBhbnlbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5maWxlVXBsb2FkUHJpbWU/LmZpbGVzO1xyXG4gIH1cclxuXHJcbiAgc2V0IGZpbGVzKGZpbGVzOiBhbnlbXSkge1xyXG4gICAgdGhpcy5maWxlVXBsb2FkUHJpbWUuZmlsZXMgPSBmaWxlcztcclxuICB9XHJcblxyXG4gIGdldCB1cGxvYWRCdXR0b24oKTogVWlBY3Rpb25EZXNjcmlwdG9yIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIHRpdGxlOiAnRmVsdMO2bHTDqXMnLFxyXG4gICAgICBjb2xvcjogJ3ByaW1hcnknLFxyXG4gICAgICB0eXBlOiBVaUFjdGlvbkJ1dHRvblR5cGUuUkFJU0VELFxyXG4gICAgICBpY29uOiAndXBsb2FkJyxcclxuICAgICAgaWNvblBvc2l0aW9uOiBJY29uUG9zaXRpb24uUFJFLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiQGlmKGlzTXVsdGlwbGUpe1xyXG48cC1maWxlVXBsb2FkXHJcbiAgI2ZpbGVVcGxvYWRQcmltZU5nXHJcbiAgbmFtZT1cImZpbGVzW11cIlxyXG4gIHVybD1cIlwiXHJcbiAgKG9uU2VsZWN0KT1cInNlbGVjdCgkZXZlbnQpXCJcclxuICAob25TZW5kKT1cInVwbG9hZEZpbGVzKCRldmVudClcIlxyXG4gIFttdWx0aXBsZV09XCJpc011bHRpcGxlXCJcclxuICBbYWNjZXB0XT1cImZpbGVGb3JtYXRzU3RyaW5nXCJcclxuICBbbWF4RmlsZVNpemVdPVwibWF4U2l6ZUJ5dGVzXCJcclxuICB1cGxvYWRMYWJlbD1cIkZlbHTDtmx0w6lzXCJcclxuICBjYW5jZWxMYWJlbD1cIk3DqWdzZW1cIlxyXG4gIGNob29zZUxhYmVsPVwiVsOhbGFzenTDoXNcIlxyXG4+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIiAqbmdJZj1cIiFpc01vYmlsZSgpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBsb2FkZXJcIiAvPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZpbGVcIiBsZXQtZmlsZSBsZXQtaT1cImluZGV4XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZUNvbnRhaW5lcjsgY29udGV4dDogeyAkaW1wbGljaXQ6IGZpbGUsIGk6IGkgfVwiIC8+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWZpbGVVcGxvYWQ+XHJcbn0gQGVsc2V7XHJcbjxwLWZpbGVVcGxvYWRcclxuICAjZmlsZVVwbG9hZFByaW1lTmdcclxuICBuYW1lPVwiZmlsZXNbXVwiXHJcbiAgdXJsPVwiXCJcclxuICAob25TZWxlY3QpPVwic2VsZWN0KCRldmVudClcIlxyXG4gIChvblNlbmQpPVwidXBsb2FkRmlsZXMoJGV2ZW50KVwiXHJcbiAgW211bHRpcGxlXT1cImlzTXVsdGlwbGVcIlxyXG4gIFthY2NlcHRdPVwiZmlsZUZvcm1hdHNTdHJpbmdcIlxyXG4gIFttYXhGaWxlU2l6ZV09XCJtYXhTaXplQnl0ZXNcIlxyXG4gIFtuZ0NsYXNzXT1cInsgc2luZ2xlUHJpbWVOZzogdHJ1ZSwgYXV0b1VwbG9hZDogYXV0b1VwbG9hZCB9XCJcclxuICB1cGxvYWRMYWJlbD1cIkZlbHTDtmx0w6lzXCJcclxuICBjYW5jZWxMYWJlbD1cIk3DqWdzZW1cIlxyXG4gIGNob29zZUxhYmVsPVwiVsOhbGFzenTDoXNcIlxyXG4+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIiAqbmdJZj1cIiFpc01vYmlsZSgpXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidXBsb2FkZXJcIiAvPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZpbGVcIiBsZXQtZmlsZSBsZXQtaT1cImluZGV4XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZUNvbnRhaW5lcjsgY29udGV4dDogeyAkaW1wbGljaXQ6IGZpbGUsIGk6IGkgfVwiIC8+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWZpbGVVcGxvYWQ+XHJcbn1cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdXBsb2FkZXIgbGV0LWZpbGUgbGV0LWk9XCJpbmRleFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWRGaWVsZFwiIChjbGljayk9XCJmaWxlVXBsb2FkUHJpbWUuY2hvb3NlKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWREYXRhXCJcclxuICAgICAgPjxzbWFydC1pY29uIGNsYXNzPVwidXBsb2FkSWNvblwiIFtpY29uXT1cIid1cGxvYWQnXCI+PC9zbWFydC1pY29uPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0YUZpZWxkXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZSBtZXNzYWdlXCI+e3sgdGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXNzYWdlXCI+e3sgc3ViVGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXNzYWdlXCI+e3sgZmlsZUZvcm1hdHNTdHJpbmcgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXNzYWdlXCI+IG1heCB7eyBtYXhTaXplTWIgfX0gTWI8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYoaXNNdWx0aXBsZSA9PSBmYWxzZSAmJiBhdXRvVXBsb2FkID09IGZhbHNlICYmIChmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwKSl7XHJcbiAgICA8dWktYWN0aW9uLWJ1dHRvbiBbZGVzY3JpcHRvcl09XCJ1cGxvYWRCdXR0b25cIiAoYWN0aW9uQ2xpY2spPVwiZmlsZVVwbG9hZFByaW1lLnVwbG9hZCgpXCIgLz5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZmlsZUNvbnRhaW5lciBsZXQtZmlsZSBsZXQtaT1cImluZGV4XCI+XHJcbiAgPGRpdiBjbGFzcz1cInAtZmlsZXVwbG9hZC1maWxlXCI+XHJcbiAgICBAaWYoZmlsZS5vYmplY3RVUkwpe1xyXG4gICAgPGltZyByb2xlPVwicHJlc2VudGF0aW9uXCIgW2FsdF09XCJmaWxlLm5hbWVcIiBbc3JjXT1cImZpbGUub2JqZWN0VVJMXCIgd2lkdGg9XCI1MFwiIGhlaWdodD1cIjUwXCIgLz5cclxuICAgIH1AZWxzZSB7XHJcbiAgICA8aSBjbGFzcz1cInBpIHBpLWZpbGVcIiBzdHlsZT1cImZvbnQtc2l6ZTogMnJlbVwiPjwvaT5cclxuICAgIH1cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsZURhdGFcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlTmFtZVwiPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlU2l6ZVwiPnt7IGZvcm1hdFNpemUoZmlsZS5zaXplKSB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbGVCdXR0b25zXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgaWNvbj1cInBpIHBpLWRvd25sb2FkXCJcclxuICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgZmlsZS1hY3Rpb25cIlxyXG4gICAgICAgIChjbGljayk9XCJkb3dubG9hZEZpbGUoZmlsZSlcIlxyXG4gICAgICAgIGFyaWEtbGFiZWw9XCJEb3dubG9hZFwiXHJcbiAgICAgICAgc3R5bGU9XCJjb2xvcjogdmFyKC0tcHJpbWFyeS1jb2xvcilcIlxyXG4gICAgICA+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgaWNvbj1cInBpIHBpLXRpbWVzXCJcclxuICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgZmlsZS1hY3Rpb25cIlxyXG4gICAgICAgIChjbGljayk9XCJmaWxlVXBsb2FkUHJpbWUucmVtb3ZlKCRldmVudCwgaSlcIlxyXG4gICAgICAgIGFyaWEtbGFiZWw9XCJSZW1vdmVcIlxyXG4gICAgICAgIHN0eWxlPVwiY29sb3I6IHJnYigyMzksIDY4LCA2OClcIlxyXG4gICAgICA+PC9idXR0b25cclxuICAgID48L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|