@microsoft/windows-admin-center-sdk 2.186.0 → 2.294.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/angular/assets/strings/cs-CZ/strings.json +1 -1
- package/angular/assets/strings/de-DE/strings.json +1 -1
- package/angular/assets/strings/es-ES/strings.json +1 -1
- package/angular/assets/strings/fr-FR/strings.json +1 -1
- package/angular/assets/strings/hu-HU/strings.json +1 -1
- package/angular/assets/strings/it-IT/strings.json +1 -1
- package/angular/assets/strings/ja-JP/strings.json +1 -1
- package/angular/assets/strings/ko-KR/strings.json +1 -1
- package/angular/assets/strings/nl-NL/strings.json +1 -1
- package/angular/assets/strings/pl-PL/strings.json +1 -1
- package/angular/assets/strings/pt-BR/strings.json +1 -1
- package/angular/assets/strings/pt-PT/strings.json +1 -1
- package/angular/assets/strings/ru-RU/strings.json +1 -1
- package/angular/assets/strings/strings.json +1 -1
- package/angular/assets/strings/sv-SE/strings.json +1 -1
- package/angular/assets/strings/tr-TR/strings.json +1 -1
- package/angular/assets/strings/zh-CN/strings.json +1 -1
- package/angular/assets/strings/zh-TW/strings.json +1 -1
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js +1103 -1209
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js.map +1 -1
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js +2 -2
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js.map +1 -1
- package/angular/esm2015/src/controls/actions/actions.module.js +2 -2
- package/angular/esm2015/src/controls/actions/containers/action-bar/action-bar.component.js +2 -2
- package/angular/esm2015/src/controls/actions/items/action-button/action-button-renderer.component.js +5 -5
- package/angular/esm2015/src/controls/actions/items/action-dropdown/action-dropdown.component.js +31 -13
- package/angular/esm2015/src/controls/actions/items/action-item.component.js +7 -3
- package/angular/esm2015/src/controls/badge/badge-base.component.js +2 -13
- package/angular/esm2015/src/controls/badge/bugfixes-feature-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/coming-soon-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/credssp-enabled-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/critical-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/custom-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/feedback-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/improvement-feature-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/new-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/new-feature-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/preview-badge.component.js +42 -70
- package/angular/esm2015/src/controls/badge/warning-badge.component.js +42 -70
- package/angular/esm2015/src/controls/breadcrumb/breadcrumb.component.js +6 -6
- package/angular/esm2015/src/controls/breadcrumb-header/breadcrumb-header.component.js +2 -2
- package/angular/esm2015/src/controls/data-table/data-table-column.component.js +5 -3
- package/angular/esm2015/src/controls/data-table/data-table.component.js +20 -26
- package/angular/esm2015/src/controls/data-table/extensions/data-table-column-picker-extension.js +2 -1
- package/angular/esm2015/src/controls/details/details.component.js +2 -2
- package/angular/esm2015/src/controls/dialog/base-dialog.component.js +1 -1
- package/angular/esm2015/src/controls/dialog/confirmation-dialog/confirmation-dialog.component.js +20 -30
- package/angular/esm2015/src/controls/dialog/dialog.service.js +7 -3
- package/angular/esm2015/src/controls/dropdown/dropdown.component.js +2 -2
- package/angular/esm2015/src/controls/form/form-field/array/array-form-field.component.js +50 -40
- package/angular/esm2015/src/controls/form/form-field/checklist/checklist-form-field.component.js +3 -3
- package/angular/esm2015/src/controls/form/form-field/combobox/combobox-form-field.component.js +14 -13
- package/angular/esm2015/src/controls/form/form-field/datetime/datetime-form-field.component.js +2 -2
- package/angular/esm2015/src/controls/form/form-field/form-field.component.js +16 -4
- package/angular/esm2015/src/controls/form/form-field/options-form-field/form-field-option.component.js +5 -3
- package/angular/esm2015/src/controls/form/form-field/ordered-list/ordered-list-form-field.component.js +25 -21
- package/angular/esm2015/src/controls/form/form-field/radio-group/classic/radio-group-form-field.component.js +5 -5
- package/angular/esm2015/src/controls/form/form-field/search/search-form-field.component.js +2 -2
- package/angular/esm2015/src/controls/form/form-field/tags/tags-form-field.component.js +2 -2
- package/angular/esm2015/src/controls/form/validation-alert/validation-alert.component.js +4 -10
- package/angular/esm2015/src/controls/form/validation-alert/validation-alert.js +1 -1
- package/angular/esm2015/src/controls/horizontal-bar-chart/stacked-horizontal-bar-chart.component.js +17 -1
- package/angular/esm2015/src/controls/icon/layered-icon/layered-icon.component.js +12 -1
- package/angular/esm2015/src/controls/icon/layered-icon/status/status-icon.component.js +53 -9
- package/angular/esm2015/src/controls/loading-wheel/loading-wheel.component.js +17 -1
- package/angular/esm2015/src/controls/master-view/master-view.component.js +34 -30
- package/angular/esm2015/src/controls/pivot/pivot-tab.component.js +1 -1
- package/angular/esm2015/src/controls/pivot/pivot.component.js +21 -9
- package/angular/esm2015/src/controls/property-grid/property-grid.component.js +13 -29
- package/angular/esm2015/src/controls/schema-form/schema-form-content.component.js +7 -4
- package/angular/esm2015/src/controls/settings/common-settings/common-settings.component.js +23 -35
- package/angular/esm2015/src/controls/settings/settings.component.js +28 -1
- package/angular/esm2015/src/controls/settings/settings.module.js +8 -3
- package/angular/esm2015/src/controls/tooltip/tooltip-host.component.js +16 -5
- package/angular/esm2015/src/controls/wizard/wizard.component.js +38 -6
- package/angular/esm2015/src/directives/clamp/clamp.directive.js +26 -7
- package/angular/esm2015/src/directives/discard/discard.directive.js +2 -2
- package/angular/esm2015/src/directives/markdown/markdown.directive.js +5 -18
- package/angular/esm2015/src/generated/strings.js +1 -1
- package/angular/esm2015/src/guards/experiment.guard.service.js +14 -1
- package/angular/esm2015/src/pipes/boolean-converter-pipe.js +11 -1
- package/angular/esm2015/src/pipes/byte-unit-converter-pipe.js +11 -1
- package/angular/esm2015/src/pipes/enum-converter-pipe.js +16 -1
- package/angular/esm2015/src/pipes/format-pipe.js +11 -1
- package/angular/esm2015/src/pipes/highlight-pipe.js +11 -1
- package/angular/esm2015/src/pipes/yesno-converter-pipe.js +11 -1
- package/angular/esm2015/src/service/gateway.service.js +8 -5
- package/angular/esm2015/src/service/notification.service.js +23 -1
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js +1042 -1069
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js.map +1 -1
- package/angular/package.json +0 -1
- package/angular/src/controls/actions/items/action-dropdown/action-dropdown.component.d.ts +2 -0
- package/angular/src/controls/actions/items/action-item.component.d.ts +11 -1
- package/angular/src/controls/badge/badge-base.component.d.ts +0 -4
- package/angular/src/controls/data-table/data-table-column.component.d.ts +2 -1
- package/angular/src/controls/data-table/data-table.component.d.ts +4 -0
- package/angular/src/controls/dialog/base-dialog.component.d.ts +1 -1
- package/angular/src/controls/form/form-field/form-field.component.d.ts +10 -1
- package/angular/src/controls/form/form-field/options-form-field/form-field-option.component.d.ts +5 -1
- package/angular/src/controls/form/validation-alert/validation-alert.component.d.ts +0 -4
- package/angular/src/controls/form/validation-alert/validation-alert.d.ts +0 -1
- package/angular/src/controls/horizontal-bar-chart/stacked-horizontal-bar-chart.component.d.ts +16 -0
- package/angular/src/controls/icon/layered-icon/layered-icon.component.d.ts +11 -0
- package/angular/src/controls/icon/layered-icon/status/status-icon.component.d.ts +13 -2
- package/angular/src/controls/loading-wheel/loading-wheel.component.d.ts +16 -0
- package/angular/src/controls/master-view/master-view.component.d.ts +1 -0
- package/angular/src/controls/pivot/pivot-tab.component.d.ts +0 -1
- package/angular/src/controls/pivot/pivot.component.d.ts +4 -0
- package/angular/src/controls/settings/common-settings/common-settings.component.d.ts +6 -5
- package/angular/src/controls/settings/settings.component.d.ts +27 -0
- package/angular/src/controls/settings/settings.module.d.ts +7 -6
- package/angular/src/controls/tooltip/tooltip-host.component.d.ts +1 -1
- package/angular/src/controls/wizard/wizard.component.d.ts +23 -0
- package/angular/src/directives/clamp/clamp.directive.d.ts +5 -0
- package/angular/src/directives/markdown/markdown.directive.d.ts +2 -3
- package/angular/src/generated/strings.d.ts +9 -0
- package/angular/src/guards/experiment.guard.service.d.ts +13 -0
- package/angular/src/pipes/boolean-converter-pipe.d.ts +10 -0
- package/angular/src/pipes/byte-unit-converter-pipe.d.ts +10 -0
- package/angular/src/pipes/enum-converter-pipe.d.ts +15 -0
- package/angular/src/pipes/format-pipe.d.ts +10 -0
- package/angular/src/pipes/highlight-pipe.d.ts +10 -0
- package/angular/src/pipes/yesno-converter-pipe.d.ts +10 -0
- package/angular/src/service/gateway.service.d.ts +3 -1
- package/angular/src/service/notification.service.d.ts +22 -0
- package/core/base/environment.d.ts +7 -0
- package/core/base/environment.js.map +1 -1
- package/core/base/versioned-object.js +2 -2
- package/core/base/versioned-object.js.map +1 -1
- package/core/data/cim-stream.js +8 -1
- package/core/data/cim-stream.js.map +1 -1
- package/core/data/core-environment.d.ts +4 -0
- package/core/data/core-environment.js +1 -0
- package/core/data/core-environment.js.map +1 -1
- package/core/data/crypto.js +10 -9
- package/core/data/crypto.js.map +1 -1
- package/core/data/file-transfer.js +5 -1
- package/core/data/file-transfer.js.map +1 -1
- package/core/data/gateway-connection.d.ts +11 -1
- package/core/data/gateway-connection.js +51 -9
- package/core/data/gateway-connection.js.map +1 -1
- package/core/data/http-constants.d.ts +5 -1
- package/core/data/http-constants.js +5 -1
- package/core/data/http-constants.js.map +1 -1
- package/core/data/net.d.ts +15 -11
- package/core/data/net.js +44 -41
- package/core/data/net.js.map +1 -1
- package/core/data/node-connection.d.ts +2 -2
- package/core/data/node-connection.js.map +1 -1
- package/core/data/powershell-stream.js +11 -3
- package/core/data/powershell-stream.js.map +1 -1
- package/core/data/powershell.d.ts +17 -1
- package/core/data/powershell.js +35 -9
- package/core/data/powershell.js.map +1 -1
- package/core/data/settings-manager.d.ts +9 -0
- package/core/data/settings-manager.js +18 -1
- package/core/data/settings-manager.js.map +1 -1
- package/core/generated/powershell-scripts.d.ts +5 -4
- package/core/generated/powershell-scripts.js +5 -4
- package/core/generated/powershell-scripts.js.map +1 -1
- package/core/host/host-core-manager.d.ts +36 -0
- package/core/host/host-core-manager.js +134 -0
- package/core/host/host-core-manager.js.map +1 -0
- package/core/host/host-core-message-type.d.ts +12 -0
- package/core/host/host-core-message-type.js +17 -0
- package/core/host/host-core-message-type.js.map +1 -0
- package/core/host/host-core-messages.d.ts +14 -0
- package/core/host/host-core-messages.js +3 -0
- package/core/host/host-core-messages.js.map +1 -0
- package/core/manifest/manifest-loader.d.ts +2 -1
- package/core/manifest/manifest-loader.js +27 -18
- package/core/manifest/manifest-loader.js.map +1 -1
- package/core/notification/notification.js +4 -0
- package/core/notification/notification.js.map +1 -1
- package/core/security/authorization-manager.d.ts +44 -0
- package/core/security/authorization-manager.js +111 -5
- package/core/security/authorization-manager.js.map +1 -1
- package/core/security/sign-on-manager.d.ts +109 -0
- package/core/security/sign-on-manager.js +119 -0
- package/core/security/sign-on-manager.js.map +1 -0
- package/core/security/tag-manager.js.map +1 -1
- package/core/shared/cluster-inventory/cluster-inventory-cache.js +3 -2
- package/core/shared/cluster-inventory/cluster-inventory-cache.js.map +1 -1
- package/core/shared/gateway-inventory/gateway-inventory-cache.d.ts +1 -1
- package/core/shared/gateway-inventory/gateway-inventory-cache.js +1 -1
- package/core/shared/gateway-inventory/gateway-inventory-cache.js.map +1 -1
- package/core/shared/server-inventory/server-inventory-cache.js +2 -1
- package/core/shared/server-inventory/server-inventory-cache.js.map +1 -1
- package/core/shared/tool-inventory/tool-inventory-cache.js +1 -1
- package/core/shared/tool-inventory/tool-inventory-cache.js.map +1 -1
- package/e2e/assets/strings/cs-CZ/strings.json +1 -1
- package/e2e/assets/strings/de-DE/strings.json +1 -1
- package/e2e/assets/strings/es-ES/strings.json +1 -1
- package/e2e/assets/strings/fr-FR/strings.json +1 -1
- package/e2e/assets/strings/hu-HU/strings.json +1 -1
- package/e2e/assets/strings/it-IT/strings.json +1 -1
- package/e2e/assets/strings/ja-JP/strings.json +1 -1
- package/e2e/assets/strings/ko-KR/strings.json +1 -1
- package/e2e/assets/strings/nl-NL/strings.json +1 -1
- package/e2e/assets/strings/pl-PL/strings.json +1 -1
- package/e2e/assets/strings/pt-BR/strings.json +1 -1
- package/e2e/assets/strings/pt-PT/strings.json +1 -1
- package/e2e/assets/strings/ru-RU/strings.json +1 -1
- package/e2e/assets/strings/strings.json +1 -1
- package/e2e/assets/strings/sv-SE/strings.json +1 -1
- package/e2e/assets/strings/tr-TR/strings.json +1 -1
- package/e2e/assets/strings/zh-CN/strings.json +1 -1
- package/e2e/assets/strings/zh-TW/strings.json +1 -1
- package/package.json +5 -5
- package/styles/css/fonts.css +2 -2
- package/styles/css/main.css +1 -1
- package/styles/fonts/ServMDL2/ServMDL2-4.62.woff +0 -0
- package/styles/fonts/ServMDL2/ServMDL2.json +238 -2039
- package/styles/fonts/ServMDL2/ServMDL2.scss +238 -2039
- package/tools/gulp-manifest-resource/index.js +3 -1
- package/tools/gulp-manifest-resource/index.js.map +1 -1
- package/tools/gulp-ps-cim/index.js +1 -1
- package/tools/gulp-ps-cim/index.js.map +1 -1
- package/tools/gulp-ps-cim/powershell-cim-config-schema.json +1 -1
- package/tools/gulp-ps-code/index.js +36 -2
- package/tools/gulp-ps-code/index.js.map +1 -1
- package/tools/gulp-ps-code/ps-code-convert.js +4 -8
- package/tools/gulp-ps-code/ps-code-convert.js.map +1 -1
- package/tools/gulp-ps-resjson/index.js +79 -74
- package/tools/gulp-ps-resjson/index.js.map +1 -1
- package/tools/module-template/build/pipelines/codeinspector.yml +27 -0
- package/tools/module-template/gulpfile.ts/common/lint.ts +3 -3
- package/tools/module-template/gulpfile.ts/common/pack.ts +14 -14
- package/tools/module-template/gulpfile.ts/common/ui-test-automation.ts +40 -0
- package/tools/module-template/gulpfile.ts/common/utilities.ts +10 -10
- package/tools/module-template/gulpfile.ts/common/validate.ts +14 -4
- package/tools/module-template/gulpfile.ts/index.ts +20 -8
- package/tools/wac-cli/src/upgrade/file-updater.d.ts +1 -0
- package/tools/wac-cli/src/upgrade/file-updater.js +7 -1
- package/tools/wac-cli/src/upgrade/file-updater.js.map +1 -1
- package/styles/fonts/ServMDL2/ServMDL2-4.33.woff +0 -0
|
@@ -18,17 +18,17 @@ const _c1 = ["smeTreeTable"];
|
|
|
18
18
|
const _c2 = ["container"];
|
|
19
19
|
const _c3 = ["dataView"];
|
|
20
20
|
function MasterViewComponent_h2_0_Template(rf, ctx) { if (rf & 1) {
|
|
21
|
-
i0.ɵɵelementStart(0, "h2",
|
|
21
|
+
i0.ɵɵelementStart(0, "h2", 19);
|
|
22
22
|
i0.ɵɵtext(1);
|
|
23
23
|
i0.ɵɵelementEnd();
|
|
24
24
|
} if (rf & 2) {
|
|
25
25
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
26
|
-
i0.ɵɵproperty("hidden", ctx_r0.hideHeader);
|
|
26
|
+
i0.ɵɵproperty("hidden", ctx_r0.hideHeader)("id", ctx_r0.headerId);
|
|
27
27
|
i0.ɵɵadvance(1);
|
|
28
28
|
i0.ɵɵtextInterpolate(ctx_r0.header);
|
|
29
29
|
} }
|
|
30
30
|
function MasterViewComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
31
|
-
i0.ɵɵelementStart(0, "div",
|
|
31
|
+
i0.ɵɵelementStart(0, "div", 20);
|
|
32
32
|
i0.ɵɵprojection(1, 2);
|
|
33
33
|
i0.ɵɵelementEnd();
|
|
34
34
|
} if (rf & 2) {
|
|
@@ -37,15 +37,15 @@ function MasterViewComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
37
37
|
} }
|
|
38
38
|
function MasterViewComponent_button_12_Template(rf, ctx) { if (rf & 1) {
|
|
39
39
|
const _r13 = i0.ɵɵgetCurrentView();
|
|
40
|
-
i0.ɵɵelementStart(0, "button",
|
|
40
|
+
i0.ɵɵelementStart(0, "button", 21);
|
|
41
41
|
i0.ɵɵlistener("click", function MasterViewComponent_button_12_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return ctx_r12.doClearSelection($event); });
|
|
42
|
-
i0.ɵɵelementStart(1, "i",
|
|
42
|
+
i0.ɵɵelementStart(1, "i", 22);
|
|
43
43
|
i0.ɵɵtext(2);
|
|
44
44
|
i0.ɵɵelementEnd();
|
|
45
|
-
i0.ɵɵelementStart(3, "i",
|
|
45
|
+
i0.ɵɵelementStart(3, "i", 23);
|
|
46
46
|
i0.ɵɵtext(4);
|
|
47
47
|
i0.ɵɵelementEnd();
|
|
48
|
-
i0.ɵɵelement(5, "i",
|
|
48
|
+
i0.ɵɵelement(5, "i", 24);
|
|
49
49
|
i0.ɵɵelementEnd();
|
|
50
50
|
} if (rf & 2) {
|
|
51
51
|
const ctx_r4 = i0.ɵɵnextContext();
|
|
@@ -58,9 +58,9 @@ function MasterViewComponent_button_12_Template(rf, ctx) { if (rf & 1) {
|
|
|
58
58
|
} }
|
|
59
59
|
function MasterViewComponent_button_14_Template(rf, ctx) { if (rf & 1) {
|
|
60
60
|
const _r15 = i0.ɵɵgetCurrentView();
|
|
61
|
-
i0.ɵɵelementStart(0, "button",
|
|
61
|
+
i0.ɵɵelementStart(0, "button", 25);
|
|
62
62
|
i0.ɵɵlistener("click", function MasterViewComponent_button_14_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r15); const ctx_r14 = i0.ɵɵnextContext(); return ctx_r14.columnPicker.next(); });
|
|
63
|
-
i0.ɵɵelement(1, "span",
|
|
63
|
+
i0.ɵɵelement(1, "span", 26);
|
|
64
64
|
i0.ɵɵelementEnd();
|
|
65
65
|
} if (rf & 2) {
|
|
66
66
|
const ctx_r5 = i0.ɵɵnextContext();
|
|
@@ -70,9 +70,9 @@ function MasterViewComponent_button_14_Template(rf, ctx) { if (rf & 1) {
|
|
|
70
70
|
} }
|
|
71
71
|
function MasterViewComponent_button_15_Template(rf, ctx) { if (rf & 1) {
|
|
72
72
|
const _r17 = i0.ɵɵgetCurrentView();
|
|
73
|
-
i0.ɵɵelementStart(0, "button",
|
|
73
|
+
i0.ɵɵelementStart(0, "button", 27);
|
|
74
74
|
i0.ɵɵlistener("click", function MasterViewComponent_button_15_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(); return ctx_r16.refresh.next(); });
|
|
75
|
-
i0.ɵɵelement(1, "span",
|
|
75
|
+
i0.ɵɵelement(1, "span", 28);
|
|
76
76
|
i0.ɵɵelementEnd();
|
|
77
77
|
} if (rf & 2) {
|
|
78
78
|
const ctx_r6 = i0.ɵɵnextContext();
|
|
@@ -81,9 +81,9 @@ function MasterViewComponent_button_15_Template(rf, ctx) { if (rf & 1) {
|
|
|
81
81
|
} }
|
|
82
82
|
function MasterViewComponent_button_16_Template(rf, ctx) { if (rf & 1) {
|
|
83
83
|
const _r19 = i0.ɵɵgetCurrentView();
|
|
84
|
-
i0.ɵɵelementStart(0, "button",
|
|
84
|
+
i0.ɵɵelementStart(0, "button", 29);
|
|
85
85
|
i0.ɵɵlistener("click", function MasterViewComponent_button_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r19); const ctx_r18 = i0.ɵɵnextContext(); return ctx_r18.filter.next(); });
|
|
86
|
-
i0.ɵɵelement(1, "span",
|
|
86
|
+
i0.ɵɵelement(1, "span", 30);
|
|
87
87
|
i0.ɵɵelementEnd();
|
|
88
88
|
} if (rf & 2) {
|
|
89
89
|
const ctx_r7 = i0.ɵɵnextContext();
|
|
@@ -93,9 +93,9 @@ function MasterViewComponent_button_16_Template(rf, ctx) { if (rf & 1) {
|
|
|
93
93
|
} }
|
|
94
94
|
function MasterViewComponent_button_17_Template(rf, ctx) { if (rf & 1) {
|
|
95
95
|
const _r21 = i0.ɵɵgetCurrentView();
|
|
96
|
-
i0.ɵɵelementStart(0, "button",
|
|
96
|
+
i0.ɵɵelementStart(0, "button", 29);
|
|
97
97
|
i0.ɵɵlistener("click", function MasterViewComponent_button_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r21); const ctx_r20 = i0.ɵɵnextContext(); return ctx_r20.group.next(); });
|
|
98
|
-
i0.ɵɵelement(1, "span",
|
|
98
|
+
i0.ɵɵelement(1, "span", 31);
|
|
99
99
|
i0.ɵɵelementEnd();
|
|
100
100
|
} if (rf & 2) {
|
|
101
101
|
const ctx_r8 = i0.ɵɵnextContext();
|
|
@@ -104,13 +104,13 @@ function MasterViewComponent_button_17_Template(rf, ctx) { if (rf & 1) {
|
|
|
104
104
|
i0.ɵɵattribute("aria-label", ctx_r8.resourceStrings.group.title);
|
|
105
105
|
} }
|
|
106
106
|
function MasterViewComponent_div_19_Template(rf, ctx) { if (rf & 1) {
|
|
107
|
-
i0.ɵɵelementStart(0, "div",
|
|
107
|
+
i0.ɵɵelementStart(0, "div", 32);
|
|
108
108
|
i0.ɵɵprojection(1, 3);
|
|
109
109
|
i0.ɵɵelementEnd();
|
|
110
110
|
} }
|
|
111
111
|
function MasterViewComponent_form_20_Template(rf, ctx) { if (rf & 1) {
|
|
112
|
-
i0.ɵɵelementStart(0, "form",
|
|
113
|
-
i0.ɵɵelementStart(1, "div",
|
|
112
|
+
i0.ɵɵelementStart(0, "form", 33);
|
|
113
|
+
i0.ɵɵelementStart(1, "div", 34);
|
|
114
114
|
i0.ɵɵprojection(2, 4);
|
|
115
115
|
i0.ɵɵelementEnd();
|
|
116
116
|
i0.ɵɵelementEnd();
|
|
@@ -161,6 +161,7 @@ export class MasterViewComponent extends CoreBaseComponent {
|
|
|
161
161
|
this.addClass('sme-arrange-stack-v');
|
|
162
162
|
this.addClass('sme-arrange-overflow-hide-y');
|
|
163
163
|
this.addClass('sme-arrange-overflow-auto-x');
|
|
164
|
+
this.headerId = 'master-view-header' + this.componentId;
|
|
164
165
|
}
|
|
165
166
|
/**
|
|
166
167
|
* The source name to use for logging
|
|
@@ -342,7 +343,7 @@ export class MasterViewComponent extends CoreBaseComponent {
|
|
|
342
343
|
setupDataTableAccessibility() {
|
|
343
344
|
if (this.internalSmeDataTable) {
|
|
344
345
|
if (this.header) {
|
|
345
|
-
this.internalSmeDataTable.tableAriaLabelledBy =
|
|
346
|
+
this.internalSmeDataTable.tableAriaLabelledBy = this.headerId;
|
|
346
347
|
}
|
|
347
348
|
else if (this.pivotComponent) {
|
|
348
349
|
const selectedTab = this.pivotComponent.tabs.toArray().filter(item => this.pivotComponent.isSelected(item))[0];
|
|
@@ -359,7 +360,8 @@ export class MasterViewComponent extends CoreBaseComponent {
|
|
|
359
360
|
createIdBag() {
|
|
360
361
|
return {
|
|
361
362
|
filterLabel: '',
|
|
362
|
-
columnPickerLabel: ''
|
|
363
|
+
columnPickerLabel: '',
|
|
364
|
+
itemCountLabel: ''
|
|
363
365
|
};
|
|
364
366
|
}
|
|
365
367
|
}
|
|
@@ -384,9 +386,9 @@ export class MasterViewComponent extends CoreBaseComponent {
|
|
|
384
386
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dataView = _t.first);
|
|
385
387
|
} }, hostBindings: function MasterViewComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
386
388
|
i0.ɵɵlistener("resize", function MasterViewComponent_resize_HostBindingHandler() { return ctx.updateLayout(); }, false, i0.ɵɵresolveWindow);
|
|
387
|
-
} }, inputs: { noSideMargin: "noSideMargin", hideHeader: "hideHeader", header: "header", total: "total", showSelection: "showSelection", showColumnPicker: "showColumnPicker", columnPickerActive: "columnPickerActive", showRefresh: "showRefresh", disableRefresh: "disableRefresh", dataTableMinWidth: "dataTableMinWidth", showFilter: "showFilter", filterActive: "filterActive", enableQueryEditor: "enableQueryEditor", selection: "selection", requireDataItemUniqueId: "requireDataItemUniqueId", showCustomFilter: "showCustomFilter", groupActive: "groupActive", stretchToAbsolute: "stretchToAbsolute", autoExpandDetailsPane: "autoExpandDetailsPane", showGroup: "showGroup" }, outputs: { selectionChange: "selectionChange", columnPicker: "columnPicker", refresh: "refresh", filter: "filter", group: "group", clearSelection: "clearSelection" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c5, decls: 24, vars:
|
|
389
|
+
} }, inputs: { noSideMargin: "noSideMargin", hideHeader: "hideHeader", header: "header", total: "total", showSelection: "showSelection", showColumnPicker: "showColumnPicker", columnPickerActive: "columnPickerActive", showRefresh: "showRefresh", disableRefresh: "disableRefresh", dataTableMinWidth: "dataTableMinWidth", showFilter: "showFilter", filterActive: "filterActive", enableQueryEditor: "enableQueryEditor", selection: "selection", requireDataItemUniqueId: "requireDataItemUniqueId", showCustomFilter: "showCustomFilter", groupActive: "groupActive", stretchToAbsolute: "stretchToAbsolute", autoExpandDetailsPane: "autoExpandDetailsPane", showGroup: "showGroup" }, outputs: { selectionChange: "selectionChange", columnPicker: "columnPicker", refresh: "refresh", filter: "filter", group: "group", clearSelection: "clearSelection" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c5, decls: 24, vars: 27, consts: [["class", "sme-position-flex-none sme-padding-squish-v-lg sme-arrange-word-wrap-break-word sme-font-h3", 3, "hidden", "id", 4, "ngIf"], [3, "layoutChanged"], ["layout", ""], ["name", "narrow", 3, "until"], ["class", "sme-position-flex-none", 3, "sme-padding-horizontal-sm", 4, "ngIf"], [1, "sme-position-flex-none", "sme-arrange-stack-reversed"], ["container", ""], [1, "sme-position-flex-none", "sme-arrange-stack-h"], [1, "sme-focus-zone", "sme-position-flex-none", "sme-arrange-stack-h", "sme-arrange-ws-nowrap", "sme-scheme-secondary-text"], ["role", "status", 1, "sme-layout-action-bar-item", "sme-padding-horizontal-sm", 3, "id"], ["type", "button", "role", "button", "class", "sme-button-trigger sme-layout-action-bar-item-height sme-scheme-secondary-text sme-button-auto-width", 3, "click", 4, "ngIf"], [1, "sme-focus-zone", "sme-arrange-ws-nowrap"], ["type", "button", "role", "button", "class", "sme-layout-action-bar-item-height sme-button-trigger sme-button-auto-width", "data-uta-id", "column-picker-button", 3, "title", "sme-toggled", "click", 4, "ngIf"], ["type", "button", "role", "button", "class", "sme-layout-action-bar-item-height sme-button-trigger sme-button-auto-width", 3, "disabled", "title", "click", 4, "ngIf"], ["type", "button", "role", "button", "class", "sme-layout-action-bar-item-height sme-button-trigger sme-button-auto-width", 3, "title", "sme-toggled", "click", 4, "ngIf"], [1, "sme-focus-zone"], ["class", "sme-margin-horizontal-sm", 4, "ngIf"], ["style", "position: relative;", 4, "ngIf"], ["dataView", ""], [1, "sme-position-flex-none", "sme-padding-squish-v-lg", "sme-arrange-word-wrap-break-word", "sme-font-h3", 3, "hidden", "id"], [1, "sme-position-flex-none"], ["type", "button", "role", "button", 1, "sme-button-trigger", "sme-layout-action-bar-item-height", "sme-scheme-secondary-text", "sme-button-auto-width", 3, "click"], ["aria-hidden", "true"], [1, "sme-screen-reader"], ["aria-hidden", "true", 1, "sme-icon", "sme-icon-clear", "sme-margin-left-xs", 3, "title"], ["type", "button", "role", "button", "data-uta-id", "column-picker-button", 1, "sme-layout-action-bar-item-height", "sme-button-trigger", "sme-button-auto-width", 3, "title", "click"], [1, "sme-icon", "sme-icon-tripleColumn"], ["type", "button", "role", "button", 1, "sme-layout-action-bar-item-height", "sme-button-trigger", "sme-button-auto-width", 3, "disabled", "title", "click"], [1, "sme-icon", "sme-icon-refresh"], ["type", "button", "role", "button", 1, "sme-layout-action-bar-item-height", "sme-button-trigger", "sme-button-auto-width", 3, "title", "click"], [1, "sme-icon", "sme-icon-filter"], [1, "sme-icon", "sme-icon-groupedList"], [1, "sme-margin-horizontal-sm"], [2, "position", "relative"], [1, "sme-position-flex-none", "sme-layout-action-bar-item"]], template: function MasterViewComponent_Template(rf, ctx) { if (rf & 1) {
|
|
388
390
|
i0.ɵɵprojectionDef(_c4);
|
|
389
|
-
i0.ɵɵtemplate(0, MasterViewComponent_h2_0_Template, 2,
|
|
391
|
+
i0.ɵɵtemplate(0, MasterViewComponent_h2_0_Template, 2, 3, "h2", 0);
|
|
390
392
|
i0.ɵɵelementStart(1, "sme-layout", 1, 2);
|
|
391
393
|
i0.ɵɵlistener("layoutChanged", function MasterViewComponent_Template_sme_layout_layoutChanged_1_listener() { return ctx.updateActionBar(); });
|
|
392
394
|
i0.ɵɵelement(3, "sme-layout-definition", 3);
|
|
@@ -404,16 +406,16 @@ export class MasterViewComponent extends CoreBaseComponent {
|
|
|
404
406
|
i0.ɵɵelementStart(13, "div", 11);
|
|
405
407
|
i0.ɵɵtemplate(14, MasterViewComponent_button_14_Template, 2, 4, "button", 12);
|
|
406
408
|
i0.ɵɵtemplate(15, MasterViewComponent_button_15_Template, 2, 3, "button", 13);
|
|
407
|
-
i0.ɵɵtemplate(16, MasterViewComponent_button_16_Template, 2, 4, "button",
|
|
408
|
-
i0.ɵɵtemplate(17, MasterViewComponent_button_17_Template, 2, 4, "button",
|
|
409
|
+
i0.ɵɵtemplate(16, MasterViewComponent_button_16_Template, 2, 4, "button", 14);
|
|
410
|
+
i0.ɵɵtemplate(17, MasterViewComponent_button_17_Template, 2, 4, "button", 14);
|
|
409
411
|
i0.ɵɵelementEnd();
|
|
410
|
-
i0.ɵɵelementStart(18, "div",
|
|
411
|
-
i0.ɵɵtemplate(19, MasterViewComponent_div_19_Template, 2, 0, "div",
|
|
412
|
+
i0.ɵɵelementStart(18, "div", 15);
|
|
413
|
+
i0.ɵɵtemplate(19, MasterViewComponent_div_19_Template, 2, 0, "div", 16);
|
|
412
414
|
i0.ɵɵelementEnd();
|
|
413
|
-
i0.ɵɵtemplate(20, MasterViewComponent_form_20_Template, 3, 0, "form",
|
|
415
|
+
i0.ɵɵtemplate(20, MasterViewComponent_form_20_Template, 3, 0, "form", 17);
|
|
414
416
|
i0.ɵɵelementEnd();
|
|
415
417
|
i0.ɵɵelementEnd();
|
|
416
|
-
i0.ɵɵelementStart(21, "div", null,
|
|
418
|
+
i0.ɵɵelementStart(21, "div", null, 18);
|
|
417
419
|
i0.ɵɵprojection(23, 1);
|
|
418
420
|
i0.ɵɵelementEnd();
|
|
419
421
|
} if (rf & 2) {
|
|
@@ -429,7 +431,9 @@ export class MasterViewComponent extends CoreBaseComponent {
|
|
|
429
431
|
i0.ɵɵclassProp("sme-padding-horizontal-sm", !ctx.noSideMargin)("sme-padding-left-sm", ctx.noSideMargin);
|
|
430
432
|
i0.ɵɵadvance(1);
|
|
431
433
|
i0.ɵɵclassProp("sme-margin-right-xs", ctx.selectedItemCount === 0 || !ctx.showSelection);
|
|
432
|
-
i0.ɵɵadvance(
|
|
434
|
+
i0.ɵɵadvance(1);
|
|
435
|
+
i0.ɵɵproperty("id", ctx.idBag.itemCountLabel);
|
|
436
|
+
i0.ɵɵadvance(1);
|
|
433
437
|
i0.ɵɵtextInterpolate(ctx.getItemCountText());
|
|
434
438
|
i0.ɵɵadvance(1);
|
|
435
439
|
i0.ɵɵproperty("ngIf", ctx.selectedItemCount > 0 && ctx.showSelection);
|
|
@@ -533,4 +537,4 @@ export class MasterViewComponent extends CoreBaseComponent {
|
|
|
533
537
|
type: HostListener,
|
|
534
538
|
args: ['window:resize']
|
|
535
539
|
}] }); })();
|
|
536
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzdGVyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvbWFzdGVyLXZpZXcvbWFzdGVyLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvbWFzdGVyLXZpZXcvbWFzdGVyLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBRVosVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBR04sUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7OztJQzNCeEUsOEJBQ2tEO0lBQUEsWUFBVTtJQUFBLGlCQUFLOzs7SUFBN0QsMENBQXFCO0lBQXlCLGVBQVU7SUFBVixtQ0FBVTs7O0lBSTVELCtCQUFnSDtJQUU1RyxxQkFBbUQ7SUFDdkQsaUJBQU07OztJQUh3RCxpRUFBaUQ7Ozs7SUFnQm5HLGtDQUVzRjtJQUFuQyxnTkFBa0M7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LEtBQUs7WUFFVSxrQkFBa0I7a0JBQWpDLEtBQUs7WUFFVSxXQUFXO2tCQUExQixLQUFLO1lBRVUsY0FBYztrQkFBN0IsS0FBSztZQUVVLGlCQUFpQjtrQkFBaEMsS0FBSztZQUVVLFVBQVU7a0JBQXpCLEtBQUs7WUFFVSxZQUFZO2tCQUEzQixLQUFLO1lBRVUsaUJBQWlCO2tCQUFoQyxLQUFLO1lBRWMsU0FBUztrQkFBNUIsS0FBSztZQVdDLGVBQWU7a0JBRHJCLE1BQU07WUFJQSx1QkFBdUI7a0JBRDdCLEtBQUs7WUFPSyxnQkFBZ0I7a0JBRDFCLEtBQUs7WUFVVSxXQUFXO2tCQUExQixLQUFLO1lBR0MsaUJBQWlCO2tCQUR2QixLQUFLO1lBSUMscUJBQXFCO2tCQUQzQixLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLO1lBSUMsWUFBWTtrQkFEbEIsTUFBTTtZQUlBLE9BQU87a0JBRGIsTUFBTTtZQUlBLE1BQU07a0JBRFosTUFBTTtZQUlBLEtBQUs7a0JBRFgsTUFBTTtZQUlBLGNBQWM7a0JBRHBCLE1BQU07WUF5R0EsWUFBWTtrQkFEbEIsWUFBWTttQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGQsXHJcbiAgICBEb0NoZWNrLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBOZ1pvbmUsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPcHRpb25hbCxcclxuICAgIE91dHB1dCxcclxuICAgIFJlbmRlcmVyMixcclxuICAgIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEZXByZWNhdGVkIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9iYXNlL2RlY29yYXRvcnMvZGVwcmVjYXRpb24uZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IERvbSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZG9tL2RvbSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdHJpbmdzIH0gZnJvbSAnLi4vLi4vZ2VuZXJhdGVkL3N0cmluZ3MnO1xyXG5pbXBvcnQgeyBBY3Rpb25CYXJDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb25zL2NvbnRhaW5lcnMvYWN0aW9uLWJhci9hY3Rpb24tYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbW9uL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50LCBUcmVlVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VhcmNoRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9mb3JtLWZpZWxkL3NlYXJjaC9zZWFyY2gtZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQaXZvdENvbXBvbmVudCB9IGZyb20gJy4uL3Bpdm90L3Bpdm90LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwbGl0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4uL3NwbGl0LXZpZXcvc3BsaXQtdmlldy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1tYXN0ZXItdmlldycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFzdGVyLXZpZXcuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXN0ZXJWaWV3Q29tcG9uZW50IGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBEb0NoZWNrLCBPbkRlc3Ryb3ksIE9uSW5pdCB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ01hc3RlclZpZXdDb21wb25lbnQnO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIHRpbWVyOiBhbnk7XHJcbiAgICBwcml2YXRlIGN1cnJlbnREYXRhU2VsZWN0aW9uOiBhbnk7XHJcbiAgICBwcml2YXRlIGludGVybmFsU21lRGF0YVRhYmxlOiBEYXRhVGFibGVDb21wb25lbnQ7XHJcblxyXG4gICAgcHVibGljIHJlc291cmNlU3RyaW5ncyA9IHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5NYXN0ZXJWaWV3O1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoJ3NlYXJjaCcpXHJcbiAgICBwdWJsaWMgc2VhcmNoRWxlbWVudDogU2VhcmNoRm9ybUZpZWxkQ29tcG9uZW50O1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoQWN0aW9uQmFyQ29tcG9uZW50KVxyXG4gICAgcHVibGljIGFjdGlvbkJhckNvbXBvbmVudDogQWN0aW9uQmFyQ29tcG9uZW50O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpXHJcbiAgICBwdWJsaWMgY29udGFpbmVyRWxlbWVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdkYXRhVmlldycpXHJcbiAgICBwdWJsaWMgZGF0YVZpZXc6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZChEYXRhVGFibGVDb21wb25lbnQpXHJcbiAgICBwdWJsaWMgZ2V0IHNtZURhdGFUYWJsZSgpOiBEYXRhVGFibGVDb21wb25lbnQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsU21lRGF0YVRhYmxlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBzbWVEYXRhVGFibGUodmFsdWU6IERhdGFUYWJsZUNvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxTbWVEYXRhVGFibGUgPSB2YWx1ZTtcclxuICAgICAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dXBEYXRhVGFibGVBY2Nlc3NpYmlsaXR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoJ3NtZVRyZWVUYWJsZScpXHJcbiAgICBwdWJsaWMgc21lVHJlZVRhYmxlOiBUcmVlVGFibGVDb21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIG5vU2lkZU1hcmdpbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBoaWRlSGVhZGVyID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGhlYWRlciA9ICcnO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB0b3RhbCA9IDA7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIHNob3dTZWxlY3Rpb24gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93Q29sdW1uUGlja2VyID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGNvbHVtblBpY2tlckFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93UmVmcmVzaCA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVSZWZyZXNoID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGRhdGFUYWJsZU1pbldpZHRoID0gJ21kJztcclxuXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd0ZpbHRlciA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGZpbHRlckFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVRdWVyeUVkaXRvciA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbjogYW55KSB7XHJcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzZWxlY3Rpb24pKSB7XHJcbiAgICAgICAgICAgIGNvdW50ID0gc2VsZWN0aW9uLmxlbmd0aDtcclxuICAgICAgICB9IGVsc2UgaWYgKCEhc2VsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGNvdW50ID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1Db3VudCA9IGNvdW50O1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVxdWlyZURhdGFJdGVtVW5pcXVlSWQ6IChpdGVtOiBhbnkpID0+IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIDcvMTMvMTguIFBsZWFzZSB1c2UgW3Nob3dHcm91cF0sIFtncm91cEFjdGl2ZV0sIGFuZCAoZ3JvdXApIGluc3RlYWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgc2hvd0N1c3RvbUZpbHRlcih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxTaG93Q3VzdG9tRmlsdGVyID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IHNob3dDdXN0b21GaWx0ZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxTaG93Q3VzdG9tRmlsdGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW50ZXJuYWxTaG93Q3VzdG9tRmlsdGVyOiBib29sZWFuO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cEFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc3RyZXRjaFRvQWJzb2x1dGUgPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXV0b0V4cGFuZERldGFpbHNQYW5lID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dHcm91cD86IGJvb2xlYW47XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY29sdW1uUGlja2VyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVmcmVzaDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGZpbHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGdyb3VwOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2xlYXJTZWxlY3Rpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBwdWJsaWMgdXNlU2VhcmNoID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRJdGVtQ291bnQgPSAwO1xyXG4gICAgcHVibGljIGRhdGFWaWV3SGVpZ2h0ID0gMDtcclxuICAgIHB1YmxpYyBpc0RhdGFMaXN0U2Nyb2xsZWRUb3RvcCA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBzcGxpdFZpZXdQYW5lVG9nZ2xlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJpdmF0ZSBkYXRhVGFibGVPbkZpbHRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHVibGljIHJlZnJlc2hCdXR0b25BcmlhTGFiZWw6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcclxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHNwbGl0VmlldzogU3BsaXRWaWV3Q29tcG9uZW50LFxyXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcGl2b3RDb21wb25lbnQ6IFBpdm90Q29tcG9uZW50XHJcbiAgICApIHtcclxuICAgICAgICAvLyBBZnRlciB0aGUgZGlzY3Vzc2lvbiwgdGhlIHBsYW4gaXMgc3RpbGwgaGF2ZSBtYXN0ZXIgdmlldyB0byBjb29yZGluYXRlIHdpdGggc3BsaXQgdmlldyBhcyB3ZWxsIGFzIHRyZWUgdGFibGUgYW5kIGRhdGEgdGFibGUuXHJcbiAgICAgICAgLy8gSXQncyBhIGxpdHRsZSB0cmlja3kgdG8gbGV0IG1hc3RlciB2aWV3IHRvIHRhbGsgdG8gaXRzIHBhcmVudCB3aGljaCBpcyB0aGUgc3BsaXQgdmlldy5cclxuICAgICAgICAvLyBCdXQgd2UgZG8gbmVlZCBhIGNvbXBvbmVudCB0byBpbXBsZW1lbnQgdGhlIGNvbW1vbiBiZWhhdmlvciBvbiB0aGUgVUkgdG8gYXZvaWQgZHVwbGljYXRlIGNvZGUgaW4gZWFjaCB0b29sLlxyXG4gICAgICAgIC8vIEF0IHRoaXMgbW9tZW50LCBtYXN0ZXIgdmlldyBpcyB0aGUgbW9zdCBwcm9wZXIgY29tcG9uZW50LlxyXG4gICAgICAgIC8vIExvbmcgdGVybSB3aXNlLCB3ZSB3aWxsIGZpZ3VyZSBvdXQgYSBiZXR0ZXIgY29tcG9uZW50IHNpdHRpbmcgaW4gdGhlIHRvcCBsZXZlbCBvZiB0aGUgVUkgdG8gY29vcmRpbmF0ZSB3aXRoIG90aGVyIGNvbXBvbmVudHNcclxuICAgICAgICAvLyBhbmQgaW1wbGVtZW50IGNvbW1vbiBiZWhhdmlvcnMuXHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gICAgICAgIC8vIHNldHVwIGhvc3QgY2xhc3Nlc1xyXG4gICAgICAgIHRoaXMuYWRkQ2xhc3MoJ3NtZS1hcnJhbmdlLXN0YWNrLXYnKTtcclxuICAgICAgICB0aGlzLmFkZENsYXNzKCdzbWUtYXJyYW5nZS1vdmVyZmxvdy1oaWRlLXknKTtcclxuICAgICAgICB0aGlzLmFkZENsYXNzKCdzbWUtYXJyYW5nZS1vdmVyZmxvdy1hdXRvLXgnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBtZXRob2QgdG8gcnVuIGFmdGVyIHRoZSBjb21wb25lbnQgdmlldyBpbml0aWFsaXplZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBUaGUgXCJuZ0FmdGVyVmlld0luaXRcIiBpcyBzdGlsbCBpbiBjdXJyZW50IGNoZWNrIGN5Y2xlIHNvIHdlIHNob3VsZCBub3QgdXBkYXRlIHRoZSBmb2xsb3dpbmcgVUkgaW5mb3JtYXRpb24gaW1tZWRpYXRlbHkuXHJcbiAgICAgICAgICAgIC8vIFNvIHdlIHVzZSBzZXRUaW1lb3V0IHRvIGRlZmVyIHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9ucyB0byBuZXh0IGNoZWNrIGN5Y2xlLlxyXG4gICAgICAgICAgICB0aGlzLnVzZVNlYXJjaCA9ICEhdGhpcy5zZWFyY2hFbGVtZW50O1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxheW91dCgpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zcGxpdFZpZXcpIHtcclxuICAgICAgICAgICAgdGhpcy5zcGxpdFZpZXdQYW5lVG9nZ2xlZFN1YnNjcmlwdGlvbiA9IHRoaXMuc3BsaXRWaWV3LnBhbmVUb2dnbGVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhVmlldyAmJiB0aGlzLmRhdGFWaWV3SGVpZ2h0ICE9PSB0aGlzLmRhdGFWaWV3Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVMYXlvdXQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5zbWVEYXRhVGFibGUpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVPbkZpbHRlclN1YnNjcmlwdGlvbiA9IHRoaXMuc21lRGF0YVRhYmxlLmZpbHRlci5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc21lRGF0YVRhYmxlLnNlbGVjdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBzaG91bGRDbGVhclNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnJlcXVpcmVEYXRhSXRlbVVuaXF1ZUlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNtZURhdGFUYWJsZS5yZW5kZXJlZEl0ZW1zLmluZGV4T2YodGhpcy5zbWVEYXRhVGFibGUuc2VsZWN0aW9uKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZENsZWFyU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1JZCA9IHRoaXMucmVxdWlyZURhdGFJdGVtVW5pcXVlSWQodGhpcy5zbWVEYXRhVGFibGUuc2VsZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNtZURhdGFUYWJsZS5yZW5kZXJlZEl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5zbWVEYXRhVGFibGUucmVuZGVyZWRJdGVtc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1JZCA9IHRoaXMucmVxdWlyZURhdGFJdGVtVW5pcXVlSWQoaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbUlkID09PSBzZWxlY3RlZEl0ZW1JZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZENsZWFyU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRDbGVhclNlbGVjdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uLmVtaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc3RyZXRjaFRvQWJzb2x1dGUpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRDbGFzcygnc21lLWxheW91dC1hYnNvbHV0ZScpO1xyXG4gICAgICAgICAgICB0aGlzLmFkZENsYXNzKCdzbWUtcG9zaXRpb24taW5zZXQtbm9uZScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXR1cERhdGFUYWJsZUFjY2Vzc2liaWxpdHkoKTtcclxuICAgICAgICBpZiAodGhpcy5oZWFkZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoQnV0dG9uQXJpYUxhYmVsID0gdGhpcy5yZXNvdXJjZVN0cmluZ3MucmVmcmVzaC5hcmlhTGFiZWwuaGVhZGVyLmZvcm1hdCh0aGlzLmhlYWRlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoQnV0dG9uQXJpYUxhYmVsID0gdGhpcy5yZXNvdXJjZVN0cmluZ3MucmVmcmVzaC5hcmlhTGFiZWwubm9IZWFkZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zcGxpdFZpZXdQYW5lVG9nZ2xlZFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnNwbGl0Vmlld1BhbmVUb2dnbGVkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5kYXRhVGFibGVPbkZpbHRlclN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFUYWJsZU9uRmlsdGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gICAgcHVibGljIHVwZGF0ZUxheW91dCgpIHtcclxuICAgICAgICB0aGlzLmRhdGFWaWV3SGVpZ2h0ID0gdGhpcy5kYXRhVmlldy5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmF1dG9FeHBhbmREZXRhaWxzUGFuZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zbWVEYXRhVGFibGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRGV0YWlsUGFuZUV4cGFuZGluZyh0aGlzLnNtZURhdGFUYWJsZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zbWVUcmVlVGFibGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRGV0YWlsUGFuZUV4cGFuZGluZyh0aGlzLnNtZVRyZWVUYWJsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRvQ2xlYXJTZWxlY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBuZXh0ID0gRG9tLmdldE5leHRab25lRWxlbWVudCg8SFRNTEVsZW1lbnQ+ZXZlbnQudGFyZ2V0KTtcclxuICAgICAgICBpZiAobmV4dCkge1xyXG4gICAgICAgICAgICBuZXh0LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24ubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRJdGVtQ291bnRUZXh0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudG90YWwgPT09IDEgPyB0aGlzLnJlc291cmNlU3RyaW5ncy5vbmVJdGVtIDogdGhpcy5yZXNvdXJjZVN0cmluZ3MuaXRlbXMuZm9ybWF0KHRoaXMudG90YWwpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTZWxlY3RlZENvdW50VGV4dCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlc291cmNlU3RyaW5ncy5zZWxlY3RlZC5mb3JtYXQodGhpcy5zZWxlY3RlZEl0ZW1Db3VudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNlbGVjdGVkQ291bnRBcmlhVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlc291cmNlU3RyaW5ncy5zZWxlY3RlZEFyaWEuZm9ybWF0KHRoaXMuc2VsZWN0ZWRJdGVtQ291bnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRGaWx0ZXJBcmlhTGFiZWwoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5yZXNvdXJjZVN0cmluZ3MuZmlsdGVyLnRpdGxlfSAke3RoaXMudG90YWwgPyB0aGlzLnJlc291cmNlU3RyaW5ncy5yZXN1bHRzLmZvcm1hdCh0aGlzLnRvdGFsKSA6XHJcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VTdHJpbmdzLnJlc3VsdHMuZm9ybWF0KDApfWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldENvbHVtblBpY2tlckFyaWFMYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLnJlc291cmNlU3RyaW5ncy5jb2x1bW5QaWNrZXIudGl0bGV9ICR7dGhpcy50b3RhbFxyXG4gICAgICAgICAgICA/IHRoaXMucmVzb3VyY2VTdHJpbmdzLnJlc3VsdHMuZm9ybWF0KHRoaXMudG90YWwpIDogdGhpcy5yZXNvdXJjZVN0cmluZ3MucmVzdWx0cy5mb3JtYXQoMCl9YDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZSB0aGUgYWN0aW9uIGJhclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdXBkYXRlQWN0aW9uQmFyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGlvbkJhckNvbXBvbmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbkJhckNvbXBvbmVudC51cGRhdGVBY3Rpb25CYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVEZXRhaWxQYW5lRXhwYW5kaW5nKGRhdGFWaWV3Q29udHJvbDogRGF0YVRhYmxlQ29tcG9uZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3BsaXRWaWV3KSB7XHJcbiAgICAgICAgICAgIGxldCBuZXdEYXRhU2VsZWN0aW9uID0gbnVsbDtcclxuICAgICAgICAgICAgbmV3RGF0YVNlbGVjdGlvbiA9IGRhdGFWaWV3Q29udHJvbC5yZW5kZXJlZEl0ZW1zW2RhdGFWaWV3Q29udHJvbC5nZXRBY3RpdmVSZW5kZXJlZEl0ZW1JbmRleCgpXTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGhhc0l0ZW1TZWxlY3RlZCA9ICEhbmV3RGF0YVNlbGVjdGlvbjtcclxuXHJcbiAgICAgICAgICAgIGlmIChoYXNJdGVtU2VsZWN0ZWQgJiYgbmV3RGF0YVNlbGVjdGlvbiAhPT0gdGhpcy5jdXJyZW50RGF0YVNlbGVjdGlvbikge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnREYXRhU2VsZWN0aW9uIHx8IHRoaXMuY3VycmVudERhdGFTZWxlY3Rpb24ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5zcGxpdFZpZXcuaXNFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGxpdFZpZXcudG9nZ2xlUGFuZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudERhdGFTZWxlY3Rpb24gPSBuZXdEYXRhU2VsZWN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGVuc3VyZURhdGFJdGVtSXNJblZpZXdwb3J0KGRhdGFJdGVtU2VsZWN0b3I6IHN0cmluZywgZGF0YVZpZXdTY3JvbGxhYmxlQ29udGFpbmVyU2VsZWN0b3I6IHN0cmluZykge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLmRhdGFWaWV3Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihkYXRhSXRlbVNlbGVjdG9yKTtcclxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZUJvZHkgPSB0aGlzLmRhdGFWaWV3Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihkYXRhVmlld1Njcm9sbGFibGVDb250YWluZXJTZWxlY3Rvcik7XHJcbiAgICAgICAgICAgICAgICAvLyBUaGlzIG9mZnNldFRvcCBpcyBvbmx5IGNvdW50aW5nIGZyb20gdGhlIHRvcCBvZiB0aGUgZGF0YSB2aWV3IGNvbnRyb2wgYW5kIG5vdCBjb25zaWRlcmluZyB0aGUgYWN0dWFsIHNjcm9sbCB0b3AuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRUb3AgPSBzZWxlY3RlZEl0ZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gc2Nyb2xsYWJsZUJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzZWxlY3RlZCBpdGVtIGlzIG5vdCBpbiB0aGUgdmlldyBwb3J0LCBzY3JvbGwgaXQgaW50byB2aWV3LlxyXG4gICAgICAgICAgICAgICAgaWYgKCEob2Zmc2V0VG9wID49IDBcclxuICAgICAgICAgICAgICAgICAgICAmJiBvZmZzZXRUb3AgPD0gc2Nyb2xsYWJsZUJvZHkuY2xpZW50SGVpZ2h0IC0gc2VsZWN0ZWRJdGVtLmNsaWVudEhlaWdodCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0uc2Nyb2xsSW50b1ZpZXcoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0dXBEYXRhVGFibGVBY2Nlc3NpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmludGVybmFsU21lRGF0YVRhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhlYWRlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFNtZURhdGFUYWJsZS50YWJsZUFyaWFMYWJlbGxlZEJ5ID0gJ21hc3Rlci12aWV3LWhlYWRlcic7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5waXZvdENvbXBvbmVudCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUYWIgPSB0aGlzLnBpdm90Q29tcG9uZW50LnRhYnMudG9BcnJheSgpLmZpbHRlcihpdGVtID0+IHRoaXMucGl2b3RDb21wb25lbnQuaXNTZWxlY3RlZChpdGVtKSlbMF07XHJcbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRUYWIpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmludGVybmFsU21lRGF0YVRhYmxlLnRhYmxlQXJpYUxhYmVsID0gc2VsZWN0ZWRUYWIubGFiZWw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIHRoZSBpZEJhZyB1c2VkIGJ5IHRoaXMgbWFzdGVyIHZpZXcgdG8gc3RvcmUgdW5pcXVlIGVsZW1lbnQgaWRzLlxyXG4gICAgICogaWQgdmFsdWVzIHdpbGwgYmUgYXNzaWduZWQgYmUgdGhlIEBzZWUgTWFzdGVyVmlld0NvbXBvbmVudCBzdXBlciBjbGFzcy5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUlkQmFnKCk6IE1zZnRTbWUuU3RyaW5nTWFwPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGZpbHRlckxhYmVsOiAnJyxcclxuICAgICAgICAgICAgY29sdW1uUGlja2VyTGFiZWw6ICcnXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iLCI8aDIgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1wYWRkaW5nLXNxdWlzaC12LWxnIHNtZS1hcnJhbmdlLXdvcmQtd3JhcC1icmVhay13b3JkIHNtZS1mb250LWgzXCIgKm5nSWY9XCJoZWFkZXJcIlxyXG4gICAgW2hpZGRlbl09XCJoaWRlSGVhZGVyXCIgaWQ9J21hc3Rlci12aWV3LWhlYWRlcic+e3toZWFkZXJ9fTwvaDI+XHJcbjxzbWUtbGF5b3V0ICNsYXlvdXQgKGxheW91dENoYW5nZWQpPVwidXBkYXRlQWN0aW9uQmFyKClcIj5cclxuICAgIDxzbWUtbGF5b3V0LWRlZmluaXRpb24gbmFtZT1cIm5hcnJvd1wiIFt1bnRpbF09XCI2MDBcIj48L3NtZS1sYXlvdXQtZGVmaW5pdGlvbj5cclxuPC9zbWUtbGF5b3V0PlxyXG48ZGl2ICpuZ0lmPVwiZW5hYmxlUXVlcnlFZGl0b3JcIiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmVcIiBbY2xhc3Muc21lLXBhZGRpbmctaG9yaXpvbnRhbC1zbV09XCIhbm9TaWRlTWFyZ2luXCI+XHJcbiAgICA8IS0tIFF1ZXJ5IEVkaXRvciAtLT5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD0nc21lLXF1ZXJ5LWVkaXRvcic+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWFycmFuZ2Utc3RhY2stcmV2ZXJzZWRcIiAjY29udGFpbmVyXHJcbiAgICBbY2xhc3Muc21lLXBhZGRpbmctaG9yaXpvbnRhbC1zbV09XCIhbm9TaWRlTWFyZ2luXCJcclxuICAgIFtjbGFzcy5zbWUtYXJyYW5nZS1zdGFjay1oXT1cIiEobGF5b3V0LmN1cnJlbnRMYXlvdXREZWZpbml0aW9uTmFtZT09PSduYXJyb3cnKVwiPlxyXG4gICAgPCEtLSBBY3Rpb25zIC0tPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PSdzbWUtYWN0aW9uLWJhciwuYWN0aW9uLWJhcic+PC9uZy1jb250ZW50PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1hcnJhbmdlLXN0YWNrLWhcIiBbY2xhc3Muc21lLXBhZGRpbmctaG9yaXpvbnRhbC1zbV09XCIhbm9TaWRlTWFyZ2luXCJcclxuICAgICAgICBbY2xhc3Muc21lLXBhZGRpbmctbGVmdC1zbV09XCJub1NpZGVNYXJnaW5cIj5cclxuICAgICAgICA8IS0tIENvdW50cyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic21lLWZvY3VzLXpvbmUgc21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtYXJyYW5nZS1zdGFjay1oIHNtZS1hcnJhbmdlLXdzLW5vd3JhcCBzbWUtc2NoZW1lLXNlY29uZGFyeS10ZXh0XCJcclxuICAgICAgICAgICAgW2NsYXNzLnNtZS1tYXJnaW4tcmlnaHQteHNdPVwic2VsZWN0ZWRJdGVtQ291bnQgPT09IDAgfHwgIXNob3dTZWxlY3Rpb25cIj5cclxuICAgICAgICAgICAgPGkgY2xhc3M9XCJzbWUtbGF5b3V0LWFjdGlvbi1iYXItaXRlbSBzbWUtcGFkZGluZy1ob3Jpem9udGFsLXNtXCI+e3tnZXRJdGVtQ291bnRUZXh0KCl9fTwvaT5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNtZS1idXR0b24tdHJpZ2dlciBzbWUtbGF5b3V0LWFjdGlvbi1iYXItaXRlbS1oZWlnaHQgc21lLXNjaGVtZS1zZWNvbmRhcnktdGV4dCBzbWUtYnV0dG9uLWF1dG8td2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZEl0ZW1Db3VudCA+IDAgJiYgc2hvd1NlbGVjdGlvblwiIChjbGljayk9XCJkb0NsZWFyU2VsZWN0aW9uKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPnt7Z2V0U2VsZWN0ZWRDb3VudFRleHQoKX19PC9pPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiPnt7Z2V0U2VsZWN0ZWRDb3VudEFyaWFUZXh0KCl9fTwvaT5cclxuICAgICAgICAgICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwic21lLWljb24gc21lLWljb24tY2xlYXIgc21lLW1hcmdpbi1sZWZ0LXhzXCIgW3RpdGxlXT1cInJlc291cmNlU3RyaW5ncy5zZWxlY3RlZFRpdGxlXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIENvbW1vbiBBY3Rpb25zIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWUtZm9jdXMtem9uZSBzbWUtYXJyYW5nZS13cy1ub3dyYXBcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dDb2x1bW5QaWNrZXJcIiAoY2xpY2spPVwiY29sdW1uUGlja2VyLm5leHQoKTtcIiB0eXBlPVwiYnV0dG9uXCIgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwicmVzb3VyY2VTdHJpbmdzLmNvbHVtblBpY2tlci50aXRsZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0RmlsdGVyQXJpYUxhYmVsKClcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzbWUtbGF5b3V0LWFjdGlvbi1iYXItaXRlbS1oZWlnaHQgc21lLWJ1dHRvbi10cmlnZ2VyIHNtZS1idXR0b24tYXV0by13aWR0aFwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3Muc21lLXRvZ2dsZWRdPVwiY29sdW1uUGlja2VyQWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLXRyaXBsZUNvbHVtblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93UmVmcmVzaFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlUmVmcmVzaFwiIChjbGljayk9XCJyZWZyZXNoLm5leHQoKVwiIHR5cGU9XCJidXR0b25cIiByb2xlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJyZXNvdXJjZVN0cmluZ3MucmVmcmVzaC50aXRsZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicmVmcmVzaEJ1dHRvbkFyaWFMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNtZS1sYXlvdXQtYWN0aW9uLWJhci1pdGVtLWhlaWdodCBzbWUtYnV0dG9uLXRyaWdnZXIgc21lLWJ1dHRvbi1hdXRvLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLXJlZnJlc2hcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0ZpbHRlclwiIChjbGljayk9XCJmaWx0ZXIubmV4dCgpO1wiIHR5cGU9XCJidXR0b25cIiByb2xlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCJyZXNvdXJjZVN0cmluZ3MuZmlsdGVyLnRpdGxlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRGaWx0ZXJBcmlhTGFiZWwoKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNtZS1sYXlvdXQtYWN0aW9uLWJhci1pdGVtLWhlaWdodCBzbWUtYnV0dG9uLXRyaWdnZXIgc21lLWJ1dHRvbi1hdXRvLXdpZHRoXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5zbWUtdG9nZ2xlZF09XCJmaWx0ZXJBY3RpdmVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic21lLWljb24gc21lLWljb24tZmlsdGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dHcm91cFwiIChjbGljayk9XCJncm91cC5uZXh0KClcIiB0eXBlPVwiYnV0dG9uXCIgcm9sZT1cImJ1dHRvblwiIFt0aXRsZV09XCJyZXNvdXJjZVN0cmluZ3MuZ3JvdXAudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvdXJjZVN0cmluZ3MuZ3JvdXAudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzbWUtbGF5b3V0LWFjdGlvbi1iYXItaXRlbS1oZWlnaHQgc21lLWJ1dHRvbi10cmlnZ2VyIHNtZS1idXR0b24tYXV0by13aWR0aFwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3Muc21lLXRvZ2dsZWRdPVwiZ3JvdXBBY3RpdmVcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gVE9ETzogdXNlIGdyb3VwaW5nIGljb24gd2hlbiBhdmFpbGFibGUuIC0tPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtaWNvbiBzbWUtaWNvbi1ncm91cGVkTGlzdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSBHcm91cGluZyAoRGVwcmVjYXRlZCkgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNtZS1mb2N1cy16b25lXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93Q3VzdG9tRmlsdGVyXCIgY2xhc3M9XCJzbWUtbWFyZ2luLWhvcml6b250YWwtc21cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0nLnNtZS1tYXN0ZXItdmlldy1jdXN0b20tZmlsdGVyJz48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gU2VhcmNoIEJveCAtLT5cclxuICAgICAgICA8Zm9ybSAqbmdJZj1cInVzZVNlYXJjaFwiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtbGF5b3V0LWFjdGlvbi1iYXItaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSdzbWUtZm9ybS1maWVsZFt0eXBlPVwic2VhcmNoXCJdJz48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiAjZGF0YVZpZXdcclxuICAgIGNsYXNzPVwic21lLWxheW91dC1yZWxhdGl2ZSBzbWUtcG9zaXRpb24tZmxleC1hdXRvIHNtZS1hcnJhbmdlLXN0YWNrLWggc21lLWFycmFuZ2Utb3ZlcmZsb3ctaGlkZSBzbWUtbGF5b3V0LW1pbndpZHRoLXt7ZGF0YVRhYmxlTWluV2lkdGh9fVwiXHJcbiAgICBbY2xhc3Muc21lLXNoYWRvdy1zY3JvbGxlZC1jb250ZW50XT0nIWlzRGF0YUxpc3RTY3JvbGxlZFRvdG9wJz5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
540
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzdGVyLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvbWFzdGVyLXZpZXcvbWFzdGVyLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvbWFzdGVyLXZpZXcvbWFzdGVyLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBRVosVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBR04sUUFBUSxFQUNSLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7OztJQzNCeEUsOEJBQ3dDO0lBQUEsWUFBVTtJQUFBLGlCQUFLOzs7SUFBckQsMENBQXFCLHVCQUFBO0lBQWlCLGVBQVU7SUFBVixtQ0FBVTs7O0lBSWxELCtCQUFnSDtJQUU5RyxxQkFBbUQ7SUFDckQsaUJBQU07OztJQUh3RCxpRUFBaUQ7Ozs7SUFrQnpHLGtDQUVvRjtJQUFuQyxn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WTtrQkFBM0IsS0FBSztZQUVVLFVBQVU7a0JBQXpCLEtBQUs7WUFFVSxNQUFNO2tCQUFyQixLQUFLO1lBRVUsS0FBSztrQkFBcEIsS0FBSztZQUVVLGFBQWE7a0JBQTVCLEtBQUs7WUFFVSxnQkFBZ0I7a0JBQS9CLEtBQUs7WUFFVSxrQkFBa0I7a0JBQWpDLEtBQUs7WUFFVSxXQUFXO2tCQUExQixLQUFLO1lBRVUsY0FBYztrQkFBN0IsS0FBSztZQUVVLGlCQUFpQjtrQkFBaEMsS0FBSztZQUVVLFVBQVU7a0JBQXpCLEtBQUs7WUFFVSxZQUFZO2tCQUEzQixLQUFLO1lBRVUsaUJBQWlCO2tCQUFoQyxLQUFLO1lBRWMsU0FBUztrQkFBNUIsS0FBSztZQVdDLGVBQWU7a0JBRHJCLE1BQU07WUFJQSx1QkFBdUI7a0JBRDdCLEtBQUs7WUFPSyxnQkFBZ0I7a0JBRDFCLEtBQUs7WUFVVSxXQUFXO2tCQUExQixLQUFLO1lBR0MsaUJBQWlCO2tCQUR2QixLQUFLO1lBSUMscUJBQXFCO2tCQUQzQixLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLO1lBSUMsWUFBWTtrQkFEbEIsTUFBTTtZQUlBLE9BQU87a0JBRGIsTUFBTTtZQUlBLE1BQU07a0JBRFosTUFBTTtZQUlBLEtBQUs7a0JBRFgsTUFBTTtZQUlBLGNBQWM7a0JBRHBCLE1BQU07WUEwR0EsWUFBWTtrQkFEbEIsWUFBWTttQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGQsXHJcbiAgICBEb0NoZWNrLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBOZ1pvbmUsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPcHRpb25hbCxcclxuICAgIE91dHB1dCxcclxuICAgIFJlbmRlcmVyMixcclxuICAgIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEZXByZWNhdGVkIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9iYXNlL2RlY29yYXRvcnMvZGVwcmVjYXRpb24uZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IERvbSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZG9tL2RvbSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdHJpbmdzIH0gZnJvbSAnLi4vLi4vZ2VuZXJhdGVkL3N0cmluZ3MnO1xyXG5pbXBvcnQgeyBBY3Rpb25CYXJDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb25zL2NvbnRhaW5lcnMvYWN0aW9uLWJhci9hY3Rpb24tYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvcmVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbW9uL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YVRhYmxlQ29tcG9uZW50LCBUcmVlVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2VhcmNoRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9mb3JtLWZpZWxkL3NlYXJjaC9zZWFyY2gtZm9ybS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQaXZvdENvbXBvbmVudCB9IGZyb20gJy4uL3Bpdm90L3Bpdm90LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNwbGl0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4uL3NwbGl0LXZpZXcvc3BsaXQtdmlldy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1tYXN0ZXItdmlldycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFzdGVyLXZpZXcuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXN0ZXJWaWV3Q29tcG9uZW50IGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBEb0NoZWNrLCBPbkRlc3Ryb3ksIE9uSW5pdCB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ01hc3RlclZpZXdDb21wb25lbnQnO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIHRpbWVyOiBhbnk7XHJcbiAgICBwcml2YXRlIGN1cnJlbnREYXRhU2VsZWN0aW9uOiBhbnk7XHJcbiAgICBwcml2YXRlIGludGVybmFsU21lRGF0YVRhYmxlOiBEYXRhVGFibGVDb21wb25lbnQ7XHJcblxyXG4gICAgcHVibGljIHJlc291cmNlU3RyaW5ncyA9IHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5NYXN0ZXJWaWV3O1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoJ3NlYXJjaCcpXHJcbiAgICBwdWJsaWMgc2VhcmNoRWxlbWVudDogU2VhcmNoRm9ybUZpZWxkQ29tcG9uZW50O1xyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoQWN0aW9uQmFyQ29tcG9uZW50KVxyXG4gICAgcHVibGljIGFjdGlvbkJhckNvbXBvbmVudDogQWN0aW9uQmFyQ29tcG9uZW50O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpXHJcbiAgICBwdWJsaWMgY29udGFpbmVyRWxlbWVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdkYXRhVmlldycpXHJcbiAgICBwdWJsaWMgZGF0YVZpZXc6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZChEYXRhVGFibGVDb21wb25lbnQpXHJcbiAgICBwdWJsaWMgZ2V0IHNtZURhdGFUYWJsZSgpOiBEYXRhVGFibGVDb21wb25lbnQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsU21lRGF0YVRhYmxlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBzbWVEYXRhVGFibGUodmFsdWU6IERhdGFUYWJsZUNvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxTbWVEYXRhVGFibGUgPSB2YWx1ZTtcclxuICAgICAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0dXBEYXRhVGFibGVBY2Nlc3NpYmlsaXR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBDb250ZW50Q2hpbGQoJ3NtZVRyZWVUYWJsZScpXHJcbiAgICBwdWJsaWMgc21lVHJlZVRhYmxlOiBUcmVlVGFibGVDb21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIG5vU2lkZU1hcmdpbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBoaWRlSGVhZGVyID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGhlYWRlciA9ICcnO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyB0b3RhbCA9IDA7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIHNob3dTZWxlY3Rpb24gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93Q29sdW1uUGlja2VyID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGNvbHVtblBpY2tlckFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93UmVmcmVzaCA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGRpc2FibGVSZWZyZXNoID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGRhdGFUYWJsZU1pbldpZHRoID0gJ21kJztcclxuXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd0ZpbHRlciA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGZpbHRlckFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVRdWVyeUVkaXRvciA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgc2VsZWN0aW9uKHNlbGVjdGlvbjogYW55KSB7XHJcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShzZWxlY3Rpb24pKSB7XHJcbiAgICAgICAgICAgIGNvdW50ID0gc2VsZWN0aW9uLmxlbmd0aDtcclxuICAgICAgICB9IGVsc2UgaWYgKCEhc2VsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGNvdW50ID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1Db3VudCA9IGNvdW50O1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgcmVxdWlyZURhdGFJdGVtVW5pcXVlSWQ6IChpdGVtOiBhbnkpID0+IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXByZWNhdGVkIHNpbmNlIDcvMTMvMTguIFBsZWFzZSB1c2UgW3Nob3dHcm91cF0sIFtncm91cEFjdGl2ZV0sIGFuZCAoZ3JvdXApIGluc3RlYWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgc2hvd0N1c3RvbUZpbHRlcih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxTaG93Q3VzdG9tRmlsdGVyID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IHNob3dDdXN0b21GaWx0ZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxTaG93Q3VzdG9tRmlsdGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW50ZXJuYWxTaG93Q3VzdG9tRmlsdGVyOiBib29sZWFuO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBncm91cEFjdGl2ZSA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc3RyZXRjaFRvQWJzb2x1dGUgPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgYXV0b0V4cGFuZERldGFpbHNQYW5lID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dHcm91cD86IGJvb2xlYW47XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY29sdW1uUGlja2VyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVmcmVzaDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGZpbHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGdyb3VwOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2xlYXJTZWxlY3Rpb246IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICBwdWJsaWMgdXNlU2VhcmNoID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRJdGVtQ291bnQgPSAwO1xyXG4gICAgcHVibGljIGRhdGFWaWV3SGVpZ2h0ID0gMDtcclxuICAgIHB1YmxpYyBpc0RhdGFMaXN0U2Nyb2xsZWRUb3RvcCA9IHRydWU7XHJcbiAgICBwdWJsaWMgaGVhZGVySWQ6IHN0cmluZztcclxuICAgIHByaXZhdGUgc3BsaXRWaWV3UGFuZVRvZ2dsZWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgZGF0YVRhYmxlT25GaWx0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIHB1YmxpYyByZWZyZXNoQnV0dG9uQXJpYUxhYmVsOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBzcGxpdFZpZXc6IFNwbGl0Vmlld0NvbXBvbmVudCxcclxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBpdm90Q29tcG9uZW50OiBQaXZvdENvbXBvbmVudFxyXG4gICAgKSB7XHJcbiAgICAgICAgLy8gQWZ0ZXIgdGhlIGRpc2N1c3Npb24sIHRoZSBwbGFuIGlzIHN0aWxsIGhhdmUgbWFzdGVyIHZpZXcgdG8gY29vcmRpbmF0ZSB3aXRoIHNwbGl0IHZpZXcgYXMgd2VsbCBhcyB0cmVlIHRhYmxlIGFuZCBkYXRhIHRhYmxlLlxyXG4gICAgICAgIC8vIEl0J3MgYSBsaXR0bGUgdHJpY2t5IHRvIGxldCBtYXN0ZXIgdmlldyB0byB0YWxrIHRvIGl0cyBwYXJlbnQgd2hpY2ggaXMgdGhlIHNwbGl0IHZpZXcuXHJcbiAgICAgICAgLy8gQnV0IHdlIGRvIG5lZWQgYSBjb21wb25lbnQgdG8gaW1wbGVtZW50IHRoZSBjb21tb24gYmVoYXZpb3Igb24gdGhlIFVJIHRvIGF2b2lkIGR1cGxpY2F0ZSBjb2RlIGluIGVhY2ggdG9vbC5cclxuICAgICAgICAvLyBBdCB0aGlzIG1vbWVudCwgbWFzdGVyIHZpZXcgaXMgdGhlIG1vc3QgcHJvcGVyIGNvbXBvbmVudC5cclxuICAgICAgICAvLyBMb25nIHRlcm0gd2lzZSwgd2Ugd2lsbCBmaWd1cmUgb3V0IGEgYmV0dGVyIGNvbXBvbmVudCBzaXR0aW5nIGluIHRoZSB0b3AgbGV2ZWwgb2YgdGhlIFVJIHRvIGNvb3JkaW5hdGUgd2l0aCBvdGhlciBjb21wb25lbnRzXHJcbiAgICAgICAgLy8gYW5kIGltcGxlbWVudCBjb21tb24gYmVoYXZpb3JzLlxyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgICAgICAvLyBzZXR1cCBob3N0IGNsYXNzZXNcclxuICAgICAgICB0aGlzLmFkZENsYXNzKCdzbWUtYXJyYW5nZS1zdGFjay12Jyk7XHJcbiAgICAgICAgdGhpcy5hZGRDbGFzcygnc21lLWFycmFuZ2Utb3ZlcmZsb3ctaGlkZS15Jyk7XHJcbiAgICAgICAgdGhpcy5hZGRDbGFzcygnc21lLWFycmFuZ2Utb3ZlcmZsb3ctYXV0by14Jyk7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJJZCA9ICdtYXN0ZXItdmlldy1oZWFkZXInICsgdGhpcy5jb21wb25lbnRJZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBtZXRob2QgdG8gcnVuIGFmdGVyIHRoZSBjb21wb25lbnQgdmlldyBpbml0aWFsaXplZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAvLyBUaGUgXCJuZ0FmdGVyVmlld0luaXRcIiBpcyBzdGlsbCBpbiBjdXJyZW50IGNoZWNrIGN5Y2xlIHNvIHdlIHNob3VsZCBub3QgdXBkYXRlIHRoZSBmb2xsb3dpbmcgVUkgaW5mb3JtYXRpb24gaW1tZWRpYXRlbHkuXHJcbiAgICAgICAgICAgIC8vIFNvIHdlIHVzZSBzZXRUaW1lb3V0IHRvIGRlZmVyIHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9ucyB0byBuZXh0IGNoZWNrIGN5Y2xlLlxyXG4gICAgICAgICAgICB0aGlzLnVzZVNlYXJjaCA9ICEhdGhpcy5zZWFyY2hFbGVtZW50O1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxheW91dCgpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zcGxpdFZpZXcpIHtcclxuICAgICAgICAgICAgdGhpcy5zcGxpdFZpZXdQYW5lVG9nZ2xlZFN1YnNjcmlwdGlvbiA9IHRoaXMuc3BsaXRWaWV3LnBhbmVUb2dnbGVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRhVmlldyAmJiB0aGlzLmRhdGFWaWV3SGVpZ2h0ICE9PSB0aGlzLmRhdGFWaWV3Lm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVMYXlvdXQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5zbWVEYXRhVGFibGUpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhVGFibGVPbkZpbHRlclN1YnNjcmlwdGlvbiA9IHRoaXMuc21lRGF0YVRhYmxlLmZpbHRlci5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc21lRGF0YVRhYmxlLnNlbGVjdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBzaG91bGRDbGVhclNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLnJlcXVpcmVEYXRhSXRlbVVuaXF1ZUlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNtZURhdGFUYWJsZS5yZW5kZXJlZEl0ZW1zLmluZGV4T2YodGhpcy5zbWVEYXRhVGFibGUuc2VsZWN0aW9uKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZENsZWFyU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1JZCA9IHRoaXMucmVxdWlyZURhdGFJdGVtVW5pcXVlSWQodGhpcy5zbWVEYXRhVGFibGUuc2VsZWN0aW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNtZURhdGFUYWJsZS5yZW5kZXJlZEl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5zbWVEYXRhVGFibGUucmVuZGVyZWRJdGVtc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1JZCA9IHRoaXMucmVxdWlyZURhdGFJdGVtVW5pcXVlSWQoaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbUlkID09PSBzZWxlY3RlZEl0ZW1JZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZENsZWFyU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRDbGVhclNlbGVjdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uLmVtaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0luaXRpYWxpemVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuc3RyZXRjaFRvQWJzb2x1dGUpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRDbGFzcygnc21lLWxheW91dC1hYnNvbHV0ZScpO1xyXG4gICAgICAgICAgICB0aGlzLmFkZENsYXNzKCdzbWUtcG9zaXRpb24taW5zZXQtbm9uZScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXR1cERhdGFUYWJsZUFjY2Vzc2liaWxpdHkoKTtcclxuICAgICAgICBpZiAodGhpcy5oZWFkZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoQnV0dG9uQXJpYUxhYmVsID0gdGhpcy5yZXNvdXJjZVN0cmluZ3MucmVmcmVzaC5hcmlhTGFiZWwuaGVhZGVyLmZvcm1hdCh0aGlzLmhlYWRlcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoQnV0dG9uQXJpYUxhYmVsID0gdGhpcy5yZXNvdXJjZVN0cmluZ3MucmVmcmVzaC5hcmlhTGFiZWwubm9IZWFkZXI7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zcGxpdFZpZXdQYW5lVG9nZ2xlZFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLnNwbGl0Vmlld1BhbmVUb2dnbGVkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5kYXRhVGFibGVPbkZpbHRlclN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFUYWJsZU9uRmlsdGVyU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gICAgcHVibGljIHVwZGF0ZUxheW91dCgpIHtcclxuICAgICAgICB0aGlzLmRhdGFWaWV3SGVpZ2h0ID0gdGhpcy5kYXRhVmlldy5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmF1dG9FeHBhbmREZXRhaWxzUGFuZSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zbWVEYXRhVGFibGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRGV0YWlsUGFuZUV4cGFuZGluZyh0aGlzLnNtZURhdGFUYWJsZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zbWVUcmVlVGFibGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRGV0YWlsUGFuZUV4cGFuZGluZyh0aGlzLnNtZVRyZWVUYWJsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRvQ2xlYXJTZWxlY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBuZXh0ID0gRG9tLmdldE5leHRab25lRWxlbWVudCg8SFRNTEVsZW1lbnQ+ZXZlbnQudGFyZ2V0KTtcclxuICAgICAgICBpZiAobmV4dCkge1xyXG4gICAgICAgICAgICBuZXh0LmZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24ubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRJdGVtQ291bnRUZXh0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudG90YWwgPT09IDEgPyB0aGlzLnJlc291cmNlU3RyaW5ncy5vbmVJdGVtIDogdGhpcy5yZXNvdXJjZVN0cmluZ3MuaXRlbXMuZm9ybWF0KHRoaXMudG90YWwpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTZWxlY3RlZENvdW50VGV4dCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlc291cmNlU3RyaW5ncy5zZWxlY3RlZC5mb3JtYXQodGhpcy5zZWxlY3RlZEl0ZW1Db3VudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNlbGVjdGVkQ291bnRBcmlhVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlc291cmNlU3RyaW5ncy5zZWxlY3RlZEFyaWEuZm9ybWF0KHRoaXMuc2VsZWN0ZWRJdGVtQ291bnQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRGaWx0ZXJBcmlhTGFiZWwoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5yZXNvdXJjZVN0cmluZ3MuZmlsdGVyLnRpdGxlfSAke3RoaXMudG90YWwgPyB0aGlzLnJlc291cmNlU3RyaW5ncy5yZXN1bHRzLmZvcm1hdCh0aGlzLnRvdGFsKSA6XHJcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VTdHJpbmdzLnJlc3VsdHMuZm9ybWF0KDApfWA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldENvbHVtblBpY2tlckFyaWFMYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLnJlc291cmNlU3RyaW5ncy5jb2x1bW5QaWNrZXIudGl0bGV9ICR7dGhpcy50b3RhbFxyXG4gICAgICAgICAgICA/IHRoaXMucmVzb3VyY2VTdHJpbmdzLnJlc3VsdHMuZm9ybWF0KHRoaXMudG90YWwpIDogdGhpcy5yZXNvdXJjZVN0cmluZ3MucmVzdWx0cy5mb3JtYXQoMCl9YDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZSB0aGUgYWN0aW9uIGJhclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdXBkYXRlQWN0aW9uQmFyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmFjdGlvbkJhckNvbXBvbmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbkJhckNvbXBvbmVudC51cGRhdGVBY3Rpb25CYXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVEZXRhaWxQYW5lRXhwYW5kaW5nKGRhdGFWaWV3Q29udHJvbDogRGF0YVRhYmxlQ29tcG9uZW50KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3BsaXRWaWV3KSB7XHJcbiAgICAgICAgICAgIGxldCBuZXdEYXRhU2VsZWN0aW9uID0gbnVsbDtcclxuICAgICAgICAgICAgbmV3RGF0YVNlbGVjdGlvbiA9IGRhdGFWaWV3Q29udHJvbC5yZW5kZXJlZEl0ZW1zW2RhdGFWaWV3Q29udHJvbC5nZXRBY3RpdmVSZW5kZXJlZEl0ZW1JbmRleCgpXTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGhhc0l0ZW1TZWxlY3RlZCA9ICEhbmV3RGF0YVNlbGVjdGlvbjtcclxuXHJcbiAgICAgICAgICAgIGlmIChoYXNJdGVtU2VsZWN0ZWQgJiYgbmV3RGF0YVNlbGVjdGlvbiAhPT0gdGhpcy5jdXJyZW50RGF0YVNlbGVjdGlvbikge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnREYXRhU2VsZWN0aW9uIHx8IHRoaXMuY3VycmVudERhdGFTZWxlY3Rpb24ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5zcGxpdFZpZXcuaXNFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zcGxpdFZpZXcudG9nZ2xlUGFuZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudERhdGFTZWxlY3Rpb24gPSBuZXdEYXRhU2VsZWN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGVuc3VyZURhdGFJdGVtSXNJblZpZXdwb3J0KGRhdGFJdGVtU2VsZWN0b3I6IHN0cmluZywgZGF0YVZpZXdTY3JvbGxhYmxlQ29udGFpbmVyU2VsZWN0b3I6IHN0cmluZykge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLmRhdGFWaWV3Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihkYXRhSXRlbVNlbGVjdG9yKTtcclxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsYWJsZUJvZHkgPSB0aGlzLmRhdGFWaWV3Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihkYXRhVmlld1Njcm9sbGFibGVDb250YWluZXJTZWxlY3Rvcik7XHJcbiAgICAgICAgICAgICAgICAvLyBUaGlzIG9mZnNldFRvcCBpcyBvbmx5IGNvdW50aW5nIGZyb20gdGhlIHRvcCBvZiB0aGUgZGF0YSB2aWV3IGNvbnRyb2wgYW5kIG5vdCBjb25zaWRlcmluZyB0aGUgYWN0dWFsIHNjcm9sbCB0b3AuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXRUb3AgPSBzZWxlY3RlZEl0ZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gc2Nyb2xsYWJsZUJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzZWxlY3RlZCBpdGVtIGlzIG5vdCBpbiB0aGUgdmlldyBwb3J0LCBzY3JvbGwgaXQgaW50byB2aWV3LlxyXG4gICAgICAgICAgICAgICAgaWYgKCEob2Zmc2V0VG9wID49IDBcclxuICAgICAgICAgICAgICAgICAgICAmJiBvZmZzZXRUb3AgPD0gc2Nyb2xsYWJsZUJvZHkuY2xpZW50SGVpZ2h0IC0gc2VsZWN0ZWRJdGVtLmNsaWVudEhlaWdodCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW0uc2Nyb2xsSW50b1ZpZXcoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0dXBEYXRhVGFibGVBY2Nlc3NpYmlsaXR5KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmludGVybmFsU21lRGF0YVRhYmxlKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhlYWRlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnRlcm5hbFNtZURhdGFUYWJsZS50YWJsZUFyaWFMYWJlbGxlZEJ5ID0gdGhpcy5oZWFkZXJJZDtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnBpdm90Q29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZFRhYiA9IHRoaXMucGl2b3RDb21wb25lbnQudGFicy50b0FycmF5KCkuZmlsdGVyKGl0ZW0gPT4gdGhpcy5waXZvdENvbXBvbmVudC5pc1NlbGVjdGVkKGl0ZW0pKVswXTtcclxuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZFRhYikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW50ZXJuYWxTbWVEYXRhVGFibGUudGFibGVBcmlhTGFiZWwgPSBzZWxlY3RlZFRhYi5sYWJlbDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgdGhlIGlkQmFnIHVzZWQgYnkgdGhpcyBtYXN0ZXIgdmlldyB0byBzdG9yZSB1bmlxdWUgZWxlbWVudCBpZHMuXHJcbiAgICAgKiBpZCB2YWx1ZXMgd2lsbCBiZSBhc3NpZ25lZCBiZSB0aGUgQHNlZSBNYXN0ZXJWaWV3Q29tcG9uZW50IHN1cGVyIGNsYXNzLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3JlYXRlSWRCYWcoKTogTXNmdFNtZS5TdHJpbmdNYXA8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgZmlsdGVyTGFiZWw6ICcnLFxyXG4gICAgICAgICAgICBjb2x1bW5QaWNrZXJMYWJlbDogJycsXHJcbiAgICAgICAgICAgIGl0ZW1Db3VudExhYmVsOiAnJ1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIiwiPGgyIGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtcGFkZGluZy1zcXVpc2gtdi1sZyBzbWUtYXJyYW5nZS13b3JkLXdyYXAtYnJlYWstd29yZCBzbWUtZm9udC1oM1wiICpuZ0lmPVwiaGVhZGVyXCJcclxuICBbaGlkZGVuXT1cImhpZGVIZWFkZXJcIiBbaWRdPSdoZWFkZXJJZCc+e3toZWFkZXJ9fTwvaDI+XHJcbjxzbWUtbGF5b3V0ICNsYXlvdXQgKGxheW91dENoYW5nZWQpPVwidXBkYXRlQWN0aW9uQmFyKClcIj5cclxuICA8c21lLWxheW91dC1kZWZpbml0aW9uIG5hbWU9XCJuYXJyb3dcIiBbdW50aWxdPVwiNjAwXCI+PC9zbWUtbGF5b3V0LWRlZmluaXRpb24+XHJcbjwvc21lLWxheW91dD5cclxuPGRpdiAqbmdJZj1cImVuYWJsZVF1ZXJ5RWRpdG9yXCIgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lXCIgW2NsYXNzLnNtZS1wYWRkaW5nLWhvcml6b250YWwtc21dPVwiIW5vU2lkZU1hcmdpblwiPlxyXG4gIDwhLS0gUXVlcnkgRWRpdG9yIC0tPlxyXG4gIDxuZy1jb250ZW50IHNlbGVjdD0nc21lLXF1ZXJ5LWVkaXRvcic+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWFycmFuZ2Utc3RhY2stcmV2ZXJzZWRcIiAjY29udGFpbmVyXHJcbiAgW2NsYXNzLnNtZS1wYWRkaW5nLWhvcml6b250YWwtc21dPVwiIW5vU2lkZU1hcmdpblwiXHJcbiAgW2NsYXNzLnNtZS1hcnJhbmdlLXN0YWNrLWhdPVwiIShsYXlvdXQuY3VycmVudExheW91dERlZmluaXRpb25OYW1lPT09J25hcnJvdycpXCI+XHJcbiAgPCEtLSBBY3Rpb25zIC0tPlxyXG4gIDxuZy1jb250ZW50IHNlbGVjdD0nc21lLWFjdGlvbi1iYXIsLmFjdGlvbi1iYXInPjwvbmctY29udGVudD5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWFycmFuZ2Utc3RhY2staFwiIFtjbGFzcy5zbWUtcGFkZGluZy1ob3Jpem9udGFsLXNtXT1cIiFub1NpZGVNYXJnaW5cIlxyXG4gICAgW2NsYXNzLnNtZS1wYWRkaW5nLWxlZnQtc21dPVwibm9TaWRlTWFyZ2luXCI+XHJcbiAgICA8IS0tIENvdW50cyAtLT5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJzbWUtZm9jdXMtem9uZSBzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1hcnJhbmdlLXN0YWNrLWggc21lLWFycmFuZ2Utd3Mtbm93cmFwIHNtZS1zY2hlbWUtc2Vjb25kYXJ5LXRleHRcIlxyXG4gICAgICBbY2xhc3Muc21lLW1hcmdpbi1yaWdodC14c109XCJzZWxlY3RlZEl0ZW1Db3VudCA9PT0gMCB8fCAhc2hvd1NlbGVjdGlvblwiPlxyXG4gICAgICA8aSByb2xlPVwic3RhdHVzXCIgW2lkXT1cImlkQmFnLml0ZW1Db3VudExhYmVsXCIgY2xhc3M9XCJzbWUtbGF5b3V0LWFjdGlvbi1iYXItaXRlbSBzbWUtcGFkZGluZy1ob3Jpem9udGFsLXNtXCI+e3tcclxuICAgICAgICBnZXRJdGVtQ291bnRUZXh0KCkgfX08L2k+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwic21lLWJ1dHRvbi10cmlnZ2VyIHNtZS1sYXlvdXQtYWN0aW9uLWJhci1pdGVtLWhlaWdodCBzbWUtc2NoZW1lLXNlY29uZGFyeS10ZXh0IHNtZS1idXR0b24tYXV0by13aWR0aFwiXHJcbiAgICAgICAgKm5nSWY9XCJzZWxlY3RlZEl0ZW1Db3VudCA+IDAgJiYgc2hvd1NlbGVjdGlvblwiIChjbGljayk9XCJkb0NsZWFyU2VsZWN0aW9uKCRldmVudClcIj5cclxuICAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIj57e2dldFNlbGVjdGVkQ291bnRUZXh0KCl9fTwvaT5cclxuICAgICAgICA8aSBjbGFzcz1cInNtZS1zY3JlZW4tcmVhZGVyXCI+e3tnZXRTZWxlY3RlZENvdW50QXJpYVRleHQoKX19PC9pPlxyXG4gICAgICAgIDxpIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGNsYXNzPVwic21lLWljb24gc21lLWljb24tY2xlYXIgc21lLW1hcmdpbi1sZWZ0LXhzXCJcclxuICAgICAgICAgIFt0aXRsZV09XCJyZXNvdXJjZVN0cmluZ3Muc2VsZWN0ZWRUaXRsZVwiPjwvaT5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gQ29tbW9uIEFjdGlvbnMgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwic21lLWZvY3VzLXpvbmUgc21lLWFycmFuZ2Utd3Mtbm93cmFwXCI+XHJcbiAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93Q29sdW1uUGlja2VyXCIgKGNsaWNrKT1cImNvbHVtblBpY2tlci5uZXh0KCk7XCIgdHlwZT1cImJ1dHRvblwiIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICAgIFt0aXRsZV09XCJyZXNvdXJjZVN0cmluZ3MuY29sdW1uUGlja2VyLnRpdGxlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRGaWx0ZXJBcmlhTGFiZWwoKVwiXHJcbiAgICAgICAgY2xhc3M9XCJzbWUtbGF5b3V0LWFjdGlvbi1iYXItaXRlbS1oZWlnaHQgc21lLWJ1dHRvbi10cmlnZ2VyIHNtZS1idXR0b24tYXV0by13aWR0aFwiXHJcbiAgICAgICAgW2NsYXNzLnNtZS10b2dnbGVkXT1cImNvbHVtblBpY2tlckFjdGl2ZVwiIGRhdGEtdXRhLWlkPVwiY29sdW1uLXBpY2tlci1idXR0b25cIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLXRyaXBsZUNvbHVtblwiPjwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93UmVmcmVzaFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlUmVmcmVzaFwiIChjbGljayk9XCJyZWZyZXNoLm5leHQoKVwiIHR5cGU9XCJidXR0b25cIiByb2xlPVwiYnV0dG9uXCJcclxuICAgICAgICBbdGl0bGVdPVwicmVzb3VyY2VTdHJpbmdzLnJlZnJlc2gudGl0bGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInJlZnJlc2hCdXR0b25BcmlhTGFiZWxcIlxyXG4gICAgICAgIGNsYXNzPVwic21lLWxheW91dC1hY3Rpb24tYmFyLWl0ZW0taGVpZ2h0IHNtZS1idXR0b24tdHJpZ2dlciBzbWUtYnV0dG9uLWF1dG8td2lkdGhcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLXJlZnJlc2hcIj48L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0ZpbHRlclwiIChjbGljayk9XCJmaWx0ZXIubmV4dCgpO1wiIHR5cGU9XCJidXR0b25cIiByb2xlPVwiYnV0dG9uXCJcclxuICAgICAgICBbdGl0bGVdPVwicmVzb3VyY2VTdHJpbmdzLmZpbHRlci50aXRsZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0RmlsdGVyQXJpYUxhYmVsKClcIlxyXG4gICAgICAgIGNsYXNzPVwic21lLWxheW91dC1hY3Rpb24tYmFyLWl0ZW0taGVpZ2h0IHNtZS1idXR0b24tdHJpZ2dlciBzbWUtYnV0dG9uLWF1dG8td2lkdGhcIlxyXG4gICAgICAgIFtjbGFzcy5zbWUtdG9nZ2xlZF09XCJmaWx0ZXJBY3RpdmVcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLWZpbHRlclwiPjwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93R3JvdXBcIiAoY2xpY2spPVwiZ3JvdXAubmV4dCgpXCIgdHlwZT1cImJ1dHRvblwiIHJvbGU9XCJidXR0b25cIiBbdGl0bGVdPVwicmVzb3VyY2VTdHJpbmdzLmdyb3VwLnRpdGxlXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc291cmNlU3RyaW5ncy5ncm91cC50aXRsZVwiXHJcbiAgICAgICAgY2xhc3M9XCJzbWUtbGF5b3V0LWFjdGlvbi1iYXItaXRlbS1oZWlnaHQgc21lLWJ1dHRvbi10cmlnZ2VyIHNtZS1idXR0b24tYXV0by13aWR0aFwiXHJcbiAgICAgICAgW2NsYXNzLnNtZS10b2dnbGVkXT1cImdyb3VwQWN0aXZlXCI+XHJcbiAgICAgICAgPCEtLSBUT0RPOiB1c2UgZ3JvdXBpbmcgaWNvbiB3aGVuIGF2YWlsYWJsZS4gLS0+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtaWNvbiBzbWUtaWNvbi1ncm91cGVkTGlzdFwiPjwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS0gR3JvdXBpbmcgKERlcHJlY2F0ZWQpIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInNtZS1mb2N1cy16b25lXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93Q3VzdG9tRmlsdGVyXCIgY2xhc3M9XCJzbWUtbWFyZ2luLWhvcml6b250YWwtc21cIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9Jy5zbWUtbWFzdGVyLXZpZXctY3VzdG9tLWZpbHRlcic+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBTZWFyY2ggQm94IC0tPlxyXG4gICAgPGZvcm0gKm5nSWY9XCJ1c2VTZWFyY2hcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWxheW91dC1hY3Rpb24tYmFyLWl0ZW1cIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9J3NtZS1mb3JtLWZpZWxkW3R5cGU9XCJzZWFyY2hcIl0nPjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2ICNkYXRhVmlld1xyXG4gIGNsYXNzPVwic21lLWxheW91dC1yZWxhdGl2ZSBzbWUtcG9zaXRpb24tZmxleC1hdXRvIHNtZS1hcnJhbmdlLXN0YWNrLWggc21lLWFycmFuZ2Utb3ZlcmZsb3ctaGlkZSBzbWUtbGF5b3V0LW1pbndpZHRoLXt7ZGF0YVRhYmxlTWluV2lkdGh9fVwiXHJcbiAgW2NsYXNzLnNtZS1zaGFkb3ctc2Nyb2xsZWQtY29udGVudF09JyFpc0RhdGFMaXN0U2Nyb2xsZWRUb3RvcCc+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -97,4 +97,4 @@ __decorate([
|
|
|
97
97
|
type: ContentChild,
|
|
98
98
|
args: [TemplateRef]
|
|
99
99
|
}], yieldMeasureTab: [] }); })();
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QtdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL3Bpdm90L3Bpdm90LXRhYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQTRCLFdBQVcsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDakcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQUV6RTs7R0FFRztBQU9ILE1BQU0sT0FBTyxpQkFBaUI7SUFFMUIsWUFBOEQsY0FBYztRQUFkLG1CQUFjLEdBQWQsY0FBYyxDQUFBO1FBZTVFOztXQUVHO1FBRUksNEJBQXVCLEdBQXVCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBK0J0RTs7V0FFRztRQUNJLGNBQVMsR0FBRyxJQUFJLENBQUM7SUFyRHdELENBQUM7SUFFakY7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUM7SUFDNUUsQ0FBQztJQWdETSxXQUFXLENBQUMsT0FBc0I7UUFDckMsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBRUssZUFBZTtRQUNuQixNQUFNLElBQUksR0FBZ0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1FBQ3hFLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEQsOEJBQThCO1FBQzlCLGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztRQUN4Qyx1Q0FBdUM7UUFDdkMsY0FBYyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzNDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUM7UUFDeEMsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3pDLGNBQWMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN0QyxNQUFNLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6QyxjQUFjLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDO1FBQ3ZELGNBQWMsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDekQsY0FBYyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUNuRCxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQ3JELGNBQWMsQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUM7UUFDdkQsY0FBYyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztRQUN2RCxjQUFjLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDO1FBQzdELGNBQWMsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFFakQsdUNBQXVDO1FBQ3ZDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNsRSxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztRQUUxQiwwQ0FBMEM7UUFDMUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7cUdBaEdRLGlCQUFpQix1QkFFTixnQ0FBZ0M7eUVBRjNDLGlCQUFpQjtvQ0E0Q1osV0FBVzs7Ozs7QUF1QnpCO0lBREMsS0FBSyxFQUFFOzs7O3dEQThCUDt1RkFoR1EsaUJBQWlCO2NBTDdCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFLEVBQUU7YUFDZjs7c0JBSWdCLE1BQU07dUJBQUMsZ0NBQWdDO3dCQWE3QyxLQUFLO2tCQURYLEtBQUs7WUFPQyx1QkFBdUI7a0JBRDdCLEtBQUs7WUFPQyxLQUFLO2tCQURYLEtBQUs7WUFPQyxTQUFTO2tCQURmLEtBQUs7WUFPQyxRQUFRO2tCQURkLEtBQUs7WUFPQyxlQUFlO2tCQURyQixZQUFZO21CQUFDLFdBQVc7WUF1QmpCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgSW5qZWN0LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBZaWVsZCB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvYmFzZS9kZWNvcmF0b3JzL3lpZWxkLmRlY29yYXRvcic7XHJcbmltcG9ydCB7IFBpdm90VGFiVHlwZSB9IGZyb20gJy4vcGl2b3QtdGFiLXR5cGUnO1xyXG5pbXBvcnQgeyBTTUVfUElWT1RfVEFCX0NPTlRBSU5FUl9QUk9WSURFUiB9IGZyb20gJy4vcGl2b3QtdGFiLmNvbnRhaW5lcic7XHJcblxyXG4vKipcclxuICogRGVmaW5lcyBhIHRhYiBmb3IgQHNlZSBQaXZvdENvbXBvbmVudFxyXG4gKi9cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtcGl2b3QtdGFiJyxcclxuICAgIHRlbXBsYXRlOiAnJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFBpdm90VGFiQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KFNNRV9QSVZPVF9UQUJfQ09OVEFJTkVSX1BST1ZJREVSKSBwcml2YXRlIHBpdm90Q29udGFpbmVyKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGUgdHlwZSBvZiB0aGlzIHRhYlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHR5cGUoKTogUGl2b3RUYWJUeXBlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50VGVtcGxhdGUgPyBQaXZvdFRhYlR5cGUuU3RhdGljIDogUGl2b3RUYWJUeXBlLlJvdXRlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSByb3V0ZSBvZiB0aGlzIHRhYlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJvdXRlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVc2UgdGhlIHNhbWUgaW5wdXQgb3B0aW9ucyBhcyBhbmd1bGFyIEBzZWUgUm91dGVyTGlua0FjdGl2ZSBEaXJlY3RpdmVcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByb3V0ZXJMaW5rQWN0aXZlT3B0aW9uczogeyBleGFjdDogYm9vbGVhbiB9ID0geyBleGFjdDogZmFsc2UgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBsYWJlbCBvZiB0aGlzIHRhYi5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNsYXNzIGZvciB0aGUgaWNvbiB0byBzaG93IGZvciB0aGlzIHRhYlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGljb25DbGFzczogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIGlmIHRoaXMgdGFiIGlzIGRpc2FibGVkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgY29udGVudCB0ZW1wbGF0ZSByZWYgb2YgdGhlIHRhYi5cclxuICAgICAqL1xyXG4gICAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZilcclxuICAgIHB1YmxpYyBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAgVGhpcyBpcyBhIHByb3BlcnR5IHRoYXQgc3RvcmVzIHRoZSBtZWFzdXJlZCB3aWR0aCBvZiBhIHBpdm90IHRhYi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHdpZHRoOiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBhIHRhYiBpcyB2aXNpYmxlIG9yIGluIHRoZSB0YWIgdHJheS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzVmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICBpZiAoY2hhbmdlcy5sYWJlbCkge1xyXG4gICAgICAgICAgICB0aGlzLnlpZWxkTWVhc3VyZVRhYigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1lYXN1cmVzIHRoZSBsZW5ndGggb2YgdGhlIHBpdm90IHRhYiBhbmQgYXNzaWducyB0aGlzIHZhbHVlIHRvIHRoZSB3aWR0aCBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgQFlpZWxkKClcclxuICAgIHByaXZhdGUgeWllbGRNZWFzdXJlVGFiKCkge1xyXG4gICAgICAgIGNvbnN0IGhvc3QgPSA8SFRNTEVsZW1lbnQ+dGhpcy5waXZvdENvbnRhaW5lci5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIGNvbnN0IG1lYXN1cmVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XHJcbiAgICAgICAgLy8gcG9zaXRpb24gZWxlbWVudCBvZmYgc2NyZWVuXHJcbiAgICAgICAgbWVhc3VyZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUnO1xyXG4gICAgICAgIC8vIG1lYXN1cmVFbGVtZW50LnN0eWxlLndpZHRoID0gJ2F1dG8nO1xyXG4gICAgICAgIG1lYXN1cmVFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcclxuICAgICAgICBtZWFzdXJlRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XHJcbiAgICAgICAgbWVhc3VyZUVsZW1lbnQuc3R5bGUucmlnaHQgPSAnLTEwMDAwcHgnO1xyXG4gICAgICAgIG1lYXN1cmVFbGVtZW50LnN0eWxlLmJvdHRvbSA9ICctMTAwMDBweCc7XHJcbiAgICAgICAgbWVhc3VyZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5sYWJlbDtcclxuICAgICAgICBjb25zdCBob3N0U3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGhvc3QpO1xyXG5cclxuICAgICAgICBtZWFzdXJlRWxlbWVudC5zdHlsZS5mb250RmFtaWx5ID0gaG9zdFN0eWxlLmZvbnRGYW1pbHk7XHJcbiAgICAgICAgbWVhc3VyZUVsZW1lbnQuc3R5bGUuZm9udFZhcmlhbnQgPSBob3N0U3R5bGUuZm9udFZhcmlhbnQ7XHJcbiAgICAgICAgbWVhc3VyZUVsZW1lbnQuc3R5bGUuZm9udFNpemUgPSBob3N0U3R5bGUuZm9udFNpemU7XHJcbiAgICAgICAgbWVhc3VyZUVsZW1lbnQuc3R5bGUuZm9udFN0eWxlID0gaG9zdFN0eWxlLmZvbnRTdHlsZTtcclxuICAgICAgICBtZWFzdXJlRWxlbWVudC5zdHlsZS5mb250V2VpZ2h0ID0gaG9zdFN0eWxlLmZvbnRXZWlnaHQ7XHJcbiAgICAgICAgbWVhc3VyZUVsZW1lbnQuc3R5bGUubGluZUhlaWdodCA9IGhvc3RTdHlsZS5saW5lSGVpZ2h0O1xyXG4gICAgICAgIG1lYXN1cmVFbGVtZW50LnN0eWxlLmxldHRlclNwYWNpbmcgPSBob3N0U3R5bGUubGV0dGVyU3BhY2luZztcclxuICAgICAgICBtZWFzdXJlRWxlbWVudC5zdHlsZS5wYWRkaW5nID0gaG9zdFN0eWxlLnBhZGRpbmc7XHJcblxyXG4gICAgICAgIC8vIGFwcGVuZCB0aGUgbWVhc3VyZUVsZW1lbnQgdG8gdGhlIGRvbVxyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKG1lYXN1cmVFbGVtZW50KTtcclxuICAgICAgICBjb25zdCBtZWFzdXJlV2lkdGggPSBtZWFzdXJlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcclxuICAgICAgICB0aGlzLndpZHRoID0gbWVhc3VyZVdpZHRoO1xyXG5cclxuICAgICAgICAvLyBSZW1lbWJlciB0byByZW1vdmUgZWxlbWVudCBmcm9tIHRoZSBET01cclxuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG1lYXN1cmVFbGVtZW50KTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|