@microsoft/windows-admin-center-sdk 4.123.0 → 4.167.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/id-ID/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/esm2020/src/controls/actions/containers/action-container.component.mjs +2 -3
- package/angular/esm2020/src/controls/alert-bar/alert-bar.component.mjs +2 -2
- package/angular/esm2020/src/controls/breadcrumb-header/breadcrumb-header.component.mjs +1 -1
- package/angular/esm2020/src/controls/common/base.component.mjs +1 -1
- package/angular/esm2020/src/controls/common/spacer-base.component.mjs +25 -1
- package/angular/esm2020/src/controls/context-menu/context-menu.component.mjs +2 -3
- package/angular/esm2020/src/controls/data-table/data-table.component.mjs +7 -7
- package/angular/esm2020/src/controls/dialog/base-dialog.component.mjs +2 -4
- package/angular/esm2020/src/controls/dialog/confirmation-list-dialog/confirmation-list-dialog.component.mjs +2 -2
- package/angular/esm2020/src/controls/dropdown/dropdown.component.mjs +1 -4
- package/angular/esm2020/src/controls/form/form-field/clock/clock-form-field.component.mjs +10 -7
- package/angular/esm2020/src/controls/form/form-field/form-field.component.mjs +1 -1
- package/angular/esm2020/src/controls/form/form-field/number/number-form-field.component.mjs +22 -4
- package/angular/esm2020/src/controls/form/form-field/radio-group/classic/radio-group-form-field.component.mjs +5 -5
- package/angular/esm2020/src/controls/icon/icon-text/icon-text.component.mjs +6 -6
- package/angular/esm2020/src/controls/icon/layered-icon/status/status-icon.component.mjs +1 -1
- package/angular/esm2020/src/controls/layout/editable-layout.component.mjs +2 -3
- package/angular/esm2020/src/controls/node-credentials-form/node-credentials-form.component.mjs +2 -2
- package/angular/esm2020/src/controls/property-grid/property-grid.component.mjs +33 -13
- package/angular/esm2020/src/controls/schema/tabbed-form-loader.component.mjs +2 -2
- package/angular/esm2020/src/controls/settings/common-settings/common-settings.component.mjs +5 -5
- package/angular/esm2020/src/controls/settings/settings-form.directive.mjs +3 -7
- package/angular/esm2020/src/controls/settings/settings-form.service.mjs +2 -4
- package/angular/esm2020/src/controls/snap-in-extension/snap-in-extension.component.mjs +1 -1
- package/angular/esm2020/src/controls/split-view/split-view.component.mjs +2 -2
- package/angular/esm2020/src/directives/router/router-link.directive.mjs +2 -2
- package/angular/esm2020/src/directives/svg/svg.directive.mjs +2 -3
- package/angular/esm2020/src/generated/strings.mjs +1 -1
- package/angular/esm2020/src/service/navigation.service.mjs +3 -8
- package/angular/esm2020/src/service/user-alive.service.mjs +2 -4
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs +126 -72
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
- package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs +115 -70
- package/angular/fesm2020/microsoft-windows-admin-center-sdk-angular.mjs.map +1 -1
- package/angular/package.json +1 -1
- package/angular/src/controls/common/spacer-base.component.d.ts +11 -2
- package/angular/src/controls/form/form-field/number/number-form-field.component.d.ts +8 -0
- package/angular/src/controls/icon/icon-text/icon-text.component.d.ts +1 -1
- package/angular/src/controls/property-grid/property-grid.component.d.ts +2 -0
- package/angular/src/directives/svg/svg.directive.d.ts +1 -2
- package/angular/src/generated/strings.d.ts +12 -0
- package/core/azure/azure-constants.d.ts +2 -2
- package/core/azure/azure-constants.d.ts.map +1 -1
- package/core/azure/azure-constants.js +10 -3
- package/core/azure/azure-constants.js.map +1 -1
- package/core/data/gateway-url-translator.d.ts +1 -0
- package/core/data/gateway-url-translator.d.ts.map +1 -1
- package/core/data/gateway-url-translator.js +21 -6
- package/core/data/gateway-url-translator.js.map +1 -1
- package/core/data/node-connection.d.ts.map +1 -1
- package/core/data/node-connection.js +0 -2
- package/core/data/node-connection.js.map +1 -1
- package/core/generated/powershell-scripts.d.ts.map +1 -1
- package/core/generated/powershell-scripts.js +1 -1
- package/core/generated/powershell-scripts.js.map +1 -1
- package/core/resources/scripts/public/inventory/Get-ServerInventory.ps1 +30 -8
- package/{microsoft-windows-admin-center-sdk-4.123.0.tgz → microsoft-windows-admin-center-sdk-4.167.0.tgz} +0 -0
- package/package.json +9 -7
- package/styles/css/main-v2.css +1 -1
- package/tools/code-formatter/.eslintrc.base.json +1 -0
- package/tools/code-formatter/lint.d.ts.map +1 -1
- package/tools/code-formatter/lint.js +7 -1
- package/tools/code-formatter/lint.js.map +1 -1
- package/tools/code-formatter/utilities.d.ts +7 -0
- package/tools/code-formatter/utilities.d.ts.map +1 -0
- package/tools/code-formatter/utilities.js +79 -0
- package/tools/code-formatter/utilities.js.map +1 -0
- package/tools/gulp-update-notes-resource/index.d.ts.map +1 -1
- package/tools/gulp-update-notes-resource/index.js +4 -4
- package/tools/gulp-update-notes-resource/index.js.map +1 -1
- package/tools/module-template/.eslintrc.json +3 -0
- package/tools/module-template/gulpfile.ts/common/utilities.ts +1 -0
- package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.d.ts +9 -0
- package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.d.ts.map +1 -0
- package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js +16 -0
- package/tools/wac-cli/src/angular15/configs/eslint-auto-fix-config.js.map +1 -0
- package/tools/wac-cli/src/angular15/main.d.ts +19 -3
- package/tools/wac-cli/src/angular15/main.d.ts.map +1 -1
- package/tools/wac-cli/src/angular15/main.js +41 -7
- package/tools/wac-cli/src/angular15/main.js.map +1 -1
- package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.d.ts +18 -0
- package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.d.ts.map +1 -0
- package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js +49 -0
- package/tools/wac-cli/src/angular15/upgrader/eslint-auto-fix-upgrader.js.map +1 -0
|
@@ -68,9 +68,7 @@ export class SettingsFormService {
|
|
|
68
68
|
return fallBackRoute;
|
|
69
69
|
}
|
|
70
70
|
ngOnDestroy() {
|
|
71
|
-
|
|
72
|
-
this.routerSubscription.unsubscribe();
|
|
73
|
-
}
|
|
71
|
+
this.routerSubscription?.unsubscribe();
|
|
74
72
|
}
|
|
75
73
|
}
|
|
76
74
|
/** @nocollapse */ SettingsFormService.ɵfac = function SettingsFormService_Factory(t) { return new (t || SettingsFormService)(i0.ɵɵinject(i1.Router)); };
|
|
@@ -78,4 +76,4 @@ export class SettingsFormService {
|
|
|
78
76
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SettingsFormService, [{
|
|
79
77
|
type: Injectable
|
|
80
78
|
}], function () { return [{ type: i1.Router }]; }, null); })();
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvc2V0dGluZ3Mvc2V0dGluZ3MtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQWF4QyxNQUFNLE9BQU8sbUJBQW1CO0lBYTVCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBWDNCLGFBQVEsR0FBZ0IsRUFBRSxDQUFDO1FBRTFCLHFCQUFnQixHQUEyQixJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQUN4RSx1QkFBa0IsR0FBdUIsSUFBSSxPQUFPLEVBQWEsQ0FBQztRQUNsRSx3QkFBbUIsR0FBaUMsSUFBSSxPQUFPLEVBQXVCLENBQUM7UUFRM0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTthQUN2QyxJQUFJLENBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUFDO2FBQ25ELFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQzthQUN4QztpQkFBTTtnQkFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO2FBQ3BDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQWUsRUFBRSxxQkFBOEI7UUFDMUQsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2dCQUN2QixTQUFTLEVBQUUsSUFBSTtnQkFDZixzQkFBc0IsRUFBRSxxQkFBcUI7YUFDaEQsQ0FBQyxDQUFDO1lBRUgsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzVCO1NBQ0o7SUFDTCxDQUFDO0lBRU0sVUFBVSxDQUFDLElBQWU7UUFDN0IsSUFBSSxJQUFJLEVBQUU7WUFDTixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN2QztJQUNMLENBQUM7SUFFTSxZQUFZLENBQUMsSUFBZSxFQUFFLFFBQWE7UUFDOUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztZQUMxQixpQkFBaUIsRUFBRSxJQUFJO1lBQ3ZCLGdCQUFnQixFQUFFLFFBQVE7U0FDN0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFNBQVM7UUFDWixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRU0sV0FBVztRQUNkLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTSxlQUFlO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFTSxvQkFBb0I7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUVNLHFCQUFxQjtRQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVNLFlBQVksQ0FBQyxnQkFBd0IsR0FBRztRQUMzQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ3pCO1FBRUQsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDM0MsQ0FBQzs7eUdBcEZRLG1CQUFtQjt3R0FBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQjt1RkFBbkIsbUJBQW1CO2NBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVGb3JtVmFsdWVEYXRhIHtcclxuICAgIGZvcm1Hcm91cFRvVXBkYXRlOiBGb3JtR3JvdXA7XHJcbiAgICBmb3JtR3JvdXBOZXdEYXRhOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9ybUFkZGVkRGF0YSB7XHJcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIHVwZGF0ZVZhbHVlSW5Db21wb25lbnQ6IGJvb2xlYW47XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNldHRpbmdzRm9ybVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAgIHB1YmxpYyBhbGxGb3JtczogRm9ybUdyb3VwW10gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIGZvcm1BZGRlZFN1YmplY3Q6IFN1YmplY3Q8Rm9ybUFkZGVkRGF0YT4gPSBuZXcgU3ViamVjdDxGb3JtQWRkZWREYXRhPigpO1xyXG4gICAgcHJpdmF0ZSBmb3JtUmVtb3ZlZFN1YmplY3Q6IFN1YmplY3Q8Rm9ybUdyb3VwPiA9IG5ldyBTdWJqZWN0PEZvcm1Hcm91cD4oKTtcclxuICAgIHByaXZhdGUgdXBkYXRlRm9ybVZhbHVlRGF0YTogU3ViamVjdDxVcGRhdGVGb3JtVmFsdWVEYXRhPiA9IG5ldyBTdWJqZWN0PFVwZGF0ZUZvcm1WYWx1ZURhdGE+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSByb3V0ZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgYmFja1JvdXRlOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIG5leHRCYWNrUm91dGU6IHN0cmluZztcclxuICAgIHByaXZhdGUgZnJlZXplQmFja1JvdXRlOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgICAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50c1xyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZyZWV6ZUJhY2tSb3V0ZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmV4dEJhY2tSb3V0ZSA9IHRoaXMucm91dGVyLnVybDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrUm91dGUgPSB0aGlzLnJvdXRlci51cmw7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRGb3JtKGZvcm06IEZvcm1Hcm91cCwgdXBkYXRlRGF0YUluQ29tcG9uZW50OiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKGZvcm0pIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQWRkZWRTdWJqZWN0Lm5leHQoe1xyXG4gICAgICAgICAgICAgICAgZm9ybUdyb3VwOiBmb3JtLFxyXG4gICAgICAgICAgICAgICAgdXBkYXRlVmFsdWVJbkNvbXBvbmVudDogdXBkYXRlRGF0YUluQ29tcG9uZW50XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuYWxsRm9ybXMuaW5kZXhPZihmb3JtKSA8IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsRm9ybXMucHVzaChmb3JtKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVtb3ZlRm9ybShmb3JtOiBGb3JtR3JvdXApIHtcclxuICAgICAgICBpZiAoZm9ybSkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1SZW1vdmVkU3ViamVjdC5uZXh0KGZvcm0pO1xyXG4gICAgICAgICAgICBNc2Z0U21lLnJlbW92ZSh0aGlzLmFsbEZvcm1zLCBmb3JtKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5ld0Zvcm1WYWx1ZShmb3JtOiBGb3JtR3JvdXAsIG5ld1ZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZURhdGEubmV4dCh7XHJcbiAgICAgICAgICAgIGZvcm1Hcm91cFRvVXBkYXRlOiBmb3JtLFxyXG4gICAgICAgICAgICBmb3JtR3JvdXBOZXdEYXRhOiBuZXdWYWx1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBmb3JtQWRkZWQoKTogT2JzZXJ2YWJsZTxGb3JtQWRkZWREYXRhPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUFkZGVkU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9ybVJlbW92ZWQoKTogT2JzZXJ2YWJsZTxGb3JtR3JvdXA+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtUmVtb3ZlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZUZvcm1WYWx1ZSgpOiBPYnNlcnZhYmxlPFVwZGF0ZUZvcm1WYWx1ZURhdGE+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVGb3JtVmFsdWVEYXRhLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdG9wUHJvY2Vzc2luZ0V2ZW50cygpIHtcclxuICAgICAgICB0aGlzLmZyZWV6ZUJhY2tSb3V0ZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXJ0UHJvY2Vzc2luZ0V2ZW50cygpIHtcclxuICAgICAgICB0aGlzLmZyZWV6ZUJhY2tSb3V0ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuYmFja1JvdXRlID0gdGhpcy5uZXh0QmFja1JvdXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRCYWNrUm91dGUoZmFsbEJhY2tSb3V0ZTogc3RyaW5nID0gJy8nKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYmFja1JvdXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmJhY2tSb3V0ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxsQmFja1JvdXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -172,4 +172,4 @@ __decorate([
|
|
|
172
172
|
type: HostListener,
|
|
173
173
|
args: ['window:scroll']
|
|
174
174
|
}], onLayoutChanged: [] }); })();
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcC1pbi1leHRlbnNpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvc25hcC1pbi1leHRlbnNpb24vc25hcC1pbi1leHRlbnNpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvc25hcC1pbi1leHRlbnNpb24vc25hcC1pbi1leHRlbnNpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDWSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBVSxRQUFRLEVBQUUsS0FBSyxFQUErQixNQUFNLEVBQUUsU0FBUyxFQUNoSSxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFJakcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFVLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7SUNWN0Qsb0NBQXVEOztBRGdCekQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGlCQUFpQjtJQXFDM0QsWUFBWSxRQUFrQixFQUFVLHNCQUE4QztRQUNsRixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEb0IsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQXJCL0UsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBd0J2RCxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxH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LENBQUMsSUFBSSxDQUFDO1lBQzlDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztTQUM3QztRQUVELElBQUksS0FBSyxHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRTtZQUNsQyxNQUFNLE1BQU0sR0FBRyxLQUFLLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1lBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztTQUM3QztJQUNMLENBQUM7O21IQW5LUSx3QkFBd0I7MEdBQXhCLHdCQUF3Qjs7Ozs7O3VHQUF4QixjQUFVOztRQ2pCdkIsaUNBQXdFO1FBQ3RFLHFHQUF1RDtRQUN6RCxpQkFBTTs7UUFEZ0IsZUFBYTtRQUFiLGtDQUFhOztBRGtHL0I7SUFBQyxLQUFLLEVBQUU7Ozs7K0RBb0NQO3VGQXRIUSx3QkFBd0I7Y0FKcEMsU0FBUzsyQkFDSSx1QkFBdUI7Z0dBVTFCLFdBQVc7a0JBRGpCLFNBQVM7bUJBQUMsYUFBYTtZQUlqQixXQUFXO2tCQURqQixLQUFLO1lBSUMsS0FBSztrQkFEWCxLQUFLO1lBSUMsTUFBTTtrQkFEWixNQUFNO1lBV3dCLFFBQVE7a0JBQXRDLFlBQVk7bUJBQUMsZUFBZTtZQXlEckIsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbmplY3QsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBZaWVsZCB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvYmFzZS9kZWNvcmF0b3JzL3lpZWxkLmRlY29yYXRvcic7XHJcbmltcG9ydCB7IFNuYXBJbkV4dGVuc2lvbkluc3RhbmNlIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9kYXRhL2V4dGVuc2lvbi1icm9rZXIvbW9kZWwvZXh0ZW5zaW9uLWluc3RhbmNlJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uUmVjdCB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZGF0YS9leHRlbnNpb24tYnJva2VyL21vZGVsL2V4dGVuc2lvbi1yZWN0JztcclxuaW1wb3J0IHsgU25hcEluT3V0cHV0IH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9kYXRhL2V4dGVuc2lvbi1icm9rZXIvc25hcC1pbi1saXN0ZW5lcic7XHJcbmltcG9ydCB7IERvbSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZG9tL2RvbSc7XHJcbmltcG9ydCB7IG1lcmdlTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFeHRlbnNpb25Ccm9rZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9leHRlbnNpb24tYnJva2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb3JlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExheW91dCwgU01FX0xBWU9VVF9QUk9WSURFUiB9IGZyb20gJy4uL2NvbW1vbi9sYXlvdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1zbmFwLWluLWV4dGVuc2lvbicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc25hcC1pbi1leHRlbnNpb24uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbmFwSW5FeHRlbnNpb25Db21wb25lbnQgZXh0ZW5kcyBDb3JlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICAgIC8qKlxyXG4gICAgKiBJbmplY3RlZCBAc2VlIExheW91dCBwYXJlbnQgaW5zdGFuY2UgYm91bmQgdG8gdGhpcyBjb21wb25lbnQuXHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBsYXlvdXQ6IExheW91dDtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdwbGFjZWhvbGRlcicpXHJcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXI6IGFueTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGV4dGVuc2lvbklkOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpbnB1dDogYW55O1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIG91dHB1dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBwdWJsaWMgaW5zdGFuY2U6IFNuYXBJbkV4dGVuc2lvbkluc3RhbmNlO1xyXG5cclxuICAgIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuO1xyXG5cclxuICAgIHB1YmxpYyBvdmVyZmxvd0VsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG5cclxuICAgIHB1YmxpYyBzY3JvbGxFdmVudEhhbmRsZXI6ICgpID0+IHZvaWQ7XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpIG9uU2Nyb2xsKCkge1xyXG4gICAgICAgIHRoaXMub25MYXlvdXRDaGFuZ2VkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ1NuYXBJbkV4dGVuc2lvbkNvbXBvbmVudCc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIGV4dGVuc2lvbkJyb2tlclNlcnZpY2U6IEV4dGVuc2lvbkJyb2tlclNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihpbmplY3Rvcik7XHJcblxyXG4gICAgICAgIHRoaXMubGF5b3V0ID0gaW5qZWN0b3IuZ2V0KFNNRV9MQVlPVVRfUFJPVklERVIsIG51bGwsIHsgb3B0aW9uYWw6IHRydWUgfSk7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZXh0ZW5zaW9uQnJva2VyU2VydmljZS5jcmVhdGVTbmFwSW4odGhpcy5leHRlbnNpb25JZCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoKGluc3RhbmNlOiBTbmFwSW5FeHRlbnNpb25JbnN0YW5jZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5jYWxsKCdpbnB1dCcsIDAsIFt0aGlzLmlucHV0XSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIC8vIFRPRE86IGZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0aGUgdGltZW91dFxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25MYXlvdXRDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgICAgICAgICAgMjAwXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxFdmVudEhhbmRsZXIgPSB0aGlzLm9uTGF5b3V0Q2hhbmdlZC5iaW5kKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5sYXlvdXQubGF5b3V0Q2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkxheW91dENoYW5nZWQoKSkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5zdGFuY2UubGlzdGVuKCdvdXRwdXQnKTtcclxuICAgICAgICAgICAgfSkpLnN1YnNjcmliZShvdXRwdXQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKG91dHB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0V2ZW50T3V0cHV0KG91dHB1dC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm91dHB1dC5lbWl0KG91dHB1dCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT24gbGF5b3V0IGNoYW5nZWQgZXZlbnQgaGFuZGxlciwgb2NjdXJzIGV2ZXJ5IHRpbWUgdGhlIGxheW91dCBoYXMgYmVlbiBjaGFuZ2VkLlxyXG4gICAgICovXHJcbiAgICBAWWllbGQoKVxyXG4gICAgcHJpdmF0ZSBvbkxheW91dENoYW5nZWQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm92ZXJmbG93RWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVyZmxvd0VsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5zY3JvbGxFdmVudEhhbmRsZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+dGhpcy5wbGFjZWhvbGRlci5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBwbGFjZWhvbGRlclJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICBjb25zdCBleHRlbnNpb25SZWN0OiBFeHRlbnNpb25SZWN0ID0ge1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiBwbGFjZWhvbGRlclJlY3QuYm90dG9tLFxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBwbGFjZWhvbGRlclJlY3QuaGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgbGVmdDogcGxhY2Vob2xkZXJSZWN0LmxlZnQsXHJcbiAgICAgICAgICAgICAgICByaWdodDogcGxhY2Vob2xkZXJSZWN0LnJpZ2h0LFxyXG4gICAgICAgICAgICAgICAgdG9wOiBwbGFjZWhvbGRlclJlY3QudG9wLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHBsYWNlaG9sZGVyUmVjdC53aWR0aFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY29uc3Qgb3ZlcmZsb3dQYXJlbnQgPSBEb20uZ2V0T3ZlcmZsb3dBbmNlc3RvcihlbGVtZW50KTtcclxuICAgICAgICAgICAgaWYgKG92ZXJmbG93UGFyZW50KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvdmVyZmxvd1BhcmVudFJlY3QgPSBvdmVyZmxvd1BhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgICAgICAgIGV4dGVuc2lvblJlY3Qub3ZlcmZsb3dQYXJlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0OiBvdmVyZmxvd1BhcmVudC5zY3JvbGxIZWlnaHQsXHJcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsV2lkdGg6IG92ZXJmbG93UGFyZW50LnNjcm9sbFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudEhlaWdodDogb3ZlcmZsb3dQYXJlbnQuY2xpZW50SGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudFdpZHRoOiBvdmVyZmxvd1BhcmVudC5jbGllbnRXaWR0aCxcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IG92ZXJmbG93UGFyZW50UmVjdC50b3AsXHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IG92ZXJmbG93UGFyZW50UmVjdC5yaWdodCxcclxuICAgICAgICAgICAgICAgICAgICBib3R0b206IG92ZXJmbG93UGFyZW50UmVjdC5ib3R0b20sXHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogb3ZlcmZsb3dQYXJlbnRSZWN0LmxlZnRcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJmbG93RWxlbWVudCA9IG92ZXJmbG93UGFyZW50O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVyZmxvd0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5zY3JvbGxFdmVudEhhbmRsZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UubW92ZShleHRlbnNpb25SZWN0KS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NFdmVudE91dHB1dChvdXRwdXREYXRhOiBTbmFwSW5PdXRwdXQpIHtcclxuICAgICAgICBpZiAob3V0cHV0RGF0YSkge1xyXG4gICAgICAgICAgICBpZiAob3V0cHV0RGF0YS5kZWx0YVkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmZsb3dFbGVtZW50LnNjcm9sbFRvcCArPSBvdXRwdXREYXRhLmRlbHRhWTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChvdXRwdXREYXRhLmZvY3VzZWRFbGVtZW50UmVjdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVGb2N1c0V2ZW50KG91dHB1dERhdGEuZm9jdXNlZEVsZW1lbnRSZWN0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUZvY3VzRXZlbnQoZm9jdXNlZFJlY3Q6IERPTVJlY3QpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMucGxhY2Vob2xkZXIubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBjb25zdCBwbGFjZWhvbGRlclJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIGNvbnN0IG92ZXJmbG93UGFyZW50UmVjdCA9IHRoaXMub3ZlcmZsb3dFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgICAgICAvLyBnZXQgdGhlIGZvY3VzZWQgZWxlbWVudHMgbG9jYXRpb24gcmVsYXRpdmUgdG8gdGhlIHBsYWNlaG9sZGVyJ3MgZnJhbWVcclxuICAgICAgICBjb25zdCB0b3AgPSBwbGFjZWhvbGRlclJlY3QudG9wICsgZm9jdXNlZFJlY3QudG9wO1xyXG4gICAgICAgIGNvbnN0IGJvdHRvbSA9IHBsYWNlaG9sZGVyUmVjdC50b3AgKyBmb2N1c2VkUmVjdC5ib3R0b207XHJcbiAgICAgICAgY29uc3QgbGVmdCA9IHBsYWNlaG9sZGVyUmVjdC5sZWZ0ICsgZm9jdXNlZFJlY3QubGVmdDtcclxuICAgICAgICBjb25zdCByaWdodCA9IHBsYWNlaG9sZGVyUmVjdC5sZWZ0ICsgZm9jdXNlZFJlY3QucmlnaHQ7XHJcblxyXG4gICAgICAgIC8vIFRPRE86IGVkZ2UgY2FzZXMgZm9yIHRoZXNlIGZvciBleGFtcGxlLCBmb2N1c1JlY3QgaXMgYmlnZ2VyIHRoYW4gb3ZlcmZsb3dQYXJlbnRcclxuICAgICAgICBpZiAodG9wIDwgb3ZlcmZsb3dQYXJlbnRSZWN0LnRvcCkge1xyXG4gICAgICAgICAgICAvLyBhYm92ZSB2aWV3cG9ydCwgbW92ZSB0byBiZSB1bmRlciB2aWV3IHBvcnRcclxuICAgICAgICAgICAgY29uc3QgZGVsdGFZID0gdG9wIC0gb3ZlcmZsb3dQYXJlbnRSZWN0LnRvcDtcclxuICAgICAgICAgICAgdGhpcy5vdmVyZmxvd0VsZW1lbnQuc2Nyb2xsVG9wICs9IGRlbHRhWTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChib3R0b20gPiBvdmVyZmxvd1BhcmVudFJlY3QuYm90dG9tKSB7XHJcbiAgICAgICAgICAgIC8vIGJlbG93IHZpZXdwb3J0XHJcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhWSA9IGJvdHRvbSAtIG92ZXJmbG93UGFyZW50UmVjdC5ib3R0b207XHJcbiAgICAgICAgICAgIHRoaXMub3ZlcmZsb3dFbGVtZW50LnNjcm9sbFRvcCArPSBkZWx0YVk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobGVmdCA8IG92ZXJmbG93UGFyZW50UmVjdC5sZWZ0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhWCA9IGxlZnQgLSBvdmVyZmxvd1BhcmVudFJlY3QubGVmdDtcclxuICAgICAgICAgICAgdGhpcy5vdmVyZmxvd0VsZW1lbnQuc2Nyb2xsTGVmdCArPSBkZWx0YVg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmlnaHQgPiBvdmVyZmxvd1BhcmVudFJlY3QucmlnaHQpIHtcclxuICAgICAgICAgICAgY29uc3QgZGVsdGFYID0gcmlnaHQgLSBvdmVyZmxvd1BhcmVudFJlY3QucmlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMub3ZlcmZsb3dFbGVtZW50LnNjcm9sbExlZnQgKz0gZGVsdGFYO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2ICNwbGFjZWhvbGRlciBjbGFzcz1cInNtZS1wb3NpdGlvbi1zdHJldGNoLXYgc21lLXBvc2l0aW9uLXN0cmV0Y2gtaFwiPlxyXG4gIDxzbWUtbG9hZGluZy13aGVlbCAqbmdJZj1cImxvYWRpbmdcIj48L3NtZS1sb2FkaW5nLXdoZWVsPlxyXG48L2Rpdj5cclxuIl19
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcC1pbi1leHRlbnNpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvc25hcC1pbi1leHRlbnNpb24vc25hcC1pbi1leHRlbnNpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvc25hcC1pbi1leHRlbnNpb24vc25hcC1pbi1leHRlbnNpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDWSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUM5RyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFJakcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFVLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7SUNWN0Qsb0NBQXVEOztBRGdCekQsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGlCQUFpQjtJQXFDM0QsWUFBWSxRQUFrQixFQUFVLHNCQUE4QztRQUNsRixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEb0IsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQXJCL0UsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBd0J2RCxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxH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LENBQUMsSUFBSSxDQUFDO1lBQzlDLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztTQUM3QztRQUVELElBQUksS0FBSyxHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRTtZQUNsQyxNQUFNLE1BQU0sR0FBRyxLQUFLLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1lBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztTQUM3QztJQUNMLENBQUM7O21IQW5LUSx3QkFBd0I7MEdBQXhCLHdCQUF3Qjs7Ozs7O3VHQUF4QixjQUFVOztRQ2pCdkIsaUNBQXdFO1FBQ3RFLHFHQUF1RDtRQUN6RCxpQkFBTTs7UUFEZ0IsZUFBYTtRQUFiLGtDQUFhOztBRGtHL0I7SUFBQyxLQUFLLEVBQUU7Ozs7K0RBb0NQO3VGQXRIUSx3QkFBd0I7Y0FKcEMsU0FBUzsyQkFDSSx1QkFBdUI7Z0dBVTFCLFdBQVc7a0JBRGpCLFNBQVM7bUJBQUMsYUFBYTtZQUlqQixXQUFXO2tCQURqQixLQUFLO1lBSUMsS0FBSztrQkFEWCxLQUFLO1lBSUMsTUFBTTtrQkFEWixNQUFNO1lBV3dCLFFBQVE7a0JBQXRDLFlBQVk7bUJBQUMsZUFBZTtZQXlEckIsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBZaWVsZCB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvYmFzZS9kZWNvcmF0b3JzL3lpZWxkLmRlY29yYXRvcic7XHJcbmltcG9ydCB7IFNuYXBJbkV4dGVuc2lvbkluc3RhbmNlIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9kYXRhL2V4dGVuc2lvbi1icm9rZXIvbW9kZWwvZXh0ZW5zaW9uLWluc3RhbmNlJztcclxuaW1wb3J0IHsgRXh0ZW5zaW9uUmVjdCB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZGF0YS9leHRlbnNpb24tYnJva2VyL21vZGVsL2V4dGVuc2lvbi1yZWN0JztcclxuaW1wb3J0IHsgU25hcEluT3V0cHV0IH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9kYXRhL2V4dGVuc2lvbi1icm9rZXIvc25hcC1pbi1saXN0ZW5lcic7XHJcbmltcG9ydCB7IERvbSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZG9tL2RvbSc7XHJcbmltcG9ydCB7IG1lcmdlTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBFeHRlbnNpb25Ccm9rZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9leHRlbnNpb24tYnJva2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb3JlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExheW91dCwgU01FX0xBWU9VVF9QUk9WSURFUiB9IGZyb20gJy4uL2NvbW1vbi9sYXlvdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1zbmFwLWluLWV4dGVuc2lvbicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc25hcC1pbi1leHRlbnNpb24uY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbmFwSW5FeHRlbnNpb25Db21wb25lbnQgZXh0ZW5kcyBDb3JlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICAgIC8qKlxyXG4gICAgKiBJbmplY3RlZCBAc2VlIExheW91dCBwYXJlbnQgaW5zdGFuY2UgYm91bmQgdG8gdGhpcyBjb21wb25lbnQuXHJcbiAgICAqL1xyXG4gICAgcHJpdmF0ZSBsYXlvdXQ6IExheW91dDtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdwbGFjZWhvbGRlcicpXHJcbiAgICBwdWJsaWMgcGxhY2Vob2xkZXI6IGFueTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGV4dGVuc2lvbklkOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpbnB1dDogYW55O1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIG91dHB1dDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBwdWJsaWMgaW5zdGFuY2U6IFNuYXBJbkV4dGVuc2lvbkluc3RhbmNlO1xyXG5cclxuICAgIHB1YmxpYyBsb2FkaW5nOiBib29sZWFuO1xyXG5cclxuICAgIHB1YmxpYyBvdmVyZmxvd0VsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG5cclxuICAgIHB1YmxpYyBzY3JvbGxFdmVudEhhbmRsZXI6ICgpID0+IHZvaWQ7XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpIG9uU2Nyb2xsKCkge1xyXG4gICAgICAgIHRoaXMub25MYXlvdXRDaGFuZ2VkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ1NuYXBJbkV4dGVuc2lvbkNvbXBvbmVudCc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCBwcml2YXRlIGV4dGVuc2lvbkJyb2tlclNlcnZpY2U6IEV4dGVuc2lvbkJyb2tlclNlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihpbmplY3Rvcik7XHJcblxyXG4gICAgICAgIHRoaXMubGF5b3V0ID0gaW5qZWN0b3IuZ2V0KFNNRV9MQVlPVVRfUFJPVklERVIsIG51bGwsIHsgb3B0aW9uYWw6IHRydWUgfSk7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZXh0ZW5zaW9uQnJva2VyU2VydmljZS5jcmVhdGVTbmFwSW4odGhpcy5leHRlbnNpb25JZCkucGlwZShcclxuICAgICAgICAgICAgbWVyZ2VNYXAoKGluc3RhbmNlOiBTbmFwSW5FeHRlbnNpb25JbnN0YW5jZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlucHV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZS5jYWxsKCdpbnB1dCcsIDAsIFt0aGlzLmlucHV0XSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIC8vIFRPRE86IGZpZ3VyZSBvdXQgaWYgd2UgbmVlZCB0aGUgdGltZW91dFxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25MYXlvdXRDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgICAgICAgICAgMjAwXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxFdmVudEhhbmRsZXIgPSB0aGlzLm9uTGF5b3V0Q2hhbmdlZC5iaW5kKHRoaXMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5sYXlvdXQubGF5b3V0Q2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkxheW91dENoYW5nZWQoKSkpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5zdGFuY2UubGlzdGVuKCdvdXRwdXQnKTtcclxuICAgICAgICAgICAgfSkpLnN1YnNjcmliZShvdXRwdXQgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKG91dHB1dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2Vzc0V2ZW50T3V0cHV0KG91dHB1dC5kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm91dHB1dC5lbWl0KG91dHB1dCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKSk7XHJcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UuZGVzdHJveSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT24gbGF5b3V0IGNoYW5nZWQgZXZlbnQgaGFuZGxlciwgb2NjdXJzIGV2ZXJ5IHRpbWUgdGhlIGxheW91dCBoYXMgYmVlbiBjaGFuZ2VkLlxyXG4gICAgICovXHJcbiAgICBAWWllbGQoKVxyXG4gICAgcHJpdmF0ZSBvbkxheW91dENoYW5nZWQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UpIHtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm92ZXJmbG93RWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVyZmxvd0VsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5zY3JvbGxFdmVudEhhbmRsZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+dGhpcy5wbGFjZWhvbGRlci5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBwbGFjZWhvbGRlclJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICBjb25zdCBleHRlbnNpb25SZWN0OiBFeHRlbnNpb25SZWN0ID0ge1xyXG4gICAgICAgICAgICAgICAgYm90dG9tOiBwbGFjZWhvbGRlclJlY3QuYm90dG9tLFxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBwbGFjZWhvbGRlclJlY3QuaGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgbGVmdDogcGxhY2Vob2xkZXJSZWN0LmxlZnQsXHJcbiAgICAgICAgICAgICAgICByaWdodDogcGxhY2Vob2xkZXJSZWN0LnJpZ2h0LFxyXG4gICAgICAgICAgICAgICAgdG9wOiBwbGFjZWhvbGRlclJlY3QudG9wLFxyXG4gICAgICAgICAgICAgICAgd2lkdGg6IHBsYWNlaG9sZGVyUmVjdC53aWR0aFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgY29uc3Qgb3ZlcmZsb3dQYXJlbnQgPSBEb20uZ2V0T3ZlcmZsb3dBbmNlc3RvcihlbGVtZW50KTtcclxuICAgICAgICAgICAgaWYgKG92ZXJmbG93UGFyZW50KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBvdmVyZmxvd1BhcmVudFJlY3QgPSBvdmVyZmxvd1BhcmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgICAgICAgICAgICAgIGV4dGVuc2lvblJlY3Qub3ZlcmZsb3dQYXJlbnQgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0OiBvdmVyZmxvd1BhcmVudC5zY3JvbGxIZWlnaHQsXHJcbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsV2lkdGg6IG92ZXJmbG93UGFyZW50LnNjcm9sbFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudEhlaWdodDogb3ZlcmZsb3dQYXJlbnQuY2xpZW50SGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgICAgIGNsaWVudFdpZHRoOiBvdmVyZmxvd1BhcmVudC5jbGllbnRXaWR0aCxcclxuICAgICAgICAgICAgICAgICAgICB0b3A6IG92ZXJmbG93UGFyZW50UmVjdC50b3AsXHJcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IG92ZXJmbG93UGFyZW50UmVjdC5yaWdodCxcclxuICAgICAgICAgICAgICAgICAgICBib3R0b206IG92ZXJmbG93UGFyZW50UmVjdC5ib3R0b20sXHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogb3ZlcmZsb3dQYXJlbnRSZWN0LmxlZnRcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJmbG93RWxlbWVudCA9IG92ZXJmbG93UGFyZW50O1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVyZmxvd0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5zY3JvbGxFdmVudEhhbmRsZXIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UubW92ZShleHRlbnNpb25SZWN0KS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHByb2Nlc3NFdmVudE91dHB1dChvdXRwdXREYXRhOiBTbmFwSW5PdXRwdXQpIHtcclxuICAgICAgICBpZiAob3V0cHV0RGF0YSkge1xyXG4gICAgICAgICAgICBpZiAob3V0cHV0RGF0YS5kZWx0YVkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmZsb3dFbGVtZW50LnNjcm9sbFRvcCArPSBvdXRwdXREYXRhLmRlbHRhWTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChvdXRwdXREYXRhLmZvY3VzZWRFbGVtZW50UmVjdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5oYW5kbGVGb2N1c0V2ZW50KG91dHB1dERhdGEuZm9jdXNlZEVsZW1lbnRSZWN0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhhbmRsZUZvY3VzRXZlbnQoZm9jdXNlZFJlY3Q6IERPTVJlY3QpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMucGxhY2Vob2xkZXIubmF0aXZlRWxlbWVudDtcclxuICAgICAgICBjb25zdCBwbGFjZWhvbGRlclJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgIGNvbnN0IG92ZXJmbG93UGFyZW50UmVjdCA9IHRoaXMub3ZlcmZsb3dFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgICAgICAvLyBnZXQgdGhlIGZvY3VzZWQgZWxlbWVudHMgbG9jYXRpb24gcmVsYXRpdmUgdG8gdGhlIHBsYWNlaG9sZGVyJ3MgZnJhbWVcclxuICAgICAgICBjb25zdCB0b3AgPSBwbGFjZWhvbGRlclJlY3QudG9wICsgZm9jdXNlZFJlY3QudG9wO1xyXG4gICAgICAgIGNvbnN0IGJvdHRvbSA9IHBsYWNlaG9sZGVyUmVjdC50b3AgKyBmb2N1c2VkUmVjdC5ib3R0b207XHJcbiAgICAgICAgY29uc3QgbGVmdCA9IHBsYWNlaG9sZGVyUmVjdC5sZWZ0ICsgZm9jdXNlZFJlY3QubGVmdDtcclxuICAgICAgICBjb25zdCByaWdodCA9IHBsYWNlaG9sZGVyUmVjdC5sZWZ0ICsgZm9jdXNlZFJlY3QucmlnaHQ7XHJcblxyXG4gICAgICAgIC8vIFRPRE86IGVkZ2UgY2FzZXMgZm9yIHRoZXNlIGZvciBleGFtcGxlLCBmb2N1c1JlY3QgaXMgYmlnZ2VyIHRoYW4gb3ZlcmZsb3dQYXJlbnRcclxuICAgICAgICBpZiAodG9wIDwgb3ZlcmZsb3dQYXJlbnRSZWN0LnRvcCkge1xyXG4gICAgICAgICAgICAvLyBhYm92ZSB2aWV3cG9ydCwgbW92ZSB0byBiZSB1bmRlciB2aWV3IHBvcnRcclxuICAgICAgICAgICAgY29uc3QgZGVsdGFZID0gdG9wIC0gb3ZlcmZsb3dQYXJlbnRSZWN0LnRvcDtcclxuICAgICAgICAgICAgdGhpcy5vdmVyZmxvd0VsZW1lbnQuc2Nyb2xsVG9wICs9IGRlbHRhWTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChib3R0b20gPiBvdmVyZmxvd1BhcmVudFJlY3QuYm90dG9tKSB7XHJcbiAgICAgICAgICAgIC8vIGJlbG93IHZpZXdwb3J0XHJcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhWSA9IGJvdHRvbSAtIG92ZXJmbG93UGFyZW50UmVjdC5ib3R0b207XHJcbiAgICAgICAgICAgIHRoaXMub3ZlcmZsb3dFbGVtZW50LnNjcm9sbFRvcCArPSBkZWx0YVk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobGVmdCA8IG92ZXJmbG93UGFyZW50UmVjdC5sZWZ0KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlbHRhWCA9IGxlZnQgLSBvdmVyZmxvd1BhcmVudFJlY3QubGVmdDtcclxuICAgICAgICAgICAgdGhpcy5vdmVyZmxvd0VsZW1lbnQuc2Nyb2xsTGVmdCArPSBkZWx0YVg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmlnaHQgPiBvdmVyZmxvd1BhcmVudFJlY3QucmlnaHQpIHtcclxuICAgICAgICAgICAgY29uc3QgZGVsdGFYID0gcmlnaHQgLSBvdmVyZmxvd1BhcmVudFJlY3QucmlnaHQ7XHJcbiAgICAgICAgICAgIHRoaXMub3ZlcmZsb3dFbGVtZW50LnNjcm9sbExlZnQgKz0gZGVsdGFYO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2ICNwbGFjZWhvbGRlciBjbGFzcz1cInNtZS1wb3NpdGlvbi1zdHJldGNoLXYgc21lLXBvc2l0aW9uLXN0cmV0Y2gtaFwiPlxyXG4gIDxzbWUtbG9hZGluZy13aGVlbCAqbmdJZj1cImxvYWRpbmdcIj48L3NtZS1sb2FkaW5nLXdoZWVsPlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -354,7 +354,7 @@ export class SplitViewComponent extends CoreBaseComponent {
|
|
|
354
354
|
* The Angular ngOnDestroy function.
|
|
355
355
|
*/
|
|
356
356
|
ngOnDestroy() {
|
|
357
|
-
this.subscriptions.forEach(sub => sub
|
|
357
|
+
this.subscriptions.forEach(sub => sub?.unsubscribe());
|
|
358
358
|
}
|
|
359
359
|
/**
|
|
360
360
|
* The method called after content is initialized.
|
|
@@ -778,4 +778,4 @@ __decorate([
|
|
|
778
778
|
}], isExpanded: [{
|
|
779
779
|
type: Input
|
|
780
780
|
}], onWindowBreakpointChanged: [], deferredOnLayoutChanged: [], deferredRefreshUI: [], setInternalPaneDistance: [] }); })();
|
|
781
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9zcGxpdC12aWV3L3NwbGl0LXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvc3BsaXQtdmlldy9zcGxpdC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDakcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUV2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQTBCLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7O0lDdkI5Ryx3QkFBeUQ7Ozs7O0lBUXpELHNDQUU0RTtJQUExRSx3TUFBVyxlQUFBLHlCQUFpQixDQUFBLElBQUM7SUFDL0IsaUJBQWM7OztJQUZaLG1EQUFtQztJQUQ4QixtRkFBZ0MsbURBQUE7OztJQUluRyx3QkFBc0Q7OztJQWQxRCw2QkFBc0c7SUFDcEcscUNBQWdJO0lBQzlILG9H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T3RCLGFBQWE7a0JBRG5CLEtBQUs7WUFPQyxrQkFBa0I7a0JBRHhCLEtBQUs7WUFRQyxtQ0FBbUM7a0JBRHpDLEtBQUs7WUFhSyxZQUFZO2tCQUR0QixLQUFLO1lBa0JDLG9DQUFvQztrQkFEMUMsS0FBSztZQU9DLGlCQUFpQjtrQkFEdkIsS0FBSztZQU9DLGlCQUFpQjtrQkFEdkIsS0FBSztZQU9LLFdBQVc7a0JBRHJCLEtBQUs7WUFpQkMsa0NBQWtDO2tCQUR4QyxLQUFLO1lBT0MsaUJBQWlCO2tCQUR2QixLQUFLO1lBd0NDLFlBQVk7a0JBRGxCLE1BQU07WUFPQSxXQUFXO2tCQURqQixNQUFNO1lBNkJJLFNBQVM7a0JBRG5CLFdBQVc7bUJBQUMsT0FBTztZQVNULGFBQWE7a0JBRHZCLFdBQVc7bUJBQUMsc0JBQXNCO1lBbUJ4QixVQUFVO2tCQURwQixLQUFLO1lBd0dDLHlCQUF5QixNQVl4Qix1QkFBdUIsTUF5SnZCLGlCQUFpQixNQW9EakIsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyQ29udGVudEluaXQsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgZm9yd2FyZFJlZixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIE9wdGlvbmFsLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgU2tpcFNlbGYsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGVib3VuY2UgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2Jhc2UvZGVjb3JhdG9ycy9kZWJvdW5jZS5kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgWWllbGQgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2Jhc2UvZGVjb3JhdG9ycy95aWVsZC5kZWNvcmF0b3InO1xyXG5pbXBvcnQgeyBMb2dMZXZlbCB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZGlhZ25vc3RpY3MvbG9nLWxldmVsJztcclxuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZGlhZ25vc3RpY3MvbG9nZ2luZyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb3JlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExheW91dCwgU01FX0xBWU9VVF9QUk9WSURFUiB9IGZyb20gJy4uL2NvbW1vbi9sYXlvdXQnO1xyXG5pbXBvcnQgeyBTcGxpdFZpZXdSZXNpemVyTWFyZ2luLCBTcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlciB9IGZyb20gJy4vc3BsaXQtdmlldy1yZXNwb25zaXZlLXdpbmRvdy1tYW5hZ2VyJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgcGFuZSBvcmllbnRhdGlvbiBvZiB0aGUgc3BsaXQgdmlldy5cclxuICovXHJcbmV4cG9ydCB0eXBlIFNwbGl0Vmlld09yaWVudGF0aW9uID0gJ3RvcCcgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ2JvdHRvbSc7XHJcblxyXG4vKipcclxuICogVGhlIGNvbXBvbmVudCBkZWZpbml0aW9uIG9mIHRoZSBzcGxpdCB2aWV3IGNvbnRlbnQuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLXNwbGl0LXZpZXctY29udGVudCcsXHJcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGxpdFZpZXdDb250ZW50Q29tcG9uZW50IHsgfVxyXG5cclxuLyoqXHJcbiAqIFRoZSBjb21wb25lbnQgZGVmaW5pdGlvbiBvZiB0aGUgc3BsaXQgdmlldyBwYW5lLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1zcGxpdC12aWV3LXBhbmUnLFxyXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BsaXRWaWV3UGFuZUNvbXBvbmVudCB7IH1cclxuXHJcbi8qKlxyXG4gKiBUaGUgY29tcG9uZW50IGRlZmluaXRpb24gb2YgdGhlIHNwbGl0IHZpZXcuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLXNwbGl0LXZpZXcnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwbGl0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBTTUVfTEFZT1VUX1BST1ZJREVSLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTcGxpdFZpZXdDb21wb25lbnQpIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwbGl0Vmlld0NvbXBvbmVudCBleHRlbmRzIENvcmVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgTGF5b3V0LCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzb3VyY2UgbmFtZSB0byB1c2UgZm9yIGxvZ2dpbmdcclxuICAgICAqL1xyXG4gICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ1NwbGl0Vmlld0NvbXBvbmVudCc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb250YWluZXIgZm9yIGFjdGl2ZSBzdWJzY3JpcHRpb25zIHRoYXQgc2hvdWxkIGJlIGNsZWFuZWQgdXAgaW4gdGhlIE9uRGVzdHJveSBjYWxsLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGRlZmluZXMgdGhlIGFjdHVhbCBwYW5lIGRpc3RhbmNlIHRoYXQgdGhlIGNvbnRyb2wgdXNlcyBmb3IgcmVuZGVyaW5nLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGludGVybmFsUGFuZURpc3RhbmNlOiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBkZWZpbmVzIHdoZXRoZXIgdGhlIHBhbmUgZGlzdGFuY2UgdmFsdWUgaXMgc2V0LlxyXG4gICAgICogSXQgd2lsbCBub3Qgc2V0IGl0IHR3aWNlIGlmIHNldCBiZWNhdXNlIG9ubHkgbmVlZCB0byByZW1lbWJlciB0aGUgaW5pdGlhbCB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpc1BhbmVEaXN0YW5jZVNldCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgcmVtZW1iZXJzIHRoZSBwYW5lIGRpc3RhbmNlIHRoYXQgaGFzIGJlZW4gc2V0IGluaXRpYWxseS5cclxuICAgICAqIFRoZSBpbnRlbnRpb24gaXMgZm9yIHJlY292ZXJpbmcgdGhlIHZhbHVlIG9uIHdpbmRvdyBzaXplIGNoYW5nZXMgYW5kIGxheW91dCBjaGFuZ2VzLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGRlZmF1bHRQYW5lRGlzdGFuY2U6IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGRlZmluZXMgd2hldGhlciB0aGUgc3BsaXQgdmlldyBoYXMgYmVlbiBleHBhbmRlZC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpbnRlcm5hbElzRXhwYW5kZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgd2hldGhlciB0aGUgc3BsaXQgdmlldyBjb21wb25lbnQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaXNDb21wb25lbnRJbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHdpbmRvdyByZXNwb25zaXZlIG1hbmFnZXIgZm9yIHRoZSBzcGxpdCB2aWV3LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNwbGl0Vmlld1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyOiBTcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgcGFuZS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpbnRlcm5hbE9yaWVudGF0aW9uOiBTcGxpdFZpZXdPcmllbnRhdGlvbiA9ICdib3R0b20nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgaW1wbGVtZW50cyB0aGUgSUxheW91dCBpbnRlcmZhY2UuIEl0J3MgdHJpZ2dlcmVkIHdoZW4gdGhlIGxheW91dCBpcyBjaGFuZ2VkLlxyXG4gICAgICogSXQncyB1c2VkIHRvIHRlbGwgdGhlIGNoaWxkIGNvbXBvbmVudHMgdG8gY29vcmRpbmF0ZSB3aXRoIHRoZSBsYXlvdXQgY2hhbmdlLlxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBsYXlvdXRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgTGF5b3V0IGludGVyZmFjZVxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB3aW5kb3dCcmVha3BvaW50Q2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNvbnRlbnQgb2YgdGhlIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgQENvbnRlbnRDaGlsZChTcGxpdFZpZXdDb250ZW50Q29tcG9uZW50KVxyXG4gICAgcHVibGljIGNvbnRlbnQ6IFNwbGl0Vmlld0NvbnRlbnRDb21wb25lbnQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcGFuZSBvZiB0aGUgY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBAQ29udGVudENoaWxkKFNwbGl0Vmlld1BhbmVDb21wb25lbnQpXHJcbiAgICBwdWJsaWMgcGFuZTogU3BsaXRWaWV3UGFuZUNvbXBvbmVudDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzZWN0aW9uIGh0bWwgZWxlbWVudCB0aGF0IHdyYXBzIHRoZSBzbWUtc3BsaXQtdmlldy1wYW5lXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ3BhbmVDb250YWluZXInKVxyXG4gICAgcHVibGljIHBhbmVDb250YWluZXJFbGVtZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNlY3Rpb24gaHRtbCBlbGVtZW50IHRoYXQgd3JhcHMgdGhlIHNtZS1zcGxpdC12aWV3LWNvbnRhaW5lclxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdjb250ZW50Q29udGFpbmVyJylcclxuICAgIHB1YmxpYyBjb250ZW50Q29udGFpbmVyRWxlbWVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGluZGljYXRlcyB3aGV0aGVyIHRvIHNob3cgdGhlIHNjcm9sbGJhciB3aGVuIGl0J3MgbmVlZGVkLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dTY3JvbGxiYXIgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGluZGljYXRlcyB3aGV0aGVyIHRvIHNob3cgdGhlIGJvcmRlciBmb3IgdGhlIHNwbGl0dGVyLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dTcGxpdHRlckJvcmRlciA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhpcyB0byB0cnVlIG1lYW5zIG9uIHNtYWxsZXIgd2luZG93LCB3aWxsIHJlc3BlY3QgdGhlIG9yaWdpbmFsIHBhbmUgdmFsdWVcclxuICAgICAqIEl0IGlzIG5vdCBzdWdnZXN0ZWQgdG8gYmUgdXNlZCBvdGhlciB0aGFuIHRoZSBzaGVsbCBzaWRlIG5hdiBiYXIuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGlzYWJsZVBhbmVEaXN0YW5jZVJlc3BvbnNpdmVXaW5kb3cgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGluZGljYXRlcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgcGFuZS5cclxuICAgICAqIEl0IGlzIGEgaGFyZGNvZGVkIHZhbHVlLCBub3QgZnVsbHkgd29ya2luZyBvbiB3aW5kb3cgcmVzcG9uc2l2ZSBkZXNpZ24uXHJcbiAgICAgKiBCeSBkZXNpZ24sIHRoaXMgdmFsdWUgd2lsbCBub3QgYmUgcmVzcGVjdGVkIG9uIHNtYWxsZXIgc2NyZWVuLCBwaG9uZSBkb3duLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHBhbmVEaXN0YW5jZSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsUGFuZURpc3RhbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHBhbmVEaXN0YW5jZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJuYWxQYW5lRGlzdGFuY2UgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxQYW5lRGlzdGFuY2UgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzUGFuZURpc3RhbmNlU2V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFBhbmVEaXN0YW5jZSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzUGFuZURpc3RhbmNlU2V0ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0byB0cnVlIHRvIGRpc2FibGUgdGhlIHJlc2l6ZSBtYXJnaW4gdG8gZ28gd2luZG93IHJlc3BvbnNpdmUuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGlzYWJsZWRSZXNpemVNYXJnaW5SZXNwb25zaXZlV2luZG93ID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBpbmRpY2F0ZXMgdGhlIG1pbiB2YWx1ZSBvZiB0aGUgcGFuZSBzaXplLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlc2l6ZUxvd2VyTWFyZ2luID0gMTAwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgaW5kaWNhdGVzIHRoZSBtaW4gdmFsdWUgb2YgdGhlIGNvbnRlbnQgc2l6ZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZXNpemVVcHBlck1hcmdpbiA9IDEwMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGRlZmluZXMgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBlbGVtZW50IHdoaWNoIGhvbGRzIHRoZSByZXNpemVyIGluIHRoZSByZXNpemluZyBsYXlvdXQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IG9yaWVudGF0aW9uKGlucHV0OiBTcGxpdFZpZXdPcmllbnRhdGlvbikge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxPcmllbnRhdGlvbiA9IGlucHV0O1xyXG4gICAgICAgIGlmICghdGhpcy5zcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlcikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwcmV2aW91c09yaWVudGF0aW9uID0gdGhpcy5zcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlci5wcmV2aW91c09yaWVudGF0aW9uO1xyXG4gICAgICAgIGlmIChwcmV2aW91c09yaWVudGF0aW9uICE9PSB0aGlzLmludGVybmFsT3JpZW50YXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5zcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlci5wcmV2aW91c09yaWVudGF0aW9uID0gdGhpcy5pbnRlcm5hbE9yaWVudGF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGlzIHRvIHRydWUgdG8gZGlzYWJsZSB0aGUgb3JpZW50YXRpb24gY2hhbmdlIG9uIHdpbmRvdyBzaXplIGNoYW5nZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkaXNhYmxlT3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIaWRlcyB0aGUgc3BsaXQgdmlldyBwYW5lXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaGlkZVNwbGl0Vmlld1BhbmUgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHRlciBmb3Igb3JpZW50YXRpb25cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBvcmllbnRhdGlvbigpOiBTcGxpdFZpZXdPcmllbnRhdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxPcmllbnRhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbWVtYmVyIHRoZSBwcmV2aW91cyB3aW5kb3cgcmVzcG9uc2l2ZSB2YWx1ZSBmb3Igb3JpZW50YXRpb24gZm9yIHRoZSBvbiBvcmllbnRhdGlvbiBjaGFuZ2VkIGV2ZW50LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByZXZpb3VzT3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID0gJ2JvdHRvbSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXR0ZXIgZm9yIHRoZSB3aW5kb3cgcmVzcG9uc2l2ZSB2YWx1ZSBmb3IgdGhlIG9yaWVudGF0aW9uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93KCkge1xyXG4gICAgICAgIC8vIElmIG9wdC1vdXQsIHNob3VsZCB1c2UgdGhlIG9yaWdpbmFsIG9yaWVudGF0aW9uXHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZU9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLnNwbGl0Vmlld1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9yaWVudGF0aW9uO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1ciA9IHRoaXMuc3BsaXRWaWV3UmVzcG9uc2l2ZVdpbmRvd01hbmFnZXIub3JpZW50YXRpb247XHJcbiAgICAgICAgICAgIGlmIChjdXIgIT09IHRoaXMucHJldmlvdXNPcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25PcmllbnRhdGlvbkNoYW5nZWQoY3VyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNPcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPSBjdXI7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNwbGl0Vmlld1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyLm9yaWVudGF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBldmVudCBmaXJlZCB3aGVuIHRoZSBwYW5lJ3MgZXhwYW5kZWQgc3RhdGUgaXMgYmVpbmcgdG9nZ2xlZC5cclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcGFuZVRvZ2dsaW5nOiBFdmVudEVtaXR0ZXI8eyBpc0V4cGFuZGVkOiBib29sZWFuIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGlzRXhwYW5kZWQ6IGJvb2xlYW4gfT4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBldmVudCBmaXJlZCB3aGVuIHRoZSBwYW5lJ3MgZXhwYW5kZWQgc3RhdGUgaGFzIGJlZW4gdG9nZ2xlZC5cclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcGFuZVRvZ2dsZWQ6IEV2ZW50RW1pdHRlcjx7IGlzRXhwYW5kZWQ6IGJvb2xlYW4gfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXNFeHBhbmRlZDogYm9vbGVhbiB9PigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIEBTa2lwU2VsZigpIEBPcHRpb25hbCgpIEBJbmplY3QoU01FX0xBWU9VVF9QUk9WSURFUikgbGF5b3V0OiBMYXlvdXQpIHtcclxuXHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG5cclxuICAgICAgICBpZiAobGF5b3V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3BsaXRWaWV3UmVzcG9uc2l2ZVdpbmRvd01hbmFnZXIgPSBuZXcgU3BsaXRWaWV3UmVzcG9uc2l2ZVdpbmRvd01hbmFnZXIobGF5b3V0KTtcclxuICAgICAgICAgICAgLy8gb24gcGFyZW50IGxheW91dCBjaGFuZ2VzLCByZS1lbWl0IHRoZSBsYXlvdXQgY2hhbmdlIHRvIG91ciBldmVudFxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChsYXlvdXQubGF5b3V0Q2hhbmdlZC5zdWJzY3JpYmUoKCgpID0+IHRoaXMub25QYXJlbnRMYXlvdXRDaGFuZ2VkKCkpKSk7XHJcbiAgICAgICAgICAgIC8vIG9uIHdpbmRvdyBicmVhayBwb2ludCBjaGFuZ2VzLCBlbWl0IHRoZSBldmVudCBhYm91dCBjcml0aWNhbCBjbGFzc2VzIGFuZCBzdHlsaW5nIHVwZGF0ZXMgc2lnbmFsLlxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChsYXlvdXQud2luZG93QnJlYWtwb2ludENoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMub25XaW5kb3dCcmVha3BvaW50Q2hhbmdlZCgpKSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmRlZmVycmVkT25MYXlvdXRDaGFuZ2VkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgQ1NTIGNsYXNzZXMgb2YgdGhlIGNvbXBvbmVudC5cclxuICAgICAqXHJcbiAgICAgKiBUT0RPOiBzZXR0aW5nIHRoZSBjbGFzcyB0aGlzIHdheSBwcmV2ZW50IGFueSBjdXN0b20gY2xhc3MgZnJvbSBiZWluZyBhcHBsaWVkLlxyXG4gICAgICogQ2hhbmdlIHRvIHNldHRpbmcgY2xhc3MgaW4gdGhlIGNvbnN0cnVjdG9yIHVzaW5nIFJlbmRlcmVyMiBhbmQgRWxlbWVudFJlZlxyXG4gICAgICpcclxuICAgICAqIE9uIHBob25lIGRvd24sIHRoZSBsYXlvdXQgZm9yIHNwbGl0IHZpZXcgY2FuIG9ubHkgYmUgdG9wIGFuZCBib3R0b20sIGluIHRoaXMgY2FzZSwgd2Ugd2lsbCBhbGxvdyB5IHNjcm9sbC5cclxuICAgICAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgICBwdWJsaWMgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnc21lLWxheW91dC1hYnNvbHV0ZSBzbWUtcG9zaXRpb24taW5zZXQtbm9uZSBzbWUtYXJyYW5nZS1zdGFjay12IHNtZS1hcnJhbmdlLW92ZXJmbG93LWhpZGUnO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgZmxleCBkaXJlY3Rpb24gb2YgdGhlIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4LWRpcmVjdGlvbicpXHJcbiAgICBwdWJsaWMgZ2V0IGZsZXhEaXJlY3Rpb24oKTogc3RyaW5nIHtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMub3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93KSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdyb3cnO1xyXG4gICAgICAgICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdjb2x1bW4nO1xyXG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3Jvdyc7XHJcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2NvbHVtbic7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB3aGV0aGVyIHRoZSBwYW5lIGhhcyBiZWVuIGV4cGFuZGVkLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBpc0V4cGFuZGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsSXNFeHBhbmRlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgd2hldGhlciB0aGUgcGFuZSBoYXMgYmVlbiBleHBhbmRlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldCBpc0V4cGFuZGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLmludGVybmFsSXNFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmludGVybmFsSXNFeHBhbmRlZCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMucGFuZVRvZ2dsaW5nLmVtaXQoe1xyXG4gICAgICAgICAgICBpc0V4cGFuZGVkOiB0aGlzLmludGVybmFsSXNFeHBhbmRlZFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFVJKCk7XHJcbiAgICAgICAgdGhpcy5wYW5lVG9nZ2xlZC5lbWl0KHtcclxuICAgICAgICAgICAgaXNFeHBhbmRlZDogdGhpcy5pbnRlcm5hbElzRXhwYW5kZWRcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5sYXlvdXRDaGFuZ2VkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBBbmd1bGFyIG5nT25Jbml0IGZ1bmN0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0NvbXBvbmVudEluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hVSSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIEFuZ3VsYXIgbmdPbkRlc3Ryb3kgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1ldGhvZCBjYWxsZWQgYWZ0ZXIgY29udGVudCBpcyBpbml0aWFsaXplZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb250ZW50ID09IG51bGwpIHtcclxuICAgICAgICAgICAgTG9nZ2luZy5sb2coe1xyXG4gICAgICAgICAgICAgICAgbGV2ZWw6IExvZ0xldmVsLkVycm9yLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYFRoZSB2YWx1ZSBvZiAnY29udGVudCcgaXMgZWl0aGVyIG51bGwgb3IgdW5kZWZpbmVkLmAsXHJcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLmNvbnRlbnRcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6ICdTcGxpdFZpZXdDb21wb25lbnQubmdBZnRlckNvbnRlbnRJbml0J1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBhbmUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBMb2dnaW5nLmxvZyh7XHJcbiAgICAgICAgICAgICAgICBsZXZlbDogTG9nTGV2ZWwuRXJyb3IsXHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBgVGhlIHZhbHVlIG9mICdwYW5lJyBpcyBlaXRoZXIgbnVsbCBvciB1bmRlZmluZWQuYCxcclxuICAgICAgICAgICAgICAgIHBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhbmU6IHRoaXMucGFuZVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHNvdXJjZTogJ1NwbGl0Vmlld0NvbXBvbmVudC5uZ0FmdGVyQ29udGVudEluaXQnXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzUGFuZURpc3RhbmNlU2V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXRQYW5lTWF4U2l6ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHdpbmRvdyByZXNwb25zaXZlIHZhbHVlIGZvciB0aGUgcGFuZSBkaXN0YW5jZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFBhbmVEaXN0YW5jZVJlc3BvbnNpdmVXaW5kb3coKTogbnVtYmVyIHtcclxuICAgICAgICAvLyBJZiBvcHQtb3V0LCBzaG91bGQgdXNlIHRoZSBvcmlnaW5hbCBwYW5lIGRpc3RhbmNlLlxyXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVQYW5lRGlzdGFuY2VSZXNwb25zaXZlV2luZG93IHx8ICF0aGlzLnNwbGl0Vmlld1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBhbmVEaXN0YW5jZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnNwbGl0Vmlld1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyLnBhbmVEaXN0YW5jZSh0aGlzLnBhbmVEaXN0YW5jZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSB3aW5kb3cgcmVzcG9uc2l2ZSB2YWx1ZSBmb3IgdGhlIHJlc2l6ZXIgbWFyZ2luLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0U3BsaXRWaWV3UmVzaXplck1hcmdpblJlc3BvbnNpdmVXaW5kb3coKTogU3BsaXRWaWV3UmVzaXplck1hcmdpbiB7XHJcbiAgICAgICAgLy8gSWYgb3B0LW91dCwgc2hvdWxkIHVzZSB0aGUgb3JpZ2luYWwgbWFyZ2luIHNpemUuXHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWRSZXNpemVNYXJnaW5SZXNwb25zaXZlV2luZG93IHx8ICF0aGlzLnNwbGl0Vmlld1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBsb3dlcjogdGhpcy5yZXNpemVMb3dlck1hcmdpbixcclxuICAgICAgICAgICAgICAgIHVwcGVyOiB0aGlzLnJlc2l6ZVVwcGVyTWFyZ2luXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlci5zcGxpdFZpZXdSZXNpemVyTWFyZ2luKFxyXG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUxvd2VyTWFyZ2luLCB0aGlzLnJlc2l6ZVVwcGVyTWFyZ2luKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBvbiB3aW5kb3cgYnJlYWtwb2ludCBjaGFuZ2VkIGhhbmRsZXIuXHJcbiAgICAgKiBBZGRpbmcgeWllbGQgZm9yIGNvbXBvbmVudCB0byBnZXQgRWxlbWVudFJlZiBhZnRlciBpbml0aWFsaXphdGlvbi5cclxuICAgICAqL1xyXG4gICAgQFlpZWxkKClcclxuICAgIHB1YmxpYyBvbldpbmRvd0JyZWFrcG9pbnRDaGFuZ2VkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5jb250ZW50Q29udGFpbmVyRWxlbWVudCB8fCAhdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNwbGl0Vmlld1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyLm9uV2luZG93U2l6ZUNoYW5nZWQodGhpcy5jb250ZW50Q29udGFpbmVyRWxlbWVudCwgdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZGVmZXJyZWQgbGF5b3V0IGNoYW5nZWQgaGFuZGxlci5cclxuICAgICAqL1xyXG4gICAgQERlYm91bmNlKClcclxuICAgIHByaXZhdGUgZGVmZXJyZWRPbkxheW91dENoYW5nZWQoKSB7XHJcbiAgICAgICAgdGhpcy5vblBhcmVudExheW91dENoYW5nZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgdGhlIGNoYW5nZSBldmVudCBjb21pbmcgZnJvbSBwYXJlbnQgY29udHJvbCBmcm9tIHRoZSBsYXlvdXQgY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIG9uUGFyZW50TGF5b3V0Q2hhbmdlZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNDb21wb25lbnRJbml0aWFsaXplZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1BhbmVEaXN0YW5jZVNldCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0UGFuZU1heFNpemUoKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHJlc2l6ZU1hcmdpbjogU3BsaXRWaWV3UmVzaXplck1hcmdpbiA9IHRoaXMuZ2V0U3BsaXRWaWV3UmVzaXplck1hcmdpblJlc3BvbnNpdmVXaW5kb3coKTtcclxuICAgICAgICAgICAgY29uc3Qgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID0gdGhpcy5vcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3c7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhbmVDb250YWluZXIgPSB0aGlzLnBhbmVDb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgICAgICBpZiAocmVzaXplTWFyZ2luLmxvd2VyID09PSB1bmRlZmluZWQgJiYgcmVzaXplTWFyZ2luLnVwcGVyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdib3R0b20nIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3RvcCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUud2lkdGggPSAnMTAwJSc7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2xlZnQnIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUud2lkdGggPSAnJztcclxuICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICcxMDAlJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmICgob3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnYm90dG9tJyB8fCBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICd0b3AnKVxyXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhbmVEaXN0YW5jZSA9IE1hdGgubWluKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lRGlzdGFuY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLSByZXNpemVNYXJnaW4udXBwZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhbmVEaXN0YW5jZSA9IE1hdGgubWF4KHRoaXMucGFuZURpc3RhbmNlLCByZXNpemVNYXJnaW4ubG93ZXIpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSB0aGlzLmlzRXhwYW5kZWQgJiYgdGhpcy5wYW5lRGlzdGFuY2UgPyAodGhpcy5wYW5lRGlzdGFuY2UgKyAncHgnKSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLndpZHRoID0gJzEwMCUnO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICgob3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnbGVmdCcgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAncmlnaHQnKVxyXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZURpc3RhbmNlID0gTWF0aC5taW4oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhbmVEaXN0YW5jZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gcmVzaXplTWFyZ2luLnVwcGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lRGlzdGFuY2UgPSBNYXRoLm1heCh0aGlzLnBhbmVEaXN0YW5jZSwgcmVzaXplTWFyZ2luLmxvd2VyKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUud2lkdGggPSB0aGlzLmlzRXhwYW5kZWQgJiYgdGhpcy5wYW5lRGlzdGFuY2UgPyAodGhpcy5wYW5lRGlzdGFuY2UgKyAncHgnKSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICcxMDAlJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0UGFuZU1heFNpemUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5sYXlvdXRDaGFuZ2VkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRvZ2dsZXMgdGhlIGV4cGFuZGVkIHN0YXRlIG9mIHRoZSBwYW5lLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdG9nZ2xlUGFuZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGltcGxlbWVudGF0aW9uIGZvciBhZnRlciB0aGUgY29udHJvbCBnZXRzIHNpZ25hbCBmb3IgY29uZmlybWF0aW9uIGZvciByZXNpemUuXHJcbiAgICAgKiBAcGFyYW0gJGV2ZW50IHRoZSBldmVudCBmb3IgcmVzaXppbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uUmVzaXplZCgkZXZlbnQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlc2V0UGFuZU1heFNpemUoKTtcclxuXHJcbiAgICAgICAgY29uc3QgcmVzaXplTWFyZ2luOiBTcGxpdFZpZXdSZXNpemVyTWFyZ2luID0gdGhpcy5nZXRTcGxpdFZpZXdSZXNpemVyTWFyZ2luUmVzcG9uc2l2ZVdpbmRvdygpO1xyXG4gICAgICAgIGNvbnN0IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9IHRoaXMub3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93O1xyXG4gICAgICAgIGNvbnN0IHBhbmVDb250YWluZXIgPSB0aGlzLnBhbmVDb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgIHRoaXMuaXNQYW5lRGlzdGFuY2VTZXQgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAocmVzaXplTWFyZ2luLmxvd2VyID09PSB1bmRlZmluZWQgJiYgcmVzaXplTWFyZ2luLnVwcGVyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaWYgKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2JvdHRvbScgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAndG9wJykge1xyXG4gICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnJztcclxuICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUud2lkdGggPSAnMTAwJSc7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAob3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnbGVmdCcgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLndpZHRoID0gJyc7XHJcbiAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICcxMDAlJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdib3R0b20nIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc2l6ZWRIZWlnaHQgPSBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdib3R0b20nID9cclxuICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLm9mZnNldEhlaWdodCAtICRldmVudC55IDpcclxuICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLm9mZnNldEhlaWdodCArICRldmVudC55O1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMucGFuZURpc3RhbmNlID0gTWF0aC5tYXgocmVzaXplZEhlaWdodCwgcmVzaXplTWFyZ2luLmxvd2VyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFuZURpc3RhbmNlICA9IE1hdGgubWluKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZURpc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIHJlc2l6ZU1hcmdpbi51cHBlcik7XHJcblxyXG4gICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSB0aGlzLnBhbmVEaXN0YW5jZSA/IHRoaXMucGFuZURpc3RhbmNlICsgJ3B4JyA6ICcnO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2xlZnQnIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzaXplZFdpZHRoID0gb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAncmlnaHQnID9cclxuICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLm9mZnNldFdpZHRoIC0gJGV2ZW50LnggOlxyXG4gICAgICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIub2Zmc2V0V2lkdGggKyAkZXZlbnQueDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVEaXN0YW5jZSA9IE1hdGgubWF4KHJlc2l6ZWRXaWR0aCwgcmVzaXplTWFyZ2luLmxvd2VyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFuZURpc3RhbmNlID0gTWF0aC5taW4oXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lRGlzdGFuY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLSByZXNpemVNYXJnaW4udXBwZXIpO1xyXG5cclxuICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUud2lkdGggPSB0aGlzLnBhbmVEaXN0YW5jZSA/IHRoaXMucGFuZURpc3RhbmNlICsgJ3B4JyA6ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmxheW91dENoYW5nZWQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgdmFsdWUgZm9yIHRoZSBwYW5lJ3MgZGlzdGFuY2UgZm9yIGFjY2Vzc2liaWxpdHkgcHVycG9zZXMuXHJcbiAgICAgKiBAcmV0dXJucyBudW1iZXIgdGhhdCBpbmRpY2F0ZXMgdGhlIHBhbmUncyByZW5kZXJpbmcgdmFsdWUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRBcmlhVmFsdWVOb3coKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFeHBhbmRlZCAmJiB0aGlzLnBhbmVEaXN0YW5jZSA/IE1hdGgucm91bmQodGhpcy5wYW5lRGlzdGFuY2UpIDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgdGhlIG9yaWVudGF0aW9uIGNoYW5nZWQgZXZlbnRzLiBUaGlzIHVzdWFsbHkgaGFwcGVucyBvbiBsYXlvdXQgY2hhbmdlIGJlaGF2aW9yIHN1Y2ggYXMgcmVzaXppbmcgdGhlIHdpbmRvdy5cclxuICAgICAqIFRoaXMgZnVuY3Rpb24gaGFzIHRvIGJlIGNhbGxlZCB3aXRoIGNvbXBvbmVudCBpbml0aWFsaXplZC5cclxuICAgICAqIEBwYXJhbSBjdXIgdGhlIGN1cnJlbnQgbGF5b3V0LCBjb3VsZCBiZSB0b3AsIGJvdHRvbSwgbGVmdCwgcmlnaHQuXHJcbiAgICAgKiBAcmV0dXJucyB2b2lkLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIG9uT3JpZW50YXRpb25DaGFuZ2VkKGN1cjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgLy8gSWdub3JlIGlmIHRoZSBjb250YWluZXIgaXMgbm90IHlldCBpbml0aWFsaXplZC5cclxuICAgICAgICBpZiAoIXRoaXMuaXNDb21wb25lbnRJbml0aWFsaXplZCB8fCAhdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudCB8fCAhdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKGN1ciA9PT0gJ3RvcCcgfHwgY3VyID09PSAnYm90dG9tJyApIHtcclxuICAgICAgICAgICAgY29udGFpbmVyLnN0eWxlLndpZHRoID0gJzEwMCUnO1xyXG4gICAgICAgICAgICBjb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gdGhpcy5nZXRQYW5lRGlzdGFuY2VSZXNwb25zaXZlV2luZG93KCkgKyAncHgnO1xyXG4gICAgICAgICAgICB0aGlzLnBhbmVEaXN0YW5jZSA9IHRoaXMuZGVmYXVsdFBhbmVEaXN0YW5jZTtcclxuICAgICAgICB9IGVsc2UgaWYgKGN1ciA9PT0gJ2xlZnQnIHx8IGN1ciA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICBjb250YWluZXIuc3R5bGUud2lkdGggPSB0aGlzLmdldFBhbmVEaXN0YW5jZVJlc3BvbnNpdmVXaW5kb3coKSArICdweCc7XHJcbiAgICAgICAgICAgIGNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRlZmVycmVkUmVmcmVzaFVJKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBoYXMgdG8gYmUgYSBkZWJvdW5jZSB2YWx1ZSBpbiBiZXR3ZWVuIDAgLSAyNTAgdG8gd2FpdCBmb3IgY2hpbGRyZW4gY29tcG9uZW50LlxyXG4gICAgICogSWRlYWxseSBzaG91bGQgYmUgcHJvbWlzZSBpbXBsZW1lbnRlZC5cclxuICAgICAqL1xyXG4gICAgQERlYm91bmNlKDEwKVxyXG4gICAgcHJpdmF0ZSBkZWZlcnJlZFJlZnJlc2hVSSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlZnJlc2hVSSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGZ1bmN0aW9uIHRvIHJlZnJlc2ggdGhlIHNwbGl0IHZpZXcgZnJvbSBVSS5cclxuICAgICAqIEByZXR1cm5zIHZvaWRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSByZWZyZXNoVUkoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQ29tcG9uZW50SW5pdGlhbGl6ZWQgfHwgIXRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQgfHwgIXRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwYW5lRGlzdGFuY2VSZXNwb25zaXZlV2luZG93ID0gdGhpcy5nZXRQYW5lRGlzdGFuY2VSZXNwb25zaXZlV2luZG93KCk7XHJcbiAgICAgICAgY29uc3Qgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID0gdGhpcy5vcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3c7XHJcbiAgICAgICAgY29uc3QgcGFuZUNvbnRhaW5lciA9IHRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJuYWxJc0V4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBhbmVEaXN0YW5jZSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHBhbmVEaXN0YW5jZSA9IHRoaXMucGFuZURpc3RhbmNlID4gcGFuZURpc3RhbmNlUmVzcG9uc2l2ZVdpbmRvd1xyXG4gICAgICAgICAgICAgICAgICAgID8gcGFuZURpc3RhbmNlUmVzcG9uc2l2ZVdpbmRvdyA6IHRoaXMucGFuZURpc3RhbmNlO1xyXG4gICAgICAgICAgICAgICAgLy8gT24gcGhvbmUtZG93biwgZ2V0IHJpZCBvZiB0aGUgc2Nyb2xsYmFyIHZlcnRpY2FsbHkuXHJcbiAgICAgICAgICAgICAgICBpZiAocGFuZURpc3RhbmNlUmVzcG9uc2l2ZVdpbmRvdyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFuZURpc3RhbmNlID0gcGFuZURpc3RhbmNlUmVzcG9uc2l2ZVdpbmRvdztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAob3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAndG9wJyB8fCBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdib3R0b20nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSBwYW5lRGlzdGFuY2UgPyBwYW5lRGlzdGFuY2UgKyAncHgnIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS53aWR0aCA9ICcxMDAlJztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAob3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnbGVmdCcgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS53aWR0aCA9IHBhbmVEaXN0YW5jZSA/IHBhbmVEaXN0YW5jZSArICdweCcgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLmhlaWdodCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3RvcCcgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnYm90dG9tJykge1xyXG4gICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnJztcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdsZWZ0JyB8fCBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUud2lkdGggPSAnJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXRJbnRlcm5hbFBhbmVEaXN0YW5jZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgcGFuZSBkaXN0YW5jZSB0aGF0IHdvdWxkIGJlIHVzZWQgZm9yIHJlbmRlcmluZyB0aGUgcGFuZS5cclxuICAgICAqIHBhbmUncyBoZWlnaHQgb24gdG9wLCBib3R0b20gbGF5b3V0LlxyXG4gICAgICogcGFuZSdzIHdpZHRoIG9uIGxlZnQsIHJpZ2h0IGxheW91dC5cclxuICAgICAqIEByZXR1cm5zIHZvaWQ7XHJcbiAgICAgKi9cclxuICAgIEBEZWJvdW5jZSgpXHJcbiAgICBwcml2YXRlIHNldEludGVybmFsUGFuZURpc3RhbmNlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudCB8fCAhdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pbnRlcm5hbElzRXhwYW5kZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID0gdGhpcy5vcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3c7XHJcbiAgICAgICAgY29uc3QgcGFuZUNvbnRhaW5lciA9IHRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3RvcCcgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnYm90dG9tJykge1xyXG4gICAgICAgICAgICB0aGlzLnBhbmVEaXN0YW5jZSA9IHBhbmVDb250YWluZXIub2Zmc2V0SGVpZ2h0O1xyXG4gICAgICAgIH0gZWxzZSBpZiAob3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnbGVmdCcgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFuZURpc3RhbmNlID0gcGFuZUNvbnRhaW5lci5vZmZzZXRXaWR0aDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBtYXggdmFsdWUgdGhhdCB0aGUgcGFuZSBjYW4gZ3Jvdy5cclxuICAgICAqIFNldHMgcGFuZSdzIGhlaWdodCB2YWx1ZSBvbiB0b3AsIGJvdHRvbSBsYXlvdXQuXHJcbiAgICAgKiBTZXRzIHBhbmUncyB3aWR0aCB2YWx1ZSBvbiBsZWZ0LCByaWdodCBsYXlvdXQuXHJcbiAgICAgKiBAcmV0dXJucyB2b2lkLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNldFBhbmVNYXhTaXplKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudCB8fCAhdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHJlc2l6ZU1hcmdpbjogU3BsaXRWaWV3UmVzaXplck1hcmdpbiA9IHRoaXMuZ2V0U3BsaXRWaWV3UmVzaXplck1hcmdpblJlc3BvbnNpdmVXaW5kb3coKTtcclxuICAgICAgICBjb25zdCBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPSB0aGlzLm9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdztcclxuICAgICAgICBjb25zdCBwYW5lQ29udGFpbmVyID0gdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgICBpZiAocmVzaXplTWFyZ2luLmxvd2VyID09PSB1bmRlZmluZWQgJiYgcmVzaXplTWFyZ2luLnVwcGVyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaWYgKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2JvdHRvbScgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAndG9wJykge1xyXG4gICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5taW5IZWlnaHQgPSAnJztcclxuICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUubWF4SGVpZ2h0ID0gJzEwMCUnO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2xlZnQnIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5taW5XaWR0aCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5tYXhXaWR0aCA9ICcxMDAlJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICd0b3AnIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2JvdHRvbScpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlZFJlc2l6ZU1hcmdpblJlc3BvbnNpdmVXaW5kb3cpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLm1pbkhlaWdodCA9IHJlc2l6ZU1hcmdpbi5sb3dlciArICdweCc7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5tYXhIZWlnaHQgPSAodGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gcmVzaXplTWFyZ2luLnVwcGVyKSArICdweCc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAob3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnbGVmdCcgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLm1pbldpZHRoID0gIHJlc2l6ZU1hcmdpbi5sb3dlciArICdweCc7XHJcbiAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLm1heFdpZHRoID0gKHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gcmVzaXplTWFyZ2luLnVwcGVyKSArICdweCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXNldHMgdGhlIG1heCB2YWx1ZSB0aGF0IHRoZSBwYW5lIGNhbiBncm93LlxyXG4gICAgICogQHJldHVybnMgdm9pZC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSByZXNldFBhbmVNYXhTaXplKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudCB8fCAhdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHBhbmVDb250YWluZXIgPSB0aGlzLnBhbmVDb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUubWF4V2lkdGggPSAnJztcclxuICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLm1heEhlaWdodCA9ICcnO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3c9PT0nYm90dG9tJyB8fCBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3c9PT0ncmlnaHQnXCI+XHJcbiAgPHNlY3Rpb24gI2NvbnRlbnRDb250YWluZXIgY2xhc3M9XCJzbWUtbGF5b3V0LXJlbGF0aXZlIHNtZS1wb3NpdGlvbi1mbGV4LWF1dG9cIiBbY2xhc3Muc21lLWFycmFuZ2Utb3ZlcmZsb3ctYXV0b109XCJzaG93U2Nyb2xsYmFyXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvc2VjdGlvbj5cclxuICA8c2VjdGlvbiAjcGFuZUNvbnRhaW5lciBbY2xhc3Muc21lLWxheW91dC1ub25lXT1cImhpZGVTcGxpdFZpZXdQYW5lXCJcclxuICAgIGNsYXNzPVwic21lLWxheW91dC1yZWxhdGl2ZSBzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1ib3JkZXItY29sb3ItYmFzZS04MFwiXHJcbiAgICBbY2xhc3Muc21lLWJvcmRlci1sZWZ0LXNtXT1cInNob3dTcGxpdHRlckJvcmRlciAmJiBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdyaWdodCdcIlxyXG4gICAgW2NsYXNzLnNtZS1ib3JkZXItdG9wLXNtXT1cInNob3dTcGxpdHRlckJvcmRlciAmJiBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdib3R0b20nXCJcclxuICAgIFtjbGFzcy5zbWUtYXJyYW5nZS1vdmVyZmxvdy1hdXRvXT1cInNob3dTY3JvbGxiYXJcIj5cclxuICAgIDwhLS0gVE9ETzogaGlkZSByZXNpemVyIG9uIHBob25lIGRvd24gdGVtcG9yYXJpbHksIG5lZWRzIHNwZWNpYWwgZGVzaWduIC0tPlxyXG4gICAgPHNtZS1yZXNpemVyICpuZ0lmPVwiaXNFeHBhbmRlZFwiIGNsYXNzPVwic21lLWxheW91dC1oaWRlLXBob25lLWRvd25cIiBbdGFiaW5kZXhdPVwiW2lzRXhwYW5kZWQ/MDpudWxsXVwiXHJcbiAgICAgIFtjbGFzcy5zbWUtZm9jdXMtem9uZV09XCJpc0V4cGFuZGVkXCIgcmVzaXplckhvc3RTZWxlY3Rvcj1cInNtZS1zcGxpdC12aWV3XCJcclxuICAgICAgKHJlc2l6ZWQpPVwib25SZXNpemVkKCRldmVudClcIiBbb3JpZW50YXRpb25dPVwib3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93XCI+XHJcbiAgICA8L3NtZS1yZXNpemVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhbmVcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L3NlY3Rpb24+XHJcbjwvbmctY29udGFpbmVyPlxyXG48bmctY29udGFpbmVyICpuZ0lmPVwib3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93PT09J3RvcCcgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93PT09J2xlZnQnXCI+XHJcbiAgPHNlY3Rpb24gI3BhbmVDb250YWluZXIgW2NsYXNzLnNtZS1sYXlvdXQtbm9uZV09XCJoaWRlU3BsaXRWaWV3UGFuZVwiXHJcbiAgICBjbGFzcz1cInNtZS1sYXlvdXQtcmVsYXRpdmUgc21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtYm9yZGVyLWNvbG9yLWJhc2UtODBcIlxyXG4gICAgW2NsYXNzLnNtZS1ib3JkZXItcmlnaHQtc21dPVwic2hvd1NwbGl0dGVyQm9yZGVyICYmIG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2xlZnQnXCJcclxuICAgIFtjbGFzcy5zbWUtYm9yZGVyLWJvdHRvbS1zbV09XCJzaG93U3BsaXR0ZXJCb3JkZXIgJiYgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAndG9wJ1wiXHJcbiAgICBbY2xhc3Muc21lLWFycmFuZ2Utb3ZlcmZsb3ctYXV0b109XCJzaG93U2Nyb2xsYmFyXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGFuZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLSBUT0RPOiBoaWRlIHJlc2l6ZXIgb24gcGhvbmUgZG93biB0ZW1wb3JhcmlseSwgbmVlZHMgc3BlY2lhbCBkZXNpZ24gLS0+XHJcbiAgICA8c21lLXJlc2l6ZXIgKm5nSWY9XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJzbWUtbGF5b3V0LWhpZGUtcGhvbmUtZG93blwiIFt0YWJpbmRleF09XCJbaXNFeHBhbmRlZD8wOm51bGxdXCJcclxuICAgICAgW2NsYXNzLnNtZS1mb2N1cy16b25lXT1cImlzRXhwYW5kZWRcIiByZXNpemVySG9zdFNlbGVjdG9yPVwic21lLXNwbGl0LXZpZXdcIlxyXG4gICAgICAocmVzaXplZCk9XCJvblJlc2l6ZWQoJGV2ZW50KVwiIFtvcmllbnRhdGlvbl09XCJvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3dcIiBbYXR0ci5hcmlhLXZhbHVlbm93XT1cImdldEFyaWFWYWx1ZU5vdygpXCI+XHJcbiAgICA8L3NtZS1yZXNpemVyPlxyXG4gIDwvc2VjdGlvbj5cclxuICA8c2VjdGlvbiAjY29udGVudENvbnRhaW5lciBjbGFzcz1cInNtZS1sYXlvdXQtcmVsYXRpdmUgc21lLXBvc2l0aW9uLWZsZXgtYXV0b1wiIFtjbGFzcy5zbWUtYXJyYW5nZS1vdmVyZmxvdy1hdXRvXT1cInNob3dTY3JvbGxiYXJcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9zZWN0aW9uPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cclxuICA8bmctY29udGVudCBzZWxlY3Q9XCJzbWUtc3BsaXQtdmlldy1jb250ZW50XCI+PC9uZy1jb250ZW50PlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI3BhbmU+XHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic21lLXNwbGl0LXZpZXctcGFuZVwiPjwvbmctY29udGVudD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPCEtLSBUaGUgcmVhc29uIHRvIHVzZSBuZy10ZW1wbGF0ZSB0byB3cmFwIHRoZSBuZy1jb250ZW50IGVsZW1lbnQgaW5zdGVhZCBvZiBkaXJlY3RseSB0byB1c2UgbmctY29udGVudCBpbiBib3RoIHR3byBuZy1jb250YWluZXJzIGFib3ZlIGlzOlxyXG5JZiB3ZSB1c2UgbmctY29udGVudCBlbGVtZW50cyBkaXJlY3RseSBpbiBib3RoIDIgbmctY29udGFpbmVycywgdGhlcmUgd2lsbCBiZSAyIG5nLWNvbnRlbnQgZWxlbWVudHMgd2l0aCB0aGUgc2FtZSBzZWxlY3Rvci4gQnV0IEFuZ3VsYXIgd2lsbCBvbmx5XHJcbnJlc29sdmUgdGhlIGZpcnN0IG5nLWNvbnRlbnQgaW4gbXVsdGlwbGUgbmctY29udGVudCBlbGVtZW50cyB3aXRoIHNhbWUgc2VsZWN0b3IgZXZlbiB0aGUgZmlyc3Qgb25lIGlzIGluIGEgbmdJZiBmYWxzZSBibG9jay5cclxuU28gd2hlbiB0aGUgb3JpZW50YXRpb24gaXMgXCJ0b3BcIiBvciBcImxlZnRcIiwgbm8gbmctY29udGVudCBlbGVtZW50IHdpbGwgYmUgcmVzb2x2ZWQgdGhlbiBub3RoaW5nIHdvdWxkIHJlbmRlci5cclxuSW4gb3JkZXIgdG8gc29sdmUgdGhpcyBwcm9ibGVtLCB3ZSBoYXZlIHRvIHVzZSBuZy10ZW1wbGF0ZSB0byB3cmFwIHRoZSBuZy1jb250ZW50IHRvIG1ha2Ugc3VyZSBvbmUgc2VsZWN0b3IgbWFwcyB0byBvbmUgbmctY29udGVudC5cclxuVGhlbiB3ZSB1c2UgbmctY29udGFpbmVyIGFuZCBuZ1RlbXBsYXRlT3V0bGV0IHRvIGNhbGwgdGhlIG5nLXRlbXBsYXRlLlxyXG5UaHggZm9yIHJlYWRpbmcgdGlsbCBoZXJlLi4uLi4uIC0tPlxyXG4iXX0=
|
|
781
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BsaXQtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9zcGxpdC12aWV3L3NwbGl0LXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvc3BsaXQtdmlldy9zcGxpdC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUgsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDakcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUV2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3RCxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQTBCLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7O0lDdkI5Ryx3QkFBeUQ7Ozs7O0lBUXpELHNDQUU0RTtJQUExRSx3TUFBVyxlQUFBLHlCQUFpQixDQUFBLElBQUM7SUFDL0IsaUJBQWM7OztJQUZaLG1EQUFtQztJQUQ4QixtRkFBZ0MsbURBQUE7OztJQUluRyx3QkFBc0Q7OztJQWQxRCw2QkFBc0c7SUFDcEcscUNBQWdJO0lBQzlILG9H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T3RCLGFBQWE7a0JBRG5CLEtBQUs7WUFPQyxrQkFBa0I7a0JBRHhCLEtBQUs7WUFRQyxtQ0FBbUM7a0JBRHpDLEtBQUs7WUFhSyxZQUFZO2tCQUR0QixLQUFLO1lBa0JDLG9DQUFvQztrQkFEMUMsS0FBSztZQU9DLGlCQUFpQjtrQkFEdkIsS0FBSztZQU9DLGlCQUFpQjtrQkFEdkIsS0FBSztZQU9LLFdBQVc7a0JBRHJCLEtBQUs7WUFpQkMsa0NBQWtDO2tCQUR4QyxLQUFLO1lBT0MsaUJBQWlCO2tCQUR2QixLQUFLO1lBd0NDLFlBQVk7a0JBRGxCLE1BQU07WUFPQSxXQUFXO2tCQURqQixNQUFNO1lBNkJJLFNBQVM7a0JBRG5CLFdBQVc7bUJBQUMsT0FBTztZQVNULGFBQWE7a0JBRHZCLFdBQVc7bUJBQUMsc0JBQXNCO1lBbUJ4QixVQUFVO2tCQURwQixLQUFLO1lBd0dDLHlCQUF5QixNQVl4Qix1QkFBdUIsTUF5SnZCLGlCQUFpQixNQW9EakIsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyQ29udGVudEluaXQsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBDb250ZW50Q2hpbGQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgZm9yd2FyZFJlZixcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSW5qZWN0LFxyXG4gICAgSW5qZWN0b3IsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIE9wdGlvbmFsLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgU2tpcFNlbGYsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGVib3VuY2UgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2Jhc2UvZGVjb3JhdG9ycy9kZWJvdW5jZS5kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgWWllbGQgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2Jhc2UvZGVjb3JhdG9ycy95aWVsZC5kZWNvcmF0b3InO1xyXG5pbXBvcnQgeyBMb2dMZXZlbCB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZGlhZ25vc3RpY3MvbG9nLWxldmVsJztcclxuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZGlhZ25vc3RpY3MvbG9nZ2luZyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb3JlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExheW91dCwgU01FX0xBWU9VVF9QUk9WSURFUiB9IGZyb20gJy4uL2NvbW1vbi9sYXlvdXQnO1xyXG5pbXBvcnQgeyBTcGxpdFZpZXdSZXNpemVyTWFyZ2luLCBTcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlciB9IGZyb20gJy4vc3BsaXQtdmlldy1yZXNwb25zaXZlLXdpbmRvdy1tYW5hZ2VyJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgcGFuZSBvcmllbnRhdGlvbiBvZiB0aGUgc3BsaXQgdmlldy5cclxuICovXHJcbmV4cG9ydCB0eXBlIFNwbGl0Vmlld09yaWVudGF0aW9uID0gJ3RvcCcgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ2JvdHRvbSc7XHJcblxyXG4vKipcclxuICogVGhlIGNvbXBvbmVudCBkZWZpbml0aW9uIG9mIHRoZSBzcGxpdCB2aWV3IGNvbnRlbnQuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLXNwbGl0LXZpZXctY29udGVudCcsXHJcbiAgICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGxpdFZpZXdDb250ZW50Q29tcG9uZW50IHsgfVxyXG5cclxuLyoqXHJcbiAqIFRoZSBjb21wb25lbnQgZGVmaW5pdGlvbiBvZiB0aGUgc3BsaXQgdmlldyBwYW5lLlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1zcGxpdC12aWV3LXBhbmUnLFxyXG4gICAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BsaXRWaWV3UGFuZUNvbXBvbmVudCB7IH1cclxuXHJcbi8qKlxyXG4gKiBUaGUgY29tcG9uZW50IGRlZmluaXRpb24gb2YgdGhlIHNwbGl0IHZpZXcuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLXNwbGl0LXZpZXcnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NwbGl0LXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBTTUVfTEFZT1VUX1BST1ZJREVSLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTcGxpdFZpZXdDb21wb25lbnQpIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNwbGl0Vmlld0NvbXBvbmVudCBleHRlbmRzIENvcmVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgTGF5b3V0LCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzb3VyY2UgbmFtZSB0byB1c2UgZm9yIGxvZ2dpbmdcclxuICAgICAqL1xyXG4gICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ1NwbGl0Vmlld0NvbXBvbmVudCc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb250YWluZXIgZm9yIGFjdGl2ZSBzdWJzY3JpcHRpb25zIHRoYXQgc2hvdWxkIGJlIGNsZWFuZWQgdXAgaW4gdGhlIE9uRGVzdHJveSBjYWxsLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGRlZmluZXMgdGhlIGFjdHVhbCBwYW5lIGRpc3RhbmNlIHRoYXQgdGhlIGNvbnRyb2wgdXNlcyBmb3IgcmVuZGVyaW5nLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGludGVybmFsUGFuZURpc3RhbmNlOiBudW1iZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBkZWZpbmVzIHdoZXRoZXIgdGhlIHBhbmUgZGlzdGFuY2UgdmFsdWUgaXMgc2V0LlxyXG4gICAgICogSXQgd2lsbCBub3Qgc2V0IGl0IHR3aWNlIGlmIHNldCBiZWNhdXNlIG9ubHkgbmVlZCB0byByZW1lbWJlciB0aGUgaW5pdGlhbCB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpc1BhbmVEaXN0YW5jZVNldCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgcmVtZW1iZXJzIHRoZSBwYW5lIGRpc3RhbmNlIHRoYXQgaGFzIGJlZW4gc2V0IGluaXRpYWxseS5cclxuICAgICAqIFRoZSBpbnRlbnRpb24gaXMgZm9yIHJlY292ZXJpbmcgdGhlIHZhbHVlIG9uIHdpbmRvdyBzaXplIGNoYW5nZXMgYW5kIGxheW91dCBjaGFuZ2VzLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGRlZmF1bHRQYW5lRGlzdGFuY2U6IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGRlZmluZXMgd2hldGhlciB0aGUgc3BsaXQgdmlldyBoYXMgYmVlbiBleHBhbmRlZC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpbnRlcm5hbElzRXhwYW5kZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmluZXMgd2hldGhlciB0aGUgc3BsaXQgdmlldyBjb21wb25lbnQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaXNDb21wb25lbnRJbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHdpbmRvdyByZXNwb25zaXZlIG1hbmFnZXIgZm9yIHRoZSBzcGxpdCB2aWV3LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNwbGl0Vmlld1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyOiBTcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgcGFuZS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpbnRlcm5hbE9yaWVudGF0aW9uOiBTcGxpdFZpZXdPcmllbnRhdGlvbiA9ICdib3R0b20nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgaW1wbGVtZW50cyB0aGUgSUxheW91dCBpbnRlcmZhY2UuIEl0J3MgdHJpZ2dlcmVkIHdoZW4gdGhlIGxheW91dCBpcyBjaGFuZ2VkLlxyXG4gICAgICogSXQncyB1c2VkIHRvIHRlbGwgdGhlIGNoaWxkIGNvbXBvbmVudHMgdG8gY29vcmRpbmF0ZSB3aXRoIHRoZSBsYXlvdXQgY2hhbmdlLlxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBsYXlvdXRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgTGF5b3V0IGludGVyZmFjZVxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB3aW5kb3dCcmVha3BvaW50Q2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNvbnRlbnQgb2YgdGhlIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgQENvbnRlbnRDaGlsZChTcGxpdFZpZXdDb250ZW50Q29tcG9uZW50KVxyXG4gICAgcHVibGljIGNvbnRlbnQ6IFNwbGl0Vmlld0NvbnRlbnRDb21wb25lbnQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcGFuZSBvZiB0aGUgY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBAQ29udGVudENoaWxkKFNwbGl0Vmlld1BhbmVDb21wb25lbnQpXHJcbiAgICBwdWJsaWMgcGFuZTogU3BsaXRWaWV3UGFuZUNvbXBvbmVudDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzZWN0aW9uIGh0bWwgZWxlbWVudCB0aGF0IHdyYXBzIHRoZSBzbWUtc3BsaXQtdmlldy1wYW5lXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoJ3BhbmVDb250YWluZXInKVxyXG4gICAgcHVibGljIHBhbmVDb250YWluZXJFbGVtZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNlY3Rpb24gaHRtbCBlbGVtZW50IHRoYXQgd3JhcHMgdGhlIHNtZS1zcGxpdC12aWV3LWNvbnRhaW5lclxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdjb250ZW50Q29udGFpbmVyJylcclxuICAgIHB1YmxpYyBjb250ZW50Q29udGFpbmVyRWxlbWVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGluZGljYXRlcyB3aGV0aGVyIHRvIHNob3cgdGhlIHNjcm9sbGJhciB3aGVuIGl0J3MgbmVlZGVkLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dTY3JvbGxiYXIgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGluZGljYXRlcyB3aGV0aGVyIHRvIHNob3cgdGhlIGJvcmRlciBmb3IgdGhlIHNwbGl0dGVyLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNob3dTcGxpdHRlckJvcmRlciA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhpcyB0byB0cnVlIG1lYW5zIG9uIHNtYWxsZXIgd2luZG93LCB3aWxsIHJlc3BlY3QgdGhlIG9yaWdpbmFsIHBhbmUgdmFsdWVcclxuICAgICAqIEl0IGlzIG5vdCBzdWdnZXN0ZWQgdG8gYmUgdXNlZCBvdGhlciB0aGFuIHRoZSBzaGVsbCBzaWRlIG5hdiBiYXIuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGlzYWJsZVBhbmVEaXN0YW5jZVJlc3BvbnNpdmVXaW5kb3cgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGluZGljYXRlcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgcGFuZS5cclxuICAgICAqIEl0IGlzIGEgaGFyZGNvZGVkIHZhbHVlLCBub3QgZnVsbHkgd29ya2luZyBvbiB3aW5kb3cgcmVzcG9uc2l2ZSBkZXNpZ24uXHJcbiAgICAgKiBCeSBkZXNpZ24sIHRoaXMgdmFsdWUgd2lsbCBub3QgYmUgcmVzcGVjdGVkIG9uIHNtYWxsZXIgc2NyZWVuLCBwaG9uZSBkb3duLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHBhbmVEaXN0YW5jZSgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsUGFuZURpc3RhbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHBhbmVEaXN0YW5jZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJuYWxQYW5lRGlzdGFuY2UgPT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxQYW5lRGlzdGFuY2UgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzUGFuZURpc3RhbmNlU2V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFBhbmVEaXN0YW5jZSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlzUGFuZURpc3RhbmNlU2V0ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0byB0cnVlIHRvIGRpc2FibGUgdGhlIHJlc2l6ZSBtYXJnaW4gdG8gZ28gd2luZG93IHJlc3BvbnNpdmUuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGlzYWJsZWRSZXNpemVNYXJnaW5SZXNwb25zaXZlV2luZG93ID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBpbmRpY2F0ZXMgdGhlIG1pbiB2YWx1ZSBvZiB0aGUgcGFuZSBzaXplLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHJlc2l6ZUxvd2VyTWFyZ2luID0gMTAwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgaW5kaWNhdGVzIHRoZSBtaW4gdmFsdWUgb2YgdGhlIGNvbnRlbnQgc2l6ZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByZXNpemVVcHBlck1hcmdpbiA9IDEwMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEl0IGRlZmluZXMgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBlbGVtZW50IHdoaWNoIGhvbGRzIHRoZSByZXNpemVyIGluIHRoZSByZXNpemluZyBsYXlvdXQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IG9yaWVudGF0aW9uKGlucHV0OiBTcGxpdFZpZXdPcmllbnRhdGlvbikge1xyXG4gICAgICAgIHRoaXMuaW50ZXJuYWxPcmllbnRhdGlvbiA9IGlucHV0O1xyXG4gICAgICAgIGlmICghdGhpcy5zcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlcikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwcmV2aW91c09yaWVudGF0aW9uID0gdGhpcy5zcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlci5wcmV2aW91c09yaWVudGF0aW9uO1xyXG4gICAgICAgIGlmIChwcmV2aW91c09yaWVudGF0aW9uICE9PSB0aGlzLmludGVybmFsT3JpZW50YXRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5zcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlci5wcmV2aW91c09yaWVudGF0aW9uID0gdGhpcy5pbnRlcm5hbE9yaWVudGF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGlzIHRvIHRydWUgdG8gZGlzYWJsZSB0aGUgb3JpZW50YXRpb24gY2hhbmdlIG9uIHdpbmRvdyBzaXplIGNoYW5nZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBkaXNhYmxlT3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIaWRlcyB0aGUgc3BsaXQgdmlldyBwYW5lXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaGlkZVNwbGl0Vmlld1BhbmUgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHRlciBmb3Igb3JpZW50YXRpb25cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBvcmllbnRhdGlvbigpOiBTcGxpdFZpZXdPcmllbnRhdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW50ZXJuYWxPcmllbnRhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbWVtYmVyIHRoZSBwcmV2aW91cyB3aW5kb3cgcmVzcG9uc2l2ZSB2YWx1ZSBmb3Igb3JpZW50YXRpb24gZm9yIHRoZSBvbiBvcmllbnRhdGlvbiBjaGFuZ2VkIGV2ZW50LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByZXZpb3VzT3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID0gJ2JvdHRvbSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXR0ZXIgZm9yIHRoZSB3aW5kb3cgcmVzcG9uc2l2ZSB2YWx1ZSBmb3IgdGhlIG9yaWVudGF0aW9uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93KCkge1xyXG4gICAgICAgIC8vIElmIG9wdC1vdXQsIHNob3VsZCB1c2UgdGhlIG9yaWdpbmFsIG9yaWVudGF0aW9uXHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZU9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLnNwbGl0Vmlld1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9yaWVudGF0aW9uO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1ciA9IHRoaXMuc3BsaXRWaWV3UmVzcG9uc2l2ZVdpbmRvd01hbmFnZXIub3JpZW50YXRpb247XHJcbiAgICAgICAgICAgIGlmIChjdXIgIT09IHRoaXMucHJldmlvdXNPcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25PcmllbnRhdGlvbkNoYW5nZWQoY3VyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldmlvdXNPcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPSBjdXI7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNwbGl0Vmlld1Jlc3BvbnNpdmVXaW5kb3dNYW5hZ2VyLm9yaWVudGF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBldmVudCBmaXJlZCB3aGVuIHRoZSBwYW5lJ3MgZXhwYW5kZWQgc3RhdGUgaXMgYmVpbmcgdG9nZ2xlZC5cclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcGFuZVRvZ2dsaW5nOiBFdmVudEVtaXR0ZXI8eyBpc0V4cGFuZGVkOiBib29sZWFuIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGlzRXhwYW5kZWQ6IGJvb2xlYW4gfT4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBldmVudCBmaXJlZCB3aGVuIHRoZSBwYW5lJ3MgZXhwYW5kZWQgc3RhdGUgaGFzIGJlZW4gdG9nZ2xlZC5cclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcGFuZVRvZ2dsZWQ6IEV2ZW50RW1pdHRlcjx7IGlzRXhwYW5kZWQ6IGJvb2xlYW4gfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXNFeHBhbmRlZDogYm9vbGVhbiB9PigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIEBTa2lwU2VsZigpIEBPcHRpb25hbCgpIEBJbmplY3QoU01FX0xBWU9VVF9QUk9WSURFUikgbGF5b3V0OiBMYXlvdXQpIHtcclxuXHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG5cclxuICAgICAgICBpZiAobGF5b3V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3BsaXRWaWV3UmVzcG9uc2l2ZVdpbmRvd01hbmFnZXIgPSBuZXcgU3BsaXRWaWV3UmVzcG9uc2l2ZVdpbmRvd01hbmFnZXIobGF5b3V0KTtcclxuICAgICAgICAgICAgLy8gb24gcGFyZW50IGxheW91dCBjaGFuZ2VzLCByZS1lbWl0IHRoZSBsYXlvdXQgY2hhbmdlIHRvIG91ciBldmVudFxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChsYXlvdXQubGF5b3V0Q2hhbmdlZC5zdWJzY3JpYmUoKCgpID0+IHRoaXMub25QYXJlbnRMYXlvdXRDaGFuZ2VkKCkpKSk7XHJcbiAgICAgICAgICAgIC8vIG9uIHdpbmRvdyBicmVhayBwb2ludCBjaGFuZ2VzLCBlbWl0IHRoZSBldmVudCBhYm91dCBjcml0aWNhbCBjbGFzc2VzIGFuZCBzdHlsaW5nIHVwZGF0ZXMgc2lnbmFsLlxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChsYXlvdXQud2luZG93QnJlYWtwb2ludENoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMub25XaW5kb3dCcmVha3BvaW50Q2hhbmdlZCgpKSk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmRlZmVycmVkT25MYXlvdXRDaGFuZ2VkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgQ1NTIGNsYXNzZXMgb2YgdGhlIGNvbXBvbmVudC5cclxuICAgICAqXHJcbiAgICAgKiBUT0RPOiBzZXR0aW5nIHRoZSBjbGFzcyB0aGlzIHdheSBwcmV2ZW50IGFueSBjdXN0b20gY2xhc3MgZnJvbSBiZWluZyBhcHBsaWVkLlxyXG4gICAgICogQ2hhbmdlIHRvIHNldHRpbmcgY2xhc3MgaW4gdGhlIGNvbnN0cnVjdG9yIHVzaW5nIFJlbmRlcmVyMiBhbmQgRWxlbWVudFJlZlxyXG4gICAgICpcclxuICAgICAqIE9uIHBob25lIGRvd24sIHRoZSBsYXlvdXQgZm9yIHNwbGl0IHZpZXcgY2FuIG9ubHkgYmUgdG9wIGFuZCBib3R0b20sIGluIHRoaXMgY2FzZSwgd2Ugd2lsbCBhbGxvdyB5IHNjcm9sbC5cclxuICAgICAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgICBwdWJsaWMgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAnc21lLWxheW91dC1hYnNvbHV0ZSBzbWUtcG9zaXRpb24taW5zZXQtbm9uZSBzbWUtYXJyYW5nZS1zdGFjay12IHNtZS1hcnJhbmdlLW92ZXJmbG93LWhpZGUnO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgZmxleCBkaXJlY3Rpb24gb2YgdGhlIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5mbGV4LWRpcmVjdGlvbicpXHJcbiAgICBwdWJsaWMgZ2V0IGZsZXhEaXJlY3Rpb24oKTogc3RyaW5nIHtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMub3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93KSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdyb3cnO1xyXG4gICAgICAgICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdjb2x1bW4nO1xyXG4gICAgICAgICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3Jvdyc7XHJcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2NvbHVtbic7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB3aGV0aGVyIHRoZSBwYW5lIGhhcyBiZWVuIGV4cGFuZGVkLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBpc0V4cGFuZGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmludGVybmFsSXNFeHBhbmRlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgd2hldGhlciB0aGUgcGFuZSBoYXMgYmVlbiBleHBhbmRlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldCBpc0V4cGFuZGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLmludGVybmFsSXNFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmludGVybmFsSXNFeHBhbmRlZCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMucGFuZVRvZ2dsaW5nLmVtaXQoe1xyXG4gICAgICAgICAgICBpc0V4cGFuZGVkOiB0aGlzLmludGVybmFsSXNFeHBhbmRlZFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaFVJKCk7XHJcbiAgICAgICAgdGhpcy5wYW5lVG9nZ2xlZC5lbWl0KHtcclxuICAgICAgICAgICAgaXNFeHBhbmRlZDogdGhpcy5pbnRlcm5hbElzRXhwYW5kZWRcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5sYXlvdXRDaGFuZ2VkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBBbmd1bGFyIG5nT25Jbml0IGZ1bmN0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0NvbXBvbmVudEluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlZnJlc2hVSSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIEFuZ3VsYXIgbmdPbkRlc3Ryb3kgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViPy51bnN1YnNjcmliZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBtZXRob2QgY2FsbGVkIGFmdGVyIGNvbnRlbnQgaXMgaW5pdGlhbGl6ZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udGVudCA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIExvZ2dpbmcubG9nKHtcclxuICAgICAgICAgICAgICAgIGxldmVsOiBMb2dMZXZlbC5FcnJvcixcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBUaGUgdmFsdWUgb2YgJ2NvbnRlbnQnIGlzIGVpdGhlciBudWxsIG9yIHVuZGVmaW5lZC5gLFxyXG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5jb250ZW50XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgc291cmNlOiAnU3BsaXRWaWV3Q29tcG9uZW50Lm5nQWZ0ZXJDb250ZW50SW5pdCdcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5wYW5lID09IG51bGwpIHtcclxuICAgICAgICAgICAgTG9nZ2luZy5sb2coe1xyXG4gICAgICAgICAgICAgICAgbGV2ZWw6IExvZ0xldmVsLkVycm9yLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogYFRoZSB2YWx1ZSBvZiAncGFuZScgaXMgZWl0aGVyIG51bGwgb3IgdW5kZWZpbmVkLmAsXHJcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgICAgICBwYW5lOiB0aGlzLnBhbmVcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBzb3VyY2U6ICdTcGxpdFZpZXdDb21wb25lbnQubmdBZnRlckNvbnRlbnRJbml0J1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc1BhbmVEaXN0YW5jZVNldCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlc2V0UGFuZU1heFNpemUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSB3aW5kb3cgcmVzcG9uc2l2ZSB2YWx1ZSBmb3IgdGhlIHBhbmUgZGlzdGFuY2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRQYW5lRGlzdGFuY2VSZXNwb25zaXZlV2luZG93KCk6IG51bWJlciB7XHJcbiAgICAgICAgLy8gSWYgb3B0LW91dCwgc2hvdWxkIHVzZSB0aGUgb3JpZ2luYWwgcGFuZSBkaXN0YW5jZS5cclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlUGFuZURpc3RhbmNlUmVzcG9uc2l2ZVdpbmRvdyB8fCAhdGhpcy5zcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYW5lRGlzdGFuY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5zcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlci5wYW5lRGlzdGFuY2UodGhpcy5wYW5lRGlzdGFuY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgd2luZG93IHJlc3BvbnNpdmUgdmFsdWUgZm9yIHRoZSByZXNpemVyIG1hcmdpbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFNwbGl0Vmlld1Jlc2l6ZXJNYXJnaW5SZXNwb25zaXZlV2luZG93KCk6IFNwbGl0Vmlld1Jlc2l6ZXJNYXJnaW4ge1xyXG4gICAgICAgIC8vIElmIG9wdC1vdXQsIHNob3VsZCB1c2UgdGhlIG9yaWdpbmFsIG1hcmdpbiBzaXplLlxyXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkUmVzaXplTWFyZ2luUmVzcG9uc2l2ZVdpbmRvdyB8fCAhdGhpcy5zcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlcikge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgbG93ZXI6IHRoaXMucmVzaXplTG93ZXJNYXJnaW4sXHJcbiAgICAgICAgICAgICAgICB1cHBlcjogdGhpcy5yZXNpemVVcHBlck1hcmdpblxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3BsaXRWaWV3UmVzcG9uc2l2ZVdpbmRvd01hbmFnZXIuc3BsaXRWaWV3UmVzaXplck1hcmdpbihcclxuICAgICAgICAgICAgdGhpcy5yZXNpemVMb3dlck1hcmdpbiwgdGhpcy5yZXNpemVVcHBlck1hcmdpbik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgb24gd2luZG93IGJyZWFrcG9pbnQgY2hhbmdlZCBoYW5kbGVyLlxyXG4gICAgICogQWRkaW5nIHlpZWxkIGZvciBjb21wb25lbnQgdG8gZ2V0IEVsZW1lbnRSZWYgYWZ0ZXIgaW5pdGlhbGl6YXRpb24uXHJcbiAgICAgKi9cclxuICAgIEBZaWVsZCgpXHJcbiAgICBwdWJsaWMgb25XaW5kb3dCcmVha3BvaW50Q2hhbmdlZCgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY29udGVudENvbnRhaW5lckVsZW1lbnQgfHwgIXRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zcGxpdFZpZXdSZXNwb25zaXZlV2luZG93TWFuYWdlci5vbldpbmRvd1NpemVDaGFuZ2VkKHRoaXMuY29udGVudENvbnRhaW5lckVsZW1lbnQsIHRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGRlZmVycmVkIGxheW91dCBjaGFuZ2VkIGhhbmRsZXIuXHJcbiAgICAgKi9cclxuICAgIEBEZWJvdW5jZSgpXHJcbiAgICBwcml2YXRlIGRlZmVycmVkT25MYXlvdXRDaGFuZ2VkKCkge1xyXG4gICAgICAgIHRoaXMub25QYXJlbnRMYXlvdXRDaGFuZ2VkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIHRoZSBjaGFuZ2UgZXZlbnQgY29taW5nIGZyb20gcGFyZW50IGNvbnRyb2wgZnJvbSB0aGUgbGF5b3V0IGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBvblBhcmVudExheW91dENoYW5nZWQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQ29tcG9uZW50SW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNQYW5lRGlzdGFuY2VTZXQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZXNldFBhbmVNYXhTaXplKCk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCByZXNpemVNYXJnaW46IFNwbGl0Vmlld1Jlc2l6ZXJNYXJnaW4gPSB0aGlzLmdldFNwbGl0Vmlld1Jlc2l6ZXJNYXJnaW5SZXNwb25zaXZlV2luZG93KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9IHRoaXMub3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93O1xyXG4gICAgICAgICAgICBjb25zdCBwYW5lQ29udGFpbmVyID0gdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgICAgICAgaWYgKHJlc2l6ZU1hcmdpbi5sb3dlciA9PT0gdW5kZWZpbmVkICYmIHJlc2l6ZU1hcmdpbi51cHBlciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAob3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnYm90dG9tJyB8fCBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICd0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLndpZHRoID0gJzEwMCUnO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdsZWZ0JyB8fCBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLndpZHRoID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2JvdHRvbScgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAndG9wJylcclxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lRGlzdGFuY2UgPSBNYXRoLm1pbihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZURpc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IC0gcmVzaXplTWFyZ2luLnVwcGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lRGlzdGFuY2UgPSBNYXRoLm1heCh0aGlzLnBhbmVEaXN0YW5jZSwgcmVzaXplTWFyZ2luLmxvd2VyKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gdGhpcy5pc0V4cGFuZGVkICYmIHRoaXMucGFuZURpc3RhbmNlID8gKHRoaXMucGFuZURpc3RhbmNlICsgJ3B4JykgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS53aWR0aCA9ICcxMDAlJztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2xlZnQnIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3JpZ2h0JylcclxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBhbmVEaXN0YW5jZSA9IE1hdGgubWluKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wYW5lRGlzdGFuY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIHJlc2l6ZU1hcmdpbi51cHBlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZURpc3RhbmNlID0gTWF0aC5tYXgodGhpcy5wYW5lRGlzdGFuY2UsIHJlc2l6ZU1hcmdpbi5sb3dlcik7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLndpZHRoID0gdGhpcy5pc0V4cGFuZGVkICYmIHRoaXMucGFuZURpc3RhbmNlID8gKHRoaXMucGFuZURpc3RhbmNlICsgJ3B4JykgOiAnJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0V4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFBhbmVNYXhTaXplKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubGF5b3V0Q2hhbmdlZC5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUb2dnbGVzIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgcGFuZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHRvZ2dsZVBhbmUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gIXRoaXMuaXNFeHBhbmRlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgYWZ0ZXIgdGhlIGNvbnRyb2wgZ2V0cyBzaWduYWwgZm9yIGNvbmZpcm1hdGlvbiBmb3IgcmVzaXplLlxyXG4gICAgICogQHBhcmFtICRldmVudCB0aGUgZXZlbnQgZm9yIHJlc2l6aW5nXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvblJlc2l6ZWQoJGV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZXNldFBhbmVNYXhTaXplKCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHJlc2l6ZU1hcmdpbjogU3BsaXRWaWV3UmVzaXplck1hcmdpbiA9IHRoaXMuZ2V0U3BsaXRWaWV3UmVzaXplck1hcmdpblJlc3BvbnNpdmVXaW5kb3coKTtcclxuICAgICAgICBjb25zdCBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPSB0aGlzLm9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdztcclxuICAgICAgICBjb25zdCBwYW5lQ29udGFpbmVyID0gdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgICB0aGlzLmlzUGFuZURpc3RhbmNlU2V0ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgaWYgKHJlc2l6ZU1hcmdpbi5sb3dlciA9PT0gdW5kZWZpbmVkICYmIHJlc2l6ZU1hcmdpbi51cHBlciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGlmIChvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdib3R0b20nIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJyc7XHJcbiAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLndpZHRoID0gJzEwMCUnO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2xlZnQnIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS53aWR0aCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAob3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnYm90dG9tJyB8fCBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICd0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCByZXNpemVkSGVpZ2h0ID0gb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnYm90dG9tJyA/XHJcbiAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5vZmZzZXRIZWlnaHQgLSAkZXZlbnQueSA6XHJcbiAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5vZmZzZXRIZWlnaHQgKyAkZXZlbnQueTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVEaXN0YW5jZSA9IE1hdGgubWF4KHJlc2l6ZWRIZWlnaHQsIHJlc2l6ZU1hcmdpbi5sb3dlcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVEaXN0YW5jZSAgPSBNYXRoLm1pbihcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhbmVEaXN0YW5jZSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLSByZXNpemVNYXJnaW4udXBwZXIpO1xyXG5cclxuICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gdGhpcy5wYW5lRGlzdGFuY2UgPyB0aGlzLnBhbmVEaXN0YW5jZSArICdweCcgOiAnJztcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdsZWZ0JyB8fCBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc2l6ZWRXaWR0aCA9IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3JpZ2h0JyA/XHJcbiAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5vZmZzZXRXaWR0aCAtICRldmVudC54IDpcclxuICAgICAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLm9mZnNldFdpZHRoICsgJGV2ZW50Lng7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5wYW5lRGlzdGFuY2UgPSBNYXRoLm1heChyZXNpemVkV2lkdGgsIHJlc2l6ZU1hcmdpbi5sb3dlcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVEaXN0YW5jZSA9IE1hdGgubWluKFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFuZURpc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC0gcmVzaXplTWFyZ2luLnVwcGVyKTtcclxuXHJcbiAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLndpZHRoID0gdGhpcy5wYW5lRGlzdGFuY2UgPyB0aGlzLnBhbmVEaXN0YW5jZSArICdweCcgOiAnJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5sYXlvdXRDaGFuZ2VkLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHZhbHVlIGZvciB0aGUgcGFuZSdzIGRpc3RhbmNlIGZvciBhY2Nlc3NpYmlsaXR5IHB1cnBvc2VzLlxyXG4gICAgICogQHJldHVybnMgbnVtYmVyIHRoYXQgaW5kaWNhdGVzIHRoZSBwYW5lJ3MgcmVuZGVyaW5nIHZhbHVlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0QXJpYVZhbHVlTm93KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzRXhwYW5kZWQgJiYgdGhpcy5wYW5lRGlzdGFuY2UgPyBNYXRoLnJvdW5kKHRoaXMucGFuZURpc3RhbmNlKSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIHRoZSBvcmllbnRhdGlvbiBjaGFuZ2VkIGV2ZW50cy4gVGhpcyB1c3VhbGx5IGhhcHBlbnMgb24gbGF5b3V0IGNoYW5nZSBiZWhhdmlvciBzdWNoIGFzIHJlc2l6aW5nIHRoZSB3aW5kb3cuXHJcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGhhcyB0byBiZSBjYWxsZWQgd2l0aCBjb21wb25lbnQgaW5pdGlhbGl6ZWQuXHJcbiAgICAgKiBAcGFyYW0gY3VyIHRoZSBjdXJyZW50IGxheW91dCwgY291bGQgYmUgdG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0LlxyXG4gICAgICogQHJldHVybnMgdm9pZC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBvbk9yaWVudGF0aW9uQ2hhbmdlZChjdXI6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIC8vIElnbm9yZSBpZiB0aGUgY29udGFpbmVyIGlzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQ29tcG9uZW50SW5pdGlhbGl6ZWQgfHwgIXRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQgfHwgIXRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLnBhbmVDb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmIChjdXIgPT09ICd0b3AnIHx8IGN1ciA9PT0gJ2JvdHRvbScgKSB7XHJcbiAgICAgICAgICAgIGNvbnRhaW5lci5zdHlsZS53aWR0aCA9ICcxMDAlJztcclxuICAgICAgICAgICAgY29udGFpbmVyLnN0eWxlLmhlaWdodCA9IHRoaXMuZ2V0UGFuZURpc3RhbmNlUmVzcG9uc2l2ZVdpbmRvdygpICsgJ3B4JztcclxuICAgICAgICAgICAgdGhpcy5wYW5lRGlzdGFuY2UgPSB0aGlzLmRlZmF1bHRQYW5lRGlzdGFuY2U7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjdXIgPT09ICdsZWZ0JyB8fCBjdXIgPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgY29udGFpbmVyLnN0eWxlLndpZHRoID0gdGhpcy5nZXRQYW5lRGlzdGFuY2VSZXNwb25zaXZlV2luZG93KCkgKyAncHgnO1xyXG4gICAgICAgICAgICBjb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJzEwMCUnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5kZWZlcnJlZFJlZnJlc2hVSSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSXQgaGFzIHRvIGJlIGEgZGVib3VuY2UgdmFsdWUgaW4gYmV0d2VlbiAwIC0gMjUwIHRvIHdhaXQgZm9yIGNoaWxkcmVuIGNvbXBvbmVudC5cclxuICAgICAqIElkZWFsbHkgc2hvdWxkIGJlIHByb21pc2UgaW1wbGVtZW50ZWQuXHJcbiAgICAgKi9cclxuICAgIEBEZWJvdW5jZSgxMClcclxuICAgIHByaXZhdGUgZGVmZXJyZWRSZWZyZXNoVUkoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoVUkoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBmdW5jdGlvbiB0byByZWZyZXNoIHRoZSBzcGxpdCB2aWV3IGZyb20gVUkuXHJcbiAgICAgKiBAcmV0dXJucyB2b2lkXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVmcmVzaFVJKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0NvbXBvbmVudEluaXRpYWxpemVkIHx8ICF0aGlzLnBhbmVDb250YWluZXJFbGVtZW50IHx8ICF0aGlzLnBhbmVDb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcGFuZURpc3RhbmNlUmVzcG9uc2l2ZVdpbmRvdyA9IHRoaXMuZ2V0UGFuZURpc3RhbmNlUmVzcG9uc2l2ZVdpbmRvdygpO1xyXG4gICAgICAgIGNvbnN0IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9IHRoaXMub3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93O1xyXG4gICAgICAgIGNvbnN0IHBhbmVDb250YWluZXIgPSB0aGlzLnBhbmVDb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmludGVybmFsSXNFeHBhbmRlZCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5wYW5lRGlzdGFuY2UpIHtcclxuICAgICAgICAgICAgICAgIGxldCBwYW5lRGlzdGFuY2UgPSB0aGlzLnBhbmVEaXN0YW5jZSA+IHBhbmVEaXN0YW5jZVJlc3BvbnNpdmVXaW5kb3dcclxuICAgICAgICAgICAgICAgICAgICA/IHBhbmVEaXN0YW5jZVJlc3BvbnNpdmVXaW5kb3cgOiB0aGlzLnBhbmVEaXN0YW5jZTtcclxuICAgICAgICAgICAgICAgIC8vIE9uIHBob25lLWRvd24sIGdldCByaWQgb2YgdGhlIHNjcm9sbGJhciB2ZXJ0aWNhbGx5LlxyXG4gICAgICAgICAgICAgICAgaWYgKHBhbmVEaXN0YW5jZVJlc3BvbnNpdmVXaW5kb3cgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhbmVEaXN0YW5jZSA9IHBhbmVEaXN0YW5jZVJlc3BvbnNpdmVXaW5kb3c7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3RvcCcgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnYm90dG9tJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gcGFuZURpc3RhbmNlID8gcGFuZURpc3RhbmNlICsgJ3B4JyA6ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUud2lkdGggPSAnMTAwJSc7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2xlZnQnIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUud2lkdGggPSBwYW5lRGlzdGFuY2UgPyBwYW5lRGlzdGFuY2UgKyAncHgnIDogJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5oZWlnaHQgPSAnJztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICd0b3AnIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2JvdHRvbScpIHtcclxuICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUuaGVpZ2h0ID0gJyc7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAob3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnbGVmdCcgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAncmlnaHQnKSB7XHJcbiAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLndpZHRoID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0SW50ZXJuYWxQYW5lRGlzdGFuY2UoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIHBhbmUgZGlzdGFuY2UgdGhhdCB3b3VsZCBiZSB1c2VkIGZvciByZW5kZXJpbmcgdGhlIHBhbmUuXHJcbiAgICAgKiBwYW5lJ3MgaGVpZ2h0IG9uIHRvcCwgYm90dG9tIGxheW91dC5cclxuICAgICAqIHBhbmUncyB3aWR0aCBvbiBsZWZ0LCByaWdodCBsYXlvdXQuXHJcbiAgICAgKiBAcmV0dXJucyB2b2lkO1xyXG4gICAgICovXHJcbiAgICBARGVib3VuY2UoKVxyXG4gICAgcHJpdmF0ZSBzZXRJbnRlcm5hbFBhbmVEaXN0YW5jZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQgfHwgIXRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaW50ZXJuYWxJc0V4cGFuZGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9IHRoaXMub3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93O1xyXG4gICAgICAgIGNvbnN0IHBhbmVDb250YWluZXIgPSB0aGlzLnBhbmVDb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmIChvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICd0b3AnIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2JvdHRvbScpIHtcclxuICAgICAgICAgICAgdGhpcy5wYW5lRGlzdGFuY2UgPSBwYW5lQ29udGFpbmVyLm9mZnNldEhlaWdodDtcclxuICAgICAgICB9IGVsc2UgaWYgKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2xlZnQnIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICB0aGlzLnBhbmVEaXN0YW5jZSA9IHBhbmVDb250YWluZXIub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgbWF4IHZhbHVlIHRoYXQgdGhlIHBhbmUgY2FuIGdyb3cuXHJcbiAgICAgKiBTZXRzIHBhbmUncyBoZWlnaHQgdmFsdWUgb24gdG9wLCBib3R0b20gbGF5b3V0LlxyXG4gICAgICogU2V0cyBwYW5lJ3Mgd2lkdGggdmFsdWUgb24gbGVmdCwgcmlnaHQgbGF5b3V0LlxyXG4gICAgICogQHJldHVybnMgdm9pZC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRQYW5lTWF4U2l6ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQgfHwgIXRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCByZXNpemVNYXJnaW46IFNwbGl0Vmlld1Jlc2l6ZXJNYXJnaW4gPSB0aGlzLmdldFNwbGl0Vmlld1Jlc2l6ZXJNYXJnaW5SZXNwb25zaXZlV2luZG93KCk7XHJcbiAgICAgICAgY29uc3Qgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID0gdGhpcy5vcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3c7XHJcbiAgICAgICAgY29uc3QgcGFuZUNvbnRhaW5lciA9IHRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKHJlc2l6ZU1hcmdpbi5sb3dlciA9PT0gdW5kZWZpbmVkICYmIHJlc2l6ZU1hcmdpbi51cHBlciA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIGlmIChvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdib3R0b20nIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3RvcCcpIHtcclxuICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUubWluSGVpZ2h0ID0gJyc7XHJcbiAgICAgICAgICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLm1heEhlaWdodCA9ICcxMDAlJztcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdsZWZ0JyB8fCBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdyaWdodCcpIHtcclxuICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUubWluV2lkdGggPSAnJztcclxuICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUubWF4V2lkdGggPSAnMTAwJSc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAob3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAndG9wJyB8fCBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdib3R0b20nKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWRSZXNpemVNYXJnaW5SZXNwb25zaXZlV2luZG93KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5taW5IZWlnaHQgPSByZXNpemVNYXJnaW4ubG93ZXIgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgICAgIHBhbmVDb250YWluZXIuc3R5bGUubWF4SGVpZ2h0ID0gKHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCAtIHJlc2l6ZU1hcmdpbi51cHBlcikgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ2xlZnQnIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5taW5XaWR0aCA9ICByZXNpemVNYXJnaW4ubG93ZXIgKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5tYXhXaWR0aCA9ICh0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIHJlc2l6ZU1hcmdpbi51cHBlcikgKyAncHgnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVzZXRzIHRoZSBtYXggdmFsdWUgdGhhdCB0aGUgcGFuZSBjYW4gZ3Jvdy5cclxuICAgICAqIEByZXR1cm5zIHZvaWQuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcmVzZXRQYW5lTWF4U2l6ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQgfHwgIXRoaXMucGFuZUNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwYW5lQ29udGFpbmVyID0gdGhpcy5wYW5lQ29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgICBwYW5lQ29udGFpbmVyLnN0eWxlLm1heFdpZHRoID0gJyc7XHJcbiAgICAgICAgcGFuZUNvbnRhaW5lci5zdHlsZS5tYXhIZWlnaHQgPSAnJztcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwib3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93PT09J2JvdHRvbScgfHwgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93PT09J3JpZ2h0J1wiPlxyXG4gIDxzZWN0aW9uICNjb250ZW50Q29udGFpbmVyIGNsYXNzPVwic21lLWxheW91dC1yZWxhdGl2ZSBzbWUtcG9zaXRpb24tZmxleC1hdXRvXCIgW2NsYXNzLnNtZS1hcnJhbmdlLW92ZXJmbG93LWF1dG9dPVwic2hvd1Njcm9sbGJhclwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L3NlY3Rpb24+XHJcbiAgPHNlY3Rpb24gI3BhbmVDb250YWluZXIgW2NsYXNzLnNtZS1sYXlvdXQtbm9uZV09XCJoaWRlU3BsaXRWaWV3UGFuZVwiXHJcbiAgICBjbGFzcz1cInNtZS1sYXlvdXQtcmVsYXRpdmUgc21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtYm9yZGVyLWNvbG9yLWJhc2UtODBcIlxyXG4gICAgW2NsYXNzLnNtZS1ib3JkZXItbGVmdC1zbV09XCJzaG93U3BsaXR0ZXJCb3JkZXIgJiYgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAncmlnaHQnXCJcclxuICAgIFtjbGFzcy5zbWUtYm9yZGVyLXRvcC1zbV09XCJzaG93U3BsaXR0ZXJCb3JkZXIgJiYgb3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93ID09PSAnYm90dG9tJ1wiXHJcbiAgICBbY2xhc3Muc21lLWFycmFuZ2Utb3ZlcmZsb3ctYXV0b109XCJzaG93U2Nyb2xsYmFyXCI+XHJcbiAgICA8IS0tIFRPRE86IGhpZGUgcmVzaXplciBvbiBwaG9uZSBkb3duIHRlbXBvcmFyaWx5LCBuZWVkcyBzcGVjaWFsIGRlc2lnbiAtLT5cclxuICAgIDxzbWUtcmVzaXplciAqbmdJZj1cImlzRXhwYW5kZWRcIiBjbGFzcz1cInNtZS1sYXlvdXQtaGlkZS1waG9uZS1kb3duXCIgW3RhYmluZGV4XT1cIltpc0V4cGFuZGVkPzA6bnVsbF1cIlxyXG4gICAgICBbY2xhc3Muc21lLWZvY3VzLXpvbmVdPVwiaXNFeHBhbmRlZFwiIHJlc2l6ZXJIb3N0U2VsZWN0b3I9XCJzbWUtc3BsaXQtdmlld1wiXHJcbiAgICAgIChyZXNpemVkKT1cIm9uUmVzaXplZCgkZXZlbnQpXCIgW29yaWVudGF0aW9uXT1cIm9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvd1wiPlxyXG4gICAgPC9zbWUtcmVzaXplcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwYW5lXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9zZWN0aW9uPlxyXG48L25nLWNvbnRhaW5lcj5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdz09PSd0b3AnIHx8IG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdz09PSdsZWZ0J1wiPlxyXG4gIDxzZWN0aW9uICNwYW5lQ29udGFpbmVyIFtjbGFzcy5zbWUtbGF5b3V0LW5vbmVdPVwiaGlkZVNwbGl0Vmlld1BhbmVcIlxyXG4gICAgY2xhc3M9XCJzbWUtbGF5b3V0LXJlbGF0aXZlIHNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWJvcmRlci1jb2xvci1iYXNlLTgwXCJcclxuICAgIFtjbGFzcy5zbWUtYm9yZGVyLXJpZ2h0LXNtXT1cInNob3dTcGxpdHRlckJvcmRlciAmJiBvcmllbnRhdGlvblJlc3BvbnNpdmVXaW5kb3cgPT09ICdsZWZ0J1wiXHJcbiAgICBbY2xhc3Muc21lLWJvcmRlci1ib3R0b20tc21dPVwic2hvd1NwbGl0dGVyQm9yZGVyICYmIG9yaWVudGF0aW9uUmVzcG9uc2l2ZVdpbmRvdyA9PT0gJ3RvcCdcIlxyXG4gICAgW2NsYXNzLnNtZS1hcnJhbmdlLW92ZXJmbG93LWF1dG9dPVwic2hvd1Njcm9sbGJhclwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBhbmVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS0gVE9ETzogaGlkZSByZXNpemVyIG9uIHBob25lIGRvd24gdGVtcG9yYXJpbHksIG5lZWRzIHNwZWNpYWwgZGVzaWduIC0tPlxyXG4gICAgPHNtZS1yZXNpemVyICpuZ0lmPVwiaXNFeHBhbmRlZFwiIGNsYXNzPVwic21lLWxheW91dC1oaWRlLXBob25lLWRvd25cIiBbdGFiaW5kZXhdPVwiW2lzRXhwYW5kZWQ/MDpudWxsXVwiXHJcbiAgICAgIFtjbGFzcy5zbWUtZm9jdXMtem9uZV09XCJpc0V4cGFuZGVkXCIgcmVzaXplckhvc3RTZWxlY3Rvcj1cInNtZS1zcGxpdC12aWV3XCJcclxuICAgICAgKHJlc2l6ZWQpPVwib25SZXNpemVkKCRldmVudClcIiBbb3JpZW50YXRpb25dPVwib3JpZW50YXRpb25SZXNwb25zaXZlV2luZG93XCIgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJnZXRBcmlhVmFsdWVOb3coKVwiPlxyXG4gICAgPC9zbWUtcmVzaXplcj5cclxuICA8L3NlY3Rpb24+XHJcbiAgPHNlY3Rpb24gI2NvbnRlbnRDb250YWluZXIgY2xhc3M9XCJzbWUtbGF5b3V0LXJlbGF0aXZlIHNtZS1wb3NpdGlvbi1mbGV4LWF1dG9cIiBbY2xhc3Muc21lLWFycmFuZ2Utb3ZlcmZsb3ctYXV0b109XCJzaG93U2Nyb2xsYmFyXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvc2VjdGlvbj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic21lLXNwbGl0LXZpZXctY29udGVudFwiPjwvbmctY29udGVudD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNwYW5lPlxyXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1zcGxpdC12aWV3LXBhbmVcIj48L25nLWNvbnRlbnQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjwhLS0gVGhlIHJlYXNvbiB0byB1c2UgbmctdGVtcGxhdGUgdG8gd3JhcCB0aGUgbmctY29udGVudCBlbGVtZW50IGluc3RlYWQgb2YgZGlyZWN0bHkgdG8gdXNlIG5nLWNvbnRlbnQgaW4gYm90aCB0d28gbmctY29udGFpbmVycyBhYm92ZSBpczpcclxuSWYgd2UgdXNlIG5nLWNvbnRlbnQgZWxlbWVudHMgZGlyZWN0bHkgaW4gYm90aCAyIG5nLWNvbnRhaW5lcnMsIHRoZXJlIHdpbGwgYmUgMiBuZy1jb250ZW50IGVsZW1lbnRzIHdpdGggdGhlIHNhbWUgc2VsZWN0b3IuIEJ1dCBBbmd1bGFyIHdpbGwgb25seVxyXG5yZXNvbHZlIHRoZSBmaXJzdCBuZy1jb250ZW50IGluIG11bHRpcGxlIG5nLWNvbnRlbnQgZWxlbWVudHMgd2l0aCBzYW1lIHNlbGVjdG9yIGV2ZW4gdGhlIGZpcnN0IG9uZSBpcyBpbiBhIG5nSWYgZmFsc2UgYmxvY2suXHJcblNvIHdoZW4gdGhlIG9yaWVudGF0aW9uIGlzIFwidG9wXCIgb3IgXCJsZWZ0XCIsIG5vIG5nLWNvbnRlbnQgZWxlbWVudCB3aWxsIGJlIHJlc29sdmVkIHRoZW4gbm90aGluZyB3b3VsZCByZW5kZXIuXHJcbkluIG9yZGVyIHRvIHNvbHZlIHRoaXMgcHJvYmxlbSwgd2UgaGF2ZSB0byB1c2UgbmctdGVtcGxhdGUgdG8gd3JhcCB0aGUgbmctY29udGVudCB0byBtYWtlIHN1cmUgb25lIHNlbGVjdG9yIG1hcHMgdG8gb25lIG5nLWNvbnRlbnQuXHJcblRoZW4gd2UgdXNlIG5nLWNvbnRhaW5lciBhbmQgbmdUZW1wbGF0ZU91dGxldCB0byBjYWxsIHRoZSBuZy10ZW1wbGF0ZS5cclxuVGh4IGZvciByZWFkaW5nIHRpbGwgaGVyZS4uLi4uLiAtLT5cclxuIl19
|
|
@@ -55,7 +55,7 @@ export class SmeRouterLinkDirective {
|
|
|
55
55
|
this.updateIsActive();
|
|
56
56
|
}
|
|
57
57
|
ngOnDestroy() {
|
|
58
|
-
this.subscriptions.forEach(sub => sub
|
|
58
|
+
this.subscriptions.forEach(sub => sub?.unsubscribe());
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
61
|
* Updates the isActive state and fires appropriate events if that state has changed.
|
|
@@ -113,4 +113,4 @@ export class SmeRouterLinkDirective {
|
|
|
113
113
|
}], routerLinkActiveOptions: [{
|
|
114
114
|
type: Input
|
|
115
115
|
}] }); })();
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvZGlyZWN0aXZlcy9yb3V0ZXIvcm91dGVyLWxpbmsuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULFlBQVksRUFDWixJQUFJLEVBQ0osS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUd4Rjs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjtJQXlCL0I7Ozs7O09BS0c7SUFDSCxZQUMrQixJQUFnQixFQUNoQixZQUFnQyxFQUNuRCxNQUFjLEVBQ2QsaUJBQW9DO1FBSGpCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsaUJBQVksR0FBWixZQUFZLENBQW9CO1FBQ25ELFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBbENoRDs7V0FFRztRQUVJLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFekQ7O1dBRUc7UUFFSSw2QkFBd0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTNEOztXQUVHO1FBRUksNEJBQXVCLEdBQXVCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBRXRFOztXQUVHO1FBQ0ssYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFldkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsWUFBWSxhQUFhLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN6QjtRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxrQkFBa0I7UUFDckIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDWixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDbEIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQzlELE9BQU87U0FDVjtRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM3QyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssY0FBYyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDO1lBQy9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDZixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVksQ0FBQyxJQUFxQztRQUN0RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDbEIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQzs7K0dBbkdRLHNCQUFzQjt3R0FBdEIsc0JBQXNCO3VGQUF0QixzQkFBc0I7Y0FIbEMsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSw2RUFBNkU7YUFDMUY7O3NCQWlDUSxRQUFROztzQkFBSSxJQUFJOztzQkFDaEIsUUFBUTs7c0JBQUksSUFBSTs2RUE1QmQsc0JBQXNCO2tCQUQ1QixNQUFNO1lBT0Esd0JBQXdCO2tCQUQ5QixNQUFNO1lBT0EsdUJBQXVCO2tCQUQ3QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyQ29udGVudEluaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIERpcmVjdGl2ZSxcclxuICAgIERvQ2hlY2ssXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBIb3N0LFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPcHRpb25hbCxcclxuICAgIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlckxpbmssIFJvdXRlckxpbmtXaXRoSHJlZiB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuLyoqXHJcbiAqIERpcmVjdGl2ZSB0byBwcm92aWRlIG5vdGlmaWNhdGlvbiBvciBzdGF0ZSBjaGFuZ2VzIGZvciBhbmd1bGFycyBAc2VlIFJvdXRlckxpbmsgZGlyZWN0aXZlLlxyXG4gKiBUaGUgZGVzaWduIG9mIHRoaXMgZGlyZWN0aXZlIGlzIGlkZW50aWNhbCB0byBAc2VlIFJvdXRlckxpbmtBY3RpdmVcclxuICogYW5kIGFzIHN1Y2ggc3VwcG9ydHMgdGhlIHNhbWUgQHNlZSBSb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucyBhcmUgc3VwcG9ydGVkLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tyb3V0ZXJMaW5rXVtzbWVSb3V0ZXJMaW5rQWN0aXZhdGVkXSxbcm91dGVyTGlua11bc21lUm91dGVyTGlua0RlYWN0aXZhdGVkXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtZVJvdXRlckxpbmtEaXJlY3RpdmUgaW1wbGVtZW50cyBEb0NoZWNrLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgb3V0cHV0IGZvciB3aGVuIHRoZSByb3V0ZSBpcyBhY3RpdmF0ZWRcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgc21lUm91dGVyTGlua0FjdGl2YXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBvdXRwdXQgZm9yIHdoZW4gdGhlIHJvdXRlIGlzIGRlYWN0aXZhdGVkXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHNtZVJvdXRlckxpbmtEZWFjdGl2YXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFVzZSB0aGUgc2FtZSBpbnB1dCBvcHRpb25zIGFzIGFuZ3VsYXJzIEBzZWUgUm91dGVyTGlua0FjdGl2ZSBEaXJlY3RpdmVcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyByb3V0ZXJMaW5rQWN0aXZlT3B0aW9uczogeyBleGFjdDogYm9vbGVhbiB9ID0geyBleGFjdDogZmFsc2UgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBsYWNlaG9sZGVyIGZvciB0aGUgY3VycmVudCBhY3RpdmF0aW9uIHN0YXRlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaXNBY3RpdmUgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBAc2VlIFBpdm90Q29tcG9uZW50IGNsYXNzLlxyXG4gICAgICogQHBhcmFtICBsaW5rIFRoZSByb3V0ZXIgbGluayB0aGF0J3MgZGVmaW5lZCBmb3IgdGhlIGVsZW1lbnQgb3IgY2hpbGQgZWxlbWVudHNcclxuICAgICAqIEBwYXJhbSAgbGlua1dpdGhIcmVmIFRoZSByb3V0ZXIgbGluayB3aXRoICdhJyB0YWdzIHRoYXQncyBkZWZpbmVkIGZvciB0aGUgZWxlbWVudCBvciBjaGlsZCBlbGVtZW50c1xyXG4gICAgICogQHBhcmFtICByb3V0ZXIgVGhlIGFuZ3VsYXIgcm91dGVyIHNlcnZpY2VcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwdWJsaWMgbGluazogUm91dGVyTGluayxcclxuICAgICAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHB1YmxpYyBsaW5rV2l0aEhyZWY6IFJvdXRlckxpbmtXaXRoSHJlZixcclxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUocyA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocyBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUlzQWN0aXZlKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuZ3VsYXJzIEFmdGVyQ29udGVudEluaXQgbGlmZSBjeWNsZSBldmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudXBkYXRlSXNBY3RpdmUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuZ3VsYXJzIE9uQ2hhbmdlcyBsaWZlIGN5Y2xlIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVJc0FjdGl2ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViPy51bnN1YnNjcmliZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIGlzQWN0aXZlIHN0YXRlIGFuZCBmaXJlcyBhcHByb3ByaWF0ZSBldmVudHMgaWYgdGhhdCBzdGF0ZSBoYXMgY2hhbmdlZC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVJc0FjdGl2ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoKCF0aGlzLmxpbmsgJiYgIXRoaXMubGlua1dpdGhIcmVmKSB8fCAhdGhpcy5yb3V0ZXIubmF2aWdhdGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGhhc0FjdGl2ZUxpbmtzID0gdGhpcy5oYXNBY3RpdmVMaW5rcygpO1xyXG4gICAgICAgIGlmICh0aGlzLmlzQWN0aXZlICE9PSBoYXNBY3RpdmVMaW5rcykge1xyXG4gICAgICAgICAgICB0aGlzLmlzQWN0aXZlID0gaGFzQWN0aXZlTGlua3M7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzQWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNtZVJvdXRlckxpbmtBY3RpdmF0ZWQubmV4dCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zbWVSb3V0ZXJMaW5rRGVhY3RpdmF0ZWQubmV4dCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyBpZiBhIGdpdmVuIGxpbmsgaXMgYWN0aXZlXHJcbiAgICAgKiBAcGFyYW0gbGluayB0aGUgbGluayB0byBjaGVja1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGlzTGlua0FjdGl2ZShsaW5rOiBSb3V0ZXJMaW5rIHwgUm91dGVyTGlua1dpdGhIcmVmKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLmlzQWN0aXZlKGxpbmsudXJsVHJlZSwgdGhpcy5yb3V0ZXJMaW5rQWN0aXZlT3B0aW9ucy5leGFjdCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgdGhhdCBhdCBsZWFzZWQgb25lIGxpbmsgaXMgYWN0aXZlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaGFzQWN0aXZlTGlua3MoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLmxpbmsgJiYgdGhpcy5pc0xpbmtBY3RpdmUodGhpcy5saW5rKSkgfHxcclxuICAgICAgICAgICAgKHRoaXMubGlua1dpdGhIcmVmICYmIHRoaXMuaXNMaW5rQWN0aXZlKHRoaXMubGlua1dpdGhIcmVmKSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input } from '@angular/core';
|
|
2
|
-
import { ViewContainerRef } from '@angular/core';
|
|
1
|
+
import { Directive, ElementRef, Input, ViewContainerRef } from '@angular/core';
|
|
3
2
|
import { ResourceService } from '../../service/resource.service';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "../../service/resource.service";
|
|
@@ -73,4 +72,4 @@ export class SvgInlineDirective {
|
|
|
73
72
|
}], function () { return [{ type: i0.ViewContainerRef }, { type: i1.ResourceService }]; }, { smeSvgInline: [{
|
|
74
73
|
type: Input
|
|
75
74
|
}] }); })();
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ZnLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2RpcmVjdGl2ZXMvc3ZnL3N2Zy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBRWpFOztHQUVHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFDckI7Ozs7O09BS0c7SUFDSCxZQUFvQixVQUFzQixFQUFVLGVBQWdDO1FBQWhFLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFDcEYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFhLE1BQU0sQ0FBQyxFQUFVO1FBQzFCLElBQUksRUFBRSxFQUFFO1lBQ0osRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBUyxlQUFlLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pGLElBQUksU0FBUyxFQUFFO2dCQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDMUQ7U0FDSjtJQUNMLENBQUM7OzJGQXZCUSxZQUFZOzhGQUFaLFlBQVk7dUZBQVosWUFBWTtjQUR4QixTQUFTO2VBQUMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFOzJGQWdCbEIsTUFBTTtrQkFBbEIsS0FBSzs7QUFXVjs7R0FFRztBQUVILE1BQU0sT0FBTyxrQkFBa0I7SUFDM0I7Ozs7O09BS0c7SUFDSCxZQUFvQixhQUErQixFQUFVLGVBQWdDO1FBQXpFLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUFVLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUM3RixDQUFDO0lBRUQsSUFBYSxZQUFZLENBQUMsRUFBVTtRQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLElBQUksRUFBRSxFQUFFO1lBQ0osRUFBRSxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBUyxlQUFlLENBQUMsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JGLElBQUksT0FBTyxFQUFFO2dCQUNULElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO2FBQ2hFO1NBQ0g7SUFDTixDQUFDOzt1R0FuQlEsa0JBQWtCO29HQUFsQixrQkFBa0I7dUZBQWxCLGtCQUFrQjtjQUQ5QixTQUFTO2VBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUU7aUdBV3hCLFlBQVk7a0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlc291cmNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvcmVzb3VyY2Uuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogU1ZHIGltYWdlIGRpcmVjdGl2ZSB0byBwbGFjZSBTVkcgaW1hZ2UgYXQgYmFja2dyb3VuZC1pbWFnZSBieSBDU1Mgc3R5bGUgY2xhc3MuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbc21lU3ZnXScgfSlcclxuZXhwb3J0IGNsYXNzIFN2Z0RpcmVjdGl2ZSB7XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBTdmdEaXJlY3RpdmUgY2xhc3MuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGVsZW1lbnRSZWYgdGhlIGVsZW1lbnQgcmVmZXJlbmNlLlxyXG4gICAgICogQHBhcmFtIHJlc291cmNlU2VydmljZSB0aGUgcmVzb3VyY2Ugc2VydmljZS5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlc291cmNlU2VydmljZTogUmVzb3VyY2VTZXJ2aWNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgXCJzbWVTdmdcIiBpbnB1dCBhcyBpZCBzdHJpbmcgb2YgU1ZHIHJlc291cmNlLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBpZCBUaGUgaWRlbnRpZmljYXRpb24gb2YgU1ZHIHJlc291cmNlLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBzZXQgc21lU3ZnKGlkOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoaWQpIHtcclxuICAgICAgICAgICAgaWQgPSBpZC50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBjbGFzc05hbWUgPSB0aGlzLnJlc291cmNlU2VydmljZS5maW5kPHN0cmluZz4oUmVzb3VyY2VTZXJ2aWNlLnN2Z1R5cGUsIGlkKTtcclxuICAgICAgICAgICAgaWYgKGNsYXNzTmFtZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogU1ZHIGltYWdlIGRpcmVjdGl2ZSB0byBwbGFjZSBTVkcgaW1hZ2UgYXMgaW5saW5lIGludG8gdGhlIGVsZW1lbnQuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbc21lU3ZnSW5saW5lXScgfSlcclxuZXhwb3J0IGNsYXNzIFN2Z0lubGluZURpcmVjdGl2ZSB7XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBTdmdJbmxpbmVEaXJlY3RpdmUgY2xhc3MuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHZpZXdDb250YWluZXIgdGhlIHZpZXcgY29udGFpbmVyIHJlZmVyZW5jZS5cclxuICAgICAqIEBwYXJhbSByZXNvdXJjZVNlcnZpY2UgdGhlIHJlc291cmNlIHNlcnZpY2UuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSByZXNvdXJjZVNlcnZpY2U6IFJlc291cmNlU2VydmljZSkge1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpIHNldCBzbWVTdmdJbmxpbmUoaWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgICAgIGlmIChpZCkge1xyXG4gICAgICAgICAgICBpZCA9IGlkLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLnJlc291cmNlU2VydmljZS5maW5kPHN0cmluZz4oUmVzb3VyY2VTZXJ2aWNlLnN2Z0lubGluZVR5cGUsIGlkKTtcclxuICAgICAgICAgICAgaWYgKGNvbnRlbnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gY29udGVudDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|