@eo-sdk/client 10.4.0 → 10.5.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +57 -0
- package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts +62 -0
- package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts +11 -0
- package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts.map +1 -0
- package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.d.ts.map +1 -1
- package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts +4 -2
- package/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.d.ts.map +1 -1
- package/app/eo-client/eo-client.module.d.ts +19 -16
- package/app/eo-client/eo-client.module.d.ts.map +1 -1
- package/app/eo-client/settings/settings.component.d.ts +2 -0
- package/app/eo-client/settings/settings.component.d.ts.map +1 -1
- package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
- package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts +2 -1
- package/app/eo-framework/form-elements/codesystem/codesystem.component.d.ts.map +1 -1
- package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts.map +1 -1
- package/app/eo-framework/prepare-details/prepare-details.component.d.ts +1 -0
- package/app/eo-framework/prepare-details/prepare-details.component.d.ts.map +1 -1
- package/app/eo-framework/tree/tree.component.d.ts +2 -1
- package/app/eo-framework/tree/tree.component.d.ts.map +1 -1
- package/app/eo-framework-core/empty-state/empty-state.interface.d.ts +3 -3
- package/app/eo-framework-core/empty-state/empty-state.interface.d.ts.map +1 -1
- package/assets/_default/i18n/de.json +19 -2
- package/assets/_default/i18n/en.json +18 -1
- package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
- package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +11 -3
- package/esm2020/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +200 -0
- package/esm2020/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +187 -0
- package/esm2020/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +2 -0
- package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +9 -4
- package/esm2020/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +22 -23
- package/esm2020/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +3 -3
- package/esm2020/app/eo-client/eo-client.module.mjs +16 -6
- package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +2 -2
- package/esm2020/app/eo-client/settings/settings.component.mjs +16 -4
- package/esm2020/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +3 -3
- package/esm2020/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +1 -1
- package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +1 -1
- package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +5 -4
- package/esm2020/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +7 -4
- package/esm2020/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +1 -1
- package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
- package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +3 -3
- package/esm2020/app/eo-framework/frame/frame.component.mjs +2 -2
- package/esm2020/app/eo-framework/grid/filters/codesystem-filter.component.mjs +3 -3
- package/esm2020/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +1 -1
- package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +1 -1
- package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +1 -1
- package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +13 -6
- package/esm2020/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +3 -3
- package/esm2020/app/eo-framework/tree/tree.component.mjs +15 -4
- package/esm2020/app/eo-framework-core/empty-state/empty-state.interface.mjs +1 -1
- package/esm2020/projects/eo-sdk/core/lib/service/cache/app-cache.service.mjs +6 -1
- package/esm2020/projects/eo-sdk/core/lib/service/storage/local-storage.service.mjs +12 -1
- package/esm2020/projects/eo-sdk/core/lib/service/stored-queries/stored-queries.service.mjs +1 -1
- package/esm2020/projects/eo-sdk/core/lib/service/user/user.service.mjs +18 -1
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +33 -0
- package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2015/eo-sdk-client.mjs +480 -63
- package/fesm2015/eo-sdk-client.mjs.map +1 -1
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +33 -0
- package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
- package/fesm2020/eo-sdk-client.mjs +468 -62
- package/fesm2020/eo-sdk-client.mjs.map +1 -1
- package/package.json +3 -2
- package/projects/eo-sdk/core/lib/service/cache/app-cache.service.d.ts +1 -0
- package/projects/eo-sdk/core/lib/service/cache/app-cache.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/storage/local-storage.service.d.ts +3 -0
- package/projects/eo-sdk/core/lib/service/storage/local-storage.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/stored-queries/stored-queries.service.d.ts.map +1 -1
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +11 -0
- package/projects/eo-sdk/core/lib/service/user/user.service.d.ts.map +1 -1
- package/styles.css +1 -0
- package/styles.scss +1 -0
|
@@ -15,6 +15,7 @@ export class TreeComponent {
|
|
|
15
15
|
this.selectedNodes = [];
|
|
16
16
|
this.visibleNodes = [];
|
|
17
17
|
this.options = {};
|
|
18
|
+
this.emptyMessage = 'eo.error.structure.tree.not.available';
|
|
18
19
|
this.selectionKey = ' '; // default is Space
|
|
19
20
|
// the nodes that are selected. In case of `multiselect` set to true, this will be an
|
|
20
21
|
this.expandedNodesChanged = new EventEmitter();
|
|
@@ -81,6 +82,14 @@ export class TreeComponent {
|
|
|
81
82
|
}
|
|
82
83
|
break;
|
|
83
84
|
}
|
|
85
|
+
case 'Enter': {
|
|
86
|
+
// toggle selection of the focused node
|
|
87
|
+
if (this.focusedNode.selectable) {
|
|
88
|
+
// this.focusedNode.selected = !this.focusedNode.selected;
|
|
89
|
+
this.onNodeSelected(this.focusedNode);
|
|
90
|
+
}
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
84
93
|
}
|
|
85
94
|
if (['ArrowUp', 'ArrowDown', 'ArrowRight', 'ArrowLeft'].includes(event.key)) {
|
|
86
95
|
event.stopPropagation();
|
|
@@ -207,13 +216,13 @@ export class TreeComponent {
|
|
|
207
216
|
}
|
|
208
217
|
}
|
|
209
218
|
TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TreeComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
210
|
-
TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: TreeComponent, selector: "eo-tree", inputs: { options: "options", isDisplayed: "isDisplayed", readonly: "readonly", selectionKey: "selectionKey", highlightedNodes: "highlightedNodes", treeInput: ["tree", "treeInput"], treeUpdate: "treeUpdate" }, outputs: { expandedNodesChanged: "expandedNodesChanged", onSelected: "onSelected" }, host: { listeners: { "focusin": "onFocusIn($event.target)", "focusout": "onFocusOut()", "keydown": "onKey($event)" }, properties: { "attr.tabindex": "this._tabIndex" } }, providers: [
|
|
219
|
+
TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: TreeComponent, selector: "eo-tree", inputs: { options: "options", isDisplayed: "isDisplayed", readonly: "readonly", emptyMessage: "emptyMessage", selectionKey: "selectionKey", highlightedNodes: "highlightedNodes", treeInput: ["tree", "treeInput"], treeUpdate: "treeUpdate" }, outputs: { expandedNodesChanged: "expandedNodesChanged", onSelected: "onSelected" }, host: { listeners: { "focusin": "onFocusIn($event.target)", "focusout": "onFocusOut()", "keydown": "onKey($event)" }, properties: { "attr.tabindex": "this._tabIndex" } }, providers: [
|
|
211
220
|
{
|
|
212
221
|
provide: NG_VALUE_ACCESSOR,
|
|
213
222
|
useExisting: forwardRef(() => TreeComponent),
|
|
214
223
|
multi: true
|
|
215
224
|
}
|
|
216
|
-
], ngImport: i0, template: "<div class=\"eo-tree\" eoRtlAware *ngIf=\"tree.length; else noTrees\">\n <eo-tree-node *ngFor=\"let node of tree\" [node]=\"node\"\n (onNodeExpandedChanged)=\"toggleExpanded($event)\"\n (onNodeSelected)=\"onNodeSelected($event)\"></eo-tree-node>\n</div>\n\n<ng-template #noTrees>\n <div class=\"tree tree-panel-error eo-body error\">\n <eo-icon class=\"error error__icon\" [iconSrc]=\"'ic_error.svg'\"></eo-icon>\n <p translate>
|
|
225
|
+
], ngImport: i0, template: "<div class=\"eo-tree\" eoRtlAware *ngIf=\"tree.length; else noTrees\">\n <eo-tree-node *ngFor=\"let node of tree\" [node]=\"node\"\n (onNodeExpandedChanged)=\"toggleExpanded($event)\"\n (onNodeSelected)=\"onNodeSelected($event)\"></eo-tree-node>\n</div>\n\n<ng-template #noTrees>\n <div class=\"tree tree-panel-error eo-body error\">\n <eo-icon class=\"error error__icon\" [iconSrc]=\"'ic_error.svg'\"></eo-icon>\n <p translate>{{emptyMessage}}</p>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i3.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "directive", type: i4.RtlAwareDirective, selector: "[eoRtlAware]", inputs: ["eoRtlAware"] }, { kind: "component", type: i5.TreeNodeComponent, selector: "eo-tree-node", inputs: ["node"], outputs: ["onNodeSelected", "onNodeExpandedChanged"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
217
226
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: TreeComponent, decorators: [{
|
|
218
227
|
type: Component,
|
|
219
228
|
args: [{ selector: 'eo-tree', providers: [
|
|
@@ -222,7 +231,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
222
231
|
useExisting: forwardRef(() => TreeComponent),
|
|
223
232
|
multi: true
|
|
224
233
|
}
|
|
225
|
-
], encapsulation: ViewEncapsulation.None, template: "<div class=\"eo-tree\" eoRtlAware *ngIf=\"tree.length; else noTrees\">\n <eo-tree-node *ngFor=\"let node of tree\" [node]=\"node\"\n (onNodeExpandedChanged)=\"toggleExpanded($event)\"\n (onNodeSelected)=\"onNodeSelected($event)\"></eo-tree-node>\n</div>\n\n<ng-template #noTrees>\n <div class=\"tree tree-panel-error eo-body error\">\n <eo-icon class=\"error error__icon\" [iconSrc]=\"'ic_error.svg'\"></eo-icon>\n <p translate>
|
|
234
|
+
], encapsulation: ViewEncapsulation.None, template: "<div class=\"eo-tree\" eoRtlAware *ngIf=\"tree.length; else noTrees\">\n <eo-tree-node *ngFor=\"let node of tree\" [node]=\"node\"\n (onNodeExpandedChanged)=\"toggleExpanded($event)\"\n (onNodeSelected)=\"onNodeSelected($event)\"></eo-tree-node>\n</div>\n\n<ng-template #noTrees>\n <div class=\"tree tree-panel-error eo-body error\">\n <eo-icon class=\"error error__icon\" [iconSrc]=\"'ic_error.svg'\"></eo-icon>\n <p translate>{{emptyMessage}}</p>\n </div>\n</ng-template>\n" }]
|
|
226
235
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _tabIndex: [{
|
|
227
236
|
type: HostBinding,
|
|
228
237
|
args: ['attr.tabindex']
|
|
@@ -232,6 +241,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
232
241
|
type: Input
|
|
233
242
|
}], readonly: [{
|
|
234
243
|
type: Input
|
|
244
|
+
}], emptyMessage: [{
|
|
245
|
+
type: Input
|
|
235
246
|
}], selectionKey: [{
|
|
236
247
|
type: Input
|
|
237
248
|
}], expandedNodesChanged: [{
|
|
@@ -257,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
257
268
|
type: HostListener,
|
|
258
269
|
args: ['keydown', ['$event']]
|
|
259
270
|
}] } });
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQWtCdkUsTUFBTSxPQUFPLGFBQWE7SUF5QnhCLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUF2QlgsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVwQyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFLeEIsWUFBTyxHQUFnQixFQUFFLENBQUM7UUFJMUIsaUJBQVksR0FBRyxHQUFHLENBQUMsQ0FBQyxtQkFBbUI7UUFFaEQscUZBQXFGO1FBQzNFLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUMsb0JBQWUsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFO1FBQzdCLENBQUMsQ0FBQTtJQUdELENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVELElBQ0ksZ0JBQWdCLENBQUMsS0FBZTtRQUNsQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxJQUFJLEVBQUUs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QUM7Z0JBU3hDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVO2dCQWdCMUIsS0FBSztzQkFESixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSG9zdExpc3RlbmVyLFxuICBmb3J3YXJkUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZywgRWxlbWVudFJlZiwgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJlZU5vZGUsIFRyZWVPcHRpb25zfSBmcm9tICcuL3RyZWUuY29tcG9uZW50LmludGVyZmFjZSc7XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJlZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUcmVlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgX3RhYkluZGV4ID0gMDtcblxuICBwcml2YXRlIF9leHBhbmRlZE5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF9oaWdobGlnaHRlZE5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHNlbGVjdGVkTm9kZXM6IGFueVtdID0gW107XG4gIHByaXZhdGUgdmlzaWJsZU5vZGVzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIGZvY3VzZWROb2RlOiBUcmVlTm9kZTtcblxuICB0cmVlOiBUcmVlTm9kZVtdO1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFRyZWVPcHRpb25zID0ge307XG4gIEBJbnB1dCgpIGlzRGlzcGxheWVkOiBib29sZWFuO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcblxuICBASW5wdXQoKSBzZWxlY3Rpb25LZXkgPSAnICc7IC8vIGRlZmF1bHQgaXMgU3BhY2VcblxuICAvLyB0aGUgbm9kZXMgdGhhdCBhcmUgc2VsZWN0ZWQuIEluIGNhc2Ugb2YgYG11bHRpc2VsZWN0YCBzZXQgdG8gdHJ1ZSwgdGhpcyB3aWxsIGJlIGFuXG4gIEBPdXRwdXQoKSBleHBhbmRlZE5vZGVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4ge1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgQElucHV0KCdoaWdobGlnaHRlZE5vZGVzJylcbiAgc2V0IGhpZ2hsaWdodGVkTm9kZXMobm9kZXM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5faGlnaGxpZ2h0ZWROb2RlcyA9IG5vZGVzIHx8IFtdO1xuICAgIHRoaXMudmlzaWJsZU5vZGVzLmZvckVhY2gobiA9PiAobi5oaWdobGlnaHRlZCA9ICEhdGhpcy5faGlnaGxpZ2h0ZWROb2Rlcy5maW5kKGlkID0+IGlkID09PSBuLmlkKSkpO1xuICB9XG5cbiAgQElucHV0KCd0cmVlJylcbiAgc2V0IHRyZWVJbnB1dCh0cmVlOiBUcmVlTm9kZVtdKSB7XG4gICAgLy8gdGhpcy50cmVlID0gdHJlZTtcbiAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBbXTtcbiAgICB0aGlzLl9leHBhbmRlZE5vZGVzID0gW107XG4gICAgdGhpcy5mb2N1c2VkTm9kZSA9IG51bGw7XG4gICAgdGhpcy51cGRhdGVUcmVlKHRyZWUpO1xuICB9XG5cbiAgQElucHV0KCd0cmVlVXBkYXRlJylcbiAgc2V0IHRyZWVVcGRhdGUodHJlZTogVHJlZU5vZGVbXSkge1xuICAgIGlmICh0cmVlKSB7XG4gICAgICB0aGlzLnVwZGF0ZVRyZWUodHJlZSk7XG4gICAgfVxuICB9XG5cblxuICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgWyckZXZlbnQudGFyZ2V0J10pXG4gIG9uRm9jdXNJbih0YXJnZXQ6IGFueSkge1xuICAgIGlmICghdGhpcy5mb2N1c2VkTm9kZSB8fCAhdGhpcy5mb2N1c2VkTm9kZS5mb2N1c2VkKSB7XG4gICAgICBsZXQgbm9kZSA9IHRoaXMuc2VsZWN0ZWROb2Rlc1swXSB8fCB0aGlzLnZpc2libGVOb2Rlc1swXTtcbiAgICAgIHRoaXMudXBkYXRlRm9jdXMobm9kZSk7XG4gICAgfVxuICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcpXG4gICAgb25Gb2N1c091dCgpIHtcbiAgICAgIHRoaXMudXBkYXRlRm9jdXMoKTtcbiAgICB9XG5cbiAgb25Gb2N1cyhldnQpIHtcbiAgfVxuXG4gIG9uQmx1cihldnQpIHtcbiAgfVxuXG4gIG9uVG9nZ2xlKGV2dCkge1xuXG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQXJyb3dVcCc6IHtcbiAgICAgICAgdGhpcy5mb2N1c05vZGUoZmFsc2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93RG93bic6IHtcbiAgICAgICAgdGhpcy5mb2N1c05vZGUodHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQXJyb3dSaWdodCc6IHtcbiAgICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZCh0aGlzLmZvY3VzZWROb2RlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOiB7XG4gICAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWQodGhpcy5mb2N1c2VkTm9kZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSB0aGlzLnNlbGVjdGlvbktleToge1xuICAgICAgICAvLyB0b2dnbGUgc2VsZWN0aW9uIG9mIHRoZSBmb2N1c2VkIG5vZGVcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZE5vZGUuc2VsZWN0YWJsZSkge1xuICAgICAgICAgIC8vIHRoaXMuZm9jdXNlZE5vZGUuc2VsZWN0ZWQgPSAhdGhpcy5mb2N1c2VkTm9kZS5zZWxlY3RlZDtcbiAgICAgICAgICB0aGlzLm9uTm9kZVNlbGVjdGVkKHRoaXMuZm9jdXNlZE5vZGUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChbJ0Fycm93VXAnLCAnQXJyb3dEb3duJywgJ0Fycm93UmlnaHQnLCAnQXJyb3dMZWZ0J10uaW5jbHVkZXMoZXZlbnQua2V5KSkge1xuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG5cbiAgd3JpdGVWYWx1ZShzZWxlY3RlZE5vZGVzOiBUcmVlTm9kZVtdKTogdm9pZCB7XG4gICAgbGV0IF9zZWxlY3RlZE5vZGVzID0gIXNlbGVjdGVkTm9kZXMgfHwgQXJyYXkuaXNBcnJheShzZWxlY3RlZE5vZGVzKSA/IHNlbGVjdGVkTm9kZXMgfHwgW10gOiBbc2VsZWN0ZWROb2Rlc107XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZE5vZGVzLmxlbmd0aCAhPT0gX3NlbGVjdGVkTm9kZXMubGVuZ3RoIHx8IHRoaXMuc2VsZWN0ZWROb2Rlcy5zb21lKChuLCBpKSA9PiBuLmlkICE9PSBfc2VsZWN0ZWROb2Rlc1tpXS5pZCkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IF9zZWxlY3RlZE5vZGVzO1xuICAgICAgdGhpcy51cGRhdGVUcmVlKHRoaXMudHJlZSk7XG4gICAgfVxuXG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICB9XG5cbiAgb25Ob2RlU2VsZWN0ZWQobm9kZSkge1xuICAgIC8vIGlmIHRoZSBzZWxlY3RlZCBub2RlIGlzbid0IGFsbG93ZWQgdG8gYmUgc2VsZWN0ZWQsIHdlJ2xsIGluc3RlYWQgdHJ5IHRvXG4gICAgLy8gdG9nZ2xlIGV4cGFuZGVkIGZsYWcgZm9yIHBhcmVudCBub2Rlc1xuICAgIHRoaXMub25TZWxlY3RlZC5lbWl0KG5vZGUpO1xuICAgIHRoaXMudXBkYXRlRm9jdXMobm9kZSwgdGhpcy5mb2N1c2VkTm9kZSk7XG5cbiAgICBpZiAoIW5vZGUuc2VsZWN0YWJsZSkge1xuICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZChub2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9kZS5zZWxlY3RlZCA9ICFub2RlLnNlbGVjdGVkO1xuICAgICAgaWYgKG5vZGUuc2VsZWN0ZWQpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMubXVsdGlzZWxlY3QgJiYgdGhpcy5zZWxlY3RlZE5vZGVzLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlc1swXS5zZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2VsZWN0ZWROb2Rlcy5wdXNoKG5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuZGlzYWJsZURlc2VsZWN0aW9uKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZE5vZGVzID0gdGhpcy5zZWxlY3RlZE5vZGVzLmZpbHRlcihcbiAgICAgICAgICAgIG4gPT4gbi5pZCAhPT0gbm9kZS5pZFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbm9kZS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMub3B0aW9ucy5tdWx0aXNlbGVjdCA/IHRoaXMuc2VsZWN0ZWROb2RlcyA6IHRoaXMuc2VsZWN0ZWROb2Rlc1swXSk7XG4gICAgfVxuICB9XG5cblxuICBwdWJsaWMgb25Ob2RlRXhwYW5kZWQobm9kZTogVHJlZU5vZGUpIHtcbiAgICB0aGlzLmNvbGxlY3RWaXNpYmxlTm9kZXMobm9kZSk7XG4gICAgdGhpcy5leHBhbmRlZE5vZGVzQ2hhbmdlZC5lbWl0KHRoaXMuX2V4cGFuZGVkTm9kZXMpO1xuICB9XG5cblxuICBwdWJsaWMgdG9nZ2xlRXhwYW5kZWQobm9kZTogVHJlZU5vZGUpIHtcbiAgICBpZiAobm9kZS5jaGlsZHJlbiAmJiBub2RlLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgbm9kZS5leHBhbmRlZCA9ICFub2RlLmV4cGFuZGVkO1xuICAgICAgdGhpcy5vbk5vZGVFeHBhbmRlZChub2RlKTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIFVwZGF0ZSB0aGUgdHJlZSBhY2NvcmRpbmcgdG8gdGhlIHNlbGVjdGVkIG5vZGVzXG4gIHByaXZhdGUgdXBkYXRlVHJlZSh0cmVlPzogYW55KSB7XG4gICAgaWYgKHRyZWUgfHwgdGhpcy50cmVlKSB7XG4gICAgICB0aGlzLnRyZWUgPSAodHJlZSB8fCB0aGlzLnRyZWUpLm1hcChub2RlID0+IHRoaXMudXBkYXRlVHJlZU5vZGUobm9kZSwgW10pKTtcbiAgICAgIHRoaXMuY29sbGVjdFZpc2libGVOb2RlcygpO1xuICAgIH1cbiAgfVxuXG5cbiAgLy8gUmVjdXJzaXZlIGZ1bmN0aW9uIHdhbGtpbmcgdGhlIHRyZWUgbm9kZXMgYW5kIHNldHRpbmcgdGhlIG5vZGVzIGBzZWxlY3RlZGAgZmxhZ3NcbiAgcHJpdmF0ZSB1cGRhdGVUcmVlTm9kZShub2RlOiBUcmVlTm9kZSwgcGFyZW50czogVHJlZU5vZGVbXSkge1xuICAgIG5vZGUuc2VsZWN0ZWQgPSAhIXRoaXMuc2VsZWN0ZWROb2Rlcy5maW5kKG4gPT4gbm9kZS5pZCA9PT0gbi5pZCB8fCAoIW4uaWQgJiYgbm9kZS5kYXRhPy52YWx1ZSA9PT0gbi52YWx1ZSkpO1xuICAgIG5vZGUuZXhwYW5kZWQgPSB0aGlzLl9leHBhbmRlZE5vZGVzLmxlbmd0aCA/ICEhdGhpcy5fZXhwYW5kZWROb2Rlcy5maW5kKGlkID0+IGlkID09PSBub2RlLmlkKSA6IG5vZGUuZXhwYW5kZWQ7XG4gICAgbm9kZS5oaWdobGlnaHRlZCA9ICEhdGhpcy5faGlnaGxpZ2h0ZWROb2Rlcy5maW5kKGlkID0+IGlkID09PSBub2RlLmlkKTtcbiAgICBub2RlLmZvY3VzZWQgPSB0aGlzLmZvY3VzZWROb2RlICYmIHRoaXMuZm9jdXNlZE5vZGUuaWQgPT09IG5vZGUuaWQgPyB0aGlzLmZvY3VzZWROb2RlLmZvY3VzZWQgOiBmYWxzZTtcbiAgICAvLyBub2RlLmxldmVsID0gcGFyZW50cy5sZW5ndGg7XG5cbiAgICAvLyBleHBhbmQgYWxsIHBhcmVudCBub2RlcyBhcyB3ZWxsXG4gICAgaWYgKG5vZGUuc2VsZWN0ZWQgJiYgcGFyZW50cy5sZW5ndGgpIHtcbiAgICAgIHBhcmVudHMuZm9yRWFjaChwID0+IChwLmV4cGFuZGVkID0gdHJ1ZSkpO1xuICAgIH1cbiAgICBpZiAobm9kZS5jaGlsZHJlbikge1xuICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKG4gPT4gdGhpcy51cGRhdGVUcmVlTm9kZShuLCBwYXJlbnRzLmNvbmNhdChbbm9kZV0pKSk7XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgLy8gQ29sbGVjdCBhbGwgdmlzaWJsZSBub2RlcyBpbiB0aGUgcmlnaHQgb3JkZXIgdG8gYmUgdXNlZCB0byBmZXRjaCB0aGUgcHJldmlvdXMgb3JcbiAgLy8gbmV4dCBub2RlIHVzaW5nIGtleWJvYXJkIG5hdmlnYXRpb24uXG4gIHByaXZhdGUgY29sbGVjdFZpc2libGVOb2Rlcyhub2RlPzogVHJlZU5vZGUpIHtcbiAgICB0aGlzLnZpc2libGVOb2RlcyA9IHRoaXMuY29sbGVjdFZpc2libGVDaGlsZHJlbih0aGlzLnRyZWUpO1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IHRoaXMudmlzaWJsZU5vZGVzLmZpbHRlcihuID0+IG4uc2VsZWN0ZWQpO1xuICB9XG5cbiAgLy8gcmVjdXJzaXZlIHBhcnQgb2YgY29sbGVjdENoaWxkTm9kZXMoKVxuICBwcml2YXRlIGNvbGxlY3RWaXNpYmxlQ2hpbGRyZW4obm9kZXM6IFRyZWVOb2RlW10gPSBbXSkge1xuICAgIGxldCBmbGF0ID0gW107XG4gICAgdGhpcy5fZXhwYW5kZWROb2RlcyA9IFtdO1xuICAgIG5vZGVzLmZvckVhY2gobm9kZSA9PiB7XG4gICAgICBmbGF0LnB1c2gobm9kZSk7XG4gICAgICBpZiAobm9kZS5leHBhbmRlZCkge1xuICAgICAgICB0aGlzLl9leHBhbmRlZE5vZGVzLnB1c2gobm9kZS5pZCk7XG4gICAgICAgIGZsYXQgPSBmbGF0LmNvbmNhdCh0aGlzLmNvbGxlY3RWaXNpYmxlQ2hpbGRyZW4obm9kZS5jaGlsZHJlbikpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmbGF0O1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGb2N1cyhub2RlPzogVHJlZU5vZGUsIG9sZD86IFRyZWVOb2RlKSB7XG4gICAgaWYgKG9sZCkge1xuICAgICAgaWYgKG5vZGUgIT09IG9sZCkge1xuICAgICAgICBvbGQuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpc2libGVOb2Rlcy5mb3JFYWNoKG4gPT4gKG4uZm9jdXNlZCA9IGZhbHNlKSk7XG4gICAgfVxuICAgIGlmIChub2RlKSB7XG4gICAgICBub2RlLmZvY3VzZWQgPSB0cnVlO1xuICAgICAgdGhpcy5mb2N1c2VkTm9kZSA9IG5vZGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c05vZGUobmV4dD86IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy52aXNpYmxlTm9kZXMubGVuZ3RoKSB7XG4gICAgICBsZXQgaW5kZXggPSAwLCBzaGlmdCA9IG5leHQgPyAxIDogLTE7XG4gICAgICBjb25zdCBub2RlID0gdGhpcy52aXNpYmxlTm9kZXMuZmluZCgobiwgaSkgPT4ge1xuICAgICAgICBpbmRleCA9IGk7XG4gICAgICAgIHJldHVybiBuLmZvY3VzZWQ7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbmV4dElkeCA9IG5vZGUgPyBpbmRleCArIHNoaWZ0IDogMDtcbiAgICAgIGNvbnN0IGlkeCA9IG5leHRJZHggPj0gdGhpcy52aXNpYmxlTm9kZXMubGVuZ3RoID8gMCA6IChuZXh0SWR4IDwgMCA/IHRoaXMudmlzaWJsZU5vZGVzLmxlbmd0aCAtIDEgOiBuZXh0SWR4KTtcbiAgICAgIHRoaXMudXBkYXRlRm9jdXModGhpcy52aXNpYmxlTm9kZXNbaWR4XSwgbm9kZSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tdHJlZVwiIGVvUnRsQXdhcmUgKm5nSWY9XCJ0cmVlLmxlbmd0aDsgZWxzZSBub1RyZWVzXCI+XG4gIDxlby10cmVlLW5vZGUgKm5nRm9yPVwibGV0IG5vZGUgb2YgdHJlZVwiIFtub2RlXT1cIm5vZGVcIlxuICAgICAgICAgICAgICAgIChvbk5vZGVFeHBhbmRlZENoYW5nZWQpPVwidG9nZ2xlRXhwYW5kZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKG9uTm9kZVNlbGVjdGVkKT1cIm9uTm9kZVNlbGVjdGVkKCRldmVudClcIj48L2VvLXRyZWUtbm9kZT5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI25vVHJlZXM+XG4gIDxkaXYgY2xhc3M9XCJ0cmVlIHRyZWUtcGFuZWwtZXJyb3IgZW8tYm9keSBlcnJvclwiPlxuICAgIDxlby1pY29uIGNsYXNzPVwiZXJyb3IgZXJyb3JfX2ljb25cIiBbaWNvblNyY109XCInaWNfZXJyb3Iuc3ZnJ1wiPjwvZW8taWNvbj5cbiAgICA8cCB0cmFuc2xhdGU+ZW8uZXJyb3Iuc3RydWN0dXJlLnRyZWUubm90LmF2YWlsYWJsZTwvcD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQWtCdkUsTUFBTSxPQUFPLGFBQWE7SUEwQnhCLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUF4QlgsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUVwQyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsaUJBQVksR0FBVSxFQUFFLENBQUM7UUFLeEIsWUFBTyxHQUFnQixFQUFFLENBQUM7UUFHMUIsaUJBQVksR0FBRyx1Q0FBdUMsQ0FBQztRQUV2RCxpQkFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDLG1CQUFtQjtRQUVoRCxxRkFBcUY7UUFDM0UseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxQyxvQkFBZSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUU7UUFDN0IsQ0FBQyxDQUFBO0lBR0QsQ0FBQztJQUVELFFBQVE7SUFDUixDQUFDO0lBRUQsSUFDSSxnQkFBZ0IsQ0FBQyxLQUFlO1FBQ2xDLElBQUksQ0FB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LFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0ksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBWUgsZ0JBQWdCO3NCQURuQixLQUFLO3VCQUFDLGtCQUFrQjtnQkFPckIsU0FBUztzQkFEWixLQUFLO3VCQUFDLE1BQU07Z0JBVVQsVUFBVTtzQkFEYixLQUFLO3VCQUFDLFlBQVk7Z0JBU25CLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7Z0JBU3hDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxVQUFVO2dCQWdCMUIsS0FBSztzQkFESixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSG9zdExpc3RlbmVyLFxuICBmb3J3YXJkUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZywgRWxlbWVudFJlZiwgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7VHJlZU5vZGUsIFRyZWVPcHRpb25zfSBmcm9tICcuL3RyZWUuY29tcG9uZW50LmludGVyZmFjZSc7XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby10cmVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90cmVlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJlZUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUcmVlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgX3RhYkluZGV4ID0gMDtcblxuICBwcml2YXRlIF9leHBhbmRlZE5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIF9oaWdobGlnaHRlZE5vZGVzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHNlbGVjdGVkTm9kZXM6IGFueVtdID0gW107XG4gIHByaXZhdGUgdmlzaWJsZU5vZGVzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIGZvY3VzZWROb2RlOiBUcmVlTm9kZTtcblxuICB0cmVlOiBUcmVlTm9kZVtdO1xuXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFRyZWVPcHRpb25zID0ge307XG4gIEBJbnB1dCgpIGlzRGlzcGxheWVkOiBib29sZWFuO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcbiAgQElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ2VvLmVycm9yLnN0cnVjdHVyZS50cmVlLm5vdC5hdmFpbGFibGUnO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbktleSA9ICcgJzsgLy8gZGVmYXVsdCBpcyBTcGFjZVxuXG4gIC8vIHRoZSBub2RlcyB0aGF0IGFyZSBzZWxlY3RlZC4gSW4gY2FzZSBvZiBgbXVsdGlzZWxlY3RgIHNldCB0byB0cnVlLCB0aGlzIHdpbGwgYmUgYW5cbiAgQE91dHB1dCgpIGV4cGFuZGVkTm9kZXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBASW5wdXQoJ2hpZ2hsaWdodGVkTm9kZXMnKVxuICBzZXQgaGlnaGxpZ2h0ZWROb2Rlcyhub2Rlczogc3RyaW5nW10pIHtcbiAgICB0aGlzLl9oaWdobGlnaHRlZE5vZGVzID0gbm9kZXMgfHwgW107XG4gICAgdGhpcy52aXNpYmxlTm9kZXMuZm9yRWFjaChuID0+IChuLmhpZ2hsaWdodGVkID0gISF0aGlzLl9oaWdobGlnaHRlZE5vZGVzLmZpbmQoaWQgPT4gaWQgPT09IG4uaWQpKSk7XG4gIH1cblxuICBASW5wdXQoJ3RyZWUnKVxuICBzZXQgdHJlZUlucHV0KHRyZWU6IFRyZWVOb2RlW10pIHtcbiAgICAvLyB0aGlzLnRyZWUgPSB0cmVlO1xuICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IFtdO1xuICAgIHRoaXMuX2V4cGFuZGVkTm9kZXMgPSBbXTtcbiAgICB0aGlzLmZvY3VzZWROb2RlID0gbnVsbDtcbiAgICB0aGlzLnVwZGF0ZVRyZWUodHJlZSk7XG4gIH1cblxuICBASW5wdXQoJ3RyZWVVcGRhdGUnKVxuICBzZXQgdHJlZVVwZGF0ZSh0cmVlOiBUcmVlTm9kZVtdKSB7XG4gICAgaWYgKHRyZWUpIHtcbiAgICAgIHRoaXMudXBkYXRlVHJlZSh0cmVlKTtcbiAgICB9XG4gIH1cblxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nLCBbJyRldmVudC50YXJnZXQnXSlcbiAgb25Gb2N1c0luKHRhcmdldDogYW55KSB7XG4gICAgaWYgKCF0aGlzLmZvY3VzZWROb2RlIHx8ICF0aGlzLmZvY3VzZWROb2RlLmZvY3VzZWQpIHtcbiAgICAgIGxldCBub2RlID0gdGhpcy5zZWxlY3RlZE5vZGVzWzBdIHx8IHRoaXMudmlzaWJsZU5vZGVzWzBdO1xuICAgICAgdGhpcy51cGRhdGVGb2N1cyhub2RlKTtcbiAgICB9XG4gIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgICBvbkZvY3VzT3V0KCkge1xuICAgICAgdGhpcy51cGRhdGVGb2N1cygpO1xuICAgIH1cblxuICBvbkZvY3VzKGV2dCkge1xuICB9XG5cbiAgb25CbHVyKGV2dCkge1xuICB9XG5cbiAgb25Ub2dnbGUoZXZ0KSB7XG5cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBvbktleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd1VwJzoge1xuICAgICAgICB0aGlzLmZvY3VzTm9kZShmYWxzZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnQXJyb3dEb3duJzoge1xuICAgICAgICB0aGlzLmZvY3VzTm9kZSh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0Jzoge1xuICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKHRoaXMuZm9jdXNlZE5vZGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6IHtcbiAgICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZCh0aGlzLmZvY3VzZWROb2RlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIHRoaXMuc2VsZWN0aW9uS2V5OiB7XG4gICAgICAgIC8vIHRvZ2dsZSBzZWxlY3Rpb24gb2YgdGhlIGZvY3VzZWQgbm9kZVxuICAgICAgICBpZiAodGhpcy5mb2N1c2VkTm9kZS5zZWxlY3RhYmxlKSB7XG4gICAgICAgICAgLy8gdGhpcy5mb2N1c2VkTm9kZS5zZWxlY3RlZCA9ICF0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGVkO1xuICAgICAgICAgIHRoaXMub25Ob2RlU2VsZWN0ZWQodGhpcy5mb2N1c2VkTm9kZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFbnRlcic6IHtcbiAgICAgICAgLy8gdG9nZ2xlIHNlbGVjdGlvbiBvZiB0aGUgZm9jdXNlZCBub2RlXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGFibGUpIHtcbiAgICAgICAgICAvLyB0aGlzLmZvY3VzZWROb2RlLnNlbGVjdGVkID0gIXRoaXMuZm9jdXNlZE5vZGUuc2VsZWN0ZWQ7XG4gICAgICAgICAgdGhpcy5vbk5vZGVTZWxlY3RlZCh0aGlzLmZvY3VzZWROb2RlKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoWydBcnJvd1VwJywgJ0Fycm93RG93bicsICdBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCddLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuXG4gIHdyaXRlVmFsdWUoc2VsZWN0ZWROb2RlczogVHJlZU5vZGVbXSk6IHZvaWQge1xuICAgIGxldCBfc2VsZWN0ZWROb2RlcyA9ICFzZWxlY3RlZE5vZGVzIHx8IEFycmF5LmlzQXJyYXkoc2VsZWN0ZWROb2RlcykgPyBzZWxlY3RlZE5vZGVzIHx8IFtdIDogW3NlbGVjdGVkTm9kZXNdO1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGggIT09IF9zZWxlY3RlZE5vZGVzLmxlbmd0aCB8fCB0aGlzLnNlbGVjdGVkTm9kZXMuc29tZSgobiwgaSkgPT4gbi5pZCAhPT0gX3NlbGVjdGVkTm9kZXNbaV0uaWQpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBfc2VsZWN0ZWROb2RlcztcbiAgICAgIHRoaXMudXBkYXRlVHJlZSh0aGlzLnRyZWUpO1xuICAgIH1cblxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIG9uTm9kZVNlbGVjdGVkKG5vZGUpIHtcbiAgICAvLyBpZiB0aGUgc2VsZWN0ZWQgbm9kZSBpc24ndCBhbGxvd2VkIHRvIGJlIHNlbGVjdGVkLCB3ZSdsbCBpbnN0ZWFkIHRyeSB0b1xuICAgIC8vIHRvZ2dsZSBleHBhbmRlZCBmbGFnIGZvciBwYXJlbnQgbm9kZXNcbiAgICB0aGlzLm9uU2VsZWN0ZWQuZW1pdChub2RlKTtcbiAgICB0aGlzLnVwZGF0ZUZvY3VzKG5vZGUsIHRoaXMuZm9jdXNlZE5vZGUpO1xuXG4gICAgaWYgKCFub2RlLnNlbGVjdGFibGUpIHtcbiAgICAgIHRoaXMudG9nZ2xlRXhwYW5kZWQobm9kZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vZGUuc2VsZWN0ZWQgPSAhbm9kZS5zZWxlY3RlZDtcbiAgICAgIGlmIChub2RlLnNlbGVjdGVkKSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLm11bHRpc2VsZWN0ICYmIHRoaXMuc2VsZWN0ZWROb2Rlcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXNbMF0uc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdGVkTm9kZXMucHVzaChub2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLmRpc2FibGVEZXNlbGVjdGlvbikge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWROb2RlcyA9IHRoaXMuc2VsZWN0ZWROb2Rlcy5maWx0ZXIoXG4gICAgICAgICAgICBuID0+IG4uaWQgIT09IG5vZGUuaWRcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG5vZGUuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLm9wdGlvbnMubXVsdGlzZWxlY3QgPyB0aGlzLnNlbGVjdGVkTm9kZXMgOiB0aGlzLnNlbGVjdGVkTm9kZXNbMF0pO1xuICAgIH1cbiAgfVxuXG5cbiAgcHVibGljIG9uTm9kZUV4cGFuZGVkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgdGhpcy5jb2xsZWN0VmlzaWJsZU5vZGVzKG5vZGUpO1xuICAgIHRoaXMuZXhwYW5kZWROb2Rlc0NoYW5nZWQuZW1pdCh0aGlzLl9leHBhbmRlZE5vZGVzKTtcbiAgfVxuXG5cbiAgcHVibGljIHRvZ2dsZUV4cGFuZGVkKG5vZGU6IFRyZWVOb2RlKSB7XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4gJiYgbm9kZS5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIG5vZGUuZXhwYW5kZWQgPSAhbm9kZS5leHBhbmRlZDtcbiAgICAgIHRoaXMub25Ob2RlRXhwYW5kZWQobm9kZSk7XG4gICAgfVxuICB9XG5cblxuICAvLyBVcGRhdGUgdGhlIHRyZWUgYWNjb3JkaW5nIHRvIHRoZSBzZWxlY3RlZCBub2Rlc1xuICBwcml2YXRlIHVwZGF0ZVRyZWUodHJlZT86IGFueSkge1xuICAgIGlmICh0cmVlIHx8IHRoaXMudHJlZSkge1xuICAgICAgdGhpcy50cmVlID0gKHRyZWUgfHwgdGhpcy50cmVlKS5tYXAobm9kZSA9PiB0aGlzLnVwZGF0ZVRyZWVOb2RlKG5vZGUsIFtdKSk7XG4gICAgICB0aGlzLmNvbGxlY3RWaXNpYmxlTm9kZXMoKTtcbiAgICB9XG4gIH1cblxuXG4gIC8vIFJlY3Vyc2l2ZSBmdW5jdGlvbiB3YWxraW5nIHRoZSB0cmVlIG5vZGVzIGFuZCBzZXR0aW5nIHRoZSBub2RlcyBgc2VsZWN0ZWRgIGZsYWdzXG4gIHByaXZhdGUgdXBkYXRlVHJlZU5vZGUobm9kZTogVHJlZU5vZGUsIHBhcmVudHM6IFRyZWVOb2RlW10pIHtcbiAgICBub2RlLnNlbGVjdGVkID0gISF0aGlzLnNlbGVjdGVkTm9kZXMuZmluZChuID0+IG5vZGUuaWQgPT09IG4uaWQgfHwgKCFuLmlkICYmIG5vZGUuZGF0YT8udmFsdWUgPT09IG4udmFsdWUpKTtcbiAgICBub2RlLmV4cGFuZGVkID0gdGhpcy5fZXhwYW5kZWROb2Rlcy5sZW5ndGggPyAhIXRoaXMuX2V4cGFuZGVkTm9kZXMuZmluZChpZCA9PiBpZCA9PT0gbm9kZS5pZCkgOiBub2RlLmV4cGFuZGVkO1xuICAgIG5vZGUuaGlnaGxpZ2h0ZWQgPSAhIXRoaXMuX2hpZ2hsaWdodGVkTm9kZXMuZmluZChpZCA9PiBpZCA9PT0gbm9kZS5pZCk7XG4gICAgbm9kZS5mb2N1c2VkID0gdGhpcy5mb2N1c2VkTm9kZSAmJiB0aGlzLmZvY3VzZWROb2RlLmlkID09PSBub2RlLmlkID8gdGhpcy5mb2N1c2VkTm9kZS5mb2N1c2VkIDogZmFsc2U7XG4gICAgLy8gbm9kZS5sZXZlbCA9IHBhcmVudHMubGVuZ3RoO1xuXG4gICAgLy8gZXhwYW5kIGFsbCBwYXJlbnQgbm9kZXMgYXMgd2VsbFxuICAgIGlmIChub2RlLnNlbGVjdGVkICYmIHBhcmVudHMubGVuZ3RoKSB7XG4gICAgICBwYXJlbnRzLmZvckVhY2gocCA9PiAocC5leHBhbmRlZCA9IHRydWUpKTtcbiAgICB9XG4gICAgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIG5vZGUuY2hpbGRyZW4uZm9yRWFjaChuID0+IHRoaXMudXBkYXRlVHJlZU5vZGUobiwgcGFyZW50cy5jb25jYXQoW25vZGVdKSkpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIC8vIENvbGxlY3QgYWxsIHZpc2libGUgbm9kZXMgaW4gdGhlIHJpZ2h0IG9yZGVyIHRvIGJlIHVzZWQgdG8gZmV0Y2ggdGhlIHByZXZpb3VzIG9yXG4gIC8vIG5leHQgbm9kZSB1c2luZyBrZXlib2FyZCBuYXZpZ2F0aW9uLlxuICBwcml2YXRlIGNvbGxlY3RWaXNpYmxlTm9kZXMobm9kZT86IFRyZWVOb2RlKSB7XG4gICAgdGhpcy52aXNpYmxlTm9kZXMgPSB0aGlzLmNvbGxlY3RWaXNpYmxlQ2hpbGRyZW4odGhpcy50cmVlKTtcbiAgICB0aGlzLnNlbGVjdGVkTm9kZXMgPSB0aGlzLnZpc2libGVOb2Rlcy5maWx0ZXIobiA9PiBuLnNlbGVjdGVkKTtcbiAgfVxuXG4gIC8vIHJlY3Vyc2l2ZSBwYXJ0IG9mIGNvbGxlY3RDaGlsZE5vZGVzKClcbiAgcHJpdmF0ZSBjb2xsZWN0VmlzaWJsZUNoaWxkcmVuKG5vZGVzOiBUcmVlTm9kZVtdID0gW10pIHtcbiAgICBsZXQgZmxhdCA9IFtdO1xuICAgIHRoaXMuX2V4cGFuZGVkTm9kZXMgPSBbXTtcbiAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgZmxhdC5wdXNoKG5vZGUpO1xuICAgICAgaWYgKG5vZGUuZXhwYW5kZWQpIHtcbiAgICAgICAgdGhpcy5fZXhwYW5kZWROb2Rlcy5wdXNoKG5vZGUuaWQpO1xuICAgICAgICBmbGF0ID0gZmxhdC5jb25jYXQodGhpcy5jb2xsZWN0VmlzaWJsZUNoaWxkcmVuKG5vZGUuY2hpbGRyZW4pKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmxhdDtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRm9jdXMobm9kZT86IFRyZWVOb2RlLCBvbGQ/OiBUcmVlTm9kZSkge1xuICAgIGlmIChvbGQpIHtcbiAgICAgIGlmIChub2RlICE9PSBvbGQpIHtcbiAgICAgICAgb2xkLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aXNpYmxlTm9kZXMuZm9yRWFjaChuID0+IChuLmZvY3VzZWQgPSBmYWxzZSkpO1xuICAgIH1cbiAgICBpZiAobm9kZSkge1xuICAgICAgbm9kZS5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9jdXNlZE5vZGUgPSBub2RlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNOb2RlKG5leHQ/OiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMudmlzaWJsZU5vZGVzLmxlbmd0aCkge1xuICAgICAgbGV0IGluZGV4ID0gMCwgc2hpZnQgPSBuZXh0ID8gMSA6IC0xO1xuICAgICAgY29uc3Qgbm9kZSA9IHRoaXMudmlzaWJsZU5vZGVzLmZpbmQoKG4sIGkpID0+IHtcbiAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICByZXR1cm4gbi5mb2N1c2VkO1xuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG5leHRJZHggPSBub2RlID8gaW5kZXggKyBzaGlmdCA6IDA7XG4gICAgICBjb25zdCBpZHggPSBuZXh0SWR4ID49IHRoaXMudmlzaWJsZU5vZGVzLmxlbmd0aCA/IDAgOiAobmV4dElkeCA8IDAgPyB0aGlzLnZpc2libGVOb2Rlcy5sZW5ndGggLSAxIDogbmV4dElkeCk7XG4gICAgICB0aGlzLnVwZGF0ZUZvY3VzKHRoaXMudmlzaWJsZU5vZGVzW2lkeF0sIG5vZGUpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImVvLXRyZWVcIiBlb1J0bEF3YXJlICpuZ0lmPVwidHJlZS5sZW5ndGg7IGVsc2Ugbm9UcmVlc1wiPlxuICA8ZW8tdHJlZS1ub2RlICpuZ0Zvcj1cImxldCBub2RlIG9mIHRyZWVcIiBbbm9kZV09XCJub2RlXCJcbiAgICAgICAgICAgICAgICAob25Ob2RlRXhwYW5kZWRDaGFuZ2VkKT1cInRvZ2dsZUV4cGFuZGVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChvbk5vZGVTZWxlY3RlZCk9XCJvbk5vZGVTZWxlY3RlZCgkZXZlbnQpXCI+PC9lby10cmVlLW5vZGU+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNub1RyZWVzPlxuICA8ZGl2IGNsYXNzPVwidHJlZSB0cmVlLXBhbmVsLWVycm9yIGVvLWJvZHkgZXJyb3JcIj5cbiAgICA8ZW8taWNvbiBjbGFzcz1cImVycm9yIGVycm9yX19pY29uXCIgW2ljb25TcmNdPVwiJ2ljX2Vycm9yLnN2ZydcIj48L2VvLWljb24+XG4gICAgPHAgdHJhbnNsYXRlPnt7ZW1wdHlNZXNzYWdlfX08L3A+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRW1wdHlTdGF0ZSB7XG4gIGljb24/OiBzdHJpbmc7XG4gIHRleHQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -100,6 +100,11 @@ export class AppCacheService {
|
|
|
100
100
|
setStorage(options) {
|
|
101
101
|
return forkJoin(Object.keys(options || {}).map((k) => this.setItem(k, options[k])));
|
|
102
102
|
}
|
|
103
|
+
replaceStorage(settings) {
|
|
104
|
+
for (const [key, value] of Object.entries(settings)) {
|
|
105
|
+
this.setItem(key, value);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
103
108
|
}
|
|
104
109
|
AppCacheService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AppCacheService, deps: [{ token: i1.LocalStorage }, { token: i1.StorageMap }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
105
110
|
AppCacheService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: AppCacheService, providedIn: 'root' });
|
|
@@ -109,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
109
114
|
providedIn: 'root'
|
|
110
115
|
}]
|
|
111
116
|
}], ctorParameters: function () { return [{ type: i1.LocalStorage }, { type: i1.StorageMap }]; } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNhY2hlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvY2FjaGUvYXBwLWNhY2hlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQVksTUFBTSxNQUFNLENBQUM7QUFFdEYsT0FBTyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRXZDOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sZUFBZTtJQWlCMUIsWUFBc0IsT0FBcUIsRUFBVSxVQUFzQjtRQUFyRCxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWYzRTs7V0FFRztRQUNJLHNCQUFpQixHQUFHLHFDQUFxQyxDQUFDO1FBQ2pFOztXQUVHO1FBQ0ksVUFBSyxHQUFHLDBCQUEwQixDQUFDO1FBQzFDOztXQUVHO1FBQ0kscUJBQWdCLEdBQUcsc0NBQXNDLENBQUM7UUFFekQsYUFBUSxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO1FBR2pELGdGQUFnRjtRQUNoRixNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLE9B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QyxHQUFHLENBQUM7Z0JBQzdCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNwQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FDL0IsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDakIsSUFBSSxDQUFDLE1BQU07WUFDVCxDQUFDLENBQUMsUUFBUSxDQUNOLEtBQUssQ0FBQyxhQUFhLENBQ2pCLElBQUksRUFDSixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNSLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUN2QixDQUNGO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FDWCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQVk7UUFDckIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQzs7NEdBN0dVLGVBQWU7Z0hBQWYsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiBhcyBvYnNlcnZhYmxlT2YsIG9mLCBmb3JrSm9pbiwgZnJvbUV2ZW50fSBmcm9tICdyeGpzJztcbmltcG9ydCB7TG9jYWxTdG9yYWdlLCBTdG9yYWdlTWFwfSBmcm9tICdAbmd4LXB3YS9sb2NhbC1zdG9yYWdlJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBzd2l0Y2hNYXAsIG1hcCwgZmlyc3R9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuXG4vKipcbiAqIFRoZSBhcHBzIGNlbnRyYWwgY2FjaGluZyBzZXJ2aWNlLiBJdCB3aWxsIHByb3ZpZGUgdGhlIGFwcCB3aXRoIGFuIGVhc3kgdG8gdXNlIGNhY2hlIHRoYXRcbiAqIGlzIGF3YXJlIG9mIHRoZSBwbGF0Zm9ybSBpdCBpcyBydW5uaW5nIG9uLiBTbyBpdCBhYnN0cmFjdHMgdGhlIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1xuICogb2YgYSBjYWNoZSBmcm9tIHRoZSBhcHBsaWNhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ2FjaGVTZXJ2aWNlIHtcblxuICAvKipcbiAgICogS2V5IGZvciBzdG9yaW5nIHN5c3RlbSBkZWZpbml0aW9uXG4gICAqL1xuICBwdWJsaWMgU1lTVEVNX0RFRklOSVRJT04gPSAnZW8uZnJhbWV3b3JrLmNhY2hlLnN5c3RlbWRlZmluaXRpb24nO1xuICAvKipcbiAgICogS2V5IGZvciBzdG9yaW5nIHN5c3RlbSBkZWZpbml0aW9uXG4gICAqL1xuICBwdWJsaWMgSE9TVFMgPSAnZW8uZnJhbWV3b3JrLmNhY2hlLmhvc3RzJztcbiAgLyoqXG4gICAqIEtleSBmb3Igc3RvcmluZyBsb2NhdGlvbiBoaXN0b3J5XG4gICAqL1xuICBwdWJsaWMgTE9DQVRJT05fSElTVE9SWSA9ICdlby5mcmFtZXdvcmsuY2FjaGUubG9jYXRpb25zLmhpc3RvcnknO1xuXG4gIHByaXZhdGUgaXRlbXNNYXAgPSBuZXcgTWFwPHN0cmluZywgU3ViamVjdDxhbnk+PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzdG9yYWdlOiBMb2NhbFN0b3JhZ2UsIHByaXZhdGUgc3RvcmFnZU1hcDogU3RvcmFnZU1hcCkge1xuICAgIC8vIEluZGV4ZWREQiBpc3N1ZSBhZnRlciB1cGRhdGUgLSByZWZyZXNoIGZ1bmN0aW9uICh0cmFuc2Zvcm0gYWxsIHdyYXBwZWQgaXRlbXMpXG4gICAgd2luZG93WydfbmdTdG9yYWdlUmVmcmVzaCddID0gKCkgPT4gdGhpcy5nZXRTdG9yYWdlKCkuc3Vic2NyaWJlKHN0b3JhZ2UgPT4gdGhpcy5zZXRTdG9yYWdlKHN0b3JhZ2UpLnN1YnNjcmliZSgpICYmIGNvbnNvbGUubG9nKHN0b3JhZ2UpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgYW4gaXRlbSB0byB0aGUgc3RvcmFnZS5cbiAgICogQHBhcmFtIGtleSBUaGUgaXRlbSdzIGtleVxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGJlIHN0b3JlZFxuICAgKiBAcGFyYW0gZGVib3VuY2UgVGhlIGRlYm91bmNlIHRpbWUgKGRlZmF1bHQ6IDUwMCkgdG8gcmVkdWNlIGlkZW50aWNhbCBzdG9yYWdlIGNhbGxzXG4gICAqIEByZXR1cm5zIFJlc29sdmVzIHRydWUgaWYgc2V0dGluZyB0aGUgaXRlbSBzdWNjZWVkZWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIGRlYm91bmNlOiBudW1iZXIgPSA1MDApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAoIWRlYm91bmNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5pdGVtc01hcC5oYXMoa2V5KSkge1xuICAgICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3QoKTtcbiAgICAgICAgc3ViamVjdC5waXBlKGRlYm91bmNlVGltZShkZWJvdW5jZSksIHN3aXRjaE1hcCh2YWwgPT4gdGhpcy5zdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWwpKSkuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuaXRlbXNNYXAuc2V0KGtleSwgc3ViamVjdCk7XG4gICAgICB9XG4gICAgICB0aGlzLml0ZW1zTWFwLmdldChrZXkpLm5leHQodmFsdWUpO1xuICAgICAgcmV0dXJuIG9ic2VydmFibGVPZih0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgc3RvcmVkIGl0ZW0gYnkgaXRzIGtleS5cbiAgICogQHBhcmFtIGtleSBUaGUgaXRlbSdzIGtleVxuICAgKiBAcmV0dXJucyBUaGUgaXRlbSdzIHZhbHVlIGlmIHRoZSBrZXkgZXhpc3RzLCBudWxsIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0SXRlbShrZXkpXG4gICAgICAucGlwZShtYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAvLyBJbmRleGVkREIgaXNzdWUgYWZ0ZXIgdXBkYXRlICh0cmFuc2Zvcm0gd3JhcHBlZCBpdGVtcylcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGl0ZW0gfHwge30pLmpvaW4oKSA9PT0gJ3ZhbHVlJyA/IGl0ZW0udmFsdWUgOiBpdGVtO1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYW4gaXRlbSBmcm9tIHRoZSBzdG9yYWdlLlxuICAgKiBAcGFyYW0ga2V5IFRoZSBpdGVtJ3Mga2V5XG4gICAqIEByZXR1cm5zIFJlc29sdmVzIHRydWUgaWYgcmVtb3ZpbmcgdGhlIGl0ZW0gc3VjY2VlZGVkLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHB1YmxpYyByZW1vdmVJdGVtKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBhbGwgaXRlbXMgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAqIEBwYXJhbSBmaWx0ZXIgb3B0aW9uYWwgLSBEZWxldGUgYWxsIGtleXMgdGhhdCBwYXNzIHRocm91Z2ggZmlsdGVyXG4gICAqIEByZXR1cm5zIFJlc29sdmVzIHRydWUgaWYgY2xlYXJpbmcgYWxsIGl0ZW1zIHN1Y2NlZWRlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBwdWJsaWMgY2xlYXIoZmlsdGVyPzogKGtleSkgPT4gYm9vbGVhbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBmaWx0ZXJcbiAgICAgID8gdGhpcy5nZXRTdG9yYWdlS2V5cygpLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKChrZXlzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsaXN0ID0ga2V5cy5maWx0ZXIoKGspID0+IGZpbHRlcihrKSkubWFwKChrKSA9PiB0aGlzLnJlbW92ZUl0ZW0oaykpO1xuICAgICAgICAgICAgcmV0dXJuIGxpc3QubGVuZ3RoID8gZm9ya0pvaW4obGlzdCkucGlwZShtYXAoKCkgPT4gdHJ1ZSkpIDogb2YodHJ1ZSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgOiB0aGlzLnN0b3JhZ2UuY2xlYXIoKTtcbiAgfVxuXG4gIGdldFN0b3JhZ2VLZXlzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZ1tdPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgIGNvbnN0IGtleXMgPSBbXTtcbiAgICAgIHRoaXMuc3RvcmFnZU1hcC5rZXlzKCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGtleSkgPT4ga2V5cy5wdXNoKGtleSksXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiBvYnNlcnZlci5uZXh0KGtleXMpXG4gICAgICB9KTtcbiAgICB9KS5waXBlKGZpcnN0KCkpO1xuICB9XG5cbiAgZ2V0U3RvcmFnZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmdldFN0b3JhZ2VLZXlzKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoa2V5cykgPT5cbiAgICAgICAga2V5cy5sZW5ndGhcbiAgICAgICAgICA/IGZvcmtKb2luKFxuICAgICAgICAgICAgICBVdGlscy5hcnJheVRvT2JqZWN0KFxuICAgICAgICAgICAgICAgIGtleXMsXG4gICAgICAgICAgICAgICAgKG8pID0+IG8sXG4gICAgICAgICAgICAgICAgKGspID0+IHRoaXMuZ2V0SXRlbShrKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBvZih7fSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgc2V0U3RvcmFnZShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBmb3JrSm9pbihPYmplY3Qua2V5cyhvcHRpb25zIHx8IHt9KS5tYXAoKGspID0+IHRoaXMuc2V0SXRlbShrLCBvcHRpb25zW2tdKSkpO1xuICB9XG59XG4iXX0=
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWNhY2hlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lby1zZGsvY29yZS9zcmMvbGliL3NlcnZpY2UvY2FjaGUvYXBwLWNhY2hlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQVksTUFBTSxNQUFNLENBQUM7QUFFdEYsT0FBTyxFQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRXZDOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sZUFBZTtJQWlCMUIsWUFBc0IsT0FBcUIsRUFBVSxVQUFzQjtRQUFyRCxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWYzRTs7V0FFRztRQUNJLHNCQUFpQixHQUFHLHFDQUFxQyxDQUFDO1FBQ2pFOztXQUVHO1FBQ0ksVUFBSyxHQUFHLDBCQUEwQixDQUFDO1FBQzFDOztXQUVHO1FBQ0kscUJBQWdCLEdBQUcsc0NBQXNDLENBQUM7UUFFekQsYUFBUSxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO1FBR2pELGdGQUFnRjtRQUNoRixNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLE9B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VTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiBhcyBvYnNlcnZhYmxlT2YsIG9mLCBmb3JrSm9pbiwgZnJvbUV2ZW50fSBmcm9tICdyeGpzJztcbmltcG9ydCB7TG9jYWxTdG9yYWdlLCBTdG9yYWdlTWFwfSBmcm9tICdAbmd4LXB3YS9sb2NhbC1zdG9yYWdlJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lLCBzd2l0Y2hNYXAsIG1hcCwgZmlyc3R9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuXG4vKipcbiAqIFRoZSBhcHBzIGNlbnRyYWwgY2FjaGluZyBzZXJ2aWNlLiBJdCB3aWxsIHByb3ZpZGUgdGhlIGFwcCB3aXRoIGFuIGVhc3kgdG8gdXNlIGNhY2hlIHRoYXRcbiAqIGlzIGF3YXJlIG9mIHRoZSBwbGF0Zm9ybSBpdCBpcyBydW5uaW5nIG9uLiBTbyBpdCBhYnN0cmFjdHMgdGhlIHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uc1xuICogb2YgYSBjYWNoZSBmcm9tIHRoZSBhcHBsaWNhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ2FjaGVTZXJ2aWNlIHtcblxuICAvKipcbiAgICogS2V5IGZvciBzdG9yaW5nIHN5c3RlbSBkZWZpbml0aW9uXG4gICAqL1xuICBwdWJsaWMgU1lTVEVNX0RFRklOSVRJT04gPSAnZW8uZnJhbWV3b3JrLmNhY2hlLnN5c3RlbWRlZmluaXRpb24nO1xuICAvKipcbiAgICogS2V5IGZvciBzdG9yaW5nIHN5c3RlbSBkZWZpbml0aW9uXG4gICAqL1xuICBwdWJsaWMgSE9TVFMgPSAnZW8uZnJhbWV3b3JrLmNhY2hlLmhvc3RzJztcbiAgLyoqXG4gICAqIEtleSBmb3Igc3RvcmluZyBsb2NhdGlvbiBoaXN0b3J5XG4gICAqL1xuICBwdWJsaWMgTE9DQVRJT05fSElTVE9SWSA9ICdlby5mcmFtZXdvcmsuY2FjaGUubG9jYXRpb25zLmhpc3RvcnknO1xuXG4gIHByaXZhdGUgaXRlbXNNYXAgPSBuZXcgTWFwPHN0cmluZywgU3ViamVjdDxhbnk+PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzdG9yYWdlOiBMb2NhbFN0b3JhZ2UsIHByaXZhdGUgc3RvcmFnZU1hcDogU3RvcmFnZU1hcCkge1xuICAgIC8vIEluZGV4ZWREQiBpc3N1ZSBhZnRlciB1cGRhdGUgLSByZWZyZXNoIGZ1bmN0aW9uICh0cmFuc2Zvcm0gYWxsIHdyYXBwZWQgaXRlbXMpXG4gICAgd2luZG93WydfbmdTdG9yYWdlUmVmcmVzaCddID0gKCkgPT4gdGhpcy5nZXRTdG9yYWdlKCkuc3Vic2NyaWJlKHN0b3JhZ2UgPT4gdGhpcy5zZXRTdG9yYWdlKHN0b3JhZ2UpLnN1YnNjcmliZSgpICYmIGNvbnNvbGUubG9nKHN0b3JhZ2UpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZXMgYW4gaXRlbSB0byB0aGUgc3RvcmFnZS5cbiAgICogQHBhcmFtIGtleSBUaGUgaXRlbSdzIGtleVxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGJlIHN0b3JlZFxuICAgKiBAcGFyYW0gZGVib3VuY2UgVGhlIGRlYm91bmNlIHRpbWUgKGRlZmF1bHQ6IDUwMCkgdG8gcmVkdWNlIGlkZW50aWNhbCBzdG9yYWdlIGNhbGxzXG4gICAqIEByZXR1cm5zIFJlc29sdmVzIHRydWUgaWYgc2V0dGluZyB0aGUgaXRlbSBzdWNjZWVkZWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnksIGRlYm91bmNlOiBudW1iZXIgPSA1MDApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAoIWRlYm91bmNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5pdGVtc01hcC5oYXMoa2V5KSkge1xuICAgICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3QoKTtcbiAgICAgICAgc3ViamVjdC5waXBlKGRlYm91bmNlVGltZShkZWJvdW5jZSksIHN3aXRjaE1hcCh2YWwgPT4gdGhpcy5zdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWwpKSkuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuaXRlbXNNYXAuc2V0KGtleSwgc3ViamVjdCk7XG4gICAgICB9XG4gICAgICB0aGlzLml0ZW1zTWFwLmdldChrZXkpLm5leHQodmFsdWUpO1xuICAgICAgcmV0dXJuIG9ic2VydmFibGVPZih0cnVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgc3RvcmVkIGl0ZW0gYnkgaXRzIGtleS5cbiAgICogQHBhcmFtIGtleSBUaGUgaXRlbSdzIGtleVxuICAgKiBAcmV0dXJucyBUaGUgaXRlbSdzIHZhbHVlIGlmIHRoZSBrZXkgZXhpc3RzLCBudWxsIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIGdldEl0ZW0oa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0SXRlbShrZXkpXG4gICAgICAucGlwZShtYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAvLyBJbmRleGVkREIgaXNzdWUgYWZ0ZXIgdXBkYXRlICh0cmFuc2Zvcm0gd3JhcHBlZCBpdGVtcylcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGl0ZW0gfHwge30pLmpvaW4oKSA9PT0gJ3ZhbHVlJyA/IGl0ZW0udmFsdWUgOiBpdGVtO1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYW4gaXRlbSBmcm9tIHRoZSBzdG9yYWdlLlxuICAgKiBAcGFyYW0ga2V5IFRoZSBpdGVtJ3Mga2V5XG4gICAqIEByZXR1cm5zIFJlc29sdmVzIHRydWUgaWYgcmVtb3ZpbmcgdGhlIGl0ZW0gc3VjY2VlZGVkLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHB1YmxpYyByZW1vdmVJdGVtKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyBhbGwgaXRlbXMgZnJvbSBsb2NhbCBzdG9yYWdlXG4gICAqIEBwYXJhbSBmaWx0ZXIgb3B0aW9uYWwgLSBEZWxldGUgYWxsIGtleXMgdGhhdCBwYXNzIHRocm91Z2ggZmlsdGVyXG4gICAqIEByZXR1cm5zIFJlc29sdmVzIHRydWUgaWYgY2xlYXJpbmcgYWxsIGl0ZW1zIHN1Y2NlZWRlZCwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBwdWJsaWMgY2xlYXIoZmlsdGVyPzogKGtleSkgPT4gYm9vbGVhbik6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBmaWx0ZXJcbiAgICAgID8gdGhpcy5nZXRTdG9yYWdlS2V5cygpLnBpcGUoXG4gICAgICAgICAgc3dpdGNoTWFwKChrZXlzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsaXN0ID0ga2V5cy5maWx0ZXIoKGspID0+IGZpbHRlcihrKSkubWFwKChrKSA9PiB0aGlzLnJlbW92ZUl0ZW0oaykpO1xuICAgICAgICAgICAgcmV0dXJuIGxpc3QubGVuZ3RoID8gZm9ya0pvaW4obGlzdCkucGlwZShtYXAoKCkgPT4gdHJ1ZSkpIDogb2YodHJ1ZSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgOiB0aGlzLnN0b3JhZ2UuY2xlYXIoKTtcbiAgfVxuXG4gIGdldFN0b3JhZ2VLZXlzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPHN0cmluZ1tdPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgIGNvbnN0IGtleXMgPSBbXTtcbiAgICAgIHRoaXMuc3RvcmFnZU1hcC5rZXlzKCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGtleSkgPT4ga2V5cy5wdXNoKGtleSksXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiBvYnNlcnZlci5uZXh0KGtleXMpXG4gICAgICB9KTtcbiAgICB9KS5waXBlKGZpcnN0KCkpO1xuICB9XG5cbiAgZ2V0U3RvcmFnZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmdldFN0b3JhZ2VLZXlzKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoa2V5cykgPT5cbiAgICAgICAga2V5cy5sZW5ndGhcbiAgICAgICAgICA/IGZvcmtKb2luKFxuICAgICAgICAgICAgICBVdGlscy5hcnJheVRvT2JqZWN0KFxuICAgICAgICAgICAgICAgIGtleXMsXG4gICAgICAgICAgICAgICAgKG8pID0+IG8sXG4gICAgICAgICAgICAgICAgKGspID0+IHRoaXMuZ2V0SXRlbShrKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBvZih7fSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgc2V0U3RvcmFnZShvcHRpb25zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBmb3JrSm9pbihPYmplY3Qua2V5cyhvcHRpb25zIHx8IHt9KS5tYXAoKGspID0+IHRoaXMuc2V0SXRlbShrLCBvcHRpb25zW2tdKSkpO1xuICB9XG5cbiAgcmVwbGFjZVN0b3JhZ2Uoc2V0dGluZ3M6IGFueSkge1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHNldHRpbmdzKSkge1xuICAgICAgdGhpcy5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -74,6 +74,17 @@ export class LocalStorageService {
|
|
|
74
74
|
return false;
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
+
getStorage() {
|
|
78
|
+
return this.storage;
|
|
79
|
+
}
|
|
80
|
+
setStorage(settings) {
|
|
81
|
+
for (const [key, value] of Object.entries(settings)) {
|
|
82
|
+
this.storage.setItem(key, value);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
isEmpty() {
|
|
86
|
+
return this.storage && this.storage.length === 0;
|
|
87
|
+
}
|
|
77
88
|
/**
|
|
78
89
|
* Checks if the Browser Supports Local Storage
|
|
79
90
|
*/
|
|
@@ -97,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
97
108
|
providedIn: 'root'
|
|
98
109
|
}]
|
|
99
110
|
}], ctorParameters: function () { return []; } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3N0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBRXpDOztHQUVHO0FBQ0gsSUFBSSxRQUFRLENBQUM7QUFHYjs7R0FFRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFJOUI7UUFFRSxJQUFJLFFBQVEsRUFBRTtZQUNaLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDakI7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0UsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsT0FBTyxDQUFDLEdBQVcsRUFBRSxLQUFVO1FBQzdCLElBQUksT0FBTyxHQUFHLEtBQUssV0FBVyxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRTtZQUM5RCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsR0FBVztRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXhDLElBQUksS0FBSyxFQUFFO1lBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxHQUFXO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLE1BQWlDO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLEdBQVc7UUFDdEIsSUFBSSxPQUFPLEdBQUcsS0FBSyxXQUFXLEVBQUU7WUFDOUIsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBYTtRQUN0QixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssdUJBQXVCO1FBQzdCLElBQUk7WUFDRixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7O2dIQXpHVSxtQkFBbUI7b0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xubGV0IGluc3RhbmNlO1xuXG5cbi8qKlxuICogV3JhcHBlciBmb3IgYWNjZXNzaW5nIGJyb3dzZXJzIGxvY2FsIHN0b3JhZ2UuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZVNlcnZpY2Uge1xuXG4gIHByaXZhdGUgc3RvcmFnZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuXG4gICAgaWYgKGluc3RhbmNlKSB7XG4gICAgICBpbnN0YW5jZSA9IHRoaXM7XG4gICAgfVxuICAgIHRoaXMuc3RvcmFnZSA9IHRoaXMuaXNMb2NhbFN0b3JhZ2VBdmFpbGFibGUoKSA/IHdpbmRvdy5sb2NhbFN0b3JhZ2UgOiBudWxsO1xuICAgIHJldHVybiBpbnN0YW5jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBwcm92aWRlZCB2YWx1ZSB0byB0aGUgbG9jYWwgc3RvcmFnZVxuICAgKlxuICAgKiBAcGFyYW0ga2V5IFRoZSBpdGVtcyBrZXlcbiAgICogQHBhcmFtIHZhbHVlIFRoZSBpdGVtcyB2YWx1ZVxuICAgKi9cbiAgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGJvb2xlYW4gfCB2b2lkIHtcbiAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3VuZGVmaW5lZCcgfHwgdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShrZXksIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgdmFsdWUgYnkga2V5IGZyb20gbG9jYWwgc3RvcmFnZSBhbmQgcGFyc2VzIGl0XG4gICAqXG4gICAqIEBwYXJhbSBrZXkgVGhlIGtleSBvZiB0aGUgaXRlbSB0byBiZSByZXRyaWV2ZWRcbiAgICogQHJldHVybiBUaGUgc3RvcmVkIHZhbHVlXG4gICAqL1xuICBnZXRJdGVtKGtleTogc3RyaW5nKTogYW55IHtcbiAgICB0aGlzLmlzS2V5RGVmaW5lZChrZXkpO1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5zdG9yYWdlLmdldEl0ZW0oa2V5KTtcblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIEtleSBpcyBhdmFpbGFibGUgaW4gTG9jYWwgU3RvcmFnZVxuICAgKiBAcGFyYW0ga2V5IFRoZSBpdGVtcyBrZXlcbiAgICogQHJldHVybiBUcnVlIGlmIGEgdmFsdWUgZXhpc3RzIGZvciB0aGUgZ2l2ZW4ga2V5LCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIGhhc0l0ZW0oa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aGlzLmlzS2V5RGVmaW5lZChrZXkpO1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0SXRlbShrZXkpID09PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBrZXkgdmFsdWUgZnJvbSBMb2NhbCBTdG9yYWdlIGJ5IHByb3ZpZGVkIEtleVxuICAgKiBAcGFyYW0ga2V5IFRoZSBpdGVtcyBrZXlcbiAgICovXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLmlzS2V5RGVmaW5lZChrZXkpO1xuICAgIHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIHRoZSBMb2NhbCBTdG9yYWdlXG4gICAqL1xuICBjbGVhcihmaWx0ZXI/OiAoa2V5OiBzdHJpbmcpID0+IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gZmlsdGVyID8gT2JqZWN0LmtleXModGhpcy5zdG9yYWdlKS5mb3JFYWNoKGtleSA9PiBmaWx0ZXIoa2V5KSAmJiB0aGlzLnJlbW92ZUl0ZW0oa2V5KSkgOiB0aGlzLnN0b3JhZ2UuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSBLZXkgaXMgZGVmaW5lZCBpbiBsb2NhbCBzdG9yYWdlXG4gICAqIEBwYXJhbSBrZXkgVGhlIGl0ZW1zIGtleVxuICAgKiBAcmV0dXJuIFRydWUgaWYga2V5IGV5aXN0cywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICBpc0tleURlZmluZWQoa2V5OiBzdHJpbmcpOiBib29sZWFuIHwgdm9pZCB7XG4gICAgaWYgKHR5cGVvZiBrZXkgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RvcmFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlO1xuICB9XG5cbiAgc2V0U3RvcmFnZShzZXR0aW5nczogYW55KSB7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoc2V0dGluZ3MpKSB7XG4gICAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JhZ2UgJiYgdGhpcy5zdG9yYWdlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIEJyb3dzZXIgU3VwcG9ydHMgTG9jYWwgU3RvcmFnZVxuICAgKi9cbiAgcHJpdmF0ZSBpc0xvY2FsU3RvcmFnZUF2YWlsYWJsZSgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RvcmFnZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2U7XG4gICAgICBzdG9yYWdlLnNldEl0ZW0oJ3Rlc3QnLCAndGVzdCcpO1xuICAgICAgc3RvcmFnZS5yZW1vdmVJdGVtKCd0ZXN0Jyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -213,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
213
213
|
providedIn: 'root'
|
|
214
214
|
}]
|
|
215
215
|
}], ctorParameters: function () { return [{ type: i1.BackendService }, { type: i2.SystemService }, { type: i3.SearchService }, { type: i4.EventService }]; } });
|
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJpZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VvLXNkay9jb3JlL3NyYy9saWIvc2VydmljZS9zdG9yZWQtcXVlcmllcy9zdG9yZWQtcXVlcmllcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQWEsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSWpELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUtqRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQUU1Qzs7Ozs7Ozs7O0dBU0c7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBb0IvQjs7T0FFRztJQUNILFlBQW9CLE9BQXVCLEVBQ2pDLE1BQXFCLEVBQ3JCLGFBQTRCLEVBQzVCLFlBQTBCO1FBSGhCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ2pDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFmNUIsa0JBQWEsR0FBOEI7WUFDakQsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBQ00sd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQTRCLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRzs7V0FFRztRQUNJLG1CQUFjLEdBQTBDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQVVyRyxZQUFZO2FBQ1QsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7YUFDckIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElB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QyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDekQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksRUFBRSxHQUFHLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCOztlQUVHO1lBQ0gsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNwRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsc0JBQXNCLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDakQsT0FBTztZQUNMLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxRQUFRO1lBQ25DLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxRQUFRO1lBQ3BDLEtBQUssRUFBRSxLQUFLO1lBQ1osS0FBSyxFQUFFLEtBQUs7WUFDWixJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUM7SUFDSixDQUFDOztBQWxORDs7R0FFRztBQUNJLDJCQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztBQUNuQzs7R0FFRztBQUNJLDZCQUFRLEdBQUcsVUFBVSxDQUFDO2lIQVRsQixvQkFBb0I7cUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3RhcCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtCYWNrZW5kU2VydmljZX0gZnJvbSAnLi4vYmFja2VuZC9iYWNrZW5kLnNlcnZpY2UnO1xuaW1wb3J0IHtTeXN0ZW1TZXJ2aWNlfSBmcm9tICcuLi9zeXN0ZW0vc3lzdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHtTdG9yZWRRdWVyaWVzU3Vic2NyaXB0aW9ufSBmcm9tICcuL3N0b3JlZC1xdWVyaWVzLXN1YnNjcmlwdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtTdG9yZWRRdWVyeX0gZnJvbSAnLi9zdG9yZWQtcXVlcnkubW9kZWwnO1xuaW1wb3J0IHtTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWFyY2hGaWx0ZXJ9IGZyb20gJy4uL3NlYXJjaC9zZWFyY2gtcXVlcnkubW9kZWwnO1xuaW1wb3J0IHtSYW5nZVZhbHVlfSBmcm9tICcuLi8uLi9tb2RlbC9yYW5nZS12YWx1ZS5tb2RlbCc7XG5pbXBvcnQge0V2ZW50U2VydmljZX0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtFbmFpb0V2ZW50fSBmcm9tICcuLi9ldmVudHMvZXZlbnRzJztcblxuLyoqXG4gKiBTZXJ2aWNlIG1hbmFnaW5nIHN0b3JlZCBxdWVyaWVzLlxuICogVG8gdXNlIGl0IGp1c3QgY2FsbCBgZ2V0U3RvcmVkUXVlcmllcyRgIHdoaWNoIHdpbGwgcmV0dXJuIHRoZSBjdXJyZW50XG4gKiBzdGF0ZSBvZiB0aGUgbGlzdCBvZiBzdG9yZWQgcXVlcmllcy4gVGhpcyBvbmUgaXMgYSBsb25nIHRlcm0gb2JzZXJ2YWJsZSwgc28gYmFyZSBpbiBtaW5kXG4gKiB0byB1bnN1YnNjcmliZSBmcm9tIGl0IHdoZW4geW91IGRvbid0IG5lZWQgaXQgYW55IG1vcmUgKG9yIHlvdXIgY29tcG9uZW50IGdldHMgZGVzdHJveWVkKS5cbiAqXG4gKiBFdmVyeSBjaGFuZ2UgdG8gdGhlIGxpc3Qgb2Ygc3RvcmVkIHF1ZXJpZXMgaXMgZG9uZSB1c2luZyB0aGlzIHNlcnZpY2UuIFNvIGRvbid0IGNoYW5nZSB0aGVcbiAqIHJldHJpZXZlZCBsaXN0IGxvY2FsbHkgaW5zaWRlIG9mIHlvdXIgY29tcG9uZW50LiBPdGhlcndpc2Ugb3RoZXIgY29tcG9uZW50cyB0aGF0IHN1YnNjcmliZVxuICogdG8gdGhlIHN0b3JlZCBxdWVyeSBsaXN0IHdpbGwgbm90IGJlIG5vdGlmaWVkLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTdG9yZWRRdWVyaWVzU2VydmljZSB7XG5cbiAgLyoqXG4gICAqIFRlbXBvcmFyeSBJRCBmb3IgbmV3IHN0b3JlZCBxdWVyaWVzXG4gICAqL1xuICBzdGF0aWMgSURfTkVXID0gU3RvcmVkUXVlcnkuSURfTkVXO1xuICAvKipcbiAgICogcW5hbWUgb2YgZnVsbHRleHQgcGFyYW1zXG4gICAqL1xuICBzdGF0aWMgRlVMTFRFWFQgPSAnZnVsbHRleHQnO1xuXG4gIHByaXZhdGUgc3RvcmVkUXVlcmllczogU3RvcmVkUXVlcmllc1N1YnNjcmlwdGlvbiA9IHtcbiAgICBxdWVyaWVzOiBbXVxuICB9O1xuICBwcml2YXRlIHN0b3JlZFF1ZXJpZXNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0b3JlZFF1ZXJpZXNTdWJzY3JpcHRpb24+KHRoaXMuc3RvcmVkUXVlcmllcyk7XG4gIC8qKlxuICAgKiBTdHJlYW0gb2Ygc3RvcmVkIHF1ZXJpZXNcbiAgICovXG4gIHB1YmxpYyBzdG9yZWRRdWVyaWVzJDogT2JzZXJ2YWJsZTxTdG9yZWRRdWVyaWVzU3Vic2NyaXB0aW9uPiA9IHRoaXMuc3RvcmVkUXVlcmllc1NvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSkge1xuXG4gICAgZXZlbnRTZXJ2aWNlXG4gICAgICAub24oRW5haW9FdmVudC5MT0dPVVQpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xlYXIoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgbGlzdCBvZiBzdG9yZWQgcXVlcmllcy5cbiAgICovXG4gIGNsZWFyKCkge1xuICAgIHRoaXMuc3RvcmVkUXVlcmllcyA9IHtxdWVyaWVzOiBbXX07XG4gICAgdGhpcy5zdG9yZWRRdWVyaWVzU291cmNlLm5leHQodGhpcy5zdG9yZWRRdWVyaWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB5b3Ugd2l0aCBhIGBsb25nIHRlcm0gb2JzZXJ2YWJsZWAgaG9sZGluZyB0aGUgc3RvcmVkIHF1ZXJpZXMuXG4gICAqL1xuICBnZXRTdG9yZWRRdWVyaWVzJCgpOiBPYnNlcnZhYmxlPFN0b3JlZFF1ZXJpZXNTdWJzY3JpcHRpb24+IHtcbiAgICBpZiAoIXRoaXMuc3RvcmVkUXVlcmllcy5xdWVyaWVzLmxlbmd0aCkge1xuICAgICAgdGhpcy5yZWZyZXNoU3RvcmVkUXVlcmllcygpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdG9yZWRRdWVyaWVzJDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaWxsIHJlLWZldGNoIHRoZSBkYXRhIGZyb20gdGhlIGJhY2tlbmQuIFRoaXMgd2lsbCBwcm9wYWdhdGUgYVxuICAgKiBuZXcgdmFsdWUgdG8geW91ciBzdWJzY3JpcHRpb24uXG4gICAqL1xuICByZWZyZXNoU3RvcmVkUXVlcmllcygpOiB2b2lkIHtcbiAgICB0aGlzLmJhY2tlbmRcbiAgICAgIC5nZXRKc29uKCcvc3RvcmVkcXVlcmllcz9zaXplPTk5OTknLCB0aGlzLmJhY2tlbmQuZ2V0U2VhcmNoQmFzZSgpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChzUXVlcmllcyA9PiB7XG4gICAgICAgICAgcmV0dXJuIChzUXVlcmllcyB8fCBbXSlcbiAgICAgICAgICAgIC5tYXAocyA9PiB7XG4gICAgICAgICAgICAgIGxldCBzcSA9IG5ldyBTdG9yZWRRdWVyeShzKTtcbiAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAqIHNldCB1cCBzZWFyY2ggcXVlcnkgcHJvcGVydGllcyBmb3IgdGhlIHN0b3JlZCBxdWVyeVxuICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgc3Euc2V0UXVlcnkodGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkocy5xdWVyeSkpO1xuICAgICAgICAgICAgICByZXR1cm4gc3E7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzID0ge3F1ZXJpZXM6IHJlc307XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NvdXJjZS5uZXh0KHRoaXMuc3RvcmVkUXVlcmllcyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBzdG9yZWQgcXVlcmllcyBmcm9tIHRoZSBiYWNrZW5kIGFuZCBwcm9wYWdhdGVzIGEgbmV3XG4gICAqIHZhbHVlIHRvIHRoZSBtYWluIHN1YmplY3QuXG4gICAqL1xuICBmZXRjaFN0b3JlZFF1ZXJpZXMoKTogT2JzZXJ2YWJsZTxTdG9yZWRRdWVyeVtdPiB7XG5cbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbignL3N0b3JlZHF1ZXJpZXM/c2l6ZT05OTk5JywgdGhpcy5iYWNrZW5kLmdldFNlYXJjaEJhc2UoKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoc1F1ZXJpZXMgPT4ge1xuICAgICAgICAgIHJldHVybiAoc1F1ZXJpZXMgfHwgW10pXG4gICAgICAgICAgICAubWFwKHMgPT4ge1xuICAgICAgICAgICAgICBsZXQgc3EgPSBuZXcgU3RvcmVkUXVlcnkocyk7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBzZXQgdXAgc2VhcmNoIHF1ZXJ5IHByb3BlcnRpZXMgZm9yIHRoZSBzdG9yZWQgcXVlcnlcbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIHNxLnNldFF1ZXJ5KHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHMucXVlcnkpKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHNxO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YXAocmVzID0+IHtcbiAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJpZXMgPSB7cXVlcmllczogcmVzfTtcbiAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTb3VyY2UubmV4dCh0aGlzLnN0b3JlZFF1ZXJpZXMpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIG5ldyBTdG9yZWQgUXVlcnlcbiAgICpcbiAgICogQHBhcmFtIFN0b3JlZFF1ZXJ5IHN0b3JlZFF1ZXJ5XG4gICAqIEByZXR1cm4gT2JzZXJ2YWJsZTxTdG9yZWRRdWVyeT5cbiAgICovXG4gIHByaXZhdGUgc2F2ZU5ld1N0b3JlZFF1ZXJ5KHN0b3JlZFF1ZXJ5OiBTdG9yZWRRdWVyeSk6IE9ic2VydmFibGU8U3RvcmVkUXVlcnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAucG9zdCgnL3N0b3JlZHF1ZXJpZXMnLCBzdG9yZWRRdWVyeS50b1BlcnNpc3RhYmxlU3RvcmVkUXVlcnkoKSwgdGhpcy5iYWNrZW5kLmdldFNlYXJjaEJhc2UoKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICBsZXQgdXBkYXRlZFF1ZXJ5ID0gbmV3IFN0b3JlZFF1ZXJ5KHJlcyk7XG4gICAgICAgICAgdXBkYXRlZFF1ZXJ5LnNldFF1ZXJ5KHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHJlcy5xdWVyeSkpO1xuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcmllcy5zZWxlY3QgPSB1cGRhdGVkUXVlcnkuaWQ7XG4gICAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzLnF1ZXJpZXMucHVzaCh1cGRhdGVkUXVlcnkpO1xuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NvdXJjZS5uZXh0KHRoaXMuc3RvcmVkUXVlcmllcyk7XG5cbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFF1ZXJ5O1xuICAgICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIFN0b3JlZCBRdWVyeVxuICAgKlxuICAgKiBAcGFyYW0gU3RvcmVkUXVlcnkgc3RvcmVkUXVlcnlcbiAgICogQHJldHVybiBPYnNlcnZhYmxlPFN0b3JlZFF1ZXJ5PlxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVTdG9yZWRRdWVyeShzdG9yZWRRdWVyeTogU3RvcmVkUXVlcnkpOiBPYnNlcnZhYmxlPFN0b3JlZFF1ZXJ5PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLnB1dCgnL3N0b3JlZHF1ZXJpZXMnLCBzdG9yZWRRdWVyeS50b1BlcnNpc3RhYmxlU3RvcmVkUXVlcnkoKSwgdGhpcy5iYWNrZW5kLmdldFNlYXJjaEJhc2UoKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkUXVlcnkgPSBuZXcgU3RvcmVkUXVlcnkocmVzKTtcbiAgICAgICAgICB1cGRhdGVkUXVlcnkuc2V0UXVlcnkodGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkocmVzLnF1ZXJ5KSk7XG4gICAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzLnNlbGVjdCA9IHVwZGF0ZWRRdWVyeS5pZDtcbiAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJpZXMucXVlcmllcyA9IHRoaXMuc3RvcmVkUXVlcmllcy5xdWVyaWVzLmZpbHRlcihxID0+IHEuaWQgIT09IHVwZGF0ZWRRdWVyeS5pZCk7XG4gICAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzLnF1ZXJpZXMucHVzaCh1cGRhdGVkUXVlcnkpO1xuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NvdXJjZS5uZXh0KHRoaXMuc3RvcmVkUXVlcmllcyk7XG5cbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFF1ZXJ5O1xuICAgICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBhIHN0b3JlZCBxdWVyeS4gRGVwZW5kaW5nIG9uIHdoZXRoZXIgb3Igbm90IHRoZSBwcm92aWRlZCBxdWVyeSBpcyBhIG5ldyBvbmUgb3Igbm90XG4gICAqIHRoaXMgd2lsbCBlaXRoZXIgdXBkYXRlIG9yIGNyZWF0ZSBhIG5ldyBxdWVyeS5cbiAgICpcbiAgICogQHBhcmFtIHN0b3JlZFF1ZXJ5IFN0b3JlZCBxdWVyeSB0byBiZSBzYXZlZFxuICAgKi9cbiAgc2F2ZVN0b3JlZFF1ZXJ5KHN0b3JlZFF1ZXJ5OiBTdG9yZWRRdWVyeSk6IE9ic2VydmFibGU8U3RvcmVkUXVlcnk+IHtcblxuICAgIGlmIChzdG9yZWRRdWVyeS5pZCA9PT0gU3RvcmVkUXVlcmllc1NlcnZpY2UuSURfTkVXKSB7XG4gICAgICByZXR1cm4gdGhpcy5zYXZlTmV3U3RvcmVkUXVlcnkoc3RvcmVkUXVlcnkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVTdG9yZWRRdWVyeShzdG9yZWRRdWVyeSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBTdG9yZWQgUXVlcnkgYmUgcHJvdmlkZWQgSURcbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBzdG9yZWQgcXVlcnkgdG8gYmUgcmVtb3ZlZFxuICAgKi9cbiAgcmVtb3ZlU3RvcmVkUXVlcnkoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmRlbChgL3N0b3JlZHF1ZXJpZXMvJHtpZH1gLCB0aGlzLmJhY2tlbmQuZ2V0U2VhcmNoQmFzZSgpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzLnNlbGVjdCA9IG51bGw7XG4gICAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzLnF1ZXJpZXMgPSB0aGlzLnN0b3JlZFF1ZXJpZXMucXVlcmllcy5maWx0ZXIocSA9PiBxLmlkICE9PSBpZCk7XG4gICAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzU291cmNlLm5leHQodGhpcy5zdG9yZWRRdWVyaWVzKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFN0b3JlZFF1ZXJ5IHdpdGggdGhlIHByb3ZpZGVkIElkXG4gICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgc3RvcmVkIHF1ZXJ5IHRvIGJlIGZldGNoZWRcbiAgICovXG4gIGdldFN0b3JlZFF1ZXJ5KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFN0b3JlZFF1ZXJ5PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldChgL3N0b3JlZHF1ZXJpZXMvJHtpZH1gLCB0aGlzLmJhY2tlbmQuZ2V0U2VhcmNoQmFzZSgpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChzID0+IHtcbiAgICAgICAgICBsZXQgc3EgPSBuZXcgU3RvcmVkUXVlcnkocyk7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogc2V0IHVwIHNlYXJjaCBxdWVyeSBwcm9wZXJ0aWVzIGZvciB0aGUgc3RvcmVkIHF1ZXJ5XG4gICAgICAgICAgICovXG4gICAgICAgICAgc3Euc2V0UXVlcnkodGhpcy5zZWFyY2hTZXJ2aWNlLmJ1aWxkUXVlcnkocy5xdWVyeSkpO1xuICAgICAgICAgIHJldHVybiBzcTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIHBzZXVkbyBmb3JtIGVsZW1lbnQgZm9yIGEgc3RvcmVkIHF1ZXJpZXMgZnVsbHRleHQgaW5wdXQgZmllbGRcbiAgICogdG8gYmUgdXNlZCBpbnNpZGUgb2YgYSBzdG9yZWQgcXVlcnkgZm9ybS5cbiAgICpcbiAgICogQHBhcmFtIGxhYmVsIFRoZSBsYWJlbCB0byBiZSBzZXQgdG8gdGhlIGVsZW1lbnRcbiAgICogQHBhcmFtIHZhbHVlIEEgdmFsdWUgdG8gYmUgc2V0IHRvIHRoZSBlbGVtZW50XG4gICAqL1xuICBnZXRGdWxsdGV4dEZvcm1FbGVtZW50KGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogU3RvcmVkUXVlcmllc1NlcnZpY2UuRlVMTFRFWFQsXG4gICAgICBxbmFtZTogU3RvcmVkUXVlcmllc1NlcnZpY2UuRlVMTFRFWFQsXG4gICAgICBsYWJlbDogbGFiZWwsXG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICB0eXBlOiAnU1RSSU5HJ1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmVkLXF1ZXJpZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VvLXNkay9jb3JlL3NyYy9saWIvc2VydmljZS9zdG9yZWQtcXVlcmllcy9zdG9yZWQtcXVlcmllcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQWEsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSWpELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUdqRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7Ozs7OztBQUU1Qzs7Ozs7Ozs7O0dBU0c7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBb0IvQjs7T0FFRztJQUNILFlBQW9CLE9BQXVCLEVBQ2pDLE1BQXFCLEVBQ3JCLGFBQTRCLEVBQzVCLFlBQTBCO1FBSGhCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ2pDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFmNUIsa0JBQWEsR0FBOEI7WUFDakQsT0FBTyxFQUFFLEVBQUU7U0FDWixDQUFDO1FBQ00sd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQTRCLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRzs7V0FFRztRQUNJLG1CQUFjLEdBQTBDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQVVyRyxZQUFZO2FBQ1QsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7YUFDckIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElB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QyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDekQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNOLElBQUksRUFBRSxHQUFHLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCOztlQUVHO1lBQ0gsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNwRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsc0JBQXNCLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDakQsT0FBTztZQUNMLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxRQUFRO1lBQ25DLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxRQUFRO1lBQ3BDLEtBQUssRUFBRSxLQUFLO1lBQ1osS0FBSyxFQUFFLEtBQUs7WUFDWixJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUM7SUFDSixDQUFDOztBQWxORDs7R0FFRztBQUNJLDJCQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztBQUNuQzs7R0FFRztBQUNJLDZCQUFRLEdBQUcsVUFBVSxDQUFDO2lIQVRsQixvQkFBb0I7cUhBQXBCLG9CQUFvQixjQUZuQixNQUFNOzJGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3RhcCwgbWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtCYWNrZW5kU2VydmljZX0gZnJvbSAnLi4vYmFja2VuZC9iYWNrZW5kLnNlcnZpY2UnO1xuaW1wb3J0IHtTeXN0ZW1TZXJ2aWNlfSBmcm9tICcuLi9zeXN0ZW0vc3lzdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHtTdG9yZWRRdWVyaWVzU3Vic2NyaXB0aW9ufSBmcm9tICcuL3N0b3JlZC1xdWVyaWVzLXN1YnNjcmlwdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHtTdG9yZWRRdWVyeX0gZnJvbSAnLi9zdG9yZWQtcXVlcnkubW9kZWwnO1xuaW1wb3J0IHtTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi9zZWFyY2gvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtFdmVudFNlcnZpY2V9IGZyb20gJy4uL2V2ZW50cy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7RW5haW9FdmVudH0gZnJvbSAnLi4vZXZlbnRzL2V2ZW50cyc7XG5cbi8qKlxuICogU2VydmljZSBtYW5hZ2luZyBzdG9yZWQgcXVlcmllcy5cbiAqIFRvIHVzZSBpdCBqdXN0IGNhbGwgYGdldFN0b3JlZFF1ZXJpZXMkYCB3aGljaCB3aWxsIHJldHVybiB0aGUgY3VycmVudFxuICogc3RhdGUgb2YgdGhlIGxpc3Qgb2Ygc3RvcmVkIHF1ZXJpZXMuIFRoaXMgb25lIGlzIGEgbG9uZyB0ZXJtIG9ic2VydmFibGUsIHNvIGJhcmUgaW4gbWluZFxuICogdG8gdW5zdWJzY3JpYmUgZnJvbSBpdCB3aGVuIHlvdSBkb24ndCBuZWVkIGl0IGFueSBtb3JlIChvciB5b3VyIGNvbXBvbmVudCBnZXRzIGRlc3Ryb3llZCkuXG4gKlxuICogRXZlcnkgY2hhbmdlIHRvIHRoZSBsaXN0IG9mIHN0b3JlZCBxdWVyaWVzIGlzIGRvbmUgdXNpbmcgdGhpcyBzZXJ2aWNlLiBTbyBkb24ndCBjaGFuZ2UgdGhlXG4gKiByZXRyaWV2ZWQgbGlzdCBsb2NhbGx5IGluc2lkZSBvZiB5b3VyIGNvbXBvbmVudC4gT3RoZXJ3aXNlIG90aGVyIGNvbXBvbmVudHMgdGhhdCBzdWJzY3JpYmVcbiAqIHRvIHRoZSBzdG9yZWQgcXVlcnkgbGlzdCB3aWxsIG5vdCBiZSBub3RpZmllZC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3RvcmVkUXVlcmllc1NlcnZpY2Uge1xuXG4gIC8qKlxuICAgKiBUZW1wb3JhcnkgSUQgZm9yIG5ldyBzdG9yZWQgcXVlcmllc1xuICAgKi9cbiAgc3RhdGljIElEX05FVyA9IFN0b3JlZFF1ZXJ5LklEX05FVztcbiAgLyoqXG4gICAqIHFuYW1lIG9mIGZ1bGx0ZXh0IHBhcmFtc1xuICAgKi9cbiAgc3RhdGljIEZVTExURVhUID0gJ2Z1bGx0ZXh0JztcblxuICBwcml2YXRlIHN0b3JlZFF1ZXJpZXM6IFN0b3JlZFF1ZXJpZXNTdWJzY3JpcHRpb24gPSB7XG4gICAgcXVlcmllczogW11cbiAgfTtcbiAgcHJpdmF0ZSBzdG9yZWRRdWVyaWVzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTdG9yZWRRdWVyaWVzU3Vic2NyaXB0aW9uPih0aGlzLnN0b3JlZFF1ZXJpZXMpO1xuICAvKipcbiAgICogU3RyZWFtIG9mIHN0b3JlZCBxdWVyaWVzXG4gICAqL1xuICBwdWJsaWMgc3RvcmVkUXVlcmllcyQ6IE9ic2VydmFibGU8U3RvcmVkUXVlcmllc1N1YnNjcmlwdGlvbj4gPSB0aGlzLnN0b3JlZFF1ZXJpZXNTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzeXN0ZW06IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UpIHtcblxuICAgIGV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuTE9HT1VUKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsZWFyKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIGxpc3Qgb2Ygc3RvcmVkIHF1ZXJpZXMuXG4gICAqL1xuICBjbGVhcigpIHtcbiAgICB0aGlzLnN0b3JlZFF1ZXJpZXMgPSB7cXVlcmllczogW119O1xuICAgIHRoaXMuc3RvcmVkUXVlcmllc1NvdXJjZS5uZXh0KHRoaXMuc3RvcmVkUXVlcmllcyk7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgeW91IHdpdGggYSBgbG9uZyB0ZXJtIG9ic2VydmFibGVgIGhvbGRpbmcgdGhlIHN0b3JlZCBxdWVyaWVzLlxuICAgKi9cbiAgZ2V0U3RvcmVkUXVlcmllcyQoKTogT2JzZXJ2YWJsZTxTdG9yZWRRdWVyaWVzU3Vic2NyaXB0aW9uPiB7XG4gICAgaWYgKCF0aGlzLnN0b3JlZFF1ZXJpZXMucXVlcmllcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMucmVmcmVzaFN0b3JlZFF1ZXJpZXMoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVkUXVlcmllcyQ7XG4gIH1cblxuICAvKipcbiAgICogV2lsbCByZS1mZXRjaCB0aGUgZGF0YSBmcm9tIHRoZSBiYWNrZW5kLiBUaGlzIHdpbGwgcHJvcGFnYXRlIGFcbiAgICogbmV3IHZhbHVlIHRvIHlvdXIgc3Vic2NyaXB0aW9uLlxuICAgKi9cbiAgcmVmcmVzaFN0b3JlZFF1ZXJpZXMoKTogdm9pZCB7XG4gICAgdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbignL3N0b3JlZHF1ZXJpZXM/c2l6ZT05OTk5JywgdGhpcy5iYWNrZW5kLmdldFNlYXJjaEJhc2UoKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoc1F1ZXJpZXMgPT4ge1xuICAgICAgICAgIHJldHVybiAoc1F1ZXJpZXMgfHwgW10pXG4gICAgICAgICAgICAubWFwKHMgPT4ge1xuICAgICAgICAgICAgICBsZXQgc3EgPSBuZXcgU3RvcmVkUXVlcnkocyk7XG4gICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgKiBzZXQgdXAgc2VhcmNoIHF1ZXJ5IHByb3BlcnRpZXMgZm9yIHRoZSBzdG9yZWQgcXVlcnlcbiAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgIHNxLnNldFF1ZXJ5KHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHMucXVlcnkpKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHNxO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuc3RvcmVkUXVlcmllcyA9IHtxdWVyaWVzOiByZXN9O1xuICAgICAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTb3VyY2UubmV4dCh0aGlzLnN0b3JlZFF1ZXJpZXMpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgc3RvcmVkIHF1ZXJpZXMgZnJvbSB0aGUgYmFja2VuZCBhbmQgcHJvcGFnYXRlcyBhIG5ld1xuICAgKiB2YWx1ZSB0byB0aGUgbWFpbiBzdWJqZWN0LlxuICAgKi9cbiAgZmV0Y2hTdG9yZWRRdWVyaWVzKCk6IE9ic2VydmFibGU8U3RvcmVkUXVlcnlbXT4ge1xuXG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24oJy9zdG9yZWRxdWVyaWVzP3NpemU9OTk5OScsIHRoaXMuYmFja2VuZC5nZXRTZWFyY2hCYXNlKCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHNRdWVyaWVzID0+IHtcbiAgICAgICAgICByZXR1cm4gKHNRdWVyaWVzIHx8IFtdKVxuICAgICAgICAgICAgLm1hcChzID0+IHtcbiAgICAgICAgICAgICAgbGV0IHNxID0gbmV3IFN0b3JlZFF1ZXJ5KHMpO1xuICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICogc2V0IHVwIHNlYXJjaCBxdWVyeSBwcm9wZXJ0aWVzIGZvciB0aGUgc3RvcmVkIHF1ZXJ5XG4gICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICBzcS5zZXRRdWVyeSh0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeShzLnF1ZXJ5KSk7XG4gICAgICAgICAgICAgIHJldHVybiBzcTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFwKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzID0ge3F1ZXJpZXM6IHJlc307XG4gICAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzU291cmNlLm5leHQodGhpcy5zdG9yZWRRdWVyaWVzKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBuZXcgU3RvcmVkIFF1ZXJ5XG4gICAqXG4gICAqIEBwYXJhbSBTdG9yZWRRdWVyeSBzdG9yZWRRdWVyeVxuICAgKiBAcmV0dXJuIE9ic2VydmFibGU8U3RvcmVkUXVlcnk+XG4gICAqL1xuICBwcml2YXRlIHNhdmVOZXdTdG9yZWRRdWVyeShzdG9yZWRRdWVyeTogU3RvcmVkUXVlcnkpOiBPYnNlcnZhYmxlPFN0b3JlZFF1ZXJ5PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLnBvc3QoJy9zdG9yZWRxdWVyaWVzJywgc3RvcmVkUXVlcnkudG9QZXJzaXN0YWJsZVN0b3JlZFF1ZXJ5KCksIHRoaXMuYmFja2VuZC5nZXRTZWFyY2hCYXNlKCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiB7XG4gICAgICAgICAgbGV0IHVwZGF0ZWRRdWVyeSA9IG5ldyBTdG9yZWRRdWVyeShyZXMpO1xuICAgICAgICAgIHVwZGF0ZWRRdWVyeS5zZXRRdWVyeSh0aGlzLnNlYXJjaFNlcnZpY2UuYnVpbGRRdWVyeShyZXMucXVlcnkpKTtcbiAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJpZXMuc2VsZWN0ID0gdXBkYXRlZFF1ZXJ5LmlkO1xuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcmllcy5xdWVyaWVzLnB1c2godXBkYXRlZFF1ZXJ5KTtcbiAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTb3VyY2UubmV4dCh0aGlzLnN0b3JlZFF1ZXJpZXMpO1xuXG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRRdWVyeTtcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBTdG9yZWQgUXVlcnlcbiAgICpcbiAgICogQHBhcmFtIFN0b3JlZFF1ZXJ5IHN0b3JlZFF1ZXJ5XG4gICAqIEByZXR1cm4gT2JzZXJ2YWJsZTxTdG9yZWRRdWVyeT5cbiAgICovXG4gIHByaXZhdGUgdXBkYXRlU3RvcmVkUXVlcnkoc3RvcmVkUXVlcnk6IFN0b3JlZFF1ZXJ5KTogT2JzZXJ2YWJsZTxTdG9yZWRRdWVyeT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5wdXQoJy9zdG9yZWRxdWVyaWVzJywgc3RvcmVkUXVlcnkudG9QZXJzaXN0YWJsZVN0b3JlZFF1ZXJ5KCksIHRoaXMuYmFja2VuZC5nZXRTZWFyY2hCYXNlKCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZFF1ZXJ5ID0gbmV3IFN0b3JlZFF1ZXJ5KHJlcyk7XG4gICAgICAgICAgdXBkYXRlZFF1ZXJ5LnNldFF1ZXJ5KHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHJlcy5xdWVyeSkpO1xuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcmllcy5zZWxlY3QgPSB1cGRhdGVkUXVlcnkuaWQ7XG4gICAgICAgICAgdGhpcy5zdG9yZWRRdWVyaWVzLnF1ZXJpZXMgPSB0aGlzLnN0b3JlZFF1ZXJpZXMucXVlcmllcy5maWx0ZXIocSA9PiBxLmlkICE9PSB1cGRhdGVkUXVlcnkuaWQpO1xuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcmllcy5xdWVyaWVzLnB1c2godXBkYXRlZFF1ZXJ5KTtcbiAgICAgICAgICB0aGlzLnN0b3JlZFF1ZXJpZXNTb3VyY2UubmV4dCh0aGlzLnN0b3JlZFF1ZXJpZXMpO1xuXG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRRdWVyeTtcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgYSBzdG9yZWQgcXVlcnkuIERlcGVuZGluZyBvbiB3aGV0aGVyIG9yIG5vdCB0aGUgcHJvdmlkZWQgcXVlcnkgaXMgYSBuZXcgb25lIG9yIG5vdFxuICAgKiB0aGlzIHdpbGwgZWl0aGVyIHVwZGF0ZSBvciBjcmVhdGUgYSBuZXcgcXVlcnkuXG4gICAqXG4gICAqIEBwYXJhbSBzdG9yZWRRdWVyeSBTdG9yZWQgcXVlcnkgdG8gYmUgc2F2ZWRcbiAgICovXG4gIHNhdmVTdG9yZWRRdWVyeShzdG9yZWRRdWVyeTogU3RvcmVkUXVlcnkpOiBPYnNlcnZhYmxlPFN0b3JlZFF1ZXJ5PiB7XG5cbiAgICBpZiAoc3RvcmVkUXVlcnkuaWQgPT09IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLklEX05FVykge1xuICAgICAgcmV0dXJuIHRoaXMuc2F2ZU5ld1N0b3JlZFF1ZXJ5KHN0b3JlZFF1ZXJ5KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlU3RvcmVkUXVlcnkoc3RvcmVkUXVlcnkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgU3RvcmVkIFF1ZXJ5IGJlIHByb3ZpZGVkIElEXG4gICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgc3RvcmVkIHF1ZXJ5IHRvIGJlIHJlbW92ZWRcbiAgICovXG4gIHJlbW92ZVN0b3JlZFF1ZXJ5KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5kZWwoYC9zdG9yZWRxdWVyaWVzLyR7aWR9YCwgdGhpcy5iYWNrZW5kLmdldFNlYXJjaEJhc2UoKSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcmllcy5zZWxlY3QgPSBudWxsO1xuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcmllcy5xdWVyaWVzID0gdGhpcy5zdG9yZWRRdWVyaWVzLnF1ZXJpZXMuZmlsdGVyKHEgPT4gcS5pZCAhPT0gaWQpO1xuICAgICAgICAgIHRoaXMuc3RvcmVkUXVlcmllc1NvdXJjZS5uZXh0KHRoaXMuc3RvcmVkUXVlcmllcyk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBTdG9yZWRRdWVyeSB3aXRoIHRoZSBwcm92aWRlZCBJZFxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIHN0b3JlZCBxdWVyeSB0byBiZSBmZXRjaGVkXG4gICAqL1xuICBnZXRTdG9yZWRRdWVyeShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTdG9yZWRRdWVyeT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5nZXQoYC9zdG9yZWRxdWVyaWVzLyR7aWR9YCwgdGhpcy5iYWNrZW5kLmdldFNlYXJjaEJhc2UoKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocyA9PiB7XG4gICAgICAgICAgbGV0IHNxID0gbmV3IFN0b3JlZFF1ZXJ5KHMpO1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIHNldCB1cCBzZWFyY2ggcXVlcnkgcHJvcGVydGllcyBmb3IgdGhlIHN0b3JlZCBxdWVyeVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHNxLnNldFF1ZXJ5KHRoaXMuc2VhcmNoU2VydmljZS5idWlsZFF1ZXJ5KHMucXVlcnkpKTtcbiAgICAgICAgICByZXR1cm4gc3E7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwc2V1ZG8gZm9ybSBlbGVtZW50IGZvciBhIHN0b3JlZCBxdWVyaWVzIGZ1bGx0ZXh0IGlucHV0IGZpZWxkXG4gICAqIHRvIGJlIHVzZWQgaW5zaWRlIG9mIGEgc3RvcmVkIHF1ZXJ5IGZvcm0uXG4gICAqXG4gICAqIEBwYXJhbSBsYWJlbCBUaGUgbGFiZWwgdG8gYmUgc2V0IHRvIHRoZSBlbGVtZW50XG4gICAqIEBwYXJhbSB2YWx1ZSBBIHZhbHVlIHRvIGJlIHNldCB0byB0aGUgZWxlbWVudFxuICAgKi9cbiAgZ2V0RnVsbHRleHRGb3JtRWxlbWVudChsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLkZVTExURVhULFxuICAgICAgcW5hbWU6IFN0b3JlZFF1ZXJpZXNTZXJ2aWNlLkZVTExURVhULFxuICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgdHlwZTogJ1NUUklORydcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -370,6 +370,23 @@ export class UserService {
|
|
|
370
370
|
this.refreshCurrentUser().subscribe();
|
|
371
371
|
}));
|
|
372
372
|
}
|
|
373
|
+
/**
|
|
374
|
+
* Save the local storage settings
|
|
375
|
+
* @param localSettings The local settings to be saved from the localstorage
|
|
376
|
+
* @param cacheSettings The local settings to be saved from the app cache
|
|
377
|
+
*/
|
|
378
|
+
saveLocalSettings(localSettings, cacheSettings) {
|
|
379
|
+
return this.backend.put('/user/config/localSettings', { localSettings: localSettings, cacheSettings: cacheSettings }).pipe(map(() => {
|
|
380
|
+
this.refreshCurrentUser().subscribe();
|
|
381
|
+
}));
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Loads the local storage settings
|
|
385
|
+
* @returns The saved settings
|
|
386
|
+
*/
|
|
387
|
+
loadLocalSettings() {
|
|
388
|
+
return this.backend.get('/user/config/localSettings');
|
|
389
|
+
}
|
|
373
390
|
}
|
|
374
391
|
UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UserService, deps: [{ token: i1.BackendService }, { token: i2.TranslateService }, { token: i3.Logger }, { token: i4.EventService }, { token: i5.SystemService }, { token: i6.HttpClient }, { token: i7.Config }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
375
392
|
UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: UserService, providedIn: 'root' });
|
|
@@ -379,4 +396,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
379
396
|
providedIn: 'root'
|
|
380
397
|
}]
|
|
381
398
|
}], ctorParameters: function () { return [{ type: i1.BackendService }, { type: i2.TranslateService }, { type: i3.Logger }, { type: i4.EventService }, { type: i5.SystemService }, { type: i6.HttpClient }, { type: i7.Config }]; } });
|
|
382
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3VzZXIvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLGVBQWUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUk5RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFJakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQUloRDs7Ozs7Ozs7OztHQVVHO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUF5Q3RCOztPQUVHO0lBQ0gsWUFBb0IsT0FBdUIsRUFDdkIsU0FBMkIsRUFDM0IsTUFBYyxFQUNkLFlBQTBCLEVBQzFCLE1BQXFCLEVBQ3JCLElBQWdCLEVBQ2hCLE1BQWM7UUFOZCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoRGxDLG1CQUFjLEdBQUcsa0ZBQWtGLENBQUM7UUFFNUYsU0FBSSxHQUFXLElBQUksQ0FBQztRQUNwQixlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVEOztXQUVHO1FBQ0ksVUFBSyxHQUFvQixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXZELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkU7O1dBRUc7UUFDSSx1QkFBa0IsR0FBb0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEgsZUFBVSxHQUFvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdkYsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckIsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTNFOztXQUVHO1FBRUssYUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUxRCxzQkFBaUIsR0FBcUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakgsY0FBUyxHQUFvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFHN0Y7O1dBRUc7UUFDSSwyQkFBc0IsR0FBb0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxSCxtQkFBYyxHQUFvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7SUFjdkcsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFHRDs7O09BR0c7SUFDSSxXQUFXLENBQUMsT0FBZ0I7UUFFakMsSUFBSSxPQUFPLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUM7aUJBQ2pELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2dCQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtTQUNKO2FBQU07WUFDTCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBRUksWUFBWSxDQUFDLEdBQVc7UUFDN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFVO1FBQzVCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXLENBQUMsYUFBdUI7UUFDeEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUMvRSxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSSxrQkFBa0IsQ0FBQyxHQUFXO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTzthQUNULEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUMvQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDN0csSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7O09BR0c7SUFDSSxrQkFBa0IsQ0FBQyxHQUFXO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxPQUFPO2FBQ2hCLEdBQUcsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDN0MsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxHQUFRO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztRQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRXZFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkUsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDdEMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUNqRDtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDZCQUE2QixHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDO1FBRWxILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWTtRQUVqQiwyREFBMkQ7UUFDM0QsNkRBQTZEO1FBQzdELE9BQU8sSUFBSSxDQUFDLE9BQU87YUFDaEIsT0FBTyxDQUFDLGlCQUFpQixDQUFDO2FBQzFCLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssWUFBWSxDQUFDLENBQUMsRUFDbkUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7WUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFUixnQkFBZ0I7UUFDaEIsaUVBQWlFO1FBQ2pFLHNCQUFzQjtRQUN0QixNQUFNO0lBQ1IsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksZUFBZSxDQUFDLEVBQVcsRUFBRSxJQUFVLEVBQUUsS0FBYTtRQUMzRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBQyxFQUFFLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzlELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxnQkFBZ0I7UUFDckIsTUFBTSxnQkFBZ0IsR0FBRztZQUN2QixJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQUU7U0FDdkIsQ0FBQztRQUNGLE9BQU8sUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLElBQUksQ0FDcEUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7WUFDOUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU87YUFDaEIsT0FBTyxDQUFDLG9DQUFvQyxDQUFDLENBQUMsSUFBSSxDQUNqRCxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDYixJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztZQUM5QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxtQkFBbUIsQ0FBQyxFQUFVLEVBQUUsSUFBWTtRQUNqRCxJQUFJLFdBQW1CLENBQUM7UUFDeEIsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLGNBQWM7Z0JBQ2pCLFdBQVcsR0FBRyxjQUFjLENBQUM7Z0JBQzdCLE1BQU07WUFDUixLQUFLLGNBQWM7Z0JBQ2pCLFdBQVcsR0FBRyxjQUFjLENBQUM7Z0JBQzdCLE1BQU07WUFDUjtnQkFDRSxPQUFPO1NBQ1Y7UUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixXQUFXLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxtQkFBbUIsQ0FBQyxFQUFXLEVBQUUsSUFBVSxFQUFFLEtBQWE7UUFDL0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUMsRUFBRSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUMsRUFBRTtZQUNsRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksZUFBZSxDQUFDLE1BQWM7UUFDbkMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyx1QkFBdUIsTUFBTSxrQkFBa0IsQ0FBQztJQUMxSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYyxDQUFDLFVBQWtCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGNBQWMsQ0FBQyxFQUFVLEVBQUUsSUFBWSxFQUFFLEtBQWE7UUFDM0QsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLEVBQUUsRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRUQ7O09BRUc7SUFDSSx3QkFBd0IsQ0FBQyxFQUFVO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDckQsR0FBRyxDQUFDLEVBQUU7WUFDSixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQ3JGLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTthQUNULENBQUMsQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDO0lBRUQ7O01BRUU7SUFDRixhQUFhO1FBQ1YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FDbkQsR0FBRyxDQUFDLFFBQVEsQ0FBQSxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsR0FBQyxRQUFRLENBQUM7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUY7OztPQUdHO0lBQ0ksaUJBQWlCLENBQUMsSUFBWTtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNoRixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUFpQjtRQUNuQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFHRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxPQUFnQztRQUM3QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNLLGtCQUFrQjtRQUN4QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVNLGdCQUFnQixDQUFDLFFBQWdCO1FBQ3RDLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsU0FBUyxFQUFFO1lBQy9ELE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsU0FBUyxFQUFDLENBQUM7U0FDM0U7UUFFRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsU0FBUyxFQUFFO1lBQ3RGLE9BQU8sRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsU0FBUyxFQUFDLENBQUM7U0FDNUU7UUFFRCxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxlQUFlLEVBQUU7WUFDbkcsT0FBTyxFQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxlQUFlLEVBQUMsQ0FBQztTQUN4RjtRQUVELE9BQVEsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksdUJBQXVCLENBQUMsV0FBcUI7UUFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNoRixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNJLG1CQUFtQixDQUFDLGVBQTBDO1FBQ25FLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztRQUMxRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDaEYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRDs7O09BR0c7SUFFSSxrQkFBa0IsQ0FBQyxJQUFZO1FBQ3BDLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUNoQyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsSUFBSSxnQkFBZ0IsV0FBVyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLGlCQUEwQjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDaEYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7O3dHQXpaVSxXQUFXOzRHQUFYLFdBQVcsY0FGVixNQUFNOzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgQmVoYXZpb3JTdWJqZWN0LCBmb3JrSm9pbiwgb2Z9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXAsIHRhcCwgZGVib3VuY2VUaW1lLCBmaWx0ZXJ9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0NoYW5nZVBhc3N3b3JkSW50ZXJmYWNlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UvY2hhbmdlLXBhc3N3b3JkLmludGVyZmFjZSc7XG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XG5pbXBvcnQge0VvVXNlcn0gZnJvbSAnLi4vLi4vbW9kZWwvZW8tdXNlci5tb2RlbCc7XG5pbXBvcnQge0NvbmZpZ30gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyJztcbmltcG9ydCB7U3lzdGVtU2VydmljZX0gZnJvbSAnLi4vc3lzdGVtL3N5c3RlbS5zZXJ2aWNlJztcbmltcG9ydCB7VXRpbHN9IGZyb20gJy4uLy4uL3V0aWwvdXRpbHMnO1xuaW1wb3J0IHtFbmFpb0V2ZW50fSBmcm9tICcuLi9ldmVudHMvZXZlbnRzJztcbmltcG9ydCB7RXZlbnRTZXJ2aWNlfSBmcm9tICcuLi9ldmVudHMvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQge0RpcmVjdGlvbn0gZnJvbSAnLi4vY29uZmlnL2NvbmZpZy5lbnVtJztcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtXaWRnZXRHcmlkV29ya3NwYWNlQ29uZmlnfSBmcm9tICdAeXV1dmlzL3dpZGdldC1ncmlkJztcblxuLyoqXG4gKiBBcHBsaWNhdGlvbnMgdXNlciBzZXJ2aWNlLlxuICogVG8gZ2V0IHRoZSBjdXJyZW50IHVzZXIgeW91IGhhdmUgdG8gc3Vic2NyaWJlIHRvIHRoZSBzZXJ2aWNlcyBgdXNlciRgIG9ic2VydmFibGUuXG4gKlxuICogYGBgamF2YXNjcmlwdFxuICogdXNlclNlcnZpY2UudXNlciQuc3Vic2NyaWJlKCh1c2VyKSA9PiB0aGlzLnVzZXIgPSB1c2VyKTtcbiAqIGBgYFxuICpcbiAqIFRoaXMgd2F5IHlvdXIgY29tcG9uZW50IHdpbGwgYmUgcHJvdmlkZWQgd2l0aCBhbiB1cC10by1kYXRlIHVzZXIgb2JqZWN0IG5vIG1hdHRlclxuICogd2hpY2ggY29tcG9uZW50IGNoYW5nZXMgb24gb2YgdGhlIHVzZXJzIHByb3BlcnRpZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJTZXJ2aWNlIHtcblxuICBVU0VSX0ZFVENIX1VSSSA9ICcvdXNlcj9mYXZvcml0ZXM9dHJ1ZSZwcml2aWxlZ2VzPXRydWUmcm9sZXM9dHJ1ZSZkZXB1dGllcz10cnVlJnN1YnN0aXR1dGVzT2Y9dHJ1ZSc7XG5cbiAgcHJpdmF0ZSB1c2VyOiBFb1VzZXIgPSBudWxsO1xuICBwcml2YXRlIHVzZXJTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVvVXNlcj4odGhpcy51c2VyKTtcbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgdGhlIGN1cnJlbnQgdXNlclxuICAgKi9cbiAgcHVibGljIHVzZXIkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnVzZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBmYXZvcml0ZXMgPSBudWxsO1xuICBwcml2YXRlIGZhdm9yaXRlc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55Pih0aGlzLmZhdm9yaXRlcyk7XG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIGN1cnJlbnQgdXNlcnMgZmF2b3JpdGVzXG4gICAqL1xuICBwdWJsaWMgZmF2b3JpdGVzR3JpZERhdGEkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmZhdm9yaXRlc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaWx0ZXIodiA9PiB2KSk7XG4gIHB1YmxpYyBmYXZvcml0ZXMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmZhdm9yaXRlc0dyaWREYXRhJC5waXBlKHRoaXMuYmFja2VuZC5ncmlkRGF0YUZpbHRlcik7XG5cbiAgcHJpdmF0ZSBub3RpZmljYXRpb25zID0gbnVsbDtcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25zU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMubm90aWZpY2F0aW9ucyk7XG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgY3VycmVudCB1c2VycyByZWN5Y2xlYmluXG4gICAqL1xuXG4gIHByaXZhdGUgcmVjeWNsZXMgPSBudWxsO1xuICBwcml2YXRlIHJlY3ljbGVzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMucmVjeWNsZXMpO1xuXG4gIHB1YmxpYyByZWN5Y2xlc0dyaWREYXRhJCA6IE9ic2VydmFibGU8YW55PiA9IHRoaXMucmVjeWNsZXNTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoMTAwKSwgZmlsdGVyKHYgPT4gdikpO1xuICBwdWJsaWMgcmVjeWNsZXMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLnJlY3ljbGVzR3JpZERhdGEkLnBpcGUodGhpcy5iYWNrZW5kLmdyaWREYXRhRmlsdGVyKTtcblxuXG4gIC8qKlxuICAgKiBPYnNlcnZhYmxlIGVtaXR0aW5nIGN1cnJlbnQgdXNlcnMgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcHVibGljIG5vdGlmaWNhdGlvbnNHcmlkRGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaWx0ZXIodiA9PiB2KSk7XG4gIHB1YmxpYyBub3RpZmljYXRpb25zJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5ub3RpZmljYXRpb25zR3JpZERhdGEkLnBpcGUodGhpcy5iYWNrZW5kLmdyaWREYXRhRmlsdGVyKTtcblxuICBwdWJsaWMgcGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3M6IGFueTtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcpIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHVzZXIuXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IHVzZXIgb3IgTlVMTCBpZiBubyB1c2VyIGlzIGxvZ2dlZCBpblxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRVc2VyKCk6IEVvVXNlciB7XG4gICAgcmV0dXJuIHRoaXMudXNlcjtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIFNldCBwcmVzZW5jZSBvZiB0aGUgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSBwcmVzZW50IFZhbHVlIHRvIHNldCB0aGUgdXNlcnMgcHJlc2VuY2UgdG9cbiAgICovXG4gIHB1YmxpYyBzZXRQcmVzZW5jZShwcmVzZW50OiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcblxuICAgIGlmIChwcmVzZW50ICE9PSB0aGlzLnVzZXIucHJlc2VudCkge1xuICAgICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyP3ByZXNlbmNlPScgKyBwcmVzZW50KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YXAoXyA9PiB7XG4gICAgICAgICAgICB0aGlzLnVzZXIucHJlc2VudCA9IHByZXNlbnQ7XG4gICAgICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gdXJpXG4gICAqIEByZXR1cm5zXG4gICAqL1xuXG4gIHB1YmxpYyBkZWxVc2VySW1hZ2UodXJpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHVyaSwgbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VXNlckltYWdlKGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KGAvdXNlci9pbWFnZWAsZmlsZSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVwdXRpZXMgZm9yIHRoZSBjdXJyZW50IHVzZXJcbiAgICogQHBhcmFtIGRlcHV0aWVzTmFtZXMgTmFtZXMgb2YgdGhlIHVzZXJzIHRvIGJlIHNldCBhcyBkZXB1dGllc1xuICAgKi9cbiAgcHVibGljIHNldERlcHV0aWVzKGRlcHV0aWVzTmFtZXM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dChgL3VzZXIvZGVwdXR5P3VzZXI9JHtkZXB1dGllc05hbWVzLmpvaW4oJyZ1c2VyPScpfWApLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZSB0aGUgdXNlcnMgY2xpZW50IGxvY2FsZVxuICAgKiBAcGFyYW0gaXNvIElTTyBsb2NhbGUgc3RyaW5nIHRvIGJlIHNldCBhcyBuZXcgY2xpZW50IGxvY2FsZVxuICAgKi9cbiAgcHVibGljIGNoYW5nZUNsaWVudExvY2FsZShpc286IHN0cmluZykge1xuICAgIHRoaXMudXNlci51c2VyU2V0dGluZ3NbJ2NsaWVudGxvY2FsZSddID0gaXNvO1xuICAgIHRoaXMuYmFja2VuZFxuICAgICAgLnB1dCgnL3VzZXIvY29uZmlnL3dlYicsIHRoaXMudXNlci51c2VyU2V0dGluZ3MpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0NoYW5nZWQgY2xpZW50IGxvY2FsZSB0byBcXCcnICsgaXNvICsgJ1xcJycpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZS51c2UoaXNvKTtcbiAgICAgICAgdGhpcy51c2VyLnVpRGlyZWN0aW9uID0gKHRoaXMuY29uZmlnLmdldENsaWVudExvY2FsZXMoKS5maW5kKGwgPT4gbC5pc28gPT09IGlzbykgfHwge30pLmRpciB8fCBEaXJlY3Rpb24uTFRSO1xuICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuQ0xJRU5UX0xPQ0FMRV9DSEFOR0VELCBpc28pO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHRoZSB1c2VycyBzY2hlbWEgbG9jYWxlXG4gICAqIEBwYXJhbSBpc28gSVNPIGxvY2FsZSBzdHJpbmcgdG8gYmUgc2V0IGFzIG5ldyBzY2hlbWEgbG9jYWxlXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlU2NoZW1hTG9jYWxlKGlzbzogc3RyaW5nKSB7XG4gICAgdGhpcy51c2VyLnNjaGVtYUxvY2FsZSA9IGlzbztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAucHV0KCcvdXNlci9sb2NhbGUvJyArIHRoaXMudXNlci5zY2hlbWFMb2NhbGUpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2hhbmdlZCBzY2hlbWEgbG9jYWxlIHRvIFxcJycgKyBpc28gKyAnXFwnJyk7XG4gICAgICAgICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcbiAgICAgICAgICB0aGlzLmJhY2tlbmQuc2V0SGVhZGVyKCdBY2NlcHQtTGFuZ3VhZ2UnLCB0aGlzLnVzZXIuZ2V0U2NoZW1hTG9jYWxlKCkpO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdMb2FkaW5nIHN5c3RlbSBkZWZpbml0aW9uIGZvciBuZXcgbG9jYWxlLicpO1xuICAgICAgICAgIHRoaXMuc3lzdGVtLmdldFN5c3RlbURlZmluaXRpb24odGhpcy51c2VyKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuU0NIRU1BX0xPQ0FMRV9DSEFOR0VELCBpc28pO1xuICAgICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGEgbmV3IGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gcmVzIFRoZSB1c2VyIHRvIGJlIHNldCBhcyBjdXJyZW50IHVzZXJcbiAgICovXG4gIHB1YmxpYyBzZXRDdXJyZW50VXNlcihyZXM6IGFueSkge1xuICAgIHRoaXMudXNlciA9IG5ldyBFb1VzZXIocmVzKTtcbiAgICB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzID0gcmVzLnBhc3N3b3J0dmFsaWRhdGlvbjtcbiAgICB0aGlzLnVzZXIuc2V0SW1hZ2VCYXNlKHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpKTtcbiAgICB0aGlzLmJhY2tlbmQuc2V0SGVhZGVyKCdBY2NlcHQtTGFuZ3VhZ2UnLCB0aGlzLnVzZXIuZ2V0U2NoZW1hTG9jYWxlKCkpO1xuXG4gICAgY29uc3QgbGFuZ3VhZ2VzID0gdGhpcy5jb25maWcuZ2V0Q2xpZW50TG9jYWxlcygpLm1hcChsYW5nID0+IGxhbmcuaXNvKTtcbiAgICBsZXQgdXNlckxhbmcgPSB0aGlzLnVzZXIuZ2V0Q2xpZW50TG9jYWxlKCk7XG4gICAgaWYgKGxhbmd1YWdlcy5pbmRleE9mKHVzZXJMYW5nKSA9PT0gLTEpIHtcbiAgICAgIHVzZXJMYW5nID0gdGhpcy5jb25maWcuZ2V0RGVmYXVsdENsaWVudExvY2FsZSgpO1xuICAgIH1cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnU2V0dGluZyBjbGllbnQgbG9jYWxlIHRvIFxcJycgKyB1c2VyTGFuZyArICdcXCcnKTtcbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UodXNlckxhbmcpO1xuICAgIHRoaXMudXNlci51aURpcmVjdGlvbiA9ICh0aGlzLmNvbmZpZy5nZXRDbGllbnRMb2NhbGVzKCkuZmluZChsID0+IGwuaXNvID09PSB1c2VyTGFuZykgfHwge30pLmRpciB8fCBEaXJlY3Rpb24uTFRSO1xuXG4gICAgdGhpcy51c2VyU291cmNlLm5leHQodGhpcy51c2VyKTtcblxuICAgIHRoaXMuZmF2b3JpdGVzID0gbnVsbDtcbiAgICB0aGlzLmZhdm9yaXRlc1NvdXJjZS5uZXh0KHRoaXMuZmF2b3JpdGVzKTtcblxuICAgIHRoaXMubm90aWZpY2F0aW9ucyA9IG51bGw7XG4gICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBjdXJyZW50IHVzZXJzIGZhdm9yaXRlc1xuICAgKi9cbiAgcHVibGljIGdldEZhdm9yaXRlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgLy8gb25seSBmYXZvcml0ZSBvYmplY3RzIG9mIHR5cGUgJ0RNU19PQkpFQ1QnLCBhcmUgYWNjZXB0ZWRcbiAgICAvLyByZWFkIG1vcmU6IGh0dHA6Ly9qaXJhLm9wdGltYWwtc3lzdGVtcy5kZS9icm93c2UvQ09PTC0yMzE2XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24oJy91c2VyL2Zhdm9yaXRlcycpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlcyA9PiByZXMgJiYgcmVzLmZpbHRlcihyID0+IHIuZmF2b3JpdGV0eXBlID09PSAnRE1TX09CSkVDVCcpKSxcbiAgICAgICAgdGFwKHJlcyA9PiB7XG4gICAgICAgICAgdGhpcy5mYXZvcml0ZXMgPSByZXM7XG4gICAgICAgICAgdGhpcy5mYXZvcml0ZXNTb3VyY2UubmV4dCh0aGlzLmZhdm9yaXRlcyk7XG4gICAgICAgIH0pKTtcblxuICAgIC8vIC5tYXAocmVzID0+IHtcbiAgICAvLyAgIGxldCBkbXNPYmplY3QgPSB0aGlzLnJlc29sdmVPYmplY3RUeXBlcyhuZXcgRG1zT2JqZWN0KHJlcykpO1xuICAgIC8vICAgcmV0dXJuIGRtc09iamVjdDtcbiAgICAvLyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb2Z0IHVwZGF0ZSBmb3IgdGhlIHVzZXJzIGZhdm9yaXRlc1xuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGZhdm9yaXRlIHRvIGJlIHVwZGF0ZWRcbiAgICogQHBhcmFtIGl0ZW0gVGhlIG5ldyBmYXZvcml0ZSBpdGVtXG4gICAqIEBwYXJhbSBtdWx0aSBXaGV0aGVyIG9yIG5vdCB0byB1cGRhdGUgbXVsdGlwbGUgaXRlbXNcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVGYXZvcml0ZXMoaWQ/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIG11bHRpPzogYW55W10pIHtcbiAgICBpZiAodGhpcy5iYWNrZW5kLnVwZGF0ZSh0aGlzLmZhdm9yaXRlcywgbXVsdGkgfHwgW3tpZCwgaXRlbX1dKSkge1xuICAgICAgdGhpcy5mYXZvcml0ZXNTb3VyY2UubmV4dCh0aGlzLmZhdm9yaXRlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHVzZXJzIG5vdGlmaWNhdGlvbnMgKHJlc3VibWlzc2lvbnMgYW5kIHN1YnNjcmlwdGlvbnMpXG4gICAqIEByZXR1cm5zIFJlc29sdmVkIGJ5IGxpc3Qgb2YgdGhlIHVzZXJzIG5vdGlmaWNhdGlvbnNcbiAgICovXG4gIHB1YmxpYyBnZXROb3RpZmljYXRpb25zKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgbm90aWZpY2F0aW9uRGF0YSA9IFtcbiAgICAgIHRoaXMuZ2V0U3Vic2NyaXB0aW9uKCksXG4gICAgICB0aGlzLmdldFJlc3VibWlzc2lvbigpXG4gICAgXTtcbiAgICByZXR1cm4gZm9ya0pvaW4obm90aWZpY2F0aW9uRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXNlcnMgcmVzdWJtaXNzaW9uc1xuICAgKiBAcmV0dXJucyBDb2xsZWN0aW9uIG9mIHVzZXJzIHJlc3VibWlzc2lvbnNcbiAgICovXG4gIHB1YmxpYyBnZXRSZXN1Ym1pc3Npb24oKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldEpzb24oJy9tZXNzYWdlcHJvdmlkZXIvcmVzdWJtaXNzaW9uL2xpc3QnKS5waXBlKFxuICAgICAgdGFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gcmVzcG9uc2U7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XG4gICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXNlcnMgc3Vic2NyaXB0aW9uc1xuICAgKiBAcmV0dXJucyBDb2xsZWN0aW9uIG9mIHVzZXJzIHN1YnNjcmlwdGlvbnNcbiAgICovXG4gIHB1YmxpYyBnZXRTdWJzY3JpcHRpb24oKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbignL21lc3NhZ2Vwcm92aWRlci9zdWJzY3JpcHRpb24vbGlzdCcpLnBpcGUoXG4gICAgICAgIHRhcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gcmVzcG9uc2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcbiAgICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBub3RpZmljYXRpb25cbiAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBub3RpZmljYXRpb24gdG8gYmUgcmVtb3ZlZFxuICAgKiBAcGFyYW0gdHlwZSBUaGUgbm90aWZpY2F0aW9ucyB0eXBlICgnU1VCU0NSSVBUSU9OJywgJ1JFU1VCTUlTU0lPTicpXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlTm90aWZpY2F0aW9ucyhpZDogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcbiAgICBsZXQgbWVzc2FnZXR5cGU6IHN0cmluZztcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ1NVQlNDUklQVElPTic6XG4gICAgICAgIG1lc3NhZ2V0eXBlID0gJ3N1YnNjcmlwdGlvbic7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUkVTVUJNSVNTSU9OJzpcbiAgICAgICAgbWVzc2FnZXR5cGUgPSAncmVzdWJtaXNzaW9uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZGVsKGAvbWVzc2FnZXByb3ZpZGVyLyR7bWVzc2FnZXR5cGV9L2AgKyBpZCkucGlwZSh0YXAocmVzID0+IHRoaXMudXBkYXRlTm90aWZpY2F0aW9ucygnJykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb2Z0IHVwZGF0ZSBmb3IgdXNlcnMgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcHVibGljIHVwZGF0ZU5vdGlmaWNhdGlvbnMoaWQ/OiBzdHJpbmcsIGl0ZW0/OiBhbnksIG11bHRpPzogYW55W10pIHtcbiAgICBpZiAodGhpcy5iYWNrZW5kLnVwZGF0ZSh0aGlzLm5vdGlmaWNhdGlvbnMsIG11bHRpIHx8IFt7aWQsIGl0ZW19XSkpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NvdXJjZS5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIFVSSSB0byBhIHVzZXJzIGF2YXRhciBpbWFnZVxuICAgKiBAcGFyYW0gdXNlcklkIFRoZSB1c2VycyBJRFxuICAgKiBAcmV0dXJucyBVUkkgdG8gdGhlIHVzZXIgaW1hZ2VcbiAgICovXG4gIHB1YmxpYyBnZXRVc2VySW1hZ2VVcmkodXNlcklkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5iYWNrZW5kLmdldEJhc2VXaXRoQ29udGV4dCh0aGlzLmJhY2tlbmQuZ2V0U2VydmljZUJhc2UoKSl9L29yZ2FuaXphdGlvbi9pbWFnZS8ke3VzZXJJZH0/dXNlZGVmYXVsdD10cnVlYDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIGEgZmF2b3JpdGUgaXRlbVxuICAgKiBAcGFyYW0gZmF2b3JpdGVJZCBJRCBvZiB0aGUgZmF2b3JpdGUgaXRlbSB0byBiZSByZW1vdmVkXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRmF2b3JpdGUoZmF2b3JpdGVJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoJy91c2VyL2Zhdm9yaXRlLycgKyBmYXZvcml0ZUlkKS5waXBlKHRhcChyZXMgPT4gdGhpcy51cGRhdGVGYXZvcml0ZXMoZmF2b3JpdGVJZCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgZmF2b3JpdGUgaXRlbSBmb3IgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIGRtcyBvYmplY3QgdG8gYmUgc2V0IHVwIGFzIGZhdm9yaXRlXG4gICAqIEBwYXJhbSB0eXBlIFRoZSBvYmplY3QgdHlwZSBvZiB0aGUgZG1zIG9iamVjdFxuICAgKiBAcGFyYW0gdGl0bGUgVGhlIGZhdm9yaXRlcyB0aXRsZVxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUZhdm9yaXRlKGlkOiBzdHJpbmcsIHR5cGU6IHN0cmluZywgdGl0bGU6IHN0cmluZykge1xuICAgIGNvbnN0IHVyaSA9IFV0aWxzLmJ1aWxkVXJpKCcvZG1zL2Zhdm9yaXRlLycgKyBpZCwge3R5cGUsIHRpdGxlfSk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wb3N0KHVyaSwge30pLnBpcGUodGFwKHJlcyA9PiB0aGlzLmdldEZhdm9yaXRlcygpLnN1YnNjcmliZSgpKSk7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIHJlbW92ZUZhdm9yaXRlc0ZvclRhcmdldChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoJy9kbXMvZmF2b3JpdGUvJyArIGlkKS5waXBlKHRhcChcbiAgICAgIHJlcyA9PiB7XG4gICAgICAgIGNvbnN0IHRvUmVtb3ZlID0gdGhpcy5mYXZvcml0ZXMuZmlsdGVyKGkgPT4gaS50YXJnZXQuaWQgPT09IGlkKS5tYXAoaSA9PiBPYmplY3QuYXNzaWduKHtcbiAgICAgICAgICBpZDogaS5pZFxuICAgICAgICB9KSk7XG4gICAgICAgIHRoaXMudXBkYXRlRmF2b3JpdGVzKG51bGwsIG51bGwsIHRvUmVtb3ZlKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB1c2VycyByZWN5Y2xlYmluXG4gICovXG4gIGdldFJlY3ljbGVCaW4oKTogT2JzZXJ2YWJsZTxhbnk+ICB7XG4gICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0SnNvbihgL3VzZXIvcmVjeWNsZWJpbmApLnBpcGUoXG4gICAgICB0YXAocmVzcG9uc2U9PntcbiAgICAgICAgdGhpcy5yZWN5Y2xlcz1yZXNwb25zZTtcbiAgICAgICAgdGhpcy5yZWN5Y2xlc1NvdXJjZS5uZXh0KHRoaXMucmVjeWNsZXMpO1xuICAgICAgfSkpO1xuICAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSB1c2VycyBwcmVmZXJyZWQgbG9jayBtb2RlIGFuZCBwZXJzaXN0cyBpdCBvbiB0aGUgc2VydmVyXG4gICAqIEBwYXJhbSBsb2NrIFRoZSB2YWx1ZSB0byBzZXQgdGhlIGxvY2sgc2V0dGluZ3MgdG9cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VMb2NrU2V0dGluZyhsb2NrOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLmFsd2F5c2xvY2sgPSBsb2NrO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncykucGlwZShtYXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKTtcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgaGFzUHJpdmlsZWdlKHByaXZpbGVnZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy51c2VyLnByaXZpbGVnZXMuZmluZChwcml2ID0+IHByaXYubmFtZSA9PT0gcHJpdmlsZWdlKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHVzZXJzIHBhc3N3b3JkIGFuZCBwZXJzaXN0cyBpdCBvbiB0aGUgc2VydmVyXG4gICAqL1xuICBjaGFuZ2VQYXNzd29yZChwYXlsb2FkOiBDaGFuZ2VQYXNzd29yZEludGVyZmFjZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoYC91c2VyL3Bhc3N3b3JkYCwgcGF5bG9hZCk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgc2V0dGluZ3MgZm9yIHRoZSBjdXJyZW50IHVzZXIgYW5kIHN0b3JlcyB0aGUgbmV3IFVzZXIgb2JqZWN0IG9uIHRoZSBzZXNzaW9uXG4gICAqL1xuICBwcml2YXRlIHJlZnJlc2hDdXJyZW50VXNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldCh0aGlzLlVTRVJfRkVUQ0hfVVJJKS5waXBlKG1hcChyZXMgPT4gdGhpcy5zZXRDdXJyZW50VXNlcihyZXMpKSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVQYXNzd29yZChwYXNzd29yZDogc3RyaW5nKToge3R5cGU6IHN0cmluZywgYW1vdW50OiBudW1iZXJ9IHtcbiAgICBpZiAocGFzc3dvcmQubGVuZ3RoIDwgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB7dHlwZTogJ3Nob3J0JywgYW1vdW50OiB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbmxlbmd0aH07XG4gICAgfVxuXG4gICAgaWYgKHBhc3N3b3JkLnJlcGxhY2UoL1teMC05XS9nLCAnJykubGVuZ3RoIDwgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5udW1iZXIpIHtcbiAgICAgIHJldHVybiB7dHlwZTogJ251bWJlcicsIGFtb3VudDogdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5udW1iZXJ9O1xuICAgIH1cblxuICAgIGlmIChwYXNzd29yZC5yZXBsYWNlKC9bYS16QS1aMC05w58gXS9nLCAnJykubGVuZ3RoIDwgdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5zcGVjaWFsY2hhcnMpIHtcbiAgICAgIHJldHVybiB7dHlwZTogJ3NwZWNpYWxjaGFycycsIGFtb3VudDogdGhpcy5wYXNzd29yZFZhbGlkYXRpb25TZXR0aW5ncy5taW5zcGVjaWFsY2hhcnN9O1xuICAgIH1cblxuICAgIHJldHVybiAge3R5cGU6ICd2YWxpZCcsIGFtb3VudDogbnVsbH07XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgdXNlcnMgc2F2ZWQgaW5ib3ggZmlsdGVyIHRlcm1zXG4gICAqIEBwYXJhbSBmaWx0ZXJUZXJtcyBUaGUgdmFsdWUgdG8gc2V0IHRoZSBzYXZlZCBpbmJveCBmaWx0ZXJzIGxpc3QgdG9cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VTYXZlZEluYm94RmlsdGVycyhmaWx0ZXJUZXJtczogc3RyaW5nW10pIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLnNhdmVkSW5ib3hGaWx0ZXIgPSBmaWx0ZXJUZXJtcztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dCgnL3VzZXIvY29uZmlnL3dlYicsIHRoaXMudXNlci51c2VyU2V0dGluZ3MpLnBpcGUobWFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCkuc3Vic2NyaWJlKCk7XG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgb3IgY2hhbmdlIHRoZSB3b3Jrc3BhY2Ugb2YgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gd29ya3NwYWNlQ29uZmlnIFRoZSB2YWx1ZSB0byBzZXQgdGhlIHNhdmVkIHdvcmtzcGFjZSBvciBjcmVhdGUgYSBuZXcgd29ya3NwYWNlXG4gICAqL1xuICBwdWJsaWMgc2F2ZUNoYW5nZVdvcmtzcGFjZSh3b3Jrc3BhY2VDb25maWc6IFdpZGdldEdyaWRXb3Jrc3BhY2VDb25maWcpIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLndvcmtzcGFjZU9wdGlvbnMgPSB3b3Jrc3BhY2VDb25maWc7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKS5waXBlKG1hcCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHRoZSBmaWVsZCBkZWZpbml0aW9ucyBvZiBhbiBvYmplY3QgdHlwZVxuICAgKiBAcGFyYW0gdHlwZSBUaGUgb2JqZWN0IHR5cGVcbiAgICovXG5cbiAgcHVibGljIGdldEZpZWxkRGVmaW5pdGlvbih0eXBlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjb250ZXh0VHlwZSA9ICdzeXNmb2xkZXInO1xuICAgIGxldCBtb2RlID0gJ0FMTCc7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXQoYC91c2VyL2NvbmZpZy9yZXN1bHQvJHt0eXBlfT9jb250ZXh0dHlwZT0ke2NvbnRleHRUeXBlfSZtb2RlPSR7bW9kZX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIG9yIGNoYW5nZSB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBvZiBkYXNoYm9hcmQgdG9vbGJhciBmb3IgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gdG9vbGJhclZpc2liaWxpdHkgVGhlIHZpc2liaWxpdHkgc3RhdGVcbiAgICovXG4gIHB1YmxpYyBzYXZlVG9vbGJhclN0YXRlKHRvb2xiYXJWaXNpYmlsaXR5OiBib29sZWFuKSB7XG4gICAgdGhpcy51c2VyLnVzZXJTZXR0aW5ncy50b29sYmFyVmlzaWJpbGl0eSA9IHRvb2xiYXJWaXNpYmlsaXR5O1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncykucGlwZShtYXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKTtcbiAgICB9KSk7XG4gIH1cbn1cbiJdfQ==
|
|
399
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZW8tc2RrL2NvcmUvc3JjL2xpYi9zZXJ2aWNlL3VzZXIvdXNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFhLGVBQWUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUk5RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFJakQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUU1QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQUloRDs7Ozs7Ozs7OztHQVVHO0FBSUgsTUFBTSxPQUFPLFdBQVc7SUF5Q3RCOztPQUVHO0lBQ0gsWUFBb0IsT0FBdUIsRUFDdkIsU0FBMkIsRUFDM0IsTUFBYyxFQUNkLFlBQTBCLEVBQzFCLE1BQXFCLEVBQ3JCLElBQWdCLEVBQ2hCLE1BQWM7UUFOZCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoRGxDLG1CQUFjLEdBQUcsa0ZBQWtGLENBQUM7UUFFNUYsU0FBSSxHQUFX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TyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsSUFBSSxnQkFBZ0IsV0FBVyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLGlCQUEwQjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDaEYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsYUFBa0IsRUFBRSxhQUFrQjtRQUM3RCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixFQUFFLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNoSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNJLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDeEQsQ0FBQzs7d0dBNWFVLFdBQVc7NEdBQVgsV0FBVyxjQUZWLE1BQU07MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBCZWhhdmlvclN1YmplY3QsIGZvcmtKb2luLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFwLCBkZWJvdW5jZVRpbWUsIGZpbHRlcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q2hhbmdlUGFzc3dvcmRJbnRlcmZhY2V9IGZyb20gJy4uLy4uL2ludGVyZmFjZS9jaGFuZ2UtcGFzc3dvcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7QmFja2VuZFNlcnZpY2V9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmltcG9ydCB7RW9Vc2VyfSBmcm9tICcuLi8uLi9tb2RlbC9lby11c2VyLm1vZGVsJztcbmltcG9ydCB7Q29uZmlnfSBmcm9tICcuLi9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJ9IGZyb20gJy4uL2xvZ2dlci9sb2dnZXInO1xuaW1wb3J0IHtTeXN0ZW1TZXJ2aWNlfSBmcm9tICcuLi9zeXN0ZW0vc3lzdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHtVdGlsc30gZnJvbSAnLi4vLi4vdXRpbC91dGlscyc7XG5pbXBvcnQge0VuYWlvRXZlbnR9IGZyb20gJy4uL2V2ZW50cy9ldmVudHMnO1xuaW1wb3J0IHtFdmVudFNlcnZpY2V9IGZyb20gJy4uL2V2ZW50cy9ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7RGlyZWN0aW9ufSBmcm9tICcuLi9jb25maWcvY29uZmlnLmVudW0nO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1dpZGdldEdyaWRXb3Jrc3BhY2VDb25maWd9IGZyb20gJ0B5dXV2aXMvd2lkZ2V0LWdyaWQnO1xuXG4vKipcbiAqIEFwcGxpY2F0aW9ucyB1c2VyIHNlcnZpY2UuXG4gKiBUbyBnZXQgdGhlIGN1cnJlbnQgdXNlciB5b3UgaGF2ZSB0byBzdWJzY3JpYmUgdG8gdGhlIHNlcnZpY2VzIGB1c2VyJGAgb2JzZXJ2YWJsZS5cbiAqXG4gKiBgYGBqYXZhc2NyaXB0XG4gKiB1c2VyU2VydmljZS51c2VyJC5zdWJzY3JpYmUoKHVzZXIpID0+IHRoaXMudXNlciA9IHVzZXIpO1xuICogYGBgXG4gKlxuICogVGhpcyB3YXkgeW91ciBjb21wb25lbnQgd2lsbCBiZSBwcm92aWRlZCB3aXRoIGFuIHVwLXRvLWRhdGUgdXNlciBvYmplY3Qgbm8gbWF0dGVyXG4gKiB3aGljaCBjb21wb25lbnQgY2hhbmdlcyBvbiBvZiB0aGUgdXNlcnMgcHJvcGVydGllcy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlclNlcnZpY2Uge1xuXG4gIFVTRVJfRkVUQ0hfVVJJID0gJy91c2VyP2Zhdm9yaXRlcz10cnVlJnByaXZpbGVnZXM9dHJ1ZSZyb2xlcz10cnVlJmRlcHV0aWVzPXRydWUmc3Vic3RpdHV0ZXNPZj10cnVlJztcblxuICBwcml2YXRlIHVzZXI6IEVvVXNlciA9IG51bGw7XG4gIHByaXZhdGUgdXNlclNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RW9Vc2VyPih0aGlzLnVzZXIpO1xuICAvKipcbiAgICogT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgY3VycmVudCB1c2VyXG4gICAqL1xuICBwdWJsaWMgdXNlciQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMudXNlclNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIGZhdm9yaXRlcyA9IG51bGw7XG4gIHByaXZhdGUgZmF2b3JpdGVzU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHRoaXMuZmF2b3JpdGVzKTtcbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgY3VycmVudCB1c2VycyBmYXZvcml0ZXNcbiAgICovXG4gIHB1YmxpYyBmYXZvcml0ZXNHcmlkRGF0YSQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuZmF2b3JpdGVzU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGZpbHRlcih2ID0+IHYpKTtcbiAgcHVibGljIGZhdm9yaXRlcyQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuZmF2b3JpdGVzR3JpZERhdGEkLnBpcGUodGhpcy5iYWNrZW5kLmdyaWREYXRhRmlsdGVyKTtcblxuICBwcml2YXRlIG5vdGlmaWNhdGlvbnMgPSBudWxsO1xuICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4odGhpcy5ub3RpZmljYXRpb25zKTtcblxuICAvKipcbiAgICogT2JzZXJ2YWJsZSBlbWl0dGluZyBjdXJyZW50IHVzZXJzIHJlY3ljbGViaW5cbiAgICovXG5cbiAgcHJpdmF0ZSByZWN5Y2xlcyA9IG51bGw7XG4gIHByaXZhdGUgcmVjeWNsZXNTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4odGhpcy5yZWN5Y2xlcyk7XG5cbiAgcHVibGljIHJlY3ljbGVzR3JpZERhdGEkIDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5yZWN5Y2xlc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRlYm91bmNlVGltZSgxMDApLCBmaWx0ZXIodiA9PiB2KSk7XG4gIHB1YmxpYyByZWN5Y2xlcyQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMucmVjeWNsZXNHcmlkRGF0YSQucGlwZSh0aGlzLmJhY2tlbmQuZ3JpZERhdGFGaWx0ZXIpO1xuXG5cbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZW1pdHRpbmcgY3VycmVudCB1c2VycyBub3RpZmljYXRpb25zXG4gICAqL1xuICBwdWJsaWMgbm90aWZpY2F0aW9uc0dyaWREYXRhJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5ub3RpZmljYXRpb25zU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIGZpbHRlcih2ID0+IHYpKTtcbiAgcHVibGljIG5vdGlmaWNhdGlvbnMkOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLm5vdGlmaWNhdGlvbnNHcmlkRGF0YSQucGlwZSh0aGlzLmJhY2tlbmQuZ3JpZERhdGFGaWx0ZXIpO1xuXG4gIHB1YmxpYyBwYXNzd29yZFZhbGlkYXRpb25TZXR0aW5nczogYW55O1xuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBzeXN0ZW06IFN5c3RlbVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZykge1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdXNlci5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgdXNlciBvciBOVUxMIGlmIG5vIHVzZXIgaXMgbG9nZ2VkIGluXG4gICAqL1xuICBwdWJsaWMgZ2V0Q3VycmVudFVzZXIoKTogRW9Vc2VyIHtcbiAgICByZXR1cm4gdGhpcy51c2VyO1xuICB9XG5cblxuICAvKipcbiAgICogU2V0IHByZXNlbmNlIG9mIHRoZSBjdXJyZW50IHVzZXJcbiAgICogQHBhcmFtIHByZXNlbnQgVmFsdWUgdG8gc2V0IHRoZSB1c2VycyBwcmVzZW5jZSB0b1xuICAgKi9cbiAgcHVibGljIHNldFByZXNlbmNlKHByZXNlbnQ6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgaWYgKHByZXNlbnQgIT09IHRoaXMudXNlci5wcmVzZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dCgnL3VzZXI/cHJlc2VuY2U9JyArIHByZXNlbnQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRhcChfID0+IHtcbiAgICAgICAgICAgIHRoaXMudXNlci5wcmVzZW50ID0gcHJlc2VudDtcbiAgICAgICAgICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB1cmlcbiAgICogQHJldHVybnNcbiAgICovXG5cbiAgcHVibGljIGRlbFVzZXJJbWFnZSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQodXJpLCBudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRVc2VySW1hZ2UoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoYC91c2VyL2ltYWdlYCxmaWxlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkZXB1dGllcyBmb3IgdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gZGVwdXRpZXNOYW1lcyBOYW1lcyBvZiB0aGUgdXNlcnMgdG8gYmUgc2V0IGFzIGRlcHV0aWVzXG4gICAqL1xuICBwdWJsaWMgc2V0RGVwdXRpZXMoZGVwdXRpZXNOYW1lczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KGAvdXNlci9kZXB1dHk/dXNlcj0ke2RlcHV0aWVzTmFtZXMuam9pbignJnVzZXI9Jyl9YCkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIHRoZSB1c2VycyBjbGllbnQgbG9jYWxlXG4gICAqIEBwYXJhbSBpc28gSVNPIGxvY2FsZSBzdHJpbmcgdG8gYmUgc2V0IGFzIG5ldyBjbGllbnQgbG9jYWxlXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlQ2xpZW50TG9jYWxlKGlzbzogc3RyaW5nKSB7XG4gICAgdGhpcy51c2VyLnVzZXJTZXR0aW5nc1snY2xpZW50bG9jYWxlJ10gPSBpc287XG4gICAgdGhpcy5iYWNrZW5kXG4gICAgICAucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncylcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2hhbmdlZCBjbGllbnQgbG9jYWxlIHRvIFxcJycgKyBpc28gKyAnXFwnJyk7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShpc28pO1xuICAgICAgICB0aGlzLnVzZXIudWlEaXJlY3Rpb24gPSAodGhpcy5jb25maWcuZ2V0Q2xpZW50TG9jYWxlcygpLmZpbmQobCA9PiBsLmlzbyA9PT0gaXNvKSB8fCB7fSkuZGlyIHx8IERpcmVjdGlvbi5MVFI7XG4gICAgICAgIHRoaXMudXNlclNvdXJjZS5uZXh0KHRoaXMudXNlcik7XG4gICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5DTElFTlRfTE9DQUxFX0NIQU5HRUQsIGlzbyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgdGhlIHVzZXJzIHNjaGVtYSBsb2NhbGVcbiAgICogQHBhcmFtIGlzbyBJU08gbG9jYWxlIHN0cmluZyB0byBiZSBzZXQgYXMgbmV3IHNjaGVtYSBsb2NhbGVcbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VTY2hlbWFMb2NhbGUoaXNvOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVzZXIuc2NoZW1hTG9jYWxlID0gaXNvO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5wdXQoJy91c2VyL2xvY2FsZS8nICsgdGhpcy51c2VyLnNjaGVtYUxvY2FsZSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdDaGFuZ2VkIHNjaGVtYSBsb2NhbGUgdG8gXFwnJyArIGlzbyArICdcXCcnKTtcbiAgICAgICAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuICAgICAgICAgIHRoaXMuYmFja2VuZC5zZXRIZWFkZXIoJ0FjY2VwdC1MYW5ndWFnZScsIHRoaXMudXNlci5nZXRTY2hlbWFMb2NhbGUoKSk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0xvYWRpbmcgc3lzdGVtIGRlZmluaXRpb24gZm9yIG5ldyBsb2NhbGUuJyk7XG4gICAgICAgICAgdGhpcy5zeXN0ZW0uZ2V0U3lzdGVtRGVmaW5pdGlvbih0aGlzLnVzZXIpLnN1YnNjcmliZSgpO1xuICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5TQ0hFTUFfTE9DQUxFX0NIQU5HRUQsIGlzbyk7XG4gICAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgYSBuZXcgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSByZXMgVGhlIHVzZXIgdG8gYmUgc2V0IGFzIGN1cnJlbnQgdXNlclxuICAgKi9cbiAgcHVibGljIHNldEN1cnJlbnRVc2VyKHJlczogYW55KSB7XG4gICAgdGhpcy51c2VyID0gbmV3IEVvVXNlcihyZXMpO1xuICAgIHRoaXMucGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3MgPSByZXMucGFzc3dvcnR2YWxpZGF0aW9uO1xuICAgIHRoaXMudXNlci5zZXRJbWFnZUJhc2UodGhpcy5iYWNrZW5kLmdldFNlcnZpY2VCYXNlKCkpO1xuICAgIHRoaXMuYmFja2VuZC5zZXRIZWFkZXIoJ0FjY2VwdC1MYW5ndWFnZScsIHRoaXMudXNlci5nZXRTY2hlbWFMb2NhbGUoKSk7XG5cbiAgICBjb25zdCBsYW5ndWFnZXMgPSB0aGlzLmNvbmZpZy5nZXRDbGllbnRMb2NhbGVzKCkubWFwKGxhbmcgPT4gbGFuZy5pc28pO1xuICAgIGxldCB1c2VyTGFuZyA9IHRoaXMudXNlci5nZXRDbGllbnRMb2NhbGUoKTtcbiAgICBpZiAobGFuZ3VhZ2VzLmluZGV4T2YodXNlckxhbmcpID09PSAtMSkge1xuICAgICAgdXNlckxhbmcgPSB0aGlzLmNvbmZpZy5nZXREZWZhdWx0Q2xpZW50TG9jYWxlKCk7XG4gICAgfVxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdTZXR0aW5nIGNsaWVudCBsb2NhbGUgdG8gXFwnJyArIHVzZXJMYW5nICsgJ1xcJycpO1xuICAgIHRoaXMudHJhbnNsYXRlLnVzZSh1c2VyTGFuZyk7XG4gICAgdGhpcy51c2VyLnVpRGlyZWN0aW9uID0gKHRoaXMuY29uZmlnLmdldENsaWVudExvY2FsZXMoKS5maW5kKGwgPT4gbC5pc28gPT09IHVzZXJMYW5nKSB8fCB7fSkuZGlyIHx8IERpcmVjdGlvbi5MVFI7XG5cbiAgICB0aGlzLnVzZXJTb3VyY2UubmV4dCh0aGlzLnVzZXIpO1xuXG4gICAgdGhpcy5mYXZvcml0ZXMgPSBudWxsO1xuICAgIHRoaXMuZmF2b3JpdGVzU291cmNlLm5leHQodGhpcy5mYXZvcml0ZXMpO1xuXG4gICAgdGhpcy5ub3RpZmljYXRpb25zID0gbnVsbDtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnNTb3VyY2UubmV4dCh0aGlzLm5vdGlmaWNhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGN1cnJlbnQgdXNlcnMgZmF2b3JpdGVzXG4gICAqL1xuICBwdWJsaWMgZ2V0RmF2b3JpdGVzKCk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICAvLyBvbmx5IGZhdm9yaXRlIG9iamVjdHMgb2YgdHlwZSAnRE1TX09CSkVDVCcsIGFyZSBhY2NlcHRlZFxuICAgIC8vIHJlYWQgbW9yZTogaHR0cDovL2ppcmEub3B0aW1hbC1zeXN0ZW1zLmRlL2Jyb3dzZS9DT09MLTIzMTZcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbignL3VzZXIvZmF2b3JpdGVzJylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzID0+IHJlcyAmJiByZXMuZmlsdGVyKHIgPT4gci5mYXZvcml0ZXR5cGUgPT09ICdETVNfT0JKRUNUJykpLFxuICAgICAgICB0YXAocmVzID0+IHtcbiAgICAgICAgICB0aGlzLmZhdm9yaXRlcyA9IHJlcztcbiAgICAgICAgICB0aGlzLmZhdm9yaXRlc1NvdXJjZS5uZXh0KHRoaXMuZmF2b3JpdGVzKTtcbiAgICAgICAgfSkpO1xuXG4gICAgLy8gLm1hcChyZXMgPT4ge1xuICAgIC8vICAgbGV0IGRtc09iamVjdCA9IHRoaXMucmVzb2x2ZU9iamVjdFR5cGVzKG5ldyBEbXNPYmplY3QocmVzKSk7XG4gICAgLy8gICByZXR1cm4gZG1zT2JqZWN0O1xuICAgIC8vIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvZnQgdXBkYXRlIGZvciB0aGUgdXNlcnMgZmF2b3JpdGVzXG4gICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgZmF2b3JpdGUgdG8gYmUgdXBkYXRlZFxuICAgKiBAcGFyYW0gaXRlbSBUaGUgbmV3IGZhdm9yaXRlIGl0ZW1cbiAgICogQHBhcmFtIG11bHRpIFdoZXRoZXIgb3Igbm90IHRvIHVwZGF0ZSBtdWx0aXBsZSBpdGVtc1xuICAgKi9cbiAgcHVibGljIHVwZGF0ZUZhdm9yaXRlcyhpZD86IHN0cmluZywgaXRlbT86IGFueSwgbXVsdGk/OiBhbnlbXSkge1xuICAgIGlmICh0aGlzLmJhY2tlbmQudXBkYXRlKHRoaXMuZmF2b3JpdGVzLCBtdWx0aSB8fCBbe2lkLCBpdGVtfV0pKSB7XG4gICAgICB0aGlzLmZhdm9yaXRlc1NvdXJjZS5uZXh0KHRoaXMuZmF2b3JpdGVzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXNlcnMgbm90aWZpY2F0aW9ucyAocmVzdWJtaXNzaW9ucyBhbmQgc3Vic2NyaXB0aW9ucylcbiAgICogQHJldHVybnMgUmVzb2x2ZWQgYnkgbGlzdCBvZiB0aGUgdXNlcnMgbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcHVibGljIGdldE5vdGlmaWNhdGlvbnMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBub3RpZmljYXRpb25EYXRhID0gW1xuICAgICAgdGhpcy5nZXRTdWJzY3JpcHRpb24oKSxcbiAgICAgIHRoaXMuZ2V0UmVzdWJtaXNzaW9uKClcbiAgICBdO1xuICAgIHJldHVybiBmb3JrSm9pbihub3RpZmljYXRpb25EYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB1c2VycyByZXN1Ym1pc3Npb25zXG4gICAqIEByZXR1cm5zIENvbGxlY3Rpb24gb2YgdXNlcnMgcmVzdWJtaXNzaW9uc1xuICAgKi9cbiAgcHVibGljIGdldFJlc3VibWlzc2lvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0SnNvbignL21lc3NhZ2Vwcm92aWRlci9yZXN1Ym1pc3Npb24vbGlzdCcpLnBpcGUoXG4gICAgICB0YXAocmVzcG9uc2UgPT4ge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSByZXNwb25zZTtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB1c2VycyBzdWJzY3JpcHRpb25zXG4gICAqIEByZXR1cm5zIENvbGxlY3Rpb24gb2YgdXNlcnMgc3Vic2NyaXB0aW9uc1xuICAgKi9cbiAgcHVibGljIGdldFN1YnNjcmlwdGlvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmRcbiAgICAgIC5nZXRKc29uKCcvbWVzc2FnZXByb3ZpZGVyL3N1YnNjcmlwdGlvbi9saXN0JykucGlwZShcbiAgICAgICAgdGFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSByZXNwb25zZTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTb3VyY2UubmV4dCh0aGlzLm5vdGlmaWNhdGlvbnMpO1xuICAgICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIG5vdGlmaWNhdGlvblxuICAgKiBAcGFyYW0gaWQgSUQgb2YgdGhlIG5vdGlmaWNhdGlvbiB0byBiZSByZW1vdmVkXG4gICAqIEBwYXJhbSB0eXBlIFRoZSBub3RpZmljYXRpb25zIHR5cGUgKCdTVUJTQ1JJUFRJT04nLCAnUkVTVUJNSVNTSU9OJylcbiAgICovXG4gIHB1YmxpYyByZW1vdmVOb3RpZmljYXRpb25zKGlkOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xuICAgIGxldCBtZXNzYWdldHlwZTogc3RyaW5nO1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnU1VCU0NSSVBUSU9OJzpcbiAgICAgICAgbWVzc2FnZXR5cGUgPSAnc3Vic2NyaXB0aW9uJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdSRVNVQk1JU1NJT04nOlxuICAgICAgICBtZXNzYWdldHlwZSA9ICdyZXN1Ym1pc3Npb24nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5kZWwoYC9tZXNzYWdlcHJvdmlkZXIvJHttZXNzYWdldHlwZX0vYCArIGlkKS5waXBlKHRhcChyZXMgPT4gdGhpcy51cGRhdGVOb3RpZmljYXRpb25zKCcnKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvZnQgdXBkYXRlIGZvciB1c2VycyBub3RpZmljYXRpb25zXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlTm90aWZpY2F0aW9ucyhpZD86IHN0cmluZywgaXRlbT86IGFueSwgbXVsdGk/OiBhbnlbXSkge1xuICAgIGlmICh0aGlzLmJhY2tlbmQudXBkYXRlKHRoaXMubm90aWZpY2F0aW9ucywgbXVsdGkgfHwgW3tpZCwgaXRlbX1dKSkge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25zU291cmNlLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgVVJJIHRvIGEgdXNlcnMgYXZhdGFyIGltYWdlXG4gICAqIEBwYXJhbSB1c2VySWQgVGhlIHVzZXJzIElEXG4gICAqIEByZXR1cm5zIFVSSSB0byB0aGUgdXNlciBpbWFnZVxuICAgKi9cbiAgcHVibGljIGdldFVzZXJJbWFnZVVyaSh1c2VySWQ6IHN0cmluZykge1xuICAgIHJldHVybiBgJHt0aGlzLmJhY2tlbmQuZ2V0QmFzZVdpdGhDb250ZXh0KHRoaXMuYmFja2VuZC5nZXRTZXJ2aWNlQmFzZSgpKX0vb3JnYW5pemF0aW9uL2ltYWdlLyR7dXNlcklkfT91c2VkZWZhdWx0PXRydWVgO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBmYXZvcml0ZSBpdGVtXG4gICAqIEBwYXJhbSBmYXZvcml0ZUlkIElEIG9mIHRoZSBmYXZvcml0ZSBpdGVtIHRvIGJlIHJlbW92ZWRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVGYXZvcml0ZShmYXZvcml0ZUlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbCgnL3VzZXIvZmF2b3JpdGUvJyArIGZhdm9yaXRlSWQpLnBpcGUodGFwKHJlcyA9PiB0aGlzLnVwZGF0ZUZhdm9yaXRlcyhmYXZvcml0ZUlkKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBmYXZvcml0ZSBpdGVtIGZvciB0aGUgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSBpZCBJRCBvZiB0aGUgZG1zIG9iamVjdCB0byBiZSBzZXQgdXAgYXMgZmF2b3JpdGVcbiAgICogQHBhcmFtIHR5cGUgVGhlIG9iamVjdCB0eXBlIG9mIHRoZSBkbXMgb2JqZWN0XG4gICAqIEBwYXJhbSB0aXRsZSBUaGUgZmF2b3JpdGVzIHRpdGxlXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlRmF2b3JpdGUoaWQ6IHN0cmluZywgdHlwZTogc3RyaW5nLCB0aXRsZTogc3RyaW5nKSB7XG4gICAgY29uc3QgdXJpID0gVXRpbHMuYnVpbGRVcmkoJy9kbXMvZmF2b3JpdGUvJyArIGlkLCB7dHlwZSwgdGl0bGV9KTtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnBvc3QodXJpLCB7fSkucGlwZSh0YXAocmVzID0+IHRoaXMuZ2V0RmF2b3JpdGVzKCkuc3Vic2NyaWJlKCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlRmF2b3JpdGVzRm9yVGFyZ2V0KGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmRlbCgnL2Rtcy9mYXZvcml0ZS8nICsgaWQpLnBpcGUodGFwKFxuICAgICAgcmVzID0+IHtcbiAgICAgICAgY29uc3QgdG9SZW1vdmUgPSB0aGlzLmZhdm9yaXRlcy5maWx0ZXIoaSA9PiBpLnRhcmdldC5pZCA9PT0gaWQpLm1hcChpID0+IE9iamVjdC5hc3NpZ24oe1xuICAgICAgICAgIGlkOiBpLmlkXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy51cGRhdGVGYXZvcml0ZXMobnVsbCwgbnVsbCwgdG9SZW1vdmUpO1xuICAgICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHVzZXJzIHJlY3ljbGViaW5cbiAgKi9cbiAgZ2V0UmVjeWNsZUJpbigpOiBPYnNlcnZhYmxlPGFueT4gIHtcbiAgICAgcmV0dXJuIHRoaXMuYmFja2VuZC5nZXRKc29uKGAvdXNlci9yZWN5Y2xlYmluYCkucGlwZShcbiAgICAgIHRhcChyZXNwb25zZT0+e1xuICAgICAgICB0aGlzLnJlY3ljbGVzPXJlc3BvbnNlO1xuICAgICAgICB0aGlzLnJlY3ljbGVzU291cmNlLm5leHQodGhpcy5yZWN5Y2xlcyk7XG4gICAgICB9KSk7XG4gICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHVzZXJzIHByZWZlcnJlZCBsb2NrIG1vZGUgYW5kIHBlcnNpc3RzIGl0IG9uIHRoZSBzZXJ2ZXJcbiAgICogQHBhcmFtIGxvY2sgVGhlIHZhbHVlIHRvIHNldCB0aGUgbG9jayBzZXR0aW5ncyB0b1xuICAgKi9cbiAgcHVibGljIGNoYW5nZUxvY2tTZXR0aW5nKGxvY2s6IHN0cmluZykge1xuICAgIHRoaXMudXNlci51c2VyU2V0dGluZ3MuYWx3YXlzbG9jayA9IGxvY2s7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKS5waXBlKG1hcCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNQcml2aWxlZ2UocHJpdmlsZWdlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLnVzZXIucHJpdmlsZWdlcy5maW5kKHByaXYgPT4gcHJpdi5uYW1lID09PSBwcml2aWxlZ2UpO1xuICB9XG5cblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgdXNlcnMgcGFzc3dvcmQgYW5kIHBlcnNpc3RzIGl0IG9uIHRoZSBzZXJ2ZXJcbiAgICovXG4gIGNoYW5nZVBhc3N3b3JkKHBheWxvYWQ6IENoYW5nZVBhc3N3b3JkSW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dChgL3VzZXIvcGFzc3dvcmRgLCBwYXlsb2FkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaGVzIHRoZSBzZXR0aW5ncyBmb3IgdGhlIGN1cnJlbnQgdXNlciBhbmQgc3RvcmVzIHRoZSBuZXcgVXNlciBvYmplY3Qgb24gdGhlIHNlc3Npb25cbiAgICovXG4gIHByaXZhdGUgcmVmcmVzaEN1cnJlbnRVc2VyKCkge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0KHRoaXMuVVNFUl9GRVRDSF9VUkkpLnBpcGUobWFwKHJlcyA9PiB0aGlzLnNldEN1cnJlbnRVc2VyKHJlcykpKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZVBhc3N3b3JkKHBhc3N3b3JkOiBzdHJpbmcpOiB7dHlwZTogc3RyaW5nLCBhbW91bnQ6IG51bWJlcn0ge1xuICAgIGlmIChwYXNzd29yZC5sZW5ndGggPCB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHt0eXBlOiAnc2hvcnQnLCBhbW91bnQ6IHRoaXMucGFzc3dvcmRWYWxpZGF0aW9uU2V0dGluZ3MubWlubGVuZ3RofTtcbiAgICB9XG5cbiAgICBpZiAocGFzc3dvcmQucmVwbGFjZSgvW14wLTldL2csICcnKS5sZW5ndGggPCB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbm51bWJlcikge1xuICAgICAgcmV0dXJuIHt0eXBlOiAnbnVtYmVyJywgYW1vdW50OiB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbm51bWJlcn07XG4gICAgfVxuXG4gICAgaWYgKHBhc3N3b3JkLnJlcGxhY2UoL1thLXpBLVowLTnDnyBdL2csICcnKS5sZW5ndGggPCB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbnNwZWNpYWxjaGFycykge1xuICAgICAgcmV0dXJuIHt0eXBlOiAnc3BlY2lhbGNoYXJzJywgYW1vdW50OiB0aGlzLnBhc3N3b3JkVmFsaWRhdGlvblNldHRpbmdzLm1pbnNwZWNpYWxjaGFyc307XG4gICAgfVxuXG4gICAgcmV0dXJuICB7dHlwZTogJ3ZhbGlkJywgYW1vdW50OiBudWxsfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSB1c2VycyBzYXZlZCBpbmJveCBmaWx0ZXIgdGVybXNcbiAgICogQHBhcmFtIGZpbHRlclRlcm1zIFRoZSB2YWx1ZSB0byBzZXQgdGhlIHNhdmVkIGluYm94IGZpbHRlcnMgbGlzdCB0b1xuICAgKi9cbiAgcHVibGljIGNoYW5nZVNhdmVkSW5ib3hGaWx0ZXJzKGZpbHRlclRlcm1zOiBzdHJpbmdbXSkge1xuICAgIHRoaXMudXNlci51c2VyU2V0dGluZ3Muc2F2ZWRJbmJveEZpbHRlciA9IGZpbHRlclRlcm1zO1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQucHV0KCcvdXNlci9jb25maWcvd2ViJywgdGhpcy51c2VyLnVzZXJTZXR0aW5ncykucGlwZShtYXAoKCkgPT4ge1xuICAgICAgdGhpcy5yZWZyZXNoQ3VycmVudFVzZXIoKS5zdWJzY3JpYmUoKTtcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBvciBjaGFuZ2UgdGhlIHdvcmtzcGFjZSBvZiB0aGUgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSB3b3Jrc3BhY2VDb25maWcgVGhlIHZhbHVlIHRvIHNldCB0aGUgc2F2ZWQgd29ya3NwYWNlIG9yIGNyZWF0ZSBhIG5ldyB3b3Jrc3BhY2VcbiAgICovXG4gIHB1YmxpYyBzYXZlQ2hhbmdlV29ya3NwYWNlKHdvcmtzcGFjZUNvbmZpZzogV2lkZ2V0R3JpZFdvcmtzcGFjZUNvbmZpZykge1xuICAgIHRoaXMudXNlci51c2VyU2V0dGluZ3Mud29ya3NwYWNlT3B0aW9ucyA9IHdvcmtzcGFjZUNvbmZpZztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLnB1dCgnL3VzZXIvY29uZmlnL3dlYicsIHRoaXMudXNlci51c2VyU2V0dGluZ3MpLnBpcGUobWFwKCgpID0+IHtcbiAgICAgIHRoaXMucmVmcmVzaEN1cnJlbnRVc2VyKCkuc3Vic2NyaWJlKCk7XG4gICAgfSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgdGhlIGZpZWxkIGRlZmluaXRpb25zIG9mIGFuIG9iamVjdCB0eXBlXG4gICAqIEBwYXJhbSB0eXBlIFRoZSBvYmplY3QgdHlwZVxuICAgKi9cblxuICBwdWJsaWMgZ2V0RmllbGREZWZpbml0aW9uKHR5cGU6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbnRleHRUeXBlID0gJ3N5c2ZvbGRlcic7XG4gICAgbGV0IG1vZGUgPSAnQUxMJztcbiAgICByZXR1cm4gdGhpcy5iYWNrZW5kLmdldChgL3VzZXIvY29uZmlnL3Jlc3VsdC8ke3R5cGV9P2NvbnRleHR0eXBlPSR7Y29udGV4dFR5cGV9Jm1vZGU9JHttb2RlfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgb3IgY2hhbmdlIHRoZSB2aXNpYmlsaXR5IHN0YXRlIG9mIGRhc2hib2FyZCB0b29sYmFyIGZvciB0aGUgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSB0b29sYmFyVmlzaWJpbGl0eSBUaGUgdmlzaWJpbGl0eSBzdGF0ZVxuICAgKi9cbiAgcHVibGljIHNhdmVUb29sYmFyU3RhdGUodG9vbGJhclZpc2liaWxpdHk6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnVzZXIudXNlclNldHRpbmdzLnRvb2xiYXJWaXNpYmlsaXR5ID0gdG9vbGJhclZpc2liaWxpdHk7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy93ZWInLCB0aGlzLnVzZXIudXNlclNldHRpbmdzKS5waXBlKG1hcCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIHRoZSBsb2NhbCBzdG9yYWdlIHNldHRpbmdzXG4gICAqIEBwYXJhbSBsb2NhbFNldHRpbmdzIFRoZSBsb2NhbCBzZXR0aW5ncyB0byBiZSBzYXZlZCBmcm9tIHRoZSBsb2NhbHN0b3JhZ2VcbiAgICogQHBhcmFtIGNhY2hlU2V0dGluZ3MgVGhlIGxvY2FsIHNldHRpbmdzIHRvIGJlIHNhdmVkIGZyb20gdGhlIGFwcCBjYWNoZVxuICAgKi9cbiAgcHVibGljIHNhdmVMb2NhbFNldHRpbmdzKGxvY2FsU2V0dGluZ3M6IGFueSwgY2FjaGVTZXR0aW5nczogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuYmFja2VuZC5wdXQoJy91c2VyL2NvbmZpZy9sb2NhbFNldHRpbmdzJywge2xvY2FsU2V0dGluZ3M6IGxvY2FsU2V0dGluZ3MsIGNhY2hlU2V0dGluZ3M6IGNhY2hlU2V0dGluZ3N9KS5waXBlKG1hcCgoKSA9PiB7XG4gICAgICB0aGlzLnJlZnJlc2hDdXJyZW50VXNlcigpLnN1YnNjcmliZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgbG9jYWwgc3RvcmFnZSBzZXR0aW5nc1xuICAgKiBAcmV0dXJucyBUaGUgc2F2ZWQgc2V0dGluZ3NcbiAgICovXG4gIHB1YmxpYyBsb2FkTG9jYWxTZXR0aW5ncygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhY2tlbmQuZ2V0KCcvdXNlci9jb25maWcvbG9jYWxTZXR0aW5ncycpO1xuICB9XG59XG4iXX0=
|