valtech-components 4.0.253 → 4.0.255
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/organisms/chat-window/chat-window.component.mjs +12 -4
- package/esm2022/lib/components/organisms/preferences-view/preferences-view.component.mjs +7 -11
- package/esm2022/lib/components/organisms/thread-panel/thread-panel.component.mjs +1 -1
- package/esm2022/lib/services/firebase/config.mjs +6 -3
- package/esm2022/lib/services/firebase/messaging.service.mjs +58 -21
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +81 -36
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/chat-window/chat-window.component.d.ts +6 -3
- package/lib/components/organisms/preferences-view/preferences-view.component.d.ts +2 -2
- package/lib/services/firebase/messaging.service.d.ts +15 -3
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -45,8 +45,12 @@ export class ChatWindowComponent {
|
|
|
45
45
|
this.isOpen = input(true);
|
|
46
46
|
this.typingUsers = input([]);
|
|
47
47
|
this.isLoading = input(false);
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
// Feature-flags del composer — cada app/consumidor decide qué habilitar.
|
|
49
|
+
/** Botón de adjuntar archivos/imágenes. */
|
|
50
|
+
this.showAttach = input(true);
|
|
51
|
+
/** Botón de dictado voz→texto (SpeechRecognition). */
|
|
52
|
+
this.showDictation = input(true);
|
|
53
|
+
/** Botón de mensaje de voz (grabar clip de audio). */
|
|
50
54
|
this.showVoiceMessage = input(false);
|
|
51
55
|
this.sendMessage = output();
|
|
52
56
|
this.loadMore = output();
|
|
@@ -167,7 +171,7 @@ export class ChatWindowComponent {
|
|
|
167
171
|
return this.i18n.t(key, 'ChatWindow');
|
|
168
172
|
}
|
|
169
173
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
170
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChatWindowComponent, isStandalone: true, selector: "val-chat-window", inputs: { convId: { classPropertyName: "convId", publicName: "convId", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, currentUserId: { classPropertyName: "currentUserId", publicName: "currentUserId", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, typingUsers: { classPropertyName: "typingUsers", publicName: "typingUsers", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, showVoiceMessage: { classPropertyName: "showVoiceMessage", publicName: "showVoiceMessage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sendMessage: "sendMessage", loadMore: "loadMore", reactionClick: "reactionClick", deleteMessage: "deleteMessage", replyTo: "replyTo", editMessage: "editMessage", typing: "typing", voice: "voice" }, viewQueries: [{ propertyName: "msgsEl", first: true, predicate: ["msgs"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
174
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChatWindowComponent, isStandalone: true, selector: "val-chat-window", inputs: { convId: { classPropertyName: "convId", publicName: "convId", isSignal: true, isRequired: false, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: false, transformFunction: null }, currentUserId: { classPropertyName: "currentUserId", publicName: "currentUserId", isSignal: true, isRequired: false, transformFunction: null }, isOpen: { classPropertyName: "isOpen", publicName: "isOpen", isSignal: true, isRequired: false, transformFunction: null }, typingUsers: { classPropertyName: "typingUsers", publicName: "typingUsers", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, showAttach: { classPropertyName: "showAttach", publicName: "showAttach", isSignal: true, isRequired: false, transformFunction: null }, showDictation: { classPropertyName: "showDictation", publicName: "showDictation", isSignal: true, isRequired: false, transformFunction: null }, showVoiceMessage: { classPropertyName: "showVoiceMessage", publicName: "showVoiceMessage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sendMessage: "sendMessage", loadMore: "loadMore", reactionClick: "reactionClick", deleteMessage: "deleteMessage", replyTo: "replyTo", editMessage: "editMessage", typing: "typing", voice: "voice" }, viewQueries: [{ propertyName: "msgsEl", first: true, predicate: ["msgs"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
171
175
|
<div class="chat">
|
|
172
176
|
<div #msgs class="messages" (scroll)="onScroll()">
|
|
173
177
|
@if (isLoading()) {
|
|
@@ -212,6 +216,8 @@ export class ChatWindowComponent {
|
|
|
212
216
|
@if (isOpen()) {
|
|
213
217
|
<val-chat-composer
|
|
214
218
|
[replyingTo]="replyingTo()"
|
|
219
|
+
[showAttach]="showAttach()"
|
|
220
|
+
[showMic]="showDictation()"
|
|
215
221
|
[showVoiceMessage]="showVoiceMessage()"
|
|
216
222
|
(send)="onSend($event)"
|
|
217
223
|
(typing)="typing.emit()"
|
|
@@ -271,6 +277,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
271
277
|
@if (isOpen()) {
|
|
272
278
|
<val-chat-composer
|
|
273
279
|
[replyingTo]="replyingTo()"
|
|
280
|
+
[showAttach]="showAttach()"
|
|
281
|
+
[showMic]="showDictation()"
|
|
274
282
|
[showVoiceMessage]="showVoiceMessage()"
|
|
275
283
|
(send)="onSend($event)"
|
|
276
284
|
(typing)="typing.emit()"
|
|
@@ -283,4 +291,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
283
291
|
</div>
|
|
284
292
|
`, styles: [":host{display:block;position:relative;height:100%;min-height:0}.chat{position:absolute;inset:0;display:flex;flex-direction:column}.messages{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:0}.state{margin:auto;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ion-color-medium, #92949c);font-size:.9375rem;text-align:center;padding:24px}.state.empty ion-icon{font-size:2.5rem;opacity:.5}.date-sep{position:sticky;top:4px;z-index:1;display:flex;justify-content:center;margin:8px 0}.date-sep span{font-size:.75rem;color:var(--ion-color-medium, #92949c);background:var(--ion-color-step-100, rgba(127, 127, 127, .14));padding:3px 12px;border-radius:999px;backdrop-filter:blur(4px)}.scroll-down{position:absolute;right:14px;bottom:84px;width:40px;height:40px;border-radius:50%;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff));color:var(--ion-color-medium, #92949c);box-shadow:0 2px 10px #00000026;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;z-index:3}.scroll-down .dot{position:absolute;top:0;right:0;width:12px;height:12px;border-radius:50%;background:var(--ion-color-primary);border:2px solid var(--ion-card-background, #fff)}.closed-banner{text-align:center;padding:14px;color:var(--ion-color-medium, #92949c);font-size:.875rem;border-top:1px solid var(--ion-border-color, rgba(0, 0, 0, .08))}\n"] }]
|
|
285
293
|
}], ctorParameters: () => [] });
|
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aW5kb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9jaGF0LXdpbmRvdy9jaGF0LXdpbmRvdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0seURBQXlELENBQUM7QUFFdEgsT0FBTyxFQUFFLHFCQUFxQixFQUF5QixNQUFNLHVEQUF1RCxDQUFDO0FBQ3JILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDOztBQUV2RyxRQUFRLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7QUFFbkQsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixFQUFFLEVBQUU7UUFDRixrQkFBa0IsRUFBRSxnQ0FBZ0M7UUFDcEQsT0FBTyxFQUFFLHNCQUFzQjtRQUMvQixVQUFVLEVBQUUsMENBQTBDO1FBQ3RELFdBQVcsRUFBRSxpQkFBaUI7S0FDL0I7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QUMsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDeEMsQ0FBQzsrR0F2SVUsbUJBQW1CO21HQUFuQixtQkFBbUIsczBDQXZKcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1RFQsNGhEQXhEUyxZQUFZLCtCQUFFLE9BQU8sMkpBQUUsc0JBQXNCLGlKQUFFLHFCQUFxQixnT0FBRSx3QkFBd0I7OzRGQXdKN0YsbUJBQW1CO2tCQTNKL0IsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLHdCQUF3QixDQUFDLFlBQy9GOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdURUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBhcnJvd0Rvd25PdXRsaW5lLCBjaGF0YnViYmxlc091dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBmb3JtYXREYXRlU2VwYXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL2RhdGV0aW1lJztcbmltcG9ydCB7IE1lc3NhZ2VSZXBseVRvIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2hhdC90eXBlcyc7XG5pbXBvcnQgeyBNZXNzYWdlQnViYmxlQ29tcG9uZW50LCBNZXNzYWdlQnViYmxlQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL21lc3NhZ2UtYnViYmxlL21lc3NhZ2UtYnViYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXNzYWdlQnViYmxlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbWVzc2FnZS1idWJibGUvdHlwZXMnO1xuaW1wb3J0IHsgQ2hhdENvbXBvc2VyQ29tcG9uZW50LCBDaGF0Q29tcG9zZXJTZW5kRXZlbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hhdC1jb21wb3Nlci9jaGF0LWNvbXBvc2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUeXBpbmdJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdHlwaW5nLWluZGljYXRvci90eXBpbmctaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5cbmFkZEljb25zKHsgYXJyb3dEb3duT3V0bGluZSwgY2hhdGJ1YmJsZXNPdXRsaW5lIH0pO1xuXG5jb25zdCBDSEFUX1dJTkRPV19JMThOID0ge1xuICBlczoge1xuICAgIGNvbnZlcnNhdGlvbkNsb3NlZDogJ0VzdGEgY29udmVyc2FjaW9uIGVzdGEgY2VycmFkYScsXG4gICAgbG9hZGluZzogJ0NhcmdhbmRvIG1lbnNhamVzLi4uJyxcbiAgICBub01lc3NhZ2VzOiAnQXVuIG5vIGhheSBtZW5zYWplcy4gRXNjcmliZSBlbCBwcmltZXJvLicsXG4gICAgbmV3TWVzc2FnZXM6ICdNZW5zYWplcyBudWV2b3MnLFxuICB9LFxuICBlbjoge1xuICAgIGNvbnZlcnNhdGlvbkNsb3NlZDogJ1RoaXMgY29udmVyc2F0aW9uIGlzIGNsb3NlZCcsXG4gICAgbG9hZGluZzogJ0xvYWRpbmcgbWVzc2FnZXMuLi4nLFxuICAgIG5vTWVzc2FnZXM6ICdObyBtZXNzYWdlcyB5ZXQuIFNlbmQgdGhlIGZpcnN0IG9uZS4nLFxuICAgIG5ld01lc3NhZ2VzOiAnTmV3IG1lc3NhZ2VzJyxcbiAgfSxcbn07XG5cbnR5cGUgQ2hhdFJvdyA9XG4gIHwgeyBraW5kOiAnZGF0ZSc7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVxuICB8IHtcbiAgICAgIGtpbmQ6ICdtc2cnO1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIG1zZzogTWVzc2FnZUJ1YmJsZU1ldGFkYXRhO1xuICAgICAgc2hvd05hbWU6IGJvb2xlYW47XG4gICAgICBzaG93QXZhdGFyOiBib29sZWFuO1xuICAgICAgdGFpbDogYm9vbGVhbjtcbiAgICB9O1xuXG4vKipcbiAqIHZhbC1jaGF0LXdpbmRvdyDigJQgdmVudGFuYSBkZSBjaGF0IGNvbXBsZXRhIChzaWduYWwgaW5wdXRzKS5cbiAqXG4gKiBBZ3J1cGEgbWVuc2FqZXMgY29uc2VjdXRpdm9zIGRlbCBtaXNtbyBlbWlzb3IgeSBwb3IgZMOtYSAoc2VwYXJhZG9yZXMgc3RpY2t5KSxcbiAqIG11ZXN0cmEgYXZhdGFyL25vbWJyZSBzb2xvIGVuIGxvcyBib3JkZXMgZGVsIGdydXBvLCBzY3JvbGwtdG8tYm90dG9tIGludGVsaWdlbnRlXG4gKiAoYXV0by1zY3JvbGwgc2kgZXN0w6FzIGFiYWpvLCBwaWxsIFwibWVuc2FqZXMgbnVldm9zXCIgc2kgZXN0w6FzIGxleWVuZG8gYXJyaWJhKSxcbiAqIGNvbXBvc2VyIG1vZGVybm8gY29uIGNvbnRleHRvIGRlIHJlc3B1ZXN0YSwgeSB0eXBpbmcgaW5kaWNhdG9yLlxuICpcbiAqIEFQSSBww7pibGljYSBlc3RhYmxlIChjb25zdW1pZGEgcG9yIHRocmVhZC1wYW5lbCB5IHNob3djYXNlKTogaW5wdXRzIGNvbnZJZCxcbiAqIG1lc3NhZ2VzLCBjdXJyZW50VXNlcklkLCBpc09wZW4sIHR5cGluZ1VzZXJzLCBpc0xvYWRpbmc7IG91dHB1dHMgc2VuZE1lc3NhZ2UsXG4gKiBsb2FkTW9yZSwgcmVhY3Rpb25DbGljaywgZGVsZXRlTWVzc2FnZSwgcmVwbHlUbyAoKyBlZGl0TWVzc2FnZS9hdHRhY2gvdm9pY2UgbnVldm9zKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNoYXQtd2luZG93JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uSWNvbiwgTWVzc2FnZUJ1YmJsZUNvbXBvbmVudCwgQ2hhdENvbXBvc2VyQ29tcG9uZW50LCBUeXBpbmdJbmRpY2F0b3JDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjaGF0XCI+XG4gICAgICA8ZGl2ICNtc2dzIGNsYXNzPVwibWVzc2FnZXNcIiAoc2Nyb2xsKT1cIm9uU2Nyb2xsKClcIj5cbiAgICAgICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnbG9hZGluZycpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIGlmIChyb3dzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlIGVtcHR5XCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoYXRidWJibGVzLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnbm9NZXNzYWdlcycpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICBAZm9yIChyb3cgb2Ygcm93cygpOyB0cmFjayByb3cuaWQpIHtcbiAgICAgICAgICAgIEBpZiAocm93LmtpbmQgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1zZXBcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyByb3cubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDx2YWwtbWVzc2FnZS1idWJibGVcbiAgICAgICAgICAgICAgICBbbXNnXT1cInJvdy5tc2dcIlxuICAgICAgICAgICAgICAgIFtzaG93TmFtZV09XCJyb3cuc2hvd05hbWVcIlxuICAgICAgICAgICAgICAgIFtzaG93QXZhdGFyXT1cInJvdy5zaG93QXZhdGFyXCJcbiAgICAgICAgICAgICAgICBbdGFpbF09XCJyb3cudGFpbFwiXG4gICAgICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGUoKVwiXG4gICAgICAgICAgICAgICAgKGFjdGlvbik9XCJvbkFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPHZhbC10eXBpbmctaW5kaWNhdG9yIFt0eXBpbmdVc2Vyc109XCJ0eXBpbmdVc2VycygpXCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKCFhdEJvdHRvbSgpKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzY3JvbGwtZG93blwiIChjbGljayk9XCJzY3JvbGxUb0JvdHRvbSh0cnVlKVwiIGFyaWEtbGFiZWw9XCJzY3JvbGxcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFycm93LWRvd24tb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgQGlmIChoYXNOZXcoKSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3RcIj48L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChpc09wZW4oKSkge1xuICAgICAgICA8dmFsLWNoYXQtY29tcG9zZXJcbiAgICAgICAgICBbcmVwbHlpbmdUb109XCJyZXBseWluZ1RvKClcIlxuICAgICAgICAgIFtzaG93Vm9pY2VNZXNzYWdlXT1cInNob3dWb2ljZU1lc3NhZ2UoKVwiXG4gICAgICAgICAgKHNlbmQpPVwib25TZW5kKCRldmVudClcIlxuICAgICAgICAgICh0eXBpbmcpPVwidHlwaW5nLmVtaXQoKVwiXG4gICAgICAgICAgKHZvaWNlKT1cInZvaWNlLmVtaXQoKVwiXG4gICAgICAgICAgKGNhbmNlbFJlcGx5KT1cInJlcGx5aW5nVG8uc2V0KG51bGwpXCJcbiAgICAgICAgLz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2VkLWJhbm5lclwiPnt7IHQoJ2NvbnZlcnNhdGlvbkNsb3NlZCcpIH19PC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgfVxuICAgICAgLyogcG9zaXRpb246YWJzb2x1dGUgKyBpbnNldDowIGRhIGFsIGNvbnRlbmVkb3IgdW5hIGFsdHVyYSBERUZJTklEQSAoPSBsYSBkZWxcbiAgICAgICAgIGhvc3QpLCBzaW4gZGVwZW5kZXIgZGUgaGVpZ2h0OjEwMCUgcXVlIG5vIHJlc3VlbHZlIGVuIGNhZGVuYXMgZmxleC9zaGFkb3cuXG4gICAgICAgICBNZW5zYWplcyBzY3JvbGxlYW47IGVsIGNvbXBvc2VyIChmbGV4Om5vbmUpIHF1ZWRhIGFuY2xhZG8gYWJham8gc2llbXByZS4gKi9cbiAgICAgIC5jaGF0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIH1cbiAgICAgIC5tZXNzYWdlcyB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMDtcbiAgICAgIH1cbiAgICAgIC5zdGF0ZSB7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjkzNzVyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMjRweDtcbiAgICAgIH1cbiAgICAgIC5zdGF0ZS5lbXB0eSBpb24taWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB9XG4gICAgICAuZGF0ZS1zZXAge1xuICAgICAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgICAgICB0b3A6IDRweDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogOHB4IDA7XG4gICAgICB9XG4gICAgICAuZGF0ZS1zZXAgc3BhbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0sICM5Mjk0OWMpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3Itc3RlcC0xMDAsIHJnYmEoMTI3LCAxMjcsIDEyNywgMC4xNCkpO1xuICAgICAgICBwYWRkaW5nOiAzcHggMTJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xuICAgICAgfVxuICAgICAgLnNjcm9sbC1kb3duIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMTRweDtcbiAgICAgICAgYm90dG9tOiA4NHB4O1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jYXJkLWJhY2tncm91bmQsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmZmKSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgfVxuICAgICAgLnNjcm9sbC1kb3duIC5kb3Qge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMnB4O1xuICAgICAgICBoZWlnaHQ6IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCAjZmZmKTtcbiAgICAgIH1cbiAgICAgIC5jbG9zZWQtYmFubmVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzkyOTQ5Yyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGF0V2luZG93Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICByZWFkb25seSBjb252SWQgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgcmVhZG9ubHkgbWVzc2FnZXMgPSBpbnB1dDxNZXNzYWdlQnViYmxlTWV0YWRhdGFbXT4oW10pO1xuICByZWFkb25seSBjdXJyZW50VXNlcklkID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IGlzT3BlbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSB0eXBpbmdVc2VycyA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG4gIHJlYWRvbmx5IGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgLyoqIE11ZXN0cmEgZWwgYm90w7NuIGRlIG1lbnNhamUgZGUgdm96IChncmFiYXIgY2xpcCkuIEVsIGRpY3RhZG8gdm964oaSdGV4dG8gdmFcbiAgICogIHNpZW1wcmUuIERlZmF1bHQgZmFsc2UgKGFwcHMgbG8gYWN0aXZhbiBkb25kZSBlbCB0cmFuc2NvZGUgZXN0w6kgZGlzcG9uaWJsZSkuICovXG4gIHJlYWRvbmx5IHNob3dWb2ljZU1lc3NhZ2UgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgc2VuZE1lc3NhZ2UgPSBvdXRwdXQ8Q2hhdENvbXBvc2VyU2VuZEV2ZW50PigpO1xuICByZWFkb25seSBsb2FkTW9yZSA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSByZWFjdGlvbkNsaWNrID0gb3V0cHV0PHsgbXNnSWQ6IHN0cmluZzsgdG9rZW46IHN0cmluZyB9PigpO1xuICByZWFkb25seSBkZWxldGVNZXNzYWdlID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgcmVwbHlUbyA9IG91dHB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGVkaXRNZXNzYWdlID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgdHlwaW5nID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IHZvaWNlID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtc2dzRWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD4+KCdtc2dzJyk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlcGx5aW5nVG8gPSBzaWduYWw8TWVzc2FnZVJlcGx5VG8gfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGF0Qm90dG9tID0gc2lnbmFsKHRydWUpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGFzTmV3ID0gc2lnbmFsKGZhbHNlKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9jYWxlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaTE4bi5sYW5nKCkgPT09ICdlbicgPyAnZW4tVVMnIDogJ2VzLUNMJykpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKCdDaGF0V2luZG93JywgQ0hBVF9XSU5ET1dfSTE4Tik7XG5cbiAgICAvLyBBdXRvLXNjcm9sbCBhbCBmb25kbyBjdWFuZG8gbGxlZ2FuIG1lbnNhamVzIHkgZWwgdXN1YXJpbyB5YSBlc3RhYmEgYWJham9cbiAgICAvLyAobyBlbCDDumx0aW1vIG1lbnNhamUgZXMgcHJvcGlvKS4gU2kgZXN0w6EgbGV5ZW5kbyBhcnJpYmEsIG1hcmNhIFwibnVldm9zXCIuXG4gICAgbGV0IHByZXZDb3VudCA9IDA7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHJvd3MgPSB0aGlzLnJvd3MoKTtcbiAgICAgIGNvbnN0IGNvdW50ID0gcm93cy5sZW5ndGg7XG4gICAgICBpZiAoY291bnQgPT09IHByZXZDb3VudCkgcmV0dXJuO1xuICAgICAgY29uc3QgZ3JldyA9IGNvdW50ID4gcHJldkNvdW50O1xuICAgICAgcHJldkNvdW50ID0gY291bnQ7XG4gICAgICBjb25zdCBsYXN0ID0gdGhpcy5tZXNzYWdlcygpW3RoaXMubWVzc2FnZXMoKS5sZW5ndGggLSAxXTtcbiAgICAgIGNvbnN0IG1pbmUgPSBsYXN0Py5pc01pbmUgPz8gZmFsc2U7XG4gICAgICBpZiAodGhpcy5hdEJvdHRvbSgpIHx8IG1pbmUpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnNjcm9sbFRvQm90dG9tKGZhbHNlKSwgMCk7XG4gICAgICB9IGVsc2UgaWYgKGdyZXcpIHtcbiAgICAgICAgdGhpcy5oYXNOZXcuc2V0KHRydWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvd3MgPSBjb21wdXRlZDxDaGF0Um93W10+KCgpID0+IHtcbiAgICBjb25zdCBtc2dzID0gdGhpcy5tZXNzYWdlcygpO1xuICAgIGlmIChtc2dzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IGxhYmVscyA9IHtcbiAgICAgIHRvZGF5OiB0aGlzLmkxOG4udCgndG9kYXknLCAnX2dsb2JhbCcpLFxuICAgICAgeWVzdGVyZGF5OiB0aGlzLmkxOG4udCgneWVzdGVyZGF5JywgJ19nbG9iYWwnKSxcbiAgICB9O1xuICAgIGNvbnN0IG91dDogQ2hhdFJvd1tdID0gW107XG4gICAgbGV0IHByZXZEYXkgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1zZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IG0gPSBtc2dzW2ldO1xuICAgICAgY29uc3QgZCA9IG0uY3JlYXRlZEF0IGluc3RhbmNlb2YgRGF0ZSA/IG0uY3JlYXRlZEF0IDogbmV3IERhdGUobS5jcmVhdGVkQXQpO1xuICAgICAgY29uc3QgZGF5ID0gYCR7ZC5nZXRGdWxsWWVhcigpfS0ke2QuZ2V0TW9udGgoKX0tJHtkLmdldERhdGUoKX1gO1xuICAgICAgY29uc3QgbmV3RGF5ID0gZGF5ICE9PSBwcmV2RGF5O1xuICAgICAgaWYgKG5ld0RheSkge1xuICAgICAgICBvdXQucHVzaCh7IGtpbmQ6ICdkYXRlJywgaWQ6ICdkYXRlLScgKyBkYXksIGxhYmVsOiBmb3JtYXREYXRlU2VwYXJhdG9yKGQsIHRoaXMubG9jYWxlKCksIGxhYmVscykgfSk7XG4gICAgICAgIHByZXZEYXkgPSBkYXk7XG4gICAgICB9XG4gICAgICBjb25zdCBwcmV2ID0gbXNnc1tpIC0gMV07XG4gICAgICBjb25zdCBuZXh0ID0gbXNnc1tpICsgMV07XG4gICAgICBjb25zdCBmaXJzdEluR3JvdXAgPSBuZXdEYXkgfHwgIXByZXYgfHwgcHJldi5zZW5kZXJJZCAhPT0gbS5zZW5kZXJJZDtcbiAgICAgIGNvbnN0IG5leHREYXkgPSBuZXh0XG4gICAgICAgID8gYCR7bmV3IERhdGUobmV4dC5jcmVhdGVkQXQpLmdldEZ1bGxZZWFyKCl9LSR7bmV3IERhdGUobmV4dC5jcmVhdGVkQXQpLmdldE1vbnRoKCl9LSR7bmV3IERhdGUobmV4dC5jcmVhdGVkQXQpLmdldERhdGUoKX1gXG4gICAgICAgIDogJyc7XG4gICAgICBjb25zdCBsYXN0SW5Hcm91cCA9ICFuZXh0IHx8IG5leHQuc2VuZGVySWQgIT09IG0uc2VuZGVySWQgfHwgbmV4dERheSAhPT0gZGF5O1xuICAgICAgb3V0LnB1c2goe1xuICAgICAgICBraW5kOiAnbXNnJyxcbiAgICAgICAgaWQ6IG0ubXNnSWQsXG4gICAgICAgIG1zZzogbSxcbiAgICAgICAgc2hvd05hbWU6IGZpcnN0SW5Hcm91cCAmJiAhbS5pc01pbmUsXG4gICAgICAgIHNob3dBdmF0YXI6IGxhc3RJbkdyb3VwICYmICFtLmlzTWluZSxcbiAgICAgICAgdGFpbDogbGFzdEluR3JvdXAsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG91dDtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG9uU2Nyb2xsKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5tc2dzRWwoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgY29uc3QgbmVhckJvdHRvbSA9IGVsLnNjcm9sbEhlaWdodCAtIGVsLnNjcm9sbFRvcCAtIGVsLmNsaWVudEhlaWdodCA8IDgwO1xuICAgIHRoaXMuYXRCb3R0b20uc2V0KG5lYXJCb3R0b20pO1xuICAgIGlmIChuZWFyQm90dG9tKSB0aGlzLmhhc05ldy5zZXQoZmFsc2UpO1xuICAgIGlmIChlbC5zY3JvbGxUb3AgPCA0MCkgdGhpcy5sb2FkTW9yZS5lbWl0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2Nyb2xsVG9Cb3R0b20oc21vb3RoOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLm1zZ3NFbCgpPy5uYXRpdmVFbGVtZW50O1xuICAgIGlmICghZWwpIHJldHVybjtcbiAgICBlbC5zY3JvbGxUbyh7IHRvcDogZWwuc2Nyb2xsSGVpZ2h0LCBiZWhhdmlvcjogc21vb3RoID8gJ3Ntb290aCcgOiAnYXV0bycgfSk7XG4gICAgdGhpcy5hdEJvdHRvbS5zZXQodHJ1ZSk7XG4gICAgdGhpcy5oYXNOZXcuc2V0KGZhbHNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvblNlbmQoZXZlbnQ6IENoYXRDb21wb3NlclNlbmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VuZE1lc3NhZ2UuZW1pdChldmVudCk7XG4gICAgdGhpcy5yZXBseWluZ1RvLnNldChudWxsKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkFjdGlvbihldmVudDogTWVzc2FnZUJ1YmJsZUFjdGlvbik6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgY2FzZSAncmVwbHknOiB7XG4gICAgICAgIGNvbnN0IG0gPSB0aGlzLm1lc3NhZ2VzKCkuZmluZCh4ID0+IHgubXNnSWQgPT09IGV2ZW50Lm1zZ0lkKTtcbiAgICAgICAgaWYgKG0pIHtcbiAgICAgICAgICB0aGlzLnJlcGx5aW5nVG8uc2V0KHsgbXNnSWQ6IG0ubXNnSWQsIHNlbmRlck5hbWU6IG0uc2VuZGVyTmFtZSwgYm9keTogbS5ib2R5IH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVwbHlUby5lbWl0KGV2ZW50Lm1zZ0lkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdlZGl0JzpcbiAgICAgICAgdGhpcy5lZGl0TWVzc2FnZS5lbWl0KGV2ZW50Lm1zZ0lkKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICB0aGlzLmRlbGV0ZU1lc3NhZ2UuZW1pdChldmVudC5tc2dJZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmVhY3QnOlxuICAgICAgICB0aGlzLnJlYWN0aW9uQ2xpY2suZW1pdCh7IG1zZ0lkOiBldmVudC5tc2dJZCwgdG9rZW46IGV2ZW50LnRva2VuID8/ICfwn5GNJyB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgJ0NoYXRXaW5kb3cnKTtcbiAgfVxufVxuIl19
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13aW5kb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9jaGF0LXdpbmRvdy9jaGF0LXdpbmRvdy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQXVCLE1BQU0seURBQXlELENBQUM7QUFFdEgsT0FBTyxFQUFFLHFCQUFxQixFQUF5QixNQUFNLHVEQUF1RCxDQUFDO0FBQ3JILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDOztBQUV2RyxRQUFRLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7QUFFbkQsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixFQUFFLEVBQUU7UUFDRixrQkFBa0IsRUFBRSxnQ0FBZ0M7UUFDcEQsT0FBTyxFQUFFLHNCQUFzQjtRQUMvQixVQUFVLEVBQUUsMENBQTBDO1FBQ3RELFdBQVcsRUFBRSxpQkFBaUI7S0FDL0I7SUFDRCxFQUFFLEVBQUU7UUFDRixrQkFBa0IsRUFBRSw2QkFBNkI7UUFDakQsT0FBTyxFQUFFLHFCQUFxQjtRQUM5QixVQUFVLEVBQUUsc0NBQXNDO1FBQ2xELFdBQVcsRUFBRSxjQUFjO0tBQzVCO0NBQ0YsQ0FBQztBQWFGOzs7Ozs7Ozs7OztHQVdHO0FBOEpILE1BQU0sT0FBTyxtQkFBbUI7SUFrQzlCO1FBakNRLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFMUIsV0FBTSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUMzQixhQUFRLEdBQUcsS0FBSyxDQUEwQixFQUFFLENBQUMsQ0FBQztRQUM5QyxrQkFBYSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNsQyxXQUFNLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzlCLGdCQUFXLEdBQUcsS0FBSyxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDM0MseUVBQXlFO1FBQ3pFLDJDQUEyQztRQUNsQyxlQUFVLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzNDLHNEQUFzRDtRQUM3QyxrQkFBYSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUM5QyxzREFBc0Q7UUFDN0MscUJBQWdCLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXpDLGdCQUFXLEdBQUcsTUFBTSxFQUF5QixDQUFDO1FBQzlDLGFBQVEsR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUMxQixrQkFBYSxHQUFHLE1BQU0sRUFBb0MsQ0FBQztRQUMzRCxrQkFBYSxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBQ2pDLFlBQU8sR0FBRyxNQUFNLEVBQVUsQ0FBQztRQUMzQixnQkFBVyxHQUFHLE1BQU0sRUFBVSxDQUFDO1FBQy9CLFdBQU0sR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUN4QixVQUFLLEdBQUcsTUFBTSxFQUFRLENBQUM7UUFFZixXQUFNLEdBQUcsU0FBUyxDQUE2QixNQUFNLENBQUMsQ0FBQztRQUVyRCxlQUFVLEdBQUcsTUFBTSxDQUF3QixJQUFJLENBQUMsQ0FBQztRQUNqRCxhQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLFdBQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkIsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUF3QnpFLFNBQUksR0FBRyxRQUFRLENBQVksR0FBRyxFQUFFO1lBQ2pELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUNqQyxNQUFNLE1BQU0sR0FBRztnQkFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQztnQkFDdEMsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7YUFDL0MsQ0FBQztZQUNGLE1BQU0sR0FBRyxHQUFjLEVBQUUsQ0FBQztZQUMxQixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDckMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM1RSxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQ2hFLE1BQU0sTUFBTSxHQUFHLEdBQUcsS0FBSyxPQUFPLENBQUM7Z0JBQy9CLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sR0FBRyxHQUFHLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNwRyxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNoQixDQUFDO2dCQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JFLE1BQU0sT0FBTyxHQUFHLElBQUk7b0JBQ2xCLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUMxSCxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNQLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxDQUFDLFFBQVEsSUFBSSxPQUFPLEtBQUssR0FBRyxDQUFDO2dCQUM3RSxHQUFHLENBQUMsSUFBSSxDQUFDO29CQUNQLElBQUksRUFBRSxLQUFLO29CQUNYLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSztvQkFDWCxHQUFHLEVBQUUsQ0FBQztvQkFDTixRQUFRLEVBQUUsWUFBWSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU07b0JBQ25DLFVBQVUsRUFBRSxXQUFXLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTTtvQkFDcEMsSUFBSSxFQUFFLFdBQVc7aUJBQ2xCLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUFDO1FBeERELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFM0QsMkVBQTJFO1FBQzNFLDJFQUEyRTtRQUMzRSxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzFCLElBQUksS0FBSyxLQUFLLFNBQVM7Z0JBQUUsT0FBTztZQUNoQyxNQUFNLElBQUksR0FBRyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQy9CLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDbEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBSSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUM7WUFDbkMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUM7aUJBQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQXVDUyxRQUFRO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxhQUFhLENBQUM7UUFDeEMsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPO1FBQ2hCLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN6RSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixJQUFJLFVBQVU7WUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEdBQUcsRUFBRTtZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxNQUFlO1FBQ3RDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxhQUFhLENBQUM7UUFDeEMsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPO1FBQ2hCLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVTLE1BQU0sQ0FBQyxLQUE0QjtRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRVMsUUFBUSxDQUFDLEtBQTBCO1FBQzNDLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDYixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ2xGLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixNQUFNO1lBQ1IsQ0FBQztZQUNELEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ25DLE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNyQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDNUUsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsQ0FBQyxDQUFDLEdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDOytHQTNJVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw2bERBekpwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeURULDRoREExRFMsWUFBWSwrQkFBRSxPQUFPLDJKQUFFLHNCQUFzQixpSkFBRSxxQkFBcUIsZ09BQUUsd0JBQXdCOzs0RkEwSjdGLG1CQUFtQjtrQkE3Si9CLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSx3QkFBd0IsQ0FBQyxZQUMvRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeURUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBhcnJvd0Rvd25PdXRsaW5lLCBjaGF0YnViYmxlc091dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBmb3JtYXREYXRlU2VwYXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL2RhdGV0aW1lJztcbmltcG9ydCB7IE1lc3NhZ2VSZXBseVRvIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2hhdC90eXBlcyc7XG5pbXBvcnQgeyBNZXNzYWdlQnViYmxlQ29tcG9uZW50LCBNZXNzYWdlQnViYmxlQWN0aW9uIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL21lc3NhZ2UtYnViYmxlL21lc3NhZ2UtYnViYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXNzYWdlQnViYmxlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbWVzc2FnZS1idWJibGUvdHlwZXMnO1xuaW1wb3J0IHsgQ2hhdENvbXBvc2VyQ29tcG9uZW50LCBDaGF0Q29tcG9zZXJTZW5kRXZlbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hhdC1jb21wb3Nlci9jaGF0LWNvbXBvc2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUeXBpbmdJbmRpY2F0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdHlwaW5nLWluZGljYXRvci90eXBpbmctaW5kaWNhdG9yLmNvbXBvbmVudCc7XG5cbmFkZEljb25zKHsgYXJyb3dEb3duT3V0bGluZSwgY2hhdGJ1YmJsZXNPdXRsaW5lIH0pO1xuXG5jb25zdCBDSEFUX1dJTkRPV19JMThOID0ge1xuICBlczoge1xuICAgIGNvbnZlcnNhdGlvbkNsb3NlZDogJ0VzdGEgY29udmVyc2FjaW9uIGVzdGEgY2VycmFkYScsXG4gICAgbG9hZGluZzogJ0NhcmdhbmRvIG1lbnNhamVzLi4uJyxcbiAgICBub01lc3NhZ2VzOiAnQXVuIG5vIGhheSBtZW5zYWplcy4gRXNjcmliZSBlbCBwcmltZXJvLicsXG4gICAgbmV3TWVzc2FnZXM6ICdNZW5zYWplcyBudWV2b3MnLFxuICB9LFxuICBlbjoge1xuICAgIGNvbnZlcnNhdGlvbkNsb3NlZDogJ1RoaXMgY29udmVyc2F0aW9uIGlzIGNsb3NlZCcsXG4gICAgbG9hZGluZzogJ0xvYWRpbmcgbWVzc2FnZXMuLi4nLFxuICAgIG5vTWVzc2FnZXM6ICdObyBtZXNzYWdlcyB5ZXQuIFNlbmQgdGhlIGZpcnN0IG9uZS4nLFxuICAgIG5ld01lc3NhZ2VzOiAnTmV3IG1lc3NhZ2VzJyxcbiAgfSxcbn07XG5cbnR5cGUgQ2hhdFJvdyA9XG4gIHwgeyBraW5kOiAnZGF0ZSc7IGlkOiBzdHJpbmc7IGxhYmVsOiBzdHJpbmcgfVxuICB8IHtcbiAgICAgIGtpbmQ6ICdtc2cnO1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIG1zZzogTWVzc2FnZUJ1YmJsZU1ldGFkYXRhO1xuICAgICAgc2hvd05hbWU6IGJvb2xlYW47XG4gICAgICBzaG93QXZhdGFyOiBib29sZWFuO1xuICAgICAgdGFpbDogYm9vbGVhbjtcbiAgICB9O1xuXG4vKipcbiAqIHZhbC1jaGF0LXdpbmRvdyDigJQgdmVudGFuYSBkZSBjaGF0IGNvbXBsZXRhIChzaWduYWwgaW5wdXRzKS5cbiAqXG4gKiBBZ3J1cGEgbWVuc2FqZXMgY29uc2VjdXRpdm9zIGRlbCBtaXNtbyBlbWlzb3IgeSBwb3IgZMOtYSAoc2VwYXJhZG9yZXMgc3RpY2t5KSxcbiAqIG11ZXN0cmEgYXZhdGFyL25vbWJyZSBzb2xvIGVuIGxvcyBib3JkZXMgZGVsIGdydXBvLCBzY3JvbGwtdG8tYm90dG9tIGludGVsaWdlbnRlXG4gKiAoYXV0by1zY3JvbGwgc2kgZXN0w6FzIGFiYWpvLCBwaWxsIFwibWVuc2FqZXMgbnVldm9zXCIgc2kgZXN0w6FzIGxleWVuZG8gYXJyaWJhKSxcbiAqIGNvbXBvc2VyIG1vZGVybm8gY29uIGNvbnRleHRvIGRlIHJlc3B1ZXN0YSwgeSB0eXBpbmcgaW5kaWNhdG9yLlxuICpcbiAqIEFQSSBww7pibGljYSBlc3RhYmxlIChjb25zdW1pZGEgcG9yIHRocmVhZC1wYW5lbCB5IHNob3djYXNlKTogaW5wdXRzIGNvbnZJZCxcbiAqIG1lc3NhZ2VzLCBjdXJyZW50VXNlcklkLCBpc09wZW4sIHR5cGluZ1VzZXJzLCBpc0xvYWRpbmc7IG91dHB1dHMgc2VuZE1lc3NhZ2UsXG4gKiBsb2FkTW9yZSwgcmVhY3Rpb25DbGljaywgZGVsZXRlTWVzc2FnZSwgcmVwbHlUbyAoKyBlZGl0TWVzc2FnZS9hdHRhY2gvdm9pY2UgbnVldm9zKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNoYXQtd2luZG93JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uSWNvbiwgTWVzc2FnZUJ1YmJsZUNvbXBvbmVudCwgQ2hhdENvbXBvc2VyQ29tcG9uZW50LCBUeXBpbmdJbmRpY2F0b3JDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJjaGF0XCI+XG4gICAgICA8ZGl2ICNtc2dzIGNsYXNzPVwibWVzc2FnZXNcIiAoc2Nyb2xsKT1cIm9uU2Nyb2xsKClcIj5cbiAgICAgICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZVwiPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnbG9hZGluZycpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIGlmIChyb3dzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlIGVtcHR5XCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoYXRidWJibGVzLW91dGxpbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgICAgPHNwYW4+e3sgdCgnbm9NZXNzYWdlcycpIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICBAZm9yIChyb3cgb2Ygcm93cygpOyB0cmFjayByb3cuaWQpIHtcbiAgICAgICAgICAgIEBpZiAocm93LmtpbmQgPT09ICdkYXRlJykge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1zZXBcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyByb3cubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDx2YWwtbWVzc2FnZS1idWJibGVcbiAgICAgICAgICAgICAgICBbbXNnXT1cInJvdy5tc2dcIlxuICAgICAgICAgICAgICAgIFtzaG93TmFtZV09XCJyb3cuc2hvd05hbWVcIlxuICAgICAgICAgICAgICAgIFtzaG93QXZhdGFyXT1cInJvdy5zaG93QXZhdGFyXCJcbiAgICAgICAgICAgICAgICBbdGFpbF09XCJyb3cudGFpbFwiXG4gICAgICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGUoKVwiXG4gICAgICAgICAgICAgICAgKGFjdGlvbik9XCJvbkFjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPHZhbC10eXBpbmctaW5kaWNhdG9yIFt0eXBpbmdVc2Vyc109XCJ0eXBpbmdVc2VycygpXCIgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKCFhdEJvdHRvbSgpKSB7XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzY3JvbGwtZG93blwiIChjbGljayk9XCJzY3JvbGxUb0JvdHRvbSh0cnVlKVwiIGFyaWEtbGFiZWw9XCJzY3JvbGxcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFycm93LWRvd24tb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgQGlmIChoYXNOZXcoKSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkb3RcIj48L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChpc09wZW4oKSkge1xuICAgICAgICA8dmFsLWNoYXQtY29tcG9zZXJcbiAgICAgICAgICBbcmVwbHlpbmdUb109XCJyZXBseWluZ1RvKClcIlxuICAgICAgICAgIFtzaG93QXR0YWNoXT1cInNob3dBdHRhY2goKVwiXG4gICAgICAgICAgW3Nob3dNaWNdPVwic2hvd0RpY3RhdGlvbigpXCJcbiAgICAgICAgICBbc2hvd1ZvaWNlTWVzc2FnZV09XCJzaG93Vm9pY2VNZXNzYWdlKClcIlxuICAgICAgICAgIChzZW5kKT1cIm9uU2VuZCgkZXZlbnQpXCJcbiAgICAgICAgICAodHlwaW5nKT1cInR5cGluZy5lbWl0KClcIlxuICAgICAgICAgICh2b2ljZSk9XCJ2b2ljZS5lbWl0KClcIlxuICAgICAgICAgIChjYW5jZWxSZXBseSk9XCJyZXBseWluZ1RvLnNldChudWxsKVwiXG4gICAgICAgIC8+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNsb3NlZC1iYW5uZXJcIj57eyB0KCdjb252ZXJzYXRpb25DbG9zZWQnKSB9fTwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIH1cbiAgICAgIC8qIHBvc2l0aW9uOmFic29sdXRlICsgaW5zZXQ6MCBkYSBhbCBjb250ZW5lZG9yIHVuYSBhbHR1cmEgREVGSU5JREEgKD0gbGEgZGVsXG4gICAgICAgICBob3N0KSwgc2luIGRlcGVuZGVyIGRlIGhlaWdodDoxMDAlIHF1ZSBubyByZXN1ZWx2ZSBlbiBjYWRlbmFzIGZsZXgvc2hhZG93LlxuICAgICAgICAgTWVuc2FqZXMgc2Nyb2xsZWFuOyBlbCBjb21wb3NlciAoZmxleDpub25lKSBxdWVkYSBhbmNsYWRvIGFiYWpvIHNpZW1wcmUuICovXG4gICAgICAuY2hhdCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgaW5zZXQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICB9XG4gICAgICAubWVzc2FnZXMge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDA7XG4gICAgICB9XG4gICAgICAuc3RhdGUge1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzkyOTQ5Yyk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45Mzc1cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgICB9XG4gICAgICAuc3RhdGUuZW1wdHkgaW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgfVxuICAgICAgLmRhdGUtc2VwIHtcbiAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgdG9wOiA0cHg7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgfVxuICAgICAgLmRhdGUtc2VwIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtLCAjOTI5NDljKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNvbG9yLXN0ZXAtMTAwLCByZ2JhKDEyNywgMTI3LCAxMjcsIDAuMTQpKTtcbiAgICAgICAgcGFkZGluZzogM3B4IDEycHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbiAgICAgIH1cbiAgICAgIC5zY3JvbGwtZG93biB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IDE0cHg7XG4gICAgICAgIGJvdHRvbTogODRweDtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvciwgI2ZmZikpO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzkyOTQ5Yyk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgIH1cbiAgICAgIC5zY3JvbGwtZG93biAuZG90IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB3aWR0aDogMTJweDtcbiAgICAgICAgaGVpZ2h0OiAxMnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jb2xvci1wcmltYXJ5KTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgI2ZmZik7XG4gICAgICB9XG4gICAgICAuY2xvc2VkLWJhbm5lciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTRweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0sICM5Mjk0OWMpO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0taW9uLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA4KSk7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdFdpbmRvd0NvbXBvbmVudCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgY29udklkID0gaW5wdXQ8c3RyaW5nPignJyk7XG4gIHJlYWRvbmx5IG1lc3NhZ2VzID0gaW5wdXQ8TWVzc2FnZUJ1YmJsZU1ldGFkYXRhW10+KFtdKTtcbiAgcmVhZG9ubHkgY3VycmVudFVzZXJJZCA9IGlucHV0PHN0cmluZz4oJycpO1xuICByZWFkb25seSBpc09wZW4gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgdHlwaW5nVXNlcnMgPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuICByZWFkb25seSBpc0xvYWRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIC8vIEZlYXR1cmUtZmxhZ3MgZGVsIGNvbXBvc2VyIOKAlCBjYWRhIGFwcC9jb25zdW1pZG9yIGRlY2lkZSBxdcOpIGhhYmlsaXRhci5cbiAgLyoqIEJvdMOzbiBkZSBhZGp1bnRhciBhcmNoaXZvcy9pbcOhZ2VuZXMuICovXG4gIHJlYWRvbmx5IHNob3dBdHRhY2ggPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgLyoqIEJvdMOzbiBkZSBkaWN0YWRvIHZveuKGknRleHRvIChTcGVlY2hSZWNvZ25pdGlvbikuICovXG4gIHJlYWRvbmx5IHNob3dEaWN0YXRpb24gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgLyoqIEJvdMOzbiBkZSBtZW5zYWplIGRlIHZveiAoZ3JhYmFyIGNsaXAgZGUgYXVkaW8pLiAqL1xuICByZWFkb25seSBzaG93Vm9pY2VNZXNzYWdlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHNlbmRNZXNzYWdlID0gb3V0cHV0PENoYXRDb21wb3NlclNlbmRFdmVudD4oKTtcbiAgcmVhZG9ubHkgbG9hZE1vcmUgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgcmVhZG9ubHkgcmVhY3Rpb25DbGljayA9IG91dHB1dDx7IG1zZ0lkOiBzdHJpbmc7IHRva2VuOiBzdHJpbmcgfT4oKTtcbiAgcmVhZG9ubHkgZGVsZXRlTWVzc2FnZSA9IG91dHB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHJlcGx5VG8gPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBlZGl0TWVzc2FnZSA9IG91dHB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHR5cGluZyA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSB2b2ljZSA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbXNnc0VsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PignbXNncycpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByZXBseWluZ1RvID0gc2lnbmFsPE1lc3NhZ2VSZXBseVRvIHwgbnVsbD4obnVsbCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBhdEJvdHRvbSA9IHNpZ25hbCh0cnVlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGhhc05ldyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvY2FsZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmkxOG4ubGFuZygpID09PSAnZW4nID8gJ2VuLVVTJyA6ICdlcy1DTCcpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cygnQ2hhdFdpbmRvdycsIENIQVRfV0lORE9XX0kxOE4pO1xuXG4gICAgLy8gQXV0by1zY3JvbGwgYWwgZm9uZG8gY3VhbmRvIGxsZWdhbiBtZW5zYWplcyB5IGVsIHVzdWFyaW8geWEgZXN0YWJhIGFiYWpvXG4gICAgLy8gKG8gZWwgw7psdGltbyBtZW5zYWplIGVzIHByb3BpbykuIFNpIGVzdMOhIGxleWVuZG8gYXJyaWJhLCBtYXJjYSBcIm51ZXZvc1wiLlxuICAgIGxldCBwcmV2Q291bnQgPSAwO1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCByb3dzID0gdGhpcy5yb3dzKCk7XG4gICAgICBjb25zdCBjb3VudCA9IHJvd3MubGVuZ3RoO1xuICAgICAgaWYgKGNvdW50ID09PSBwcmV2Q291bnQpIHJldHVybjtcbiAgICAgIGNvbnN0IGdyZXcgPSBjb3VudCA+IHByZXZDb3VudDtcbiAgICAgIHByZXZDb3VudCA9IGNvdW50O1xuICAgICAgY29uc3QgbGFzdCA9IHRoaXMubWVzc2FnZXMoKVt0aGlzLm1lc3NhZ2VzKCkubGVuZ3RoIC0gMV07XG4gICAgICBjb25zdCBtaW5lID0gbGFzdD8uaXNNaW5lID8/IGZhbHNlO1xuICAgICAgaWYgKHRoaXMuYXRCb3R0b20oKSB8fCBtaW5lKSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zY3JvbGxUb0JvdHRvbShmYWxzZSksIDApO1xuICAgICAgfSBlbHNlIGlmIChncmV3KSB7XG4gICAgICAgIHRoaXMuaGFzTmV3LnNldCh0cnVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSByb3dzID0gY29tcHV0ZWQ8Q2hhdFJvd1tdPigoKSA9PiB7XG4gICAgY29uc3QgbXNncyA9IHRoaXMubWVzc2FnZXMoKTtcbiAgICBpZiAobXNncy5sZW5ndGggPT09IDApIHJldHVybiBbXTtcbiAgICBjb25zdCBsYWJlbHMgPSB7XG4gICAgICB0b2RheTogdGhpcy5pMThuLnQoJ3RvZGF5JywgJ19nbG9iYWwnKSxcbiAgICAgIHllc3RlcmRheTogdGhpcy5pMThuLnQoJ3llc3RlcmRheScsICdfZ2xvYmFsJyksXG4gICAgfTtcbiAgICBjb25zdCBvdXQ6IENoYXRSb3dbXSA9IFtdO1xuICAgIGxldCBwcmV2RGF5ID0gJyc7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtc2dzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBtID0gbXNnc1tpXTtcbiAgICAgIGNvbnN0IGQgPSBtLmNyZWF0ZWRBdCBpbnN0YW5jZW9mIERhdGUgPyBtLmNyZWF0ZWRBdCA6IG5ldyBEYXRlKG0uY3JlYXRlZEF0KTtcbiAgICAgIGNvbnN0IGRheSA9IGAke2QuZ2V0RnVsbFllYXIoKX0tJHtkLmdldE1vbnRoKCl9LSR7ZC5nZXREYXRlKCl9YDtcbiAgICAgIGNvbnN0IG5ld0RheSA9IGRheSAhPT0gcHJldkRheTtcbiAgICAgIGlmIChuZXdEYXkpIHtcbiAgICAgICAgb3V0LnB1c2goeyBraW5kOiAnZGF0ZScsIGlkOiAnZGF0ZS0nICsgZGF5LCBsYWJlbDogZm9ybWF0RGF0ZVNlcGFyYXRvcihkLCB0aGlzLmxvY2FsZSgpLCBsYWJlbHMpIH0pO1xuICAgICAgICBwcmV2RGF5ID0gZGF5O1xuICAgICAgfVxuICAgICAgY29uc3QgcHJldiA9IG1zZ3NbaSAtIDFdO1xuICAgICAgY29uc3QgbmV4dCA9IG1zZ3NbaSArIDFdO1xuICAgICAgY29uc3QgZmlyc3RJbkdyb3VwID0gbmV3RGF5IHx8ICFwcmV2IHx8IHByZXYuc2VuZGVySWQgIT09IG0uc2VuZGVySWQ7XG4gICAgICBjb25zdCBuZXh0RGF5ID0gbmV4dFxuICAgICAgICA/IGAke25ldyBEYXRlKG5leHQuY3JlYXRlZEF0KS5nZXRGdWxsWWVhcigpfS0ke25ldyBEYXRlKG5leHQuY3JlYXRlZEF0KS5nZXRNb250aCgpfS0ke25ldyBEYXRlKG5leHQuY3JlYXRlZEF0KS5nZXREYXRlKCl9YFxuICAgICAgICA6ICcnO1xuICAgICAgY29uc3QgbGFzdEluR3JvdXAgPSAhbmV4dCB8fCBuZXh0LnNlbmRlcklkICE9PSBtLnNlbmRlcklkIHx8IG5leHREYXkgIT09IGRheTtcbiAgICAgIG91dC5wdXNoKHtcbiAgICAgICAga2luZDogJ21zZycsXG4gICAgICAgIGlkOiBtLm1zZ0lkLFxuICAgICAgICBtc2c6IG0sXG4gICAgICAgIHNob3dOYW1lOiBmaXJzdEluR3JvdXAgJiYgIW0uaXNNaW5lLFxuICAgICAgICBzaG93QXZhdGFyOiBsYXN0SW5Hcm91cCAmJiAhbS5pc01pbmUsXG4gICAgICAgIHRhaWw6IGxhc3RJbkdyb3VwLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBvdXQ7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBvblNjcm9sbCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMubXNnc0VsKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbCkgcmV0dXJuO1xuICAgIGNvbnN0IG5lYXJCb3R0b20gPSBlbC5zY3JvbGxIZWlnaHQgLSBlbC5zY3JvbGxUb3AgLSBlbC5jbGllbnRIZWlnaHQgPCA4MDtcbiAgICB0aGlzLmF0Qm90dG9tLnNldChuZWFyQm90dG9tKTtcbiAgICBpZiAobmVhckJvdHRvbSkgdGhpcy5oYXNOZXcuc2V0KGZhbHNlKTtcbiAgICBpZiAoZWwuc2Nyb2xsVG9wIDwgNDApIHRoaXMubG9hZE1vcmUuZW1pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNjcm9sbFRvQm90dG9tKHNtb290aDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5tc2dzRWwoKT8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIWVsKSByZXR1cm47XG4gICAgZWwuc2Nyb2xsVG8oeyB0b3A6IGVsLnNjcm9sbEhlaWdodCwgYmVoYXZpb3I6IHNtb290aCA/ICdzbW9vdGgnIDogJ2F1dG8nIH0pO1xuICAgIHRoaXMuYXRCb3R0b20uc2V0KHRydWUpO1xuICAgIHRoaXMuaGFzTmV3LnNldChmYWxzZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25TZW5kKGV2ZW50OiBDaGF0Q29tcG9zZXJTZW5kRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbmRNZXNzYWdlLmVtaXQoZXZlbnQpO1xuICAgIHRoaXMucmVwbHlpbmdUby5zZXQobnVsbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25BY3Rpb24oZXZlbnQ6IE1lc3NhZ2VCdWJibGVBY3Rpb24pOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgJ3JlcGx5Jzoge1xuICAgICAgICBjb25zdCBtID0gdGhpcy5tZXNzYWdlcygpLmZpbmQoeCA9PiB4Lm1zZ0lkID09PSBldmVudC5tc2dJZCk7XG4gICAgICAgIGlmIChtKSB7XG4gICAgICAgICAgdGhpcy5yZXBseWluZ1RvLnNldCh7IG1zZ0lkOiBtLm1zZ0lkLCBzZW5kZXJOYW1lOiBtLnNlbmRlck5hbWUsIGJvZHk6IG0uYm9keSB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlcGx5VG8uZW1pdChldmVudC5tc2dJZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZWRpdCc6XG4gICAgICAgIHRoaXMuZWRpdE1lc3NhZ2UuZW1pdChldmVudC5tc2dJZCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgdGhpcy5kZWxldGVNZXNzYWdlLmVtaXQoZXZlbnQubXNnSWQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JlYWN0JzpcbiAgICAgICAgdGhpcy5yZWFjdGlvbkNsaWNrLmVtaXQoeyBtc2dJZDogZXZlbnQubXNnSWQsIHRva2VuOiBldmVudC50b2tlbiA/PyAn8J+RjScgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdDaGF0V2luZG93Jyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,7 +4,7 @@ import { ActivatedRoute } from '@angular/router';
|
|
|
4
4
|
import { DisplayComponent } from '../../atoms/display/display.component';
|
|
5
5
|
import { TextComponent } from '../../atoms/text/text.component';
|
|
6
6
|
import { TitleComponent } from '../../atoms/title/title.component';
|
|
7
|
-
import {
|
|
7
|
+
import { LanguageSelectorV2Component, } from '../../molecules/language-selector-v2/language-selector-v2.component';
|
|
8
8
|
import { PopoverSelectorComponent } from '../../molecules/popover-selector/popover-selector.component';
|
|
9
9
|
import { I18nService } from '../../../services/i18n';
|
|
10
10
|
import { NavigationService } from '../../../services/navigation/navigation.service';
|
|
@@ -65,12 +65,8 @@ export class PreferencesViewComponent {
|
|
|
65
65
|
this.fontSizeTitle = computed(() => this.t('fontSizeTitle'));
|
|
66
66
|
this.fontSizeHint = computed(() => this.t('fontSizeHint'));
|
|
67
67
|
this.langProps = computed(() => ({
|
|
68
|
-
currentLanguage: this.prefs.language(),
|
|
69
68
|
availableLanguages: this.resolvedConfig().supportedLanguages,
|
|
70
|
-
|
|
71
|
-
disabled: this.saving(),
|
|
72
|
-
expand: 'block',
|
|
73
|
-
fill: 'outline',
|
|
69
|
+
showFlags: false,
|
|
74
70
|
}));
|
|
75
71
|
this.themePickerProps = computed(() => ({
|
|
76
72
|
selectedValue: this.prefs.theme(),
|
|
@@ -201,7 +197,7 @@ export class PreferencesViewComponent {
|
|
|
201
197
|
content: langHint(),
|
|
202
198
|
}"
|
|
203
199
|
/>
|
|
204
|
-
<val-language-selector [props]="langProps()" (languageChange)="onLanguageChange($event)" />
|
|
200
|
+
<val-language-selector-v2 [props]="langProps()" (languageChange)="onLanguageChange($event)" />
|
|
205
201
|
</div>
|
|
206
202
|
</section>
|
|
207
203
|
}
|
|
@@ -230,14 +226,14 @@ export class PreferencesViewComponent {
|
|
|
230
226
|
</section>
|
|
231
227
|
}
|
|
232
228
|
</div>
|
|
233
|
-
`, isInline: true, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.section-body{display:flex;flex-direction:column;gap:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: PopoverSelectorComponent, selector: "val-popover-selector", inputs: ["props"], outputs: ["selectionChange"] }, { kind: "component", type:
|
|
229
|
+
`, isInline: true, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.section-body{display:flex;flex-direction:column;gap:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: PopoverSelectorComponent, selector: "val-popover-selector", inputs: ["props"], outputs: ["selectionChange"] }, { kind: "component", type: LanguageSelectorV2Component, selector: "val-language-selector-v2", inputs: ["props"], outputs: ["languageChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }] }); }
|
|
234
230
|
}
|
|
235
231
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PreferencesViewComponent, decorators: [{
|
|
236
232
|
type: Component,
|
|
237
233
|
args: [{ selector: 'val-preferences-view', standalone: true, imports: [
|
|
238
234
|
CommonModule,
|
|
239
235
|
PopoverSelectorComponent,
|
|
240
|
-
|
|
236
|
+
LanguageSelectorV2Component,
|
|
241
237
|
DisplayComponent,
|
|
242
238
|
TitleComponent,
|
|
243
239
|
TextComponent,
|
|
@@ -298,7 +294,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
298
294
|
content: langHint(),
|
|
299
295
|
}"
|
|
300
296
|
/>
|
|
301
|
-
<val-language-selector [props]="langProps()" (languageChange)="onLanguageChange($event)" />
|
|
297
|
+
<val-language-selector-v2 [props]="langProps()" (languageChange)="onLanguageChange($event)" />
|
|
302
298
|
</div>
|
|
303
299
|
</section>
|
|
304
300
|
}
|
|
@@ -331,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
331
327
|
}], ctorParameters: () => [], propDecorators: { config: [{
|
|
332
328
|
type: Input
|
|
333
329
|
}] } });
|
|
334
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3ByZWZlcmVuY2VzLXZpZXcvcHJlZmVyZW5jZXMtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBRTFHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBR3ZHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNwRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQU12RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUdyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFaEUsTUFBTSxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQztBQUM3QyxNQUFNLGlCQUFpQixHQUEwQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FB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b2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IExhbmd1YWdlU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IExhbmd1YWdlU2VsZWN0b3JNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9sYW5ndWFnZS1zZWxlY3Rvci90eXBlcyc7XG5pbXBvcnQgeyBQb3BvdmVyU2VsZWN0b3JDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcG9wb3Zlci1zZWxlY3Rvci9wb3BvdmVyLXNlbGVjdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb3BvdmVyU2VsZWN0b3JNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9wb3BvdmVyLXNlbGVjdG9yL3R5cGVzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQge1xuICBQcmVmZXJlbmNlc0ZvbnRTaXplLFxuICBQcmVmZXJlbmNlc0xhbmd1YWdlLFxuICBQcmVmZXJlbmNlc1RoZW1lLFxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVmZXJlbmNlcy9wcmVmZXJlbmNlcy50eXBlcyc7XG5pbXBvcnQgeyBWYWx0ZWNoRXJyb3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL3ZhbHRlY2gtZXJyb3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFByZWZlcmVuY2VzVmlld0NvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUFJFRkVSRU5DRVNfVklFV19JMThOIH0gZnJvbSAnLi9wcmVmZXJlbmNlcy12aWV3LmkxOG4nO1xuXG5jb25zdCBERUZBVUxUX05BTUVTUEFDRSA9ICdTZXR0aW5ncy5HZW5lcmFsJztcbmNvbnN0IERFRkFVTFRfTEFOR1VBR0VTOiBQcmVmZXJlbmNlc0xhbmd1YWdlW10gPSBbJ2VzJywgJ2VuJ107XG5cbi8qKlxuICogYHZhbC1wcmVmZXJlbmNlcy12aWV3YCDigJQgdmlzdGEgZGUgcHJlZmVyZW5jaWFzIGRlIFVJIGNyb3NzLWFwcCAodGVtYSArXG4gKiBpZGlvbWEpIGZ1bGwtZmVhdHVyZSBhdXRvY29udGVuaWRhIChvcmdhbmlzbSkuIFByb21vdmlkYSBkZXNkZSBgc2hvd2Nhc2VgXG4gKiBiYWpvIGVsIHByb2Nlc28gZGUgQURSLTAyMS5cbiAqXG4gKiBCYWNrZW5kIGludGVncmF0aW9uIDEwMCUgZW4gYFByZWZlcmVuY2VzU2VydmljZWA6XG4gKiAgLSBSZWFkOiBsaXN0ZW5lciBGaXJlc3RvcmUgcmVhY3Rpdm8gKGBwcmVmcy50aGVtZSgpYCAvIGBwcmVmcy5sYW5ndWFnZSgpYCkuXG4gKiAgLSBXcml0ZTogYFBVVCAvdjIvYXV0aC9wcmVmZXJlbmNlc2AgKGBwcmVmcy5zZXRUaGVtZWAgLyBgcHJlZnMuc2V0TGFuZ3VhZ2VgKS5cbiAqICAgIEVsIGNsaWVudGUgTlVOQ0EgZXNjcmliZSBGaXJlc3RvcmUgZGlyZWN0by5cbiAqXG4gKiBOTyByZW5kZXJpemEgaW9uLWNvbnRlbnQg4oCUIHZpdmUgZGVudHJvIGRlIHZhbC1wYWdlLXdyYXBwZXIuXG4gKlxuICogQXV0by1yZWdpc3RyYSBzdXMgZGVmYXVsdHMgaTE4biAoZXMvZW4pIGVuIGVsIGNvbnN0cnVjdG9yIHNpIGVsIGNvbnN1bWVyIG5vXG4gKiBwcm92ZXnDsyBlbCBuYW1lc3BhY2UgY29uZmlndXJhZG8gKGRlZmF1bHQgYFNldHRpbmdzLkdlbmVyYWxgKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXByZWZlcmVuY2VzLXZpZXcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFBvcG92ZXJTZWxlY3RvckNvbXBvbmVudCxcbiAgICBMYW5ndWFnZVNlbGVjdG9yQ29tcG9uZW50LFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVGV4dENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwicGFnZVwiPlxuICAgICAgPGhlYWRlciBjbGFzcz1cInBhZ2UtaGVhZGVyXCI+XG4gICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBzaXplOiAnc21hbGwnLCBjb2xvcjogJ2RhcmsnLCBjb250ZW50OiBwYWdlVGl0bGUoKSB9XCIgLz5cbiAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICBzaXplOiAnbGFyZ2UnLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgY29udGVudDogcGFnZURlc2NyaXB0aW9uKCksXG4gICAgICAgICAgfVwiXG4gICAgICAgIC8+XG4gICAgICA8L2hlYWRlcj5cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dUaGVtZSkge1xuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY29udGVudDogdGhlbWVUaXRsZSgpLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1ib2R5XCI+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoZW1lSGludCgpLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8dmFsLXBvcG92ZXItc2VsZWN0b3IgW3Byb3BzXT1cInRoZW1lUGlja2VyUHJvcHMoKVwiIChzZWxlY3Rpb25DaGFuZ2UpPVwib25UaGVtZUNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd0xhbmd1YWdlKSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICBjb250ZW50OiBsYW5nVGl0bGUoKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBsYW5nSGludCgpLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8dmFsLWxhbmd1YWdlLXNlbGVjdG9yIFtwcm9wc109XCJsYW5nUHJvcHMoKVwiIChsYW5ndWFnZUNoYW5nZSk9XCJvbkxhbmd1YWdlQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93Rm9udFNpemUpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IGZvbnRTaXplVGl0bGUoKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBmb250U2l6ZUhpbnQoKSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHZhbC1wb3BvdmVyLXNlbGVjdG9yIFtwcm9wc109XCJmb250U2l6ZVBpY2tlclByb3BzKClcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uRm9udFNpemVDaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLnBhZ2Uge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgICAgIG1heC13aWR0aDogNzIwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgICAgLnNldHRpbmdzLXNlY3Rpb24ge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiArIC5zZXR0aW5ncy1zZWN0aW9uIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXZhbC1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wOCkpO1xuICAgICAgfVxuICAgICAgLnNlY3Rpb24tYm9keSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQcmVmZXJlbmNlc1ZpZXdDb21wb25lbnQge1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByb3RlY3RlZCBwcmVmcyA9IGluamVjdChQcmVmZXJlbmNlc1NlcnZpY2UpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIGVycm9ycyA9IGluamVjdChWYWx0ZWNoRXJyb3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogQ29uZmlnIHbDrWEgQElucHV0IChvYmplY3QtZmlyc3QpLiBTaSBubyBzZSBwYXNhLCBzZSBjYWUgYWwgcm91dGUgZGF0YVxuICAgKiBgcHJlZmVyZW5jZXNDb25maWdgIChwb2JsYWRvIHBvciBgcHJvdmlkZVZhbHRlY2hQcmVmZXJlbmNlc1JvdXRlc2ApLlxuICAgKiBgcmVzb2x2ZWRDb25maWdgIG1lcmdlYSBjb24gbG9zIGRlZmF1bHRzLlxuICAgKi9cbiAgQElucHV0KCkgY29uZmlnPzogUHJlZmVyZW5jZXNWaWV3Q29uZmlnO1xuXG4gIC8qKiBDb25maWcgbWVyZ2VhZGEgY29uIGRlZmF1bHRzLiBASW5wdXQgZ2FuYSBzb2JyZSByb3V0ZSBkYXRhLiAqL1xuICByZWFkb25seSByZXNvbHZlZENvbmZpZyA9IGNvbXB1dGVkPFxuICAgIFJlcXVpcmVkPE9taXQ8UHJlZmVyZW5jZXNWaWV3Q29uZmlnLCAnb25UaGVtZUNoYW5nZWQnIHwgJ29uTGFuZ3VhZ2VDaGFuZ2VkJyB8ICdvbkZvbnRTaXplQ2hhbmdlZCc+PiAmXG4gICAgICBQaWNrPFByZWZlcmVuY2VzVmlld0NvbmZpZywgJ29uVGhlbWVDaGFuZ2VkJyB8ICdvbkxhbmd1YWdlQ2hhbmdlZCcgfCAnb25Gb250U2l6ZUNoYW5nZWQnPlxuICA+KCgpID0+IHtcbiAgICBjb25zdCBmcm9tUm91dGUgPSAodGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YVsncHJlZmVyZW5jZXNDb25maWcnXSA/PyB7fSkgYXMgUHJlZmVyZW5jZXNWaWV3Q29uZmlnO1xuICAgIGNvbnN0IG1lcmdlZDogUHJlZmVyZW5jZXNWaWV3Q29uZmlnID0geyAuLi5mcm9tUm91dGUsIC4uLih0aGlzLmNvbmZpZyA/PyB7fSkgfTtcbiAgICByZXR1cm4ge1xuICAgICAgc2hvd1RoZW1lOiBtZXJnZWQuc2hvd1RoZW1lID8/IHRydWUsXG4gICAgICBzaG93TGFuZ3VhZ2U6IG1lcmdlZC5zaG93TGFuZ3VhZ2UgPz8gdHJ1ZSxcbiAgICAgIHNob3dGb250U2l6ZTogbWVyZ2VkLnNob3dGb250U2l6ZSA/PyB0cnVlLFxuICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzOiBtZXJnZWQuc3VwcG9ydGVkTGFuZ3VhZ2VzID8/IERFRkFVTFRfTEFOR1VBR0VTLFxuICAgICAgaTE4bk5hbWVzcGFjZTogbWVyZ2VkLmkxOG5OYW1lc3BhY2UgPz8gREVGQVVMVF9OQU1FU1BBQ0UsXG4gICAgICBvblRoZW1lQ2hhbmdlZDogbWVyZ2VkLm9uVGhlbWVDaGFuZ2VkLFxuICAgICAgb25MYW5ndWFnZUNoYW5nZWQ6IG1lcmdlZC5vbkxhbmd1YWdlQ2hhbmdlZCxcbiAgICAgIG9uRm9udFNpemVDaGFuZ2VkOiBtZXJnZWQub25Gb250U2l6ZUNoYW5nZWQsXG4gICAgfTtcbiAgfSk7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIHJlc3VlbHRvIChjYXB0dXJhZG8gcGFyYSBsbGFtYWRhcyBuby1yZWFjdGl2YXMpLiAqL1xuICBwcml2YXRlIGdldCBucygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuaTE4bk5hbWVzcGFjZTtcbiAgfVxuXG4gIHJlYWRvbmx5IHNhdmluZyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgcGFnZVRpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdwYWdlVGl0bGUnKSk7XG4gIHJlYWRvbmx5IHBhZ2VEZXNjcmlwdGlvbiA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgncGFnZURlc2NyaXB0aW9uJykpO1xuICByZWFkb25seSB0aGVtZVRpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCd0aGVtZVRpdGxlJykpO1xuICByZWFkb25seSB0aGVtZUhpbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ3RoZW1lSGludCcpKTtcbiAgcmVhZG9ubHkgbGFuZ1RpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdsYW5ndWFnZVRpdGxlJykpO1xuICByZWFkb25seSBsYW5nSGludCA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgnbGFuZ3VhZ2VIaW50JykpO1xuICByZWFkb25seSBmb250U2l6ZVRpdGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdmb250U2l6ZVRpdGxlJykpO1xuICByZWFkb25seSBmb250U2l6ZUhpbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ2ZvbnRTaXplSGludCcpKTtcbiAgcmVhZG9ubHkgbGFuZ1Byb3BzID0gY29tcHV0ZWQ8UGFydGlhbDxMYW5ndWFnZVNlbGVjdG9yTWV0YWRhdGE+PigoKSA9PiAoe1xuICAgIGN1cnJlbnRMYW5ndWFnZTogdGhpcy5wcmVmcy5sYW5ndWFnZSgpLFxuICAgIGF2YWlsYWJsZUxhbmd1YWdlczogdGhpcy5yZXNvbHZlZENvbmZpZygpLnN1cHBvcnRlZExhbmd1YWdlcyxcbiAgICBzaG93TGFiZWw6IGZhbHNlLFxuICAgIGRpc2FibGVkOiB0aGlzLnNhdmluZygpLFxuICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICBmaWxsOiAnb3V0bGluZScsXG4gIH0pKTtcblxuICByZWFkb25seSB0aGVtZVBpY2tlclByb3BzID0gY29tcHV0ZWQ8UG9wb3ZlclNlbGVjdG9yTWV0YWRhdGE+KCgpID0+ICh7XG4gICAgc2VsZWN0ZWRWYWx1ZTogdGhpcy5wcmVmcy50aGVtZSgpLFxuICAgIGRpc2FibGVkOiB0aGlzLnNhdmluZygpLFxuICAgIGZpbGw6ICdvdXRsaW5lJyxcbiAgICBpbnRlcmZhY2U6ICdwb3BvdmVyJyxcbiAgICBvcHRpb25zOiBbXG4gICAgICB7IHZhbHVlOiAnbGlnaHQnLCBsYWJlbDogdGhpcy50KCd0aGVtZUxpZ2h0JykgfSxcbiAgICAgIHsgdmFsdWU6ICdkYXJrJywgbGFiZWw6IHRoaXMudCgndGhlbWVEYXJrJykgfSxcbiAgICAgIHsgdmFsdWU6ICdhdXRvJywgbGFiZWw6IHRoaXMudCgndGhlbWVBdXRvJykgfSxcbiAgICBdLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgZm9udFNpemVQaWNrZXJQcm9wcyA9IGNvbXB1dGVkPFBvcG92ZXJTZWxlY3Rvck1ldGFkYXRhPigoKSA9PiAoe1xuICAgIHNlbGVjdGVkVmFsdWU6IHRoaXMucHJlZnMuZm9udFNpemUoKSxcbiAgICBkaXNhYmxlZDogdGhpcy5zYXZpbmcoKSxcbiAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgaW50ZXJmYWNlOiAncG9wb3ZlcicsXG4gICAgb3B0aW9uczogW1xuICAgICAgeyB2YWx1ZTogJ3NtYWxsJywgbGFiZWw6IHRoaXMudCgnZm9udFNpemVTbWFsbCcpIH0sXG4gICAgICB7IHZhbHVlOiAnbWVkaXVtJywgbGFiZWw6IHRoaXMudCgnZm9udFNpemVNZWRpdW0nKSB9LFxuICAgICAgeyB2YWx1ZTogJ2xhcmdlJywgbGFiZWw6IHRoaXMudCgnZm9udFNpemVMYXJnZScpIH0sXG4gICAgXSxcbiAgfSkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEF1dG8tcmVnaXN0cm8gaTE4biDigJQgcmVzcGV0YSBvdmVycmlkZSBkZWwgY29uc3VtZXIuIEVsIG5hbWVzcGFjZSBwdWVkZVxuICAgIC8vIHZlbmlyIGRlIEBJbnB1dC5jb25maWcgbyBkZWwgcm91dGUgZGF0YTsgbG8gcmVzb2x2ZW1vcyBhY8OhLlxuICAgIGNvbnN0IG5zID0gdGhpcy5ucztcbiAgICB0aGlzLmkxOG4ucmVnaXN0ZXJEZWZhdWx0cyhucywgUFJFRkVSRU5DRVNfVklFV19JMThOKTtcblxuICAgIHRoaXMubmF2LnNldEJhY2tIZWFkZXIoJ3BhZ2VUaXRsZScsIG5zLCB7IHdpdGhNZW51OiB0cnVlIH0pO1xuICB9XG5cbiAgYXN5bmMgb25UaGVtZUNoYW5nZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB2ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZVswXSA6IHZhbHVlO1xuICAgIGlmICh0aGlzLnNhdmluZygpIHx8IHYgPT09IHRoaXMucHJlZnMudGhlbWUoKSkgcmV0dXJuO1xuICAgIGNvbnN0IHRoZW1lID0gdiBhcyBQcmVmZXJlbmNlc1RoZW1lO1xuICAgIGF3YWl0IHRoaXMuZGlzcGF0Y2goXG4gICAgICAoKSA9PiB0aGlzLnByZWZzLnNldFRoZW1lKHRoZW1lKSxcbiAgICAgICgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5vblRoZW1lQ2hhbmdlZD8uKHRoZW1lKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBvbkZvbnRTaXplQ2hhbmdlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHYgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlWzBdIDogdmFsdWU7XG4gICAgY29uc3QgZm9udFNpemUgPSB2IGFzIFByZWZlcmVuY2VzRm9udFNpemU7XG4gICAgaWYgKHRoaXMuc2F2aW5nKCkgfHwgdiA9PT0gdGhpcy5wcmVmcy5mb250U2l6ZSgpKSByZXR1cm47XG4gICAgYXdhaXQgdGhpcy5kaXNwYXRjaChcbiAgICAgICgpID0+IHRoaXMucHJlZnMuc2V0Rm9udFNpemUoZm9udFNpemUpLFxuICAgICAgKCkgPT4gdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uRm9udFNpemVDaGFuZ2VkPy4oZm9udFNpemUpXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIG9uTGFuZ3VhZ2VDaGFuZ2UodmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGxhbmcgPSB2YWx1ZSBhcyBQcmVmZXJlbmNlc0xhbmd1YWdlO1xuICAgIGlmICghdGhpcy5yZXNvbHZlZENvbmZpZygpLnN1cHBvcnRlZExhbmd1YWdlcy5pbmNsdWRlcyhsYW5nKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLnNhdmluZygpIHx8IHZhbHVlID09PSB0aGlzLnByZWZzLmxhbmd1YWdlKCkpIHJldHVybjtcbiAgICBhd2FpdCB0aGlzLmRpc3BhdGNoKFxuICAgICAgKCkgPT4gdGhpcy5wcmVmcy5zZXRMYW5ndWFnZShsYW5nKSxcbiAgICAgICgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5vbkxhbmd1YWdlQ2hhbmdlZD8uKGxhbmcpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGlzcGF0Y2goZm46ICgpID0+IFByb21pc2U8dW5rbm93bj4sIG9uU3VjY2Vzcz86ICgpID0+IHZvaWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnNhdmluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGZuKCk7XG4gICAgICBvblN1Y2Nlc3M/LigpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICBjb250ZXh0OiAnc2V0dGluZ3MucHJlZmVyZW5jZXMuc2F2ZScsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc2F2ZUVycm9yJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5ucyxcbiAgICAgIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnNhdmluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBMZWUgZGVsIG5hbWVzcGFjZSBjb25maWd1cmFkby4gKi9cbiAgcHJvdGVjdGVkIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMubnMpO1xuICB9XG59XG4iXX0=
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3ByZWZlcmVuY2VzLXZpZXcvcHJlZmVyZW5jZXMtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFDTCwyQkFBMkIsR0FFNUIsTUFBTSxxRUFBcUUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUd2RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFNdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFHckYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRWhFLE1BQU0saUJBQWlCLEdBQUcsa0JBQWtCLENBQUM7QUFDN0MsTUFBTSxpQkFBaUIsR0FBMEIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENB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Z0JBQ3BDLFdBQVcsRUFBRSxXQUFXO2dCQUN4QixhQUFhLEVBQUUsSUFBSSxDQUFDLEVBQUU7YUFDdkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxxQ0FBcUM7SUFDM0IsQ0FBQyxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7K0dBdklVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDhHQTVHekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0ZULDhUQTdGQyxZQUFZLCtCQUNaLHdCQUF3QixrSEFDeEIsMkJBQTJCLHFIQUMzQixnQkFBZ0IsMkVBQ2hCLGNBQWMseUVBQ2QsYUFBYTs7NEZBOEdKLHdCQUF3QjtrQkF2SHBDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBQ3BCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIsMkJBQTJCO3dCQUMzQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2QsYUFBYTtxQkFDZCxZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNGVDt3REFrQ1EsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBMYW5ndWFnZVNlbGVjdG9yVjJDb21wb25lbnQsXG4gIExhbmd1YWdlU2VsZWN0b3JWMk1ldGFkYXRhLFxufSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvbGFuZ3VhZ2Utc2VsZWN0b3ItdjIvbGFuZ3VhZ2Utc2VsZWN0b3ItdjIuY29tcG9uZW50JztcbmltcG9ydCB7IFBvcG92ZXJTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9wb3BvdmVyLXNlbGVjdG9yL3BvcG92ZXItc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFBvcG92ZXJTZWxlY3Rvck1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3BvcG92ZXItc2VsZWN0b3IvdHlwZXMnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVmZXJlbmNlcy9wcmVmZXJlbmNlcy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFByZWZlcmVuY2VzRm9udFNpemUsXG4gIFByZWZlcmVuY2VzTGFuZ3VhZ2UsXG4gIFByZWZlcmVuY2VzVGhlbWUsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3ByZWZlcmVuY2VzL3ByZWZlcmVuY2VzLnR5cGVzJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcblxuaW1wb3J0IHsgUHJlZmVyZW5jZXNWaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBQUkVGRVJFTkNFU19WSUVXX0kxOE4gfSBmcm9tICcuL3ByZWZlcmVuY2VzLXZpZXcuaTE4bic7XG5cbmNvbnN0IERFRkFVTFRfTkFNRVNQQUNFID0gJ1NldHRpbmdzLkdlbmVyYWwnO1xuY29uc3QgREVGQVVMVF9MQU5HVUFHRVM6IFByZWZlcmVuY2VzTGFuZ3VhZ2VbXSA9IFsnZXMnLCAnZW4nXTtcblxuLyoqXG4gKiBgdmFsLXByZWZlcmVuY2VzLXZpZXdgIOKAlCB2aXN0YSBkZSBwcmVmZXJlbmNpYXMgZGUgVUkgY3Jvc3MtYXBwICh0ZW1hICtcbiAqIGlkaW9tYSkgZnVsbC1mZWF0dXJlIGF1dG9jb250ZW5pZGEgKG9yZ2FuaXNtKS4gUHJvbW92aWRhIGRlc2RlIGBzaG93Y2FzZWBcbiAqIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLlxuICpcbiAqIEJhY2tlbmQgaW50ZWdyYXRpb24gMTAwJSBlbiBgUHJlZmVyZW5jZXNTZXJ2aWNlYDpcbiAqICAtIFJlYWQ6IGxpc3RlbmVyIEZpcmVzdG9yZSByZWFjdGl2byAoYHByZWZzLnRoZW1lKClgIC8gYHByZWZzLmxhbmd1YWdlKClgKS5cbiAqICAtIFdyaXRlOiBgUFVUIC92Mi9hdXRoL3ByZWZlcmVuY2VzYCAoYHByZWZzLnNldFRoZW1lYCAvIGBwcmVmcy5zZXRMYW5ndWFnZWApLlxuICogICAgRWwgY2xpZW50ZSBOVU5DQSBlc2NyaWJlIEZpcmVzdG9yZSBkaXJlY3RvLlxuICpcbiAqIE5PIHJlbmRlcml6YSBpb24tY29udGVudCDigJQgdml2ZSBkZW50cm8gZGUgdmFsLXBhZ2Utd3JhcHBlci5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgZW4gZWwgY29uc3RydWN0b3Igc2kgZWwgY29uc3VtZXIgbm9cbiAqIHByb3ZlecOzIGVsIG5hbWVzcGFjZSBjb25maWd1cmFkbyAoZGVmYXVsdCBgU2V0dGluZ3MuR2VuZXJhbGApLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcHJlZmVyZW5jZXMtdmlldycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUG9wb3ZlclNlbGVjdG9yQ29tcG9uZW50LFxuICAgIExhbmd1YWdlU2VsZWN0b3JWMkNvbXBvbmVudCxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInBhZ2VcIj5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJwYWdlLWhlYWRlclwiPlxuICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJywgY29udGVudDogcGFnZVRpdGxlKCkgfVwiIC8+XG4gICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHBhZ2VEZXNjcmlwdGlvbigpLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRDb25maWcoKS5zaG93VGhlbWUpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uXCI+XG4gICAgICAgICAgPHZhbC10aXRsZVxuICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgIGJvbGQ6IHRydWUsXG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHRoZW1lVGl0bGUoKSxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24tYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiB0aGVtZUhpbnQoKSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHZhbC1wb3BvdmVyLXNlbGVjdG9yIFtwcm9wc109XCJ0aGVtZVBpY2tlclByb3BzKClcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uVGhlbWVDaGFuZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvc2VjdGlvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dMYW5ndWFnZSkge1xuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cInNldHRpbmdzLXNlY3Rpb25cIj5cbiAgICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgYm9sZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY29udGVudDogbGFuZ1RpdGxlKCksXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWJvZHlcIj5cbiAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29udGVudDogbGFuZ0hpbnQoKSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPHZhbC1sYW5ndWFnZS1zZWxlY3Rvci12MiBbcHJvcHNdPVwibGFuZ1Byb3BzKClcIiAobGFuZ3VhZ2VDaGFuZ2UpPVwib25MYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKHJlc29sdmVkQ29uZmlnKCkuc2hvd0ZvbnRTaXplKSB7XG4gICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvblwiPlxuICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICBjb250ZW50OiBmb250U2l6ZVRpdGxlKCksXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWJvZHlcIj5cbiAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29udGVudDogZm9udFNpemVIaW50KCksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDx2YWwtcG9wb3Zlci1zZWxlY3RvciBbcHJvcHNdPVwiZm9udFNpemVQaWNrZXJQcm9wcygpXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkZvbnRTaXplQ2hhbmdlKCRldmVudClcIiAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgfVxuICAgICAgLnNldHRpbmdzLXNlY3Rpb24gKyAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS12YWwtYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgIH1cbiAgICAgIC5zZWN0aW9uLWJvZHkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJlZmVyZW5jZXNWaWV3Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgcHJlZnMgPSBpbmplY3QoUHJlZmVyZW5jZXNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlcnJvcnMgPSBpbmplY3QoVmFsdGVjaEVycm9yU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqXG4gICAqIENvbmZpZyB2w61hIEBJbnB1dCAob2JqZWN0LWZpcnN0KS4gU2kgbm8gc2UgcGFzYSwgc2UgY2FlIGFsIHJvdXRlIGRhdGFcbiAgICogYHByZWZlcmVuY2VzQ29uZmlnYCAocG9ibGFkbyBwb3IgYHByb3ZpZGVWYWx0ZWNoUHJlZmVyZW5jZXNSb3V0ZXNgKS5cbiAgICogYHJlc29sdmVkQ29uZmlnYCBtZXJnZWEgY29uIGxvcyBkZWZhdWx0cy5cbiAgICovXG4gIEBJbnB1dCgpIGNvbmZpZz86IFByZWZlcmVuY2VzVmlld0NvbmZpZztcblxuICAvKiogQ29uZmlnIG1lcmdlYWRhIGNvbiBkZWZhdWx0cy4gQElucHV0IGdhbmEgc29icmUgcm91dGUgZGF0YS4gKi9cbiAgcmVhZG9ubHkgcmVzb2x2ZWRDb25maWcgPSBjb21wdXRlZDxcbiAgICBSZXF1aXJlZDxPbWl0PFByZWZlcmVuY2VzVmlld0NvbmZpZywgJ29uVGhlbWVDaGFuZ2VkJyB8ICdvbkxhbmd1YWdlQ2hhbmdlZCcgfCAnb25Gb250U2l6ZUNoYW5nZWQnPj4gJlxuICAgICAgUGljazxQcmVmZXJlbmNlc1ZpZXdDb25maWcsICdvblRoZW1lQ2hhbmdlZCcgfCAnb25MYW5ndWFnZUNoYW5nZWQnIHwgJ29uRm9udFNpemVDaGFuZ2VkJz5cbiAgPigoKSA9PiB7XG4gICAgY29uc3QgZnJvbVJvdXRlID0gKHRoaXMucm91dGU/LnNuYXBzaG90LmRhdGFbJ3ByZWZlcmVuY2VzQ29uZmlnJ10gPz8ge30pIGFzIFByZWZlcmVuY2VzVmlld0NvbmZpZztcbiAgICBjb25zdCBtZXJnZWQ6IFByZWZlcmVuY2VzVmlld0NvbmZpZyA9IHsgLi4uZnJvbVJvdXRlLCAuLi4odGhpcy5jb25maWcgPz8ge30pIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIHNob3dUaGVtZTogbWVyZ2VkLnNob3dUaGVtZSA/PyB0cnVlLFxuICAgICAgc2hvd0xhbmd1YWdlOiBtZXJnZWQuc2hvd0xhbmd1YWdlID8/IHRydWUsXG4gICAgICBzaG93Rm9udFNpemU6IG1lcmdlZC5zaG93Rm9udFNpemUgPz8gdHJ1ZSxcbiAgICAgIHN1cHBvcnRlZExhbmd1YWdlczogbWVyZ2VkLnN1cHBvcnRlZExhbmd1YWdlcyA/PyBERUZBVUxUX0xBTkdVQUdFUyxcbiAgICAgIGkxOG5OYW1lc3BhY2U6IG1lcmdlZC5pMThuTmFtZXNwYWNlID8/IERFRkFVTFRfTkFNRVNQQUNFLFxuICAgICAgb25UaGVtZUNoYW5nZWQ6IG1lcmdlZC5vblRoZW1lQ2hhbmdlZCxcbiAgICAgIG9uTGFuZ3VhZ2VDaGFuZ2VkOiBtZXJnZWQub25MYW5ndWFnZUNoYW5nZWQsXG4gICAgICBvbkZvbnRTaXplQ2hhbmdlZDogbWVyZ2VkLm9uRm9udFNpemVDaGFuZ2VkLFxuICAgIH07XG4gIH0pO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biByZXN1ZWx0byAoY2FwdHVyYWRvIHBhcmEgbGxhbWFkYXMgbm8tcmVhY3RpdmFzKS4gKi9cbiAgcHJpdmF0ZSBnZXQgbnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmkxOG5OYW1lc3BhY2U7XG4gIH1cblxuICByZWFkb25seSBzYXZpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHBhZ2VUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgncGFnZVRpdGxlJykpO1xuICByZWFkb25seSBwYWdlRGVzY3JpcHRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ3BhZ2VEZXNjcmlwdGlvbicpKTtcbiAgcmVhZG9ubHkgdGhlbWVUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgndGhlbWVUaXRsZScpKTtcbiAgcmVhZG9ubHkgdGhlbWVIaW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCd0aGVtZUhpbnQnKSk7XG4gIHJlYWRvbmx5IGxhbmdUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgnbGFuZ3VhZ2VUaXRsZScpKTtcbiAgcmVhZG9ubHkgbGFuZ0hpbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnQoJ2xhbmd1YWdlSGludCcpKTtcbiAgcmVhZG9ubHkgZm9udFNpemVUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMudCgnZm9udFNpemVUaXRsZScpKTtcbiAgcmVhZG9ubHkgZm9udFNpemVIaW50ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50KCdmb250U2l6ZUhpbnQnKSk7XG4gIHJlYWRvbmx5IGxhbmdQcm9wcyA9IGNvbXB1dGVkPExhbmd1YWdlU2VsZWN0b3JWMk1ldGFkYXRhPigoKSA9PiAoe1xuICAgIGF2YWlsYWJsZUxhbmd1YWdlczogdGhpcy5yZXNvbHZlZENvbmZpZygpLnN1cHBvcnRlZExhbmd1YWdlcyxcbiAgICBzaG93RmxhZ3M6IGZhbHNlLFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgdGhlbWVQaWNrZXJQcm9wcyA9IGNvbXB1dGVkPFBvcG92ZXJTZWxlY3Rvck1ldGFkYXRhPigoKSA9PiAoe1xuICAgIHNlbGVjdGVkVmFsdWU6IHRoaXMucHJlZnMudGhlbWUoKSxcbiAgICBkaXNhYmxlZDogdGhpcy5zYXZpbmcoKSxcbiAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgaW50ZXJmYWNlOiAncG9wb3ZlcicsXG4gICAgb3B0aW9uczogW1xuICAgICAgeyB2YWx1ZTogJ2xpZ2h0JywgbGFiZWw6IHRoaXMudCgndGhlbWVMaWdodCcpIH0sXG4gICAgICB7IHZhbHVlOiAnZGFyaycsIGxhYmVsOiB0aGlzLnQoJ3RoZW1lRGFyaycpIH0sXG4gICAgICB7IHZhbHVlOiAnYXV0bycsIGxhYmVsOiB0aGlzLnQoJ3RoZW1lQXV0bycpIH0sXG4gICAgXSxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IGZvbnRTaXplUGlja2VyUHJvcHMgPSBjb21wdXRlZDxQb3BvdmVyU2VsZWN0b3JNZXRhZGF0YT4oKCkgPT4gKHtcbiAgICBzZWxlY3RlZFZhbHVlOiB0aGlzLnByZWZzLmZvbnRTaXplKCksXG4gICAgZGlzYWJsZWQ6IHRoaXMuc2F2aW5nKCksXG4gICAgZmlsbDogJ291dGxpbmUnLFxuICAgIGludGVyZmFjZTogJ3BvcG92ZXInLFxuICAgIG9wdGlvbnM6IFtcbiAgICAgIHsgdmFsdWU6ICdzbWFsbCcsIGxhYmVsOiB0aGlzLnQoJ2ZvbnRTaXplU21hbGwnKSB9LFxuICAgICAgeyB2YWx1ZTogJ21lZGl1bScsIGxhYmVsOiB0aGlzLnQoJ2ZvbnRTaXplTWVkaXVtJykgfSxcbiAgICAgIHsgdmFsdWU6ICdsYXJnZScsIGxhYmVsOiB0aGlzLnQoJ2ZvbnRTaXplTGFyZ2UnKSB9LFxuICAgIF0sXG4gIH0pKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBBdXRvLXJlZ2lzdHJvIGkxOG4g4oCUIHJlc3BldGEgb3ZlcnJpZGUgZGVsIGNvbnN1bWVyLiBFbCBuYW1lc3BhY2UgcHVlZGVcbiAgICAvLyB2ZW5pciBkZSBASW5wdXQuY29uZmlnIG8gZGVsIHJvdXRlIGRhdGE7IGxvIHJlc29sdmVtb3MgYWPDoS5cbiAgICBjb25zdCBucyA9IHRoaXMubnM7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMobnMsIFBSRUZFUkVOQ0VTX1ZJRVdfSTE4Tik7XG5cbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCBucywgeyB3aXRoTWVudTogdHJ1ZSB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uVGhlbWVDaGFuZ2UodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdiA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWVbMF0gOiB2YWx1ZTtcbiAgICBpZiAodGhpcy5zYXZpbmcoKSB8fCB2ID09PSB0aGlzLnByZWZzLnRoZW1lKCkpIHJldHVybjtcbiAgICBjb25zdCB0aGVtZSA9IHYgYXMgUHJlZmVyZW5jZXNUaGVtZTtcbiAgICBhd2FpdCB0aGlzLmRpc3BhdGNoKFxuICAgICAgKCkgPT4gdGhpcy5wcmVmcy5zZXRUaGVtZSh0aGVtZSksXG4gICAgICAoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25UaGVtZUNoYW5nZWQ/Lih0aGVtZSlcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgb25Gb250U2l6ZUNoYW5nZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB2ID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZVswXSA6IHZhbHVlO1xuICAgIGNvbnN0IGZvbnRTaXplID0gdiBhcyBQcmVmZXJlbmNlc0ZvbnRTaXplO1xuICAgIGlmICh0aGlzLnNhdmluZygpIHx8IHYgPT09IHRoaXMucHJlZnMuZm9udFNpemUoKSkgcmV0dXJuO1xuICAgIGF3YWl0IHRoaXMuZGlzcGF0Y2goXG4gICAgICAoKSA9PiB0aGlzLnByZWZzLnNldEZvbnRTaXplKGZvbnRTaXplKSxcbiAgICAgICgpID0+IHRoaXMucmVzb2x2ZWRDb25maWcoKS5vbkZvbnRTaXplQ2hhbmdlZD8uKGZvbnRTaXplKVxuICAgICk7XG4gIH1cblxuICBhc3luYyBvbkxhbmd1YWdlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBsYW5nID0gdmFsdWUgYXMgUHJlZmVyZW5jZXNMYW5ndWFnZTtcbiAgICBpZiAoIXRoaXMucmVzb2x2ZWRDb25maWcoKS5zdXBwb3J0ZWRMYW5ndWFnZXMuaW5jbHVkZXMobGFuZykpIHJldHVybjtcbiAgICBpZiAodGhpcy5zYXZpbmcoKSB8fCB2YWx1ZSA9PT0gdGhpcy5wcmVmcy5sYW5ndWFnZSgpKSByZXR1cm47XG4gICAgYXdhaXQgdGhpcy5kaXNwYXRjaChcbiAgICAgICgpID0+IHRoaXMucHJlZnMuc2V0TGFuZ3VhZ2UobGFuZyksXG4gICAgICAoKSA9PiB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25MYW5ndWFnZUNoYW5nZWQ/LihsYW5nKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGRpc3BhdGNoKGZuOiAoKSA9PiBQcm9taXNlPHVua25vd24+LCBvblN1Y2Nlc3M/OiAoKSA9PiB2b2lkKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5zYXZpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmbigpO1xuICAgICAgb25TdWNjZXNzPy4oKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ3NldHRpbmdzLnByZWZlcmVuY2VzLnNhdmUnLFxuICAgICAgICBmYWxsYmFja0tleTogJ3NhdmVFcnJvcicsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IHRoaXMubnMsXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5zYXZpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvKiogTGVlIGRlbCBuYW1lc3BhY2UgY29uZmlndXJhZG8uICovXG4gIHByb3RlY3RlZCB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLm5zKTtcbiAgfVxufVxuIl19
|
|
@@ -166,7 +166,7 @@ export class ThreadPanelComponent {
|
|
|
166
166
|
</div>
|
|
167
167
|
}
|
|
168
168
|
</div>
|
|
169
|
-
`, isInline: true, styles: [".thread-panel{display:flex;flex-direction:column;height:100%;background:var(--ion-background-color, #f4f5f8)}.thread-header{padding:12px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff))}.thread-header .thread-title{font-size:1rem;font-weight:600;color:var(--ion-text-color, #000);margin:0}.thread-loading{display:flex;align-items:center;justify-content:center;flex:1;gap:10px;color:var(--ion-color-medium, #92949c);font-size:.875rem}.thread-chat{flex:1;overflow:hidden;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: ChatWindowComponent, selector: "val-chat-window", inputs: ["convId", "messages", "currentUserId", "isOpen", "typingUsers", "isLoading", "showVoiceMessage"], outputs: ["sendMessage", "loadMore", "reactionClick", "deleteMessage", "replyTo", "editMessage", "typing", "voice"] }] }); }
|
|
169
|
+
`, isInline: true, styles: [".thread-panel{display:flex;flex-direction:column;height:100%;background:var(--ion-background-color, #f4f5f8)}.thread-header{padding:12px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color, #fff))}.thread-header .thread-title{font-size:1rem;font-weight:600;color:var(--ion-text-color, #000);margin:0}.thread-loading{display:flex;align-items:center;justify-content:center;flex:1;gap:10px;color:var(--ion-color-medium, #92949c);font-size:.875rem}.thread-chat{flex:1;overflow:hidden;display:flex;flex-direction:column}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { kind: "component", type: ChatWindowComponent, selector: "val-chat-window", inputs: ["convId", "messages", "currentUserId", "isOpen", "typingUsers", "isLoading", "showAttach", "showDictation", "showVoiceMessage"], outputs: ["sendMessage", "loadMore", "reactionClick", "deleteMessage", "replyTo", "editMessage", "typing", "voice"] }] }); }
|
|
170
170
|
}
|
|
171
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThreadPanelComponent, decorators: [{
|
|
172
172
|
type: Component,
|
|
@@ -100,9 +100,12 @@ export function provideValtechFirebase(config) {
|
|
|
100
100
|
// Messaging (FCM) - solo si está explícitamente habilitado y estamos en browser.
|
|
101
101
|
// Requiere Service Worker + Notifications API → skip total en SSR/Node.
|
|
102
102
|
if (config.enableMessaging && isBrowser) {
|
|
103
|
-
// Pre-registrar SW custom antes de que Firebase lo intente
|
|
103
|
+
// Pre-registrar SW custom antes de que Firebase lo intente. Usamos un
|
|
104
|
+
// scope dedicado para no competir con Angular `ngsw-worker.js` en `/`.
|
|
104
105
|
if ('serviceWorker' in navigator) {
|
|
105
|
-
navigator.serviceWorker
|
|
106
|
+
navigator.serviceWorker
|
|
107
|
+
.register('/firebase-messaging-sw.js', { scope: '/firebase-cloud-messaging-push-scope' })
|
|
108
|
+
.catch(console.error);
|
|
106
109
|
}
|
|
107
110
|
providers.push(provideMessaging(() => getMessaging()));
|
|
108
111
|
}
|
|
@@ -133,4 +136,4 @@ export function provideValtechFirebase(config) {
|
|
|
133
136
|
export function hasEmulators(config) {
|
|
134
137
|
return !!(config.emulator?.firestore || config.emulator?.auth || config.emulator?.storage);
|
|
135
138
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBRUwsWUFBWSxFQUNaLGNBQWMsRUFDZCx3QkFBd0IsR0FDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLGtDQUFrQyxFQUNsQyxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQ3ZELHVCQUF1QixDQUN4QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUE2QjtJQUNsRSwyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDBFQUEwRTtJQUMxRSxNQUFNLFNBQVMsR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUM7SUFFaEQsb0NBQW9DO0lBQ3BDLE1BQU0sU0FBUyxHQUFVO1FBQ3ZCLDhDQUE4QztRQUM5QyxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO1FBRXRELDJCQUEyQjtRQUMzQixrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXhELHVEQUF1RDtRQUN2RCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsTUFBTSxTQUFTLEdBQUcsWUFBWSxFQUFFLENBQUM7WUFFakMsMENBQTBDO1lBQzFDLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQztnQkFDL0Isd0JBQXdCLENBQ3RCLFNBQVMsRUFDVCxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQzlCLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FDL0IsQ0FBQztZQUNKLENBQUM7WUFFRCxvRUFBb0U7WUFDcEUsNkVBQTZFO1lBQzdFLElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDcEMsa0NBQWtDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUN4RCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUsscUJBQXFCLEVBQUUsQ0FBQzt3QkFDdkMsT0FBTyxDQUFDLElBQUksQ0FDViwyRUFBMkUsQ0FDNUUsQ0FBQztvQkFDSixDQUFDO3lCQUFNLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxlQUFlLEVBQUUsQ0FBQzt3QkFDeEMsT0FBTyxDQUFDLElBQUksQ0FBQywrREFBK0QsQ0FBQyxDQUFDO29CQUNoRixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUMsQ0FBQztRQUVGLGlDQUFpQztRQUNqQyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2YsTUFBTSxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFFdkIsMENBQTBDO1lBQzFDLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDMUIsbUJBQW1CLENBQ2pCLElBQUksRUFDSixVQUFVLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFDbEUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQzFCLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRixvQ0FBb0M7UUFDcEMsY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUNsQixNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQztZQUU3QiwwQ0FBMEM7WUFDMUMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUM3QixzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlGLENBQUM7WUFFRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUM7S0FDSCxDQUFDO0lBRUYsaUZBQWlGO0lBQ2pGLHdFQUF3RTtJQUN4RSxJQUFJLE1BQU0sQ0FBQyxlQUFlLElBQUksU0FBUyxFQUFFLENBQUM7UUFDeEMsMkRBQTJEO1FBQzNELElBQUksZUFBZSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2pDLFNBQVMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLDJCQUEyQixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRixDQUFDO1FBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELGlGQUFpRjtJQUNqRiw4RUFBOEU7SUFDOUUsSUFBSSxNQUFNLENBQUMsZUFBZSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3pFLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXZELHNFQUFzRTtRQUN0RSxJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDN0QsU0FBUyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxvREFBb0Q7UUFDcEQsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLG1CQUFtQixFQUFFLENBQUM7WUFDaEQsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDYixPQUFPLEVBQUUsWUFBWTtnQkFDckIsUUFBUSxFQUFFLHFCQUFxQjthQUNoQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUE2QjtJQUN4RCxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmlyZWJhc2UgQ29uZmlndXJhdGlvblxuICpcbiAqIENvbmZpZ3VyYWNpw7NuIGUgaW5pY2lhbGl6YWNpw7NuIGRlIEZpcmViYXNlIHBhcmEgYXBsaWNhY2lvbmVzIEFuZ3VsYXIuXG4gKiBVc2EgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSgpIGVuIGVsIGJvb3RzdHJhcCBkZSB0dSBhcGxpY2FjacOzbi5cbiAqL1xuXG5pbXBvcnQge1xuICBFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgRXJyb3JIYW5kbGVyLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldEFuYWx5dGljcywgcHJvdmlkZUFuYWx5dGljcywgU2NyZWVuVHJhY2tpbmdTZXJ2aWNlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hbmFseXRpY3MnO1xuaW1wb3J0IHsgaW5pdGlhbGl6ZUFwcCwgcHJvdmlkZUZpcmViYXNlQXBwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hcHAnO1xuaW1wb3J0IHsgY29ubmVjdEF1dGhFbXVsYXRvciwgZ2V0QXV0aCwgcHJvdmlkZUF1dGggfSBmcm9tICdAYW5ndWxhci9maXJlL2F1dGgnO1xuaW1wb3J0IHtcbiAgY29ubmVjdEZpcmVzdG9yZUVtdWxhdG9yLFxuICBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlLFxuICBnZXRGaXJlc3RvcmUsXG4gIHByb3ZpZGVGaXJlc3RvcmUsXG59IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IGdldE1lc3NhZ2luZywgcHJvdmlkZU1lc3NhZ2luZyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvbWVzc2FnaW5nJztcbmltcG9ydCB7IGNvbm5lY3RTdG9yYWdlRW11bGF0b3IsIGdldFN0b3JhZ2UsIHByb3ZpZGVTdG9yYWdlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9zdG9yYWdlJztcblxuaW1wb3J0IHsgVmFsdGVjaEZpcmViYXNlQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBBbmFseXRpY3NFcnJvckhhbmRsZXIgfSBmcm9tICcuL2FuYWx5dGljcy1lcnJvci1oYW5kbGVyJztcbmltcG9ydCB7IEFuYWx5dGljc1JvdXRlclRyYWNrZXIgfSBmcm9tICcuL2FuYWx5dGljcy1yb3V0ZXItdHJhY2tlcic7XG5cbi8qKlxuICogVG9rZW4gZGUgaW55ZWNjacOzbiBwYXJhIGxhIGNvbmZpZ3VyYWNpw7NuIGRlIEZpcmViYXNlLlxuICogVXNhZG8gaW50ZXJuYW1lbnRlIHBvciBsb3Mgc2VydmljaW9zIGRlIEZpcmViYXNlLlxuICovXG5leHBvcnQgY29uc3QgVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48VmFsdGVjaEZpcmViYXNlQ29uZmlnPihcbiAgJ1ZhbHRlY2hGaXJlYmFzZUNvbmZpZydcbik7XG5cbi8qKlxuICogUHJvdmVlIEZpcmViYXNlIGEgbGEgYXBsaWNhY2nDs24gQW5ndWxhci5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhY2nDs24gZGUgRmlyZWJhc2VcbiAqIEByZXR1cm5zIEVudmlyb25tZW50UHJvdmlkZXJzIHBhcmEgdXNhciBlbiBib290c3RyYXBBcHBsaWNhdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBtYWluLnRzXG4gKiBpbXBvcnQgeyBib290c3RyYXBBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuICogaW1wb3J0IHsgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKiBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbiAqXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSh7XG4gKiAgICAgICBmaXJlYmFzZTogZW52aXJvbm1lbnQuZmlyZWJhc2UsXG4gKiAgICAgICBwZXJzaXN0ZW5jZTogdHJ1ZSxcbiAqICAgICAgIGVtdWxhdG9yOiBlbnZpcm9ubWVudC51c2VFbXVsYXRvcnMgPyB7XG4gKiAgICAgICAgIGZpcmVzdG9yZTogeyBob3N0OiAnbG9jYWxob3N0JywgcG9ydDogODA4MCB9LFxuICogICAgICAgICBhdXRoOiB7IGhvc3Q6ICdsb2NhbGhvc3QnLCBwb3J0OiA5MDk5IH0sXG4gKiAgICAgICAgIHN0b3JhZ2U6IHsgaG9zdDogJ2xvY2FsaG9zdCcsIHBvcnQ6IDkxOTkgfSxcbiAqICAgICAgIH0gOiB1bmRlZmluZWQsXG4gKiAgICAgfSksXG4gKiAgIF0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbHRlY2hGaXJlYmFzZShjb25maWc6IFZhbHRlY2hGaXJlYmFzZUNvbmZpZyk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgLy8gU1NSLXNhZmU6IGR1cmFudGUgZWwgcHJlcmVuZGVyIC8gTm9kZSwgbm8gZXhpc3RlIHdpbmRvdy4gZ2V0QW5hbHl0aWNzKCksXG4gIC8vIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlKCkgeSBGQ00gdG9jYW4gQVBJcyBkZWwgYnJvd3NlciBxdWUgbm8gZXhpc3RlblxuICAvLyBlbiBlbCBzZXJ2ZXIg4oaSIGNvcnRvY2lyY3VpdG8gZGUgbG9zIHByb3ZpZGVycy9lZmVjdG9zIGJyb3dzZXItb25seSBhY8OhLlxuICBjb25zdCBpc0Jyb3dzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcblxuICAvLyBDb25zdHJ1aXIgYXJyYXkgZGUgcHJvdmlkZXJzIGJhc2VcbiAgY29uc3QgcHJvdmlkZXJzOiBhbnlbXSA9IFtcbiAgICAvLyBHdWFyZGFyIGNvbmZpZ3VyYWNpw7NuIHBhcmEgdXNvIGVuIHNlcnZpY2lvc1xuICAgIHsgcHJvdmlkZTogVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcblxuICAgIC8vIEluaWNpYWxpemFyIEZpcmViYXNlIEFwcFxuICAgIHByb3ZpZGVGaXJlYmFzZUFwcCgoKSA9PiBpbml0aWFsaXplQXBwKGNvbmZpZy5maXJlYmFzZSkpLFxuXG4gICAgLy8gRmlyZXN0b3JlIGNvbiBzb3BvcnRlIHBhcmEgZW11bGFkb3JlcyB5IHBlcnNpc3RlbmNpYVxuICAgIHByb3ZpZGVGaXJlc3RvcmUoKCkgPT4ge1xuICAgICAgY29uc3QgZmlyZXN0b3JlID0gZ2V0RmlyZXN0b3JlKCk7XG5cbiAgICAgIC8vIENvbmVjdGFyIGEgZW11bGFkb3Igc2kgZXN0w6EgY29uZmlndXJhZG9cbiAgICAgIGlmIChjb25maWcuZW11bGF0b3I/LmZpcmVzdG9yZSkge1xuICAgICAgICBjb25uZWN0RmlyZXN0b3JlRW11bGF0b3IoXG4gICAgICAgICAgZmlyZXN0b3JlLFxuICAgICAgICAgIGNvbmZpZy5lbXVsYXRvci5maXJlc3RvcmUuaG9zdCxcbiAgICAgICAgICBjb25maWcuZW11bGF0b3IuZmlyZXN0b3JlLnBvcnRcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gSGFiaWxpdGFyIHBlcnNpc3RlbmNpYSBvZmZsaW5lIHNpIGVzdMOhIGNvbmZpZ3VyYWRhIChicm93c2VyLW9ubHk6XG4gICAgICAvLyBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlIHJlcXVpZXJlIEluZGV4ZWREQiwgbm8gZXhpc3RlIGVuIE5vZGUpLlxuICAgICAgaWYgKGNvbmZpZy5wZXJzaXN0ZW5jZSAmJiBpc0Jyb3dzZXIpIHtcbiAgICAgICAgZW5hYmxlTXVsdGlUYWJJbmRleGVkRGJQZXJzaXN0ZW5jZShmaXJlc3RvcmUpLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgaWYgKGVyci5jb2RlID09PSAnZmFpbGVkLXByZWNvbmRpdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgJ1tWYWx0ZWNoRmlyZWJhc2VdIFBlcnNpc3RlbmNpYSBubyBkaXNwb25pYmxlOiBtw7psdGlwbGVzIHBlc3Rhw7FhcyBhYmllcnRhcydcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIGlmIChlcnIuY29kZSA9PT0gJ3VuaW1wbGVtZW50ZWQnKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoRmlyZWJhc2VdIFBlcnNpc3RlbmNpYSBubyBzb3BvcnRhZGEgZW4gZXN0ZSBuYXZlZ2Fkb3InKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmlyZXN0b3JlO1xuICAgIH0pLFxuXG4gICAgLy8gQXV0aCBjb24gc29wb3J0ZSBwYXJhIGVtdWxhZG9yXG4gICAgcHJvdmlkZUF1dGgoKCkgPT4ge1xuICAgICAgY29uc3QgYXV0aCA9IGdldEF1dGgoKTtcblxuICAgICAgLy8gQ29uZWN0YXIgYSBlbXVsYWRvciBzaSBlc3TDoSBjb25maWd1cmFkb1xuICAgICAgaWYgKGNvbmZpZy5lbXVsYXRvcj8uYXV0aCkge1xuICAgICAgICBjb25uZWN0QXV0aEVtdWxhdG9yKFxuICAgICAgICAgIGF1dGgsXG4gICAgICAgICAgYGh0dHA6Ly8ke2NvbmZpZy5lbXVsYXRvci5hdXRoLmhvc3R9OiR7Y29uZmlnLmVtdWxhdG9yLmF1dGgucG9ydH1gLFxuICAgICAgICAgIHsgZGlzYWJsZVdhcm5pbmdzOiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF1dGg7XG4gICAgfSksXG5cbiAgICAvLyBTdG9yYWdlIGNvbiBzb3BvcnRlIHBhcmEgZW11bGFkb3JcbiAgICBwcm92aWRlU3RvcmFnZSgoKSA9PiB7XG4gICAgICBjb25zdCBzdG9yYWdlID0gZ2V0U3RvcmFnZSgpO1xuXG4gICAgICAvLyBDb25lY3RhciBhIGVtdWxhZG9yIHNpIGVzdMOhIGNvbmZpZ3VyYWRvXG4gICAgICBpZiAoY29uZmlnLmVtdWxhdG9yPy5zdG9yYWdlKSB7XG4gICAgICAgIGNvbm5lY3RTdG9yYWdlRW11bGF0b3Ioc3RvcmFnZSwgY29uZmlnLmVtdWxhdG9yLnN0b3JhZ2UuaG9zdCwgY29uZmlnLmVtdWxhdG9yLnN0b3JhZ2UucG9ydCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdG9yYWdlO1xuICAgIH0pLFxuICBdO1xuXG4gIC8vIE1lc3NhZ2luZyAoRkNNKSAtIHNvbG8gc2kgZXN0w6EgZXhwbMOtY2l0YW1lbnRlIGhhYmlsaXRhZG8geSBlc3RhbW9zIGVuIGJyb3dzZXIuXG4gIC8vIFJlcXVpZXJlIFNlcnZpY2UgV29ya2VyICsgTm90aWZpY2F0aW9ucyBBUEkg4oaSIHNraXAgdG90YWwgZW4gU1NSL05vZGUuXG4gIGlmIChjb25maWcuZW5hYmxlTWVzc2FnaW5nICYmIGlzQnJvd3Nlcikge1xuICAgIC8vIFByZS1yZWdpc3RyYXIgU1cgY3VzdG9tIGFudGVzIGRlIHF1ZSBGaXJlYmFzZSBsbyBpbnRlbnRlXG4gICAgaWYgKCdzZXJ2aWNlV29ya2VyJyBpbiBuYXZpZ2F0b3IpIHtcbiAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCcvZmlyZWJhc2UtbWVzc2FnaW5nLXN3LmpzJykuY2F0Y2goY29uc29sZS5lcnJvcik7XG4gICAgfVxuICAgIHByb3ZpZGVycy5wdXNoKHByb3ZpZGVNZXNzYWdpbmcoKCkgPT4gZ2V0TWVzc2FnaW5nKCkpKTtcbiAgfVxuXG4gIC8vIEFuYWx5dGljcyAoR0E0KSAtIHNvbG8gc2kgZXN0w6EgZXhwbMOtY2l0YW1lbnRlIGhhYmlsaXRhZG8geSBlc3RhbW9zIGVuIGJyb3dzZXIuXG4gIC8vIGdldEFuYWx5dGljcygpIC8gU2NyZWVuVHJhY2tpbmdTZXJ2aWNlIHRvY2FuIHdpbmRvdy9kb2N1bWVudCDihpIgc2tpcCBlbiBTU1IuXG4gIGlmIChjb25maWcuZW5hYmxlQW5hbHl0aWNzICYmIGNvbmZpZy5maXJlYmFzZS5tZWFzdXJlbWVudElkICYmIGlzQnJvd3Nlcikge1xuICAgIHByb3ZpZGVycy5wdXNoKHByb3ZpZGVBbmFseXRpY3MoKCkgPT4gZ2V0QW5hbHl0aWNzKCkpKTtcblxuICAgIC8vIFJvdXRlciB0cmFja2VyIHBhcmEgcGFnZSB2aWV3cyBhdXRvbcOhdGljb3MgKHBvciBkZWZlY3RvIGhhYmlsaXRhZG8pXG4gICAgaWYgKGNvbmZpZy5hbmFseXRpY3NDb25maWc/LmVuYWJsZVBhZ2VWaWV3VHJhY2tpbmcgIT09IGZhbHNlKSB7XG4gICAgICBwcm92aWRlcnMucHVzaChBbmFseXRpY3NSb3V0ZXJUcmFja2VyKTtcbiAgICB9XG5cbiAgICAvLyBFcnJvciBoYW5kbGVyIHBhcmEgdHJhY2tpbmcgYXV0b23DoXRpY28gZGUgZXJyb3Jlc1xuICAgIGlmIChjb25maWcuYW5hbHl0aWNzQ29uZmlnPy5lbmFibGVFcnJvclRyYWNraW5nKSB7XG4gICAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IEVycm9ySGFuZGxlcixcbiAgICAgICAgdXNlQ2xhc3M6IEFuYWx5dGljc0Vycm9ySGFuZGxlcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMocHJvdmlkZXJzKTtcbn1cblxuLyoqXG4gKiBWZXJpZmljYSBzaSBsb3MgZW11bGFkb3JlcyBlc3TDoW4gY29uZmlndXJhZG9zLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBDb25maWd1cmFjacOzbiBkZSBGaXJlYmFzZVxuICogQHJldHVybnMgdHJ1ZSBzaSBoYXkgYWwgbWVub3MgdW4gZW11bGFkb3IgY29uZmlndXJhZG9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0VtdWxhdG9ycyhjb25maWc6IFZhbHRlY2hGaXJlYmFzZUNvbmZpZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gISEoY29uZmlnLmVtdWxhdG9yPy5maXJlc3RvcmUgfHwgY29uZmlnLmVtdWxhdG9yPy5hdXRoIHx8IGNvbmZpZy5lbXVsYXRvcj8uc3RvcmFnZSk7XG59XG4iXX0=
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBRUwsWUFBWSxFQUNaLGNBQWMsRUFDZCx3QkFBd0IsR0FDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLGtDQUFrQyxFQUNsQyxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQ3ZELHVCQUF1QixDQUN4QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUE2QjtJQUNsRSwyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDBFQUEwRTtJQUMxRSxNQUFNLFNBQVMsR0FBRyxPQUFPLE1B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QWdCLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxpRkFBaUY7SUFDakYsOEVBQThFO0lBQzlFLElBQUksTUFBTSxDQUFDLGVBQWUsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN6RSxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV2RCxzRUFBc0U7UUFDdEUsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLHNCQUFzQixLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzdELFNBQVMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsb0RBQW9EO1FBQ3BELElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1lBQ2hELFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2IsT0FBTyxFQUFFLFlBQVk7Z0JBQ3JCLFFBQVEsRUFBRSxxQkFBcUI7YUFDaEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBNkI7SUFDeEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzdGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZpcmViYXNlIENvbmZpZ3VyYXRpb25cbiAqXG4gKiBDb25maWd1cmFjacOzbiBlIGluaWNpYWxpemFjacOzbiBkZSBGaXJlYmFzZSBwYXJhIGFwbGljYWNpb25lcyBBbmd1bGFyLlxuICogVXNhIHByb3ZpZGVWYWx0ZWNoRmlyZWJhc2UoKSBlbiBlbCBib290c3RyYXAgZGUgdHUgYXBsaWNhY2nDs24uXG4gKi9cblxuaW1wb3J0IHtcbiAgRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIEVycm9ySGFuZGxlcixcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRBbmFseXRpY3MsIHByb3ZpZGVBbmFseXRpY3MsIFNjcmVlblRyYWNraW5nU2VydmljZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYW5hbHl0aWNzJztcbmltcG9ydCB7IGluaXRpYWxpemVBcHAsIHByb3ZpZGVGaXJlYmFzZUFwcCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXBwJztcbmltcG9ydCB7IGNvbm5lY3RBdXRoRW11bGF0b3IsIGdldEF1dGgsIHByb3ZpZGVBdXRoIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hdXRoJztcbmltcG9ydCB7XG4gIGNvbm5lY3RGaXJlc3RvcmVFbXVsYXRvcixcbiAgZW5hYmxlTXVsdGlUYWJJbmRleGVkRGJQZXJzaXN0ZW5jZSxcbiAgZ2V0RmlyZXN0b3JlLFxuICBwcm92aWRlRmlyZXN0b3JlLFxufSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQgeyBnZXRNZXNzYWdpbmcsIHByb3ZpZGVNZXNzYWdpbmcgfSBmcm9tICdAYW5ndWxhci9maXJlL21lc3NhZ2luZyc7XG5pbXBvcnQgeyBjb25uZWN0U3RvcmFnZUVtdWxhdG9yLCBnZXRTdG9yYWdlLCBwcm92aWRlU3RvcmFnZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvc3RvcmFnZSc7XG5cbmltcG9ydCB7IFZhbHRlY2hGaXJlYmFzZUNvbmZpZyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi9hbmFseXRpY3MtZXJyb3ItaGFuZGxlcic7XG5pbXBvcnQgeyBBbmFseXRpY3NSb3V0ZXJUcmFja2VyIH0gZnJvbSAnLi9hbmFseXRpY3Mtcm91dGVyLXRyYWNrZXInO1xuXG4vKipcbiAqIFRva2VuIGRlIGlueWVjY2nDs24gcGFyYSBsYSBjb25maWd1cmFjacOzbiBkZSBGaXJlYmFzZS5cbiAqIFVzYWRvIGludGVybmFtZW50ZSBwb3IgbG9zIHNlcnZpY2lvcyBkZSBGaXJlYmFzZS5cbiAqL1xuZXhwb3J0IGNvbnN0IFZBTFRFQ0hfRklSRUJBU0VfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPFZhbHRlY2hGaXJlYmFzZUNvbmZpZz4oXG4gICdWYWx0ZWNoRmlyZWJhc2VDb25maWcnXG4pO1xuXG4vKipcbiAqIFByb3ZlZSBGaXJlYmFzZSBhIGxhIGFwbGljYWNpw7NuIEFuZ3VsYXIuXG4gKlxuICogQHBhcmFtIGNvbmZpZyAtIENvbmZpZ3VyYWNpw7NuIGRlIEZpcmViYXNlXG4gKiBAcmV0dXJucyBFbnZpcm9ubWVudFByb3ZpZGVycyBwYXJhIHVzYXIgZW4gYm9vdHN0cmFwQXBwbGljYXRpb25cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gbWFpbi50c1xuICogaW1wb3J0IHsgYm9vdHN0cmFwQXBwbGljYXRpb24gfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbiAqIGltcG9ydCB7IHByb3ZpZGVWYWx0ZWNoRmlyZWJhc2UgfSBmcm9tICd2YWx0ZWNoLWNvbXBvbmVudHMnO1xuICogaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG4gKlxuICogYm9vdHN0cmFwQXBwbGljYXRpb24oQXBwQ29tcG9uZW50LCB7XG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHByb3ZpZGVWYWx0ZWNoRmlyZWJhc2Uoe1xuICogICAgICAgZmlyZWJhc2U6IGVudmlyb25tZW50LmZpcmViYXNlLFxuICogICAgICAgcGVyc2lzdGVuY2U6IHRydWUsXG4gKiAgICAgICBlbXVsYXRvcjogZW52aXJvbm1lbnQudXNlRW11bGF0b3JzID8ge1xuICogICAgICAgICBmaXJlc3RvcmU6IHsgaG9zdDogJ2xvY2FsaG9zdCcsIHBvcnQ6IDgwODAgfSxcbiAqICAgICAgICAgYXV0aDogeyBob3N0OiAnbG9jYWxob3N0JywgcG9ydDogOTA5OSB9LFxuICogICAgICAgICBzdG9yYWdlOiB7IGhvc3Q6ICdsb2NhbGhvc3QnLCBwb3J0OiA5MTk5IH0sXG4gKiAgICAgICB9IDogdW5kZWZpbmVkLFxuICogICAgIH0pLFxuICogICBdLFxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVWYWx0ZWNoRmlyZWJhc2UoY29uZmlnOiBWYWx0ZWNoRmlyZWJhc2VDb25maWcpOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIC8vIFNTUi1zYWZlOiBkdXJhbnRlIGVsIHByZXJlbmRlciAvIE5vZGUsIG5vIGV4aXN0ZSB3aW5kb3cuIGdldEFuYWx5dGljcygpLFxuICAvLyBlbmFibGVJbmRleGVkRGJQZXJzaXN0ZW5jZSgpIHkgRkNNIHRvY2FuIEFQSXMgZGVsIGJyb3dzZXIgcXVlIG5vIGV4aXN0ZW5cbiAgLy8gZW4gZWwgc2VydmVyIOKGkiBjb3J0b2NpcmN1aXRvIGRlIGxvcyBwcm92aWRlcnMvZWZlY3RvcyBicm93c2VyLW9ubHkgYWPDoS5cbiAgY29uc3QgaXNCcm93c2VyID0gdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCc7XG5cbiAgLy8gQ29uc3RydWlyIGFycmF5IGRlIHByb3ZpZGVycyBiYXNlXG4gIGNvbnN0IHByb3ZpZGVyczogYW55W10gPSBbXG4gICAgLy8gR3VhcmRhciBjb25maWd1cmFjacOzbiBwYXJhIHVzbyBlbiBzZXJ2aWNpb3NcbiAgICB7IHByb3ZpZGU6IFZBTFRFQ0hfRklSRUJBU0VfQ09ORklHLCB1c2VWYWx1ZTogY29uZmlnIH0sXG5cbiAgICAvLyBJbmljaWFsaXphciBGaXJlYmFzZSBBcHBcbiAgICBwcm92aWRlRmlyZWJhc2VBcHAoKCkgPT4gaW5pdGlhbGl6ZUFwcChjb25maWcuZmlyZWJhc2UpKSxcblxuICAgIC8vIEZpcmVzdG9yZSBjb24gc29wb3J0ZSBwYXJhIGVtdWxhZG9yZXMgeSBwZXJzaXN0ZW5jaWFcbiAgICBwcm92aWRlRmlyZXN0b3JlKCgpID0+IHtcbiAgICAgIGNvbnN0IGZpcmVzdG9yZSA9IGdldEZpcmVzdG9yZSgpO1xuXG4gICAgICAvLyBDb25lY3RhciBhIGVtdWxhZG9yIHNpIGVzdMOhIGNvbmZpZ3VyYWRvXG4gICAgICBpZiAoY29uZmlnLmVtdWxhdG9yPy5maXJlc3RvcmUpIHtcbiAgICAgICAgY29ubmVjdEZpcmVzdG9yZUVtdWxhdG9yKFxuICAgICAgICAgIGZpcmVzdG9yZSxcbiAgICAgICAgICBjb25maWcuZW11bGF0b3IuZmlyZXN0b3JlLmhvc3QsXG4gICAgICAgICAgY29uZmlnLmVtdWxhdG9yLmZpcmVzdG9yZS5wb3J0XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIEhhYmlsaXRhciBwZXJzaXN0ZW5jaWEgb2ZmbGluZSBzaSBlc3TDoSBjb25maWd1cmFkYSAoYnJvd3Nlci1vbmx5OlxuICAgICAgLy8gZW5hYmxlTXVsdGlUYWJJbmRleGVkRGJQZXJzaXN0ZW5jZSByZXF1aWVyZSBJbmRleGVkREIsIG5vIGV4aXN0ZSBlbiBOb2RlKS5cbiAgICAgIGlmIChjb25maWcucGVyc2lzdGVuY2UgJiYgaXNCcm93c2VyKSB7XG4gICAgICAgIGVuYWJsZU11bHRpVGFiSW5kZXhlZERiUGVyc2lzdGVuY2UoZmlyZXN0b3JlKS5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgIGlmIChlcnIuY29kZSA9PT0gJ2ZhaWxlZC1wcmVjb25kaXRpb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICdbVmFsdGVjaEZpcmViYXNlXSBQZXJzaXN0ZW5jaWEgbm8gZGlzcG9uaWJsZTogbcO6bHRpcGxlcyBwZXN0YcOxYXMgYWJpZXJ0YXMnXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXJyLmNvZGUgPT09ICd1bmltcGxlbWVudGVkJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEZpcmViYXNlXSBQZXJzaXN0ZW5jaWEgbm8gc29wb3J0YWRhIGVuIGVzdGUgbmF2ZWdhZG9yJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpcmVzdG9yZTtcbiAgICB9KSxcblxuICAgIC8vIEF1dGggY29uIHNvcG9ydGUgcGFyYSBlbXVsYWRvclxuICAgIHByb3ZpZGVBdXRoKCgpID0+IHtcbiAgICAgIGNvbnN0IGF1dGggPSBnZXRBdXRoKCk7XG5cbiAgICAgIC8vIENvbmVjdGFyIGEgZW11bGFkb3Igc2kgZXN0w6EgY29uZmlndXJhZG9cbiAgICAgIGlmIChjb25maWcuZW11bGF0b3I/LmF1dGgpIHtcbiAgICAgICAgY29ubmVjdEF1dGhFbXVsYXRvcihcbiAgICAgICAgICBhdXRoLFxuICAgICAgICAgIGBodHRwOi8vJHtjb25maWcuZW11bGF0b3IuYXV0aC5ob3N0fToke2NvbmZpZy5lbXVsYXRvci5hdXRoLnBvcnR9YCxcbiAgICAgICAgICB7IGRpc2FibGVXYXJuaW5nczogdHJ1ZSB9XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhdXRoO1xuICAgIH0pLFxuXG4gICAgLy8gU3RvcmFnZSBjb24gc29wb3J0ZSBwYXJhIGVtdWxhZG9yXG4gICAgcHJvdmlkZVN0b3JhZ2UoKCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2UoKTtcblxuICAgICAgLy8gQ29uZWN0YXIgYSBlbXVsYWRvciBzaSBlc3TDoSBjb25maWd1cmFkb1xuICAgICAgaWYgKGNvbmZpZy5lbXVsYXRvcj8uc3RvcmFnZSkge1xuICAgICAgICBjb25uZWN0U3RvcmFnZUVtdWxhdG9yKHN0b3JhZ2UsIGNvbmZpZy5lbXVsYXRvci5zdG9yYWdlLmhvc3QsIGNvbmZpZy5lbXVsYXRvci5zdG9yYWdlLnBvcnQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc3RvcmFnZTtcbiAgICB9KSxcbiAgXTtcblxuICAvLyBNZXNzYWdpbmcgKEZDTSkgLSBzb2xvIHNpIGVzdMOhIGV4cGzDrWNpdGFtZW50ZSBoYWJpbGl0YWRvIHkgZXN0YW1vcyBlbiBicm93c2VyLlxuICAvLyBSZXF1aWVyZSBTZXJ2aWNlIFdvcmtlciArIE5vdGlmaWNhdGlvbnMgQVBJIOKGkiBza2lwIHRvdGFsIGVuIFNTUi9Ob2RlLlxuICBpZiAoY29uZmlnLmVuYWJsZU1lc3NhZ2luZyAmJiBpc0Jyb3dzZXIpIHtcbiAgICAvLyBQcmUtcmVnaXN0cmFyIFNXIGN1c3RvbSBhbnRlcyBkZSBxdWUgRmlyZWJhc2UgbG8gaW50ZW50ZS4gVXNhbW9zIHVuXG4gICAgLy8gc2NvcGUgZGVkaWNhZG8gcGFyYSBubyBjb21wZXRpciBjb24gQW5ndWxhciBgbmdzdy13b3JrZXIuanNgIGVuIGAvYC5cbiAgICBpZiAoJ3NlcnZpY2VXb3JrZXInIGluIG5hdmlnYXRvcikge1xuICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXJcbiAgICAgICAgLnJlZ2lzdGVyKCcvZmlyZWJhc2UtbWVzc2FnaW5nLXN3LmpzJywgeyBzY29wZTogJy9maXJlYmFzZS1jbG91ZC1tZXNzYWdpbmctcHVzaC1zY29wZScgfSlcbiAgICAgICAgLmNhdGNoKGNvbnNvbGUuZXJyb3IpO1xuICAgIH1cbiAgICBwcm92aWRlcnMucHVzaChwcm92aWRlTWVzc2FnaW5nKCgpID0+IGdldE1lc3NhZ2luZygpKSk7XG4gIH1cblxuICAvLyBBbmFseXRpY3MgKEdBNCkgLSBzb2xvIHNpIGVzdMOhIGV4cGzDrWNpdGFtZW50ZSBoYWJpbGl0YWRvIHkgZXN0YW1vcyBlbiBicm93c2VyLlxuICAvLyBnZXRBbmFseXRpY3MoKSAvIFNjcmVlblRyYWNraW5nU2VydmljZSB0b2NhbiB3aW5kb3cvZG9jdW1lbnQg4oaSIHNraXAgZW4gU1NSLlxuICBpZiAoY29uZmlnLmVuYWJsZUFuYWx5dGljcyAmJiBjb25maWcuZmlyZWJhc2UubWVhc3VyZW1lbnRJZCAmJiBpc0Jyb3dzZXIpIHtcbiAgICBwcm92aWRlcnMucHVzaChwcm92aWRlQW5hbHl0aWNzKCgpID0+IGdldEFuYWx5dGljcygpKSk7XG5cbiAgICAvLyBSb3V0ZXIgdHJhY2tlciBwYXJhIHBhZ2Ugdmlld3MgYXV0b23DoXRpY29zIChwb3IgZGVmZWN0byBoYWJpbGl0YWRvKVxuICAgIGlmIChjb25maWcuYW5hbHl0aWNzQ29uZmlnPy5lbmFibGVQYWdlVmlld1RyYWNraW5nICE9PSBmYWxzZSkge1xuICAgICAgcHJvdmlkZXJzLnB1c2goQW5hbHl0aWNzUm91dGVyVHJhY2tlcik7XG4gICAgfVxuXG4gICAgLy8gRXJyb3IgaGFuZGxlciBwYXJhIHRyYWNraW5nIGF1dG9tw6F0aWNvIGRlIGVycm9yZXNcbiAgICBpZiAoY29uZmlnLmFuYWx5dGljc0NvbmZpZz8uZW5hYmxlRXJyb3JUcmFja2luZykge1xuICAgICAgcHJvdmlkZXJzLnB1c2goe1xuICAgICAgICBwcm92aWRlOiBFcnJvckhhbmRsZXIsXG4gICAgICAgIHVzZUNsYXNzOiBBbmFseXRpY3NFcnJvckhhbmRsZXIsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKHByb3ZpZGVycyk7XG59XG5cbi8qKlxuICogVmVyaWZpY2Egc2kgbG9zIGVtdWxhZG9yZXMgZXN0w6FuIGNvbmZpZ3VyYWRvcy5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhY2nDs24gZGUgRmlyZWJhc2VcbiAqIEByZXR1cm5zIHRydWUgc2kgaGF5IGFsIG1lbm9zIHVuIGVtdWxhZG9yIGNvbmZpZ3VyYWRvXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNFbXVsYXRvcnMoY29uZmlnOiBWYWx0ZWNoRmlyZWJhc2VDb25maWcpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhKGNvbmZpZy5lbXVsYXRvcj8uZmlyZXN0b3JlIHx8IGNvbmZpZy5lbXVsYXRvcj8uYXV0aCB8fCBjb25maWcuZW11bGF0b3I/LnN0b3JhZ2UpO1xufVxuIl19
|