@scion/workbench 17.0.0-beta.8 → 18.0.0-beta.1
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/activation-instant.provider.mjs +3 -3
- package/esm2022/lib/common/asserts.util.mjs +1 -1
- package/esm2022/lib/common/coerce-observable.pipe.mjs +3 -3
- package/esm2022/lib/common/dom.util.mjs +1 -1
- package/esm2022/lib/common/filter-by-predicate.pipe.mjs +3 -3
- package/esm2022/lib/common/filter-by-text.pipe.mjs +3 -3
- package/esm2022/lib/common/grid-element-if-visible.pipe.mjs +4 -4
- package/esm2022/lib/common/instanceof.pipe.mjs +3 -3
- package/esm2022/lib/common/map-coerce.pipe.mjs +3 -3
- package/esm2022/lib/common/null-if-empty.pipe.mjs +4 -4
- package/esm2022/lib/common/observables.mjs +1 -1
- package/esm2022/lib/common/stringify-error.util.mjs +1 -1
- package/esm2022/lib/common/typeof.pipe.mjs +3 -3
- package/esm2022/lib/common//311/265destroy-ref.mjs +1 -1
- package/esm2022/lib/content-projection/content-as-overlay.component.mjs +3 -3
- package/esm2022/lib/content-projection/content-projection.directive.mjs +4 -4
- package/esm2022/lib/content-projection/view-container.reference.mjs +1 -1
- package/esm2022/lib/dialog/dialog-footer/dialog-action-filter.pipe.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/dialog-footer.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-action.directive.mjs +9 -6
- package/esm2022/lib/dialog/dialog-footer/workbench-dialog-footer.directive.mjs +9 -6
- package/esm2022/lib/dialog/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog-header/workbench-dialog-header.directive.mjs +9 -6
- package/esm2022/lib/dialog/movable.directive.mjs +4 -4
- package/esm2022/lib/dialog/resizable.directive.mjs +4 -4
- package/esm2022/lib/dialog/workbench-dialog.component.mjs +53 -24
- package/esm2022/lib/dialog/workbench-dialog.registry.mjs +4 -4
- package/esm2022/lib/dialog/workbench-dialog.service.mjs +3 -3
- package/esm2022/lib/dialog//311/265workbench-dialog.mjs +2 -2
- package/esm2022/lib/dialog//311/265workbench-dialog.service.mjs +4 -4
- package/esm2022/lib/executor/single-task-executor.mjs +26 -7
- package/esm2022/lib/filter-field/filter-field.component.mjs +4 -4
- package/esm2022/lib/glass-pane/glass-pane.directive.mjs +15 -7
- package/esm2022/lib/layout/grid-element/grid-element.component.mjs +4 -4
- package/esm2022/lib/layout/main-area-layout/main-area-layout.component.mjs +3 -3
- package/esm2022/lib/layout/migration/workbench-layout-migration-v3.service.mjs +4 -4
- package/esm2022/lib/layout/migration/workbench-layout-migration-v4.service.mjs +4 -4
- package/esm2022/lib/layout/workbench-layout.component.mjs +3 -3
- package/esm2022/lib/layout/workbench-layout.factory.mjs +3 -3
- package/esm2022/lib/layout/workbench-layout.service.mjs +3 -3
- package/esm2022/lib/layout/workbench-layouts.util.mjs +1 -1
- package/esm2022/lib/layout/workench-layout-serializer.service.mjs +4 -6
- package/esm2022/lib/layout//311/265workbench-layout.factory.mjs +3 -3
- package/esm2022/lib/layout//311/265workbench-layout.mjs +7 -7
- package/esm2022/lib/logging/console-appender.service.mjs +4 -4
- package/esm2022/lib/logging/logger.mjs +3 -3
- package/esm2022/lib/logging/logging.model.mjs +3 -3
- package/esm2022/lib/logging//311/265logger.mjs +4 -4
- package/esm2022/lib/message-box/message-box-footer/message-box-footer.component.mjs +4 -4
- package/esm2022/lib/message-box/message-box-header/message-box-header.component.mjs +3 -3
- package/esm2022/lib/message-box/workbench-message-box.component.mjs +15 -6
- package/esm2022/lib/message-box/workbench-message-box.service.mjs +3 -3
- package/esm2022/lib/message-box//311/265workbench-message-box.service.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/common/microfrontend.util.mjs +1 -1
- package/esm2022/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.mjs +26 -13
- package/esm2022/lib/microfrontend-platform/initialization/ng-zone-observable-decorator.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/initialization/workbench-host-manifest-interceptor.service.mjs +25 -13
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-capability-validator.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog-intent-handler.interceptor.mjs +11 -11
- package/esm2022/lib/microfrontend-platform/microfrontend-dialog/microfrontend-dialog.component.mjs +5 -5
- package/esm2022/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.mjs +9 -7
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.mjs +112 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.mjs +43 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.mjs +11 -9
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.mjs +34 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.mjs +88 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.mjs +32 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.mjs +121 -0
- package/esm2022/lib/microfrontend-platform/microfrontend-notification/microfrontend-notification-intent-handler.service.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-platform-config-loader.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-capability-validator.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup-intent-handler.interceptor.mjs +9 -6
- package/esm2022/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.mjs +9 -15
- package/esm2022/lib/microfrontend-platform/microfrontend-splash/microfrontend-splash.component.mjs +3 -3
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view-command-handler.service.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/microfrontend-view/microfrontend-view.component.mjs +16 -9
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-id-assigner.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-capability-validator.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-intent-handler.interceptor.mjs +4 -4
- package/esm2022/lib/microfrontend-platform/routing/microfrontend-view-routes.mjs +1 -1
- package/esm2022/lib/microfrontend-platform/workbench-microfrontend-support.mjs +43 -14
- package/esm2022/lib/migration/workbench-migrator.mjs +1 -1
- package/esm2022/lib/notification/notification-css-classes.pipe.mjs +3 -3
- package/esm2022/lib/notification/notification-list.component.mjs +3 -3
- package/esm2022/lib/notification/notification.component.mjs +4 -4
- package/esm2022/lib/notification/notification.service.mjs +4 -4
- package/esm2022/lib/notification/text-notification.component.mjs +3 -3
- package/esm2022/lib/notification//311/265notification.mjs +1 -1
- package/esm2022/lib/page-not-found/format-url.pipe.mjs +3 -3
- package/esm2022/lib/page-not-found/page-not-found.component.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action-bar.component.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action-filter.pipe.mjs +3 -3
- package/esm2022/lib/part/part-action-bar/part-action.directive.mjs +4 -4
- package/esm2022/lib/part/part-bar/part-bar.component.mjs +4 -4
- package/esm2022/lib/part/part-portal.pipe.mjs +4 -4
- package/esm2022/lib/part/part.component.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/accelerator-format.pipe.mjs +4 -4
- package/esm2022/lib/part/view-context-menu/text.component.mjs +3 -3
- package/esm2022/lib/part/view-context-menu/view-menu.component.mjs +4 -4
- package/esm2022/lib/part/view-context-menu/view-menu.directive.mjs +4 -4
- package/esm2022/lib/part/view-context-menu/view-menu.service.mjs +4 -4
- package/esm2022/lib/part/view-list/view-list.component.mjs +3 -3
- package/esm2022/lib/part/view-list-button/view-list-button.component.mjs +4 -4
- package/esm2022/lib/part/view-list-item/view-list-item.component.mjs +3 -3
- package/esm2022/lib/part/view-tab/view-tab.component.mjs +4 -4
- package/esm2022/lib/part/view-tab-content/view-tab-content.component.mjs +3 -3
- package/esm2022/lib/part/view-tab-drag-image/view-tab-drag-image.component.mjs +3 -3
- package/esm2022/lib/part/workbench-part-action.registry.mjs +3 -3
- package/esm2022/lib/part/workbench-part.registry.mjs +3 -3
- package/esm2022/lib/part//311/265workbench-part.model.mjs +1 -1
- package/esm2022/lib/perspective/migration/workbench-perspective-migration-v2.service.mjs +4 -4
- package/esm2022/lib/perspective/workbench-grid-merger.service.mjs +4 -4
- package/esm2022/lib/perspective/workbench-perspective-storage.service.mjs +4 -4
- package/esm2022/lib/perspective/workbench-perspective-view-conflict-resolver.service.mjs +4 -4
- package/esm2022/lib/perspective/workbench-perspective.registry.mjs +3 -3
- package/esm2022/lib/perspective/workbench-perspective.service.mjs +4 -4
- package/esm2022/lib/perspective/workench-perspective-serializer.service.mjs +4 -4
- package/esm2022/lib/perspective//311/265workbench-perspective.model.mjs +1 -1
- package/esm2022/lib/popup/popup.component.mjs +22 -10
- package/esm2022/lib/popup/popup.config.mjs +3 -1
- package/esm2022/lib/popup/popup.service.mjs +4 -4
- package/esm2022/lib/portal/wb-component-portal.mjs +1 -1
- package/esm2022/lib/portal/workbench-portal-outlet.directive.mjs +4 -4
- package/esm2022/lib/registry/workbench-object-registry.mjs +1 -1
- package/esm2022/lib/routing/empty-outlet/empty-outlet.component.mjs +3 -3
- package/esm2022/lib/routing/router.util.mjs +8 -2
- package/esm2022/lib/routing/routing.model.mjs +1 -1
- package/esm2022/lib/routing/url-segment-matcher.mjs +1 -1
- package/esm2022/lib/routing/workbench-auxiliary-routes-registrator.service.mjs +4 -4
- package/esm2022/lib/routing/workbench-dialog-differ.mjs +5 -5
- package/esm2022/lib/routing/workbench-layout-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-message-box-differ.mjs +51 -0
- package/esm2022/lib/routing/workbench-popup-differ.mjs +3 -3
- package/esm2022/lib/routing/workbench-router-link.directive.mjs +5 -5
- package/esm2022/lib/routing/workbench-router.service.mjs +3 -3
- package/esm2022/lib/routing/workbench-url-observer.service.mjs +52 -69
- package/esm2022/lib/routing//311/265location.mjs +3 -3
- package/esm2022/lib/routing//311/265workbench-router.service.mjs +9 -12
- package/esm2022/lib/startup/splash/splash.component.mjs +3 -3
- package/esm2022/lib/startup/workbench-initializer.mjs +1 -1
- package/esm2022/lib/startup/workbench-launcher.service.mjs +7 -7
- package/esm2022/lib/storage/workbench-storage.mjs +3 -3
- package/esm2022/lib/testing/workbench-testing.module.mjs +4 -4
- package/esm2022/lib/testing/workbench.provider.mjs +3 -3
- package/esm2022/lib/theme/workbench-theme-switcher.service.mjs +4 -4
- package/esm2022/lib/view/view-move-handler.service.mjs +4 -4
- package/esm2022/lib/view/view-portal.pipe.mjs +4 -4
- package/esm2022/lib/view/view.component.mjs +17 -10
- package/esm2022/lib/view/workbench-view-route-guards.mjs +1 -1
- package/esm2022/lib/view/workbench-view.registry.mjs +3 -3
- package/esm2022/lib/view//311/265workbench-view.model.mjs +1 -1
- package/esm2022/lib/view-dnd/grid-drop-targets.util.mjs +1 -1
- package/esm2022/lib/view-dnd/requires-drop-zone.pipe.mjs +4 -4
- package/esm2022/lib/view-dnd/view-drag.service.mjs +4 -4
- package/esm2022/lib/view-dnd/view-drop-placeholder-renderer.service.mjs +3 -3
- package/esm2022/lib/view-dnd/view-drop-zone.directive.mjs +4 -4
- package/esm2022/lib/view-dnd/view-tab-drag-image-renderer.service.mjs +5 -5
- package/esm2022/lib/workbench.component.mjs +10 -6
- package/esm2022/lib/workbench.constants.mjs +5 -1
- package/esm2022/lib/workbench.module.mjs +4 -4
- package/esm2022/lib/workbench.provider.mjs +1 -1
- package/esm2022/lib/workbench.service.mjs +3 -3
- package/esm2022/lib//311/265workbench.service.mjs +3 -3
- package/fesm2022/scion-workbench.mjs +1179 -714
- package/fesm2022/scion-workbench.mjs.map +1 -1
- package/lib/common/objects.util.d.ts +2 -2
- package/lib/dialog/workbench-dialog.component.d.ts +16 -7
- package/lib/executor/single-task-executor.d.ts +6 -1
- package/lib/glass-pane/glass-pane.directive.d.ts +21 -0
- package/lib/message-box/workbench-message-box.component.d.ts +3 -0
- package/lib/microfrontend-platform/initialization/microfrontend-platform-initializer.service.d.ts +7 -1
- package/lib/microfrontend-platform/microfrontend-host-dialog/microfrontend-host-dialog.component.d.ts +1 -0
- package/lib/microfrontend-platform/microfrontend-host-message-box/microfrontend-host-message-box.component.d.ts +39 -0
- package/lib/microfrontend-platform/microfrontend-host-message-box/text-message/text-message.component.d.ts +25 -0
- package/lib/microfrontend-platform/microfrontend-host-popup/microfrontend-host-popup.component.d.ts +3 -2
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-capability-validator.interceptor.d.ts +10 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.interceptor.d.ts +28 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-legacy-intent-translator.interceptor.d.ts +11 -0
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box.component.d.ts +48 -0
- package/lib/microfrontend-platform/microfrontend-popup/microfrontend-popup.component.d.ts +3 -7
- package/lib/microfrontend-platform/workbench-microfrontend-support.d.ts +1 -1
- package/lib/popup/popup.component.d.ts +1 -0
- package/lib/routing/router.util.d.ts +4 -0
- package/lib/routing/workbench-message-box-differ.d.ts +25 -0
- package/lib/routing/workbench-url-observer.service.d.ts +7 -25
- package/lib/routing//311/265workbench-router.service.d.ts +3 -4
- package/lib/workbench.constants.d.ts +4 -0
- package/package.json +10 -10
- package/esm2022/lib/layout/migration/model/workbench-layout-migration-v1.model.mjs +0 -11
- package/esm2022/lib/layout/migration/workbench-layout-migration-v2.service.mjs +0 -59
- package/esm2022/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.mjs +0 -46
- package/lib/layout/migration/model/workbench-layout-migration-v1.model.d.ts +0 -16
- package/lib/layout/migration/workbench-layout-migration-v2.service.d.ts +0 -13
- package/lib/microfrontend-platform/microfrontend-message-box/microfrontend-message-box-intent-handler.service.d.ts +0 -17
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Defined, Observables } from '@scion/toolkit/util';
|
|
2
|
-
import { Injectable, NgZone, runInInjectionContext } from '@angular/core';
|
|
2
|
+
import { inject, Injectable, NgZone, runInInjectionContext } from '@angular/core';
|
|
3
3
|
import { MAIN_AREA_LAYOUT_QUERY_PARAM } from '../workbench.constants';
|
|
4
|
-
import {
|
|
4
|
+
import { SINGLE_NAVIGATION_EXECUTOR } from '../executor/single-task-executor';
|
|
5
5
|
import { firstValueFrom } from 'rxjs';
|
|
6
6
|
import { WorkbenchNavigationalStates } from './workbench-navigational-states';
|
|
7
7
|
import { RouterUtils } from './router.util';
|
|
@@ -21,7 +21,7 @@ export class ɵWorkbenchRouter {
|
|
|
21
21
|
this._injector = _injector;
|
|
22
22
|
this._logger = _logger;
|
|
23
23
|
this._zone = _zone;
|
|
24
|
-
this.
|
|
24
|
+
this._singleNavigationExecutor = inject(SINGLE_NAVIGATION_EXECUTOR);
|
|
25
25
|
/**
|
|
26
26
|
* Holds the current navigational context during a workbench navigation, or `null` if no navigation is in progress.
|
|
27
27
|
*/
|
|
@@ -41,7 +41,7 @@ export class ɵWorkbenchRouter {
|
|
|
41
41
|
}
|
|
42
42
|
const navigateFn = typeof commandsOrNavigateFn === 'function' ? commandsOrNavigateFn : createNavigationFromCommands(commandsOrNavigateFn, extras ?? {});
|
|
43
43
|
// Serialize navigation requests to prevent race conditions when modifying the currently active workbench layout.
|
|
44
|
-
return this.
|
|
44
|
+
return this._singleNavigationExecutor.submit(async () => {
|
|
45
45
|
// Wait until the initial layout is available, i.e., after completion of Angular's initial navigation.
|
|
46
46
|
// Otherwise, this navigation would override the initial layout as given in the URL.
|
|
47
47
|
if (!this._workbenchLayoutService.layout) {
|
|
@@ -96,7 +96,7 @@ export class ɵWorkbenchRouter {
|
|
|
96
96
|
if (!NgZone.isInAngularZone()) {
|
|
97
97
|
return this._zone.run(() => this.createUrlTree(onNavigate, extras));
|
|
98
98
|
}
|
|
99
|
-
return this.
|
|
99
|
+
return this._singleNavigationExecutor.submit(async () => {
|
|
100
100
|
// Wait until the initial layout is available, i.e., after completion of Angular's initial navigation.
|
|
101
101
|
// Otherwise, would override the initial layout as given in the URL.
|
|
102
102
|
if (!this._workbenchLayoutService.layout) {
|
|
@@ -164,13 +164,10 @@ export class ɵWorkbenchRouter {
|
|
|
164
164
|
async waitForInitialLayout() {
|
|
165
165
|
await firstValueFrom(this._workbenchLayoutService.layout$);
|
|
166
166
|
}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
}
|
|
170
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ɵWorkbenchRouter, deps: [{ token: i1.Router }, { token: i2.WorkbenchLayoutService }, { token: i3.WorkbenchViewRegistry }, { token: i0.Injector }, { token: i4.Logger }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
171
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ɵWorkbenchRouter, providedIn: 'root' }); }
|
|
167
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchRouter, deps: [{ token: i1.Router }, { token: i2.WorkbenchLayoutService }, { token: i3.WorkbenchViewRegistry }, { token: i0.Injector }, { token: i4.Logger }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
168
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchRouter, providedIn: 'root' }); }
|
|
172
169
|
}
|
|
173
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
170
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: ɵWorkbenchRouter, decorators: [{
|
|
174
171
|
type: Injectable,
|
|
175
172
|
args: [{ providedIn: 'root' }]
|
|
176
173
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.WorkbenchLayoutService }, { type: i3.WorkbenchViewRegistry }, { type: i0.Injector }, { type: i4.Logger }, { type: i0.NgZone }] });
|
|
@@ -314,4 +311,4 @@ function computeNavigationCommands(previousViewOutlets, nextViewOutlets) {
|
|
|
314
311
|
// Add view commands to the 'outlets' property to be interpreted by the Angular router.
|
|
315
312
|
return commands.size ? [{ outlets: Object.fromEntries(commands) }] : [];
|
|
316
313
|
}
|
|
317
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtcm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9yb3V0aW5nL8m1d29ya2JlbmNoLXJvdXRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFDLFVBQVUsRUFBWSxNQUFNLEVBQWEscUJBQXFCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFN0YsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUU1RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzFDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBTS9DLGtCQUFrQjtBQUVsQixNQUFNLE9BQU8sZ0JBQWdCO0lBUzNCLFlBQW9CLE9BQWUsRUFDZix1QkFBK0MsRUFDL0Msc0JBQTZDLEVBQzdDLFNBQW1CLEVBQ25CLE9BQWUsRUFDZixLQUFhO1FBTGIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBd0I7UUFDL0MsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3QyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBWnpC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LENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBRSxDQUFDLENBQUMsQ0FBQztTQUN0RjtJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsdUZBQXVGO0lBQ3ZGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3hFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjQgU3dpc3MgRmVkZXJhbCBSYWlsd2F5c1xuICpcbiAqIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGVcbiAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgMi4wXG4gKiB3aGljaCBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cbiAqXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogRVBMLTIuMFxuICovXG5cbmltcG9ydCB7TmF2aWdhdGlvbkV4dHJhcywgUm91dGVyLCBVcmxTZWdtZW50LCBVcmxUcmVlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtXb3JrYmVuY2hSb3V0ZXJ9IGZyb20gJy4vd29ya2JlbmNoLXJvdXRlci5zZXJ2aWNlJztcbmltcG9ydCB7RGVmaW5lZCwgT2JzZXJ2YWJsZXN9IGZyb20gJ0BzY2lvbi90b29sa2l0L3V0aWwnO1xuaW1wb3J0IHtJbmplY3RhYmxlLCBJbmplY3RvciwgTmdab25lLCBPbkRlc3Ryb3ksIHJ1bkluSW5qZWN0aW9uQ29udGV4dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaExheW91dFNlcnZpY2V9IGZyb20gJy4uL2xheW91dC93b3JrYmVuY2gtbGF5b3V0LnNlcnZpY2UnO1xuaW1wb3J0IHtNQUlOX0FSRUFfTEFZT1VUX1FVRVJZX1BBUkFNfSBmcm9tICcuLi93b3JrYmVuY2guY29uc3RhbnRzJztcbmltcG9ydCB7U2luZ2xlVGFza0V4ZWN1dG9yfSBmcm9tICcuLi9leGVjdXRvci9zaW5nbGUtdGFzay1leGVjdXRvcic7XG5pbXBvcnQge2ZpcnN0VmFsdWVGcm9tfSBmcm9tICdyeGpzJztcbmltcG9ydCB7V29ya2JlbmNoTmF2aWdhdGlvbmFsU3RhdGVzfSBmcm9tICcuL3dvcmtiZW5jaC1uYXZpZ2F0aW9uYWwtc3RhdGVzJztcbmltcG9ydCB7ybVXb3JrYmVuY2hMYXlvdXR9IGZyb20gJy4uL2xheW91dC/JtXdvcmtiZW5jaC1sYXlvdXQnO1xuaW1wb3J0IHtSb3V0ZXJVdGlsc30gZnJvbSAnLi9yb3V0ZXIudXRpbCc7XG5pbXBvcnQge0NvbW1hbmRzLCBWaWV3T3V0bGV0cywgV29ya2JlbmNoTmF2aWdhdGlvbkNvbnRleHQsIFdvcmtiZW5jaE5hdmlnYXRpb25FeHRyYXN9IGZyb20gJy4vcm91dGluZy5tb2RlbCc7XG5pbXBvcnQge1ZpZXdJZH0gZnJvbSAnLi4vdmlldy93b3JrYmVuY2gtdmlldy5tb2RlbCc7XG5pbXBvcnQge1VybFNlZ21lbnRNYXRjaGVyfSBmcm9tICcuL3VybC1zZWdtZW50LW1hdGNoZXInO1xuaW1wb3J0IHtPYmplY3RzfSBmcm9tICcuLi9jb21tb24vb2JqZWN0cy51dGlsJztcbmltcG9ydCB7V29ya2JlbmNoVmlld1JlZ2lzdHJ5fSBmcm9tICcuLi92aWV3L3dvcmtiZW5jaC12aWV3LnJlZ2lzdHJ5JztcbmltcG9ydCB7TG9nZ2VyfSBmcm9tICcuLi9sb2dnaW5nJztcbmltcG9ydCB7Q2FuQ2xvc2V9IGZyb20gJy4uL3dvcmtiZW5jaC5tb2RlbCc7XG5pbXBvcnQge1VVSUR9IGZyb20gJy4uL2NvbW1vbi91dWlkLnV0aWwnO1xuXG4vKiogQGluaGVyaXREb2MgKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIMm1V29ya2JlbmNoUm91dGVyIGltcGxlbWVudHMgV29ya2JlbmNoUm91dGVyLCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX3NpbmdsZVRhc2tFeGVjdXRvciA9IG5ldyBTaW5nbGVUYXNrRXhlY3V0b3IoKTtcblxuICAvKipcbiAgICogSG9sZHMgdGhlIGN1cnJlbnQgbmF2aWdhdGlvbmFsIGNvbnRleHQgZHVyaW5nIGEgd29ya2JlbmNoIG5hdmlnYXRpb24sIG9yIGBudWxsYCBpZiBubyBuYXZpZ2F0aW9uIGlzIGluIHByb2dyZXNzLlxuICAgKi9cbiAgcHJpdmF0ZSBfY3VycmVudE5hdmlnYXRpb25Db250ZXh0OiBXb3JrYmVuY2hOYXZpZ2F0aW9uQ29udGV4dCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlOiBXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hWaWV3UmVnaXN0cnk6IFdvcmtiZW5jaFZpZXdSZWdpc3RyeSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICBwcml2YXRlIF9sb2dnZXI6IExvZ2dlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfem9uZTogTmdab25lKSB7XG4gICAgLy8gSW5zdHJ1Y3QgdGhlIEFuZ3VsYXIgcm91dGVyIHRvIHByb2Nlc3MgbmF2aWdhdGlvbnMgdGhhdCBkbyBub3QgY2hhbmdlIHRoZSBjdXJyZW50IFVSTCwgaS5lLiwgd2hlbiBvbmx5IHVwZGF0aW5nIG5hdmlnYXRpb24gc3RhdGUuXG4gICAgLy8gRm9yIGV4YW1wbGUsIHRoZSB3b3JrYmVuY2ggZ3JpZCBpcyBwYXNzZWQgdG8gdGhlIG5hdmlnYXRpb24gYXMgc3RhdGUsIG5vdCBhcyBhIHF1ZXJ5IHBhcmFtZXRlci4gV2l0aG91dCB0aGlzIGZsYWcgc2V0LCBjaGFuZ2VzIHRvXG4gICAgLy8gdGhlIHdvcmtiZW5jaCBncmlkIHdvdWxkIG5vdCBiZSBhZGRlZCB0byB0aGUgYnJvd3NpbmcgaGlzdG9yeSBzdGFjay5cbiAgICAvLyBBbHRob3VnaCB0aGUgYG9uU2FtZVVybE5hdmlnYXRpb25gIGZsYWcgY2FuIGJlIHNldCBwZXIgbmF2aWdhdGlvbiB2aWEgdGhlIG5hdmlnYXRpb24gZXh0cmFzLCB0aGlzIGlzIG5vdCBzdWZmaWNpZW50IGJlY2F1c2UgdGhlXG4gICAgLy8gQW5ndWxhciByb3V0ZXIgaWdub3JlcyBpdCB3aGVuIG5hdmlnYXRpbmcgYmFjayBhbmQgZm9ydGggaW4gdGhlIGJyb3dzaW5nIGhpc3RvcnkuXG4gICAgLy8gU2VlIEFuZ3VsYXIgcm91dGVyLnRzI3NldFVwTG9jYXRpb25DaGFuZ2VMaXN0ZW5lciBhbmQgcm91dGVyLnRzI25hdmlnYXRlVG9TeW5jV2l0aEJyb3dzZXJcbiAgICB0aGlzLl9yb3V0ZXIub25TYW1lVXJsTmF2aWdhdGlvbiA9ICdyZWxvYWQnO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBuYXZpZ2F0ZShjb21tYW5kczogQ29tbWFuZHMsIGV4dHJhcz86IFdvcmtiZW5jaE5hdmlnYXRpb25FeHRyYXMpOiBQcm9taXNlPGJvb2xlYW4+O1xuICBwdWJsaWMgbmF2aWdhdGUobmF2aWdhdGVGbjogybVOYXZpZ2F0ZUZuLCBleHRyYXM/OiBPbWl0PE5hdmlnYXRpb25FeHRyYXMsICdyZWxhdGl2ZVRvJyB8ICdzdGF0ZSc+KTogUHJvbWlzZTxib29sZWFuPjtcbiAgcHVibGljIG5hdmlnYXRlKGNvbW1hbmRzT3JOYXZpZ2F0ZUZuOiBDb21tYW5kcyB8IMm1TmF2aWdhdGVGbiwgZXh0cmFzPzogV29ya2JlbmNoTmF2aWdhdGlvbkV4dHJhcyB8IE9taXQ8TmF2aWdhdGlvbkV4dHJhcywgJ3JlbGF0aXZlVG8nIHwgJ3N0YXRlJz4pOiBQcm9taXNlPGJvb2xlYW4+O1xuICBwdWJsaWMgbmF2aWdhdGUoY29tbWFuZHNPck5hdmlnYXRlRm46IENvbW1hbmRzIHwgybVOYXZpZ2F0ZUZuLCBleHRyYXM/OiBXb3JrYmVuY2hOYXZpZ2F0aW9uRXh0cmFzIHwgT21pdDxOYXZpZ2F0aW9uRXh0cmFzLCAncmVsYXRpdmVUbycgfCAnc3RhdGUnPik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIC8vIEVuc3VyZSB0byBydW4gaW4gQW5ndWxhciB6b25lLlxuICAgIGlmICghTmdab25lLmlzSW5Bbmd1bGFyWm9uZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5uYXZpZ2F0ZShjb21tYW5kc09yTmF2aWdhdGVGbiwgZXh0cmFzKSk7XG4gICAgfVxuXG4gICAgY29uc3QgbmF2aWdhdGVGbiA9IHR5cGVvZiBjb21tYW5kc09yTmF2aWdhdGVGbiA9PT0gJ2Z1bmN0aW9uJyA/IGNvbW1hbmRzT3JOYXZpZ2F0ZUZuIDogY3JlYXRlTmF2aWdhdGlvbkZyb21Db21tYW5kcyhjb21tYW5kc09yTmF2aWdhdGVGbiwgZXh0cmFzID8/IHt9KTtcblxuICAgIC8vIFNlcmlhbGl6ZSBuYXZpZ2F0aW9uIHJlcXVlc3RzIHRvIHByZXZlbnQgcmFjZSBjb25kaXRpb25zIHdoZW4gbW9kaWZ5aW5nIHRoZSBjdXJyZW50bHkgYWN0aXZlIHdvcmtiZW5jaCBsYXlvdXQuXG4gICAgcmV0dXJuIHRoaXMuX3NpbmdsZVRhc2tFeGVjdXRvci5zdWJtaXQoYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gV2FpdCB1bnRpbCB0aGUgaW5pdGlhbCBsYXlvdXQgaXMgYXZhaWxhYmxlLCBpLmUuLCBhZnRlciBjb21wbGV0aW9uIG9mIEFuZ3VsYXIncyBpbml0aWFsIG5hdmlnYXRpb24uXG4gICAgICAvLyBPdGhlcndpc2UsIHRoaXMgbmF2aWdhdGlvbiB3b3VsZCBvdmVycmlkZSB0aGUgaW5pdGlhbCBsYXlvdXQgYXMgZ2l2ZW4gaW4gdGhlIFVSTC5cbiAgICAgIGlmICghdGhpcy5fd29ya2JlbmNoTGF5b3V0U2VydmljZS5sYXlvdXQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0Rm9ySW5pdGlhbExheW91dCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBMZXQgdGhlIG5hdmlnYXRvciBjb21wdXRlIHRoZSBuZXcgd29ya2JlbmNoIGxheW91dC5cbiAgICAgIGNvbnN0IGN1cnJlbnRMYXlvdXQgPSB0aGlzLl93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlLmxheW91dCE7XG4gICAgICBsZXQgbmV3TGF5b3V0OiDJtVdvcmtiZW5jaExheW91dCB8IG51bGwgPSBhd2FpdCBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5faW5qZWN0b3IsICgpID0+IG5hdmlnYXRlRm4oY3VycmVudExheW91dCkpIGFzIMm1V29ya2JlbmNoTGF5b3V0O1xuICAgICAgaWYgKCFuZXdMYXlvdXQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlbW92ZSB2aWV3cyBtYXJrZWQgZm9yIHJlbW92YWwsIGludm9raW5nIGBDYW5DbG9zZWAgZ3VhcmQgaWYgaW1wbGVtZW50ZWQuXG4gICAgICBuZXdMYXlvdXQgPSBhd2FpdCBuZXdMYXlvdXQucmVtb3ZlVmlld3NNYXJrZWRGb3JSZW1vdmFsKHZpZXdVaWQgPT4gdGhpcy5jYW5DbG9zZVZpZXcodmlld1VpZCkpO1xuXG4gICAgICAvLyBDcmVhdGUgZXh0cmFzIHdpdGggd29ya2JlbmNoIG5hdmlnYXRpb24gaW5zdHJ1Y3Rpb25zLlxuICAgICAgZXh0cmFzID0gY3JlYXRlTmF2aWdhdGlvbkV4dHJhcyhuZXdMYXlvdXQsIGV4dHJhcyk7XG5cbiAgICAgIC8vIENyZWF0ZSB0aGUgbmV3IFVSTCB0cmVlLlxuICAgICAgY29uc3QgY29tbWFuZHM6IENvbW1hbmRzID0gY29tcHV0ZU5hdmlnYXRpb25Db21tYW5kcyhjdXJyZW50TGF5b3V0LnZpZXdPdXRsZXRzKCksIG5ld0xheW91dC52aWV3T3V0bGV0cygpKTtcbiAgICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLl9yb3V0ZXIuY3JlYXRlVXJsVHJlZShjb21tYW5kcywgZXh0cmFzKTtcblxuICAgICAgLy8gUGVyZm9ybSB0aGUgbmF2aWdhdGlvbi5cbiAgICAgIGlmICghKGF3YWl0IHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybFRyZWUsIGV4dHJhcykpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gQmxvY2sgc3Vic2VxdWVudCBuYXZpZ2F0aW9uKHMpIHVudGlsIEFuZ3VsYXIgaGFzIGZsdXNoZWQgdGhlIGNoYW5nZWQgbGF5b3V0IHRvIHRoZSBET00uXG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLl96b25lLm9uU3RhYmxlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIGNoYW5nZXMgdG8gdGhlIGN1cnJlbnQgd29ya2JlbmNoIGxheW91dC5cbiAgICpcbiAgICogVW5saWtlIHtAbGluayBuYXZpZ2F0ZX0sIGRvZXMgbm90IHBlcmZvcm0gdGhlIG5hdmlnYXRpb24gYnV0IHJldHVybnMgdGhlIFVSTCB0cmVlIGluc3RlYWQuXG4gICAqXG4gICAqIFRoZSByb3V0ZXIgd2lsbCBpbnZva2UgdGhlIGNhbGxiYWNrIGFuZCBwYXNzIHRoZSBjdXJyZW50IGxheW91dCBmb3IgbW9kaWZpY2F0aW9uLiBUaGUgY2FsbGJhY2sgY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuXG4gICAqXG4gICAqIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBhZGRzIGEgcGFydCB0byB0aGUgbGVmdCBvZiB0aGUgbWFpbiBhcmVhLCBpbnNlcnRzIGEgdmlldyBhbmQgbmF2aWdhdGVzIGl0LlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBpbmplY3QoV29ya2JlbmNoUm91dGVyKS5jcmVhdGVVcmxUcmVlKGxheW91dCA9PiBsYXlvdXRcbiAgICogICAuYWRkUGFydCgnbGVmdCcsIHtyZWxhdGl2ZVRvOiBNQUlOX0FSRUEsIGFsaWduOiAnbGVmdCd9KVxuICAgKiAgIC5hZGRWaWV3KCduYXZpZ2F0b3InLCB7cGFydElkOiAnbGVmdCd9KVxuICAgKiAgIC5uYXZpZ2F0ZVZpZXcoJ25hdmlnYXRvcicsIFsncGF0aC90by92aWV3J10pXG4gICAqICAgLmFjdGl2YXRlVmlldygnbmF2aWdhdG9yJyksXG4gICAqICk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gb25OYXZpZ2F0ZSAtIFNwZWNpZmllcyB0aGUgY2FsbGJhY2sgdG8gbW9kaWZ5IHRoZSBsYXlvdXQuXG4gICAqIEBwYXJhbSBleHRyYXMgLSBDb250cm9scyBob3cgdG8gcGVyZm9ybSB0aGUgbmF2aWdhdGlvbi5cbiAgICogQHNlZSBOYXZpZ2F0ZUZuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY3JlYXRlVXJsVHJlZShvbk5hdmlnYXRlOiAobGF5b3V0OiDJtVdvcmtiZW5jaExheW91dCkgPT4gUHJvbWlzZTzJtVdvcmtiZW5jaExheW91dCB8IG51bGw+IHwgybVXb3JrYmVuY2hMYXlvdXQgfCBudWxsLCBleHRyYXM/OiBPbWl0PE5hdmlnYXRpb25FeHRyYXMsICdyZWxhdGl2ZVRvJyB8ICdzdGF0ZSc+KTogUHJvbWlzZTxVcmxUcmVlIHwgbnVsbD4ge1xuICAgIC8vIEVuc3VyZSB0byBydW4gaW4gQW5ndWxhciB6b25lLlxuICAgIGlmICghTmdab25lLmlzSW5Bbmd1bGFyWm9uZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5jcmVhdGVVcmxUcmVlKG9uTmF2aWdhdGUsIGV4dHJhcykpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9zaW5nbGVUYXNrRXhlY3V0b3Iuc3VibWl0KGFzeW5jICgpID0+IHtcbiAgICAgIC8vIFdhaXQgdW50aWwgdGhlIGluaXRpYWwgbGF5b3V0IGlzIGF2YWlsYWJsZSwgaS5lLiwgYWZ0ZXIgY29tcGxldGlvbiBvZiBBbmd1bGFyJ3MgaW5pdGlhbCBuYXZpZ2F0aW9uLlxuICAgICAgLy8gT3RoZXJ3aXNlLCB3b3VsZCBvdmVycmlkZSB0aGUgaW5pdGlhbCBsYXlvdXQgYXMgZ2l2ZW4gaW4gdGhlIFVSTC5cbiAgICAgIGlmICghdGhpcy5fd29ya2JlbmNoTGF5b3V0U2VydmljZS5sYXlvdXQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0Rm9ySW5pdGlhbExheW91dCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBMZXQgdGhlIG5hdmlnYXRvciBjb21wdXRlIHRoZSBuZXcgd29ya2JlbmNoIGxheW91dC5cbiAgICAgIGNvbnN0IGN1cnJlbnRMYXlvdXQgPSB0aGlzLl93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlLmxheW91dCE7XG4gICAgICBsZXQgbmV3TGF5b3V0OiDJtVdvcmtiZW5jaExheW91dCB8IG51bGwgPSBhd2FpdCBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5faW5qZWN0b3IsICgpID0+IG9uTmF2aWdhdGUoY3VycmVudExheW91dCkpO1xuICAgICAgaWYgKCFuZXdMYXlvdXQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlbW92ZSB2aWV3cyBtYXJrZWQgZm9yIHJlbW92YWwuXG4gICAgICBuZXdMYXlvdXQgPSBhd2FpdCBuZXdMYXlvdXQucmVtb3ZlVmlld3NNYXJrZWRGb3JSZW1vdmFsKCk7XG5cbiAgICAgIC8vIENyZWF0ZSBleHRyYXMgd2l0aCB3b3JrYmVuY2ggbmF2aWdhdGlvbiBpbnN0cnVjdGlvbnMuXG4gICAgICBleHRyYXMgPSBjcmVhdGVOYXZpZ2F0aW9uRXh0cmFzKG5ld0xheW91dCwgZXh0cmFzKTtcblxuICAgICAgLy8gQ3JlYXRlIHRoZSBuZXcgVVJMIHRyZWUuXG4gICAgICBjb25zdCBjb21tYW5kczogQ29tbWFuZHMgPSBjb21wdXRlTmF2aWdhdGlvbkNvbW1hbmRzKGN1cnJlbnRMYXlvdXQudmlld091dGxldHMoKSwgbmV3TGF5b3V0LnZpZXdPdXRsZXRzKCkpO1xuICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlci5jcmVhdGVVcmxUcmVlKGNvbW1hbmRzLCBleHRyYXMpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY2lkZXMgaWYgZ2l2ZW4gdmlldyBjYW4gYmUgY2xvc2VkLCBpbnZva2luZyBgQ2FuQ2xvc2VgIGd1YXJkIGlmIGltcGxlbWVudGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjYW5DbG9zZVZpZXcodmlld1VpZDogVVVJRCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLl93b3JrYmVuY2hWaWV3UmVnaXN0cnkudmlld3MuZmluZCh2aWV3ID0+IHZpZXcudWlkID09PSB2aWV3VWlkKTtcbiAgICBpZiAoIXZpZXcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXZpZXcuY2xvc2FibGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBUZXN0IGlmIHRoZSB2aWV3IGltcGxlbWVudHMgYENhbkNsb3NlYCBndWFyZC5cbiAgICBjb25zdCBjb21wb25lbnQgPSB2aWV3LmdldENvbXBvbmVudCgpIGFzIENhbkNsb3NlIHwgbnVsbDtcbiAgICBpZiAodHlwZW9mIGNvbXBvbmVudD8uY2FuQ2xvc2UgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIEludm9rZSBgQ2FuQ2xvc2VgIGd1YXJkIHRvIGRlY2lkZSBpZiB0byBjbG9zZSB0aGUgdmlldy5cbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FuQ2xvc2UgPSBydW5JbkluamVjdGlvbkNvbnRleHQodmlldy5nZXRDb21wb25lbnRJbmplY3RvcigpISwgKCkgPT4gY29tcG9uZW50LmNhbkNsb3NlKCkpO1xuICAgICAgcmV0dXJuIGF3YWl0IGZpcnN0VmFsdWVGcm9tKE9ic2VydmFibGVzLmNvZXJjZShjYW5DbG9zZSksIHtkZWZhdWx0VmFsdWU6IHRydWV9KTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLl9sb2dnZXIuZXJyb3IoYFVuaGFuZGxlZCBlcnJvciB3aGlsZSBpbnZva2luZyAnQ2FuQ2xvc2UnIGd1YXJkIG9mIHZpZXcgJyR7dmlldy5pZH0nLmAsIGVycm9yKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb250ZXh0IG9mIHRoZSBjdXJyZW50IHdvcmtiZW5jaCBuYXZpZ2F0aW9uLCB3aGVuIGJlaW5nIGludm9rZWQgZHVyaW5nIG5hdmlnYXRpb24sIG9yIHRocm93cyBhbiBlcnJvciBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0Q3VycmVudE5hdmlnYXRpb25Db250ZXh0KCk6IFdvcmtiZW5jaE5hdmlnYXRpb25Db250ZXh0IHtcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnROYXZpZ2F0aW9uQ29udGV4dCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ1tOYXZpZ2F0ZUVycm9yXSBOYXZpZ2F0aW9uIGNvbnRleHQgbm90IGF2YWlsYWJsZSBiZWNhdXNlIG5vIG5hdmlnYXRpb24gaXMgaW4gcHJvZ3Jlc3MuJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50TmF2aWdhdGlvbkNvbnRleHQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBuYXZpZ2F0aW9uYWwgY29udGV4dHVhbCBkYXRhLlxuICAgKi9cbiAgcHVibGljIHNldEN1cnJlbnROYXZpZ2F0aW9uQ29udGV4dChjb250ZXh0OiBXb3JrYmVuY2hOYXZpZ2F0aW9uQ29udGV4dCB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl9jdXJyZW50TmF2aWdhdGlvbkNvbnRleHQgPSBjb250ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIEJsb2NrcyB1bnRpbCB0aGUgaW5pdGlhbCBsYXlvdXQgaXMgYXZhaWxhYmxlLCBpLmUuIGFmdGVyIGNvbXBsZXRpb24gb2YgQW5ndWxhcidzIGluaXRpYWwgbmF2aWdhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgd2FpdEZvckluaXRpYWxMYXlvdXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fd29ya2JlbmNoTGF5b3V0U2VydmljZS5sYXlvdXQkKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zaW5nbGVUYXNrRXhlY3V0b3IuZGVzdHJveSgpO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5hdmlnYXRpb24gdG8gbmF2aWdhdGUgdmlldyhzKSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgYXJyYXkgb2YgY29tbWFuZHMgYW5kIGV4dHJhcy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlTmF2aWdhdGlvbkZyb21Db21tYW5kcyhjb21tYW5kczogQ29tbWFuZHMsIGV4dHJhczogV29ya2JlbmNoTmF2aWdhdGlvbkV4dHJhcyk6IMm1TmF2aWdhdGVGbiB7XG4gIHJldHVybiAobGF5b3V0OiDJtVdvcmtiZW5jaExheW91dCk6IMm1V29ya2JlbmNoTGF5b3V0IHwgbnVsbCA9PiB7XG4gICAgaWYgKGV4dHJhcy5jbG9zZSkge1xuICAgICAgaWYgKGV4dHJhcy50YXJnZXQpIHtcbiAgICAgICAgaWYgKGNvbW1hbmRzLmxlbmd0aCB8fCBleHRyYXMuaGludCB8fCBleHRyYXMucGFydElkIHx8IGV4dHJhcy5yZWxhdGl2ZVRvKSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoJ1tOYXZpZ2F0ZUVycm9yXSBDb21tYW5kcywgaGludCwgcGFydCBvciByZWxhdGl2ZVRvIG11c3Qgbm90IGJlIHNldCB3aGVuIGNsb3NpbmcgYSB2aWV3IGJ5IGlkLicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsYXlvdXQucmVtb3ZlVmlldyhleHRyYXMudGFyZ2V0KTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHVybFNlZ21lbnRzID0gUm91dGVyVXRpbHMuY29tbWFuZHNUb1NlZ21lbnRzKGNvbW1hbmRzLCB7cmVsYXRpdmVUbzogZXh0cmFzLnJlbGF0aXZlVG99KTtcbiAgICAgIHJldHVybiBsYXlvdXRcbiAgICAgICAgLnZpZXdzKHtcbiAgICAgICAgICBwYXJ0SWQ6IGV4dHJhcy5wYXJ0SWQsXG4gICAgICAgICAgc2VnbWVudHM6IG5ldyBVcmxTZWdtZW50TWF0Y2hlcih1cmxTZWdtZW50cywge21hdGNoTWF0cml4UGFyYW1zOiBmYWxzZSwgbWF0Y2hXaWxkY2FyZFBhdGg6IHRydWV9KSxcbiAgICAgICAgICBuYXZpZ2F0aW9uSGludDogZXh0cmFzLmhpbnQgPz8gbnVsbCxcbiAgICAgICAgfSlcbiAgICAgICAgLnJlZHVjZSgobGF5b3V0LCB2aWV3KSA9PiBsYXlvdXQucmVtb3ZlVmlldyh2aWV3LmlkKSwgbGF5b3V0KTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBzd2l0Y2ggKGV4dHJhcy50YXJnZXQgPz8gJ2F1dG8nKSB7XG4gICAgICAgIGNhc2UgJ2JsYW5rJzoge1xuICAgICAgICAgIHJldHVybiBhZGRWaWV3KGxheW91dC5jb21wdXRlTmV4dFZpZXdJZCgpLCBsYXlvdXQpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2F1dG8nOiB7XG4gICAgICAgICAgY29uc3QgdXJsU2VnbWVudHMgPSBSb3V0ZXJVdGlscy5jb21tYW5kc1RvU2VnbWVudHMoY29tbWFuZHMsIHtyZWxhdGl2ZVRvOiBleHRyYXMucmVsYXRpdmVUb30pO1xuICAgICAgICAgIGNvbnN0IHZpZXdzID0gbGF5b3V0LnZpZXdzKHtcbiAgICAgICAgICAgIHBhcnRJZDogZXh0cmFzLnBhcnRJZCxcbiAgICAgICAgICAgIHNlZ21lbnRzOiBuZXcgVXJsU2VnbWVudE1hdGNoZXIodXJsU2VnbWVudHMsIHttYXRjaE1hdHJpeFBhcmFtczogZmFsc2UsIG1hdGNoV2lsZGNhcmRQYXRoOiBmYWxzZX0pLFxuICAgICAgICAgICAgbmF2aWdhdGlvbkhpbnQ6IGV4dHJhcy5oaW50ID8/IG51bGwsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKHZpZXdzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIHZpZXdzLnJlZHVjZSgobGF5b3V0LCB2aWV3KSA9PiB1cGRhdGVWaWV3KHZpZXcuaWQsIGxheW91dCksIGxheW91dCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGFkZFZpZXcobGF5b3V0LmNvbXB1dGVOZXh0Vmlld0lkKCksIGxheW91dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICBjb25zdCB2aWV3SWQgPSBleHRyYXMudGFyZ2V0ITtcbiAgICAgICAgICBpZiAobGF5b3V0Lmhhc1ZpZXcodmlld0lkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHVwZGF0ZVZpZXcodmlld0lkLCBsYXlvdXQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhZGRWaWV3KHZpZXdJZCwgbGF5b3V0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLyoqXG4gICAqIEFkZHMgdGhlIHNwZWNpZmllZCB2aWV3IHRvIHRoZSBsYXlvdXQuXG4gICAqL1xuICBmdW5jdGlvbiBhZGRWaWV3KHZpZXdJZDogc3RyaW5nLCBsYXlvdXQ6IMm1V29ya2JlbmNoTGF5b3V0KTogybVXb3JrYmVuY2hMYXlvdXQge1xuICAgIC8vIERlZmF1bHQgdG8gdGhlIGFjdGl2ZSBwYXJ0IGlmIG5vdCBzcGVjaWZpZWQgb3Igbm90IGluIHRoZSBsYXlvdXQsIHdpdGggdGhlIGFjdGl2ZSBwYXJ0IG9mIHRoZSBtYWluIGFyZWEgdGFraW5nIHByZWNlZGVuY2UuXG4gICAgY29uc3QgcGFydElkID0gKCgpOiBzdHJpbmcgPT4ge1xuICAgICAgaWYgKGV4dHJhcy5wYXJ0SWQgJiYgbGF5b3V0Lmhhc1BhcnQoZXh0cmFzLnBhcnRJZCkpIHtcbiAgICAgICAgcmV0dXJuIGV4dHJhcy5wYXJ0SWQ7XG4gICAgICB9XG4gICAgICByZXR1cm4gbGF5b3V0LmFjdGl2ZVBhcnQoe2dyaWQ6ICdtYWluQXJlYSd9KT8uaWQgPz8gbGF5b3V0LmFjdGl2ZVBhcnQoe2dyaWQ6ICd3b3JrYmVuY2gnfSkuaWQ7XG4gICAgfSkoKTtcblxuICAgIHJldHVybiBsYXlvdXRcbiAgICAgIC5hZGRWaWV3KHZpZXdJZCwge1xuICAgICAgICBwYXJ0SWQ6IHBhcnRJZCxcbiAgICAgICAgcG9zaXRpb246IGV4dHJhcy5wb3NpdGlvbiA/PyAnYWZ0ZXItYWN0aXZlLXZpZXcnLFxuICAgICAgICBhY3RpdmF0ZVZpZXc6IGV4dHJhcy5hY3RpdmF0ZSA/PyB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5uYXZpZ2F0ZVZpZXcodmlld0lkLCBjb21tYW5kcywge1xuICAgICAgICByZWxhdGl2ZVRvOiBleHRyYXMucmVsYXRpdmVUbyxcbiAgICAgICAgaGludDogZXh0cmFzLmhpbnQsXG4gICAgICAgIGNzc0NsYXNzOiBleHRyYXMuY3NzQ2xhc3MsXG4gICAgICAgIHN0YXRlOiBleHRyYXMuc3RhdGUsXG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBzcGVjaWZpZWQgdmlldy5cbiAgICovXG4gIGZ1bmN0aW9uIHVwZGF0ZVZpZXcodmlld0lkOiBzdHJpbmcsIGxheW91dDogybVXb3JrYmVuY2hMYXlvdXQpOiDJtVdvcmtiZW5jaExheW91dCB7XG4gICAgaWYgKGV4dHJhcy5hY3RpdmF0ZSA/PyB0cnVlKSB7XG4gICAgICBsYXlvdXQgPSBsYXlvdXQuYWN0aXZhdGVWaWV3KHZpZXdJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxheW91dC5uYXZpZ2F0ZVZpZXcodmlld0lkLCBjb21tYW5kcywge1xuICAgICAgcmVsYXRpdmVUbzogZXh0cmFzLnJlbGF0aXZlVG8sXG4gICAgICBoaW50OiBleHRyYXMuaGludCxcbiAgICAgIGNzc0NsYXNzOiBleHRyYXMuY3NzQ2xhc3MsXG4gICAgICBzdGF0ZTogZXh0cmFzLnN0YXRlLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlcyBuYXZpZ2F0aW9uIGV4dHJhcyB3aXRoIHdvcmtiZW5jaCBuYXZpZ2F0aW9uIGluc3RydWN0aW9ucy5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlTmF2aWdhdGlvbkV4dHJhcyhsYXlvdXQ6IMm1V29ya2JlbmNoTGF5b3V0LCBleHRyYXM/OiBPbWl0PE5hdmlnYXRpb25FeHRyYXMsICdyZWxhdGl2ZVRvJyB8ICdzdGF0ZSc+KTogTmF2aWdhdGlvbkV4dHJhcyB7XG4gIGNvbnN0IHt3b3JrYmVuY2hHcmlkLCBtYWluQXJlYUdyaWR9ID0gbGF5b3V0LnNlcmlhbGl6ZSgpO1xuXG4gIHJldHVybiB7XG4gICAgLi4uZXh0cmFzLFxuICAgIC8vIEluc3RydWN0IHRoZSBBbmd1bGFyIHJvdXRlciB0byBwcm9jZXNzIHRoZSBuYXZpZ2F0aW9uIGV2ZW4gaWYgdGhlIFVSTCBkb2VzIG5vdCBjaGFuZ2UsIGUuZy4sIHdoZW4gY2hhbmdpbmcgdGhlIHdvcmtiZW5jaCBncmlkIHdoaWNoIGlzIG5vdCBjb250YWluZWQgaW4gdGhlIFVSTC5cbiAgICBvblNhbWVVcmxOYXZpZ2F0aW9uOiAncmVsb2FkJyxcbiAgICAvLyBVbnNldCBgcmVsYXRpdmVUb2AgYmVjYXVzZSBjb21tYW5kcyBhcmUgYWxyZWFkeSBub3JtYWxpemVkIHRvIHRoZWlyIGFic29sdXRlIGZvcm0uXG4gICAgcmVsYXRpdmVUbzogbnVsbCxcbiAgICAvLyBBc3NvY2lhdGUgd29ya2JlbmNoLXNwZWNpZmljIHN0YXRlIHdpdGggdGhlIG5hdmlnYXRpb24uXG4gICAgc3RhdGU6IFdvcmtiZW5jaE5hdmlnYXRpb25hbFN0YXRlcy5jcmVhdGUoe1xuICAgICAgd29ya2JlbmNoR3JpZDogd29ya2JlbmNoR3JpZCxcbiAgICAgIG1heGltaXplZDogbGF5b3V0Lm1heGltaXplZCxcbiAgICAgIHZpZXdTdGF0ZXM6IGxheW91dC52aWV3U3RhdGVzKCksXG4gICAgfSksXG4gICAgLy8gQWRkIHRoZSBtYWluIGFyZWEgYXMgcXVlcnkgcGFyYW1ldGVyLlxuICAgIHF1ZXJ5UGFyYW1zOiB7Li4uZXh0cmFzPy5xdWVyeVBhcmFtcywgW01BSU5fQVJFQV9MQVlPVVRfUVVFUllfUEFSQU1dOiBtYWluQXJlYUdyaWR9LFxuICAgIC8vIE1lcmdlIHdpdGggZXhpc3RpbmcgcXVlcnkgcGFyYW1zIHVubGVzcyBzcGVjaWZpZWQgYW4gZXhwbGljaXQgc3RyYXRlZ3ksIGUuZy4sIGZvciBtaWdyYXRpbmcgYW4gb3V0ZGF0ZWQgbGF5b3V0IFVSTC5cbiAgICAvLyBOb3RlIHRoYXQgYG51bGxgIGlzIGEgdmFsaWQgc3RyYXRlZ3kgZm9yIGNsZWFyaW5nIGV4aXN0aW5nIHF1ZXJ5IHBhcmFtcywgc28gZG8gbm90IHVzZSB0aGUgbnVsbGlzaCBjb2FsZXNjaW5nIG9wZXJhdG9yICg/PykuXG4gICAgcXVlcnlQYXJhbXNIYW5kbGluZzogRGVmaW5lZC5vckVsc2UoZXh0cmFzPy5xdWVyeVBhcmFtc0hhbmRsaW5nLCAnbWVyZ2UnKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDb21wdXRlcyBjb21tYW5kcyB0aGF0IGNhbiBiZSBwYXNzZWQgdG8gdGhlIEFuZ3VsYXIgcm91dGVyIHRvIG5hdmlnYXRlIHZpZXcgb3V0bGV0cyBhbmQgdG8gcmVtb3ZlIHZpZXcgb3V0bGV0cyBvZiByZW1vdmVkIHZpZXdzLlxuICovXG5mdW5jdGlvbiBjb21wdXRlTmF2aWdhdGlvbkNvbW1hbmRzKHByZXZpb3VzVmlld091dGxldHM6IFZpZXdPdXRsZXRzLCBuZXh0Vmlld091dGxldHM6IFZpZXdPdXRsZXRzKTogW3tvdXRsZXRzOiB7W291dGxldDogVmlld0lkXTogQ29tbWFuZHMgfCBudWxsfX1dIHwgW10ge1xuICBjb25zdCBwcmV2aW91c1ZpZXdPdXRsZXRNYXAgPSBuZXcgTWFwPFZpZXdJZCwgVXJsU2VnbWVudFtdPihPYmplY3RzLmVudHJpZXMocHJldmlvdXNWaWV3T3V0bGV0cykpO1xuICBjb25zdCBuZXh0Vmlld091dGxldE1hcCA9IG5ldyBNYXA8Vmlld0lkLCBVcmxTZWdtZW50W10+KE9iamVjdHMuZW50cmllcyhuZXh0Vmlld091dGxldHMpKTtcblxuICBjb25zdCBjb21tYW5kcyA9IG5ldyBNYXA8Vmlld0lkLCBDb21tYW5kcyB8IG51bGw+KCk7XG4gIGNvbnN0IHZpZXdJZHMgPSBuZXcgU2V0PFZpZXdJZD4oWy4uLnByZXZpb3VzVmlld091dGxldE1hcC5rZXlzKCksIC4uLm5leHRWaWV3T3V0bGV0TWFwLmtleXMoKV0pO1xuXG4gIHZpZXdJZHMuZm9yRWFjaCh2aWV3SWQgPT4ge1xuICAgIC8vIFRlc3QgaWYgdGhlIHZpZXcgd2FzIGFkZGVkIHRvIHRoZSBsYXlvdXQuXG4gICAgaWYgKCFwcmV2aW91c1ZpZXdPdXRsZXRNYXAuaGFzKHZpZXdJZCkpIHtcbiAgICAgIGNvbW1hbmRzLnNldCh2aWV3SWQsIFJvdXRlclV0aWxzLnNlZ21lbnRzVG9Db21tYW5kcyhuZXh0Vmlld091dGxldE1hcC5nZXQodmlld0lkKSEpKTtcbiAgICB9XG4gICAgLy8gVGVzdCBpZiB0aGUgdmlldyB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBsYXlvdXQuXG4gICAgZWxzZSBpZiAoIW5leHRWaWV3T3V0bGV0TWFwLmhhcyh2aWV3SWQpKSB7XG4gICAgICBjb21tYW5kcy5zZXQodmlld0lkLCBudWxsKTtcbiAgICB9XG4gICAgLy8gVGVzdCBpZiB0aGUgdmlldyB3YXMgdXBkYXRlZC5cbiAgICBlbHNlIGlmICghbmV3IFVybFNlZ21lbnRNYXRjaGVyKHByZXZpb3VzVmlld091dGxldE1hcC5nZXQodmlld0lkKSEsIHttYXRjaE1hdHJpeFBhcmFtczogdHJ1ZSwgbWF0Y2hXaWxkY2FyZFBhdGg6IGZhbHNlfSkubWF0Y2hlcyhuZXh0Vmlld091dGxldE1hcC5nZXQodmlld0lkKSEpKSB7XG4gICAgICBjb21tYW5kcy5zZXQodmlld0lkLCBSb3V0ZXJVdGlscy5zZWdtZW50c1RvQ29tbWFuZHMobmV4dFZpZXdPdXRsZXRNYXAuZ2V0KHZpZXdJZCkhKSk7XG4gICAgfVxuICB9KTtcblxuICAvLyBBZGQgdmlldyBjb21tYW5kcyB0byB0aGUgJ291dGxldHMnIHByb3BlcnR5IHRvIGJlIGludGVycHJldGVkIGJ5IHRoZSBBbmd1bGFyIHJvdXRlci5cbiAgcmV0dXJuIGNvbW1hbmRzLnNpemUgPyBbe291dGxldHM6IE9iamVjdC5mcm9tRW50cmllcyhjb21tYW5kcyl9XSA6IFtdO1xufVxuXG4vKipcbiAqIEBpbmhlcml0RG9jXG4gKiBAc2VlIE5hdmlnYXRlRm5cbiAqL1xuZXhwb3J0IHR5cGUgybVOYXZpZ2F0ZUZuID0gKGxheW91dDogybVXb3JrYmVuY2hMYXlvdXQpID0+IFByb21pc2U8ybVXb3JrYmVuY2hMYXlvdXQgfCBudWxsPiB8IMm1V29ya2JlbmNoTGF5b3V0IHwgbnVsbDtcbiJdfQ==
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiybV3b3JrYmVuY2gtcm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9yb3V0aW5nL8m1d29ya2JlbmNoLXJvdXRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQVksTUFBTSxFQUFFLHFCQUFxQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFNUUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcxQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQU0vQyxrQkFBa0I7QUFFbEIsTUFBTSxPQUFPLGdCQUFnQjtJQVMzQixZQUFvQixPQUFlLEVBQ2YsdUJBQStDLEVBQy9DLHNCQUE2QyxFQUM3QyxTQUFtQixFQUNuQixPQUFlLEVBQ2YsS0FBYTtRQUxiLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDZiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBQy9DLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFDN0MsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsVUFBSyxHQUFMLEtBQUss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QyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUNELGdDQUFnQzthQUMzQixJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFFLEVBQUUsRUFBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBRSxDQUFDLEVBQUUsQ0FBQztZQUNqSyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBRSxDQUFDLENBQUMsQ0FBQztRQUN2RixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCx1RkFBdUY7SUFDdkYsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDeEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyNCBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXIsIFVybFNlZ21lbnQsIFVybFRyZWV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1dvcmtiZW5jaFJvdXRlcn0gZnJvbSAnLi93b3JrYmVuY2gtcm91dGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtEZWZpbmVkLCBPYnNlcnZhYmxlc30gZnJvbSAnQHNjaW9uL3Rvb2xraXQvdXRpbCc7XG5pbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE5nWm9uZSwgcnVuSW5JbmplY3Rpb25Db250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7V29ya2JlbmNoTGF5b3V0U2VydmljZX0gZnJvbSAnLi4vbGF5b3V0L3dvcmtiZW5jaC1sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge01BSU5fQVJFQV9MQVlPVVRfUVVFUllfUEFSQU19IGZyb20gJy4uL3dvcmtiZW5jaC5jb25zdGFudHMnO1xuaW1wb3J0IHtTSU5HTEVfTkFWSUdBVElPTl9FWEVDVVRPUn0gZnJvbSAnLi4vZXhlY3V0b3Ivc2luZ2xlLXRhc2stZXhlY3V0b3InO1xuaW1wb3J0IHtmaXJzdFZhbHVlRnJvbX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1dvcmtiZW5jaE5hdmlnYXRpb25hbFN0YXRlc30gZnJvbSAnLi93b3JrYmVuY2gtbmF2aWdhdGlvbmFsLXN0YXRlcyc7XG5pbXBvcnQge8m1V29ya2JlbmNoTGF5b3V0fSBmcm9tICcuLi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7Um91dGVyVXRpbHN9IGZyb20gJy4vcm91dGVyLnV0aWwnO1xuaW1wb3J0IHtDb21tYW5kcywgVmlld091dGxldHMsIFdvcmtiZW5jaE5hdmlnYXRpb25Db250ZXh0LCBXb3JrYmVuY2hOYXZpZ2F0aW9uRXh0cmFzfSBmcm9tICcuL3JvdXRpbmcubW9kZWwnO1xuaW1wb3J0IHtWaWV3SWR9IGZyb20gJy4uL3ZpZXcvd29ya2JlbmNoLXZpZXcubW9kZWwnO1xuaW1wb3J0IHtVcmxTZWdtZW50TWF0Y2hlcn0gZnJvbSAnLi91cmwtc2VnbWVudC1tYXRjaGVyJztcbmltcG9ydCB7T2JqZWN0c30gZnJvbSAnLi4vY29tbW9uL29iamVjdHMudXRpbCc7XG5pbXBvcnQge1dvcmtiZW5jaFZpZXdSZWdpc3RyeX0gZnJvbSAnLi4vdmlldy93b3JrYmVuY2gtdmlldy5yZWdpc3RyeSc7XG5pbXBvcnQge0xvZ2dlcn0gZnJvbSAnLi4vbG9nZ2luZyc7XG5pbXBvcnQge0NhbkNsb3NlfSBmcm9tICcuLi93b3JrYmVuY2gubW9kZWwnO1xuaW1wb3J0IHtVVUlEfSBmcm9tICcuLi9jb21tb24vdXVpZC51dGlsJztcblxuLyoqIEBpbmhlcml0RG9jICovXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyDJtVdvcmtiZW5jaFJvdXRlciBpbXBsZW1lbnRzIFdvcmtiZW5jaFJvdXRlciB7XG5cbiAgcHJpdmF0ZSBfc2luZ2xlTmF2aWdhdGlvbkV4ZWN1dG9yID0gaW5qZWN0KFNJTkdMRV9OQVZJR0FUSU9OX0VYRUNVVE9SKTtcblxuICAvKipcbiAgICogSG9sZHMgdGhlIGN1cnJlbnQgbmF2aWdhdGlvbmFsIGNvbnRleHQgZHVyaW5nIGEgd29ya2JlbmNoIG5hdmlnYXRpb24sIG9yIGBudWxsYCBpZiBubyBuYXZpZ2F0aW9uIGlzIGluIHByb2dyZXNzLlxuICAgKi9cbiAgcHJpdmF0ZSBfY3VycmVudE5hdmlnYXRpb25Db250ZXh0OiBXb3JrYmVuY2hOYXZpZ2F0aW9uQ29udGV4dCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlOiBXb3JrYmVuY2hMYXlvdXRTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIF93b3JrYmVuY2hWaWV3UmVnaXN0cnk6IFdvcmtiZW5jaFZpZXdSZWdpc3RyeSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICBwcml2YXRlIF9sb2dnZXI6IExvZ2dlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfem9uZTogTmdab25lKSB7XG4gICAgLy8gSW5zdHJ1Y3QgdGhlIEFuZ3VsYXIgcm91dGVyIHRvIHByb2Nlc3MgbmF2aWdhdGlvbnMgdGhhdCBkbyBub3QgY2hhbmdlIHRoZSBjdXJyZW50IFVSTCwgaS5lLiwgd2hlbiBvbmx5IHVwZGF0aW5nIG5hdmlnYXRpb24gc3RhdGUuXG4gICAgLy8gRm9yIGV4YW1wbGUsIHRoZSB3b3JrYmVuY2ggZ3JpZCBpcyBwYXNzZWQgdG8gdGhlIG5hdmlnYXRpb24gYXMgc3RhdGUsIG5vdCBhcyBhIHF1ZXJ5IHBhcmFtZXRlci4gV2l0aG91dCB0aGlzIGZsYWcgc2V0LCBjaGFuZ2VzIHRvXG4gICAgLy8gdGhlIHdvcmtiZW5jaCBncmlkIHdvdWxkIG5vdCBiZSBhZGRlZCB0byB0aGUgYnJvd3NpbmcgaGlzdG9yeSBzdGFjay5cbiAgICAvLyBBbHRob3VnaCB0aGUgYG9uU2FtZVVybE5hdmlnYXRpb25gIGZsYWcgY2FuIGJlIHNldCBwZXIgbmF2aWdhdGlvbiB2aWEgdGhlIG5hdmlnYXRpb24gZXh0cmFzLCB0aGlzIGlzIG5vdCBzdWZmaWNpZW50IGJlY2F1c2UgdGhlXG4gICAgLy8gQW5ndWxhciByb3V0ZXIgaWdub3JlcyBpdCB3aGVuIG5hdmlnYXRpbmcgYmFjayBhbmQgZm9ydGggaW4gdGhlIGJyb3dzaW5nIGhpc3RvcnkuXG4gICAgLy8gU2VlIEFuZ3VsYXIgcm91dGVyLnRzI3NldFVwTG9jYXRpb25DaGFuZ2VMaXN0ZW5lciBhbmQgcm91dGVyLnRzI25hdmlnYXRlVG9TeW5jV2l0aEJyb3dzZXJcbiAgICB0aGlzLl9yb3V0ZXIub25TYW1lVXJsTmF2aWdhdGlvbiA9ICdyZWxvYWQnO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHB1YmxpYyBuYXZpZ2F0ZShjb21tYW5kczogQ29tbWFuZHMsIGV4dHJhcz86IFdvcmtiZW5jaE5hdmlnYXRpb25FeHRyYXMpOiBQcm9taXNlPGJvb2xlYW4+O1xuICBwdWJsaWMgbmF2aWdhdGUobmF2aWdhdGVGbjogybVOYXZpZ2F0ZUZuLCBleHRyYXM/OiBPbWl0PE5hdmlnYXRpb25FeHRyYXMsICdyZWxhdGl2ZVRvJyB8ICdzdGF0ZSc+KTogUHJvbWlzZTxib29sZWFuPjtcbiAgcHVibGljIG5hdmlnYXRlKGNvbW1hbmRzT3JOYXZpZ2F0ZUZuOiBDb21tYW5kcyB8IMm1TmF2aWdhdGVGbiwgZXh0cmFzPzogV29ya2JlbmNoTmF2aWdhdGlvbkV4dHJhcyB8IE9taXQ8TmF2aWdhdGlvbkV4dHJhcywgJ3JlbGF0aXZlVG8nIHwgJ3N0YXRlJz4pOiBQcm9taXNlPGJvb2xlYW4+O1xuICBwdWJsaWMgbmF2aWdhdGUoY29tbWFuZHNPck5hdmlnYXRlRm46IENvbW1hbmRzIHwgybVOYXZpZ2F0ZUZuLCBleHRyYXM/OiBXb3JrYmVuY2hOYXZpZ2F0aW9uRXh0cmFzIHwgT21pdDxOYXZpZ2F0aW9uRXh0cmFzLCAncmVsYXRpdmVUbycgfCAnc3RhdGUnPik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIC8vIEVuc3VyZSB0byBydW4gaW4gQW5ndWxhciB6b25lLlxuICAgIGlmICghTmdab25lLmlzSW5Bbmd1bGFyWm9uZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5uYXZpZ2F0ZShjb21tYW5kc09yTmF2aWdhdGVGbiwgZXh0cmFzKSk7XG4gICAgfVxuXG4gICAgY29uc3QgbmF2aWdhdGVGbiA9IHR5cGVvZiBjb21tYW5kc09yTmF2aWdhdGVGbiA9PT0gJ2Z1bmN0aW9uJyA/IGNvbW1hbmRzT3JOYXZpZ2F0ZUZuIDogY3JlYXRlTmF2aWdhdGlvbkZyb21Db21tYW5kcyhjb21tYW5kc09yTmF2aWdhdGVGbiwgZXh0cmFzID8/IHt9KTtcblxuICAgIC8vIFNlcmlhbGl6ZSBuYXZpZ2F0aW9uIHJlcXVlc3RzIHRvIHByZXZlbnQgcmFjZSBjb25kaXRpb25zIHdoZW4gbW9kaWZ5aW5nIHRoZSBjdXJyZW50bHkgYWN0aXZlIHdvcmtiZW5jaCBsYXlvdXQuXG4gICAgcmV0dXJuIHRoaXMuX3NpbmdsZU5hdmlnYXRpb25FeGVjdXRvci5zdWJtaXQoYXN5bmMgKCkgPT4ge1xuICAgICAgLy8gV2FpdCB1bnRpbCB0aGUgaW5pdGlhbCBsYXlvdXQgaXMgYXZhaWxhYmxlLCBpLmUuLCBhZnRlciBjb21wbGV0aW9uIG9mIEFuZ3VsYXIncyBpbml0aWFsIG5hdmlnYXRpb24uXG4gICAgICAvLyBPdGhlcndpc2UsIHRoaXMgbmF2aWdhdGlvbiB3b3VsZCBvdmVycmlkZSB0aGUgaW5pdGlhbCBsYXlvdXQgYXMgZ2l2ZW4gaW4gdGhlIFVSTC5cbiAgICAgIGlmICghdGhpcy5fd29ya2JlbmNoTGF5b3V0U2VydmljZS5sYXlvdXQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0Rm9ySW5pdGlhbExheW91dCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBMZXQgdGhlIG5hdmlnYXRvciBjb21wdXRlIHRoZSBuZXcgd29ya2JlbmNoIGxheW91dC5cbiAgICAgIGNvbnN0IGN1cnJlbnRMYXlvdXQgPSB0aGlzLl93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlLmxheW91dCE7XG4gICAgICBsZXQgbmV3TGF5b3V0OiDJtVdvcmtiZW5jaExheW91dCB8IG51bGwgPSBhd2FpdCBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5faW5qZWN0b3IsICgpID0+IG5hdmlnYXRlRm4oY3VycmVudExheW91dCkpIGFzIMm1V29ya2JlbmNoTGF5b3V0O1xuICAgICAgaWYgKCFuZXdMYXlvdXQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlbW92ZSB2aWV3cyBtYXJrZWQgZm9yIHJlbW92YWwsIGludm9raW5nIGBDYW5DbG9zZWAgZ3VhcmQgaWYgaW1wbGVtZW50ZWQuXG4gICAgICBuZXdMYXlvdXQgPSBhd2FpdCBuZXdMYXlvdXQucmVtb3ZlVmlld3NNYXJrZWRGb3JSZW1vdmFsKHZpZXdVaWQgPT4gdGhpcy5jYW5DbG9zZVZpZXcodmlld1VpZCkpO1xuXG4gICAgICAvLyBDcmVhdGUgZXh0cmFzIHdpdGggd29ya2JlbmNoIG5hdmlnYXRpb24gaW5zdHJ1Y3Rpb25zLlxuICAgICAgZXh0cmFzID0gY3JlYXRlTmF2aWdhdGlvbkV4dHJhcyhuZXdMYXlvdXQsIGV4dHJhcyk7XG5cbiAgICAgIC8vIENyZWF0ZSB0aGUgbmV3IFVSTCB0cmVlLlxuICAgICAgY29uc3QgY29tbWFuZHM6IENvbW1hbmRzID0gY29tcHV0ZU5hdmlnYXRpb25Db21tYW5kcyhjdXJyZW50TGF5b3V0LnZpZXdPdXRsZXRzKCksIG5ld0xheW91dC52aWV3T3V0bGV0cygpKTtcbiAgICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLl9yb3V0ZXIuY3JlYXRlVXJsVHJlZShjb21tYW5kcywgZXh0cmFzKTtcblxuICAgICAgLy8gUGVyZm9ybSB0aGUgbmF2aWdhdGlvbi5cbiAgICAgIGlmICghKGF3YWl0IHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybFRyZWUsIGV4dHJhcykpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gQmxvY2sgc3Vic2VxdWVudCBuYXZpZ2F0aW9uKHMpIHVudGlsIEFuZ3VsYXIgaGFzIGZsdXNoZWQgdGhlIGNoYW5nZWQgbGF5b3V0IHRvIHRoZSBET00uXG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLl96b25lLm9uU3RhYmxlKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIGNoYW5nZXMgdG8gdGhlIGN1cnJlbnQgd29ya2JlbmNoIGxheW91dC5cbiAgICpcbiAgICogVW5saWtlIHtAbGluayBuYXZpZ2F0ZX0sIGRvZXMgbm90IHBlcmZvcm0gdGhlIG5hdmlnYXRpb24gYnV0IHJldHVybnMgdGhlIFVSTCB0cmVlIGluc3RlYWQuXG4gICAqXG4gICAqIFRoZSByb3V0ZXIgd2lsbCBpbnZva2UgdGhlIGNhbGxiYWNrIGFuZCBwYXNzIHRoZSBjdXJyZW50IGxheW91dCBmb3IgbW9kaWZpY2F0aW9uLiBUaGUgY2FsbGJhY2sgY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuXG4gICAqXG4gICAqIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBhZGRzIGEgcGFydCB0byB0aGUgbGVmdCBvZiB0aGUgbWFpbiBhcmVhLCBpbnNlcnRzIGEgdmlldyBhbmQgbmF2aWdhdGVzIGl0LlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBpbmplY3QoV29ya2JlbmNoUm91dGVyKS5jcmVhdGVVcmxUcmVlKGxheW91dCA9PiBsYXlvdXRcbiAgICogICAuYWRkUGFydCgnbGVmdCcsIHtyZWxhdGl2ZVRvOiBNQUlOX0FSRUEsIGFsaWduOiAnbGVmdCd9KVxuICAgKiAgIC5hZGRWaWV3KCduYXZpZ2F0b3InLCB7cGFydElkOiAnbGVmdCd9KVxuICAgKiAgIC5uYXZpZ2F0ZVZpZXcoJ25hdmlnYXRvcicsIFsncGF0aC90by92aWV3J10pXG4gICAqICAgLmFjdGl2YXRlVmlldygnbmF2aWdhdG9yJyksXG4gICAqICk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gb25OYXZpZ2F0ZSAtIFNwZWNpZmllcyB0aGUgY2FsbGJhY2sgdG8gbW9kaWZ5IHRoZSBsYXlvdXQuXG4gICAqIEBwYXJhbSBleHRyYXMgLSBDb250cm9scyBob3cgdG8gcGVyZm9ybSB0aGUgbmF2aWdhdGlvbi5cbiAgICogQHNlZSBOYXZpZ2F0ZUZuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY3JlYXRlVXJsVHJlZShvbk5hdmlnYXRlOiAobGF5b3V0OiDJtVdvcmtiZW5jaExheW91dCkgPT4gUHJvbWlzZTzJtVdvcmtiZW5jaExheW91dCB8IG51bGw+IHwgybVXb3JrYmVuY2hMYXlvdXQgfCBudWxsLCBleHRyYXM/OiBPbWl0PE5hdmlnYXRpb25FeHRyYXMsICdyZWxhdGl2ZVRvJyB8ICdzdGF0ZSc+KTogUHJvbWlzZTxVcmxUcmVlIHwgbnVsbD4ge1xuICAgIC8vIEVuc3VyZSB0byBydW4gaW4gQW5ndWxhciB6b25lLlxuICAgIGlmICghTmdab25lLmlzSW5Bbmd1bGFyWm9uZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fem9uZS5ydW4oKCkgPT4gdGhpcy5jcmVhdGVVcmxUcmVlKG9uTmF2aWdhdGUsIGV4dHJhcykpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9zaW5nbGVOYXZpZ2F0aW9uRXhlY3V0b3Iuc3VibWl0KGFzeW5jICgpID0+IHtcbiAgICAgIC8vIFdhaXQgdW50aWwgdGhlIGluaXRpYWwgbGF5b3V0IGlzIGF2YWlsYWJsZSwgaS5lLiwgYWZ0ZXIgY29tcGxldGlvbiBvZiBBbmd1bGFyJ3MgaW5pdGlhbCBuYXZpZ2F0aW9uLlxuICAgICAgLy8gT3RoZXJ3aXNlLCB3b3VsZCBvdmVycmlkZSB0aGUgaW5pdGlhbCBsYXlvdXQgYXMgZ2l2ZW4gaW4gdGhlIFVSTC5cbiAgICAgIGlmICghdGhpcy5fd29ya2JlbmNoTGF5b3V0U2VydmljZS5sYXlvdXQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy53YWl0Rm9ySW5pdGlhbExheW91dCgpO1xuICAgICAgfVxuXG4gICAgICAvLyBMZXQgdGhlIG5hdmlnYXRvciBjb21wdXRlIHRoZSBuZXcgd29ya2JlbmNoIGxheW91dC5cbiAgICAgIGNvbnN0IGN1cnJlbnRMYXlvdXQgPSB0aGlzLl93b3JrYmVuY2hMYXlvdXRTZXJ2aWNlLmxheW91dCE7XG4gICAgICBsZXQgbmV3TGF5b3V0OiDJtVdvcmtiZW5jaExheW91dCB8IG51bGwgPSBhd2FpdCBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5faW5qZWN0b3IsICgpID0+IG9uTmF2aWdhdGUoY3VycmVudExheW91dCkpO1xuICAgICAgaWYgKCFuZXdMYXlvdXQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIC8vIFJlbW92ZSB2aWV3cyBtYXJrZWQgZm9yIHJlbW92YWwuXG4gICAgICBuZXdMYXlvdXQgPSBhd2FpdCBuZXdMYXlvdXQucmVtb3ZlVmlld3NNYXJrZWRGb3JSZW1vdmFsKCk7XG5cbiAgICAgIC8vIENyZWF0ZSBleHRyYXMgd2l0aCB3b3JrYmVuY2ggbmF2aWdhdGlvbiBpbnN0cnVjdGlvbnMuXG4gICAgICBleHRyYXMgPSBjcmVhdGVOYXZpZ2F0aW9uRXh0cmFzKG5ld0xheW91dCwgZXh0cmFzKTtcblxuICAgICAgLy8gQ3JlYXRlIHRoZSBuZXcgVVJMIHRyZWUuXG4gICAgICBjb25zdCBjb21tYW5kczogQ29tbWFuZHMgPSBjb21wdXRlTmF2aWdhdGlvbkNvbW1hbmRzKGN1cnJlbnRMYXlvdXQudmlld091dGxldHMoKSwgbmV3TGF5b3V0LnZpZXdPdXRsZXRzKCkpO1xuICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlci5jcmVhdGVVcmxUcmVlKGNvbW1hbmRzLCBleHRyYXMpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY2lkZXMgaWYgZ2l2ZW4gdmlldyBjYW4gYmUgY2xvc2VkLCBpbnZva2luZyBgQ2FuQ2xvc2VgIGd1YXJkIGlmIGltcGxlbWVudGVkLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBjYW5DbG9zZVZpZXcodmlld1VpZDogVVVJRCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHZpZXcgPSB0aGlzLl93b3JrYmVuY2hWaWV3UmVnaXN0cnkudmlld3MuZmluZCh2aWV3ID0+IHZpZXcudWlkID09PSB2aWV3VWlkKTtcbiAgICBpZiAoIXZpZXcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoIXZpZXcuY2xvc2FibGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBUZXN0IGlmIHRoZSB2aWV3IGltcGxlbWVudHMgYENhbkNsb3NlYCBndWFyZC5cbiAgICBjb25zdCBjb21wb25lbnQgPSB2aWV3LmdldENvbXBvbmVudCgpIGFzIENhbkNsb3NlIHwgbnVsbDtcbiAgICBpZiAodHlwZW9mIGNvbXBvbmVudD8uY2FuQ2xvc2UgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIC8vIEludm9rZSBgQ2FuQ2xvc2VgIGd1YXJkIHRvIGRlY2lkZSBpZiB0byBjbG9zZSB0aGUgdmlldy5cbiAgICB0cnkge1xuICAgICAgY29uc3QgY2FuQ2xvc2UgPSBydW5JbkluamVjdGlvbkNvbnRleHQodmlldy5nZXRDb21wb25lbnRJbmplY3RvcigpISwgKCkgPT4gY29tcG9uZW50LmNhbkNsb3NlKCkpO1xuICAgICAgcmV0dXJuIGF3YWl0IGZpcnN0VmFsdWVGcm9tKE9ic2VydmFibGVzLmNvZXJjZShjYW5DbG9zZSksIHtkZWZhdWx0VmFsdWU6IHRydWV9KTtcbiAgICB9XG4gICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLl9sb2dnZXIuZXJyb3IoYFVuaGFuZGxlZCBlcnJvciB3aGlsZSBpbnZva2luZyAnQ2FuQ2xvc2UnIGd1YXJkIG9mIHZpZXcgJyR7dmlldy5pZH0nLmAsIGVycm9yKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb250ZXh0IG9mIHRoZSBjdXJyZW50IHdvcmtiZW5jaCBuYXZpZ2F0aW9uLCB3aGVuIGJlaW5nIGludm9rZWQgZHVyaW5nIG5hdmlnYXRpb24sIG9yIHRocm93cyBhbiBlcnJvciBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0Q3VycmVudE5hdmlnYXRpb25Db250ZXh0KCk6IFdvcmtiZW5jaE5hdmlnYXRpb25Db250ZXh0IHtcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnROYXZpZ2F0aW9uQ29udGV4dCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ1tOYXZpZ2F0ZUVycm9yXSBOYXZpZ2F0aW9uIGNvbnRleHQgbm90IGF2YWlsYWJsZSBiZWNhdXNlIG5vIG5hdmlnYXRpb24gaXMgaW4gcHJvZ3Jlc3MuJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50TmF2aWdhdGlvbkNvbnRleHQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBuYXZpZ2F0aW9uYWwgY29udGV4dHVhbCBkYXRhLlxuICAgKi9cbiAgcHVibGljIHNldEN1cnJlbnROYXZpZ2F0aW9uQ29udGV4dChjb250ZXh0OiBXb3JrYmVuY2hOYXZpZ2F0aW9uQ29udGV4dCB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLl9jdXJyZW50TmF2aWdhdGlvbkNvbnRleHQgPSBjb250ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIEJsb2NrcyB1bnRpbCB0aGUgaW5pdGlhbCBsYXlvdXQgaXMgYXZhaWxhYmxlLCBpLmUuIGFmdGVyIGNvbXBsZXRpb24gb2YgQW5ndWxhcidzIGluaXRpYWwgbmF2aWdhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgd2FpdEZvckluaXRpYWxMYXlvdXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fd29ya2JlbmNoTGF5b3V0U2VydmljZS5sYXlvdXQkKTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBuYXZpZ2F0aW9uIHRvIG5hdmlnYXRlIHZpZXcocykgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGFycmF5IG9mIGNvbW1hbmRzIGFuZCBleHRyYXMuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZU5hdmlnYXRpb25Gcm9tQ29tbWFuZHMoY29tbWFuZHM6IENvbW1hbmRzLCBleHRyYXM6IFdvcmtiZW5jaE5hdmlnYXRpb25FeHRyYXMpOiDJtU5hdmlnYXRlRm4ge1xuICByZXR1cm4gKGxheW91dDogybVXb3JrYmVuY2hMYXlvdXQpOiDJtVdvcmtiZW5jaExheW91dCB8IG51bGwgPT4ge1xuICAgIGlmIChleHRyYXMuY2xvc2UpIHtcbiAgICAgIGlmIChleHRyYXMudGFyZ2V0KSB7XG4gICAgICAgIGlmIChjb21tYW5kcy5sZW5ndGggfHwgZXh0cmFzLmhpbnQgfHwgZXh0cmFzLnBhcnRJZCB8fCBleHRyYXMucmVsYXRpdmVUbykge1xuICAgICAgICAgIHRocm93IEVycm9yKCdbTmF2aWdhdGVFcnJvcl0gQ29tbWFuZHMsIGhpbnQsIHBhcnQgb3IgcmVsYXRpdmVUbyBtdXN0IG5vdCBiZSBzZXQgd2hlbiBjbG9zaW5nIGEgdmlldyBieSBpZC4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGF5b3V0LnJlbW92ZVZpZXcoZXh0cmFzLnRhcmdldCk7XG4gICAgICB9XG4gICAgICBjb25zdCB1cmxTZWdtZW50cyA9IFJvdXRlclV0aWxzLmNvbW1hbmRzVG9TZWdtZW50cyhjb21tYW5kcywge3JlbGF0aXZlVG86IGV4dHJhcy5yZWxhdGl2ZVRvfSk7XG4gICAgICByZXR1cm4gbGF5b3V0XG4gICAgICAgIC52aWV3cyh7XG4gICAgICAgICAgcGFydElkOiBleHRyYXMucGFydElkLFxuICAgICAgICAgIHNlZ21lbnRzOiBuZXcgVXJsU2VnbWVudE1hdGNoZXIodXJsU2VnbWVudHMsIHttYXRjaE1hdHJpeFBhcmFtczogZmFsc2UsIG1hdGNoV2lsZGNhcmRQYXRoOiB0cnVlfSksXG4gICAgICAgICAgbmF2aWdhdGlvbkhpbnQ6IGV4dHJhcy5oaW50ID8/IG51bGwsXG4gICAgICAgIH0pXG4gICAgICAgIC5yZWR1Y2UoKGxheW91dCwgdmlldykgPT4gbGF5b3V0LnJlbW92ZVZpZXcodmlldy5pZCksIGxheW91dCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgc3dpdGNoIChleHRyYXMudGFyZ2V0ID8/ICdhdXRvJykge1xuICAgICAgICBjYXNlICdibGFuayc6IHtcbiAgICAgICAgICByZXR1cm4gYWRkVmlldyhsYXlvdXQuY29tcHV0ZU5leHRWaWV3SWQoKSwgbGF5b3V0KTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdhdXRvJzoge1xuICAgICAgICAgIGNvbnN0IHVybFNlZ21lbnRzID0gUm91dGVyVXRpbHMuY29tbWFuZHNUb1NlZ21lbnRzKGNvbW1hbmRzLCB7cmVsYXRpdmVUbzogZXh0cmFzLnJlbGF0aXZlVG99KTtcbiAgICAgICAgICBjb25zdCB2aWV3cyA9IGxheW91dC52aWV3cyh7XG4gICAgICAgICAgICBwYXJ0SWQ6IGV4dHJhcy5wYXJ0SWQsXG4gICAgICAgICAgICBzZWdtZW50czogbmV3IFVybFNlZ21lbnRNYXRjaGVyKHVybFNlZ21lbnRzLCB7bWF0Y2hNYXRyaXhQYXJhbXM6IGZhbHNlLCBtYXRjaFdpbGRjYXJkUGF0aDogZmFsc2V9KSxcbiAgICAgICAgICAgIG5hdmlnYXRpb25IaW50OiBleHRyYXMuaGludCA/PyBudWxsLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICh2aWV3cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB2aWV3cy5yZWR1Y2UoKGxheW91dCwgdmlldykgPT4gdXBkYXRlVmlldyh2aWV3LmlkLCBsYXlvdXQpLCBsYXlvdXQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhZGRWaWV3KGxheW91dC5jb21wdXRlTmV4dFZpZXdJZCgpLCBsYXlvdXQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgY29uc3Qgdmlld0lkID0gZXh0cmFzLnRhcmdldCE7XG4gICAgICAgICAgaWYgKGxheW91dC5oYXNWaWV3KHZpZXdJZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVWaWV3KHZpZXdJZCwgbGF5b3V0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gYWRkVmlldyh2aWV3SWQsIGxheW91dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSBzcGVjaWZpZWQgdmlldyB0byB0aGUgbGF5b3V0LlxuICAgKi9cbiAgZnVuY3Rpb24gYWRkVmlldyh2aWV3SWQ6IHN0cmluZywgbGF5b3V0OiDJtVdvcmtiZW5jaExheW91dCk6IMm1V29ya2JlbmNoTGF5b3V0IHtcbiAgICAvLyBEZWZhdWx0IHRvIHRoZSBhY3RpdmUgcGFydCBpZiBub3Qgc3BlY2lmaWVkIG9yIG5vdCBpbiB0aGUgbGF5b3V0LCB3aXRoIHRoZSBhY3RpdmUgcGFydCBvZiB0aGUgbWFpbiBhcmVhIHRha2luZyBwcmVjZWRlbmNlLlxuICAgIGNvbnN0IHBhcnRJZCA9ICgoKTogc3RyaW5nID0+IHtcbiAgICAgIGlmIChleHRyYXMucGFydElkICYmIGxheW91dC5oYXNQYXJ0KGV4dHJhcy5wYXJ0SWQpKSB7XG4gICAgICAgIHJldHVybiBleHRyYXMucGFydElkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGxheW91dC5hY3RpdmVQYXJ0KHtncmlkOiAnbWFpbkFyZWEnfSk/LmlkID8/IGxheW91dC5hY3RpdmVQYXJ0KHtncmlkOiAnd29ya2JlbmNoJ30pLmlkO1xuICAgIH0pKCk7XG5cbiAgICByZXR1cm4gbGF5b3V0XG4gICAgICAuYWRkVmlldyh2aWV3SWQsIHtcbiAgICAgICAgcGFydElkOiBwYXJ0SWQsXG4gICAgICAgIHBvc2l0aW9uOiBleHRyYXMucG9zaXRpb24gPz8gJ2FmdGVyLWFjdGl2ZS12aWV3JyxcbiAgICAgICAgYWN0aXZhdGVWaWV3OiBleHRyYXMuYWN0aXZhdGUgPz8gdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAubmF2aWdhdGVWaWV3KHZpZXdJZCwgY29tbWFuZHMsIHtcbiAgICAgICAgcmVsYXRpdmVUbzogZXh0cmFzLnJlbGF0aXZlVG8sXG4gICAgICAgIGhpbnQ6IGV4dHJhcy5oaW50LFxuICAgICAgICBjc3NDbGFzczogZXh0cmFzLmNzc0NsYXNzLFxuICAgICAgICBzdGF0ZTogZXh0cmFzLnN0YXRlLFxuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgc3BlY2lmaWVkIHZpZXcuXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVWaWV3KHZpZXdJZDogc3RyaW5nLCBsYXlvdXQ6IMm1V29ya2JlbmNoTGF5b3V0KTogybVXb3JrYmVuY2hMYXlvdXQge1xuICAgIGlmIChleHRyYXMuYWN0aXZhdGUgPz8gdHJ1ZSkge1xuICAgICAgbGF5b3V0ID0gbGF5b3V0LmFjdGl2YXRlVmlldyh2aWV3SWQpO1xuICAgIH1cblxuICAgIHJldHVybiBsYXlvdXQubmF2aWdhdGVWaWV3KHZpZXdJZCwgY29tbWFuZHMsIHtcbiAgICAgIHJlbGF0aXZlVG86IGV4dHJhcy5yZWxhdGl2ZVRvLFxuICAgICAgaGludDogZXh0cmFzLmhpbnQsXG4gICAgICBjc3NDbGFzczogZXh0cmFzLmNzc0NsYXNzLFxuICAgICAgc3RhdGU6IGV4dHJhcy5zdGF0ZSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgbmF2aWdhdGlvbiBleHRyYXMgd2l0aCB3b3JrYmVuY2ggbmF2aWdhdGlvbiBpbnN0cnVjdGlvbnMuXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZU5hdmlnYXRpb25FeHRyYXMobGF5b3V0OiDJtVdvcmtiZW5jaExheW91dCwgZXh0cmFzPzogT21pdDxOYXZpZ2F0aW9uRXh0cmFzLCAncmVsYXRpdmVUbycgfCAnc3RhdGUnPik6IE5hdmlnYXRpb25FeHRyYXMge1xuICBjb25zdCB7d29ya2JlbmNoR3JpZCwgbWFpbkFyZWFHcmlkfSA9IGxheW91dC5zZXJpYWxpemUoKTtcblxuICByZXR1cm4ge1xuICAgIC4uLmV4dHJhcyxcbiAgICAvLyBJbnN0cnVjdCB0aGUgQW5ndWxhciByb3V0ZXIgdG8gcHJvY2VzcyB0aGUgbmF2aWdhdGlvbiBldmVuIGlmIHRoZSBVUkwgZG9lcyBub3QgY2hhbmdlLCBlLmcuLCB3aGVuIGNoYW5naW5nIHRoZSB3b3JrYmVuY2ggZ3JpZCB3aGljaCBpcyBub3QgY29udGFpbmVkIGluIHRoZSBVUkwuXG4gICAgb25TYW1lVXJsTmF2aWdhdGlvbjogJ3JlbG9hZCcsXG4gICAgLy8gVW5zZXQgYHJlbGF0aXZlVG9gIGJlY2F1c2UgY29tbWFuZHMgYXJlIGFscmVhZHkgbm9ybWFsaXplZCB0byB0aGVpciBhYnNvbHV0ZSBmb3JtLlxuICAgIHJlbGF0aXZlVG86IG51bGwsXG4gICAgLy8gQXNzb2NpYXRlIHdvcmtiZW5jaC1zcGVjaWZpYyBzdGF0ZSB3aXRoIHRoZSBuYXZpZ2F0aW9uLlxuICAgIHN0YXRlOiBXb3JrYmVuY2hOYXZpZ2F0aW9uYWxTdGF0ZXMuY3JlYXRlKHtcbiAgICAgIHdvcmtiZW5jaEdyaWQ6IHdvcmtiZW5jaEdyaWQsXG4gICAgICBtYXhpbWl6ZWQ6IGxheW91dC5tYXhpbWl6ZWQsXG4gICAgICB2aWV3U3RhdGVzOiBsYXlvdXQudmlld1N0YXRlcygpLFxuICAgIH0pLFxuICAgIC8vIEFkZCB0aGUgbWFpbiBhcmVhIGFzIHF1ZXJ5IHBhcmFtZXRlci5cbiAgICBxdWVyeVBhcmFtczogey4uLmV4dHJhcz8ucXVlcnlQYXJhbXMsIFtNQUlOX0FSRUFfTEFZT1VUX1FVRVJZX1BBUkFNXTogbWFpbkFyZWFHcmlkfSxcbiAgICAvLyBNZXJnZSB3aXRoIGV4aXN0aW5nIHF1ZXJ5IHBhcmFtcyB1bmxlc3Mgc3BlY2lmaWVkIGFuIGV4cGxpY2l0IHN0cmF0ZWd5LCBlLmcuLCBmb3IgbWlncmF0aW5nIGFuIG91dGRhdGVkIGxheW91dCBVUkwuXG4gICAgLy8gTm90ZSB0aGF0IGBudWxsYCBpcyBhIHZhbGlkIHN0cmF0ZWd5IGZvciBjbGVhcmluZyBleGlzdGluZyBxdWVyeSBwYXJhbXMsIHNvIGRvIG5vdCB1c2UgdGhlIG51bGxpc2ggY29hbGVzY2luZyBvcGVyYXRvciAoPz8pLlxuICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6IERlZmluZWQub3JFbHNlKGV4dHJhcz8ucXVlcnlQYXJhbXNIYW5kbGluZywgJ21lcmdlJyksXG4gIH07XG59XG5cbi8qKlxuICogQ29tcHV0ZXMgY29tbWFuZHMgdGhhdCBjYW4gYmUgcGFzc2VkIHRvIHRoZSBBbmd1bGFyIHJvdXRlciB0byBuYXZpZ2F0ZSB2aWV3IG91dGxldHMgYW5kIHRvIHJlbW92ZSB2aWV3IG91dGxldHMgb2YgcmVtb3ZlZCB2aWV3cy5cbiAqL1xuZnVuY3Rpb24gY29tcHV0ZU5hdmlnYXRpb25Db21tYW5kcyhwcmV2aW91c1ZpZXdPdXRsZXRzOiBWaWV3T3V0bGV0cywgbmV4dFZpZXdPdXRsZXRzOiBWaWV3T3V0bGV0cyk6IFt7b3V0bGV0czoge1tvdXRsZXQ6IFZpZXdJZF06IENvbW1hbmRzIHwgbnVsbH19XSB8IFtdIHtcbiAgY29uc3QgcHJldmlvdXNWaWV3T3V0bGV0TWFwID0gbmV3IE1hcDxWaWV3SWQsIFVybFNlZ21lbnRbXT4oT2JqZWN0cy5lbnRyaWVzKHByZXZpb3VzVmlld091dGxldHMpKTtcbiAgY29uc3QgbmV4dFZpZXdPdXRsZXRNYXAgPSBuZXcgTWFwPFZpZXdJZCwgVXJsU2VnbWVudFtdPihPYmplY3RzLmVudHJpZXMobmV4dFZpZXdPdXRsZXRzKSk7XG5cbiAgY29uc3QgY29tbWFuZHMgPSBuZXcgTWFwPFZpZXdJZCwgQ29tbWFuZHMgfCBudWxsPigpO1xuICBjb25zdCB2aWV3SWRzID0gbmV3IFNldDxWaWV3SWQ+KFsuLi5wcmV2aW91c1ZpZXdPdXRsZXRNYXAua2V5cygpLCAuLi5uZXh0Vmlld091dGxldE1hcC5rZXlzKCldKTtcblxuICB2aWV3SWRzLmZvckVhY2godmlld0lkID0+IHtcbiAgICAvLyBUZXN0IGlmIHRoZSB2aWV3IHdhcyBhZGRlZCB0byB0aGUgbGF5b3V0LlxuICAgIGlmICghcHJldmlvdXNWaWV3T3V0bGV0TWFwLmhhcyh2aWV3SWQpKSB7XG4gICAgICBjb21tYW5kcy5zZXQodmlld0lkLCBSb3V0ZXJVdGlscy5zZWdtZW50c1RvQ29tbWFuZHMobmV4dFZpZXdPdXRsZXRNYXAuZ2V0KHZpZXdJZCkhKSk7XG4gICAgfVxuICAgIC8vIFRlc3QgaWYgdGhlIHZpZXcgd2FzIHJlbW92ZWQgZnJvbSB0aGUgbGF5b3V0LlxuICAgIGVsc2UgaWYgKCFuZXh0Vmlld091dGxldE1hcC5oYXModmlld0lkKSkge1xuICAgICAgY29tbWFuZHMuc2V0KHZpZXdJZCwgbnVsbCk7XG4gICAgfVxuICAgIC8vIFRlc3QgaWYgdGhlIHZpZXcgd2FzIHVwZGF0ZWQuXG4gICAgZWxzZSBpZiAoIW5ldyBVcmxTZWdtZW50TWF0Y2hlcihwcmV2aW91c1ZpZXdPdXRsZXRNYXAuZ2V0KHZpZXdJZCkhLCB7bWF0Y2hNYXRyaXhQYXJhbXM6IHRydWUsIG1hdGNoV2lsZGNhcmRQYXRoOiBmYWxzZX0pLm1hdGNoZXMobmV4dFZpZXdPdXRsZXRNYXAuZ2V0KHZpZXdJZCkhKSkge1xuICAgICAgY29tbWFuZHMuc2V0KHZpZXdJZCwgUm91dGVyVXRpbHMuc2VnbWVudHNUb0NvbW1hbmRzKG5leHRWaWV3T3V0bGV0TWFwLmdldCh2aWV3SWQpISkpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gQWRkIHZpZXcgY29tbWFuZHMgdG8gdGhlICdvdXRsZXRzJyBwcm9wZXJ0eSB0byBiZSBpbnRlcnByZXRlZCBieSB0aGUgQW5ndWxhciByb3V0ZXIuXG4gIHJldHVybiBjb21tYW5kcy5zaXplID8gW3tvdXRsZXRzOiBPYmplY3QuZnJvbUVudHJpZXMoY29tbWFuZHMpfV0gOiBbXTtcbn1cblxuLyoqXG4gKiBAaW5oZXJpdERvY1xuICogQHNlZSBOYXZpZ2F0ZUZuXG4gKi9cbmV4cG9ydCB0eXBlIMm1TmF2aWdhdGVGbiA9IChsYXlvdXQ6IMm1V29ya2JlbmNoTGF5b3V0KSA9PiBQcm9taXNlPMm1V29ya2JlbmNoTGF5b3V0IHwgbnVsbD4gfCDJtVdvcmtiZW5jaExheW91dCB8IG51bGw7XG4iXX0=
|
|
@@ -14,10 +14,10 @@ import * as i0 from "@angular/core";
|
|
|
14
14
|
* Default splash displayed while starting the workbench.
|
|
15
15
|
*/
|
|
16
16
|
export class SplashComponent {
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SplashComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: SplashComponent, isStandalone: true, selector: "wb-splash", ngImport: i0, template: "<sci-throbber type=\"ellipsis\"></sci-throbber>\n", styles: [":host{display:grid;justify-content:center;margin-top:3em}:host>sci-throbber{--sci-throbber-size: 80px}\n"], dependencies: [{ kind: "component", type: SciThrobberComponent, selector: "sci-throbber", inputs: ["type"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
19
19
|
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
20
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SplashComponent, decorators: [{
|
|
21
21
|
type: Component,
|
|
22
22
|
args: [{ selector: 'wb-splash', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [SciThrobberComponent], template: "<sci-throbber type=\"ellipsis\"></sci-throbber>\n", styles: [":host{display:grid;justify-content:center;margin-top:3em}:host>sci-throbber{--sci-throbber-size: 80px}\n"] }]
|
|
23
23
|
}] });
|
|
@@ -93,4 +93,4 @@ export async function runWorkbenchInitializers(token, injector) {
|
|
|
93
93
|
return acc;
|
|
94
94
|
}, new Array()));
|
|
95
95
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWluaXRpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvc3RhcnR1cC93b3JrYmVuY2gtaW5pdGlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsY0FBYyxFQUFZLHFCQUFxQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5HOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBK0QsbUJBQW1CLENBQUMsQ0FBQztBQUV2STs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQStELHVCQUF1QixDQUFDLENBQUM7QUFFL0k7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLElBQUksY0FBYyxDQUErRCxvQ0FBb0MsQ0FBQyxDQUFDO0FBRXpLOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxJQUFJLGNBQWMsQ0FBK0QscUNBQXFDLENBQUMsQ0FBQztBQUUzSzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQStELHdCQUF3QixDQUFDLENBQUM7QUE0RGpKOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSx3QkFBd0IsQ0FBQyxLQUEwQixFQUFFLFFBQWtCO0lBQzNGLE1BQU0sWUFBWSxHQUFvRSxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLG1EQUFtRDtJQUMzTCxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRTtRQUN6QixPQUFPO0tBQ1I7SUFFRCwwQ0FBMEM7SUFDMUMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLEVBQUU7UUFDekQsSUFBSSxPQUFPLFdBQVcsS0FBSyxVQUFVLEVBQUU7WUFDckMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1NBQzFGO2FBQ0ksSUFBSSxPQUFPLFdBQVcsRUFBRSxJQUFJLEtBQUssVUFBVSxFQUFFO1lBQ2hELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN2RztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFvQixDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0Vudmlyb25tZW50SW5qZWN0b3IsIEluamVjdGlvblRva2VuLCBJbmplY3RvciwgcnVuSW5JbmplY3Rpb25Db250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBUaGUgU0NJT04gV29ya2JlbmNoIGRlZmluZXMgYSBudW1iZXIgb2YgaW5qZWN0aW9uIHRva2VucyAoYWxzbyBjYWxsZWQgREkgdG9rZW5zKSBhcyBob29rcyBpbnRvIHRoZSB3b3JrYmVuY2gncyBzdGFydHVwIHByb2Nlc3MuXG4gKiBIb29rcyBhcmUgY2FsbGVkIGF0IGRlZmluZWQgcG9pbnRzIGR1cmluZyBzdGFydHVwLCBlbmFibGluZyB0aGUgYXBwbGljYXRpb24ncyBjb250cm9sbGVkIGluaXRpYWxpemF0aW9uLlxuICpcbiAqIEluaXRpYWxpemVycyByZWdpc3RlcmVkIHVuZGVyIHRoaXMgREkgdG9rZW4gYXJlIGluamVjdGVkIGFuZCBleGVjdXRlZCBpbW1lZGlhdGVseSB3aGVuIGNhbGxpbmcge0BsaW5rIFdvcmtiZW5jaExhdW5jaGVyI2xhdW5jaH0uXG4gKiBBZnRlciBhbGwgaW5pdGlhbGl6ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIERJIHRva2VuIGhhdmUgY29tcGxldGVkLCB0aGUgd29ya2JlbmNoIHRyYW5zaXRpb25zIGludG8gdGhlIFwic3RhcnRlZFwiIHN0YXRlLlxuICpcbiAqIEFuIGluaXRpYWxpemVyIGNhbiBiZSBhbnkgb2JqZWN0IGFuZCBpcyB0byBiZSBwcm92aWRlZCBhcyBhIG11bHRpLXByb3ZpZGVyLiBJZiB0aGUgaW5pdGlhbGl6ZXIgaXMgYSBmdW5jdGlvbiBvciBpbnN0YW5jZSBvZlxuICoge0BsaW5rIFdvcmtiZW5jaEluaXRpYWxpemVyfSBhbmQgcmV0dXJucyBhIFByb21pc2UsIHRoZSB3b3JrYmVuY2ggd2FpdHMgZm9yIHRoZSBQcm9taXNlIHRvIGJlIHJlc29sdmVkIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggdGhlIHN0YXJ0dXAuXG4gKiBJbml0aWFsaXplcnMgY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuIEluaXRpYWxpemVycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgREkgdG9rZW4gbWF5IHJ1biBpbiBwYXJhbGxlbC5cbiAqL1xuZXhwb3J0IGNvbnN0IFdPUktCRU5DSF9TVEFSVFVQID0gbmV3IEluamVjdGlvblRva2VuPFdvcmtiZW5jaEluaXRpYWxpemVyIHwgKCgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+KSB8IG9iamVjdD4oJ1dPUktCRU5DSF9TVEFSVFVQJyk7XG5cbi8qKlxuICogVGhlIFNDSU9OIFdvcmtiZW5jaCBkZWZpbmVzIGEgbnVtYmVyIG9mIGluamVjdGlvbiB0b2tlbnMgKGFsc28gY2FsbGVkIERJIHRva2VucykgYXMgaG9va3MgaW50byB0aGUgd29ya2JlbmNoJ3Mgc3RhcnR1cCBwcm9jZXNzLlxuICogSG9va3MgYXJlIGNhbGxlZCBhdCBkZWZpbmVkIHBvaW50cyBkdXJpbmcgc3RhcnR1cCwgZW5hYmxpbmcgdGhlIGFwcGxpY2F0aW9uJ3MgY29udHJvbGxlZCBpbml0aWFsaXphdGlvbi5cbiAqXG4gKiBJbml0aWFsaXplcnMgcmVnaXN0ZXJlZCB1bmRlciB0aGlzIERJIHRva2VuIGFyZSBpbmplY3RlZCBhbmQgZXhlY3V0ZWQgaW1tZWRpYXRlbHkgd2hlbiBjYWxsaW5nIHtAbGluayBXb3JrYmVuY2hMYXVuY2hlciNsYXVuY2h9LFxuICogYnV0IGJlZm9yZSBydW5uaW5nIHdvcmtiZW5jaCBpbml0aWFsaXplcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSB7QGxpbmsgV09SS0JFTkNIX1NUQVJUVVB9IGluamVjdGlvbiB0b2tlbi5cbiAqXG4gKiBBbiBpbml0aWFsaXplciBjYW4gYmUgYW55IG9iamVjdCBhbmQgaXMgdG8gYmUgcHJvdmlkZWQgYXMgYSBtdWx0aS1wcm92aWRlci4gSWYgdGhlIGluaXRpYWxpemVyIGlzIGEgZnVuY3Rpb24gb3IgaW5zdGFuY2Ugb2ZcbiAqIHtAbGluayBXb3JrYmVuY2hJbml0aWFsaXplcn0gYW5kIHJldHVybnMgYSBQcm9taXNlLCB0aGUgd29ya2JlbmNoIHdhaXRzIGZvciB0aGUgUHJvbWlzZSB0byBiZSByZXNvbHZlZCBiZWZvcmUgcHJvY2VlZGluZyB3aXRoIHRoZSBzdGFydHVwLlxuICogSW5pdGlhbGl6ZXJzIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLiBJbml0aWFsaXplcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIERJIHRva2VuIG1heSBydW4gaW4gcGFyYWxsZWwuXG4gKi9cbmV4cG9ydCBjb25zdCBXT1JLQkVOQ0hfUFJFX1NUQVJUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48V29ya2JlbmNoSW5pdGlhbGl6ZXIgfCAoKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD4pIHwgb2JqZWN0PignV09SS0JFTkNIX1BSRV9TVEFSVFVQJyk7XG5cbi8qKlxuICogVGhlIFNDSU9OIFdvcmtiZW5jaCBkZWZpbmVzIGEgbnVtYmVyIG9mIGluamVjdGlvbiB0b2tlbnMgKGFsc28gY2FsbGVkIERJIHRva2VucykgYXMgaG9va3MgaW50byB0aGUgd29ya2JlbmNoJ3Mgc3RhcnR1cCBwcm9jZXNzLlxuICogSG9va3MgYXJlIGNhbGxlZCBhdCBkZWZpbmVkIHBvaW50cyBkdXJpbmcgc3RhcnR1cCwgZW5hYmxpbmcgdGhlIGFwcGxpY2F0aW9uJ3MgY29udHJvbGxlZCBpbml0aWFsaXphdGlvbi5cbiAqXG4gKiBJbml0aWFsaXplcnMgcmVnaXN0ZXJlZCB1bmRlciB0aGlzIERJIHRva2VuIGFyZSBpbmplY3RlZCBhbmQgZXhlY3V0ZWQgYmVmb3JlIHN0YXJ0aW5nIHRoZSBTQ0lPTiBNaWNyb2Zyb250ZW5kIFBsYXRmb3JtLlxuICogVHlwaWNhbGx5LCB5b3Ugd291bGQgY29uZmlndXJlIHRoZSBTQ0lPTiBNaWNyb2Zyb250ZW5kIFBsYXRmb3JtIGluIHRoaXMgbGlmZWN5Y2xlIGhvb2ssIGZvciBleGFtcGxlLCByZWdpc3RlciBpbnRlcmNlcHRvcnMgb3IgZGVjb3JhdG9ycy5cbiAqXG4gKiBUaGlzIGxpZmVjeWNsZSBob29rIGlzIG9ubHkgY2FsbGVkIGlmIG1pY3JvZnJvbnRlbmQgc3VwcG9ydCBpcyBlbmFibGVkLiBOb3RlIHRoYXQgeW91IGNhbm5vdCBpbnRlcmFjdCB3aXRoIHRoZSBtaWNyb2Zyb250ZW5kIHBsYXRmb3JtXG4gKiBpbiB0aGlzIGxpZmVjeWNsZSBob29rIGJlY2F1c2UgaXQgaGFzIG5vdCBiZWVuIHN0YXJ0ZWQgeWV0LlxuICpcbiAqIEFuIGluaXRpYWxpemVyIGNhbiBiZSBhbnkgb2JqZWN0IGFuZCBpcyB0byBiZSBwcm92aWRlZCBhcyBhIG11bHRpLXByb3ZpZGVyLiBJZiB0aGUgaW5pdGlhbGl6ZXIgaXMgYSBmdW5jdGlvbiBvciBpbnN0YW5jZSBvZlxuICoge0BsaW5rIFdvcmtiZW5jaEluaXRpYWxpemVyfSBhbmQgcmV0dXJucyBhIFByb21pc2UsIHRoZSB3b3JrYmVuY2ggd2FpdHMgZm9yIHRoZSBQcm9taXNlIHRvIGJlIHJlc29sdmVkIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggdGhlIHN0YXJ0dXAuXG4gKiBJbml0aWFsaXplcnMgY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuIEluaXRpYWxpemVycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgREkgdG9rZW4gbWF5IHJ1biBpbiBwYXJhbGxlbC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1JQ1JPRlJPTlRFTkRfUExBVEZPUk1fUFJFX1NUQVJUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48V29ya2JlbmNoSW5pdGlhbGl6ZXIgfCAoKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD4pIHwgb2JqZWN0PignTUlDUk9GUk9OVEVORF9QTEFURk9STV9QUkVfU1RBUlRVUCcpO1xuXG4vKipcbiAqIFRoZSBTQ0lPTiBXb3JrYmVuY2ggZGVmaW5lcyBhIG51bWJlciBvZiBpbmplY3Rpb24gdG9rZW5zIChhbHNvIGNhbGxlZCBESSB0b2tlbnMpIGFzIGhvb2tzIGludG8gdGhlIHdvcmtiZW5jaCdzIHN0YXJ0dXAgcHJvY2Vzcy5cbiAqIEhvb2tzIGFyZSBjYWxsZWQgYXQgZGVmaW5lZCBwb2ludHMgZHVyaW5nIHN0YXJ0dXAsIGVuYWJsaW5nIHRoZSBhcHBsaWNhdGlvbidzIGNvbnRyb2xsZWQgaW5pdGlhbGl6YXRpb24uXG4gKlxuICogSW5pdGlhbGl6ZXJzIHJlZ2lzdGVyZWQgdW5kZXIgdGhpcyBESSB0b2tlbiBhcmUgaW5qZWN0ZWQgYW5kIGV4ZWN1dGVkIGFmdGVyIHN0YXJ0ZWQgdGhlIFNDSU9OIE1pY3JvZnJvbnRlbmQgUGxhdGZvcm0uXG4gKiBBdCB0aGlzIHBvaW50LCB0aGUgYWN0aXZhdG9ycyBvZiB0aGUgbWljcm8gYXBwbGljYXRpb25zIGFyZSBub3QgeWV0IGluc3RhbGxlZC4gVHlwaWNhbGx5LCB5b3Ugd291bGQgaW5zdGFsbCBpbnRlbnQgYW5kIG1lc3NhZ2VcbiAqIGhhbmRsZXJzIGluIHRoaXMgbGlmZWN5Y2xlIGhvb2suXG4gKlxuICogVGhpcyBsaWZlY3ljbGUgaG9vayBpcyBvbmx5IGNhbGxlZCBpZiBtaWNyb2Zyb250ZW5kIHN1cHBvcnQgaXMgZW5hYmxlZC5cbiAqXG4gKiBBbiBpbml0aWFsaXplciBjYW4gYmUgYW55IG9iamVjdCBhbmQgaXMgdG8gYmUgcHJvdmlkZWQgYXMgYSBtdWx0aS1wcm92aWRlci4gSWYgdGhlIGluaXRpYWxpemVyIGlzIGEgZnVuY3Rpb24gb3IgaW5zdGFuY2Ugb2ZcbiAqIHtAbGluayBXb3JrYmVuY2hJbml0aWFsaXplcn0gYW5kIHJldHVybnMgYSBQcm9taXNlLCB0aGUgd29ya2JlbmNoIHdhaXRzIGZvciB0aGUgUHJvbWlzZSB0byBiZSByZXNvbHZlZCBiZWZvcmUgcHJvY2VlZGluZyB3aXRoIHRoZSBzdGFydHVwLlxuICogSW5pdGlhbGl6ZXJzIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLiBJbml0aWFsaXplcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIERJIHRva2VuIG1heSBydW4gaW4gcGFyYWxsZWwuXG4gKi9cbmV4cG9ydCBjb25zdCBNSUNST0ZST05URU5EX1BMQVRGT1JNX1BPU1RfU1RBUlRVUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxXb3JrYmVuY2hJbml0aWFsaXplciB8ICgoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPikgfCBvYmplY3Q+KCdNSUNST0ZST05URU5EX1BMQVRGT1JNX1BPU1RfU1RBUlRVUCcpO1xuXG4vKipcbiAqIFRoZSBTQ0lPTiBXb3JrYmVuY2ggZGVmaW5lcyBhIG51bWJlciBvZiBpbmplY3Rpb24gdG9rZW5zIChhbHNvIGNhbGxlZCBESSB0b2tlbnMpIGFzIGhvb2tzIGludG8gdGhlIHdvcmtiZW5jaCdzIHN0YXJ0dXAgcHJvY2Vzcy5cbiAqIEhvb2tzIGFyZSBjYWxsZWQgYXQgZGVmaW5lZCBwb2ludHMgZHVyaW5nIHN0YXJ0dXAsIGVuYWJsaW5nIHRoZSBhcHBsaWNhdGlvbidzIGNvbnRyb2xsZWQgaW5pdGlhbGl6YXRpb24uXG4gKlxuICogSW5pdGlhbGl6ZXJzIHJlZ2lzdGVyZWQgdW5kZXIgdGhpcyBESSB0b2tlbiBhcmUgaW5qZWN0ZWQgYW5kIGV4ZWN1dGVkIGp1c3QgYmVmb3JlIHRoZSB7QGxpbmsgV29ya2JlbmNoTGF1bmNoZXJ9IGNvbXBsZXRlcyB0aGUgd29ya2JlbmNoXG4gKiBzdGFydHVwLCB0aGF0IGlzLCBhZnRlciBhbGwgaW5pdGlhbGl6ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGUge0BsaW5rIFdPUktCRU5DSF9TVEFSVFVQfSBESSB0b2tlbiBoYXZlIGNvbXBsZXRlZCBpbml0aWFsaXphdGlvbi5cbiAqXG4gKiBBbiBpbml0aWFsaXplciBjYW4gYmUgYW55IG9iamVjdCBhbmQgaXMgdG8gYmUgcHJvdmlkZWQgYXMgYSBtdWx0aS1wcm92aWRlci4gSWYgdGhlIGluaXRpYWxpemVyIGlzIGEgZnVuY3Rpb24gb3IgaW5zdGFuY2Ugb2ZcbiAqIHtAbGluayBXb3JrYmVuY2hJbml0aWFsaXplcn0gYW5kIHJldHVybnMgYSBQcm9taXNlLCB0aGUgd29ya2JlbmNoIHdhaXRzIGZvciB0aGUgUHJvbWlzZSB0byBiZSByZXNvbHZlZCBiZWZvcmUgcHJvY2VlZGluZyB3aXRoIHRoZSBzdGFydHVwLlxuICogSW5pdGlhbGl6ZXJzIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLiBJbml0aWFsaXplcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIERJIHRva2VuIG1heSBydW4gaW4gcGFyYWxsZWwuXG4gKi9cbmV4cG9ydCBjb25zdCBXT1JLQkVOQ0hfUE9TVF9TVEFSVFVQID0gbmV3IEluamVjdGlvblRva2VuPFdvcmtiZW5jaEluaXRpYWxpemVyIHwgKCgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+KSB8IG9iamVjdD4oJ1dPUktCRU5DSF9QT1NUX1NUQVJUVVAnKTtcblxuLyoqXG4gKiBBbGxvd3MgaW5pdGlhbGl6aW5nIHRoZSBhcHBsaWNhdGlvbiBkdXJpbmcgd29ya2JlbmNoIHN0YXJ0dXAuXG4gKlxuICogVGhlIFNDSU9OIFdvcmtiZW5jaCBkZWZpbmVzIGEgbnVtYmVyIG9mIGluamVjdGlvbiB0b2tlbnMgKGFsc28gY2FsbGVkIERJIHRva2VucykgYXMgaG9va3MgaW50byB0aGUgd29ya2JlbmNoJ3Mgc3RhcnR1cCBwcm9jZXNzLlxuICogSG9va3MgYXJlIGNhbGxlZCBhdCBkZWZpbmVkIHBvaW50cyBkdXJpbmcgc3RhcnR1cCwgZW5hYmxpbmcgdGhlIGFwcGxpY2F0aW9uJ3MgY29udHJvbGxlZCBpbml0aWFsaXphdGlvbi5cbiAqXG4gKiBUaGUgYXBwbGljYXRpb24gY2FuIGFzc29jaWF0ZSBvbmUgb3IgbW9yZSBpbml0aWFsaXplcnMgd2l0aCBhbnkgb2YgdGhlc2UgREkgdG9rZW5zLiBBbiBpbml0aWFsaXplciBjYW4gYmUgYW55IG9iamVjdCBhbmQgaXMgdG8gYmVcbiAqIHByb3ZpZGVkIGFzIGEgbXVsdGktcHJvdmlkZXIuIElmIHRoZSBpbml0aWFsaXplciBpcyBhIGZ1bmN0aW9uIG9yIGluc3RhbmNlIG9mIHtAbGluayBXb3JrYmVuY2hJbml0aWFsaXplcn0sIHdoaWNoIGRlZmluZXMgYSBzaW5nbGVcbiAqIG1ldGhvZCwgYGluaXRgLCB0aGUgd29ya2JlbmNoIHdhaXRzIGZvciBpdHMgcmV0dXJuZWQgUHJvbWlzZSB0byByZXNvbHZlIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggdGhlIHN0YXJ0dXAuIEluaXRpYWxpemVycyBjYW4gY2FsbFxuICogYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuIEluaXRpYWxpemVycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgREkgdG9rZW4gbWF5IHJ1biBpbiBwYXJhbGxlbC5cbiAqXG4gKiBGb2xsb3dpbmcgREkgdG9rZW5zIGFyZSBhdmFpbGFibGUgYXMgaG9va3MgaW50byB0aGUgd29ya2JlbmNoJ3Mgc3RhcnR1cCBwcm9jZXNzLCBsaXN0ZWQgaW4gdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkgYXJlIGluamVjdGVkIGFuZFxuICogZXhlY3V0ZWQuXG4gKlxuICogLSB7QGxpbmsgV09SS0JFTkNIX1BSRV9TVEFSVFVQfVxuICogLSB7QGxpbmsgV09SS0JFTkNIX1NUQVJUVVB9XG4gKiAtIHtAbGluayBXT1JLQkVOQ0hfUE9TVF9TVEFSVFVQfVxuICogLSB7QGxpbmsgTUlDUk9GUk9OVEVORF9QTEFURk9STV9QUkVfU1RBUlRVUH1cbiAqIC0ge0BsaW5rIE1JQ1JPRlJPTlRFTkRfUExBVEZPUk1fUE9TVF9TVEFSVFVQfVxuICpcbiAqICMjIyBFeGFtcGxlIG9mIGhvdyB0byBhc3NvY2lhdGUgYW4gaW5pdGlhbGl6ZXIgd2l0aCB0aGUgREkgdG9rZW4ge0BsaW5rIE1JQ1JPRlJPTlRFTkRfUExBVEZPUk1fUE9TVF9TVEFSVFVQfS5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBATmdNb2R1bGUoe1xuICogICAuLi5cbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAge1xuICogICAgICAgcHJvdmlkZTogTUlDUk9GUk9OVEVORF9QTEFURk9STV9QT1NUX1NUQVJUVVAsXG4gKiAgICAgICBtdWx0aTogdHJ1ZSxcbiAqICAgICAgIHVzZUNsYXNzOiBBcHBJbml0aWFsaXplcixcbiAqICAgICB9XG4gKiAgIF1cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKlxuICogQEluamVjdGFibGUoKVxuICogZXhwb3J0IGNsYXNzIEFwcEluaXRpYWxpemVyIGltcGxlbWVudHMgV29ya2JlbmNoSW5pdGlhbGl6ZXIge1xuICpcbiAqICAgcHVibGljIGluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gKiAgICAgLi4uXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaEluaXRpYWxpemVyIHtcblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGR1cmluZyB0aGUgc3RhcnR1cCBvZiB0aGUgd29ya2JlbmNoLlxuICAgKlxuICAgKiBGb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQsIHJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uXG4gICAqIG9mIHRoZSBESSB0b2tlbiB1bmRlciB3aGljaCB0aGlzIGluaXRpYWxpemVyIGlzIHJlZ2lzdGVyZWQuIE5vdGUgdGhhdCBpbml0aWFsaXplcnNcbiAgICogcmVnaXN0ZXJlZCB1bmRlciB0aGUgc2FtZSBESSB0b2tlbiBtYXkgZXhlY3V0ZSBpbiBwYXJhbGxlbC5cbiAgICpcbiAgICogQHJldHVybiBBIFByb21pc2UgYmxvY2tpbmcgc3RhcnR1cCB1bnRpbCBpdCByZXNvbHZlcy5cbiAgICovXG4gIGluaXQoKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBSdW5zIHdvcmtiZW5jaCBpbml0aWFsaXplcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBESSB0b2tlbi4gSW5pdGlhbGl6ZXIgZnVuY3Rpb25zIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuV29ya2JlbmNoSW5pdGlhbGl6ZXJzKHRva2VuOiBJbmplY3Rpb25Ub2tlbjxhbnk+LCBpbmplY3RvcjogSW5qZWN0b3IpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgaW5pdGlhbGl6ZXJzOiBBcnJheTxXb3JrYmVuY2hJbml0aWFsaXplciB8IEZ1bmN0aW9uIHwgdW5kZWZpbmVkIHwgYW55PiB8IG51bGwgPSBpbmplY3Rvci5nZXQodG9rZW4sIHVuZGVmaW5lZCwge29wdGlvbmFsOiB0cnVlfSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICBpZiAoIWluaXRpYWxpemVycz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gSW52b2tlIGFuZCBhd2FpdCBpbml0aWFsaXplciBmdW5jdGlvbnMuXG4gIGF3YWl0IFByb21pc2UuYWxsKGluaXRpYWxpemVycy5yZWR1Y2UoKGFjYywgaW5pdGlhbGl6ZXIpID0+IHtcbiAgICBpZiAodHlwZW9mIGluaXRpYWxpemVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gYWNjLmNvbmNhdChydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IuZ2V0KEVudmlyb25tZW50SW5qZWN0b3IpLCBpbml0aWFsaXplcikpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgaW5pdGlhbGl6ZXI/LmluaXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBhY2MuY29uY2F0KHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRJbmplY3RvciksICgpID0+IGluaXRpYWxpemVyLmluaXQoKSkpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBuZXcgQXJyYXk8UHJvbWlzZTx1bmtub3duPj4oKSkpO1xufVxuIl19
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWluaXRpYWxpemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvc3RhcnR1cC93b3JrYmVuY2gtaW5pdGlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsY0FBYyxFQUFZLHFCQUFxQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRW5HOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBK0QsbUJBQW1CLENBQUMsQ0FBQztBQUV2STs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQStELHVCQUF1QixDQUFDLENBQUM7QUFFL0k7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLElBQUksY0FBYyxDQUErRCxvQ0FBb0MsQ0FBQyxDQUFDO0FBRXpLOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxJQUFJLGNBQWMsQ0FBK0QscUNBQXFDLENBQUMsQ0FBQztBQUUzSzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQStELHdCQUF3QixDQUFDLENBQUM7QUE0RGpKOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSx3QkFBd0IsQ0FBQyxLQUEwQixFQUFFLFFBQWtCO0lBQzNGLE1BQU0sWUFBWSxHQUFvRSxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLG1EQUFtRDtJQUMzTCxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzFCLE9BQU87SUFDVCxDQUFDO0lBRUQsMENBQTBDO0lBQzFDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFdBQVcsRUFBRSxFQUFFO1FBQ3pELElBQUksT0FBTyxXQUFXLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdEMsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzNGLENBQUM7YUFDSSxJQUFJLE9BQU8sV0FBVyxFQUFFLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNqRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEcsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxFQUFFLElBQUksS0FBSyxFQUFvQixDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIFN3aXNzIEZlZGVyYWwgUmFpbHdheXNcbiAqXG4gKiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlXG4gKiBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIDIuMFxuICogd2hpY2ggaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXG4gKlxuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEVQTC0yLjBcbiAqL1xuXG5pbXBvcnQge0Vudmlyb25tZW50SW5qZWN0b3IsIEluamVjdGlvblRva2VuLCBJbmplY3RvciwgcnVuSW5JbmplY3Rpb25Db250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBUaGUgU0NJT04gV29ya2JlbmNoIGRlZmluZXMgYSBudW1iZXIgb2YgaW5qZWN0aW9uIHRva2VucyAoYWxzbyBjYWxsZWQgREkgdG9rZW5zKSBhcyBob29rcyBpbnRvIHRoZSB3b3JrYmVuY2gncyBzdGFydHVwIHByb2Nlc3MuXG4gKiBIb29rcyBhcmUgY2FsbGVkIGF0IGRlZmluZWQgcG9pbnRzIGR1cmluZyBzdGFydHVwLCBlbmFibGluZyB0aGUgYXBwbGljYXRpb24ncyBjb250cm9sbGVkIGluaXRpYWxpemF0aW9uLlxuICpcbiAqIEluaXRpYWxpemVycyByZWdpc3RlcmVkIHVuZGVyIHRoaXMgREkgdG9rZW4gYXJlIGluamVjdGVkIGFuZCBleGVjdXRlZCBpbW1lZGlhdGVseSB3aGVuIGNhbGxpbmcge0BsaW5rIFdvcmtiZW5jaExhdW5jaGVyI2xhdW5jaH0uXG4gKiBBZnRlciBhbGwgaW5pdGlhbGl6ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIERJIHRva2VuIGhhdmUgY29tcGxldGVkLCB0aGUgd29ya2JlbmNoIHRyYW5zaXRpb25zIGludG8gdGhlIFwic3RhcnRlZFwiIHN0YXRlLlxuICpcbiAqIEFuIGluaXRpYWxpemVyIGNhbiBiZSBhbnkgb2JqZWN0IGFuZCBpcyB0byBiZSBwcm92aWRlZCBhcyBhIG11bHRpLXByb3ZpZGVyLiBJZiB0aGUgaW5pdGlhbGl6ZXIgaXMgYSBmdW5jdGlvbiBvciBpbnN0YW5jZSBvZlxuICoge0BsaW5rIFdvcmtiZW5jaEluaXRpYWxpemVyfSBhbmQgcmV0dXJucyBhIFByb21pc2UsIHRoZSB3b3JrYmVuY2ggd2FpdHMgZm9yIHRoZSBQcm9taXNlIHRvIGJlIHJlc29sdmVkIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggdGhlIHN0YXJ0dXAuXG4gKiBJbml0aWFsaXplcnMgY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuIEluaXRpYWxpemVycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgREkgdG9rZW4gbWF5IHJ1biBpbiBwYXJhbGxlbC5cbiAqL1xuZXhwb3J0IGNvbnN0IFdPUktCRU5DSF9TVEFSVFVQID0gbmV3IEluamVjdGlvblRva2VuPFdvcmtiZW5jaEluaXRpYWxpemVyIHwgKCgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+KSB8IG9iamVjdD4oJ1dPUktCRU5DSF9TVEFSVFVQJyk7XG5cbi8qKlxuICogVGhlIFNDSU9OIFdvcmtiZW5jaCBkZWZpbmVzIGEgbnVtYmVyIG9mIGluamVjdGlvbiB0b2tlbnMgKGFsc28gY2FsbGVkIERJIHRva2VucykgYXMgaG9va3MgaW50byB0aGUgd29ya2JlbmNoJ3Mgc3RhcnR1cCBwcm9jZXNzLlxuICogSG9va3MgYXJlIGNhbGxlZCBhdCBkZWZpbmVkIHBvaW50cyBkdXJpbmcgc3RhcnR1cCwgZW5hYmxpbmcgdGhlIGFwcGxpY2F0aW9uJ3MgY29udHJvbGxlZCBpbml0aWFsaXphdGlvbi5cbiAqXG4gKiBJbml0aWFsaXplcnMgcmVnaXN0ZXJlZCB1bmRlciB0aGlzIERJIHRva2VuIGFyZSBpbmplY3RlZCBhbmQgZXhlY3V0ZWQgaW1tZWRpYXRlbHkgd2hlbiBjYWxsaW5nIHtAbGluayBXb3JrYmVuY2hMYXVuY2hlciNsYXVuY2h9LFxuICogYnV0IGJlZm9yZSBydW5uaW5nIHdvcmtiZW5jaCBpbml0aWFsaXplcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSB7QGxpbmsgV09SS0JFTkNIX1NUQVJUVVB9IGluamVjdGlvbiB0b2tlbi5cbiAqXG4gKiBBbiBpbml0aWFsaXplciBjYW4gYmUgYW55IG9iamVjdCBhbmQgaXMgdG8gYmUgcHJvdmlkZWQgYXMgYSBtdWx0aS1wcm92aWRlci4gSWYgdGhlIGluaXRpYWxpemVyIGlzIGEgZnVuY3Rpb24gb3IgaW5zdGFuY2Ugb2ZcbiAqIHtAbGluayBXb3JrYmVuY2hJbml0aWFsaXplcn0gYW5kIHJldHVybnMgYSBQcm9taXNlLCB0aGUgd29ya2JlbmNoIHdhaXRzIGZvciB0aGUgUHJvbWlzZSB0byBiZSByZXNvbHZlZCBiZWZvcmUgcHJvY2VlZGluZyB3aXRoIHRoZSBzdGFydHVwLlxuICogSW5pdGlhbGl6ZXJzIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLiBJbml0aWFsaXplcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIERJIHRva2VuIG1heSBydW4gaW4gcGFyYWxsZWwuXG4gKi9cbmV4cG9ydCBjb25zdCBXT1JLQkVOQ0hfUFJFX1NUQVJUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48V29ya2JlbmNoSW5pdGlhbGl6ZXIgfCAoKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD4pIHwgb2JqZWN0PignV09SS0JFTkNIX1BSRV9TVEFSVFVQJyk7XG5cbi8qKlxuICogVGhlIFNDSU9OIFdvcmtiZW5jaCBkZWZpbmVzIGEgbnVtYmVyIG9mIGluamVjdGlvbiB0b2tlbnMgKGFsc28gY2FsbGVkIERJIHRva2VucykgYXMgaG9va3MgaW50byB0aGUgd29ya2JlbmNoJ3Mgc3RhcnR1cCBwcm9jZXNzLlxuICogSG9va3MgYXJlIGNhbGxlZCBhdCBkZWZpbmVkIHBvaW50cyBkdXJpbmcgc3RhcnR1cCwgZW5hYmxpbmcgdGhlIGFwcGxpY2F0aW9uJ3MgY29udHJvbGxlZCBpbml0aWFsaXphdGlvbi5cbiAqXG4gKiBJbml0aWFsaXplcnMgcmVnaXN0ZXJlZCB1bmRlciB0aGlzIERJIHRva2VuIGFyZSBpbmplY3RlZCBhbmQgZXhlY3V0ZWQgYmVmb3JlIHN0YXJ0aW5nIHRoZSBTQ0lPTiBNaWNyb2Zyb250ZW5kIFBsYXRmb3JtLlxuICogVHlwaWNhbGx5LCB5b3Ugd291bGQgY29uZmlndXJlIHRoZSBTQ0lPTiBNaWNyb2Zyb250ZW5kIFBsYXRmb3JtIGluIHRoaXMgbGlmZWN5Y2xlIGhvb2ssIGZvciBleGFtcGxlLCByZWdpc3RlciBpbnRlcmNlcHRvcnMgb3IgZGVjb3JhdG9ycy5cbiAqXG4gKiBUaGlzIGxpZmVjeWNsZSBob29rIGlzIG9ubHkgY2FsbGVkIGlmIG1pY3JvZnJvbnRlbmQgc3VwcG9ydCBpcyBlbmFibGVkLiBOb3RlIHRoYXQgeW91IGNhbm5vdCBpbnRlcmFjdCB3aXRoIHRoZSBtaWNyb2Zyb250ZW5kIHBsYXRmb3JtXG4gKiBpbiB0aGlzIGxpZmVjeWNsZSBob29rIGJlY2F1c2UgaXQgaGFzIG5vdCBiZWVuIHN0YXJ0ZWQgeWV0LlxuICpcbiAqIEFuIGluaXRpYWxpemVyIGNhbiBiZSBhbnkgb2JqZWN0IGFuZCBpcyB0byBiZSBwcm92aWRlZCBhcyBhIG11bHRpLXByb3ZpZGVyLiBJZiB0aGUgaW5pdGlhbGl6ZXIgaXMgYSBmdW5jdGlvbiBvciBpbnN0YW5jZSBvZlxuICoge0BsaW5rIFdvcmtiZW5jaEluaXRpYWxpemVyfSBhbmQgcmV0dXJucyBhIFByb21pc2UsIHRoZSB3b3JrYmVuY2ggd2FpdHMgZm9yIHRoZSBQcm9taXNlIHRvIGJlIHJlc29sdmVkIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggdGhlIHN0YXJ0dXAuXG4gKiBJbml0aWFsaXplcnMgY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuIEluaXRpYWxpemVycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgREkgdG9rZW4gbWF5IHJ1biBpbiBwYXJhbGxlbC5cbiAqL1xuZXhwb3J0IGNvbnN0IE1JQ1JPRlJPTlRFTkRfUExBVEZPUk1fUFJFX1NUQVJUVVAgPSBuZXcgSW5qZWN0aW9uVG9rZW48V29ya2JlbmNoSW5pdGlhbGl6ZXIgfCAoKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD4pIHwgb2JqZWN0PignTUlDUk9GUk9OVEVORF9QTEFURk9STV9QUkVfU1RBUlRVUCcpO1xuXG4vKipcbiAqIFRoZSBTQ0lPTiBXb3JrYmVuY2ggZGVmaW5lcyBhIG51bWJlciBvZiBpbmplY3Rpb24gdG9rZW5zIChhbHNvIGNhbGxlZCBESSB0b2tlbnMpIGFzIGhvb2tzIGludG8gdGhlIHdvcmtiZW5jaCdzIHN0YXJ0dXAgcHJvY2Vzcy5cbiAqIEhvb2tzIGFyZSBjYWxsZWQgYXQgZGVmaW5lZCBwb2ludHMgZHVyaW5nIHN0YXJ0dXAsIGVuYWJsaW5nIHRoZSBhcHBsaWNhdGlvbidzIGNvbnRyb2xsZWQgaW5pdGlhbGl6YXRpb24uXG4gKlxuICogSW5pdGlhbGl6ZXJzIHJlZ2lzdGVyZWQgdW5kZXIgdGhpcyBESSB0b2tlbiBhcmUgaW5qZWN0ZWQgYW5kIGV4ZWN1dGVkIGFmdGVyIHN0YXJ0ZWQgdGhlIFNDSU9OIE1pY3JvZnJvbnRlbmQgUGxhdGZvcm0uXG4gKiBBdCB0aGlzIHBvaW50LCB0aGUgYWN0aXZhdG9ycyBvZiB0aGUgbWljcm8gYXBwbGljYXRpb25zIGFyZSBub3QgeWV0IGluc3RhbGxlZC4gVHlwaWNhbGx5LCB5b3Ugd291bGQgaW5zdGFsbCBpbnRlbnQgYW5kIG1lc3NhZ2VcbiAqIGhhbmRsZXJzIGluIHRoaXMgbGlmZWN5Y2xlIGhvb2suXG4gKlxuICogVGhpcyBsaWZlY3ljbGUgaG9vayBpcyBvbmx5IGNhbGxlZCBpZiBtaWNyb2Zyb250ZW5kIHN1cHBvcnQgaXMgZW5hYmxlZC5cbiAqXG4gKiBBbiBpbml0aWFsaXplciBjYW4gYmUgYW55IG9iamVjdCBhbmQgaXMgdG8gYmUgcHJvdmlkZWQgYXMgYSBtdWx0aS1wcm92aWRlci4gSWYgdGhlIGluaXRpYWxpemVyIGlzIGEgZnVuY3Rpb24gb3IgaW5zdGFuY2Ugb2ZcbiAqIHtAbGluayBXb3JrYmVuY2hJbml0aWFsaXplcn0gYW5kIHJldHVybnMgYSBQcm9taXNlLCB0aGUgd29ya2JlbmNoIHdhaXRzIGZvciB0aGUgUHJvbWlzZSB0byBiZSByZXNvbHZlZCBiZWZvcmUgcHJvY2VlZGluZyB3aXRoIHRoZSBzdGFydHVwLlxuICogSW5pdGlhbGl6ZXJzIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLiBJbml0aWFsaXplcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIERJIHRva2VuIG1heSBydW4gaW4gcGFyYWxsZWwuXG4gKi9cbmV4cG9ydCBjb25zdCBNSUNST0ZST05URU5EX1BMQVRGT1JNX1BPU1RfU1RBUlRVUCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxXb3JrYmVuY2hJbml0aWFsaXplciB8ICgoKSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPikgfCBvYmplY3Q+KCdNSUNST0ZST05URU5EX1BMQVRGT1JNX1BPU1RfU1RBUlRVUCcpO1xuXG4vKipcbiAqIFRoZSBTQ0lPTiBXb3JrYmVuY2ggZGVmaW5lcyBhIG51bWJlciBvZiBpbmplY3Rpb24gdG9rZW5zIChhbHNvIGNhbGxlZCBESSB0b2tlbnMpIGFzIGhvb2tzIGludG8gdGhlIHdvcmtiZW5jaCdzIHN0YXJ0dXAgcHJvY2Vzcy5cbiAqIEhvb2tzIGFyZSBjYWxsZWQgYXQgZGVmaW5lZCBwb2ludHMgZHVyaW5nIHN0YXJ0dXAsIGVuYWJsaW5nIHRoZSBhcHBsaWNhdGlvbidzIGNvbnRyb2xsZWQgaW5pdGlhbGl6YXRpb24uXG4gKlxuICogSW5pdGlhbGl6ZXJzIHJlZ2lzdGVyZWQgdW5kZXIgdGhpcyBESSB0b2tlbiBhcmUgaW5qZWN0ZWQgYW5kIGV4ZWN1dGVkIGp1c3QgYmVmb3JlIHRoZSB7QGxpbmsgV29ya2JlbmNoTGF1bmNoZXJ9IGNvbXBsZXRlcyB0aGUgd29ya2JlbmNoXG4gKiBzdGFydHVwLCB0aGF0IGlzLCBhZnRlciBhbGwgaW5pdGlhbGl6ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGUge0BsaW5rIFdPUktCRU5DSF9TVEFSVFVQfSBESSB0b2tlbiBoYXZlIGNvbXBsZXRlZCBpbml0aWFsaXphdGlvbi5cbiAqXG4gKiBBbiBpbml0aWFsaXplciBjYW4gYmUgYW55IG9iamVjdCBhbmQgaXMgdG8gYmUgcHJvdmlkZWQgYXMgYSBtdWx0aS1wcm92aWRlci4gSWYgdGhlIGluaXRpYWxpemVyIGlzIGEgZnVuY3Rpb24gb3IgaW5zdGFuY2Ugb2ZcbiAqIHtAbGluayBXb3JrYmVuY2hJbml0aWFsaXplcn0gYW5kIHJldHVybnMgYSBQcm9taXNlLCB0aGUgd29ya2JlbmNoIHdhaXRzIGZvciB0aGUgUHJvbWlzZSB0byBiZSByZXNvbHZlZCBiZWZvcmUgcHJvY2VlZGluZyB3aXRoIHRoZSBzdGFydHVwLlxuICogSW5pdGlhbGl6ZXJzIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLiBJbml0aWFsaXplcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzYW1lIERJIHRva2VuIG1heSBydW4gaW4gcGFyYWxsZWwuXG4gKi9cbmV4cG9ydCBjb25zdCBXT1JLQkVOQ0hfUE9TVF9TVEFSVFVQID0gbmV3IEluamVjdGlvblRva2VuPFdvcmtiZW5jaEluaXRpYWxpemVyIHwgKCgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+KSB8IG9iamVjdD4oJ1dPUktCRU5DSF9QT1NUX1NUQVJUVVAnKTtcblxuLyoqXG4gKiBBbGxvd3MgaW5pdGlhbGl6aW5nIHRoZSBhcHBsaWNhdGlvbiBkdXJpbmcgd29ya2JlbmNoIHN0YXJ0dXAuXG4gKlxuICogVGhlIFNDSU9OIFdvcmtiZW5jaCBkZWZpbmVzIGEgbnVtYmVyIG9mIGluamVjdGlvbiB0b2tlbnMgKGFsc28gY2FsbGVkIERJIHRva2VucykgYXMgaG9va3MgaW50byB0aGUgd29ya2JlbmNoJ3Mgc3RhcnR1cCBwcm9jZXNzLlxuICogSG9va3MgYXJlIGNhbGxlZCBhdCBkZWZpbmVkIHBvaW50cyBkdXJpbmcgc3RhcnR1cCwgZW5hYmxpbmcgdGhlIGFwcGxpY2F0aW9uJ3MgY29udHJvbGxlZCBpbml0aWFsaXphdGlvbi5cbiAqXG4gKiBUaGUgYXBwbGljYXRpb24gY2FuIGFzc29jaWF0ZSBvbmUgb3IgbW9yZSBpbml0aWFsaXplcnMgd2l0aCBhbnkgb2YgdGhlc2UgREkgdG9rZW5zLiBBbiBpbml0aWFsaXplciBjYW4gYmUgYW55IG9iamVjdCBhbmQgaXMgdG8gYmVcbiAqIHByb3ZpZGVkIGFzIGEgbXVsdGktcHJvdmlkZXIuIElmIHRoZSBpbml0aWFsaXplciBpcyBhIGZ1bmN0aW9uIG9yIGluc3RhbmNlIG9mIHtAbGluayBXb3JrYmVuY2hJbml0aWFsaXplcn0sIHdoaWNoIGRlZmluZXMgYSBzaW5nbGVcbiAqIG1ldGhvZCwgYGluaXRgLCB0aGUgd29ya2JlbmNoIHdhaXRzIGZvciBpdHMgcmV0dXJuZWQgUHJvbWlzZSB0byByZXNvbHZlIGJlZm9yZSBwcm9jZWVkaW5nIHdpdGggdGhlIHN0YXJ0dXAuIEluaXRpYWxpemVycyBjYW4gY2FsbFxuICogYGluamVjdGAgdG8gZ2V0IGFueSByZXF1aXJlZCBkZXBlbmRlbmNpZXMuIEluaXRpYWxpemVycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgREkgdG9rZW4gbWF5IHJ1biBpbiBwYXJhbGxlbC5cbiAqXG4gKiBGb2xsb3dpbmcgREkgdG9rZW5zIGFyZSBhdmFpbGFibGUgYXMgaG9va3MgaW50byB0aGUgd29ya2JlbmNoJ3Mgc3RhcnR1cCBwcm9jZXNzLCBsaXN0ZWQgaW4gdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkgYXJlIGluamVjdGVkIGFuZFxuICogZXhlY3V0ZWQuXG4gKlxuICogLSB7QGxpbmsgV09SS0JFTkNIX1BSRV9TVEFSVFVQfVxuICogLSB7QGxpbmsgV09SS0JFTkNIX1NUQVJUVVB9XG4gKiAtIHtAbGluayBXT1JLQkVOQ0hfUE9TVF9TVEFSVFVQfVxuICogLSB7QGxpbmsgTUlDUk9GUk9OVEVORF9QTEFURk9STV9QUkVfU1RBUlRVUH1cbiAqIC0ge0BsaW5rIE1JQ1JPRlJPTlRFTkRfUExBVEZPUk1fUE9TVF9TVEFSVFVQfVxuICpcbiAqICMjIyBFeGFtcGxlIG9mIGhvdyB0byBhc3NvY2lhdGUgYW4gaW5pdGlhbGl6ZXIgd2l0aCB0aGUgREkgdG9rZW4ge0BsaW5rIE1JQ1JPRlJPTlRFTkRfUExBVEZPUk1fUE9TVF9TVEFSVFVQfS5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBATmdNb2R1bGUoe1xuICogICAuLi5cbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAge1xuICogICAgICAgcHJvdmlkZTogTUlDUk9GUk9OVEVORF9QTEFURk9STV9QT1NUX1NUQVJUVVAsXG4gKiAgICAgICBtdWx0aTogdHJ1ZSxcbiAqICAgICAgIHVzZUNsYXNzOiBBcHBJbml0aWFsaXplcixcbiAqICAgICB9XG4gKiAgIF1cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHt9XG4gKlxuICogQEluamVjdGFibGUoKVxuICogZXhwb3J0IGNsYXNzIEFwcEluaXRpYWxpemVyIGltcGxlbWVudHMgV29ya2JlbmNoSW5pdGlhbGl6ZXIge1xuICpcbiAqICAgcHVibGljIGluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gKiAgICAgLi4uXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtiZW5jaEluaXRpYWxpemVyIHtcblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaXMgY2FsbGVkIGR1cmluZyB0aGUgc3RhcnR1cCBvZiB0aGUgd29ya2JlbmNoLlxuICAgKlxuICAgKiBGb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgd2hlbiB0aGlzIG1ldGhvZCBpcyBjYWxsZWQsIHJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uXG4gICAqIG9mIHRoZSBESSB0b2tlbiB1bmRlciB3aGljaCB0aGlzIGluaXRpYWxpemVyIGlzIHJlZ2lzdGVyZWQuIE5vdGUgdGhhdCBpbml0aWFsaXplcnNcbiAgICogcmVnaXN0ZXJlZCB1bmRlciB0aGUgc2FtZSBESSB0b2tlbiBtYXkgZXhlY3V0ZSBpbiBwYXJhbGxlbC5cbiAgICpcbiAgICogQHJldHVybiBBIFByb21pc2UgYmxvY2tpbmcgc3RhcnR1cCB1bnRpbCBpdCByZXNvbHZlcy5cbiAgICovXG4gIGluaXQoKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBSdW5zIHdvcmtiZW5jaCBpbml0aWFsaXplcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBESSB0b2tlbi4gSW5pdGlhbGl6ZXIgZnVuY3Rpb25zIGNhbiBjYWxsIGBpbmplY3RgIHRvIGdldCBhbnkgcmVxdWlyZWQgZGVwZW5kZW5jaWVzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcnVuV29ya2JlbmNoSW5pdGlhbGl6ZXJzKHRva2VuOiBJbmplY3Rpb25Ub2tlbjxhbnk+LCBpbmplY3RvcjogSW5qZWN0b3IpOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgaW5pdGlhbGl6ZXJzOiBBcnJheTxXb3JrYmVuY2hJbml0aWFsaXplciB8IEZ1bmN0aW9uIHwgdW5kZWZpbmVkIHwgYW55PiB8IG51bGwgPSBpbmplY3Rvci5nZXQodG9rZW4sIHVuZGVmaW5lZCwge29wdGlvbmFsOiB0cnVlfSk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICBpZiAoIWluaXRpYWxpemVycz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLy8gSW52b2tlIGFuZCBhd2FpdCBpbml0aWFsaXplciBmdW5jdGlvbnMuXG4gIGF3YWl0IFByb21pc2UuYWxsKGluaXRpYWxpemVycy5yZWR1Y2UoKGFjYywgaW5pdGlhbGl6ZXIpID0+IHtcbiAgICBpZiAodHlwZW9mIGluaXRpYWxpemVyID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gYWNjLmNvbmNhdChydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IuZ2V0KEVudmlyb25tZW50SW5qZWN0b3IpLCBpbml0aWFsaXplcikpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0eXBlb2YgaW5pdGlhbGl6ZXI/LmluaXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBhY2MuY29uY2F0KHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRJbmplY3RvciksICgpID0+IGluaXRpYWxpemVyLmluaXQoKSkpO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCBuZXcgQXJyYXk8UHJvbWlzZTx1bmtub3duPj4oKSkpO1xufVxuIl19
|
|
@@ -102,10 +102,10 @@ export class WorkbenchLauncher {
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
106
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
105
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLauncher, deps: [{ token: WorkbenchStartup }, { token: i1.Logger }, { token: i0.NgZone }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
106
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLauncher, providedIn: 'root' }); }
|
|
107
107
|
}
|
|
108
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchLauncher, decorators: [{
|
|
109
109
|
type: Injectable,
|
|
110
110
|
args: [{ providedIn: 'root' }]
|
|
111
111
|
}], ctorParameters: () => [{ type: WorkbenchStartup }, { type: i1.Logger }, { type: i0.NgZone }, { type: i0.Injector }] });
|
|
@@ -135,10 +135,10 @@ export class WorkbenchStartup {
|
|
|
135
135
|
isStarted() {
|
|
136
136
|
return this._started;
|
|
137
137
|
}
|
|
138
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
139
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
138
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchStartup, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
139
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchStartup, providedIn: 'root' }); }
|
|
140
140
|
}
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
141
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchStartup, decorators: [{
|
|
142
142
|
type: Injectable,
|
|
143
143
|
args: [{ providedIn: 'root' }]
|
|
144
144
|
}] });
|
|
@@ -158,4 +158,4 @@ export function provideWorkbenchLauncher(workbenchConfig) {
|
|
|
158
158
|
multi: true,
|
|
159
159
|
}]);
|
|
160
160
|
}
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWxhdW5jaGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9zdGFydHVwL3dvcmtiZW5jaC1sYXVuY2hlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBQyxlQUFlLEVBQUUscUJBQXFCLEVBQXdCLE1BQU0sRUFBRSxVQUFVLEVBQVksd0JBQXdCLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNKLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ25JLE9BQU8sRUFBUyxXQUFXLEVBQUMsTUFBTSxZQUFZLENBQUM7OztBQUUvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFFSCxNQUFNLE9BQU8saUJBQWlCO0lBSTVCLFlBQW9CLFFBQTBCLEVBQzFCLE9BQWUsRUFDZixLQUFhLEVBQ2IsU0FBbUI7UUFIbkIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBTC9CLFdBQU0sR0FBaUIsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQU1wRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Q0c7SUFDSSxLQUFLLENBQUMsTUFBTTtRQUNqQix5SUFBeUk7UUFDekksSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsUUFBUSxJQUFJ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LENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLENBQUM7WUFDRCxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtXb3JrYmVuY2hDb25maWd9IGZyb20gJy4uL3dvcmtiZW5jaC1jb25maWcnO1xuaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIEFwcGxpY2F0aW9uSW5pdFN0YXR1cywgRW52aXJvbm1lbnRQcm92aWRlcnMsIGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycywgTmdab25lfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7cnVuV29ya2JlbmNoSW5pdGlhbGl6ZXJzLCBXT1JLQkVOQ0hfUE9TVF9TVEFSVFVQLCBXT1JLQkVOQ0hfUFJFX1NUQVJUVVAsIFdPUktCRU5DSF9TVEFSVFVQfSBmcm9tICcuL3dvcmtiZW5jaC1pbml0aWFsaXplcic7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyTmFtZXN9IGZyb20gJy4uL2xvZ2dpbmcnO1xuXG4vKipcbiAqIFByb3ZpZGVzIEFQSSB0byBsYXVuY2ggdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAqXG4gKiBEdXJpbmcgd29ya2JlbmNoIHN0YXJ0dXAsIHRoZSBsYXVuY2hlciBydW5zIHJlZ2lzdGVyZWQgd29ya2JlbmNoIGluaXRpYWxpemVycyBhbmQgd2FpdHMgZm9yIHRoZW0gdG8gY29tcGxldGUuXG4gKiBXb3JrYmVuY2ggaW5pdGlhbGl6ZXJzIG1heSBleGVjdXRlIGluIHBhcmFsbGVsLiBUbyByZWdpc3RlciBhIHdvcmtiZW5jaCBpbml0aWFsaXplciwgcHJvdmlkZSBhIGNsYXNzIGltcGxlbWVudGluZ1xuICoge0BsaW5rIFdvcmtiZW5jaEluaXRpYWxpemVyfSBhcyBhIG11bHRpLXByb3ZpZGVyIHVzaW5nIHRoZSBESSBjbGFzcyB0b2tlbiB7QGxpbmsgV29ya2JlbmNoSW5pdGlhbGl6ZXJ9LlxuICpcbiAqIFRoZSBTQ0lPTiBXb3JrYmVuY2ggc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBsYXVuY2hlcnM6XG4gKlxuICogIC0gKipBUFBfSU5JVElBTElaRVIqKlxuICogICBMYXVuY2hlcyB0aGUgd29ya2JlbmNoIGluIGFuIEFuZ3VsYXIgYEFQUF9JTklUSUFMSVpFUmAsIHdoaWNoIGlzIGJlZm9yZSBib290c3RyYXBwaW5nIHRoZSBhcHAgY29tcG9uZW50LlxuICpcbiAqIC0gKipMQVpZKiogKHdoaWNoIGlzIHRoZSBkZWZhdWx0KVxuICogICBMYXVuY2hlcyB0aGUgd29ya2JlbmNoIGF0IHRoZSBsYXRlc3Qgd2hlbiBib290c3RyYXBwaW5nIHRoZSB3b3JrYmVuY2ggcm9vdCBjb21wb25lbnQgYDx3Yi13b3JrYmVuY2g+YC5cbiAqXG4gKiAgIFdpdGggdGhpcyBzdHJhdGVneSwgeW91IGFyZSBmbGV4aWJsZSB3aGVuIHRvIHN0YXJ0IHRoZSB3b3JrYmVuY2guIFlvdSBjYW4gc3RhcnQgdGhlIHdvcmtiZW5jaCBleHBsaWNpdGx5IGJ5XG4gKiAgIGNhbGxpbmcge0BsaW5rIFdvcmtiZW5jaExhdW5jaGVyI2xhdW5jaH0sIGUuZy4sIHRvIGxhdW5jaCB0aGUgd29ya2JlbmNoIGZyb20gYSByb3V0ZSBndWFyZCBvciBhcHAgaW5pdGlhbGl6ZXIsXG4gKiAgIG9yIHN0YXJ0IGl0IGF1dG9tYXRpY2FsbHkgd2hlbiBhZGRpbmcgdGhlIHdvcmtiZW5jaCByb290IGNvbXBvbmVudCBgPHdiLXdvcmtiZW5jaD5gIHRvIHRoZSBBbmd1bGFyIGNvbXBvbmVudFxuICogICB0cmVlLlxuICpcbiAqIFRoZSB3b3JrYmVuY2ggY29tcG9uZW50IGRpc3BsYXlzIGEgc3RhcnR1cCBzcGxhc2ggdW50aWwgY29tcGxldGVkIHN0YXJ0dXAuIFlvdSBjYW4gY29uZmlndXJlIGEgY3VzdG9tIHNwbGFzaCBpblxuICoge0BsaW5rIFdvcmtiZW5jaENvbmZpZyNzdGFydHVwI3NwbGFzaH0uIFdoZW4gbGF1bmNoaW5nIHRoZSB3b3JrYmVuY2ggaW4gYW4gQW5ndWxhciBgQVBQX0lOSVRJQUxJWkVSYCwgbm8gc3BsYXNoIHdpbGxcbiAqIGRpc3BsYXkgc2luY2UgdGhlIHdvcmtiZW5jaCB3aWxsIHN0YXJ0IHVwZnJvbnQuXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaExhdW5jaGVyIHtcblxuICBwcml2YXRlIF9zdGF0ZTogU3RhcnR1cFN0YXRlID0gU3RhcnR1cFN0YXRlLlN0b3BwZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3RhcnR1cDogV29ya2JlbmNoU3RhcnR1cCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gIH1cblxuICAvKipcbiAgICogTGF1bmNoZXMgdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgcmVwcmVzZW50cyB0aGUgaW5pdGlhbCBlbnRyeSBwb2ludCB0aGF0IHNob3VsZCBiZSBjYWxsZWQgdG8gbGF1bmNoIHRoZSB3b3JrYmVuY2guIFRoZSBsYXVuY2hlciBydW5zXG4gICAqIHJlZ2lzdGVyZWQgd29ya2JlbmNoIGluaXRpYWxpemVycyBhbmQgd2FpdHMgZm9yIHRoZW0gdG8gY29tcGxldGUuIENhbGxpbmcgdGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgd29ya2JlbmNoXG4gICAqIGlzIGFscmVhZHkgc3RhcnRpbmcgb3IgaGFzIHN0YXJ0ZWQuXG4gICAqXG4gICAqICMjIyBTcGxhc2hcbiAgICogV2hlbiBtb3VudGluZyB0aGUgd29ya2JlbmNoIHJvb3QgY29tcG9uZW50IGA8d2Itd29ya2JlbmNoPmAgdG8gdGhlIERPTSBiZWZvcmUgdGhlIHdvcmtiZW5jaCBzdGFydHVwIGhhcyBmaW5pc2hlZCxcbiAgICogdGhlIHdvcmtiZW5jaCB3aWxsIGRpc3BsYXkgYSBzdGFydHVwIHNwbGFzaCB1bnRpbCBjb21wbGV0ZWQgc3RhcnR1cC5cbiAgICpcbiAgICogIyMjIFN0YXJ0dXAgTGlmZWN5Y2xlIEhvb2tzXG4gICAqIFRoZSBTQ0lPTiBXb3JrYmVuY2ggZGVmaW5lcyBhIG51bWJlciBvZiBpbmplY3Rpb24gdG9rZW5zIChhbHNvIGNhbGxlZCBESSB0b2tlbnMpIGFzIGhvb2tzIGludG8gdGhlIHdvcmtiZW5jaCdzIHN0YXJ0dXAgcHJvY2Vzcy5cbiAgICogSG9va3MgYXJlIGNhbGxlZCBhdCBkZWZpbmVkIHBvaW50cyBkdXJpbmcgc3RhcnR1cCwgZW5hYmxpbmcgdGhlIGFwcGxpY2F0aW9uJ3MgY29udHJvbGxlZCBpbml0aWFsaXphdGlvbi5cbiAgICpcbiAgICogVGhlIGFwcGxpY2F0aW9uIGNhbiBhc3NvY2lhdGUgb25lIG9yIG1vcmUgaW5pdGlhbGl6ZXJzIHdpdGggYW55IG9mIHRoZXNlIERJIHRva2Vucy4gQW4gaW5pdGlhbGl6ZXIgY2FuIGJlIGFueSBvYmplY3QgYW5kIGlzIHRvXG4gICAqIGJlIHByb3ZpZGVkIGFzIGEgbXVsdGktcHJvdmlkZXIuIElmIHRoZSBpbml0aWFsaXplciBpcyBhIGZ1bmN0aW9uIG9yIGluc3RhbmNlIG9mIHtAbGluayBXb3JrYmVuY2hJbml0aWFsaXplcn0gYW5kIHJldHVybnMgYSBQcm9taXNlLFxuICAgKiB0aGUgd29ya2JlbmNoIHdhaXRzIGZvciB0aGUgUHJvbWlzZSB0byBiZSByZXNvbHZlZCBiZWZvcmUgcHJvY2VlZGluZyB3aXRoIHRoZSBzdGFydHVwLiBJbml0aWFsaXplcnMgY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueVxuICAgKiByZXF1aXJlZCBkZXBlbmRlbmNpZXMuIEluaXRpYWxpemVycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgREkgdG9rZW4gbWF5IHJ1biBpbiBwYXJhbGxlbC5cbiAgICpcbiAgICogRm9sbG93aW5nIERJIHRva2VucyBhcmUgYXZhaWxhYmxlIGFzIGhvb2tzIGludG8gdGhlIHdvcmtiZW5jaCdzIHN0YXJ0dXAgcHJvY2VzcywgbGlzdGVkIGluIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFyZSBpbmplY3RlZCBhbmRcbiAgICogZXhlY3V0ZWQuXG4gICAqXG4gICAqIC0ge0BsaW5rIFdPUktCRU5DSF9QUkVfU1RBUlRVUH1cbiAgICogLSB7QGxpbmsgV09SS0JFTkNIX1NUQVJUVVB9XG4gICAqIC0ge0BsaW5rIE1JQ1JPRlJPTlRFTkRfUExBVEZPUk1fUFJFX1NUQVJUVVB9XG4gICAqIC0ge0BsaW5rIE1JQ1JPRlJPTlRFTkRfUExBVEZPUk1fUE9TVF9TVEFSVFVQfVxuICAgKiAtIHtAbGluayBXT1JLQkVOQ0hfUE9TVF9TVEFSVFVQfVxuICAgKlxuICAgKiAjIyMgRXhhbXBsZSBvZiBob3cgdG8gaG9vayBpbnRvIHRoZSBzdGFydHVwIHByb2Nlc3MuXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIHtcbiAgICogICBwcm92aWRlOiBXT1JLQkVOQ0hfU1RBUlRVUCxcbiAgICogICBtdWx0aTogdHJ1ZSxcbiAgICogICB1c2VWYWx1ZTogKCkgPT4gaW5qZWN0KEluaXRpYWxpemVyKS5pbml0KCksXG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEByZXR1cm4gQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgd29ya2JlbmNoIGhhcyBjb21wbGV0ZWQgdGhlIHN0YXJ0dXAgb3IgdGhhdCByZWplY3RzIGlmIHRoZSBzdGFydHVwIGZhaWxlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsYXVuY2goKTogUHJvbWlzZTx0cnVlPiB7XG4gICAgLy8gRW5zdXJlIHRvIHJ1biBpbiB0aGUgQW5ndWxhciB6b25lIHRvIGNoZWNrIHRoZSB3b3JrYmVuY2ggZm9yIGNoYW5nZXMgZXZlbiBpZiBjYWxsZWQgZnJvbSBvdXRzaWRlIHRoZSBBbmd1bGFyIHpvbmUsIGUuZy4gaW4gdW5pdCB0ZXN0cy5cbiAgICBpZiAoIU5nWm9uZS5pc0luQW5ndWxhclpvbmUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuKCgpID0+IHRoaXMubGF1bmNoKCkpO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy5fc3RhdGUpIHtcbiAgICAgIGNhc2UgU3RhcnR1cFN0YXRlLlN0b3BwZWQ6IHtcbiAgICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCgpID0+IGBTdGFydGluZyBXb3JrYmVuY2guIFdhaXRpbmcgZm9yIHdvcmtiZW5jaCBpbml0aWFsaXplcnMgdG8gY29tcGxldGUuIFtsYXVuY2hlcj0ke3RoaXMuX2luamVjdG9yLmdldChBcHBsaWNhdGlvbkluaXRTdGF0dXMpLmRvbmUgPyAnTEFaWScgOiAnQVBQX0lOSVRJQUxJWkVSJ31dYCwgTG9nZ2VyTmFtZXMuTElGRUNZQ0xFKTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBTdGFydHVwU3RhdGUuU3RhcnRpbmc7XG4gICAgICAgIGF3YWl0IHJ1bldvcmtiZW5jaEluaXRpYWxpemVycyhXT1JLQkVOQ0hfUFJFX1NUQVJUVVAsIHRoaXMuX2luamVjdG9yKTtcbiAgICAgICAgYXdhaXQgcnVuV29ya2JlbmNoSW5pdGlhbGl6ZXJzKFdPUktCRU5DSF9TVEFSVFVQLCB0aGlzLl9pbmplY3Rvcik7XG4gICAgICAgIHRoaXMuX3N0YXRlID0gU3RhcnR1cFN0YXRlLlN0YXJ0ZWQ7XG4gICAgICAgIGF3YWl0IHJ1bldvcmtiZW5jaEluaXRpYWxpemVycyhXT1JLQkVOQ0hfUE9TVF9TVEFSVFVQLCB0aGlzLl9pbmplY3Rvcik7XG4gICAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygoKSA9PiAnV29ya2JlbmNoIHN0YXJ0ZWQuJywgTG9nZ2VyTmFtZXMuTElGRUNZQ0xFKTtcbiAgICAgICAgdGhpcy5fc3RhcnR1cC5ub3RpZnlTdGFydGVkKCk7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGFydHVwLndoZW5TdGFydGVkO1xuICAgICAgfVxuICAgICAgY2FzZSBTdGFydHVwU3RhdGUuU3RhcnRpbmc6XG4gICAgICBjYXNlIFN0YXJ0dXBTdGF0ZS5TdGFydGVkOiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGFydHVwLndoZW5TdGFydGVkO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICB0aHJvdyBFcnJvcihgW1dvcmtiZW5jaFN0YXJ0dXBFcnJvcl0gSWxsZWdhbCBzdGFydHVwIHN0YXRlOiAke3RoaXMuX3N0YXRlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5lbnVtIFN0YXJ0dXBTdGF0ZSB7XG4gIFN0b3BwZWQsIFN0YXJ0aW5nLCBTdGFydGVkXG59XG5cbi8qKlxuICogQWxsb3dzIHdhaXRpbmcgZm9yIHRoZSB3b3JrYmVuY2ggc3RhcnR1cCB0byBjb21wbGV0ZS5cbiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgV29ya2JlbmNoU3RhcnR1cCB7XG5cbiAgcHJpdmF0ZSBfc3RhcnRlZCA9IGZhbHNlO1xuXG4gIC8qIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgbm90aWZ5U3RhcnRlZCE6ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB3b3JrYmVuY2ggaGFzIGNvbXBsZXRlZCB0aGUgc3RhcnR1cC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB3aGVuU3RhcnRlZCA9IG5ldyBQcm9taXNlPHRydWU+KHJlc29sdmUgPT4gdGhpcy5ub3RpZnlTdGFydGVkID0gKCkgPT4ge1xuICAgIHRoaXMuX3N0YXJ0ZWQgPSB0cnVlO1xuICAgIHJlc29sdmUodHJ1ZSk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHdvcmtiZW5jaCBjb21wbGV0ZWQgc3RhcnR1cC5cbiAgICovXG4gIHB1YmxpYyBpc1N0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm92aWRlcyBhIHNldCBvZiBESSBwcm92aWRlcnMgZm9yIGxhdW5jaGluZyB0aGUgd29ya2JlbmNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVdvcmtiZW5jaExhdW5jaGVyKHdvcmtiZW5jaENvbmZpZzogV29ya2JlbmNoQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMgfCBbXSB7XG4gIGlmICh3b3JrYmVuY2hDb25maWcuc3RhcnR1cD8ubGF1bmNoZXIgIT09ICdBUFBfSU5JVElBTElaRVInKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbe1xuICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICBjb25zdCBsYXVuY2hlciA9IGluamVjdChXb3JrYmVuY2hMYXVuY2hlcik7XG4gICAgICByZXR1cm4gKCkgPT4gbGF1bmNoZXIubGF1bmNoKCk7XG4gICAgfSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfV0pO1xufVxuIl19
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLWxhdW5jaGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9zdGFydHVwL3dvcmtiZW5jaC1sYXVuY2hlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBQyxlQUFlLEVBQUUscUJBQXFCLEVBQXdCLE1BQU0sRUFBRSxVQUFVLEVBQVksd0JBQXdCLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNKLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ25JLE9BQU8sRUFBUyxXQUFXLEVBQUMsTUFBTSxZQUFZLENBQUM7OztBQUUvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFFSCxNQUFNLE9BQU8saUJBQWlCO0lBSTVCLFlBQW9CLFFBQTBCLEVBQzFCLE9BQWUsRUFDZixLQUFhLEVBQ2IsU0FBbUI7UUFIbkIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBTC9CLFdBQU0sR0FBaUIsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQU1wRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Q0c7SUFDSSxLQUFLLENBQUMsTUFBTTtRQUNqQix5SUFBeUk7UUFDekksSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVE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TSxRQUFRLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzNDLE9BQU8sR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLENBQUM7WUFDRCxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtXb3JrYmVuY2hDb25maWd9IGZyb20gJy4uL3dvcmtiZW5jaC1jb25maWcnO1xuaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIEFwcGxpY2F0aW9uSW5pdFN0YXR1cywgRW52aXJvbm1lbnRQcm92aWRlcnMsIGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycywgTmdab25lfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7cnVuV29ya2JlbmNoSW5pdGlhbGl6ZXJzLCBXT1JLQkVOQ0hfUE9TVF9TVEFSVFVQLCBXT1JLQkVOQ0hfUFJFX1NUQVJUVVAsIFdPUktCRU5DSF9TVEFSVFVQfSBmcm9tICcuL3dvcmtiZW5jaC1pbml0aWFsaXplcic7XG5pbXBvcnQge0xvZ2dlciwgTG9nZ2VyTmFtZXN9IGZyb20gJy4uL2xvZ2dpbmcnO1xuXG4vKipcbiAqIFByb3ZpZGVzIEFQSSB0byBsYXVuY2ggdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAqXG4gKiBEdXJpbmcgd29ya2JlbmNoIHN0YXJ0dXAsIHRoZSBsYXVuY2hlciBydW5zIHJlZ2lzdGVyZWQgd29ya2JlbmNoIGluaXRpYWxpemVycyBhbmQgd2FpdHMgZm9yIHRoZW0gdG8gY29tcGxldGUuXG4gKiBXb3JrYmVuY2ggaW5pdGlhbGl6ZXJzIG1heSBleGVjdXRlIGluIHBhcmFsbGVsLiBUbyByZWdpc3RlciBhIHdvcmtiZW5jaCBpbml0aWFsaXplciwgcHJvdmlkZSBhIGNsYXNzIGltcGxlbWVudGluZ1xuICoge0BsaW5rIFdvcmtiZW5jaEluaXRpYWxpemVyfSBhcyBhIG11bHRpLXByb3ZpZGVyIHVzaW5nIHRoZSBESSBjbGFzcyB0b2tlbiB7QGxpbmsgV29ya2JlbmNoSW5pdGlhbGl6ZXJ9LlxuICpcbiAqIFRoZSBTQ0lPTiBXb3JrYmVuY2ggc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBsYXVuY2hlcnM6XG4gKlxuICogIC0gKipBUFBfSU5JVElBTElaRVIqKlxuICogICBMYXVuY2hlcyB0aGUgd29ya2JlbmNoIGluIGFuIEFuZ3VsYXIgYEFQUF9JTklUSUFMSVpFUmAsIHdoaWNoIGlzIGJlZm9yZSBib290c3RyYXBwaW5nIHRoZSBhcHAgY29tcG9uZW50LlxuICpcbiAqIC0gKipMQVpZKiogKHdoaWNoIGlzIHRoZSBkZWZhdWx0KVxuICogICBMYXVuY2hlcyB0aGUgd29ya2JlbmNoIGF0IHRoZSBsYXRlc3Qgd2hlbiBib290c3RyYXBwaW5nIHRoZSB3b3JrYmVuY2ggcm9vdCBjb21wb25lbnQgYDx3Yi13b3JrYmVuY2g+YC5cbiAqXG4gKiAgIFdpdGggdGhpcyBzdHJhdGVneSwgeW91IGFyZSBmbGV4aWJsZSB3aGVuIHRvIHN0YXJ0IHRoZSB3b3JrYmVuY2guIFlvdSBjYW4gc3RhcnQgdGhlIHdvcmtiZW5jaCBleHBsaWNpdGx5IGJ5XG4gKiAgIGNhbGxpbmcge0BsaW5rIFdvcmtiZW5jaExhdW5jaGVyI2xhdW5jaH0sIGUuZy4sIHRvIGxhdW5jaCB0aGUgd29ya2JlbmNoIGZyb20gYSByb3V0ZSBndWFyZCBvciBhcHAgaW5pdGlhbGl6ZXIsXG4gKiAgIG9yIHN0YXJ0IGl0IGF1dG9tYXRpY2FsbHkgd2hlbiBhZGRpbmcgdGhlIHdvcmtiZW5jaCByb290IGNvbXBvbmVudCBgPHdiLXdvcmtiZW5jaD5gIHRvIHRoZSBBbmd1bGFyIGNvbXBvbmVudFxuICogICB0cmVlLlxuICpcbiAqIFRoZSB3b3JrYmVuY2ggY29tcG9uZW50IGRpc3BsYXlzIGEgc3RhcnR1cCBzcGxhc2ggdW50aWwgY29tcGxldGVkIHN0YXJ0dXAuIFlvdSBjYW4gY29uZmlndXJlIGEgY3VzdG9tIHNwbGFzaCBpblxuICoge0BsaW5rIFdvcmtiZW5jaENvbmZpZyNzdGFydHVwI3NwbGFzaH0uIFdoZW4gbGF1bmNoaW5nIHRoZSB3b3JrYmVuY2ggaW4gYW4gQW5ndWxhciBgQVBQX0lOSVRJQUxJWkVSYCwgbm8gc3BsYXNoIHdpbGxcbiAqIGRpc3BsYXkgc2luY2UgdGhlIHdvcmtiZW5jaCB3aWxsIHN0YXJ0IHVwZnJvbnQuXG4gKi9cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFdvcmtiZW5jaExhdW5jaGVyIHtcblxuICBwcml2YXRlIF9zdGF0ZTogU3RhcnR1cFN0YXRlID0gU3RhcnR1cFN0YXRlLlN0b3BwZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3RhcnR1cDogV29ya2JlbmNoU3RhcnR1cCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfbG9nZ2VyOiBMb2dnZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gIH1cblxuICAvKipcbiAgICogTGF1bmNoZXMgdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgcmVwcmVzZW50cyB0aGUgaW5pdGlhbCBlbnRyeSBwb2ludCB0aGF0IHNob3VsZCBiZSBjYWxsZWQgdG8gbGF1bmNoIHRoZSB3b3JrYmVuY2guIFRoZSBsYXVuY2hlciBydW5zXG4gICAqIHJlZ2lzdGVyZWQgd29ya2JlbmNoIGluaXRpYWxpemVycyBhbmQgd2FpdHMgZm9yIHRoZW0gdG8gY29tcGxldGUuIENhbGxpbmcgdGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZiB0aGUgd29ya2JlbmNoXG4gICAqIGlzIGFscmVhZHkgc3RhcnRpbmcgb3IgaGFzIHN0YXJ0ZWQuXG4gICAqXG4gICAqICMjIyBTcGxhc2hcbiAgICogV2hlbiBtb3VudGluZyB0aGUgd29ya2JlbmNoIHJvb3QgY29tcG9uZW50IGA8d2Itd29ya2JlbmNoPmAgdG8gdGhlIERPTSBiZWZvcmUgdGhlIHdvcmtiZW5jaCBzdGFydHVwIGhhcyBmaW5pc2hlZCxcbiAgICogdGhlIHdvcmtiZW5jaCB3aWxsIGRpc3BsYXkgYSBzdGFydHVwIHNwbGFzaCB1bnRpbCBjb21wbGV0ZWQgc3RhcnR1cC5cbiAgICpcbiAgICogIyMjIFN0YXJ0dXAgTGlmZWN5Y2xlIEhvb2tzXG4gICAqIFRoZSBTQ0lPTiBXb3JrYmVuY2ggZGVmaW5lcyBhIG51bWJlciBvZiBpbmplY3Rpb24gdG9rZW5zIChhbHNvIGNhbGxlZCBESSB0b2tlbnMpIGFzIGhvb2tzIGludG8gdGhlIHdvcmtiZW5jaCdzIHN0YXJ0dXAgcHJvY2Vzcy5cbiAgICogSG9va3MgYXJlIGNhbGxlZCBhdCBkZWZpbmVkIHBvaW50cyBkdXJpbmcgc3RhcnR1cCwgZW5hYmxpbmcgdGhlIGFwcGxpY2F0aW9uJ3MgY29udHJvbGxlZCBpbml0aWFsaXphdGlvbi5cbiAgICpcbiAgICogVGhlIGFwcGxpY2F0aW9uIGNhbiBhc3NvY2lhdGUgb25lIG9yIG1vcmUgaW5pdGlhbGl6ZXJzIHdpdGggYW55IG9mIHRoZXNlIERJIHRva2Vucy4gQW4gaW5pdGlhbGl6ZXIgY2FuIGJlIGFueSBvYmplY3QgYW5kIGlzIHRvXG4gICAqIGJlIHByb3ZpZGVkIGFzIGEgbXVsdGktcHJvdmlkZXIuIElmIHRoZSBpbml0aWFsaXplciBpcyBhIGZ1bmN0aW9uIG9yIGluc3RhbmNlIG9mIHtAbGluayBXb3JrYmVuY2hJbml0aWFsaXplcn0gYW5kIHJldHVybnMgYSBQcm9taXNlLFxuICAgKiB0aGUgd29ya2JlbmNoIHdhaXRzIGZvciB0aGUgUHJvbWlzZSB0byBiZSByZXNvbHZlZCBiZWZvcmUgcHJvY2VlZGluZyB3aXRoIHRoZSBzdGFydHVwLiBJbml0aWFsaXplcnMgY2FuIGNhbGwgYGluamVjdGAgdG8gZ2V0IGFueVxuICAgKiByZXF1aXJlZCBkZXBlbmRlbmNpZXMuIEluaXRpYWxpemVycyBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgREkgdG9rZW4gbWF5IHJ1biBpbiBwYXJhbGxlbC5cbiAgICpcbiAgICogRm9sbG93aW5nIERJIHRva2VucyBhcmUgYXZhaWxhYmxlIGFzIGhvb2tzIGludG8gdGhlIHdvcmtiZW5jaCdzIHN0YXJ0dXAgcHJvY2VzcywgbGlzdGVkIGluIHRoZSBvcmRlciBpbiB3aGljaCB0aGV5IGFyZSBpbmplY3RlZCBhbmRcbiAgICogZXhlY3V0ZWQuXG4gICAqXG4gICAqIC0ge0BsaW5rIFdPUktCRU5DSF9QUkVfU1RBUlRVUH1cbiAgICogLSB7QGxpbmsgV09SS0JFTkNIX1NUQVJUVVB9XG4gICAqIC0ge0BsaW5rIE1JQ1JPRlJPTlRFTkRfUExBVEZPUk1fUFJFX1NUQVJUVVB9XG4gICAqIC0ge0BsaW5rIE1JQ1JPRlJPTlRFTkRfUExBVEZPUk1fUE9TVF9TVEFSVFVQfVxuICAgKiAtIHtAbGluayBXT1JLQkVOQ0hfUE9TVF9TVEFSVFVQfVxuICAgKlxuICAgKiAjIyMgRXhhbXBsZSBvZiBob3cgdG8gaG9vayBpbnRvIHRoZSBzdGFydHVwIHByb2Nlc3MuXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIHtcbiAgICogICBwcm92aWRlOiBXT1JLQkVOQ0hfU1RBUlRVUCxcbiAgICogICBtdWx0aTogdHJ1ZSxcbiAgICogICB1c2VWYWx1ZTogKCkgPT4gaW5qZWN0KEluaXRpYWxpemVyKS5pbml0KCksXG4gICAqIH1cbiAgICogYGBgXG4gICAqXG4gICAqIEByZXR1cm4gQSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiB0aGUgd29ya2JlbmNoIGhhcyBjb21wbGV0ZWQgdGhlIHN0YXJ0dXAgb3IgdGhhdCByZWplY3RzIGlmIHRoZSBzdGFydHVwIGZhaWxlZC5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBsYXVuY2goKTogUHJvbWlzZTx0cnVlPiB7XG4gICAgLy8gRW5zdXJlIHRvIHJ1biBpbiB0aGUgQW5ndWxhciB6b25lIHRvIGNoZWNrIHRoZSB3b3JrYmVuY2ggZm9yIGNoYW5nZXMgZXZlbiBpZiBjYWxsZWQgZnJvbSBvdXRzaWRlIHRoZSBBbmd1bGFyIHpvbmUsIGUuZy4gaW4gdW5pdCB0ZXN0cy5cbiAgICBpZiAoIU5nWm9uZS5pc0luQW5ndWxhclpvbmUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3pvbmUucnVuKCgpID0+IHRoaXMubGF1bmNoKCkpO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy5fc3RhdGUpIHtcbiAgICAgIGNhc2UgU3RhcnR1cFN0YXRlLlN0b3BwZWQ6IHtcbiAgICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCgpID0+IGBTdGFydGluZyBXb3JrYmVuY2guIFdhaXRpbmcgZm9yIHdvcmtiZW5jaCBpbml0aWFsaXplcnMgdG8gY29tcGxldGUuIFtsYXVuY2hlcj0ke3RoaXMuX2luamVjdG9yLmdldChBcHBsaWNhdGlvbkluaXRTdGF0dXMpLmRvbmUgPyAnTEFaWScgOiAnQVBQX0lOSVRJQUxJWkVSJ31dYCwgTG9nZ2VyTmFtZXMuTElGRUNZQ0xFKTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBTdGFydHVwU3RhdGUuU3RhcnRpbmc7XG4gICAgICAgIGF3YWl0IHJ1bldvcmtiZW5jaEluaXRpYWxpemVycyhXT1JLQkVOQ0hfUFJFX1NUQVJUVVAsIHRoaXMuX2luamVjdG9yKTtcbiAgICAgICAgYXdhaXQgcnVuV29ya2JlbmNoSW5pdGlhbGl6ZXJzKFdPUktCRU5DSF9TVEFSVFVQLCB0aGlzLl9pbmplY3Rvcik7XG4gICAgICAgIHRoaXMuX3N0YXRlID0gU3RhcnR1cFN0YXRlLlN0YXJ0ZWQ7XG4gICAgICAgIGF3YWl0IHJ1bldvcmtiZW5jaEluaXRpYWxpemVycyhXT1JLQkVOQ0hfUE9TVF9TVEFSVFVQLCB0aGlzLl9pbmplY3Rvcik7XG4gICAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygoKSA9PiAnV29ya2JlbmNoIHN0YXJ0ZWQuJywgTG9nZ2VyTmFtZXMuTElGRUNZQ0xFKTtcbiAgICAgICAgdGhpcy5fc3RhcnR1cC5ub3RpZnlTdGFydGVkKCk7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGFydHVwLndoZW5TdGFydGVkO1xuICAgICAgfVxuICAgICAgY2FzZSBTdGFydHVwU3RhdGUuU3RhcnRpbmc6XG4gICAgICBjYXNlIFN0YXJ0dXBTdGF0ZS5TdGFydGVkOiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGFydHVwLndoZW5TdGFydGVkO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDoge1xuICAgICAgICB0aHJvdyBFcnJvcihgW1dvcmtiZW5jaFN0YXJ0dXBFcnJvcl0gSWxsZWdhbCBzdGFydHVwIHN0YXRlOiAke3RoaXMuX3N0YXRlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5lbnVtIFN0YXJ0dXBTdGF0ZSB7XG4gIFN0b3BwZWQsIFN0YXJ0aW5nLCBTdGFydGVkXG59XG5cbi8qKlxuICogQWxsb3dzIHdhaXRpbmcgZm9yIHRoZSB3b3JrYmVuY2ggc3RhcnR1cCB0byBjb21wbGV0ZS5cbiAqL1xuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgV29ya2JlbmNoU3RhcnR1cCB7XG5cbiAgcHJpdmF0ZSBfc3RhcnRlZCA9IGZhbHNlO1xuXG4gIC8qIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgbm90aWZ5U3RhcnRlZCE6ICgpID0+IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSB3b3JrYmVuY2ggaGFzIGNvbXBsZXRlZCB0aGUgc3RhcnR1cC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB3aGVuU3RhcnRlZCA9IG5ldyBQcm9taXNlPHRydWU+KHJlc29sdmUgPT4gdGhpcy5ub3RpZnlTdGFydGVkID0gKCkgPT4ge1xuICAgIHRoaXMuX3N0YXJ0ZWQgPSB0cnVlO1xuICAgIHJlc29sdmUodHJ1ZSk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHdvcmtiZW5jaCBjb21wbGV0ZWQgc3RhcnR1cC5cbiAgICovXG4gIHB1YmxpYyBpc1N0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm92aWRlcyBhIHNldCBvZiBESSBwcm92aWRlcnMgZm9yIGxhdW5jaGluZyB0aGUgd29ya2JlbmNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVdvcmtiZW5jaExhdW5jaGVyKHdvcmtiZW5jaENvbmZpZzogV29ya2JlbmNoQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMgfCBbXSB7XG4gIGlmICh3b3JrYmVuY2hDb25maWcuc3RhcnR1cD8ubGF1bmNoZXIgIT09ICdBUFBfSU5JVElBTElaRVInKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbe1xuICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICBjb25zdCBsYXVuY2hlciA9IGluamVjdChXb3JrYmVuY2hMYXVuY2hlcik7XG4gICAgICByZXR1cm4gKCkgPT4gbGF1bmNoZXIubGF1bmNoKCk7XG4gICAgfSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfV0pO1xufVxuIl19
|
|
@@ -28,10 +28,10 @@ export class DefaultWorkbenchStorage {
|
|
|
28
28
|
store(key, value) {
|
|
29
29
|
localStorage.setItem(key, value);
|
|
30
30
|
}
|
|
31
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
32
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: DefaultWorkbenchStorage, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: DefaultWorkbenchStorage }); }
|
|
33
33
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: DefaultWorkbenchStorage, decorators: [{
|
|
35
35
|
type: Injectable
|
|
36
36
|
}] });
|
|
37
37
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLXN0b3JhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi9zdG9yYWdlL3dvcmtiZW5jaC1zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7OztHQVFHO0FBRUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFFekM7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGdCQUFnQjtDQWNyQztBQUVEOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyx1QkFBdUI7SUFFM0IsSUFBSSxDQUFDLEdBQVc7UUFDckIsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxLQUFLLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDckMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs4R0FSVSx1QkFBdUI7a0hBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBQcm92aWRlcyBwZXJzaXN0ZW50IHN0b3JhZ2UgdG8gdGhlIFNDSU9OIFdvcmtiZW5jaC5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdvcmtiZW5jaFN0b3JhZ2Uge1xuXG4gIC8qKlxuICAgKiBNZXRob2QgaW52b2tlZCB0byBsb2FkIGEgdmFsdWUgZnJvbSBwZXJzaXN0ZWQgc3RvcmFnZS5cbiAgICovXG4gIHB1YmxpYyBhYnN0cmFjdCBsb2FkKGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB8IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIE1ldGhvZCBpbnZva2VkIHRvIHdyaXRlIGEgdmFsdWUgdG8gcGVyc2lzdGVkIHN0b3JhZ2UuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIG1heSBiZSBjYWxsZWQgZHVyaW5nIHBhZ2UgdW5sb2FkLiBJZiBzZW5kaW5nIGRhdGEgdG8gYSB3ZWIgc2VydmVyLFxuICAgKiB1c2UgYG5hdmlnYXRvci5zZW5kQmVhY29uKClgIGluc3RlYWQgb2YgYHdpbmRvdy5mZXRjaCgpYCB0byByZWxpYWJseSB0cmFuc21pdCBkYXRhLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHN0b3JlKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XG59XG5cbi8qKlxuICogRGVmYXVsdCBzdG9yYWdlIHVzZWQgYnkgdGhlIFNDSU9OIHdvcmtiZW5jaCB0byBwZXJzaXN0IGRhdGEgaW4gbG9jYWwgc3RvcmFnZS5cbiAqXG4gKiBMb2NhbCBzdG9yYWdlIG1haW50YWlucyBhIHBlcnNpc3RlbnQgc3RvcmFnZSBhcmVhIHBlciBvcmlnaW4uIERhdGEgZG9lcyBub3QgZXhwaXJlIGFuZCByZW1haW5zIGFmdGVyIHRoZSBicm93c2VyIHJlc3RhcnRzLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgvKiBETyBOT1QgUFJPVklERSB2aWEgJ3Byb3ZpZGVkSW4nIG1ldGFkYXRhIGFzIHJlZ2lzdGVyZWQgY29uZGl0aW9uYWxseSB1bmRlciBgV29ya2JlbmNoU3RvcmFnZWAgREkgdG9rZW4uICovKVxuZXhwb3J0IGNsYXNzIERlZmF1bHRXb3JrYmVuY2hTdG9yYWdlIGltcGxlbWVudHMgV29ya2JlbmNoU3RvcmFnZSB7XG5cbiAgcHVibGljIGxvYWQoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBzdG9yZShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpO1xuICB9XG59XG4iXX0=
|
|
@@ -39,11 +39,11 @@ export class WorkbenchTestingModule {
|
|
|
39
39
|
providers: [provideWorkbenchForTest(config)],
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
43
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
44
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
43
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchTestingModule }); }
|
|
44
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchTestingModule }); }
|
|
45
45
|
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchTestingModule, decorators: [{
|
|
47
47
|
type: NgModule
|
|
48
48
|
}] });
|
|
49
49
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLXRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvdGVzdGluZy93b3JrYmVuY2gtdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBRTdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQkc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUF3QjtRQUM1QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHNCQUFzQjtZQUNoQyxTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3QyxDQUFDO0lBQ0osQ0FBQzs4R0FWVSxzQkFBc0I7K0dBQXRCLHNCQUFzQjsrR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1dvcmtiZW5jaENvbmZpZ30gZnJvbSAnLi4vd29ya2JlbmNoLWNvbmZpZyc7XG5pbXBvcnQge3Byb3ZpZGVXb3JrYmVuY2hGb3JUZXN0fSBmcm9tICcuL3dvcmtiZW5jaC5wcm92aWRlcic7XG5cbi8qKlxuICogU2V0cyB1cCB0aGUgU0NJT04gV29ya2JlbmNoIHRvIGJlIHVzZWQgZm9yIHRlc3RpbmcuXG4gKlxuICogRG9lcyB0aGUgZm9sbG93aW5nOlxuICogLSBwcm92aWRlcyB0aGUgd29ya2JlbmNoIHdpdGggZ2l2ZW4gY29uZmlnXG4gKiAtIGNvbmZpZ3VyZXMgdGhlIHdvcmtiZW5jaCB0byBuYW1lIHRoZSBpbml0aWFsIHBhcnQgJ21haW4nXG4gKiAtIGluc3RhbGxzIGEgc2VxdWVuY2UgZm9yIGFjdGl2YXRpb24gaW5zdGFudHNcbiAqIC0gY29uZmlndXJlcyB0aGUgdGVzdGJlZCB0byBhdXRvLWRldGVjdCBjaGFuZ2VzXG4gKiAtIGRpc2FibGVzIGFuaW1hdGlvbnNcbiAqIC0gcGVyZm9ybXMgdGhlIGluaXRpYWwgbmF2aWdhdGlvblxuICpcbiAqICMjIyBVc2FnZVxuICpcbiAqIGBgYFxuICogYmVmb3JlRWFjaCgoKSA9PiB7XG4gKiAgIFRlc3RCZWQuY29uZmlndXJlVGVzdGluZ01vZHVsZSh7XG4gKiAgICAgIGltcG9ydHM6IFtcbiAqICAgICAgICBXb3JrYmVuY2hUZXN0aW5nTW9kdWxlLmZvclRlc3QoKSxcbiAqICAgICAgICBSb3V0ZXJUZXN0aW5nTW9kdWxlLndpdGhSb3V0ZXMoW1xuICogICAgICAgICAge3BhdGg6ICd0ZXN0LXZpZXcnLCBjb21wb25lbnQ6IFRlc3RDb21wb25lbnR9LFxuICogICAgICAgIF0pLFxuICogICAgICBdLFxuICogICAgfSk7XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMTcuMC4wLWJldGEuODsgUmVnaXN0ZXIgU0NJT04gV29ya2JlbmNoIHByb3ZpZGVycyB1c2luZyBgcHJvdmlkZVdvcmtiZW5jaGAgZnVuY3Rpb24gaW5zdGVhZDsgQVBJIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSByZWxlYXNlOyBBUEkgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuXG4gKi9cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgV29ya2JlbmNoVGVzdGluZ01vZHVsZSB7XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIFNDSU9OIFdvcmtiZW5jaCB0byBiZSB1c2VkIGZvciB0ZXN0aW5nLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmb3JUZXN0KGNvbmZpZz86IFdvcmtiZW5jaENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8V29ya2JlbmNoVGVzdGluZ01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogV29ya2JlbmNoVGVzdGluZ01vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW3Byb3ZpZGVXb3JrYmVuY2hGb3JUZXN0KGNvbmZpZyldLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -51,10 +51,10 @@ class SequenceInstantProvider {
|
|
|
51
51
|
now() {
|
|
52
52
|
return this._sequence++;
|
|
53
53
|
}
|
|
54
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
55
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SequenceInstantProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
55
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SequenceInstantProvider }); }
|
|
56
56
|
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: SequenceInstantProvider, decorators: [{
|
|
58
58
|
type: Injectable
|
|
59
59
|
}] });
|
|
60
60
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2Npb24vd29ya2JlbmNoL3NyYy9saWIvdGVzdGluZy93b3JrYmVuY2gucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLHVCQUF1QixFQUF3QixNQUFNLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFdkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5Qkc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBd0I7SUFDOUQsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QixnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7UUFDeEIscUJBQXFCLEVBQUU7UUFDdkIsRUFBQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFDO1FBQ3ZFLEVBQUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUM7UUFDdEQsRUFBQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQztRQUNyRCxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsaUJBQWlCLEVBQUUsRUFBQztRQUNuRyxFQUFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEVBQUM7UUFDckYsRUFBQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLEVBQUM7S0FDbEYsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQ00sdUJBQXVCO0lBRDdCO1FBR1UsY0FBUyxHQUFHLENBQUMsQ0FBQztLQUt2QjtJQUhRLEdBQUc7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQU5HLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtXb3JrYmVuY2hDb25maWd9IGZyb20gJy4uL3dvcmtiZW5jaC1jb25maWcnO1xuaW1wb3J0IHtFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgRW52aXJvbm1lbnRQcm92aWRlcnMsIGluamVjdCwgSW5qZWN0YWJsZSwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7cHJvdmlkZVdvcmtiZW5jaH0gZnJvbSAnLi4vd29ya2JlbmNoLnByb3ZpZGVyJztcbmltcG9ydCB7cHJvdmlkZU5vb3BBbmltYXRpb25zfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtBY3RpdmF0aW9uSW5zdGFudFByb3ZpZGVyfSBmcm9tICcuLi9hY3RpdmF0aW9uLWluc3RhbnQucHJvdmlkZXInO1xuaW1wb3J0IHtNQUlOX0FSRUFfSU5JVElBTF9QQVJUX0lEfSBmcm9tICcuLi9sYXlvdXQvybV3b3JrYmVuY2gtbGF5b3V0JztcbmltcG9ydCB7Q29tcG9uZW50Rml4dHVyZUF1dG9EZXRlY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBzZXQgb2YgZGVwZW5kZW5jeS1pbmplY3Rpb24gcHJvdmlkZXJzIHRvIGVuYWJsZSBhbmQgY29uZmlndXJlIHRoZSBTQ0lPTiBXb3JrYmVuY2ggaW4gdGVzdHMuXG4gKlxuICogRG9lcyB0aGUgZm9sbG93aW5nOlxuICogLSBwcm92aWRlcyB0aGUgd29ya2JlbmNoIHdpdGggZ2l2ZW4gY29uZmlnXG4gKiAtIGNvbmZpZ3VyZXMgdGhlIHdvcmtiZW5jaCB0byBuYW1lIHRoZSBpbml0aWFsIHBhcnQgJ21haW4nXG4gKiAtIGluc3RhbGxzIGEgc2VxdWVuY2UgZm9yIGFjdGl2YXRpb24gaW5zdGFudHNcbiAqIC0gY29uZmlndXJlcyB0aGUgdGVzdGJlZCB0byBhdXRvLWRldGVjdCBjaGFuZ2VzXG4gKiAtIGRpc2FibGVzIGFuaW1hdGlvbnNcbiAqIC0gcGVyZm9ybXMgdGhlIGluaXRpYWwgbmF2aWdhdGlvblxuICpcbiAqICMjIyBVc2FnZVxuICpcbiAqIGBgYFxuICogYmVmb3JlRWFjaCgoKSA9PiB7XG4gKiAgIFRlc3RCZWQuY29uZmlndXJlVGVzdGluZ01vZHVsZSh7XG4gKiAgICAgIGltcG9ydHM6IFtcbiAqICAgICAgICBXb3JrYmVuY2hUZXN0aW5nTW9kdWxlLmZvclRlc3QoKSxcbiAqICAgICAgICBSb3V0ZXJUZXN0aW5nTW9kdWxlLndpdGhSb3V0ZXMoW1xuICogICAgICAgICAge3BhdGg6ICd0ZXN0LXZpZXcnLCBjb21wb25lbnQ6IFRlc3RDb21wb25lbnR9LFxuICogICAgICAgIF0pLFxuICogICAgICBdLFxuICogICAgfSk7XG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVdvcmtiZW5jaEZvclRlc3QoY29uZmlnPzogV29ya2JlbmNoQ29uZmlnKTogRW52aXJvbm1lbnRQcm92aWRlcnMge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICBwcm92aWRlV29ya2JlbmNoKGNvbmZpZyksXG4gICAgcHJvdmlkZU5vb3BBbmltYXRpb25zKCksXG4gICAge3Byb3ZpZGU6IEFjdGl2YXRpb25JbnN0YW50UHJvdmlkZXIsIHVzZUNsYXNzOiBTZXF1ZW5jZUluc3RhbnRQcm92aWRlcn0sXG4gICAge3Byb3ZpZGU6IE1BSU5fQVJFQV9JTklUSUFMX1BBUlRfSUQsIHVzZVZhbHVlOiAnbWFpbid9LFxuICAgIHtwcm92aWRlOiBDb21wb25lbnRGaXh0dXJlQXV0b0RldGVjdCwgdXNlVmFsdWU6IHRydWV9LFxuICAgIHtwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgbXVsdGk6IHRydWUsIHVzZVZhbHVlOiAoKSA9PiBpbmplY3QoUm91dGVyKS5pbml0aWFsTmF2aWdhdGlvbigpfSxcbiAgICB7cHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsIG11bHRpOiB0cnVlLCB1c2VWYWx1ZTogKCkgPT4gbG9jYWxTdG9yYWdlLmNsZWFyKCl9LFxuICAgIHtwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgbXVsdGk6IHRydWUsIHVzZVZhbHVlOiAoKSA9PiB3aW5kb3cubmFtZSA9ICcnfSxcbiAgXSk7XG59XG5cbkBJbmplY3RhYmxlKC8qIERPIE5PVCBQUk9WSURFIHZpYSAncHJvdmlkZWRJbicgbWV0YWRhdGEgYXMgcmVnaXN0ZXJlZCBvbmx5IGlmIHVzaW5nIGBXb3JrYmVuY2hUZXN0aW5nTW9kdWxlYC4gKi8pXG5jbGFzcyBTZXF1ZW5jZUluc3RhbnRQcm92aWRlciBpbXBsZW1lbnRzIEFjdGl2YXRpb25JbnN0YW50UHJvdmlkZXIge1xuXG4gIHByaXZhdGUgX3NlcXVlbmNlID0gMDtcblxuICBwdWJsaWMgbm93KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcXVlbmNlKys7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -66,11 +66,11 @@ export class WorkbenchThemeSwitcher {
|
|
|
66
66
|
await this.switchTheme(theme);
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
70
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
69
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchThemeSwitcher, deps: [{ token: i1.WorkbenchStorage }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
70
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchThemeSwitcher, providedIn: 'root' }); }
|
|
71
71
|
}
|
|
72
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: WorkbenchThemeSwitcher, decorators: [{
|
|
73
73
|
type: Injectable,
|
|
74
74
|
args: [{ providedIn: 'root' }]
|
|
75
75
|
}], ctorParameters: () => [{ type: i1.WorkbenchStorage }] });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2JlbmNoLXRoZW1lLXN3aXRjaGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY2lvbi93b3JrYmVuY2gvc3JjL2xpYi90aGVtZS93b3JrYmVuY2gtdGhlbWUtc3dpdGNoZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQUlwRTs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQUcsdUJBQXVCLENBQUM7QUFFbEQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBV2pDLFlBQW9CLGlCQUFtQztRQUFuQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBVHRDLGtCQUFhLEdBQUcsTUFBTSxDQUFXLFFBQVEsQ0FBQyxDQUFDLGVBQWUsQ0FBQztRQVUxRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEQsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7T0FFRztJQUNLLFlBQVk7UUFDbEIsT0FBTyxJQUFJLFVBQVUsQ0FBd0IsUUFBUSxDQUFDLEVBQUU7WUFDdEQsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBQyxlQUFlLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBQyxDQUFDO2lCQUNyRixJQUFJLENBQ0gsU0FBUyxDQUFDLFNBQWlCLENBQUMsRUFDNUIsR0FBRyxDQUFDLEdBQTBCLEVBQUU7Z0JBQzlCLE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUM7Z0JBQ2pHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDakIsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztnQkFDRCxPQUFPO29CQUNMLElBQUksRUFBRSxXQUFXO29CQUNqQixXQUFXLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFdBQStCO2lCQUNsRixDQUFDO1lBQ0osQ0FBQyxDQUFDLEVBQ0Ysb0JBQW9CLEVBQUUsRUFDdEIsS0FBSyxDQUFDLEVBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBQyxDQUFDLENBQzNFO2lCQUNBLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUV2QixPQUFPLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyx3QkFBd0I7UUFDcEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbkUsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQzs4R0E3RFUsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FEVixNQUFNOzsyRkFDbEIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMyBTd2lzcyBGZWRlcmFsIFJhaWx3YXlzXG4gKlxuICogVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZVxuICogYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSAyLjBcbiAqIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBFUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBzaGFyZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtmcm9tTXV0YXRpb24kfSBmcm9tICdAc2Npb24vdG9vbGtpdC9vYnNlcnZhYmxlJztcbmltcG9ydCB7ZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1dvcmtiZW5jaFN0b3JhZ2V9IGZyb20gJy4uL3N0b3JhZ2Uvd29ya2JlbmNoLXN0b3JhZ2UnO1xuaW1wb3J0IHtXb3JrYmVuY2hUaGVtZX0gZnJvbSAnLi4vd29ya2JlbmNoLm1vZGVsJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBrZXkgdG8gYXNzb2NpYXRlIHRoZSBhY3RpdmF0ZWQgdGhlbWUgaW4gdGhlIHN0b3JhZ2UuXG4gKi9cbmNvbnN0IFRIRU1FX1NUT1JBR0VfS0VZID0gJ3NjaW9uLndvcmtiZW5jaC50aGVtZSc7XG5cbi8qKlxuICogRW5hYmxlcyBzd2l0Y2hpbmcgYmV0d2VlbiB3b3JrYmVuY2ggdGhlbWVzLlxuICovXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBXb3JrYmVuY2hUaGVtZVN3aXRjaGVyIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudFJvb3QgPSBpbmplY3Q8RG9jdW1lbnQ+KERPQ1VNRU5UKS5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBjdXJyZW50IHdvcmtiZW5jaCB0aGVtZS5cbiAgICpcbiAgICogVXBvbiBzdWJzY3JpcHRpb24sIGVtaXRzIHRoZSBjdXJyZW50IHRoZW1lLCBhbmQgdGhlbiBjb250aW51b3VzbHkgZW1pdHMgd2hlbiBzd2l0Y2hpbmcgdGhlIHRoZW1lLiBJdCBuZXZlciBjb21wbGV0ZXMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdGhlbWUkOiBPYnNlcnZhYmxlPFdvcmtiZW5jaFRoZW1lIHwgbnVsbD47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfd29ya2JlbmNoU3RvcmFnZTogV29ya2JlbmNoU3RvcmFnZSkge1xuICAgIHRoaXMudGhlbWUkID0gdGhpcy5kZXRlY3RUaGVtZSQoKTtcbiAgICB0aGlzLmFjdGl2YXRlVGhlbWVGcm9tU3RvcmFnZSgpLnRoZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTd2l0Y2hlcyB0aGUgdGhlbWUgb2YgdGhlIHdvcmtiZW5jaC5cbiAgICpcbiAgICogQHBhcmFtIHRoZW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRoZW1lIHRvIHN3aXRjaCB0by5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBzd2l0Y2hUaGVtZSh0aGVtZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5fZG9jdW1lbnRSb290LnNldEF0dHJpYnV0ZSgnc2NpLXRoZW1lJywgdGhlbWUpO1xuICAgIGF3YWl0IHRoaXMuX3dvcmtiZW5jaFN0b3JhZ2Uuc3RvcmUoVEhFTUVfU1RPUkFHRV9LRVksIHRoZW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlY3RzIHRoZSBjdXJyZW50IHdvcmtiZW5jaCB0aGVtZSBmcm9tIHRoZSBIVE1MIHJvb3QgZWxlbWVudC5cbiAgICovXG4gIHByaXZhdGUgZGV0ZWN0VGhlbWUkKCk6IE9ic2VydmFibGU8V29ya2JlbmNoVGhlbWUgfCBudWxsPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFdvcmtiZW5jaFRoZW1lIHwgbnVsbD4ob2JzZXJ2ZXIgPT4ge1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gZnJvbU11dGF0aW9uJCh0aGlzLl9kb2N1bWVudFJvb3QsIHthdHRyaWJ1dGVGaWx0ZXI6IFsnc2NpLXRoZW1lJ119KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBzdGFydFdpdGgodW5kZWZpbmVkIGFzIHZvaWQpLFxuICAgICAgICAgIG1hcCgoKTogV29ya2JlbmNoVGhlbWUgfCBudWxsID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGl2ZVRoZW1lID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9kb2N1bWVudFJvb3QpLmdldFByb3BlcnR5VmFsdWUoJy0tc2NpLXRoZW1lJykgfHwgbnVsbDtcbiAgICAgICAgICAgIGlmICghYWN0aXZlVGhlbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBuYW1lOiBhY3RpdmVUaGVtZSxcbiAgICAgICAgICAgICAgY29sb3JTY2hlbWU6IGdldENvbXB1dGVkU3R5bGUodGhpcy5fZG9jdW1lbnRSb290KS5jb2xvclNjaGVtZSBhcyAnbGlnaHQnIHwgJ2RhcmsnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgIHNoYXJlKHtjb25uZWN0b3I6ICgpID0+IG5ldyBSZXBsYXlTdWJqZWN0KDEpLCByZXNldE9uUmVmQ291bnRaZXJvOiBmYWxzZX0pLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUob2JzZXJ2ZXIpO1xuXG4gICAgICByZXR1cm4gKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWN0aXZhdGVzIHRoZSB0aGVtZSBmcm9tIHN0b3JhZ2UsIGlmIGFueS5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYWN0aXZhdGVUaGVtZUZyb21TdG9yYWdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHRoZW1lID0gYXdhaXQgdGhpcy5fd29ya2JlbmNoU3RvcmFnZS5sb2FkKFRIRU1FX1NUT1JBR0VfS0VZKTtcbiAgICBpZiAodGhlbWUpIHtcbiAgICAgIGF3YWl0IHRoaXMuc3dpdGNoVGhlbWUodGhlbWUpO1xuICAgIH1cbiAgfVxufVxuIl19
|