ngx-histaff-alpha 3.8.7 → 3.8.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/app/libraries/core-button-group-vns/core-button-vns/core-button-vns.component.mjs +5 -3
- package/esm2022/lib/app/libraries/core-confirm-dialog/core-confirm-dialog/core-confirm-dialog.component.mjs +3 -3
- package/esm2022/lib/app/libraries/core-form-control-seeker/core-form-control-seeker/core-form-control-seeker.component.mjs +2 -2
- package/esm2022/lib/app/libraries/core-grid-buffer/core-grid-buffer/core-grid-buffer.component.mjs +1 -1
- package/esm2022/lib/app/libraries/core-page-list/core-page-list.component.mjs +2 -2
- package/esm2022/lib/app/libraries/core-page-list-content/core-page-list-content/core-page-list-content.component.mjs +2 -2
- package/esm2022/lib/app/libraries/core-permission/core-permission/core-permission.component.mjs +27 -21
- package/esm2022/lib/app/libraries/core-permission-actions/core-permission-actions/core-permission-actions.component.mjs +13 -5
- package/esm2022/lib/app/libraries/core-shift-sticker/core-shift-sticker.component.mjs +3 -3
- package/esm2022/lib/app/libraries/core-table/core-table.component.mjs +8 -5
- package/esm2022/lib/app/libraries/core-tabs/core-tabs/core-tabs.component.mjs +2 -2
- package/esm2022/lib/app/libraries/navigator/navigator/item.component.mjs +4 -3
- package/esm2022/lib/app/root/in-memory/in-memory/in-memory.component.mjs +1 -1
- package/esm2022/lib/app/services/developer-validation.service.mjs +5 -6
- package/esm2022/lib/app/services/navigator.service.mjs +62 -17
- package/fesm2022/ngx-histaff-alpha.mjs +335 -273
- package/fesm2022/ngx-histaff-alpha.mjs.map +1 -1
- package/lib/app/libraries/core-button-group-vns/core-button-vns/core-button-vns.component.d.ts +1 -0
- package/lib/app/libraries/core-permission/core-permission/core-permission.component.d.ts +4 -1
- package/lib/app/libraries/core-permission-actions/core-permission-actions/core-permission-actions.component.d.ts +4 -2
- package/lib/app/libraries/core-table/core-table.component.d.ts +2 -1
- package/lib/app/services/developer-validation.service.d.ts +0 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ import { TranslatePipe } from '../../../app-pipes/translate.pipe';
|
|
|
5
5
|
import { TooltipDirective } from '../../tooltip/tooltip.directive';
|
|
6
6
|
import { EnumCoreButtonVNSCode } from '../core-button-group-vns/EnumCoreButtonVNSCode';
|
|
7
7
|
import { StringHtmlPipe } from '../../../app-pipes/string-html.pipe';
|
|
8
|
+
import { DEFAULT_SVG } from '../../navigator/navigator/item.component';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "../../../services/multi-language.service";
|
|
10
11
|
import * as i2 from "../core-button-group-service";
|
|
@@ -27,6 +28,7 @@ export class CoreButtonVnsComponent {
|
|
|
27
28
|
this.toolTipPosition = "under";
|
|
28
29
|
this.expandState = false;
|
|
29
30
|
this.clickStream$ = new BehaviorSubject('');
|
|
31
|
+
this.defaultSvg = DEFAULT_SVG;
|
|
30
32
|
}
|
|
31
33
|
ngOnChanges(changes) {
|
|
32
34
|
if (!changes['height']?.currentValue) {
|
|
@@ -131,7 +133,7 @@ export class CoreButtonVnsComponent {
|
|
|
131
133
|
}
|
|
132
134
|
}
|
|
133
135
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreButtonVnsComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.CoreButtonGroupService }, { token: i3.AlertService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i4.DomService }, { token: i5.ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
134
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreButtonVnsComponent, isStandalone: true, selector: "core-button-vns", inputs: { height: "height", data: "data", instanceNumber: "instanceNumber", disabled: "disabled", showCaption: "showCaption" }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else {
|
|
136
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreButtonVnsComponent, isStandalone: true, selector: "core-button-vns", inputs: { height: "height", data: "data", instanceNumber: "instanceNumber", disabled: "disabled", showCaption: "showCaption" }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n <!-- @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else { -->\r\n <i [class.temporary-unavailable]=\"!!hidden\" style=\"display: inline-flex; align-items: center;\" [innerHtml]=\"(iconSvg || defaultSvg) | stringHtml\">\r\n </i>\r\n <!-- } -->\r\n \r\n @if (!!data.isDropdown) {\r\n <div #dropdown class=\"header-button-dropdown-wrapper\" [ngStyle]=\"{\r\n position: 'absolute',\r\n display: !!expandState ? 'block' : 'none',\r\n minWidth: '100px',\r\n zIndex: domService.getMaxZIndex() + 1\r\n }\">\r\n @for (item of data.dropdownOptions!; track item) {\r\n <div class=\"header-button-dropdown-line\" (click)=\"onChildClick(item, $event)\">\r\n <span [class]=\"item.childIconWrapperClass\">\r\n <i [class]=\"item.childIconClass\"></i>\r\n </span>\r\n <span [ngStyle]=\"{\r\n textOverflow: 'ellipsis'\r\n }\" [appTooltip]=\"item.childCaptionCode | translate: lang\">{{ item.childCaptionCode |\r\n translate: lang }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n @if (!!showCaption || !!data.showCaption) {\r\n <span [class.temporary-unavailable]=\"!!hidden\" class=\"button-caption\">{{ data.caption | translate: lang\r\n }}</span>\r\n }\r\n \r\n </div>\r\n \r\n @if (!!data.withDivider) {\r\n <div [ngStyle]=\"{ height: height + 'px', display: 'inline-block' }\" class=\"separator\"></div>\r\n }\r\n\r\n\r\n } @else {\r\n\r\n\r\n <button type=\"button\" [class.temporary-unavailable]=\"!!hidden\" [class.last-child]=\"isLastChildOfGroup\" class=\"btn-for-form btn btn-secondary\">{{ data.caption | translate: lang\r\n }}</button>\r\n\r\n }\r\n\r\n\r\n</div>", styles: [".core-button-vns-container{height:30px;display:flex;align-items:center;justify-content:center;min-width:30px}.core-button-vns-container .action-wrapper{height:30px!important;width:30px!important;display:flex;align-items:center;justify-content:center}.core-button-vns-container .action-wrapper:has(i:hover){background-color:#e7e7e7;border-radius:50%}.core-button-vns-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-button-vns-container button.last-child{background-color:#000;color:#fff}.core-button-vns-container .action-wrapper.last-child{background-color:var(--color-basic-orange);color:#fff;border-radius:50%}.core-button-vns-container .action-wrapper.last-child:hover{background-color:var(--color-basic-orange);box-shadow:0 1rem 3rem #0000002e}.core-button-vns-container .temporary-unavailable{user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:not-allowed!important;opacity:.5}.core-button-vns-container .temporary-unavailable:hover{background-color:transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }] }); }
|
|
135
137
|
}
|
|
136
138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreButtonVnsComponent, decorators: [{
|
|
137
139
|
type: Component,
|
|
@@ -140,7 +142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
140
142
|
TranslatePipe,
|
|
141
143
|
TooltipDirective,
|
|
142
144
|
StringHtmlPipe,
|
|
143
|
-
], template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else {
|
|
145
|
+
], template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n <!-- @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else { -->\r\n <i [class.temporary-unavailable]=\"!!hidden\" style=\"display: inline-flex; align-items: center;\" [innerHtml]=\"(iconSvg || defaultSvg) | stringHtml\">\r\n </i>\r\n <!-- } -->\r\n \r\n @if (!!data.isDropdown) {\r\n <div #dropdown class=\"header-button-dropdown-wrapper\" [ngStyle]=\"{\r\n position: 'absolute',\r\n display: !!expandState ? 'block' : 'none',\r\n minWidth: '100px',\r\n zIndex: domService.getMaxZIndex() + 1\r\n }\">\r\n @for (item of data.dropdownOptions!; track item) {\r\n <div class=\"header-button-dropdown-line\" (click)=\"onChildClick(item, $event)\">\r\n <span [class]=\"item.childIconWrapperClass\">\r\n <i [class]=\"item.childIconClass\"></i>\r\n </span>\r\n <span [ngStyle]=\"{\r\n textOverflow: 'ellipsis'\r\n }\" [appTooltip]=\"item.childCaptionCode | translate: lang\">{{ item.childCaptionCode |\r\n translate: lang }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n @if (!!showCaption || !!data.showCaption) {\r\n <span [class.temporary-unavailable]=\"!!hidden\" class=\"button-caption\">{{ data.caption | translate: lang\r\n }}</span>\r\n }\r\n \r\n </div>\r\n \r\n @if (!!data.withDivider) {\r\n <div [ngStyle]=\"{ height: height + 'px', display: 'inline-block' }\" class=\"separator\"></div>\r\n }\r\n\r\n\r\n } @else {\r\n\r\n\r\n <button type=\"button\" [class.temporary-unavailable]=\"!!hidden\" [class.last-child]=\"isLastChildOfGroup\" class=\"btn-for-form btn btn-secondary\">{{ data.caption | translate: lang\r\n }}</button>\r\n\r\n }\r\n\r\n\r\n</div>", styles: [".core-button-vns-container{height:30px;display:flex;align-items:center;justify-content:center;min-width:30px}.core-button-vns-container .action-wrapper{height:30px!important;width:30px!important;display:flex;align-items:center;justify-content:center}.core-button-vns-container .action-wrapper:has(i:hover){background-color:#e7e7e7;border-radius:50%}.core-button-vns-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-button-vns-container button.last-child{background-color:#000;color:#fff}.core-button-vns-container .action-wrapper.last-child{background-color:var(--color-basic-orange);color:#fff;border-radius:50%}.core-button-vns-container .action-wrapper.last-child:hover{background-color:var(--color-basic-orange);box-shadow:0 1rem 3rem #0000002e}.core-button-vns-container .temporary-unavailable{user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:not-allowed!important;opacity:.5}.core-button-vns-container .temporary-unavailable:hover{background-color:transparent!important}\n"] }]
|
|
144
146
|
}], ctorParameters: () => [{ type: i1.MultiLanguageService }, { type: i2.CoreButtonGroupService }, { type: i3.AlertService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i4.DomService }, { type: i5.ActionService }], propDecorators: { height: [{
|
|
145
147
|
type: Input
|
|
146
148
|
}], data: [{
|
|
@@ -157,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
157
159
|
type: ViewChild,
|
|
158
160
|
args: ["container"]
|
|
159
161
|
}] } });
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tdm5zL2NvcmUtYnV0dG9uLXZucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLXZucy9jb3JlLWJ1dHRvbi12bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE0QixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBS3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7OztBQWVyRSxNQUFNLE9BQU8sc0JBQXNCO0lBMkJqQyxZQUNVLEdBQXlCLEVBQ3pCLHNCQUE4QyxFQUM5QyxZQUEwQixFQUMxQixLQUFpQixFQUNqQixRQUFtQixFQUNwQixVQUFzQixFQUNyQixhQUE0QjtRQU41QixR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QVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBidWZmZXIsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJQ29yZUJ1dHRvbkRyb3Bkb3duT3B0aW9uLCBJQ29yZUJ1dHRvblZOUyB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9JQ29yZUJ1dHRvblZOUyc7XHJcbmltcG9ydCB7IENvcmVCdXR0b25Hcm91cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi1ncm91cC1zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XHJcbmltcG9ydCB7IEVudW1Db3JlQnV0dG9uVk5TQ29kZSB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGUnO1xyXG5pbXBvcnQgeyBTdHJpbmdIdG1sUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy9zdHJpbmctaHRtbC5waXBlJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FjdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1idXR0b24tdm5zJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgU3RyaW5nSHRtbFBpcGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUJ1dHRvblZuc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQElucHV0KCkgaGVpZ2h0ITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGRhdGEhOiBJQ29yZUJ1dHRvblZOUztcclxuICBASW5wdXQoKSBpbnN0YW5jZU51bWJlciE6IG51bWJlcjtcclxuICBASW5wdXQoKSBkaXNhYmxlZCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd0NhcHRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPElDb3JlQnV0dG9uVk5TPigpO1xyXG5cclxuICBAVmlld0NoaWxkKFwiY29udGFpbmVyXCIpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGxhbmchOiBzdHJpbmdcclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIGhpZGRlbiE6IGJvb2xlYW47XHJcbiAgdG9vbFRpcFBvc2l0aW9uID0gXCJ1bmRlclwiO1xyXG5cclxuICBsaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuICBleHBhbmRTdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBpY29uU3ZnPzogc3RyaW5nO1xyXG5cclxuICBjbGlja1N0cmVhbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG5cclxuICBkZWJ1Z2dpbmchOiBib29sZWFuO1xyXG5cclxuICBpc0xhc3RDaGlsZE9mR3JvdXAhOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgY29yZUJ1dHRvbkdyb3VwU2VydmljZTogQ29yZUJ1dHRvbkdyb3VwU2VydmljZSxcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGRvbVNlcnZpY2U6IERvbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cclxuICAgIGlmICghY2hhbmdlc1snaGVpZ2h0J10/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAvL2ZhbGxiYWNrXHJcbiAgICAgIHRoaXMuaGVpZ2h0ID0gMzA7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5pY29uU3ZnID0gdGhpcy5hY3Rpb25TZXJ2aWNlLmFjdGlvbk1hcC5nZXQodGhpcy5kYXRhLmNvZGUpPy5pY29uU3ZnO1xyXG5cclxuICAgIGlmICghIXRoaXMuZGF0YS5kcm9wZG93bk9wdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnRvb2xUaXBQb3NpdGlvbiA9IFwibGVmdFwiO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxhbmcgPSB4KVxyXG4gICAgKVxyXG5cclxuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5pbnN0YW5jZXMuZmlsdGVyKHggPT4geC5pbnN0YW5jZU51bWJlciA9PT0gdGhpcy5pbnN0YW5jZU51bWJlcik7XHJcbiAgICBpZiAoISFmaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIGZpbHRlclswXS5tdXN0QmVIaWRkZW4kLnN1YnNjcmliZShtYmggPT4gdGhpcy5oaWRkZW4gPSBtYmguaW5jbHVkZXModGhpcy5kYXRhLmNvZGUpKVxyXG4gICAgICApXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgLy8gICB0aGlzLmFsZXJ0U2VydmljZS53YXJuKFwiS2jDtG5nIHTDrG0gdGjhuqV5IGluc3RhbmNlIG51bWJlciBj4bunYSBuaMOzbSBuw7p0XCIsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBldmVudHMgZ2V0IGNhbGxlZCBieSBhbGwgY2xpY2tzIG9uIHRoZSBwYWdlXHJcbiAgICAgKi9cclxuICAgIHRoaXMubGlzdGVuZXJGbiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcclxuICAgICAgLypcclxuICAgICAgICogaGFuZGxlIGNsaWNrIG91dHNpZGVcclxuICAgICAgICovXHJcbiAgICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiAhISF0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0KSkge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kU3RhdGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICAvLyBHZXQgdGhlIHBhcmVudCBjb250YWluZXIgZWxlbWVudFxyXG4gICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJy5jb3JlLWJ1dHRvbi1ncm91cC12bnMtY29udGFpbmVyJyk7XHJcblxyXG4gICAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIHRoZSBsYXN0IGNoaWxkIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyXHJcbiAgICAgIGlmIChwYXJlbnRFbGVtZW50ICYmIHBhcmVudEVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCA9PT0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgdGhpcy5pc0xhc3RDaGlsZE9mR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgIC8vIEFkZCBhIGNsYXNzIG9yIHBlcmZvcm0gYW55IG9wZXJhdGlvbiB5b3UgbmVlZFxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCAnbGFzdC1jaGlsZCcpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaXNMYXN0Q2hpbGRPZkdyb3VwID0gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuYWN0aW9uU2VydmljZS5kZWJ1Z2dpbmckLnN1YnNjcmliZSh4ID0+IHRoaXMuZGVidWdnaW5nID0geClcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5jbGlja1N0cmVhbSQucGlwZShcclxuICAgICAgICAgIGJ1ZmZlcih0aGlzLmNsaWNrU3RyZWFtJC5waXBlKGRlYm91bmNlVGltZSgyNTApKSksXHJcbiAgICAgICAgICBtYXAoY2xpY2tzID0+IGNsaWNrcy5sZW5ndGgpLFxyXG4gICAgICAgICAgZmlsdGVyKGNsaWNrc0xlbmd0aCA9PiBjbGlja3NMZW5ndGggPj0gNSkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmljb25TdmcgPSB0aGlzLmFjdGlvblNlcnZpY2UuYWN0aW9uTWFwLmdldCh0aGlzLmRhdGEuY29kZSk/Lmljb25TdmdcclxuICAgICAgICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLnNob3dFZGl0U3ZnJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuICAgICAgaWYgKHRoaXMuZGF0YS5pc0Ryb3Bkb3duKSB7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5kYXRhLmNvZGUpIHtcclxuICAgICAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9EUk9QRE9XTl9QUklOVDpcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgICAgdGhpcy5jb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLmhlYWRlckJ1dHRvblByaW50RHJvcGRvd25PcHRpb25zJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuZHJvcGRvd25PcHRpb25zID0geFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfRFJPUERPV05fU0VUX1dPUktfU0NIRURVTEU6XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICAgIHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5oZWFkZXJCdXR0b25TZXRXb3JrU2NoZWR1bGVEcm9wZG93bk9wdGlvbnMkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5kcm9wZG93bk9wdGlvbnMgPSB4XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIG9uQnV0dG9uQ2xpY2soKTogdm9pZCB7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJvbkJ1dHRvbkNsaWNrPT09PT09PT09PT09PT09PT09PT09PT09PlwiKVxyXG5cclxuICAgIHRoaXMuY2xpY2tTdHJlYW0kLm5leHQoY3J5cHRvLnJhbmRvbVVVSUQoKSk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5pc0hlYWRlcikge1xyXG4gICAgICBjb25zdCBhY3Rpb25Db2RlID0gdGhpcy5kYXRhLmNvZGU7XHJcbiAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWN0aW9uU2VydmljZS5hY3Rpb25NYXAuZ2V0KGFjdGlvbkNvZGUpO1xyXG4gICAgICB0aGlzLmFjdGlvblNlcnZpY2UuY2xpY2tlZEl0ZW0kLm5leHQoYWN0aW9uKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmhpZGRlbikgcmV0dXJuO1xyXG5cclxuICAgIGlmICghdGhpcy5kYXRhLmlzSGVhZGVyKSB7XHJcbiAgICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdCh0aGlzLmRhdGEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZGF0YT8uaXNEcm9wZG93bikge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kU3RhdGUgPSAhdGhpcy5leHBhbmRTdGF0ZTsgIFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICghdGhpcy5kZWJ1Z2dpbmcpIHtcclxuICAgICAgICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdCh0aGlzLmRhdGEpOyAgICBcclxuICAgICAgICB9ICAgIFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoaWxkQ2xpY2soaXRlbTogSUNvcmVCdXR0b25Ecm9wZG93bk9wdGlvbiwgZTogYW55KSB7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKCF0aGlzLmRlYnVnZ2luZyAmJiAhIXRoaXMuZGF0YT8uaXNEcm9wZG93bikge1xyXG4gICAgICB0aGlzLmRhdGEuY2hpbGRDb2RlQ2xpY2tlZCA9IGl0ZW0uY2hpbGRDb2RlO1xyXG4gICAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodGhpcy5kYXRhKTtcclxuICAgICAgdGhpcy5leHBhbmRTdGF0ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvcmUtYnV0dG9uLXZucy1jb250YWluZXJcIiAjY29udGFpbmVyIHN0eWxlPVwiaGVpZ2h0OiAzMHB4O1wiIFtjbGFzcy5hbHBoYS1oZWFkZXItYnV0dG9uXT1cIiEhZGF0YS5pc0hlYWRlclwiXHJcbiAgICBbY2xhc3MuYWxwaGEtbm9uLWhlYWRlci1idG5dPVwiIWRhdGEuaXNIZWFkZXJcIiBbYXBwVG9vbHRpcF09XCJkYXRhLmNhcHRpb24gfCB0cmFuc2xhdGU6IGxhbmdcIlxyXG4gICAgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2soKVwiIFtuZ1N0eWxlXT1cInsgXHJcbiAgICAgICAgICAgIHdpZHRoOiAhIWRhdGEuaXNIZWFkZXIgPyAoZGF0YS53aXRoRGl2aWRlciA/IDIgKiBoZWlnaHQgKyAncHgnIDogaGVpZ2h0ICsgJ3B4JykgOiAnYXV0bycsXHJcbiAgICAgICAgfVwiPlxyXG5cclxuXHJcbiAgICBAaWYgKCEhZGF0YS5pc0hlYWRlcikge1xyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLXdyYXBwZXJcIiBbY2xhc3MucG9pbnRlcl09XCIhaGlkZGVuXCIgW2NsYXNzLmxhc3QtY2hpbGRdPVwiaXNMYXN0Q2hpbGRPZkdyb3VwXCIgW2NsYXNzLnRlbXBvcmFyeS11bmF2YWlsYWJsZV09XCIhIWhpZGRlblwiPlxyXG5cclxuICAgICAgICAgICAgQGlmICghaWNvblN2ZyB8fCAhaWNvblN2Zz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIDxpIHNyYz1cIlwiIFtjbGFzc109XCJkYXRhLmljb25DbGFzc1wiIFtjbGFzcy50ZW1wb3JhcnktdW5hdmFpbGFibGVdPVwiISFoaWRkZW5cIj48L2k+XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8aSBbY2xhc3MudGVtcG9yYXJ5LXVuYXZhaWxhYmxlXT1cIiEhaGlkZGVuXCIgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XCIgW2lubmVySHRtbF09XCJpY29uU3ZnIHwgc3RyaW5nSHRtbFwiPlxyXG4gICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgICAgICBAaWYgKCEhZGF0YS5pc0Ryb3Bkb3duKSB7XHJcbiAgICAgICAgICAgIDxkaXYgI2Ryb3Bkb3duIGNsYXNzPVwiaGVhZGVyLWJ1dHRvbi1kcm9wZG93bi13cmFwcGVyXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAhIWV4cGFuZFN0YXRlID8gJ2Jsb2NrJyA6ICdub25lJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMTAwcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiBkb21TZXJ2aWNlLmdldE1heFpJbmRleCgpICsgMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGRhdGEuZHJvcGRvd25PcHRpb25zITsgdHJhY2sgaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1idXR0b24tZHJvcGRvd24tbGluZVwiIChjbGljayk9XCJvbkNoaWxkQ2xpY2soaXRlbSwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJpdGVtLmNoaWxkSWNvbldyYXBwZXJDbGFzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiaXRlbS5jaGlsZEljb25DbGFzc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgW2FwcFRvb2x0aXBdPVwiaXRlbS5jaGlsZENhcHRpb25Db2RlIHwgdHJhbnNsYXRlOiBsYW5nXCI+e3sgaXRlbS5jaGlsZENhcHRpb25Db2RlIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlOiBsYW5nIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgQGlmICghIXNob3dDYXB0aW9uIHx8ICEhZGF0YS5zaG93Q2FwdGlvbikge1xyXG4gICAgICAgICAgICA8c3BhbiBbY2xhc3MudGVtcG9yYXJ5LXVuYXZhaWxhYmxlXT1cIiEhaGlkZGVuXCIgY2xhc3M9XCJidXR0b24tY2FwdGlvblwiPnt7IGRhdGEuY2FwdGlvbiB8IHRyYW5zbGF0ZTogbGFuZ1xyXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgQGlmICghIWRhdGEud2l0aERpdmlkZXIpIHtcclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBoZWlnaHQgKyAncHgnLCBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyB9XCIgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIH0gQGVsc2Uge1xyXG5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2NsYXNzLnRlbXBvcmFyeS11bmF2YWlsYWJsZV09XCIhIWhpZGRlblwiIFtjbGFzcy5sYXN0LWNoaWxkXT1cImlzTGFzdENoaWxkT2ZHcm91cFwiIGNsYXNzPVwiYnRuLWZvci1mb3JtIGJ0biBidG4tc2Vjb25kYXJ5XCI+e3sgZGF0YS5jYXB0aW9uIHwgdHJhbnNsYXRlOiBsYW5nXHJcbiAgICAgICAgICAgICAgICB9fTwvYnV0dG9uPlxyXG5cclxuICAgIH1cclxuXHJcblxyXG48L2Rpdj4iXX0=
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tdm5zL2NvcmUtYnV0dG9uLXZucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLXZucy9jb3JlLWJ1dHRvbi12bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE0QixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBS3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7QUFjdkUsTUFBTSxPQUFPLHNCQUFzQjtJQTRCakMsWUFDVSxHQUF5QixFQUN6QixzQkFBOEMsRUFDOUMsWUFBMEIsRUFDMUIsS0FBaUIs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TUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBidWZmZXIsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJQ29yZUJ1dHRvbkRyb3Bkb3duT3B0aW9uLCBJQ29yZUJ1dHRvblZOUyB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9JQ29yZUJ1dHRvblZOUyc7XHJcbmltcG9ydCB7IENvcmVCdXR0b25Hcm91cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi1ncm91cC1zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XHJcbmltcG9ydCB7IEVudW1Db3JlQnV0dG9uVk5TQ29kZSB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGUnO1xyXG5pbXBvcnQgeyBTdHJpbmdIdG1sUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy9zdHJpbmctaHRtbC5waXBlJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgREVGQVVMVF9TVkcgfSBmcm9tICcuLi8uLi9uYXZpZ2F0b3IvbmF2aWdhdG9yL2l0ZW0uY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1idXR0b24tdm5zJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgU3RyaW5nSHRtbFBpcGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUJ1dHRvblZuc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQElucHV0KCkgaGVpZ2h0ITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGRhdGEhOiBJQ29yZUJ1dHRvblZOUztcclxuICBASW5wdXQoKSBpbnN0YW5jZU51bWJlciE6IG51bWJlcjtcclxuICBASW5wdXQoKSBkaXNhYmxlZCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd0NhcHRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPElDb3JlQnV0dG9uVk5TPigpO1xyXG5cclxuICBAVmlld0NoaWxkKFwiY29udGFpbmVyXCIpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGxhbmchOiBzdHJpbmdcclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIGhpZGRlbiE6IGJvb2xlYW47XHJcbiAgdG9vbFRpcFBvc2l0aW9uID0gXCJ1bmRlclwiO1xyXG5cclxuICBsaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuICBleHBhbmRTdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBpY29uU3ZnPzogc3RyaW5nO1xyXG5cclxuICBjbGlja1N0cmVhbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG5cclxuICBkZWJ1Z2dpbmchOiBib29sZWFuO1xyXG5cclxuICBpc0xhc3RDaGlsZE9mR3JvdXAhOiBib29sZWFuO1xyXG4gIGRlZmF1bHRTdmcgPSBERUZBVUxUX1NWRztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvcmVCdXR0b25Hcm91cFNlcnZpY2U6IENvcmVCdXR0b25Hcm91cFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBlbFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBkb21TZXJ2aWNlOiBEb21TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3Rpb25TZXJ2aWNlOiBBY3Rpb25TZXJ2aWNlLFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoIWNoYW5nZXNbJ2hlaWdodCddPy5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgLy9mYWxsYmFja1xyXG4gICAgICB0aGlzLmhlaWdodCA9IDMwO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuaWNvblN2ZyA9IHRoaXMuYWN0aW9uU2VydmljZS5hY3Rpb25NYXAuZ2V0KHRoaXMuZGF0YS5jb2RlKT8uaWNvblN2ZztcclxuXHJcbiAgICBpZiAoISF0aGlzLmRhdGEuZHJvcGRvd25PcHRpb25zPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy50b29sVGlwUG9zaXRpb24gPSBcImxlZnRcIjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5tbHMubGFuZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5sYW5nID0geClcclxuICAgIClcclxuXHJcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaW5zdGFuY2VzLmZpbHRlcih4ID0+IHguaW5zdGFuY2VOdW1iZXIgPT09IHRoaXMuaW5zdGFuY2VOdW1iZXIpO1xyXG4gICAgaWYgKCEhZmlsdGVyLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICBmaWx0ZXJbMF0ubXVzdEJlSGlkZGVuJC5zdWJzY3JpYmUobWJoID0+IHRoaXMuaGlkZGVuID0gbWJoLmluY2x1ZGVzKHRoaXMuZGF0YS5jb2RlKSlcclxuICAgICAgKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgIC8vICAgdGhpcy5hbGVydFNlcnZpY2Uud2FybihcIktow7RuZyB0w6xtIHRo4bqleSBpbnN0YW5jZSBudW1iZXIgY+G7p2EgbmjDs20gbsO6dFwiLCBub25lQXV0b0Nsb3NlZEFsZXJ0T3B0aW9ucyk7XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvKipcclxuICAgICAqIFRoaXMgZXZlbnRzIGdldCBjYWxsZWQgYnkgYWxsIGNsaWNrcyBvbiB0aGUgcGFnZVxyXG4gICAgICovXHJcbiAgICB0aGlzLmxpc3RlbmVyRm4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XHJcbiAgICAgIC8qXHJcbiAgICAgICAqIGhhbmRsZSBjbGljayBvdXRzaWRlXHJcbiAgICAgICAqL1xyXG4gICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgISEhdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5jb250YWlucyhlLnRhcmdldCkpIHtcclxuICAgICAgICB0aGlzLmV4cGFuZFN0YXRlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgLy8gR2V0IHRoZSBwYXJlbnQgY29udGFpbmVyIGVsZW1lbnRcclxuICAgICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcuY29yZS1idXR0b24tZ3JvdXAtdm5zLWNvbnRhaW5lcicpO1xyXG5cclxuICAgICAgLy8gQ2hlY2sgaWYgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyB0aGUgbGFzdCBjaGlsZCBvZiB0aGUgcGFyZW50IGNvbnRhaW5lclxyXG4gICAgICBpZiAocGFyZW50RWxlbWVudCAmJiBwYXJlbnRFbGVtZW50Lmxhc3RFbGVtZW50Q2hpbGQgPT09IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgIHRoaXMuaXNMYXN0Q2hpbGRPZkdyb3VwID0gdHJ1ZTtcclxuICAgICAgICAvLyBBZGQgYSBjbGFzcyBvciBwZXJmb3JtIGFueSBvcGVyYXRpb24geW91IG5lZWRcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2xhc3QtY2hpbGQnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmlzTGFzdENoaWxkT2ZHcm91cCA9IGZhbHNlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmFjdGlvblNlcnZpY2UuZGVidWdnaW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmRlYnVnZ2luZyA9IHgpXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2xpY2tTdHJlYW0kLnBpcGUoXHJcbiAgICAgICAgICBidWZmZXIodGhpcy5jbGlja1N0cmVhbSQucGlwZShkZWJvdW5jZVRpbWUoMjUwKSkpLFxyXG4gICAgICAgICAgbWFwKGNsaWNrcyA9PiBjbGlja3MubGVuZ3RoKSxcclxuICAgICAgICAgIGZpbHRlcihjbGlja3NMZW5ndGggPT4gY2xpY2tzTGVuZ3RoID49IDUpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pY29uU3ZnID0gdGhpcy5hY3Rpb25TZXJ2aWNlLmFjdGlvbk1hcC5nZXQodGhpcy5kYXRhLmNvZGUpPy5pY29uU3ZnXHJcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uU2VydmljZS5zaG93RWRpdFN2ZyQubmV4dCh0cnVlKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIGlmICh0aGlzLmRhdGEuaXNEcm9wZG93bikge1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuZGF0YS5jb2RlKSB7XHJcbiAgICAgICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfRFJPUERPV05fUFJJTlQ6XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICAgIHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5oZWFkZXJCdXR0b25QcmludERyb3Bkb3duT3B0aW9ucyQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLmRyb3Bkb3duT3B0aW9ucyA9IHhcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0RST1BET1dOX1NFVF9XT1JLX1NDSEVEVUxFOlxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgICB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaGVhZGVyQnV0dG9uU2V0V29ya1NjaGVkdWxlRHJvcGRvd25PcHRpb25zJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuZHJvcGRvd25PcHRpb25zID0geFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICBvbkJ1dHRvbkNsaWNrKCk6IHZvaWQge1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwib25CdXR0b25DbGljaz09PT09PT09PT09PT09PT09PT09PT09PT5cIilcclxuXHJcbiAgICB0aGlzLmNsaWNrU3RyZWFtJC5uZXh0KGNyeXB0by5yYW5kb21VVUlEKCkpO1xyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuaXNIZWFkZXIpIHtcclxuICAgICAgY29uc3QgYWN0aW9uQ29kZSA9IHRoaXMuZGF0YS5jb2RlO1xyXG4gICAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFjdGlvblNlcnZpY2UuYWN0aW9uTWFwLmdldChhY3Rpb25Db2RlKTtcclxuICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmNsaWNrZWRJdGVtJC5uZXh0KGFjdGlvbilcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oaWRkZW4pIHJldHVybjtcclxuXHJcbiAgICBpZiAoIXRoaXMuZGF0YS5pc0hlYWRlcikge1xyXG4gICAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodGhpcy5kYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmRhdGE/LmlzRHJvcGRvd24pIHtcclxuICAgICAgICB0aGlzLmV4cGFuZFN0YXRlID0gIXRoaXMuZXhwYW5kU3RhdGU7ICBcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGVidWdnaW5nKSB7XHJcbiAgICAgICAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodGhpcy5kYXRhKTsgICAgXHJcbiAgICAgICAgfSAgICBcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DaGlsZENsaWNrKGl0ZW06IElDb3JlQnV0dG9uRHJvcGRvd25PcHRpb24sIGU6IGFueSkge1xyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICghdGhpcy5kZWJ1Z2dpbmcgJiYgISF0aGlzLmRhdGE/LmlzRHJvcGRvd24pIHtcclxuICAgICAgdGhpcy5kYXRhLmNoaWxkQ29kZUNsaWNrZWQgPSBpdGVtLmNoaWxkQ29kZTtcclxuICAgICAgdGhpcy5idXR0b25DbGljay5lbWl0KHRoaXMuZGF0YSk7XHJcbiAgICAgIHRoaXMuZXhwYW5kU3RhdGUgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjb3JlLWJ1dHRvbi12bnMtY29udGFpbmVyXCIgI2NvbnRhaW5lciBzdHlsZT1cImhlaWdodDogMzBweDtcIiBbY2xhc3MuYWxwaGEtaGVhZGVyLWJ1dHRvbl09XCIhIWRhdGEuaXNIZWFkZXJcIlxyXG4gICAgW2NsYXNzLmFscGhhLW5vbi1oZWFkZXItYnRuXT1cIiFkYXRhLmlzSGVhZGVyXCIgW2FwcFRvb2x0aXBdPVwiZGF0YS5jYXB0aW9uIHwgdHJhbnNsYXRlOiBsYW5nXCJcclxuICAgIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrKClcIiBbbmdTdHlsZV09XCJ7IFxyXG4gICAgICAgICAgICB3aWR0aDogISFkYXRhLmlzSGVhZGVyID8gKGRhdGEud2l0aERpdmlkZXIgPyAyICogaGVpZ2h0ICsgJ3B4JyA6IGhlaWdodCArICdweCcpIDogJ2F1dG8nLFxyXG4gICAgICAgIH1cIj5cclxuXHJcblxyXG4gICAgQGlmICghIWRhdGEuaXNIZWFkZXIpIHtcclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbi13cmFwcGVyXCIgW2NsYXNzLnBvaW50ZXJdPVwiIWhpZGRlblwiIFtjbGFzcy5sYXN0LWNoaWxkXT1cImlzTGFzdENoaWxkT2ZHcm91cFwiIFtjbGFzcy50ZW1wb3JhcnktdW5hdmFpbGFibGVdPVwiISFoaWRkZW5cIj5cclxuXHJcbiAgICAgICAgICAgIDwhLS0gQGlmICghaWNvblN2ZyB8fCAhaWNvblN2Zz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIDxpIHNyYz1cIlwiIFtjbGFzc109XCJkYXRhLmljb25DbGFzc1wiIFtjbGFzcy50ZW1wb3JhcnktdW5hdmFpbGFibGVdPVwiISFoaWRkZW5cIj48L2k+XHJcbiAgICAgICAgICAgIH0gQGVsc2UgeyAtLT5cclxuICAgICAgICAgICAgPGkgW2NsYXNzLnRlbXBvcmFyeS11bmF2YWlsYWJsZV09XCIhIWhpZGRlblwiIHN0eWxlPVwiZGlzcGxheTogaW5saW5lLWZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCIgW2lubmVySHRtbF09XCIoaWNvblN2ZyB8fCBkZWZhdWx0U3ZnKSB8IHN0cmluZ0h0bWxcIj5cclxuICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICA8IS0tIH0gLS0+XHJcbiAgICBcclxuICAgICAgICAgICAgQGlmICghIWRhdGEuaXNEcm9wZG93bikge1xyXG4gICAgICAgICAgICA8ZGl2ICNkcm9wZG93biBjbGFzcz1cImhlYWRlci1idXR0b24tZHJvcGRvd24td3JhcHBlclwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogISFleHBhbmRTdGF0ZSA/ICdibG9jaycgOiAnbm9uZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aDogJzEwMHB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogZG9tU2VydmljZS5nZXRNYXhaSW5kZXgoKSArIDFcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBkYXRhLmRyb3Bkb3duT3B0aW9ucyE7IHRyYWNrIGl0ZW0pIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItYnV0dG9uLWRyb3Bkb3duLWxpbmVcIiAoY2xpY2spPVwib25DaGlsZENsaWNrKGl0ZW0sICRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiaXRlbS5jaGlsZEljb25XcmFwcGVyQ2xhc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIml0ZW0uY2hpbGRJY29uQ2xhc3NcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiIFthcHBUb29sdGlwXT1cIml0ZW0uY2hpbGRDYXB0aW9uQ29kZSB8IHRyYW5zbGF0ZTogbGFuZ1wiPnt7IGl0ZW0uY2hpbGRDYXB0aW9uQ29kZSB8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZTogbGFuZyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgXHJcbiAgICAgICAgICAgIEBpZiAoISFzaG93Q2FwdGlvbiB8fCAhIWRhdGEuc2hvd0NhcHRpb24pIHtcclxuICAgICAgICAgICAgPHNwYW4gW2NsYXNzLnRlbXBvcmFyeS11bmF2YWlsYWJsZV09XCIhIWhpZGRlblwiIGNsYXNzPVwiYnV0dG9uLWNhcHRpb25cIj57eyBkYXRhLmNhcHRpb24gfCB0cmFuc2xhdGU6IGxhbmdcclxuICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgIEBpZiAoISFkYXRhLndpdGhEaXZpZGVyKSB7XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7IGhlaWdodDogaGVpZ2h0ICsgJ3B4JywgZGlzcGxheTogJ2lubGluZS1ibG9jaycgfVwiIGNsYXNzPVwic2VwYXJhdG9yXCI+PC9kaXY+XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICB9IEBlbHNlIHtcclxuXHJcblxyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtjbGFzcy50ZW1wb3JhcnktdW5hdmFpbGFibGVdPVwiISFoaWRkZW5cIiBbY2xhc3MubGFzdC1jaGlsZF09XCJpc0xhc3RDaGlsZE9mR3JvdXBcIiBjbGFzcz1cImJ0bi1mb3ItZm9ybSBidG4gYnRuLXNlY29uZGFyeVwiPnt7IGRhdGEuY2FwdGlvbiB8IHRyYW5zbGF0ZTogbGFuZ1xyXG4gICAgICAgICAgICAgICAgfX08L2J1dHRvbj5cclxuXHJcbiAgICB9XHJcblxyXG5cclxuPC9kaXY+Il19
|
|
@@ -64,7 +64,7 @@ export class CoreConfirmDialogComponent extends BaseComponent {
|
|
|
64
64
|
this.dialogService.reason$.next('');
|
|
65
65
|
}
|
|
66
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreConfirmDialogComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.DialogService }, { token: i3.RoutingService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
67
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreConfirmDialogComponent, isStandalone: true, selector: "core-confirm-dialog", inputs: { showingUp: "showingUp" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-confirm-dialog-container inter-font\">\r\n <div class=\"modal-container\" *ngIf=\"show\">\r\n <div class=\"modal-content\"
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: CoreConfirmDialogComponent, isStandalone: true, selector: "core-confirm-dialog", inputs: { showingUp: "showingUp" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-confirm-dialog-container inter-font\">\r\n <div class=\"modal-container\" *ngIf=\"show\">\r\n <!-- <div class=\"modal-content\"> -->\r\n <!-- <div class=\"modal fade show\" style=\"display: block;\">\r\n <div class=\"modal-dialog\"> -->\r\n <div class=\"modal-content-root pt0\">\r\n <div class=\"modal-header\">\r\n\r\n <core-page-header [title]=\"title\" [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n <button type=\"button\" class=\"close\" [ngStyle]=\"{\r\n border: 'none',\r\n background: 'transparent',\r\n fontSize: '28px'\r\n }\">\r\n <span (click)=\"close()\">\u00D7</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body mb50\">{{ body | translate: lang }}</div>\r\n <ul *ngIf=\"!!informationLines?.length\">\r\n <li *ngFor=\"let line of informationLines\">\r\n {{ line }}\r\n </li>\r\n </ul>\r\n <div class=\"p15 d-flex d-flex-center\">\r\n <textarea [(ngModel)]=\"reason\" (ngModelChange)=\"onReasonEvent($event)\" class=\"form-control hidden-input\" [class.shown]=\"showingUp === true\" [rows]=\"'5'\" [ngStyle]=\"{ height: 'unset' }\"></textarea>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <!-- <button (click)=\"onConfirm()\" type=\"button\" class=\"btn btn-secondary\" *ngIf=\"!!!showCancelOnly\">{{ okButtonText | translate: lang }}</button>\r\n <button (click)=\"close()\" type=\"button\" class=\"btn btn-primary\">{{ cancelButtonText | translate: lang }}</button> -->\r\n <button type=\"button\" (click)=\"close()\" class=\"btn-for-form btn btn-secondary\">{{ cancelButtonText | translate: lang}}</button>\r\n <button type=\"button\" (click)=\"onConfirm()\" class=\"btn-for-form last-child btn btn-secondary\">{{ okButtonText | translate: lang}}</button>\r\n </div>\r\n </div>\r\n <!-- </div>\r\n </div>\r\n </div> -->\r\n </div>\r\n</div>", styles: [".core-confirm-dialog-container{--z-index: 9999999999;position:absolute;z-index:var(--z-index);font-size:13px}.core-confirm-dialog-container .hidden-input{display:none}.core-confirm-dialog-container .shown{display:block}.core-confirm-dialog-container .modal-header{padding-top:0;padding-bottom:0}.core-confirm-dialog-container ul{display:block;max-height:300px;overflow-y:auto}.core-confirm-dialog-container .pt0{padding-top:0!important}.core-confirm-dialog-container .mb50{margin-bottom:50px!important}.core-confirm-dialog-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-confirm-dialog-container button.last-child{background-color:#000;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: CorePageHeaderComponent, selector: "core-page-header", inputs: ["instanceNumber", "shownItems", "title", "hideButtonGroup"], outputs: ["buttonClick"] }] }); }
|
|
68
68
|
}
|
|
69
69
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreConfirmDialogComponent, decorators: [{
|
|
70
70
|
type: Component,
|
|
@@ -73,11 +73,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
73
73
|
TranslatePipe,
|
|
74
74
|
FormsModule,
|
|
75
75
|
CorePageHeaderComponent
|
|
76
|
-
], template: "<div #container class=\"core-confirm-dialog-container inter-font\">\r\n <div class=\"modal-container\" *ngIf=\"show\">\r\n <div class=\"modal-content\"
|
|
76
|
+
], template: "<div #container class=\"core-confirm-dialog-container inter-font\">\r\n <div class=\"modal-container\" *ngIf=\"show\">\r\n <!-- <div class=\"modal-content\"> -->\r\n <!-- <div class=\"modal fade show\" style=\"display: block;\">\r\n <div class=\"modal-dialog\"> -->\r\n <div class=\"modal-content-root pt0\">\r\n <div class=\"modal-header\">\r\n\r\n <core-page-header [title]=\"title\" [hideButtonGroup]=\"true\"></core-page-header>\r\n\r\n <button type=\"button\" class=\"close\" [ngStyle]=\"{\r\n border: 'none',\r\n background: 'transparent',\r\n fontSize: '28px'\r\n }\">\r\n <span (click)=\"close()\">\u00D7</span>\r\n </button>\r\n </div>\r\n <div class=\"modal-body mb50\">{{ body | translate: lang }}</div>\r\n <ul *ngIf=\"!!informationLines?.length\">\r\n <li *ngFor=\"let line of informationLines\">\r\n {{ line }}\r\n </li>\r\n </ul>\r\n <div class=\"p15 d-flex d-flex-center\">\r\n <textarea [(ngModel)]=\"reason\" (ngModelChange)=\"onReasonEvent($event)\" class=\"form-control hidden-input\" [class.shown]=\"showingUp === true\" [rows]=\"'5'\" [ngStyle]=\"{ height: 'unset' }\"></textarea>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <!-- <button (click)=\"onConfirm()\" type=\"button\" class=\"btn btn-secondary\" *ngIf=\"!!!showCancelOnly\">{{ okButtonText | translate: lang }}</button>\r\n <button (click)=\"close()\" type=\"button\" class=\"btn btn-primary\">{{ cancelButtonText | translate: lang }}</button> -->\r\n <button type=\"button\" (click)=\"close()\" class=\"btn-for-form btn btn-secondary\">{{ cancelButtonText | translate: lang}}</button>\r\n <button type=\"button\" (click)=\"onConfirm()\" class=\"btn-for-form last-child btn btn-secondary\">{{ okButtonText | translate: lang}}</button>\r\n </div>\r\n </div>\r\n <!-- </div>\r\n </div>\r\n </div> -->\r\n </div>\r\n</div>", styles: [".core-confirm-dialog-container{--z-index: 9999999999;position:absolute;z-index:var(--z-index);font-size:13px}.core-confirm-dialog-container .hidden-input{display:none}.core-confirm-dialog-container .shown{display:block}.core-confirm-dialog-container .modal-header{padding-top:0;padding-bottom:0}.core-confirm-dialog-container ul{display:block;max-height:300px;overflow-y:auto}.core-confirm-dialog-container .pt0{padding-top:0!important}.core-confirm-dialog-container .mb50{margin-bottom:50px!important}.core-confirm-dialog-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-confirm-dialog-container button.last-child{background-color:#000;color:#fff}\n"] }]
|
|
77
77
|
}], ctorParameters: () => [{ type: i1.MultiLanguageService }, { type: i2.DialogService }, { type: i3.RoutingService }], propDecorators: { showingUp: [{
|
|
78
78
|
type: Input
|
|
79
79
|
}], container: [{
|
|
80
80
|
type: ViewChild,
|
|
81
81
|
args: ['container']
|
|
82
82
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb25maXJtLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1jb25maXJtLWRpYWxvZy9jb3JlLWNvbmZpcm0tZGlhbG9nL2NvcmUtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtY29uZmlybS1kaWFsb2cvY29yZS1jb25maXJtLWRpYWxvZy9jb3JlLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTZCLFNBQVMsRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDOzs7Ozs7O0FBYzdHLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxhQUFhO0lBZTNELFlBQ2tCLEdBQXlCLEVBQ2pDLGFBQTRCLEVBQzVCLGNBQThCO1FBRXRDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUpLLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1C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eyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCwgT25EZXN0cm95LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSBcImFscGhhLWdsb2JhbC1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgUm91dGluZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yb3V0aW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvcmVQYWdlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS1wYWdlLWhlYWRlci9jb3JlLXBhZ2UtaGVhZGVyL2NvcmUtcGFnZS1oZWFkZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1jb25maXJtLWRpYWxvZycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb3JlUGFnZUhlYWRlckNvbXBvbmVudFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtY29uZmlybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvcmUtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUNvbmZpcm1EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBzaG93aW5nVXAhOiBib29sZWFuO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHNob3chOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG5cclxuICBva0J1dHRvblRleHQ6IEVudW1UcmFuc2xhdGVLZXkgPSBFbnVtVHJhbnNsYXRlS2V5LlVJX0NPUkVfQ09ORklSTV9ESUFMT0dfQlVUVE9OX1NVUkU7IC8vIERFRkFVTFRcclxuICBjYW5jZWxCdXR0b25UZXh0OiBFbnVtVHJhbnNsYXRlS2V5ID0gRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX0NPTkZJUk1fRElBTE9HX0JVVFRPTl9DQU5DRUw7IC8vIERFRkFVTFRcclxuICB0aXRsZSE6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgYm9keSE6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgc2hvd0NhbmNlbE9ubHkhOiBib29sZWFuO1xyXG4gIGluZm9ybWF0aW9uTGluZXMhOiBzdHJpbmdbXTtcclxuICByZWFzb246IHN0cmluZyA9ICcnO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGluZ1NlcnZpY2U6IFJvdXRpbmdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtbHMpO1xyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0NvbmZpcm1EaWFsb2ckLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICB0aGlzLnNob3cgPSB4XHJcbiAgICAgICAgLy8gU3RvcCBuYXZpZ2F0aW5nIHByb3BlcnR5IHRvIHNob3cgb3BhY2l0eSAxIHdoaWxlIHNob3dDb25maXJtRGlhbG9nJCBjaGFuZ2VzIFxyXG4gICAgICAgIHRoaXMucm91dGluZ1NlcnZpY2UubmF2aWdhdGluZyQubmV4dChmYWxzZSlcclxuICAgICAgfSlcclxuICAgIClcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UudGl0bGUkLnN1YnNjcmliZSh4ID0+IHRoaXMudGl0bGUgPSB4KVxyXG4gICAgKVxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5ib2R5JC5zdWJzY3JpYmUoeCA9PiB0aGlzLmJvZHkgPSB4KVxyXG4gICAgKVxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5va0J1dHRvblRleHQkLnN1YnNjcmliZSh4ID0+IHRoaXMub2tCdXR0b25UZXh0ID0geClcclxuICAgIClcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuY2FuY2VsQnV0dG9uVGV4dCQuc3Vic2NyaWJlKHggPT4gdGhpcy5jYW5jZWxCdXR0b25UZXh0ID0geClcclxuICAgIClcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0NhbmNlbE9ubHkkLnN1YnNjcmliZSh4ID0+IHRoaXMuc2hvd0NhbmNlbE9ubHkgPSB4KVxyXG4gICAgKVxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5pbmZvcm1hdGlvbkxpbmVzJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmluZm9ybWF0aW9uTGluZXMgPSB4KVxyXG4gICAgKVxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIGRpYWxvZ1NlcnZpY2UucmVhc29uJC5zdWJzY3JpYmUoeCA9PiB0aGlzLnJlYXNvbiA9IHgpXHJcbiAgICApXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgZGlhbG9nU2VydmljZS5zaG93aW5nVXAkLnN1YnNjcmliZSh4ID0+IHRoaXMuc2hvd2luZ1VwID0geClcclxuICAgIClcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHZhciB0ZXh0YXJlYUlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInRleHRhcmVhLnNob3dpbmdVcFwiKTtcclxuICAgIHRleHRhcmVhSW5wdXQuZm9yRWFjaCgodGV4dGFyZWEpID0+e1xyXG4gICAgICB0ZXh0YXJlYS50ZXh0Q29udGVudCA9IFwiXCJcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93Q29uZmlybURpYWxvZyQubmV4dChmYWxzZSk7XHJcblxyXG4gICAgLy8gQ2xlYXIgdGhlIG90aGVyIHN0YXRlc1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnJlc2V0U2VydmljZSgpXHJcbiAgfVxyXG5cclxuICBvbkNvbmZpcm0oKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0NvbmZpcm1EaWFsb2ckLm5leHQoZmFsc2UpO1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNhbkRlYWN0aXZhdGUkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29uZmlybWVkJC5uZXh0KHtcclxuICAgICAgLi4udGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbmZpcm1lZCQudmFsdWUhLFxyXG4gICAgICBjb25maXJtZWQ6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25SZWFzb25FdmVudChlOiBhbnkpe1xyXG4gICAgaWYoISFlKXtcclxuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnJlYXNvbiQubmV4dCh0aGlzLnJlYXNvbilcclxuICAgIH1cclxuICB9XHJcbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMubWFwKHggPT4geD8udW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UucmVzZXRTZXJ2aWNlKCk7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2UucmVhc29uJC5uZXh0KCcnKVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiAjY29udGFpbmVyIGNsYXNzPVwiY29yZS1jb25maXJtLWRpYWxvZy1jb250YWluZXIgaW50ZXItZm9udFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRhaW5lclwiICpuZ0lmPVwic2hvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlIHNob3dcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y29yZS1wYWdlLWhlYWRlciBbdGl0bGVdPVwidGl0bGVcIiBbaGlkZUJ1dHRvbkdyb3VwXT1cInRydWVcIj48L2NvcmUtcGFnZS1oZWFkZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZVwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICdub25lJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAnMjhweCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAoY2xpY2spPVwiY2xvc2UoKVwiPsOXPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPnt7IGJvZHkgfCB0cmFuc2xhdGU6IGxhbmcgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0lmPVwiISFpbmZvcm1hdGlvbkxpbmVzPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbGluZSBvZiBpbmZvcm1hdGlvbkxpbmVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAxNSBkLWZsZXggZC1mbGV4LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIFsobmdNb2RlbCldPVwicmVhc29uXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25SZWFzb25FdmVudCgkZXZlbnQpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaGlkZGVuLWlucHV0XCIgW2NsYXNzLnNob3duXT1cInNob3dpbmdVcCA9PT0gdHJ1ZVwiIFtyb3dzXT1cIic1J1wiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiAndW5zZXQnIH1cIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwib25Db25maXJtKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiICpuZ0lmPVwiISEhc2hvd0NhbmNlbE9ubHlcIj57eyBva0J1dHRvblRleHQgfCB0cmFuc2xhdGU6IGxhbmcgfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj57eyBjYW5jZWxCdXR0b25UZXh0IHwgdHJhbnNsYXRlOiBsYW5nIH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1jb25maXJtLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1jb25maXJtLWRpYWxvZy9jb3JlLWNvbmZpcm0tZGlhbG9nL2NvcmUtY29uZmlybS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWhpc3RhZmYtYWxwaGEvc3JjL2xpYi9hcHAvbGlicmFyaWVzL2NvcmUtY29uZmlybS1kaWFsb2cvY29yZS1jb25maXJtLWRpYWxvZy9jb3JlLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTZCLFNBQVMsRUFBYSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDOzs7Ozs7O0FBYzdHLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxhQUFhO0lBZTNELFlBQ2tCLEdBQXlCLEVBQ2pDLGFBQTRCLEVBQzVCLGNBQThCO1FBRXRDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUpLLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ2pDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1C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IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLWNvbXBvbmVudC9iYXNlL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW51bVRyYW5zbGF0ZUtleSB9IGZyb20gXCJhbHBoYS1nbG9iYWwtY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IFJvdXRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcm91dGluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb3JlUGFnZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUtcGFnZS1oZWFkZXIvY29yZS1wYWdlLWhlYWRlci9jb3JlLXBhZ2UtaGVhZGVyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtY29uZmlybS1kaWFsb2cnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQ29yZVBhZ2VIZWFkZXJDb21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVDb25maXJtRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgc2hvd2luZ1VwITogYm9vbGVhbjtcclxuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXIhOiBFbGVtZW50UmVmO1xyXG5cclxuICBzaG93ITogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgb2tCdXR0b25UZXh0OiBFbnVtVHJhbnNsYXRlS2V5ID0gRW51bVRyYW5zbGF0ZUtleS5VSV9DT1JFX0NPTkZJUk1fRElBTE9HX0JVVFRPTl9TVVJFOyAvLyBERUZBVUxUXHJcbiAgY2FuY2VsQnV0dG9uVGV4dDogRW51bVRyYW5zbGF0ZUtleSA9IEVudW1UcmFuc2xhdGVLZXkuVUlfQ09SRV9DT05GSVJNX0RJQUxPR19CVVRUT05fQ0FOQ0VMOyAvLyBERUZBVUxUXHJcbiAgdGl0bGUhOiBFbnVtVHJhbnNsYXRlS2V5O1xyXG4gIGJvZHkhOiBFbnVtVHJhbnNsYXRlS2V5O1xyXG4gIHNob3dDYW5jZWxPbmx5ITogYm9vbGVhbjtcclxuICBpbmZvcm1hdGlvbkxpbmVzITogc3RyaW5nW107XHJcbiAgcmVhc29uOiBzdHJpbmcgPSAnJztcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG92ZXJyaWRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRpbmdTZXJ2aWNlOiBSb3V0aW5nU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIobWxzKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dDb25maXJtRGlhbG9nJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgdGhpcy5zaG93ID0geFxyXG4gICAgICAgIC8vIFN0b3AgbmF2aWdhdGluZyBwcm9wZXJ0eSB0byBzaG93IG9wYWNpdHkgMSB3aGlsZSBzaG93Q29uZmlybURpYWxvZyQgY2hhbmdlcyBcclxuICAgICAgICB0aGlzLnJvdXRpbmdTZXJ2aWNlLm5hdmlnYXRpbmckLm5leHQoZmFsc2UpXHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnRpdGxlJC5zdWJzY3JpYmUoeCA9PiB0aGlzLnRpdGxlID0geClcclxuICAgIClcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuYm9keSQuc3Vic2NyaWJlKHggPT4gdGhpcy5ib2R5ID0geClcclxuICAgIClcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub2tCdXR0b25UZXh0JC5zdWJzY3JpYmUoeCA9PiB0aGlzLm9rQnV0dG9uVGV4dCA9IHgpXHJcbiAgICApXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmNhbmNlbEJ1dHRvblRleHQkLnN1YnNjcmliZSh4ID0+IHRoaXMuY2FuY2VsQnV0dG9uVGV4dCA9IHgpXHJcbiAgICApXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dDYW5jZWxPbmx5JC5zdWJzY3JpYmUoeCA9PiB0aGlzLnNob3dDYW5jZWxPbmx5ID0geClcclxuICAgIClcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UuaW5mb3JtYXRpb25MaW5lcyQuc3Vic2NyaWJlKHggPT4gdGhpcy5pbmZvcm1hdGlvbkxpbmVzID0geClcclxuICAgIClcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICBkaWFsb2dTZXJ2aWNlLnJlYXNvbiQuc3Vic2NyaWJlKHggPT4gdGhpcy5yZWFzb24gPSB4KVxyXG4gICAgKVxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIGRpYWxvZ1NlcnZpY2Uuc2hvd2luZ1VwJC5zdWJzY3JpYmUoeCA9PiB0aGlzLnNob3dpbmdVcCA9IHgpXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB2YXIgdGV4dGFyZWFJbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJ0ZXh0YXJlYS5zaG93aW5nVXBcIik7XHJcbiAgICB0ZXh0YXJlYUlucHV0LmZvckVhY2goKHRleHRhcmVhKSA9PntcclxuICAgICAgdGV4dGFyZWEudGV4dENvbnRlbnQgPSBcIlwiXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2xvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0NvbmZpcm1EaWFsb2ckLm5leHQoZmFsc2UpO1xyXG5cclxuICAgIC8vIENsZWFyIHRoZSBvdGhlciBzdGF0ZXNcclxuICAgIHRoaXMuZGlhbG9nU2VydmljZS5yZXNldFNlcnZpY2UoKVxyXG4gIH1cclxuXHJcbiAgb25Db25maXJtKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dDb25maXJtRGlhbG9nJC5uZXh0KGZhbHNlKTtcclxuICAgIHRoaXMuZGlhbG9nU2VydmljZS5jYW5EZWFjdGl2YXRlJC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbmZpcm1lZCQubmV4dCh7XHJcbiAgICAgIC4uLnRoaXMuZGlhbG9nU2VydmljZS5kaWFsb2dDb25maXJtZWQkLnZhbHVlISxcclxuICAgICAgY29uZmlybWVkOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uUmVhc29uRXZlbnQoZTogYW55KXtcclxuICAgIGlmKCEhZSl7XHJcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5yZWFzb24kLm5leHQodGhpcy5yZWFzb24pXHJcbiAgICB9XHJcbiAgfVxyXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLm1hcCh4ID0+IHg/LnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnJlc2V0U2VydmljZSgpO1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnJlYXNvbiQubmV4dCgnJylcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cImNvcmUtY29uZmlybS1kaWFsb2ctY29udGFpbmVyIGludGVyLWZvbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250YWluZXJcIiAqbmdJZj1cInNob3dcIj5cclxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+IC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJtb2RhbCBmYWRlIHNob3dcIiBzdHlsZT1cImRpc3BsYXk6IGJsb2NrO1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWRpYWxvZ1wiPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtY29udGVudC1yb290IHB0MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvcmUtcGFnZS1oZWFkZXIgW3RpdGxlXT1cInRpdGxlXCIgW2hpZGVCdXR0b25Hcm91cF09XCJ0cnVlXCI+PC9jb3JlLXBhZ2UtaGVhZGVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiY2xvc2VcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnbm9uZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogJzI4cHgnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cImNsb3NlKClcIj7Dlzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWJvZHkgbWI1MFwiPnt7IGJvZHkgfCB0cmFuc2xhdGU6IGxhbmcgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0lmPVwiISFpbmZvcm1hdGlvbkxpbmVzPy5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgbGluZSBvZiBpbmZvcm1hdGlvbkxpbmVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbGluZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAxNSBkLWZsZXggZC1mbGV4LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIFsobmdNb2RlbCldPVwicmVhc29uXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25SZWFzb25FdmVudCgkZXZlbnQpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgaGlkZGVuLWlucHV0XCIgW2NsYXNzLnNob3duXT1cInNob3dpbmdVcCA9PT0gdHJ1ZVwiIFtyb3dzXT1cIic1J1wiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiAndW5zZXQnIH1cIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIChjbGljayk9XCJvbkNvbmZpcm0oKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5XCIgKm5nSWY9XCIhISFzaG93Q2FuY2VsT25seVwiPnt7IG9rQnV0dG9uVGV4dCB8IHRyYW5zbGF0ZTogbGFuZyB9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPnt7IGNhbmNlbEJ1dHRvblRleHQgfCB0cmFuc2xhdGU6IGxhbmcgfX08L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xvc2UoKVwiIGNsYXNzPVwiYnRuLWZvci1mb3JtIGJ0biBidG4tc2Vjb25kYXJ5XCI+e3sgY2FuY2VsQnV0dG9uVGV4dCB8IHRyYW5zbGF0ZTogbGFuZ319PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25Db25maXJtKClcIiBjbGFzcz1cImJ0bi1mb3ItZm9ybSBsYXN0LWNoaWxkIGJ0biBidG4tc2Vjb25kYXJ5XCI+e3sgIG9rQnV0dG9uVGV4dCB8IHRyYW5zbGF0ZTogbGFuZ319PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|