stream-chat-angular 2.8.2 → 2.12.0
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/assets/i18n/en.d.ts +2 -0
- package/assets/version.d.ts +1 -1
- package/bundles/stream-chat-angular.umd.js +804 -338
- package/bundles/stream-chat-angular.umd.js.map +1 -1
- package/esm2015/assets/i18n/en.js +3 -1
- package/esm2015/assets/version.js +2 -2
- package/esm2015/lib/attachment-list/attachment-list.component.js +21 -8
- package/esm2015/lib/channel/channel.component.js +3 -2
- package/esm2015/lib/channel.service.js +191 -38
- package/esm2015/lib/chat-client.service.js +6 -1
- package/esm2015/lib/icon/icon.component.js +2 -2
- package/esm2015/lib/message/message.component.js +67 -42
- package/esm2015/lib/message-actions-box/message-actions-box.component.js +20 -9
- package/esm2015/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.js +35 -9
- package/esm2015/lib/message-input/message-input-config.service.js +1 -1
- package/esm2015/lib/message-input/message-input.component.js +69 -13
- package/esm2015/lib/message-input/textarea.directive.js +10 -2
- package/esm2015/lib/message-input/textarea.interface.js +1 -1
- package/esm2015/lib/message-list/message-list.component.js +130 -55
- package/esm2015/lib/message-preview.js +4 -2
- package/esm2015/lib/stream-chat.module.js +8 -3
- package/esm2015/lib/thread/thread.component.js +37 -0
- package/esm2015/lib/types.js +1 -1
- package/esm2015/public-api.js +2 -1
- package/fesm2015/stream-chat-angular.js +659 -250
- package/fesm2015/stream-chat-angular.js.map +1 -1
- package/lib/attachment-list/attachment-list.component.d.ts +8 -3
- package/lib/channel/channel.component.d.ts +2 -1
- package/lib/channel.service.d.ts +23 -7
- package/lib/chat-client.service.d.ts +1 -0
- package/lib/icon/icon.component.d.ts +1 -1
- package/lib/message/message.component.d.ts +26 -8
- package/lib/message-actions-box/message-actions-box.component.d.ts +4 -1
- package/lib/message-input/autocomplete-textarea/autocomplete-textarea.component.d.ts +6 -3
- package/lib/message-input/message-input-config.service.d.ts +2 -1
- package/lib/message-input/message-input.component.d.ts +9 -2
- package/lib/message-input/textarea.directive.d.ts +3 -2
- package/lib/message-input/textarea.interface.d.ts +2 -1
- package/lib/message-list/message-list.component.d.ts +21 -7
- package/lib/message-preview.d.ts +1 -1
- package/lib/stream-chat.module.d.ts +5 -4
- package/lib/thread/thread.component.d.ts +18 -0
- package/lib/types.d.ts +7 -1
- package/package.json +2 -11
- package/public-api.d.ts +1 -0
- package/src/assets/i18n/en.ts +4 -0
- package/src/assets/version.ts +1 -1
|
@@ -51,21 +51,32 @@ export class MessageActionsBoxComponent {
|
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
get isQuoteVisible() {
|
|
54
|
-
|
|
54
|
+
var _a;
|
|
55
|
+
return ((this.enabledActions.indexOf('quote') !== -1 ||
|
|
56
|
+
this.enabledActions.indexOf('quote-message') !== -1) &&
|
|
57
|
+
!((_a = this.message) === null || _a === void 0 ? void 0 : _a.quoted_message));
|
|
55
58
|
}
|
|
56
59
|
get isEditVisible() {
|
|
57
|
-
return ((this.enabledActions.indexOf('edit') !== -1
|
|
58
|
-
this.enabledActions.indexOf('
|
|
60
|
+
return (((this.enabledActions.indexOf('edit') !== -1 ||
|
|
61
|
+
this.enabledActions.indexOf('update-own-message') !== -1) &&
|
|
62
|
+
this.isMine) ||
|
|
63
|
+
this.enabledActions.indexOf('edit-any') !== -1 ||
|
|
64
|
+
this.enabledActions.indexOf('update-any-message') !== -1);
|
|
59
65
|
}
|
|
60
66
|
get isDeleteVisible() {
|
|
61
|
-
return ((this.enabledActions.indexOf('delete') !== -1
|
|
62
|
-
this.enabledActions.indexOf('delete-
|
|
67
|
+
return (((this.enabledActions.indexOf('delete') !== -1 ||
|
|
68
|
+
this.enabledActions.indexOf('delete-own-message') !== -1) &&
|
|
69
|
+
this.isMine) ||
|
|
70
|
+
this.enabledActions.indexOf('delete-any') !== -1 ||
|
|
71
|
+
this.enabledActions.indexOf('delete-any-message') !== -1);
|
|
63
72
|
}
|
|
64
73
|
get isMuteVisible() {
|
|
65
74
|
return this.enabledActions.indexOf('mute') !== -1;
|
|
66
75
|
}
|
|
67
76
|
get isFlagVisible() {
|
|
68
|
-
return this.enabledActions.indexOf('flag') !== -1
|
|
77
|
+
return ((this.enabledActions.indexOf('flag') !== -1 ||
|
|
78
|
+
this.enabledActions.indexOf('flag-message') !== -1) &&
|
|
79
|
+
!this.isMine);
|
|
69
80
|
}
|
|
70
81
|
get isPinVisible() {
|
|
71
82
|
return this.enabledActions.indexOf('pin') !== -1;
|
|
@@ -88,7 +99,7 @@ export class MessageActionsBoxComponent {
|
|
|
88
99
|
alert('Feature not yet implemented');
|
|
89
100
|
}
|
|
90
101
|
quoteClicked() {
|
|
91
|
-
|
|
102
|
+
this.channelService.selectMessageToQuote(this.message);
|
|
92
103
|
}
|
|
93
104
|
editClicked() {
|
|
94
105
|
this.isEditing.emit(true);
|
|
@@ -110,7 +121,7 @@ export class MessageActionsBoxComponent {
|
|
|
110
121
|
}
|
|
111
122
|
}
|
|
112
123
|
MessageActionsBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: MessageActionsBoxComponent, deps: [{ token: i1.ChatClientService }, { token: i2.NotificationService }, { token: i3.ChannelService }], target: i0.ɵɵFactoryTarget.Component });
|
|
113
|
-
MessageActionsBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: MessageActionsBoxComponent, selector: "stream-message-actions-box", inputs: { messageInputTemplate: "messageInputTemplate", isOpen: "isOpen", isMine: "isMine", message: "message", enabledActions: "enabledActions" }, outputs: { displayedActionsCount: "displayedActionsCount", isEditing: "isEditing" }, viewQueries: [{ propertyName: "messageInput", first: true, predicate: MessageInputComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n data-testid=\"action-box\"\n class=\"str-chat__message-actions-box\"\n [class.str-chat__message-actions-box--open]=\"isOpen\"\n [class.str-chat__message-actions-box--mine]=\"isMine\"\n>\n <ul class=\"str-chat__message-actions-list\">\n <button\n data-testid=\"quote-action\"\n *ngIf=\"isQuoteVisible\"\n (click)=\"quoteClicked()\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ \"streamChat.Reply\" | translate }}\n </li>\n </button>\n <button\n data-testid=\"pin-action\"\n *ngIf=\"isPinVisible\"\n (click)=\"pinClicked()\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{\n (message?.pinned ? \"streamChat.Unpin\" : \"streamChat.Pin\") | translate\n }}\n </li>\n </button>\n <button\n data-testid=\"flag-action\"\n *ngIf=\"isFlagVisible\"\n (click)=\"flagClicked()\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ \"streamChat.Flag\" | translate }}\n </li>\n </button>\n <button\n data-testid=\"mute-action\"\n *ngIf=\"isMuteVisible\"\n (click)=\"muteClicked()\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ \"streamChat.Mute\" | translate }}\n </li>\n </button>\n <button\n data-testid=\"edit-action\"\n *ngIf=\"isEditVisible\"\n (click)=\"editClicked()\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ \"streamChat.Edit Message\" | translate }}\n </li>\n </button>\n <button\n data-testid=\"delete-action\"\n *ngIf=\"isDeleteVisible\"\n (click)=\"deleteClicked()\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ \"streamChat.Delete\" | translate }}\n </li>\n </button>\n </ul>\n</div>\n\n<stream-modal\n [isOpen]=\"isEditModalOpen\"\n (isOpenChange)=\"\n isEditModalOpen = $event; isEditModalOpen ? '' : modalClosed()\n \"\n>\n <div class=\"str-chat__edit-message-form\" *ngIf=\"isEditModalOpen\">\n <ng-container *ngIf=\"messageInputTemplate; else defaultInput\">\n <ng-container\n *ngTemplateOutlet=\"\n messageInputTemplate;\n context: {\n message: message,\n messageUpdateHandler: modalClosed\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultInput>\n <stream-message-input\n [message]=\"message\"\n (messageUpdate)=\"modalClosed()\"\n ></stream-message-input>\n </ng-template>\n <stream-notification-list></stream-notification-list>\n <div\n class=\"\n str-chat__message-team-form-footer\n str-chat__message-team-form-footer-angular\n \"\n >\n <div class=\"str-chat__edit-message-form-options\">\n <button translate data-testid=\"cancel-button\" (click)=\"modalClosed()\">\n streamChat.Cancel\n </button>\n <button\n type=\"submit\"\n translate\n data-testid=\"send-button\"\n (click)=\"sendClicked()\"\n (keyup.enter)=\"sendClicked()\"\n >\n streamChat.Send\n </button>\n </div>\n </div>\n </div>\n</stream-modal>\n", components: [{ type: i4.ModalComponent, selector: "stream-modal", inputs: ["isOpen"], outputs: ["isOpenChange"] }, { type: i5.MessageInputComponent, selector: "stream-message-input", inputs: ["isFileUploadEnabled", "areMentionsEnabled", "mentionScope", "mentionAutocompleteItemTemplate", "acceptedFileTypes", "isMultipleFileUploadEnabled", "message"], outputs: ["messageUpdate"] }, { type: i6.NotificationListComponent, selector: "stream-notification-list" }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i8.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], pipes: { "translate": i8.TranslatePipe } });
|
|
124
|
+
MessageActionsBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: MessageActionsBoxComponent, selector: "stream-message-actions-box", inputs: { messageInputTemplate: "messageInputTemplate", isOpen: "isOpen", isMine: "isMine", message: "message", enabledActions: "enabledActions" }, outputs: { displayedActionsCount: "displayedActionsCount", isEditing: "isEditing" }, viewQueries: [{ propertyName: "messageInput", first: true, predicate: MessageInputComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n data-testid=\"action-box\"\n class=\"str-chat__message-actions-box\"\n [class.str-chat__message-actions-box--open]=\"isOpen\"\n [class.str-chat__message-actions-box--mine]=\"isMine\"\n>\n <ul class=\"str-chat__message-actions-list\">\n <button\n data-testid=\"quote-action\"\n *ngIf=\"isQuoteVisible\"\n (click)=\"quoteClicked()\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ \"streamChat.Reply\" | translate }}\n </li>\n </button>\n <button\n data-testid=\"pin-action\"\n *ngIf=\"isPinVisible\"\n (click)=\"pinClicked()\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{\n (message?.pinned ? \"streamChat.Unpin\" : \"streamChat.Pin\") | translate\n }}\n </li>\n </button>\n <button\n data-testid=\"flag-action\"\n *ngIf=\"isFlagVisible\"\n (click)=\"flagClicked()\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ \"streamChat.Flag\" | translate }}\n </li>\n </button>\n <button\n data-testid=\"mute-action\"\n *ngIf=\"isMuteVisible\"\n (click)=\"muteClicked()\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ \"streamChat.Mute\" | translate }}\n </li>\n </button>\n <button\n data-testid=\"edit-action\"\n *ngIf=\"isEditVisible\"\n (click)=\"editClicked()\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ \"streamChat.Edit Message\" | translate }}\n </li>\n </button>\n <button\n data-testid=\"delete-action\"\n *ngIf=\"isDeleteVisible\"\n (click)=\"deleteClicked()\"\n >\n <li class=\"str-chat__message-actions-list-item\">\n {{ \"streamChat.Delete\" | translate }}\n </li>\n </button>\n </ul>\n</div>\n\n<stream-modal\n [isOpen]=\"isEditModalOpen\"\n (isOpenChange)=\"\n isEditModalOpen = $event; isEditModalOpen ? '' : modalClosed()\n \"\n>\n <div class=\"str-chat__edit-message-form\" *ngIf=\"isEditModalOpen\">\n <ng-container *ngIf=\"messageInputTemplate; else defaultInput\">\n <ng-container\n *ngTemplateOutlet=\"\n messageInputTemplate;\n context: {\n message: message,\n messageUpdateHandler: modalClosed\n }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultInput>\n <stream-message-input\n [message]=\"message\"\n (messageUpdate)=\"modalClosed()\"\n ></stream-message-input>\n </ng-template>\n <stream-notification-list></stream-notification-list>\n <div\n class=\"\n str-chat__message-team-form-footer\n str-chat__message-team-form-footer-angular\n \"\n >\n <div class=\"str-chat__edit-message-form-options\">\n <button translate data-testid=\"cancel-button\" (click)=\"modalClosed()\">\n streamChat.Cancel\n </button>\n <button\n type=\"submit\"\n translate\n data-testid=\"send-button\"\n (click)=\"sendClicked()\"\n (keyup.enter)=\"sendClicked()\"\n >\n streamChat.Send\n </button>\n </div>\n </div>\n </div>\n</stream-modal>\n", components: [{ type: i4.ModalComponent, selector: "stream-modal", inputs: ["isOpen"], outputs: ["isOpenChange"] }, { type: i5.MessageInputComponent, selector: "stream-message-input", inputs: ["isFileUploadEnabled", "areMentionsEnabled", "mentionScope", "mentionAutocompleteItemTemplate", "commandAutocompleteItemTemplate", "mode", "acceptedFileTypes", "isMultipleFileUploadEnabled", "message"], outputs: ["messageUpdate"] }, { type: i6.NotificationListComponent, selector: "stream-notification-list" }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i8.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], pipes: { "translate": i8.TranslatePipe } });
|
|
114
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: MessageActionsBoxComponent, decorators: [{
|
|
115
126
|
type: Component,
|
|
116
127
|
args: [{
|
|
@@ -136,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
136
147
|
type: ViewChild,
|
|
137
148
|
args: [MessageInputComponent]
|
|
138
149
|
}] } });
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1hY3Rpb25zLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvbWVzc2FnZS1hY3Rpb25zLWJveC9tZXNzYWdlLWFjdGlvbnMtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLWFjdGlvbnMtYm94L21lc3NhZ2UtYWN0aW9ucy1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7O0FBbUJqRixNQUFNLE9BQU8sMEJBQTBCO0lBYXJDLFlBQ1UsaUJBQW9DLEVBQ3BDLG1CQUF3QyxFQUN4QyxjQUE4QjtRQUY5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBZC9CLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYsbUJBQWMsR0FBcUIsRUFBRSxDQUFDO1FBQzVCLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDM0Qsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFxR3hCLGdCQUFXLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUss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QUN2QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXOztRQUNULE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQU9LLGFBQWE7O1lBQ2pCLElBQUk7Z0JBQ0YsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBUSxDQUFDLENBQUM7YUFDeEQ7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsd0JBQXdCLENBQy9DLG1DQUFtQyxDQUNwQyxDQUFDO2FBQ0g7UUFDSCxDQUFDO0tBQUE7O3VIQTFIVSwwQkFBMEI7MkdBQTFCLDBCQUEwQix5VkFTMUIscUJBQXFCLHFFQ3hDbEMsd3NHQWtIQTsyRkRuRmEsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFdBQVcsRUFBRSxzQ0FBc0M7b0JBQ25ELE1BQU0sRUFBRSxFQUFFO2lCQUNYO3VLQUVVLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNhLHFCQUFxQjtzQkFBdkMsTUFBTTtnQkFDWSxTQUFTO3NCQUEzQixNQUFNO2dCQUVtQyxZQUFZO3NCQUFyRCxTQUFTO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi9jaGFubmVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hhdENsaWVudFNlcnZpY2UgfSBmcm9tICcuLi9jaGF0LWNsaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE1lc3NhZ2VJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL21lc3NhZ2UtaW5wdXQvbWVzc2FnZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFN0cmVhbU1lc3NhZ2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIE1lc3NhZ2VBY3Rpb25zID1cbiAgfCAnZWRpdCdcbiAgfCAnZGVsZXRlJ1xuICB8ICdlZGl0LWFueSdcbiAgfCAnZGVsZXRlLWFueSdcbiAgfCAncGluJ1xuICB8ICdxdW90ZSdcbiAgfCAnZmxhZydcbiAgfCAnbXV0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0cmVhbS1tZXNzYWdlLWFjdGlvbnMtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2UtYWN0aW9ucy1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlQWN0aW9uc0JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIG1lc3NhZ2VJbnB1dFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBpc09wZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNNaW5lID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2U6IFN0cmVhbU1lc3NhZ2UgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGVuYWJsZWRBY3Rpb25zOiBNZXNzYWdlQWN0aW9uc1tdID0gW107XG4gIEBPdXRwdXQoKSByZWFkb25seSBkaXNwbGF5ZWRBY3Rpb25zQ291bnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGlzRWRpdGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgaXNFZGl0TW9kYWxPcGVuID0gZmFsc2U7XG4gIEBWaWV3Q2hpbGQoTWVzc2FnZUlucHV0Q29tcG9uZW50KSBwcml2YXRlIG1lc3NhZ2VJbnB1dDpcbiAgICB8IE1lc3NhZ2VJbnB1dENvbXBvbmVudFxuICAgIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhdENsaWVudFNlcnZpY2U6IENoYXRDbGllbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5uZWxTZXJ2aWNlOiBDaGFubmVsU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmlzTWluZSB8fCBjaGFuZ2VzLmVuYWJsZWRBY3Rpb25zKSB7XG4gICAgICBsZXQgZGlzcGxheWVkQWN0aW9uc0NvdW50ID0gMDtcbiAgICAgIGlmICh0aGlzLmlzUXVvdGVWaXNpYmxlKSB7XG4gICAgICAgIGRpc3BsYXllZEFjdGlvbnNDb3VudCsrO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNFZGl0VmlzaWJsZSkge1xuICAgICAgICBkaXNwbGF5ZWRBY3Rpb25zQ291bnQrKztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmlzRGVsZXRlVmlzaWJsZSkge1xuICAgICAgICBkaXNwbGF5ZWRBY3Rpb25zQ291bnQrKztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmlzTXV0ZVZpc2libGUpIHtcbiAgICAgICAgZGlzcGxheWVkQWN0aW9uc0NvdW50Kys7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc0ZsYWdWaXNpYmxlKSB7XG4gICAgICAgIGRpc3BsYXllZEFjdGlvbnNDb3VudCsrO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNQaW5WaXNpYmxlKSB7XG4gICAgICAgIGRpc3BsYXllZEFjdGlvbnNDb3VudCsrO1xuICAgICAgfVxuICAgICAgdGhpcy5kaXNwbGF5ZWRBY3Rpb25zQ291bnQubmV4dChkaXNwbGF5ZWRBY3Rpb25zQ291bnQpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc1F1b3RlVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbmFibGVkQWN0aW9ucy5pbmRleE9mKCdxdW90ZScpICE9PSAtMTtcbiAgfVxuXG4gIGdldCBpc0VkaXRWaXNpYmxlKCkge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5lbmFibGVkQWN0aW9ucy5pbmRleE9mKCdlZGl0JykgIT09IC0xICYmIHRoaXMuaXNNaW5lKSB8fFxuICAgICAgdGhpcy5lbmFibGVkQWN0aW9ucy5pbmRleE9mKCdlZGl0LWFueScpICE9PSAtMVxuICAgICk7XG4gIH1cblxuICBnZXQgaXNEZWxldGVWaXNpYmxlKCkge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5lbmFibGVkQWN0aW9ucy5pbmRleE9mKCdkZWxldGUnKSAhPT0gLTEgJiYgdGhpcy5pc01pbmUpIHx8XG4gICAgICB0aGlzLmVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ2RlbGV0ZS1hbnknKSAhPT0gLTFcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlzTXV0ZVZpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlZEFjdGlvbnMuaW5kZXhPZignbXV0ZScpICE9PSAtMTtcbiAgfVxuXG4gIGdldCBpc0ZsYWdWaXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ2ZsYWcnKSAhPT0gLTEgJiYgIXRoaXMuaXNNaW5lO1xuICB9XG5cbiAgZ2V0IGlzUGluVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5lbmFibGVkQWN0aW9ucy5pbmRleE9mKCdwaW4nKSAhPT0gLTE7XG4gIH1cblxuICBwaW5DbGlja2VkKCkge1xuICAgIGFsZXJ0KCdGZWF0dXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIGFzeW5jIGZsYWdDbGlja2VkKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNoYXRDbGllbnRTZXJ2aWNlLmZsYWdNZXNzYWdlKHRoaXMubWVzc2FnZSEuaWQpO1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmFkZFRlbXBvcmFyeU5vdGlmaWNhdGlvbihcbiAgICAgICAgJ3N0cmVhbUNoYXQuTWVzc2FnZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZmxhZ2dlZCcsXG4gICAgICAgICdzdWNjZXNzJ1xuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5hZGRUZW1wb3JhcnlOb3RpZmljYXRpb24oXG4gICAgICAgICdzdHJlYW1DaGF0LkVycm9yIGFkZGluZyBmbGFnJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBtdXRlQ2xpY2tlZCgpIHtcbiAgICBhbGVydCgnRmVhdHVyZSBub3QgeWV0IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICBxdW90ZUNsaWNrZWQoKSB7XG4gICAgYWxlcnQoJ0ZlYXR1cmUgbm90IHlldCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgZWRpdENsaWNrZWQoKSB7XG4gICAgdGhpcy5pc0VkaXRpbmcuZW1pdCh0cnVlKTtcbiAgICB0aGlzLmlzRWRpdE1vZGFsT3BlbiA9IHRydWU7XG4gIH1cblxuICBzZW5kQ2xpY2tlZCgpIHtcbiAgICB0aGlzLm1lc3NhZ2VJbnB1dD8ubWVzc2FnZVNlbnQoKTtcbiAgfVxuXG4gIG1vZGFsQ2xvc2VkID0gKCkgPT4ge1xuICAgIHRoaXMuaXNFZGl0TW9kYWxPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5pc0VkaXRpbmcuZW1pdChmYWxzZSk7XG4gIH07XG5cbiAgYXN5bmMgZGVsZXRlQ2xpY2tlZCgpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5jaGFubmVsU2VydmljZS5kZWxldGVNZXNzYWdlKHRoaXMubWVzc2FnZSEpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuYWRkVGVtcG9yYXJ5Tm90aWZpY2F0aW9uKFxuICAgICAgICAnc3RyZWFtQ2hhdC5FcnJvciBkZWxldGluZyBtZXNzYWdlJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgZGF0YS10ZXN0aWQ9XCJhY3Rpb24tYm94XCJcbiAgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1hY3Rpb25zLWJveFwiXG4gIFtjbGFzcy5zdHItY2hhdF9fbWVzc2FnZS1hY3Rpb25zLWJveC0tb3Blbl09XCJpc09wZW5cIlxuICBbY2xhc3Muc3RyLWNoYXRfX21lc3NhZ2UtYWN0aW9ucy1ib3gtLW1pbmVdPVwiaXNNaW5lXCJcbj5cbiAgPHVsIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtYWN0aW9ucy1saXN0XCI+XG4gICAgPGJ1dHRvblxuICAgICAgZGF0YS10ZXN0aWQ9XCJxdW90ZS1hY3Rpb25cIlxuICAgICAgKm5nSWY9XCJpc1F1b3RlVmlzaWJsZVwiXG4gICAgICAoY2xpY2spPVwicXVvdGVDbGlja2VkKClcIlxuICAgID5cbiAgICAgIDxsaSBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLWFjdGlvbnMtbGlzdC1pdGVtXCI+XG4gICAgICAgIHt7IFwic3RyZWFtQ2hhdC5SZXBseVwiIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2xpPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGRhdGEtdGVzdGlkPVwicGluLWFjdGlvblwiXG4gICAgICAqbmdJZj1cImlzUGluVmlzaWJsZVwiXG4gICAgICAoY2xpY2spPVwicGluQ2xpY2tlZCgpXCJcbiAgICA+XG4gICAgICA8bGkgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1hY3Rpb25zLWxpc3QtaXRlbVwiPlxuICAgICAgICB7e1xuICAgICAgICAgIChtZXNzYWdlPy5waW5uZWQgPyBcInN0cmVhbUNoYXQuVW5waW5cIiA6IFwic3RyZWFtQ2hhdC5QaW5cIikgfCB0cmFuc2xhdGVcbiAgICAgICAgfX1cbiAgICAgIDwvbGk+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgZGF0YS10ZXN0aWQ9XCJmbGFnLWFjdGlvblwiXG4gICAgICAqbmdJZj1cImlzRmxhZ1Zpc2libGVcIlxuICAgICAgKGNsaWNrKT1cImZsYWdDbGlja2VkKClcIlxuICAgID5cbiAgICAgIDxsaSBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLWFjdGlvbnMtbGlzdC1pdGVtXCI+XG4gICAgICAgIHt7IFwic3RyZWFtQ2hhdC5GbGFnXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbGk+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgZGF0YS10ZXN0aWQ9XCJtdXRlLWFjdGlvblwiXG4gICAgICAqbmdJZj1cImlzTXV0ZVZpc2libGVcIlxuICAgICAgKGNsaWNrKT1cIm11dGVDbGlja2VkKClcIlxuICAgID5cbiAgICAgIDxsaSBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLWFjdGlvbnMtbGlzdC1pdGVtXCI+XG4gICAgICAgIHt7IFwic3RyZWFtQ2hhdC5NdXRlXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbGk+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgZGF0YS10ZXN0aWQ9XCJlZGl0LWFjdGlvblwiXG4gICAgICAqbmdJZj1cImlzRWRpdFZpc2libGVcIlxuICAgICAgKGNsaWNrKT1cImVkaXRDbGlja2VkKClcIlxuICAgID5cbiAgICAgIDxsaSBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLWFjdGlvbnMtbGlzdC1pdGVtXCI+XG4gICAgICAgIHt7IFwic3RyZWFtQ2hhdC5FZGl0IE1lc3NhZ2VcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9saT5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBkYXRhLXRlc3RpZD1cImRlbGV0ZS1hY3Rpb25cIlxuICAgICAgKm5nSWY9XCJpc0RlbGV0ZVZpc2libGVcIlxuICAgICAgKGNsaWNrKT1cImRlbGV0ZUNsaWNrZWQoKVwiXG4gICAgPlxuICAgICAgPGxpIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtYWN0aW9ucy1saXN0LWl0ZW1cIj5cbiAgICAgICAge3sgXCJzdHJlYW1DaGF0LkRlbGV0ZVwiIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2xpPlxuICAgIDwvYnV0dG9uPlxuICA8L3VsPlxuPC9kaXY+XG5cbjxzdHJlYW0tbW9kYWxcbiAgW2lzT3Blbl09XCJpc0VkaXRNb2RhbE9wZW5cIlxuICAoaXNPcGVuQ2hhbmdlKT1cIlxuICAgIGlzRWRpdE1vZGFsT3BlbiA9ICRldmVudDsgaXNFZGl0TW9kYWxPcGVuID8gJycgOiBtb2RhbENsb3NlZCgpXG4gIFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fZWRpdC1tZXNzYWdlLWZvcm1cIiAqbmdJZj1cImlzRWRpdE1vZGFsT3BlblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtZXNzYWdlSW5wdXRUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0SW5wdXRcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICBtZXNzYWdlSW5wdXRUZW1wbGF0ZTtcbiAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxuICAgICAgICAgICAgbWVzc2FnZVVwZGF0ZUhhbmRsZXI6IG1vZGFsQ2xvc2VkXG4gICAgICAgICAgfVxuICAgICAgICBcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdElucHV0PlxuICAgICAgPHN0cmVhbS1tZXNzYWdlLWlucHV0XG4gICAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxuICAgICAgICAobWVzc2FnZVVwZGF0ZSk9XCJtb2RhbENsb3NlZCgpXCJcbiAgICAgID48L3N0cmVhbS1tZXNzYWdlLWlucHV0PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHN0cmVhbS1ub3RpZmljYXRpb24tbGlzdD48L3N0cmVhbS1ub3RpZmljYXRpb24tbGlzdD5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIlxuICAgICAgICBzdHItY2hhdF9fbWVzc2FnZS10ZWFtLWZvcm0tZm9vdGVyXG4gICAgICAgIHN0ci1jaGF0X19tZXNzYWdlLXRlYW0tZm9ybS1mb290ZXItYW5ndWxhclxuICAgICAgXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX2VkaXQtbWVzc2FnZS1mb3JtLW9wdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiB0cmFuc2xhdGUgZGF0YS10ZXN0aWQ9XCJjYW5jZWwtYnV0dG9uXCIgKGNsaWNrKT1cIm1vZGFsQ2xvc2VkKClcIj5cbiAgICAgICAgICBzdHJlYW1DaGF0LkNhbmNlbFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgIHRyYW5zbGF0ZVxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwic2VuZC1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJzZW5kQ2xpY2tlZCgpXCJcbiAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwic2VuZENsaWNrZWQoKVwiXG4gICAgICAgID5cbiAgICAgICAgICBzdHJlYW1DaGF0LlNlbmRcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3N0cmVhbS1tb2RhbD5cbiJdfQ==
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1hY3Rpb25zLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdHJlYW0tY2hhdC1hbmd1bGFyL3NyYy9saWIvbWVzc2FnZS1hY3Rpb25zLWJveC9tZXNzYWdlLWFjdGlvbnMtYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLWFjdGlvbnMtYm94L21lc3NhZ2UtYWN0aW9ucy1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7O0FBc0JqRixNQUFNLE9BQU8sMEJBQTBCO0lBYXJDLFlBQ1UsaUJBQW9DLEVBQ3BDLG1CQUF3QyxFQUN4QyxjQUE4QjtRQUY5QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBZC9CLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFDcEIsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNuRCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMzRCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQW1IeEIsZ0JBQVcsR0FBRyxHQUFHLEVBQUU7WUFDakIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDO0lBN0dDLENBQUM7SUFFSixXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDNUMsSUFBSSxxQkFBcUIsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUN2QixxQkFBcUIsRUFBRSxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN0QixxQkFBcUIsRUFBRSxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN4QixxQkFBcUIsRUFBRSxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN0QixxQkFBcUIsRUFBRSxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN0QixxQkFBcUIsRUFBRSxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNyQixxQkFBcUIsRUFBRSxDQUFDO2FBQ3pCO1lBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVELElBQUksY0FBYzs7UUFDaEIsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3RELENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxPQUFPLDBDQUFFLGNBQWMsQ0FBQSxDQUM5QixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sQ0FDTCxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLENBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxNQUFNLENBQUM7WUFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDekQsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsVUFBVTtRQUNSLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFSyxXQUFXOztZQUNmLElBQUk7Z0JBQ0YsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsQ0FDL0Msa0RBQWtELEVBQ2xELFNBQVMsQ0FDVixDQUFDO2FBQ0g7WUFBQyxPQUFPLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsbUJBQW1CLENBQUMsd0JBQXdCLENBQy9DLDhCQUE4QixDQUMvQixDQUFDO2FBQ0g7UUFDSCxDQUFDO0tBQUE7SUFFRCxXQUFXO1FBQ1QsS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxXQUFXOztRQUNULE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQU9LLGFBQWE7O1lBQ2pCLElBQUk7Z0JBQ0YsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBUSxDQUFDLENBQUM7YUFDeEQ7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxJQUFJLENBQUMsbUJBQW1CLENBQUMsd0JBQXdCLENBQy9DLG1DQUFtQyxDQUNwQyxDQUFDO2FBQ0g7UUFDSCxDQUFDO0tBQUE7O3VIQXhJVSwwQkFBMEI7MkdBQTFCLDBCQUEwQix5VkFTMUIscUJBQXFCLHFFQzNDbEMsd3NHQWtIQTsyRkRoRmEsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFdBQVcsRUFBRSxzQ0FBc0M7b0JBQ25ELE1BQU0sRUFBRSxFQUFFO2lCQUNYO3VLQUVVLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNhLHFCQUFxQjtzQkFBdkMsTUFBTTtnQkFDWSxTQUFTO3NCQUEzQixNQUFNO2dCQUVtQyxZQUFZO3NCQUFyRCxTQUFTO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhbm5lbFNlcnZpY2UgfSBmcm9tICcuLi9jaGFubmVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hhdENsaWVudFNlcnZpY2UgfSBmcm9tICcuLi9jaGF0LWNsaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IE1lc3NhZ2VJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL21lc3NhZ2UtaW5wdXQvbWVzc2FnZS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFN0cmVhbU1lc3NhZ2UgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL3Nkay9hbmd1bGFyL2NvbXBvbmVudHMvbWVzc2FnZS1hY3Rpb25zLyNyZXF1aXJlZC1lbmFibGVkYWN0aW9uc1xuICovXG5leHBvcnQgdHlwZSBNZXNzYWdlQWN0aW9ucyA9XG4gIHwgJ2VkaXQnXG4gIHwgJ2RlbGV0ZSdcbiAgfCAnZWRpdC1hbnknXG4gIHwgJ2RlbGV0ZS1hbnknXG4gIHwgJ3BpbidcbiAgfCAncXVvdGUnXG4gIHwgJ2ZsYWcnXG4gIHwgJ211dGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHJlYW0tbWVzc2FnZS1hY3Rpb25zLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLWFjdGlvbnMtYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZUFjdGlvbnNCb3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBtZXNzYWdlSW5wdXRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgaXNPcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzTWluZSA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXNzYWdlOiBTdHJlYW1NZXNzYWdlIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBlbmFibGVkQWN0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGRpc3BsYXllZEFjdGlvbnNDb3VudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgaXNFZGl0aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBpc0VkaXRNb2RhbE9wZW4gPSBmYWxzZTtcbiAgQFZpZXdDaGlsZChNZXNzYWdlSW5wdXRDb21wb25lbnQpIHByaXZhdGUgbWVzc2FnZUlucHV0OlxuICAgIHwgTWVzc2FnZUlucHV0Q29tcG9uZW50XG4gICAgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGF0Q2xpZW50U2VydmljZTogQ2hhdENsaWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlXG4gICkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuaXNNaW5lIHx8IGNoYW5nZXMuZW5hYmxlZEFjdGlvbnMpIHtcbiAgICAgIGxldCBkaXNwbGF5ZWRBY3Rpb25zQ291bnQgPSAwO1xuICAgICAgaWYgKHRoaXMuaXNRdW90ZVZpc2libGUpIHtcbiAgICAgICAgZGlzcGxheWVkQWN0aW9uc0NvdW50Kys7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc0VkaXRWaXNpYmxlKSB7XG4gICAgICAgIGRpc3BsYXllZEFjdGlvbnNDb3VudCsrO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNEZWxldGVWaXNpYmxlKSB7XG4gICAgICAgIGRpc3BsYXllZEFjdGlvbnNDb3VudCsrO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNNdXRlVmlzaWJsZSkge1xuICAgICAgICBkaXNwbGF5ZWRBY3Rpb25zQ291bnQrKztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmlzRmxhZ1Zpc2libGUpIHtcbiAgICAgICAgZGlzcGxheWVkQWN0aW9uc0NvdW50Kys7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc1BpblZpc2libGUpIHtcbiAgICAgICAgZGlzcGxheWVkQWN0aW9uc0NvdW50Kys7XG4gICAgICB9XG4gICAgICB0aGlzLmRpc3BsYXllZEFjdGlvbnNDb3VudC5uZXh0KGRpc3BsYXllZEFjdGlvbnNDb3VudCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzUXVvdGVWaXNpYmxlKCkge1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5lbmFibGVkQWN0aW9ucy5pbmRleE9mKCdxdW90ZScpICE9PSAtMSB8fFxuICAgICAgICB0aGlzLmVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ3F1b3RlLW1lc3NhZ2UnKSAhPT0gLTEpICYmXG4gICAgICAhdGhpcy5tZXNzYWdlPy5xdW90ZWRfbWVzc2FnZVxuICAgICk7XG4gIH1cblxuICBnZXQgaXNFZGl0VmlzaWJsZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKCh0aGlzLmVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ2VkaXQnKSAhPT0gLTEgfHxcbiAgICAgICAgdGhpcy5lbmFibGVkQWN0aW9ucy5pbmRleE9mKCd1cGRhdGUtb3duLW1lc3NhZ2UnKSAhPT0gLTEpICYmXG4gICAgICAgIHRoaXMuaXNNaW5lKSB8fFxuICAgICAgdGhpcy5lbmFibGVkQWN0aW9ucy5pbmRleE9mKCdlZGl0LWFueScpICE9PSAtMSB8fFxuICAgICAgdGhpcy5lbmFibGVkQWN0aW9ucy5pbmRleE9mKCd1cGRhdGUtYW55LW1lc3NhZ2UnKSAhPT0gLTFcbiAgICApO1xuICB9XG5cbiAgZ2V0IGlzRGVsZXRlVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKCh0aGlzLmVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ2RlbGV0ZScpICE9PSAtMSB8fFxuICAgICAgICB0aGlzLmVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ2RlbGV0ZS1vd24tbWVzc2FnZScpICE9PSAtMSkgJiZcbiAgICAgICAgdGhpcy5pc01pbmUpIHx8XG4gICAgICB0aGlzLmVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ2RlbGV0ZS1hbnknKSAhPT0gLTEgfHxcbiAgICAgIHRoaXMuZW5hYmxlZEFjdGlvbnMuaW5kZXhPZignZGVsZXRlLWFueS1tZXNzYWdlJykgIT09IC0xXG4gICAgKTtcbiAgfVxuXG4gIGdldCBpc011dGVWaXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ211dGUnKSAhPT0gLTE7XG4gIH1cblxuICBnZXQgaXNGbGFnVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMuZW5hYmxlZEFjdGlvbnMuaW5kZXhPZignZmxhZycpICE9PSAtMSB8fFxuICAgICAgICB0aGlzLmVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ2ZsYWctbWVzc2FnZScpICE9PSAtMSkgJiZcbiAgICAgICF0aGlzLmlzTWluZVxuICAgICk7XG4gIH1cblxuICBnZXQgaXNQaW5WaXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZWRBY3Rpb25zLmluZGV4T2YoJ3BpbicpICE9PSAtMTtcbiAgfVxuXG4gIHBpbkNsaWNrZWQoKSB7XG4gICAgYWxlcnQoJ0ZlYXR1cmUgbm90IHlldCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgYXN5bmMgZmxhZ0NsaWNrZWQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuY2hhdENsaWVudFNlcnZpY2UuZmxhZ01lc3NhZ2UodGhpcy5tZXNzYWdlIS5pZCk7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuYWRkVGVtcG9yYXJ5Tm90aWZpY2F0aW9uKFxuICAgICAgICAnc3RyZWFtQ2hhdC5NZXNzYWdlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBmbGFnZ2VkJyxcbiAgICAgICAgJ3N1Y2Nlc3MnXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmFkZFRlbXBvcmFyeU5vdGlmaWNhdGlvbihcbiAgICAgICAgJ3N0cmVhbUNoYXQuRXJyb3IgYWRkaW5nIGZsYWcnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG11dGVDbGlja2VkKCkge1xuICAgIGFsZXJ0KCdGZWF0dXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIHF1b3RlQ2xpY2tlZCgpIHtcbiAgICB0aGlzLmNoYW5uZWxTZXJ2aWNlLnNlbGVjdE1lc3NhZ2VUb1F1b3RlKHRoaXMubWVzc2FnZSk7XG4gIH1cblxuICBlZGl0Q2xpY2tlZCgpIHtcbiAgICB0aGlzLmlzRWRpdGluZy5lbWl0KHRydWUpO1xuICAgIHRoaXMuaXNFZGl0TW9kYWxPcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIHNlbmRDbGlja2VkKCkge1xuICAgIHRoaXMubWVzc2FnZUlucHV0Py5tZXNzYWdlU2VudCgpO1xuICB9XG5cbiAgbW9kYWxDbG9zZWQgPSAoKSA9PiB7XG4gICAgdGhpcy5pc0VkaXRNb2RhbE9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmlzRWRpdGluZy5lbWl0KGZhbHNlKTtcbiAgfTtcblxuICBhc3luYyBkZWxldGVDbGlja2VkKCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmNoYW5uZWxTZXJ2aWNlLmRlbGV0ZU1lc3NhZ2UodGhpcy5tZXNzYWdlISk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5hZGRUZW1wb3JhcnlOb3RpZmljYXRpb24oXG4gICAgICAgICdzdHJlYW1DaGF0LkVycm9yIGRlbGV0aW5nIG1lc3NhZ2UnXG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBkYXRhLXRlc3RpZD1cImFjdGlvbi1ib3hcIlxuICBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLWFjdGlvbnMtYm94XCJcbiAgW2NsYXNzLnN0ci1jaGF0X19tZXNzYWdlLWFjdGlvbnMtYm94LS1vcGVuXT1cImlzT3BlblwiXG4gIFtjbGFzcy5zdHItY2hhdF9fbWVzc2FnZS1hY3Rpb25zLWJveC0tbWluZV09XCJpc01pbmVcIlxuPlxuICA8dWwgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1hY3Rpb25zLWxpc3RcIj5cbiAgICA8YnV0dG9uXG4gICAgICBkYXRhLXRlc3RpZD1cInF1b3RlLWFjdGlvblwiXG4gICAgICAqbmdJZj1cImlzUXVvdGVWaXNpYmxlXCJcbiAgICAgIChjbGljayk9XCJxdW90ZUNsaWNrZWQoKVwiXG4gICAgPlxuICAgICAgPGxpIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtYWN0aW9ucy1saXN0LWl0ZW1cIj5cbiAgICAgICAge3sgXCJzdHJlYW1DaGF0LlJlcGx5XCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbGk+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgZGF0YS10ZXN0aWQ9XCJwaW4tYWN0aW9uXCJcbiAgICAgICpuZ0lmPVwiaXNQaW5WaXNpYmxlXCJcbiAgICAgIChjbGljayk9XCJwaW5DbGlja2VkKClcIlxuICAgID5cbiAgICAgIDxsaSBjbGFzcz1cInN0ci1jaGF0X19tZXNzYWdlLWFjdGlvbnMtbGlzdC1pdGVtXCI+XG4gICAgICAgIHt7XG4gICAgICAgICAgKG1lc3NhZ2U/LnBpbm5lZCA/IFwic3RyZWFtQ2hhdC5VbnBpblwiIDogXCJzdHJlYW1DaGF0LlBpblwiKSB8IHRyYW5zbGF0ZVxuICAgICAgICB9fVxuICAgICAgPC9saT5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBkYXRhLXRlc3RpZD1cImZsYWctYWN0aW9uXCJcbiAgICAgICpuZ0lmPVwiaXNGbGFnVmlzaWJsZVwiXG4gICAgICAoY2xpY2spPVwiZmxhZ0NsaWNrZWQoKVwiXG4gICAgPlxuICAgICAgPGxpIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtYWN0aW9ucy1saXN0LWl0ZW1cIj5cbiAgICAgICAge3sgXCJzdHJlYW1DaGF0LkZsYWdcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9saT5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBkYXRhLXRlc3RpZD1cIm11dGUtYWN0aW9uXCJcbiAgICAgICpuZ0lmPVwiaXNNdXRlVmlzaWJsZVwiXG4gICAgICAoY2xpY2spPVwibXV0ZUNsaWNrZWQoKVwiXG4gICAgPlxuICAgICAgPGxpIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtYWN0aW9ucy1saXN0LWl0ZW1cIj5cbiAgICAgICAge3sgXCJzdHJlYW1DaGF0Lk11dGVcIiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9saT5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBkYXRhLXRlc3RpZD1cImVkaXQtYWN0aW9uXCJcbiAgICAgICpuZ0lmPVwiaXNFZGl0VmlzaWJsZVwiXG4gICAgICAoY2xpY2spPVwiZWRpdENsaWNrZWQoKVwiXG4gICAgPlxuICAgICAgPGxpIGNsYXNzPVwic3RyLWNoYXRfX21lc3NhZ2UtYWN0aW9ucy1saXN0LWl0ZW1cIj5cbiAgICAgICAge3sgXCJzdHJlYW1DaGF0LkVkaXQgTWVzc2FnZVwiIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2xpPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGRhdGEtdGVzdGlkPVwiZGVsZXRlLWFjdGlvblwiXG4gICAgICAqbmdJZj1cImlzRGVsZXRlVmlzaWJsZVwiXG4gICAgICAoY2xpY2spPVwiZGVsZXRlQ2xpY2tlZCgpXCJcbiAgICA+XG4gICAgICA8bGkgY2xhc3M9XCJzdHItY2hhdF9fbWVzc2FnZS1hY3Rpb25zLWxpc3QtaXRlbVwiPlxuICAgICAgICB7eyBcInN0cmVhbUNoYXQuRGVsZXRlXCIgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbGk+XG4gICAgPC9idXR0b24+XG4gIDwvdWw+XG48L2Rpdj5cblxuPHN0cmVhbS1tb2RhbFxuICBbaXNPcGVuXT1cImlzRWRpdE1vZGFsT3BlblwiXG4gIChpc09wZW5DaGFuZ2UpPVwiXG4gICAgaXNFZGl0TW9kYWxPcGVuID0gJGV2ZW50OyBpc0VkaXRNb2RhbE9wZW4gPyAnJyA6IG1vZGFsQ2xvc2VkKClcbiAgXCJcbj5cbiAgPGRpdiBjbGFzcz1cInN0ci1jaGF0X19lZGl0LW1lc3NhZ2UtZm9ybVwiICpuZ0lmPVwiaXNFZGl0TW9kYWxPcGVuXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1lc3NhZ2VJbnB1dFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRJbnB1dFwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIG1lc3NhZ2VJbnB1dFRlbXBsYXRlO1xuICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICBtZXNzYWdlVXBkYXRlSGFuZGxlcjogbW9kYWxDbG9zZWRcbiAgICAgICAgICB9XG4gICAgICAgIFwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SW5wdXQ+XG4gICAgICA8c3RyZWFtLW1lc3NhZ2UtaW5wdXRcbiAgICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXG4gICAgICAgIChtZXNzYWdlVXBkYXRlKT1cIm1vZGFsQ2xvc2VkKClcIlxuICAgICAgPjwvc3RyZWFtLW1lc3NhZ2UtaW5wdXQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8c3RyZWFtLW5vdGlmaWNhdGlvbi1saXN0Pjwvc3RyZWFtLW5vdGlmaWNhdGlvbi1saXN0PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiXG4gICAgICAgIHN0ci1jaGF0X19tZXNzYWdlLXRlYW0tZm9ybS1mb290ZXJcbiAgICAgICAgc3RyLWNoYXRfX21lc3NhZ2UtdGVhbS1mb3JtLWZvb3Rlci1hbmd1bGFyXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fZWRpdC1tZXNzYWdlLWZvcm0tb3B0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIHRyYW5zbGF0ZSBkYXRhLXRlc3RpZD1cImNhbmNlbC1idXR0b25cIiAoY2xpY2spPVwibW9kYWxDbG9zZWQoKVwiPlxuICAgICAgICAgIHN0cmVhbUNoYXQuQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgdHJhbnNsYXRlXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJzZW5kLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cInNlbmRDbGlja2VkKClcIlxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJzZW5kQ2xpY2tlZCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHN0cmVhbUNoYXQuU2VuZFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvc3RyZWFtLW1vZGFsPlxuIl19
|
|
@@ -22,8 +22,9 @@ export class AutocompleteTextareaComponent {
|
|
|
22
22
|
this.valueChange = new EventEmitter();
|
|
23
23
|
this.send = new EventEmitter();
|
|
24
24
|
this.userMentions = new EventEmitter();
|
|
25
|
-
this.
|
|
25
|
+
this.autocompleteKey = 'autocompleteLabel';
|
|
26
26
|
this.mentionTriggerChar = '@';
|
|
27
|
+
this.commandTriggerChar = '/';
|
|
27
28
|
this.autocompleteConfig = {
|
|
28
29
|
mentions: [],
|
|
29
30
|
};
|
|
@@ -32,7 +33,15 @@ export class AutocompleteTextareaComponent {
|
|
|
32
33
|
this.userMentionConfig = {
|
|
33
34
|
triggerChar: this.mentionTriggerChar,
|
|
34
35
|
dropUp: true,
|
|
35
|
-
labelKey: this.
|
|
36
|
+
labelKey: this.autocompleteKey,
|
|
37
|
+
returnTrigger: true,
|
|
38
|
+
mentionFilter: (searchString, items) => this.filter(searchString, items),
|
|
39
|
+
mentionSelect: (item, triggerChar) => this.itemSelectedFromAutocompleteList(item, triggerChar),
|
|
40
|
+
};
|
|
41
|
+
this.slashCommandConfig = {
|
|
42
|
+
triggerChar: this.commandTriggerChar,
|
|
43
|
+
dropUp: true,
|
|
44
|
+
labelKey: 'name',
|
|
36
45
|
returnTrigger: true,
|
|
37
46
|
mentionFilter: (searchString, items) => this.filter(searchString, items),
|
|
38
47
|
mentionSelect: (item, triggerChar) => this.itemSelectedFromAutocompleteList(item, triggerChar),
|
|
@@ -45,20 +54,30 @@ export class AutocompleteTextareaComponent {
|
|
|
45
54
|
void this.updateMentionOptions(searchTerm);
|
|
46
55
|
}
|
|
47
56
|
});
|
|
48
|
-
this.subscriptions.push(this.channelService.activeChannel$.subscribe(() => {
|
|
57
|
+
this.subscriptions.push(this.channelService.activeChannel$.subscribe((channel) => {
|
|
58
|
+
var _a;
|
|
59
|
+
const commands = ((_a = channel === null || channel === void 0 ? void 0 : channel.getConfig()) === null || _a === void 0 ? void 0 : _a.commands) || [];
|
|
60
|
+
this.slashCommandConfig.items = commands.map((c) => (Object.assign(Object.assign({}, c), { [this.autocompleteKey]: c.name, type: 'command' })));
|
|
49
61
|
this.mentionedUsers = [];
|
|
50
62
|
this.userMentions.next([...this.mentionedUsers]);
|
|
51
63
|
void this.updateMentionOptions(this.searchTerm$.getValue());
|
|
52
64
|
}));
|
|
65
|
+
this.autocompleteConfig.mentions = [
|
|
66
|
+
this.userMentionConfig,
|
|
67
|
+
this.slashCommandConfig,
|
|
68
|
+
];
|
|
53
69
|
}
|
|
54
70
|
ngOnChanges(changes) {
|
|
55
71
|
if (changes.areMentionsEnabled) {
|
|
56
72
|
if (this.areMentionsEnabled) {
|
|
57
|
-
this.autocompleteConfig.mentions = [
|
|
73
|
+
this.autocompleteConfig.mentions = [
|
|
74
|
+
this.userMentionConfig,
|
|
75
|
+
this.slashCommandConfig,
|
|
76
|
+
];
|
|
58
77
|
this.autocompleteConfig = Object.assign({}, this.autocompleteConfig);
|
|
59
78
|
}
|
|
60
79
|
else {
|
|
61
|
-
this.autocompleteConfig.mentions = [];
|
|
80
|
+
this.autocompleteConfig.mentions = [this.slashCommandConfig];
|
|
62
81
|
this.autocompleteConfig = Object.assign({}, this.autocompleteConfig);
|
|
63
82
|
}
|
|
64
83
|
}
|
|
@@ -74,7 +93,9 @@ export class AutocompleteTextareaComponent {
|
|
|
74
93
|
this.mentionedUsers.push((item.user ? item.user : item));
|
|
75
94
|
this.userMentions.next([...this.mentionedUsers]);
|
|
76
95
|
}
|
|
77
|
-
return triggerChar +
|
|
96
|
+
return (triggerChar +
|
|
97
|
+
item.autocompleteLabel +
|
|
98
|
+
(triggerChar === this.commandTriggerChar ? ' ' : ''));
|
|
78
99
|
}
|
|
79
100
|
autcompleteSearchTermChanged(searchTerm) {
|
|
80
101
|
if (searchTerm === this.mentionTriggerChar) {
|
|
@@ -118,7 +139,10 @@ export class AutocompleteTextareaComponent {
|
|
|
118
139
|
return Object.assign(Object.assign({}, i), { autocompleteLabel: user.name || user.id, type: 'mention' });
|
|
119
140
|
}));
|
|
120
141
|
this.userMentionConfig.items = items;
|
|
121
|
-
this.autocompleteConfig.mentions = [
|
|
142
|
+
this.autocompleteConfig.mentions = [
|
|
143
|
+
this.userMentionConfig,
|
|
144
|
+
this.slashCommandConfig,
|
|
145
|
+
];
|
|
122
146
|
this.autocompleteConfig = Object.assign({}, this.autocompleteConfig);
|
|
123
147
|
});
|
|
124
148
|
}
|
|
@@ -137,7 +161,7 @@ export class AutocompleteTextareaComponent {
|
|
|
137
161
|
}
|
|
138
162
|
}
|
|
139
163
|
AutocompleteTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: AutocompleteTextareaComponent, deps: [{ token: i1.ChannelService }, { token: i2.ChatClientService }, { token: i3.TransliterationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
140
|
-
AutocompleteTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: AutocompleteTextareaComponent, selector: "stream-autocomplete-textarea", inputs: { value: "value", areMentionsEnabled: "areMentionsEnabled", mentionAutocompleteItemTemplate: "mentionAutocompleteItemTemplate", mentionScope: "mentionScope" }, outputs: { valueChange: "valueChange", send: "send", userMentions: "userMentions" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "messageInput", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<textarea\n [value]=\"value || ''\"\n autofocus\n data-testid=\"textarea\"\n #input\n placeholder=\"{{ 'streamChat.Type your message' | translate }}\"\n class=\"rta__textarea str-chat__textarea__textarea\"\n rows=\"1\"\n (input)=\"inputChanged()\"\n (keydown.enter)=\"sent($event)\"\n [mentionConfig]=\"autocompleteConfig\"\n (searchTerm)=\"autcompleteSearchTermChanged($event)\"\n [mentionListTemplate]=\"autocompleteItem\"\n (blur)=\"inputLeft()\"\n></textarea>\n<ng-template #autocompleteItem let-item=\"item\">\n <div class=\"rta rta__item str-chat__emojisearch__item\" [ngSwitch]=\"item.type\">\n <div class=\"rta__entity\" *ngSwitchCase=\"'mention'\">\n <ng-container\n *ngTemplateOutlet=\"\n mentionAutocompleteItemTemplate || defaultMentionTemplate;\n context: { item: item }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #defaultMentionTemplate let-item=\"item\">\n <div class=\"str-chat__user-item\">\n <stream-avatar\n data-testclass=\"avatar\"\n class=\"str-chat__avatar str-chat__avatar--circle\"\n style=\"height: 20px\"\n [size]=\"20\"\n [imageUrl]=\"item.image || item.user?.image\"\n [name]=\"item.autocompleteLabel\"\n ></stream-avatar>\n <span data-testclass=\"username\" class=\"str-chat__user-item--name\">{{\n item.autocompleteLabel\n }}</span>\n </div>\n</ng-template>\n", components: [{ type: i4.AvatarComponent, selector: "stream-avatar", inputs: ["name", "imageUrl", "size"] }], directives: [{ type: i5.MentionDirective, selector: "[mention], [mentionConfig]", inputs: ["mentionConfig", "mention", "mentionListTemplate"], outputs: ["searchTerm", "itemSelected", "opened", "closed"] }, { type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i7.TranslatePipe } });
|
|
164
|
+
AutocompleteTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.5", type: AutocompleteTextareaComponent, selector: "stream-autocomplete-textarea", inputs: { value: "value", areMentionsEnabled: "areMentionsEnabled", mentionAutocompleteItemTemplate: "mentionAutocompleteItemTemplate", commandAutocompleteItemTemplate: "commandAutocompleteItemTemplate", mentionScope: "mentionScope" }, outputs: { valueChange: "valueChange", send: "send", userMentions: "userMentions" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "messageInput", first: true, predicate: ["input"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<textarea\n [value]=\"value || ''\"\n autofocus\n data-testid=\"textarea\"\n #input\n placeholder=\"{{ 'streamChat.Type your message' | translate }}\"\n class=\"rta__textarea str-chat__textarea__textarea\"\n rows=\"1\"\n (input)=\"inputChanged()\"\n (keydown.enter)=\"sent($event)\"\n [mentionConfig]=\"autocompleteConfig\"\n (searchTerm)=\"autcompleteSearchTermChanged($event)\"\n [mentionListTemplate]=\"autocompleteItem\"\n (blur)=\"inputLeft()\"\n></textarea>\n<ng-template #autocompleteItem let-item=\"item\">\n <div class=\"rta rta__item str-chat__emojisearch__item\" [ngSwitch]=\"item.type\">\n <div class=\"rta__entity\" *ngSwitchCase=\"'mention'\">\n <ng-container\n *ngTemplateOutlet=\"\n mentionAutocompleteItemTemplate || defaultMentionTemplate;\n context: { item: item }\n \"\n ></ng-container>\n </div>\n <div class=\"rta__entity\" *ngSwitchCase=\"'command'\">\n <ng-container\n *ngTemplateOutlet=\"\n commandAutocompleteItemTemplate || defaultCommandTemplate;\n context: { item: item }\n \"\n ></ng-container>\n </div>\n </div>\n</ng-template>\n\n<ng-template #defaultCommandTemplate let-item=\"item\">\n <div class=\"str-chat__slash-command\">\n <span class=\"str-chat__slash-command-header\">\n <strong data-testclass=\"command-name\">{{ item.name }}</strong>\n {{ item.args }}\n </span>\n <br />\n <span class=\"str-chat__slash-command-description\">{{\n item.description\n }}</span>\n </div>\n</ng-template>\n\n<ng-template #defaultMentionTemplate let-item=\"item\">\n <div class=\"str-chat__user-item\">\n <stream-avatar\n data-testclass=\"avatar\"\n class=\"str-chat__avatar str-chat__avatar--circle\"\n style=\"height: 20px\"\n [size]=\"20\"\n [imageUrl]=\"item.image || item.user?.image\"\n [name]=\"item.autocompleteLabel\"\n ></stream-avatar>\n <span data-testclass=\"username\" class=\"str-chat__user-item--name\">{{\n item.autocompleteLabel\n }}</span>\n </div>\n</ng-template>\n", components: [{ type: i4.AvatarComponent, selector: "stream-avatar", inputs: ["name", "imageUrl", "size"] }], directives: [{ type: i5.MentionDirective, selector: "[mention], [mentionConfig]", inputs: ["mentionConfig", "mention", "mentionListTemplate"], outputs: ["searchTerm", "itemSelected", "opened", "closed"] }, { type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "translate": i7.TranslatePipe } });
|
|
141
165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImport: i0, type: AutocompleteTextareaComponent, decorators: [{
|
|
142
166
|
type: Component,
|
|
143
167
|
args: [{
|
|
@@ -153,6 +177,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
153
177
|
type: Input
|
|
154
178
|
}], mentionAutocompleteItemTemplate: [{
|
|
155
179
|
type: Input
|
|
180
|
+
}], commandAutocompleteItemTemplate: [{
|
|
181
|
+
type: Input
|
|
156
182
|
}], mentionScope: [{
|
|
157
183
|
type: Input
|
|
158
184
|
}], valueChange: [{
|
|
@@ -165,4 +191,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
165
191
|
type: ViewChild,
|
|
166
192
|
args: ['input']
|
|
167
193
|
}] } });
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLWlucHV0L2F1dG9jb21wbGV0ZS10ZXh0YXJlYS9hdXRvY29tcGxldGUtdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL21lc3NhZ2UtaW5wdXQvYXV0b2NvbXBsZXRlLXRleHRhcmVhL2F1dG9jb21wbGV0ZS10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBS3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBUXBFLE1BQU0sT0FBTyw2QkFBNkI7SUFtQ3hDLFlBQ1UsY0FBOEIsRUFDOUIsaUJBQW9DLEVBQ3BDLHNCQUE4QztRQUY5QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBbkN6QyxVQUFLLEdBQUcsb0JBQW9CLENBQUM7UUFDbkMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLHVCQUFrQixHQUF3QixJQUFJLENBQUM7UUFJL0MsaUJBQVksR0FBOEIsU0FBUyxDQUFDO1FBQzFDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEs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K0I7c0JBQXZDLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFDYSxXQUFXO3NCQUE3QixNQUFNO2dCQUNZLElBQUk7c0JBQXRCLE1BQU07Z0JBQ1ksWUFBWTtzQkFBOUIsTUFBTTtnQkFNcUIsWUFBWTtzQkFBdkMsU0FBUzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWVudGlvbkNvbmZpZywgTWVudGlvbnMgfSBmcm9tICdhbmd1bGFyLW1lbnRpb25zJztcbmltcG9ydCB7XG4gIE1lbnRpb25BdXRjb21wbGV0ZUxpc3RJdGVtQ29udGV4dCxcbiAgTWVudGlvbkF1dGNvbXBsZXRlTGlzdEl0ZW0sXG59IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXJSZXNwb25zZSB9IGZyb20gJ3N0cmVhbS1jaGF0JztcbmltcG9ydCB7IENoYW5uZWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2hhbm5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IFRleHRhcmVhSW50ZXJmYWNlIH0gZnJvbSAnLi4vdGV4dGFyZWEuaW50ZXJmYWNlJztcbmltcG9ydCB7IENoYXRDbGllbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2hhdC1jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVHJhbnNsaXRlcmF0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3RyYW5zbGl0ZXJhdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3RyZWFtLWF1dG9jb21wbGV0ZS10ZXh0YXJlYScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUtdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVUZXh0YXJlYUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIFRleHRhcmVhSW50ZXJmYWNlLCBPbkNoYW5nZXNcbntcbiAgQEhvc3RCaW5kaW5nKCkgY2xhc3MgPSAnc3RyLWNoYXRfX3RleHRhcmVhJztcbiAgQElucHV0KCkgdmFsdWUgPSAnJztcbiAgQElucHV0KCkgYXJlTWVudGlvbnNFbmFibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdHJ1ZTtcbiAgQElucHV0KCkgbWVudGlvbkF1dG9jb21wbGV0ZUl0ZW1UZW1wbGF0ZTpcbiAgICB8IFRlbXBsYXRlUmVmPE1lbnRpb25BdXRjb21wbGV0ZUxpc3RJdGVtQ29udGV4dD5cbiAgICB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbWVudGlvblNjb3BlOiAnY2hhbm5lbCcgfCAnYXBwbGljYXRpb24nID0gJ2NoYW5uZWwnO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbmQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSB1c2VyTWVudGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyPFVzZXJSZXNwb25zZVtdPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGxhYmVsS2V5ID0gJ2F1dG9jb21wbGV0ZUxhYmVsJztcbiAgcHJpdmF0ZSByZWFkb25seSBtZW50aW9uVHJpZ2dlckNoYXIgPSAnQCc7XG4gIGF1dG9jb21wbGV0ZUNvbmZpZzogTWVudGlvbkNvbmZpZyA9IHtcbiAgICBtZW50aW9uczogW10sXG4gIH07XG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgcHJpdmF0ZSBtZXNzYWdlSW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIHByaXZhdGUgbWVudGlvbmVkVXNlcnM6IFVzZXJSZXNwb25zZVtdID0gW107XG4gIHByaXZhdGUgdXNlck1lbnRpb25Db25maWc6IE1lbnRpb25zID0ge1xuICAgIHRyaWdnZXJDaGFyOiB0aGlzLm1lbnRpb25UcmlnZ2VyQ2hhcixcbiAgICBkcm9wVXA6IHRydWUsXG4gICAgbGFiZWxLZXk6IHRoaXMubGFiZWxLZXksXG4gICAgcmV0dXJuVHJpZ2dlcjogdHJ1ZSxcbiAgICBtZW50aW9uRmlsdGVyOiAoXG4gICAgICBzZWFyY2hTdHJpbmc6IHN0cmluZyxcbiAgICAgIGl0ZW1zOiB7IGF1dG9jb21wbGV0ZUxhYmVsOiBzdHJpbmcgfVtdXG4gICAgKSA9PiB0aGlzLmZpbHRlcihzZWFyY2hTdHJpbmcsIGl0ZW1zKSxcbiAgICBtZW50aW9uU2VsZWN0OiAoaXRlbSwgdHJpZ2dlckNoYXIpID0+XG4gICAgICB0aGlzLml0ZW1TZWxlY3RlZEZyb21BdXRvY29tcGxldGVMaXN0KGl0ZW0sIHRyaWdnZXJDaGFyKSxcbiAgfTtcbiAgcHJpdmF0ZSBzZWFyY2hUZXJtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFubmVsU2VydmljZTogQ2hhbm5lbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGF0Q2xpZW50U2VydmljZTogQ2hhdENsaWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xpdGVyYXRpb25TZXJ2aWNlOiBUcmFuc2xpdGVyYXRpb25TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc2VhcmNoVGVybSRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZSgoc2VhcmNoVGVybSkgPT4ge1xuICAgICAgICBpZiAoc2VhcmNoVGVybS5zdGFydHNXaXRoKHRoaXMubWVudGlvblRyaWdnZXJDaGFyKSkge1xuICAgICAgICAgIHZvaWQgdGhpcy51cGRhdGVNZW50aW9uT3B0aW9ucyhzZWFyY2hUZXJtKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmNoYW5uZWxTZXJ2aWNlLmFjdGl2ZUNoYW5uZWwkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubWVudGlvbmVkVXNlcnMgPSBbXTtcbiAgICAgICAgdGhpcy51c2VyTWVudGlvbnMubmV4dChbLi4udGhpcy5tZW50aW9uZWRVc2Vyc10pO1xuICAgICAgICB2b2lkIHRoaXMudXBkYXRlTWVudGlvbk9wdGlvbnModGhpcy5zZWFyY2hUZXJtJC5nZXRWYWx1ZSgpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5hcmVNZW50aW9uc0VuYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLmFyZU1lbnRpb25zRW5hYmxlZCkge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbmZpZy5tZW50aW9ucyA9IFt0aGlzLnVzZXJNZW50aW9uQ29uZmlnXTtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb25maWcgPSB7IC4uLnRoaXMuYXV0b2NvbXBsZXRlQ29uZmlnIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbmZpZy5tZW50aW9ucyA9IFtdO1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbmZpZyA9IHsgLi4udGhpcy5hdXRvY29tcGxldGVDb25maWcgfTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXMubWVudGlvblNjb3BlKSB7XG4gICAgICB2b2lkIHRoaXMudXBkYXRlTWVudGlvbk9wdGlvbnModGhpcy5zZWFyY2hUZXJtJC5nZXRWYWx1ZSgpKTtcbiAgICB9XG4gIH1cblxuICBmaWx0ZXIoc2VhcmNoU3RyaW5nOiBzdHJpbmcsIGl0ZW1zOiB7IGF1dG9jb21wbGV0ZUxhYmVsOiBzdHJpbmcgfVtdKSB7XG4gICAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgIHRoaXMudHJhbnNsaXRlcmF0ZShpdGVtLmF1dG9jb21wbGV0ZUxhYmVsLnRvTG93ZXJDYXNlKCkpLmluY2x1ZGVzKFxuICAgICAgICB0aGlzLnRyYW5zbGl0ZXJhdGUoc2VhcmNoU3RyaW5nLnRvTG93ZXJDYXNlKCkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGl0ZW1TZWxlY3RlZEZyb21BdXRvY29tcGxldGVMaXN0KFxuICAgIGl0ZW06IE1lbnRpb25BdXRjb21wbGV0ZUxpc3RJdGVtLFxuICAgIHRyaWdnZXJDaGFyID0gJydcbiAgKSB7XG4gICAgaWYgKHRyaWdnZXJDaGFyID09PSB0aGlzLm1lbnRpb25UcmlnZ2VyQ2hhcikge1xuICAgICAgdGhpcy5tZW50aW9uZWRVc2Vycy5wdXNoKChpdGVtLnVzZXIgPyBpdGVtLnVzZXIgOiBpdGVtKSBhcyBVc2VyUmVzcG9uc2UpO1xuICAgICAgdGhpcy51c2VyTWVudGlvbnMubmV4dChbLi4udGhpcy5tZW50aW9uZWRVc2Vyc10pO1xuICAgIH1cbiAgICByZXR1cm4gdHJpZ2dlckNoYXIgKyBpdGVtLmF1dG9jb21wbGV0ZUxhYmVsO1xuICB9XG5cbiAgYXV0Y29tcGxldGVTZWFyY2hUZXJtQ2hhbmdlZChzZWFyY2hUZXJtOiBzdHJpbmcpIHtcbiAgICBpZiAoc2VhcmNoVGVybSA9PT0gdGhpcy5tZW50aW9uVHJpZ2dlckNoYXIpIHtcbiAgICAgIHZvaWQgdGhpcy51cGRhdGVNZW50aW9uT3B0aW9ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlYXJjaFRlcm0kLm5leHQoc2VhcmNoVGVybSk7XG4gICAgfVxuICB9XG5cbiAgaW5wdXRDaGFuZ2VkKCkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLm1lc3NhZ2VJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcbiAgfVxuXG4gIGlucHV0TGVmdCgpIHtcbiAgICB0aGlzLnVwZGF0ZU1lbnRpb25lZFVzZXJzRnJvbVRleHQoKTtcbiAgfVxuXG4gIHNlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnVwZGF0ZU1lbnRpb25lZFVzZXJzRnJvbVRleHQoKTtcbiAgICB0aGlzLnNlbmQubmV4dCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2xpdGVyYXRlKHM6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnRyYW5zbGl0ZXJhdGlvblNlcnZpY2UpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGl0ZXJhdGlvblNlcnZpY2UudHJhbnNsaXRlcmF0ZShzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB1cGRhdGVNZW50aW9uT3B0aW9ucyhzZWFyY2hUZXJtPzogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmFyZU1lbnRpb25zRW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzZWFyY2hUZXJtID0gc2VhcmNoVGVybT8ucmVwbGFjZSh0aGlzLm1lbnRpb25UcmlnZ2VyQ2hhciwgJycpO1xuICAgIGNvbnN0IHJlcXVlc3QgPVxuICAgICAgdGhpcy5tZW50aW9uU2NvcGUgPT09ICdhcHBsaWNhdGlvbidcbiAgICAgICAgPyAoczogc3RyaW5nKSA9PiB0aGlzLmNoYXRDbGllbnRTZXJ2aWNlLmF1dG9jb21wbGV0ZVVzZXJzKHMpXG4gICAgICAgIDogKHM6IHN0cmluZykgPT4gdGhpcy5jaGFubmVsU2VydmljZS5hdXRvY29tcGxldGVNZW1iZXJzKHMpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlcXVlc3Qoc2VhcmNoVGVybSB8fCAnJyk7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmZpbHRlcihcbiAgICAgIHNlYXJjaFRlcm0gfHwgJycsXG4gICAgICByZXN1bHQubWFwKChpKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSAoaS51c2VyID8gaS51c2VyIDogaSkgYXMgVXNlclJlc3BvbnNlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLmksXG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGFiZWw6IHVzZXIubmFtZSB8fCB1c2VyLmlkLFxuICAgICAgICAgIHR5cGU6ICdtZW50aW9uJyxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLnVzZXJNZW50aW9uQ29uZmlnLml0ZW1zID0gaXRlbXM7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb25maWcubWVudGlvbnMgPSBbdGhpcy51c2VyTWVudGlvbkNvbmZpZ107XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb25maWcgPSB7IC4uLnRoaXMuYXV0b2NvbXBsZXRlQ29uZmlnIH07XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1lbnRpb25lZFVzZXJzRnJvbVRleHQoKSB7XG4gICAgY29uc3QgdXBkYXRlZE1lbnRpb25lZFVzZXJzOiBVc2VyUmVzcG9uc2VbXSA9IFtdO1xuICAgIHRoaXMubWVudGlvbmVkVXNlcnMuZm9yRWFjaCgodSkgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gdS5uYW1lIHx8IHUuaWQ7XG4gICAgICBpZiAodGhpcy52YWx1ZS5pbmNsdWRlcyhgJHt0aGlzLm1lbnRpb25UcmlnZ2VyQ2hhcn0ke2tleX1gKSkge1xuICAgICAgICB1cGRhdGVkTWVudGlvbmVkVXNlcnMucHVzaCh1KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodXBkYXRlZE1lbnRpb25lZFVzZXJzLmxlbmd0aCAhPT0gdGhpcy5tZW50aW9uZWRVc2Vycy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudXNlck1lbnRpb25zLm5leHQoWy4uLnVwZGF0ZWRNZW50aW9uZWRVc2Vyc10pO1xuICAgICAgdGhpcy5tZW50aW9uZWRVc2VycyA9IHVwZGF0ZWRNZW50aW9uZWRVc2VycztcbiAgICB9XG4gIH1cbn1cbiIsIjx0ZXh0YXJlYVxuICBbdmFsdWVdPVwidmFsdWUgfHwgJydcIlxuICBhdXRvZm9jdXNcbiAgZGF0YS10ZXN0aWQ9XCJ0ZXh0YXJlYVwiXG4gICNpbnB1dFxuICBwbGFjZWhvbGRlcj1cInt7ICdzdHJlYW1DaGF0LlR5cGUgeW91ciBtZXNzYWdlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gIGNsYXNzPVwicnRhX190ZXh0YXJlYSBzdHItY2hhdF9fdGV4dGFyZWFfX3RleHRhcmVhXCJcbiAgcm93cz1cIjFcIlxuICAoaW5wdXQpPVwiaW5wdXRDaGFuZ2VkKClcIlxuICAoa2V5ZG93bi5lbnRlcik9XCJzZW50KCRldmVudClcIlxuICBbbWVudGlvbkNvbmZpZ109XCJhdXRvY29tcGxldGVDb25maWdcIlxuICAoc2VhcmNoVGVybSk9XCJhdXRjb21wbGV0ZVNlYXJjaFRlcm1DaGFuZ2VkKCRldmVudClcIlxuICBbbWVudGlvbkxpc3RUZW1wbGF0ZV09XCJhdXRvY29tcGxldGVJdGVtXCJcbiAgKGJsdXIpPVwiaW5wdXRMZWZ0KClcIlxuPjwvdGV4dGFyZWE+XG48bmctdGVtcGxhdGUgI2F1dG9jb21wbGV0ZUl0ZW0gbGV0LWl0ZW09XCJpdGVtXCI+XG4gIDxkaXYgY2xhc3M9XCJydGEgcnRhX19pdGVtIHN0ci1jaGF0X19lbW9qaXNlYXJjaF9faXRlbVwiIFtuZ1N3aXRjaF09XCJpdGVtLnR5cGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwicnRhX19lbnRpdHlcIiAqbmdTd2l0Y2hDYXNlPVwiJ21lbnRpb24nXCI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgbWVudGlvbkF1dG9jb21wbGV0ZUl0ZW1UZW1wbGF0ZSB8fCBkZWZhdWx0TWVudGlvblRlbXBsYXRlO1xuICAgICAgICAgIGNvbnRleHQ6IHsgaXRlbTogaXRlbSB9XG4gICAgICAgIFwiXG4gICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0TWVudGlvblRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxuICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX3VzZXItaXRlbVwiPlxuICAgIDxzdHJlYW0tYXZhdGFyXG4gICAgICBkYXRhLXRlc3RjbGFzcz1cImF2YXRhclwiXG4gICAgICBjbGFzcz1cInN0ci1jaGF0X19hdmF0YXIgc3RyLWNoYXRfX2F2YXRhci0tY2lyY2xlXCJcbiAgICAgIHN0eWxlPVwiaGVpZ2h0OiAyMHB4XCJcbiAgICAgIFtzaXplXT1cIjIwXCJcbiAgICAgIFtpbWFnZVVybF09XCJpdGVtLmltYWdlIHx8IGl0ZW0udXNlcj8uaW1hZ2VcIlxuICAgICAgW25hbWVdPVwiaXRlbS5hdXRvY29tcGxldGVMYWJlbFwiXG4gICAgPjwvc3RyZWFtLWF2YXRhcj5cbiAgICA8c3BhbiBkYXRhLXRlc3RjbGFzcz1cInVzZXJuYW1lXCIgY2xhc3M9XCJzdHItY2hhdF9fdXNlci1pdGVtLS1uYW1lXCI+e3tcbiAgICAgIGl0ZW0uYXV0b2NvbXBsZXRlTGFiZWxcbiAgICB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLWlucHV0L2F1dG9jb21wbGV0ZS10ZXh0YXJlYS9hdXRvY29tcGxldGUtdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL21lc3NhZ2UtaW5wdXQvYXV0b2NvbXBsZXRlLXRleHRhcmVhL2F1dG9jb21wbGV0ZS10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBR04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBUXZCLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBS3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBUXBFLE1BQU0sT0FBTyw2QkFBNkI7SUFtRHhDLFlBQ1UsY0FBOEIsRUFDOUIsaUJBQW9DLEVBQ3BDLHNCQUE4QztRQUY5QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBbkR6QyxVQUFLLEdBQUcsb0JBQW9CLENBQUM7UUFDbkMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLHVCQUFrQixHQUF3QixJQUFJLENBQUM7UUFPL0MsaUJBQVksR0FBOEIsU0FBUyxDQUFDO1FBQzFDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEs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QXZDLEtBQUs7Z0JBR0csK0JBQStCO3NCQUF2QyxLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ2EsV0FBVztzQkFBN0IsTUFBTTtnQkFDWSxJQUFJO3NCQUF0QixNQUFNO2dCQUNZLFlBQVk7c0JBQTlCLE1BQU07Z0JBT3FCLFlBQVk7c0JBQXZDLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lbnRpb25Db25maWcsIE1lbnRpb25zIH0gZnJvbSAnYW5ndWxhci1tZW50aW9ucyc7XG5pbXBvcnQge1xuICBNZW50aW9uQXV0Y29tcGxldGVMaXN0SXRlbUNvbnRleHQsXG4gIE1lbnRpb25BdXRjb21wbGV0ZUxpc3RJdGVtLFxuICBDb21tYW5kQXV0b2NvbXBsZXRlTGlzdEl0ZW1Db250ZXh0LFxufSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVc2VyUmVzcG9uc2UgfSBmcm9tICdzdHJlYW0tY2hhdCc7XG5pbXBvcnQgeyBDaGFubmVsU2VydmljZSB9IGZyb20gJy4uLy4uL2NoYW5uZWwuc2VydmljZSc7XG5pbXBvcnQgeyBUZXh0YXJlYUludGVyZmFjZSB9IGZyb20gJy4uL3RleHRhcmVhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDaGF0Q2xpZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NoYXQtY2xpZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRyYW5zbGl0ZXJhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi90cmFuc2xpdGVyYXRpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0cmVhbS1hdXRvY29tcGxldGUtdGV4dGFyZWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLXRleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlVGV4dGFyZWFDb21wb25lbnRcbiAgaW1wbGVtZW50cyBUZXh0YXJlYUludGVyZmFjZSwgT25DaGFuZ2VzXG57XG4gIEBIb3N0QmluZGluZygpIGNsYXNzID0gJ3N0ci1jaGF0X190ZXh0YXJlYSc7XG4gIEBJbnB1dCgpIHZhbHVlID0gJyc7XG4gIEBJbnB1dCgpIGFyZU1lbnRpb25zRW5hYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHRydWU7XG4gIEBJbnB1dCgpIG1lbnRpb25BdXRvY29tcGxldGVJdGVtVGVtcGxhdGU6XG4gICAgfCBUZW1wbGF0ZVJlZjxNZW50aW9uQXV0Y29tcGxldGVMaXN0SXRlbUNvbnRleHQ+XG4gICAgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGNvbW1hbmRBdXRvY29tcGxldGVJdGVtVGVtcGxhdGU6XG4gICAgfCBUZW1wbGF0ZVJlZjxDb21tYW5kQXV0b2NvbXBsZXRlTGlzdEl0ZW1Db250ZXh0PlxuICAgIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtZW50aW9uU2NvcGU6ICdjaGFubmVsJyB8ICdhcHBsaWNhdGlvbicgPSAnY2hhbm5lbCc7XG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VuZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHVzZXJNZW50aW9ucyA9IG5ldyBFdmVudEVtaXR0ZXI8VXNlclJlc3BvbnNlW10+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0b2NvbXBsZXRlS2V5ID0gJ2F1dG9jb21wbGV0ZUxhYmVsJztcbiAgcHJpdmF0ZSByZWFkb25seSBtZW50aW9uVHJpZ2dlckNoYXIgPSAnQCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZFRyaWdnZXJDaGFyID0gJy8nO1xuICBhdXRvY29tcGxldGVDb25maWc6IE1lbnRpb25Db25maWcgPSB7XG4gICAgbWVudGlvbnM6IFtdLFxuICB9O1xuICBAVmlld0NoaWxkKCdpbnB1dCcpIHByaXZhdGUgbWVzc2FnZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIG1lbnRpb25lZFVzZXJzOiBVc2VyUmVzcG9uc2VbXSA9IFtdO1xuICBwcml2YXRlIHVzZXJNZW50aW9uQ29uZmlnOiBNZW50aW9ucyA9IHtcbiAgICB0cmlnZ2VyQ2hhcjogdGhpcy5tZW50aW9uVHJpZ2dlckNoYXIsXG4gICAgZHJvcFVwOiB0cnVlLFxuICAgIGxhYmVsS2V5OiB0aGlzLmF1dG9jb21wbGV0ZUtleSxcbiAgICByZXR1cm5UcmlnZ2VyOiB0cnVlLFxuICAgIG1lbnRpb25GaWx0ZXI6IChcbiAgICAgIHNlYXJjaFN0cmluZzogc3RyaW5nLFxuICAgICAgaXRlbXM6IHsgYXV0b2NvbXBsZXRlTGFiZWw6IHN0cmluZyB9W11cbiAgICApID0+IHRoaXMuZmlsdGVyKHNlYXJjaFN0cmluZywgaXRlbXMpLFxuICAgIG1lbnRpb25TZWxlY3Q6IChpdGVtLCB0cmlnZ2VyQ2hhcikgPT5cbiAgICAgIHRoaXMuaXRlbVNlbGVjdGVkRnJvbUF1dG9jb21wbGV0ZUxpc3QoaXRlbSwgdHJpZ2dlckNoYXIpLFxuICB9O1xuICBwcml2YXRlIHNsYXNoQ29tbWFuZENvbmZpZzogTWVudGlvbnMgPSB7XG4gICAgdHJpZ2dlckNoYXI6IHRoaXMuY29tbWFuZFRyaWdnZXJDaGFyLFxuICAgIGRyb3BVcDogdHJ1ZSxcbiAgICBsYWJlbEtleTogJ25hbWUnLFxuICAgIHJldHVyblRyaWdnZXI6IHRydWUsXG4gICAgbWVudGlvbkZpbHRlcjogKFxuICAgICAgc2VhcmNoU3RyaW5nOiBzdHJpbmcsXG4gICAgICBpdGVtczogeyBhdXRvY29tcGxldGVMYWJlbDogc3RyaW5nIH1bXVxuICAgICkgPT4gdGhpcy5maWx0ZXIoc2VhcmNoU3RyaW5nLCBpdGVtcyksXG4gICAgbWVudGlvblNlbGVjdDogKGl0ZW0sIHRyaWdnZXJDaGFyKSA9PlxuICAgICAgdGhpcy5pdGVtU2VsZWN0ZWRGcm9tQXV0b2NvbXBsZXRlTGlzdChpdGVtLCB0cmlnZ2VyQ2hhciksXG4gIH07XG4gIHByaXZhdGUgc2VhcmNoVGVybSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbm5lbFNlcnZpY2U6IENoYW5uZWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhdENsaWVudFNlcnZpY2U6IENoYXRDbGllbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsaXRlcmF0aW9uU2VydmljZTogVHJhbnNsaXRlcmF0aW9uU2VydmljZVxuICApIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0kXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzAwKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHNlYXJjaFRlcm0pID0+IHtcbiAgICAgICAgaWYgKHNlYXJjaFRlcm0uc3RhcnRzV2l0aCh0aGlzLm1lbnRpb25UcmlnZ2VyQ2hhcikpIHtcbiAgICAgICAgICB2b2lkIHRoaXMudXBkYXRlTWVudGlvbk9wdGlvbnMoc2VhcmNoVGVybSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5jaGFubmVsU2VydmljZS5hY3RpdmVDaGFubmVsJC5zdWJzY3JpYmUoKGNoYW5uZWwpID0+IHtcbiAgICAgICAgY29uc3QgY29tbWFuZHMgPSBjaGFubmVsPy5nZXRDb25maWcoKT8uY29tbWFuZHMgfHwgW107XG4gICAgICAgIHRoaXMuc2xhc2hDb21tYW5kQ29uZmlnLml0ZW1zID0gY29tbWFuZHMubWFwKChjKSA9PiAoe1xuICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgW3RoaXMuYXV0b2NvbXBsZXRlS2V5XTogYy5uYW1lLFxuICAgICAgICAgIHR5cGU6ICdjb21tYW5kJyxcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLm1lbnRpb25lZFVzZXJzID0gW107XG4gICAgICAgIHRoaXMudXNlck1lbnRpb25zLm5leHQoWy4uLnRoaXMubWVudGlvbmVkVXNlcnNdKTtcbiAgICAgICAgdm9pZCB0aGlzLnVwZGF0ZU1lbnRpb25PcHRpb25zKHRoaXMuc2VhcmNoVGVybSQuZ2V0VmFsdWUoKSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5hdXRvY29tcGxldGVDb25maWcubWVudGlvbnMgPSBbXG4gICAgICB0aGlzLnVzZXJNZW50aW9uQ29uZmlnLFxuICAgICAgdGhpcy5zbGFzaENvbW1hbmRDb25maWcsXG4gICAgXTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5hcmVNZW50aW9uc0VuYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLmFyZU1lbnRpb25zRW5hYmxlZCkge1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbmZpZy5tZW50aW9ucyA9IFtcbiAgICAgICAgICB0aGlzLnVzZXJNZW50aW9uQ29uZmlnLFxuICAgICAgICAgIHRoaXMuc2xhc2hDb21tYW5kQ29uZmlnLFxuICAgICAgICBdO1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbmZpZyA9IHsgLi4udGhpcy5hdXRvY29tcGxldGVDb25maWcgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29uZmlnLm1lbnRpb25zID0gW3RoaXMuc2xhc2hDb21tYW5kQ29uZmlnXTtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb25maWcgPSB7IC4uLnRoaXMuYXV0b2NvbXBsZXRlQ29uZmlnIH07XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLm1lbnRpb25TY29wZSkge1xuICAgICAgdm9pZCB0aGlzLnVwZGF0ZU1lbnRpb25PcHRpb25zKHRoaXMuc2VhcmNoVGVybSQuZ2V0VmFsdWUoKSk7XG4gICAgfVxuICB9XG5cbiAgZmlsdGVyKHNlYXJjaFN0cmluZzogc3RyaW5nLCBpdGVtczogeyBhdXRvY29tcGxldGVMYWJlbDogc3RyaW5nIH1bXSkge1xuICAgIHJldHVybiBpdGVtcy5maWx0ZXIoKGl0ZW0pID0+XG4gICAgICB0aGlzLnRyYW5zbGl0ZXJhdGUoaXRlbS5hdXRvY29tcGxldGVMYWJlbC50b0xvd2VyQ2FzZSgpKS5pbmNsdWRlcyhcbiAgICAgICAgdGhpcy50cmFuc2xpdGVyYXRlKHNlYXJjaFN0cmluZy50b0xvd2VyQ2FzZSgpKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBpdGVtU2VsZWN0ZWRGcm9tQXV0b2NvbXBsZXRlTGlzdChcbiAgICBpdGVtOiBNZW50aW9uQXV0Y29tcGxldGVMaXN0SXRlbSxcbiAgICB0cmlnZ2VyQ2hhciA9ICcnXG4gICkge1xuICAgIGlmICh0cmlnZ2VyQ2hhciA9PT0gdGhpcy5tZW50aW9uVHJpZ2dlckNoYXIpIHtcbiAgICAgIHRoaXMubWVudGlvbmVkVXNlcnMucHVzaCgoaXRlbS51c2VyID8gaXRlbS51c2VyIDogaXRlbSkgYXMgVXNlclJlc3BvbnNlKTtcbiAgICAgIHRoaXMudXNlck1lbnRpb25zLm5leHQoWy4uLnRoaXMubWVudGlvbmVkVXNlcnNdKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIHRyaWdnZXJDaGFyICtcbiAgICAgIGl0ZW0uYXV0b2NvbXBsZXRlTGFiZWwgK1xuICAgICAgKHRyaWdnZXJDaGFyID09PSB0aGlzLmNvbW1hbmRUcmlnZ2VyQ2hhciA/ICcgJyA6ICcnKVxuICAgICk7XG4gIH1cblxuICBhdXRjb21wbGV0ZVNlYXJjaFRlcm1DaGFuZ2VkKHNlYXJjaFRlcm06IHN0cmluZykge1xuICAgIGlmIChzZWFyY2hUZXJtID09PSB0aGlzLm1lbnRpb25UcmlnZ2VyQ2hhcikge1xuICAgICAgdm9pZCB0aGlzLnVwZGF0ZU1lbnRpb25PcHRpb25zKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoVGVybSQubmV4dChzZWFyY2hUZXJtKTtcbiAgICB9XG4gIH1cblxuICBpbnB1dENoYW5nZWQoKSB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMubWVzc2FnZUlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICB9XG5cbiAgaW5wdXRMZWZ0KCkge1xuICAgIHRoaXMudXBkYXRlTWVudGlvbmVkVXNlcnNGcm9tVGV4dCgpO1xuICB9XG5cbiAgc2VudChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMudXBkYXRlTWVudGlvbmVkVXNlcnNGcm9tVGV4dCgpO1xuICAgIHRoaXMuc2VuZC5uZXh0KCk7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zbGl0ZXJhdGUoczogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudHJhbnNsaXRlcmF0aW9uU2VydmljZSkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsaXRlcmF0aW9uU2VydmljZS50cmFuc2xpdGVyYXRlKHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZU1lbnRpb25PcHRpb25zKHNlYXJjaFRlcm0/OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuYXJlTWVudGlvbnNFbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNlYXJjaFRlcm0gPSBzZWFyY2hUZXJtPy5yZXBsYWNlKHRoaXMubWVudGlvblRyaWdnZXJDaGFyLCAnJyk7XG4gICAgY29uc3QgcmVxdWVzdCA9XG4gICAgICB0aGlzLm1lbnRpb25TY29wZSA9PT0gJ2FwcGxpY2F0aW9uJ1xuICAgICAgICA/IChzOiBzdHJpbmcpID0+IHRoaXMuY2hhdENsaWVudFNlcnZpY2UuYXV0b2NvbXBsZXRlVXNlcnMocylcbiAgICAgICAgOiAoczogc3RyaW5nKSA9PiB0aGlzLmNoYW5uZWxTZXJ2aWNlLmF1dG9jb21wbGV0ZU1lbWJlcnMocyk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVxdWVzdChzZWFyY2hUZXJtIHx8ICcnKTtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZmlsdGVyKFxuICAgICAgc2VhcmNoVGVybSB8fCAnJyxcbiAgICAgIHJlc3VsdC5tYXAoKGkpID0+IHtcbiAgICAgICAgY29uc3QgdXNlciA9IChpLnVzZXIgPyBpLnVzZXIgOiBpKSBhcyBVc2VyUmVzcG9uc2U7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uaSxcbiAgICAgICAgICBhdXRvY29tcGxldGVMYWJlbDogdXNlci5uYW1lIHx8IHVzZXIuaWQsXG4gICAgICAgICAgdHlwZTogJ21lbnRpb24nLFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMudXNlck1lbnRpb25Db25maWcuaXRlbXMgPSBpdGVtcztcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbmZpZy5tZW50aW9ucyA9IFtcbiAgICAgIHRoaXMudXNlck1lbnRpb25Db25maWcsXG4gICAgICB0aGlzLnNsYXNoQ29tbWFuZENvbmZpZyxcbiAgICBdO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29uZmlnID0geyAuLi50aGlzLmF1dG9jb21wbGV0ZUNvbmZpZyB9O1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVNZW50aW9uZWRVc2Vyc0Zyb21UZXh0KCkge1xuICAgIGNvbnN0IHVwZGF0ZWRNZW50aW9uZWRVc2VyczogVXNlclJlc3BvbnNlW10gPSBbXTtcbiAgICB0aGlzLm1lbnRpb25lZFVzZXJzLmZvckVhY2goKHUpID0+IHtcbiAgICAgIGNvbnN0IGtleSA9IHUubmFtZSB8fCB1LmlkO1xuICAgICAgaWYgKHRoaXMudmFsdWUuaW5jbHVkZXMoYCR7dGhpcy5tZW50aW9uVHJpZ2dlckNoYXJ9JHtrZXl9YCkpIHtcbiAgICAgICAgdXBkYXRlZE1lbnRpb25lZFVzZXJzLnB1c2godSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHVwZGF0ZWRNZW50aW9uZWRVc2Vycy5sZW5ndGggIT09IHRoaXMubWVudGlvbmVkVXNlcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnVzZXJNZW50aW9ucy5uZXh0KFsuLi51cGRhdGVkTWVudGlvbmVkVXNlcnNdKTtcbiAgICAgIHRoaXMubWVudGlvbmVkVXNlcnMgPSB1cGRhdGVkTWVudGlvbmVkVXNlcnM7XG4gICAgfVxuICB9XG59XG4iLCI8dGV4dGFyZWFcbiAgW3ZhbHVlXT1cInZhbHVlIHx8ICcnXCJcbiAgYXV0b2ZvY3VzXG4gIGRhdGEtdGVzdGlkPVwidGV4dGFyZWFcIlxuICAjaW5wdXRcbiAgcGxhY2Vob2xkZXI9XCJ7eyAnc3RyZWFtQ2hhdC5UeXBlIHlvdXIgbWVzc2FnZScgfCB0cmFuc2xhdGUgfX1cIlxuICBjbGFzcz1cInJ0YV9fdGV4dGFyZWEgc3RyLWNoYXRfX3RleHRhcmVhX190ZXh0YXJlYVwiXG4gIHJvd3M9XCIxXCJcbiAgKGlucHV0KT1cImlucHV0Q2hhbmdlZCgpXCJcbiAgKGtleWRvd24uZW50ZXIpPVwic2VudCgkZXZlbnQpXCJcbiAgW21lbnRpb25Db25maWddPVwiYXV0b2NvbXBsZXRlQ29uZmlnXCJcbiAgKHNlYXJjaFRlcm0pPVwiYXV0Y29tcGxldGVTZWFyY2hUZXJtQ2hhbmdlZCgkZXZlbnQpXCJcbiAgW21lbnRpb25MaXN0VGVtcGxhdGVdPVwiYXV0b2NvbXBsZXRlSXRlbVwiXG4gIChibHVyKT1cImlucHV0TGVmdCgpXCJcbj48L3RleHRhcmVhPlxuPG5nLXRlbXBsYXRlICNhdXRvY29tcGxldGVJdGVtIGxldC1pdGVtPVwiaXRlbVwiPlxuICA8ZGl2IGNsYXNzPVwicnRhIHJ0YV9faXRlbSBzdHItY2hhdF9fZW1vamlzZWFyY2hfX2l0ZW1cIiBbbmdTd2l0Y2hdPVwiaXRlbS50eXBlXCI+XG4gICAgPGRpdiBjbGFzcz1cInJ0YV9fZW50aXR5XCIgKm5nU3dpdGNoQ2FzZT1cIidtZW50aW9uJ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIG1lbnRpb25BdXRvY29tcGxldGVJdGVtVGVtcGxhdGUgfHwgZGVmYXVsdE1lbnRpb25UZW1wbGF0ZTtcbiAgICAgICAgICBjb250ZXh0OiB7IGl0ZW06IGl0ZW0gfVxuICAgICAgICBcIlxuICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJydGFfX2VudGl0eVwiICpuZ1N3aXRjaENhc2U9XCInY29tbWFuZCdcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICBjb21tYW5kQXV0b2NvbXBsZXRlSXRlbVRlbXBsYXRlIHx8IGRlZmF1bHRDb21tYW5kVGVtcGxhdGU7XG4gICAgICAgICAgY29udGV4dDogeyBpdGVtOiBpdGVtIH1cbiAgICAgICAgXCJcbiAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRDb21tYW5kVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XG4gIDxkaXYgY2xhc3M9XCJzdHItY2hhdF9fc2xhc2gtY29tbWFuZFwiPlxuICAgIDxzcGFuIGNsYXNzPVwic3RyLWNoYXRfX3NsYXNoLWNvbW1hbmQtaGVhZGVyXCI+XG4gICAgICA8c3Ryb25nIGRhdGEtdGVzdGNsYXNzPVwiY29tbWFuZC1uYW1lXCI+e3sgaXRlbS5uYW1lIH19PC9zdHJvbmc+XG4gICAgICB7eyBpdGVtLmFyZ3MgfX1cbiAgICA8L3NwYW4+XG4gICAgPGJyIC8+XG4gICAgPHNwYW4gY2xhc3M9XCJzdHItY2hhdF9fc2xhc2gtY29tbWFuZC1kZXNjcmlwdGlvblwiPnt7XG4gICAgICBpdGVtLmRlc2NyaXB0aW9uXG4gICAgfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0TWVudGlvblRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxuICA8ZGl2IGNsYXNzPVwic3RyLWNoYXRfX3VzZXItaXRlbVwiPlxuICAgIDxzdHJlYW0tYXZhdGFyXG4gICAgICBkYXRhLXRlc3RjbGFzcz1cImF2YXRhclwiXG4gICAgICBjbGFzcz1cInN0ci1jaGF0X19hdmF0YXIgc3RyLWNoYXRfX2F2YXRhci0tY2lyY2xlXCJcbiAgICAgIHN0eWxlPVwiaGVpZ2h0OiAyMHB4XCJcbiAgICAgIFtzaXplXT1cIjIwXCJcbiAgICAgIFtpbWFnZVVybF09XCJpdGVtLmltYWdlIHx8IGl0ZW0udXNlcj8uaW1hZ2VcIlxuICAgICAgW25hbWVdPVwiaXRlbS5hdXRvY29tcGxldGVMYWJlbFwiXG4gICAgPjwvc3RyZWFtLWF2YXRhcj5cbiAgICA8c3BhbiBkYXRhLXRlc3RjbGFzcz1cInVzZXJuYW1lXCIgY2xhc3M9XCJzdHItY2hhdF9fdXNlci1pdGVtLS1uYW1lXCI+e3tcbiAgICAgIGl0ZW0uYXV0b2NvbXBsZXRlTGFiZWxcbiAgICB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -16,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
|
|
|
16
16
|
providedIn: 'root',
|
|
17
17
|
}]
|
|
18
18
|
}], ctorParameters: function () { return []; } });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1pbnB1dC1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9tZXNzYWdlLWlucHV0L21lc3NhZ2UtaW5wdXQtY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFTeEQsTUFBTSxPQUFPLHlCQUF5QjtJQWdCcEM7UUFmQSx3QkFBbUIsR0FBd0IsSUFBSSxDQUFDO1FBQ2hELHVCQUFrQixHQUF3QixJQUFJLENBQUM7UUFXL0MsZ0NBQTJCLEdBQXdCLElBQUksQ0FBQztRQUN4RCxpQkFBWSxHQUEwQyxTQUFTLENBQUM7SUFFakQsQ0FBQzs7c0hBaEJMLHlCQUF5QjswSEFBekIseUJBQXlCLGNBRnhCLE1BQU07MkZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb21tYW5kQXV0b2NvbXBsZXRlTGlzdEl0ZW1Db250ZXh0LFxuICBNZW50aW9uQXV0Y29tcGxldGVMaXN0SXRlbUNvbnRleHQsXG59IGZyb20gJy4uL3R5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VJbnB1dENvbmZpZ1NlcnZpY2Uge1xuICBpc0ZpbGVVcGxvYWRFbmFibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdHJ1ZTtcbiAgYXJlTWVudGlvbnNFbmFibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdHJ1ZTtcbiAgbWVudGlvbkF1dG9jb21wbGV0ZUl0ZW1UZW1wbGF0ZTpcbiAgICB8IFRlbXBsYXRlUmVmPE1lbnRpb25BdXRjb21wbGV0ZUxpc3RJdGVtQ29udGV4dD5cbiAgICB8IHVuZGVmaW5lZDtcbiAgY29tbWFuZEF1dG9jb21wbGV0ZUl0ZW1UZW1wbGF0ZTpcbiAgICB8IFRlbXBsYXRlUmVmPENvbW1hbmRBdXRvY29tcGxldGVMaXN0SXRlbUNvbnRleHQ+XG4gICAgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3Mvc2RrL2FuZ3VsYXIvc2VydmljZXMvbWVzc2FnZS1pbnB1dC1jb25maWcvI292ZXJ2aWV3XG4gICAqL1xuICBhY2NlcHRlZEZpbGVUeXBlczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gIGlzTXVsdGlwbGVGaWxlVXBsb2FkRW5hYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHRydWU7XG4gIG1lbnRpb25TY29wZTogJ2NoYW5uZWwnIHwgJ2FwcGxpY2F0aW9uJyB8IHVuZGVmaW5lZCA9ICdjaGFubmVsJztcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
|