@gravitee/ui-policy-studio-angular 7.56.1 → 7.57.0-angular15-bd79cd8
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/esm2020/lib/components/filter-pipe/gio-flter-connectors-by-mode.pipe.mjs +3 -3
- package/esm2020/lib/components/flow-details/gio-ps-flow-details.component.mjs +12 -12
- package/esm2020/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.component.mjs +6 -6
- package/esm2020/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.mjs +10 -10
- package/esm2020/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.component.mjs +6 -6
- package/esm2020/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.mjs +14 -14
- package/esm2020/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.component.mjs +21 -21
- package/esm2020/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.component.mjs +21 -21
- package/esm2020/lib/components/flows-menu/gio-ps-flows-menu.component.mjs +9 -9
- package/esm2020/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.mjs +19 -19
- package/esm2020/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.component.mjs +7 -7
- package/esm2020/lib/components/step-form/gio-ps-step-form.component.mjs +15 -15
- package/esm2020/lib/gio-policy-studio.component.mjs +8 -8
- package/esm2020/lib/gio-policy-studio.module.mjs +23 -27
- package/esm2020/lib/gio-policy-studio.service.mjs +13 -9
- package/fesm2015/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
- package/fesm2015/gravitee-ui-policy-studio-angular.mjs +123 -119
- package/fesm2015/gravitee-ui-policy-studio-angular.mjs.map +1 -1
- package/fesm2020/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
- package/fesm2020/gravitee-ui-policy-studio-angular.mjs +123 -119
- package/fesm2020/gravitee-ui-policy-studio-angular.mjs.map +1 -1
- package/lib/components/filter-pipe/gio-flter-connectors-by-mode.pipe.d.ts +1 -1
- package/lib/components/flow-details/gio-ps-flow-details.component.d.ts +1 -1
- package/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.component.d.ts +1 -1
- package/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.d.ts +2 -2
- package/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.component.d.ts +1 -1
- package/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.d.ts +4 -4
- package/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.component.d.ts +4 -4
- package/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.component.d.ts +5 -5
- package/lib/components/flow-form-dialog/gio-ps-flow-form-dialog-result.model.d.ts +1 -1
- package/lib/components/flows-menu/gio-ps-flows-menu.component.d.ts +1 -1
- package/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.d.ts +7 -7
- package/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.component.d.ts +3 -3
- package/lib/components/step-form/gio-ps-step-form.component.d.ts +3 -3
- package/lib/gio-policy-studio.component.d.ts +1 -1
- package/lib/gio-policy-studio.service.d.ts +3 -0
- package/lib/models/ConnectorsInfo.d.ts +1 -1
- package/lib/models/PolicySchemaFetcher.d.ts +2 -2
- package/lib/models/SaveOutput.d.ts +1 -1
- package/lib/models/flow/ApiType.d.ts +1 -1
- package/lib/models/flow/FlowExecution.d.ts +1 -1
- package/lib/models/flow/HttpMethod.d.ts +1 -1
- package/lib/models/flow/Selector.d.ts +4 -4
- package/lib/models/policy/Policy.d.ts +1 -1
- package/package.json +11 -11
- package/testing/lib/components/flow-details-phase/gio-ps-flow-details-phase.harness.d.ts +3 -3
- package/testing/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.harness.d.ts +1 -1
- package/testing/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness.d.ts +1 -1
- package/testing/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness.d.ts +1 -1
- package/testing/lib/components/step-form/gio-ps-step-form.harness.d.ts +1 -1
- package/testing/lib/models/ConnectorsInfo.d.ts +1 -1
- package/testing/lib/models/PolicySchemaFetcher.d.ts +2 -2
- package/testing/lib/models/SaveOutput.d.ts +1 -1
- package/testing/lib/models/flow/ApiType.d.ts +1 -1
- package/testing/lib/models/flow/FlowExecution.d.ts +1 -1
- package/testing/lib/models/flow/HttpMethod.d.ts +1 -1
- package/testing/lib/models/flow/Selector.d.ts +4 -4
- package/testing/lib/models/policy/Policy.d.ts +1 -1
- package/testing/package.json +0 -10
- /package/{gravitee-ui-policy-studio-angular.d.ts → index.d.ts} +0 -0
- /package/testing/{gravitee-ui-policy-studio-angular-testing.d.ts → index.d.ts} +0 -0
|
@@ -22,11 +22,11 @@ import { GioPolicyStudioFlowProxyFormDialogComponent, } from '../flow-form-dialo
|
|
|
22
22
|
import { GioPolicyStudioFlowExecutionFormDialogComponent, } from '../flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component';
|
|
23
23
|
import * as i0 from "@angular/core";
|
|
24
24
|
import * as i1 from "@angular/material/dialog";
|
|
25
|
-
import * as i2 from "@angular/
|
|
25
|
+
import * as i2 from "@angular/common";
|
|
26
26
|
import * as i3 from "@angular/material/button";
|
|
27
|
-
import * as i4 from "@
|
|
28
|
-
import * as i5 from "@angular/material/
|
|
29
|
-
import * as i6 from "@angular
|
|
27
|
+
import * as i4 from "@angular/material/tooltip";
|
|
28
|
+
import * as i5 from "@angular/material/icon";
|
|
29
|
+
import * as i6 from "@gravitee/ui-particles-angular";
|
|
30
30
|
export class GioPolicyStudioFlowsMenuComponent {
|
|
31
31
|
constructor(matDialog) {
|
|
32
32
|
this.matDialog = matDialog;
|
|
@@ -172,11 +172,11 @@ export class GioPolicyStudioFlowsMenuComponent {
|
|
|
172
172
|
.subscribe();
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
|
-
GioPolicyStudioFlowsMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
176
|
-
GioPolicyStudioFlowsMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
175
|
+
GioPolicyStudioFlowsMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioFlowsMenuComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
176
|
+
GioPolicyStudioFlowsMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GioPolicyStudioFlowsMenuComponent, selector: "gio-ps-flows-menu", inputs: { loading: "loading", apiType: "apiType", flowExecution: "flowExecution", flowsGroups: "flowsGroups", selectedFlow: "selectedFlow", entrypoints: "entrypoints" }, outputs: { selectedFlowChange: "selectedFlowChange", flowsGroupsChange: "flowsGroupsChange", flowExecutionChange: "flowExecutionChange" }, usesOnChanges: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n<div class=\"header\">\n <div class=\"header__label\">\n Flows <mat-icon svgIcon=\"gio:info\" matTooltip=\"Flows allow you to apply different policies on your API event phases\"></mat-icon>\n </div>\n <div class=\"header__configBtn\">\n <button class=\"header__configBtn_edit\" mat-stroked-button [disabled]=\"loading\" (click)=\"onConfigureExecution(flowExecution)\">\n <mat-icon svgIcon=\"gio:settings\"></mat-icon>\n </button>\n </div>\n</div>\n\n<div class=\"list\" *ngIf=\"!loading; else loadingList\">\n <div *ngFor=\"let flowsGroup of flowGroupMenuItems\" class=\"list__flowsGroup\">\n <div class=\"list__flowsGroup__header\">\n <div class=\"list__flowsGroup__header__label\">\n <mat-icon *ngIf=\"flowsGroup._icon\" [svgIcon]=\"flowsGroup._icon\"></mat-icon>\n <span>{{ flowsGroup.name }}</span>\n </div>\n <div class=\"list__flowsGroup__header__addBtn\">\n <button mat-button (click)=\"onAddFlow(flowsGroup)\"><mat-icon svgIcon=\"gio:plus\" matTooltip=\"New flow\"></mat-icon></button>\n </div>\n </div>\n\n <div\n *ngFor=\"let flow of flowsGroup.flows\"\n class=\"list__flowsGroup__flow\"\n [class.selected]=\"flow.selected\"\n (click)=\"selectFlow(flowsGroup._id, flow._id)\"\n (mouseout)=\"flow.mouseOver = false\"\n (mouseover)=\"flow.mouseOver = true\"\n >\n <div *ngIf=\"flow.name\" class=\"list__flowsGroup__flow__name\" [attr.title]=\"flow.name\">\n {{ flow.name }}\n </div>\n <div class=\"list__flowsGroup__flow__infos\">\n <div class=\"list__flowsGroup__flow__infos__badges\">\n <span *ngFor=\"let badge of flow.badges\" class=\"list__flowsGroup__flow__infos__badges__badge\" [ngClass]=\"badge.class\">{{\n badge.label\n }}</span>\n </div>\n <div class=\"list__flowsGroup__flow__infos__pathOrChannelLabel\">\n <span *ngIf=\"flow.pathOrChannelLabel; else emptyPathOrChannelLabel\" [attr.title]=\"flow.pathOrChannelLabel\">{{\n flow.pathOrChannelLabel\n }}</span>\n <ng-template #emptyPathOrChannelLabel>\n <em>Empty</em>\n </ng-template>\n </div>\n\n <span *ngIf=\"flow.hasCondition\" class=\"list__flowsGroup__flow__infos__conditionBadge gio-badge-neutral\" matTooltip=\"Conditioned\"\n ><mat-icon svgIcon=\"gio:if\"></mat-icon\n ></span>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #loadingList>\n <div class=\"loadingList\">\n <gio-loader></gio-loader>\n </div>\n</ng-template>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}:host{display:flex;height:100%;max-height:100%;flex-direction:column;padding-top:16px}.header{display:flex;align-items:center;padding:0 16px;margin-bottom:16px}.header__label{font-size:16px;font-weight:600;line-height:24px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;flex:1 1 auto;align-items:center;margin-bottom:0;gap:8px}.header__configBtn{margin-left:8px}.list{padding:0 16px;overflow-y:overlay}.list__flowsGroup{display:flex;flex-direction:column;padding-bottom:8px;gap:8px}.list__flowsGroup__header{display:flex;align-items:center;padding:8px 8px 8px 10px;border-radius:8px;background-color:#cdc5f7}.list__flowsGroup__header__label{font-size:14px;font-weight:600;line-height:20px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;overflow:hidden;flex:1 1 auto;align-items:center;gap:8px}.list__flowsGroup__header__label>mat-icon{width:22px;height:22px;flex:0 0 auto}.list__flowsGroup__header__label>span{display:-webkit-box;overflow:hidden;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-line-clamp:2}.list__flowsGroup__header__addBtn{margin-left:8px}.list__flowsGroup__flow{display:flex;overflow:hidden;height:68px;flex-direction:column;justify-content:center;padding:7px;border:1px solid #d3d5dc;border-radius:8px;gap:8px}.list__flowsGroup__flow:hover,.list__flowsGroup__flow.selected{padding:6px;border:2px solid #876fec;cursor:pointer}.list__flowsGroup__flow__name{overflow:hidden;padding-left:4px;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos{display:flex;align-items:center}.list__flowsGroup__flow__infos__badges{flex:0 0 auto}.list__flowsGroup__flow__infos__badges__badge{width:auto}.list__flowsGroup__flow__infos__pathOrChannelLabel{overflow:hidden;flex:1 1 auto;direction:rtl;text-align:left;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos__pathOrChannelLabel span{direction:ltr;unicode-bidi:bidi-override}.list__flowsGroup__flow__infos__conditionBadge{flex:0 0 auto}.loadingList{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.GioLoaderComponent, selector: "gio-loader" }] });
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioFlowsMenuComponent, decorators: [{
|
|
178
178
|
type: Component,
|
|
179
|
-
args: [{ selector: 'gio-ps-flows-menu', template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n<div class=\"header\">\n <div class=\"header__label\">\n Flows <mat-icon svgIcon=\"gio:info\" matTooltip=\"Flows allow you to apply different policies on your API event phases\"></mat-icon>\n </div>\n <div class=\"header__configBtn\">\n <button
|
|
179
|
+
args: [{ selector: 'gio-ps-flows-menu', template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n<div class=\"header\">\n <div class=\"header__label\">\n Flows <mat-icon svgIcon=\"gio:info\" matTooltip=\"Flows allow you to apply different policies on your API event phases\"></mat-icon>\n </div>\n <div class=\"header__configBtn\">\n <button class=\"header__configBtn_edit\" mat-stroked-button [disabled]=\"loading\" (click)=\"onConfigureExecution(flowExecution)\">\n <mat-icon svgIcon=\"gio:settings\"></mat-icon>\n </button>\n </div>\n</div>\n\n<div class=\"list\" *ngIf=\"!loading; else loadingList\">\n <div *ngFor=\"let flowsGroup of flowGroupMenuItems\" class=\"list__flowsGroup\">\n <div class=\"list__flowsGroup__header\">\n <div class=\"list__flowsGroup__header__label\">\n <mat-icon *ngIf=\"flowsGroup._icon\" [svgIcon]=\"flowsGroup._icon\"></mat-icon>\n <span>{{ flowsGroup.name }}</span>\n </div>\n <div class=\"list__flowsGroup__header__addBtn\">\n <button mat-button (click)=\"onAddFlow(flowsGroup)\"><mat-icon svgIcon=\"gio:plus\" matTooltip=\"New flow\"></mat-icon></button>\n </div>\n </div>\n\n <div\n *ngFor=\"let flow of flowsGroup.flows\"\n class=\"list__flowsGroup__flow\"\n [class.selected]=\"flow.selected\"\n (click)=\"selectFlow(flowsGroup._id, flow._id)\"\n (mouseout)=\"flow.mouseOver = false\"\n (mouseover)=\"flow.mouseOver = true\"\n >\n <div *ngIf=\"flow.name\" class=\"list__flowsGroup__flow__name\" [attr.title]=\"flow.name\">\n {{ flow.name }}\n </div>\n <div class=\"list__flowsGroup__flow__infos\">\n <div class=\"list__flowsGroup__flow__infos__badges\">\n <span *ngFor=\"let badge of flow.badges\" class=\"list__flowsGroup__flow__infos__badges__badge\" [ngClass]=\"badge.class\">{{\n badge.label\n }}</span>\n </div>\n <div class=\"list__flowsGroup__flow__infos__pathOrChannelLabel\">\n <span *ngIf=\"flow.pathOrChannelLabel; else emptyPathOrChannelLabel\" [attr.title]=\"flow.pathOrChannelLabel\">{{\n flow.pathOrChannelLabel\n }}</span>\n <ng-template #emptyPathOrChannelLabel>\n <em>Empty</em>\n </ng-template>\n </div>\n\n <span *ngIf=\"flow.hasCondition\" class=\"list__flowsGroup__flow__infos__conditionBadge gio-badge-neutral\" matTooltip=\"Conditioned\"\n ><mat-icon svgIcon=\"gio:if\"></mat-icon\n ></span>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #loadingList>\n <div class=\"loadingList\">\n <gio-loader></gio-loader>\n </div>\n</ng-template>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}:host{display:flex;height:100%;max-height:100%;flex-direction:column;padding-top:16px}.header{display:flex;align-items:center;padding:0 16px;margin-bottom:16px}.header__label{font-size:16px;font-weight:600;line-height:24px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;flex:1 1 auto;align-items:center;margin-bottom:0;gap:8px}.header__configBtn{margin-left:8px}.list{padding:0 16px;overflow-y:overlay}.list__flowsGroup{display:flex;flex-direction:column;padding-bottom:8px;gap:8px}.list__flowsGroup__header{display:flex;align-items:center;padding:8px 8px 8px 10px;border-radius:8px;background-color:#cdc5f7}.list__flowsGroup__header__label{font-size:14px;font-weight:600;line-height:20px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;overflow:hidden;flex:1 1 auto;align-items:center;gap:8px}.list__flowsGroup__header__label>mat-icon{width:22px;height:22px;flex:0 0 auto}.list__flowsGroup__header__label>span{display:-webkit-box;overflow:hidden;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-line-clamp:2}.list__flowsGroup__header__addBtn{margin-left:8px}.list__flowsGroup__flow{display:flex;overflow:hidden;height:68px;flex-direction:column;justify-content:center;padding:7px;border:1px solid #d3d5dc;border-radius:8px;gap:8px}.list__flowsGroup__flow:hover,.list__flowsGroup__flow.selected{padding:6px;border:2px solid #876fec;cursor:pointer}.list__flowsGroup__flow__name{overflow:hidden;padding-left:4px;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos{display:flex;align-items:center}.list__flowsGroup__flow__infos__badges{flex:0 0 auto}.list__flowsGroup__flow__infos__badges__badge{width:auto}.list__flowsGroup__flow__infos__pathOrChannelLabel{overflow:hidden;flex:1 1 auto;direction:rtl;text-align:left;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos__pathOrChannelLabel span{direction:ltr;unicode-bidi:bidi-override}.list__flowsGroup__flow__infos__conditionBadge{flex:0 0 auto}.loadingList{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center}\n"] }]
|
|
180
180
|
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { loading: [{
|
|
181
181
|
type: Input
|
|
182
182
|
}], apiType: [{
|
|
@@ -196,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
196
196
|
}], flowExecutionChange: [{
|
|
197
197
|
type: Output
|
|
198
198
|
}] } });
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93cy1tZW51L2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvd3MtbWVudS9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRSxPQUFPLEVBQ0wsNkNBQTZDLEdBRTlDLE1BQU0sd0ZBQXdGLENBQUM7QUFHaEcsT0FBTyxFQUNMLDJDQUEyQyxHQUU1QyxNQUFNLG9GQUFvRixDQUFDO0FBRTVGLE9BQU8sRUFDTCwrQ0FBK0MsR0FFaEQsTUFBTSwyRUFBMkUsQ0FBQzs7Ozs7Ozs7QUFzQm5GLE1BQU0sT0FBTyxpQ0FBaUM7SUE4QjVDLFlBQTZCLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUE1QjFDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFTaEIsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBR2hDLGlCQUFZLEdBQVksU0FBUyxDQUFDO1FBR2xDLGdCQUFXLEdBQW9CLEVBQUUsQ0FBQztRQUdsQyx1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RSxtQkFBbUI7Z0dBTXRCLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBSUEsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUlBLG1CQUFtQjtzQkFEekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEdJT19ESUFMT0dfV0lEVEggfSBmcm9tICdAZ3Jhdml0ZWUvdWktcGFydGljbGVzLWFuZ3VsYXInO1xuXG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEZsb3dHcm91cFZNLCBGbG93Vk0gfSBmcm9tICcuLi8uLi9naW8tcG9saWN5LXN0dWRpby5tb2RlbCc7XG5pbXBvcnQgeyBBcGlUeXBlLCBDaGFubmVsU2VsZWN0b3IsIENvbmRpdGlvblNlbGVjdG9yLCBDb25uZWN0b3JJbmZvLCBGbG93RXhlY3V0aW9uLCBIdHRwU2VsZWN0b3IsIE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9mbG93LXByb3h5LWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LXByb3h5LWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdCB9IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctZm9ybS1kaWFsb2ctcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LWV4ZWN1dGlvbi1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgRmxvd0dyb3VwTWVudVZNIGV4dGVuZHMgRmxvd0dyb3VwVk0ge1xuICBmbG93czogRmxvd01lbnVWTVtdO1xufVxuXG5pbnRlcmZhY2UgRmxvd01lbnVWTSBleHRlbmRzIEZsb3dWTSB7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICBtb3VzZU92ZXI6IGJvb2xlYW47XG4gIGJhZGdlczoge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgY2xhc3M6IHN0cmluZztcbiAgfVtdO1xuICBwYXRoT3JDaGFubmVsTGFiZWw6IHN0cmluZztcbiAgaGFzQ29uZGl0aW9uOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtZmxvd3MtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb0Zsb3dzTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFwaVR5cGUhOiBBcGlUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG93RXhlY3V0aW9uITogRmxvd0V4ZWN1dGlvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmxvd3NHcm91cHM6IEZsb3dHcm91cFZNW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRGbG93PzogRmxvd1ZNID0gdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbnRyeXBvaW50czogQ29ubmVjdG9ySW5mb1tdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZEZsb3dDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dWTT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGZsb3dzR3JvdXBzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGbG93R3JvdXBWTVtdPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmxvd0V4ZWN1dGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rmxvd0V4ZWN1dGlvbj4oKTtcblxuICBwdWJsaWMgZmxvd0dyb3VwTWVudUl0ZW1zOiBGbG93R3JvdXBNZW51Vk1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5mbG93c0dyb3VwcyB8fCBjaGFuZ2VzLnNlbGVjdGVkRmxvdykge1xuICAgICAgdGhpcy5mbG93R3JvdXBNZW51SXRlbXMgPSBjbG9uZURlZXAodGhpcy5mbG93c0dyb3VwcykubWFwKGZsb3dHcm91cCA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZmxvd0dyb3VwLFxuICAgICAgICAgIGZsb3dzOiBmbG93R3JvdXAuZmxvd3MubWFwKGZsb3cgPT4ge1xuICAgICAgICAgICAgY29uc3QgYmFkZ2VzOiBGbG93TWVudVZNWydiYWRnZXMnXSA9IFtdO1xuICAgICAgICAgICAgbGV0IHBhdGhPckNoYW5uZWxMYWJlbCA9ICcnO1xuICAgICAgICAgICAgbGV0IGhhc0NvbmRpdGlvbiA9IGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBNRVNTQUdFIEFQSSAtIENIQU5ORUxcbiAgICAgICAgICAgIGNvbnN0IGNoYW5uZWxTZWxlY3RvciA9IGZsb3cuc2VsZWN0b3JzPy5maW5kKHMgPT4gcy50eXBlID09PSAnQ0hBTk5FTCcpIGFzIENoYW5uZWxTZWxlY3RvcjtcbiAgICAgICAgICAgIGlmIChjaGFubmVsU2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0aW9uVG9CYWRnZTogUmVjb3JkPE9wZXJhdGlvbiwgc3RyaW5nPiA9IHtcbiAgICAgICAgICAgICAgICBQVUJMSVNIOiAnUFVCJyxcbiAgICAgICAgICAgICAgICBTVUJTQ1JJQkU6ICdTVUInLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAvLyBJZiBubyBvcGVyYXRpb25zIGFyZSBzZWxlY3RlZCwgYWxsIG9wZXJhdGlvbnMgYXJlIHZhbGlkXG4gICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbkJhZGdlcyA9IChcbiAgICAgICAgICAgICAgICAhY2hhbm5lbFNlbGVjdG9yLm9wZXJhdGlvbnMgfHwgaXNFbXB0eShjaGFubmVsU2VsZWN0b3Iub3BlcmF0aW9ucylcbiAgICAgICAgICAgICAgICAgID8gKFsnUFVCTElTSCcsICdTVUJTQ1JJQkUnXSBhcyBjb25zdClcbiAgICAgICAgICAgICAgICAgIDogY2hhbm5lbFNlbGVjdG9yLm9wZXJhdGlvbnNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5tYXAob3BlcmF0aW9uID0+ICh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogb3BlcmF0aW9uVG9CYWRnZVtvcGVyYXRpb25dLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6ICdnaW8tYmFkZ2UtbmV1dHJhbCcsXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubGFiZWwubG9jYWxlQ29tcGFyZShiLmxhYmVsKSk7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbkJhZGdlcyAmJiBiYWRnZXMucHVzaCguLi5vcGVyYXRpb25CYWRnZXMpO1xuICAgICAgICAgICAgICBwYXRoT3JDaGFubmVsTGFiZWwgPSBgJHtjaGFubmVsU2VsZWN0b3IuY2hhbm5lbH0ke2NoYW5uZWxTZWxlY3Rvci5jaGFubmVsT3BlcmF0b3IgPT09ICdTVEFSVFNfV0lUSCcgPyAnKionIDogJyd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSFRUUCBBUEkgLSBIVFRQXG4gICAgICAgICAgICBjb25zdCBodHRwU2VsZWN0b3IgPSBmbG93LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0hUVFAnKSBhcyBIdHRwU2VsZWN0b3I7XG4gICAgICAgICAgICBpZiAoaHR0cFNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgIC8vIEtlZXAgb25seSAyIGZpcnN0IGh0dHAgbWV0aG9kcyBhbmQgYWRkICtYIGJhZGdlIGlmIHRoZXJlIGFyZSBtb3JlXG4gICAgICAgICAgICAgIGNvbnN0IGh0dHBNZXRob2RzVG9LZWVwID0gaHR0cFNlbGVjdG9yLm1ldGhvZHM/LnNsaWNlKDAsIDIpO1xuICAgICAgICAgICAgICBjb25zdCBodHRwTWV0aG9kc0xlbmd0aCA9IGh0dHBTZWxlY3Rvci5tZXRob2RzPy5sZW5ndGg7XG4gICAgICAgICAgICAgIGh0dHBNZXRob2RzVG9LZWVwICYmXG4gICAgICAgICAgICAgICAgYmFkZ2VzLnB1c2goLi4uaHR0cE1ldGhvZHNUb0tlZXAubWFwKG1ldGhvZCA9PiAoeyBsYWJlbDogbWV0aG9kLCBjbGFzczogYGdpby1tZXRob2QtYmFkZ2UtJHttZXRob2QudG9Mb3dlckNhc2UoKX1gIH0pKSk7XG4gICAgICAgICAgICAgIGlmIChodHRwTWV0aG9kc0xlbmd0aCAmJiBodHRwTWV0aG9kc0xlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgICAgICBiYWRnZXM/LnB1c2goe1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGArJHtodHRwTWV0aG9kc0xlbmd0aCAtIDJ9YCxcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiAnZ2lvLWJhZGdlLW5ldXRyYWwnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChodHRwTWV0aG9kc0xlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGJhZGdlcz8ucHVzaCh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ0FMTCcsXG4gICAgICAgICAgICAgICAgICBjbGFzczogJ2dpby1iYWRnZS1uZXV0cmFsJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHBhdGhPckNoYW5uZWxMYWJlbCA9IGAke2h0dHBTZWxlY3Rvci5wYXRofSR7aHR0cFNlbGVjdG9yLnBhdGhPcGVyYXRvciA9PT0gJ1NUQVJUU19XSVRIJyA/ICcvKionIDogJyd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uU2VsZWN0b3IgPSBmbG93LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0NPTkRJVElPTicpIGFzIENvbmRpdGlvblNlbGVjdG9yO1xuICAgICAgICAgICAgaWYgKGNvbmRpdGlvblNlbGVjdG9yICYmIGNvbmRpdGlvblNlbGVjdG9yLmNvbmRpdGlvbikge1xuICAgICAgICAgICAgICBoYXNDb25kaXRpb24gPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5mbG93LFxuICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEZsb3c/Ll9pZCA9PT0gZmxvdy5faWQsXG4gICAgICAgICAgICAgIG1vdXNlT3ZlcjogZmFsc2UsXG4gICAgICAgICAgICAgIGJhZGdlcyxcbiAgICAgICAgICAgICAgcGF0aE9yQ2hhbm5lbExhYmVsLFxuICAgICAgICAgICAgICBoYXNDb25kaXRpb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdEZsb3coZ3JvdXBJZDogc3RyaW5nLCBmbG93SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZsb3cgPSB0aGlzLmZsb3dzR3JvdXBzLmZpbmQoZmcgPT4gZmcuX2lkID09PSBncm91cElkKT8uZmxvd3MuZmluZChmID0+IGYuX2lkID09PSBmbG93SWQpO1xuICAgIGlmIChmbG93KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmxvd0NoYW5nZS5lbWl0KGZsb3cpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkFkZEZsb3coZmxvd0dyb3VwOiBGbG93R3JvdXBWTSk6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9XG4gICAgICB0aGlzLmFwaVR5cGUgPT09ICdNRVNTQUdFJ1xuICAgICAgICA/IHRoaXMubWF0RGlhbG9nXG4gICAgICAgICAgICAub3BlbjxcbiAgICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dEYXRhLFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdFxuICAgICAgICAgICAgPihHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGZsb3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBlbnRyeXBvaW50czogdGhpcy5lbnRyeXBvaW50cyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgIDogdGhpcy5tYXREaWFsb2dcbiAgICAgICAgICAgIC5vcGVuPEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dEYXRhLCBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdD4oXG4gICAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICBmbG93OiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICAgICAgICAgIGlkOiAnZ2lvUHNGbG93Rm9ybURpYWxvZycsXG4gICAgICAgICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKCk7XG5cbiAgICBkaWFsb2dSZXN1bHRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoY3JlYXRlZE9yRWRpdGVkID0+IHtcbiAgICAgICAgICBpZiAoIWNyZWF0ZWRPckVkaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBlZGl0ZWRGbG93c0dyb3VwcyA9IGNsb25lRGVlcCh0aGlzLmZsb3dzR3JvdXBzKTtcblxuICAgICAgICAgIGNvbnN0IGZsb3dzR3JvdXBUb0VkaXQgPSBlZGl0ZWRGbG93c0dyb3Vwcy5maW5kKGZnID0+IGZnLl9pZCA9PT0gZmxvd0dyb3VwLl9pZCk7XG4gICAgICAgICAgaWYgKCFmbG93c0dyb3VwVG9FZGl0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZsb3cgZ3JvdXAgJHtmbG93R3JvdXAuX2lkfSBub3QgZm91bmRgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZmxvd3NHcm91cFRvRWRpdC5mbG93cy5wdXNoKGNyZWF0ZWRPckVkaXRlZCk7XG5cbiAgICAgICAgICB0aGlzLmZsb3dzR3JvdXBzQ2hhbmdlLmVtaXQoZWRpdGVkRmxvd3NHcm91cHMpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbG93Q2hhbmdlLmVtaXQoY3JlYXRlZE9yRWRpdGVkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25Db25maWd1cmVFeGVjdXRpb24oZmxvd0V4ZWN1dGlvbjogRmxvd0V4ZWN1dGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9IHRoaXMubWF0RGlhbG9nXG4gICAgICAub3BlbjxHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dEYXRhLCBGbG93RXhlY3V0aW9uIHwgdW5kZWZpbmVkPihcbiAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBmbG93RXhlY3V0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICBpZDogJ2dpb1BzRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2cnLFxuICAgICAgICAgIHdpZHRoOiBHSU9fRElBTE9HX1dJRFRILk1FRElVTSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgIC5hZnRlckNsb3NlZCgpO1xuXG4gICAgZGlhbG9nUmVzdWx0XG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGVkaXRlZCA9PiB7XG4gICAgICAgICAgaWYgKCFlZGl0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5mbG93RXhlY3V0aW9uQ2hhbmdlLmVtaXQoZWRpdGVkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICAgIFxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICAgIFxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gICAgXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuXG48ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2xhYmVsXCI+XG4gICAgRmxvd3MgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86aW5mb1wiIG1hdFRvb2x0aXA9XCJGbG93cyBhbGxvdyB5b3UgdG8gYXBwbHkgZGlmZmVyZW50IHBvbGljaWVzIG9uIHlvdXIgQVBJIGV2ZW50IHBoYXNlc1wiPjwvbWF0LWljb24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyX19jb25maWdCdG5cIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImhlYWRlcl9fY29uZmlnQnRuX2VkaXRcIlxuICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICAgIChjbGljayk9XCJvbkNvbmZpZ3VyZUV4ZWN1dGlvbihmbG93RXhlY3V0aW9uKVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86c2V0dGluZ3NcIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibGlzdFwiICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2UgbG9hZGluZ0xpc3RcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgZmxvd3NHcm91cCBvZiBmbG93R3JvdXBNZW51SXRlbXNcIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyX19sYWJlbFwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJmbG93c0dyb3VwLl9pY29uXCIgW3N2Z0ljb25dPVwiZmxvd3NHcm91cC5faWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPnt7IGZsb3dzR3JvdXAubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2hlYWRlcl9fYWRkQnRuXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkFkZEZsb3coZmxvd3NHcm91cClcIj48bWF0LWljb24gc3ZnSWNvbj1cImdpbzpwbHVzXCIgbWF0VG9vbHRpcD1cIk5ldyBmbG93XCI+PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGZsb3cgb2YgZmxvd3NHcm91cC5mbG93c1wiXG4gICAgICBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImZsb3cuc2VsZWN0ZWRcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdEZsb3coZmxvd3NHcm91cC5faWQsIGZsb3cuX2lkKVwiXG4gICAgICAobW91c2VvdXQpPVwiZmxvdy5tb3VzZU92ZXIgPSBmYWxzZVwiXG4gICAgICAobW91c2VvdmVyKT1cImZsb3cubW91c2VPdmVyID0gdHJ1ZVwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImZsb3cubmFtZVwiIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19fbmFtZVwiIFthdHRyLnRpdGxlXT1cImZsb3cubmFtZVwiPlxuICAgICAgICB7eyBmbG93Lm5hbWUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX2luZm9zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fYmFkZ2VzXCI+XG4gICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGJhZGdlIG9mIGZsb3cuYmFkZ2VzXCIgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fYmFkZ2VzX19iYWRnZVwiIFtuZ0NsYXNzXT1cImJhZGdlLmNsYXNzXCI+e3tcbiAgICAgICAgICAgIGJhZGdlLmxhYmVsXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19faW5mb3NfX3BhdGhPckNoYW5uZWxMYWJlbFwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmxvdy5wYXRoT3JDaGFubmVsTGFiZWw7IGVsc2UgZW1wdHlQYXRoT3JDaGFubmVsTGFiZWxcIiBbYXR0ci50aXRsZV09XCJmbG93LnBhdGhPckNoYW5uZWxMYWJlbFwiPnt7XG4gICAgICAgICAgICBmbG93LnBhdGhPckNoYW5uZWxMYWJlbFxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlQYXRoT3JDaGFubmVsTGFiZWw+XG4gICAgICAgICAgICA8ZW0+RW1wdHk8L2VtPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZmxvdy5oYXNDb25kaXRpb25cIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX2luZm9zX19jb25kaXRpb25CYWRnZSBnaW8tYmFkZ2UtbmV1dHJhbFwiIG1hdFRvb2x0aXA9XCJDb25kaXRpb25lZFwiXG4gICAgICAgICAgPjxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmlmXCI+PC9tYXQtaWNvblxuICAgICAgICA+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ0xpc3Q+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nTGlzdFwiPlxuICAgIDxnaW8tbG9hZGVyPjwvZ2lvLWxvYWRlcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93cy1tZW51L2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvd3MtbWVudS9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRSxPQUFPLEVBQ0wsNkNBQTZDLEdBRTlDLE1BQU0sd0ZBQXdGLENBQUM7QUFHaEcsT0FBTyxFQUNMLDJDQUEyQyxHQUU1QyxNQUFNLG9GQUFvRixDQUFDO0FBRTVGLE9BQU8sRUFDTCwrQ0FBK0MsR0FFaEQsTUFBTSwyRUFBMkUsQ0FBQzs7Ozs7Ozs7QUFzQm5GLE1BQU0sT0FBTyxpQ0FBaUM7SUE4QjVDLFlBQTZCLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUE1QjFDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFTaEIsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBR2hDLGlCQUFZLEdBQVksU0FBUyxDQUFDO1FBR2xDLGdCQUFXLEdBQW9CLEVBQUUsQ0FBQztRQUdsQyx1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RSxtQkFBbUI7Z0dBTXRCLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBSUEsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUlBLG1CQUFtQjtzQkFEekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEdJT19ESUFMT0dfV0lEVEggfSBmcm9tICdAZ3Jhdml0ZWUvdWktcGFydGljbGVzLWFuZ3VsYXInO1xuXG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEZsb3dHcm91cFZNLCBGbG93Vk0gfSBmcm9tICcuLi8uLi9naW8tcG9saWN5LXN0dWRpby5tb2RlbCc7XG5pbXBvcnQgeyBBcGlUeXBlLCBDaGFubmVsU2VsZWN0b3IsIENvbmRpdGlvblNlbGVjdG9yLCBDb25uZWN0b3JJbmZvLCBGbG93RXhlY3V0aW9uLCBIdHRwU2VsZWN0b3IsIE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9mbG93LXByb3h5LWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LXByb3h5LWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdCB9IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctZm9ybS1kaWFsb2ctcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LWV4ZWN1dGlvbi1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgRmxvd0dyb3VwTWVudVZNIGV4dGVuZHMgRmxvd0dyb3VwVk0ge1xuICBmbG93czogRmxvd01lbnVWTVtdO1xufVxuXG5pbnRlcmZhY2UgRmxvd01lbnVWTSBleHRlbmRzIEZsb3dWTSB7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICBtb3VzZU92ZXI6IGJvb2xlYW47XG4gIGJhZGdlczoge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgY2xhc3M6IHN0cmluZztcbiAgfVtdO1xuICBwYXRoT3JDaGFubmVsTGFiZWw6IHN0cmluZztcbiAgaGFzQ29uZGl0aW9uOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtZmxvd3MtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb0Zsb3dzTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFwaVR5cGUhOiBBcGlUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG93RXhlY3V0aW9uITogRmxvd0V4ZWN1dGlvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmxvd3NHcm91cHM6IEZsb3dHcm91cFZNW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRGbG93PzogRmxvd1ZNID0gdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbnRyeXBvaW50czogQ29ubmVjdG9ySW5mb1tdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZEZsb3dDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dWTT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGZsb3dzR3JvdXBzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGbG93R3JvdXBWTVtdPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmxvd0V4ZWN1dGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rmxvd0V4ZWN1dGlvbj4oKTtcblxuICBwdWJsaWMgZmxvd0dyb3VwTWVudUl0ZW1zOiBGbG93R3JvdXBNZW51Vk1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5mbG93c0dyb3VwcyB8fCBjaGFuZ2VzLnNlbGVjdGVkRmxvdykge1xuICAgICAgdGhpcy5mbG93R3JvdXBNZW51SXRlbXMgPSBjbG9uZURlZXAodGhpcy5mbG93c0dyb3VwcykubWFwKGZsb3dHcm91cCA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZmxvd0dyb3VwLFxuICAgICAgICAgIGZsb3dzOiBmbG93R3JvdXAuZmxvd3MubWFwKGZsb3cgPT4ge1xuICAgICAgICAgICAgY29uc3QgYmFkZ2VzOiBGbG93TWVudVZNWydiYWRnZXMnXSA9IFtdO1xuICAgICAgICAgICAgbGV0IHBhdGhPckNoYW5uZWxMYWJlbCA9ICcnO1xuICAgICAgICAgICAgbGV0IGhhc0NvbmRpdGlvbiA9IGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBNRVNTQUdFIEFQSSAtIENIQU5ORUxcbiAgICAgICAgICAgIGNvbnN0IGNoYW5uZWxTZWxlY3RvciA9IGZsb3cuc2VsZWN0b3JzPy5maW5kKHMgPT4gcy50eXBlID09PSAnQ0hBTk5FTCcpIGFzIENoYW5uZWxTZWxlY3RvcjtcbiAgICAgICAgICAgIGlmIChjaGFubmVsU2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0aW9uVG9CYWRnZTogUmVjb3JkPE9wZXJhdGlvbiwgc3RyaW5nPiA9IHtcbiAgICAgICAgICAgICAgICBQVUJMSVNIOiAnUFVCJyxcbiAgICAgICAgICAgICAgICBTVUJTQ1JJQkU6ICdTVUInLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAvLyBJZiBubyBvcGVyYXRpb25zIGFyZSBzZWxlY3RlZCwgYWxsIG9wZXJhdGlvbnMgYXJlIHZhbGlkXG4gICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbkJhZGdlcyA9IChcbiAgICAgICAgICAgICAgICAhY2hhbm5lbFNlbGVjdG9yLm9wZXJhdGlvbnMgfHwgaXNFbXB0eShjaGFubmVsU2VsZWN0b3Iub3BlcmF0aW9ucylcbiAgICAgICAgICAgICAgICAgID8gKFsnUFVCTElTSCcsICdTVUJTQ1JJQkUnXSBhcyBjb25zdClcbiAgICAgICAgICAgICAgICAgIDogY2hhbm5lbFNlbGVjdG9yLm9wZXJhdGlvbnNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5tYXAob3BlcmF0aW9uID0+ICh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogb3BlcmF0aW9uVG9CYWRnZVtvcGVyYXRpb25dLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6ICdnaW8tYmFkZ2UtbmV1dHJhbCcsXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubGFiZWwubG9jYWxlQ29tcGFyZShiLmxhYmVsKSk7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbkJhZGdlcyAmJiBiYWRnZXMucHVzaCguLi5vcGVyYXRpb25CYWRnZXMpO1xuICAgICAgICAgICAgICBwYXRoT3JDaGFubmVsTGFiZWwgPSBgJHtjaGFubmVsU2VsZWN0b3IuY2hhbm5lbH0ke2NoYW5uZWxTZWxlY3Rvci5jaGFubmVsT3BlcmF0b3IgPT09ICdTVEFSVFNfV0lUSCcgPyAnKionIDogJyd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSFRUUCBBUEkgLSBIVFRQXG4gICAgICAgICAgICBjb25zdCBodHRwU2VsZWN0b3IgPSBmbG93LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0hUVFAnKSBhcyBIdHRwU2VsZWN0b3I7XG4gICAgICAgICAgICBpZiAoaHR0cFNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgIC8vIEtlZXAgb25seSAyIGZpcnN0IGh0dHAgbWV0aG9kcyBhbmQgYWRkICtYIGJhZGdlIGlmIHRoZXJlIGFyZSBtb3JlXG4gICAgICAgICAgICAgIGNvbnN0IGh0dHBNZXRob2RzVG9LZWVwID0gaHR0cFNlbGVjdG9yLm1ldGhvZHM/LnNsaWNlKDAsIDIpO1xuICAgICAgICAgICAgICBjb25zdCBodHRwTWV0aG9kc0xlbmd0aCA9IGh0dHBTZWxlY3Rvci5tZXRob2RzPy5sZW5ndGg7XG4gICAgICAgICAgICAgIGh0dHBNZXRob2RzVG9LZWVwICYmXG4gICAgICAgICAgICAgICAgYmFkZ2VzLnB1c2goLi4uaHR0cE1ldGhvZHNUb0tlZXAubWFwKG1ldGhvZCA9PiAoeyBsYWJlbDogbWV0aG9kLCBjbGFzczogYGdpby1tZXRob2QtYmFkZ2UtJHttZXRob2QudG9Mb3dlckNhc2UoKX1gIH0pKSk7XG4gICAgICAgICAgICAgIGlmIChodHRwTWV0aG9kc0xlbmd0aCAmJiBodHRwTWV0aG9kc0xlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgICAgICBiYWRnZXM/LnB1c2goe1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGArJHtodHRwTWV0aG9kc0xlbmd0aCAtIDJ9YCxcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiAnZ2lvLWJhZGdlLW5ldXRyYWwnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChodHRwTWV0aG9kc0xlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGJhZGdlcz8ucHVzaCh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ0FMTCcsXG4gICAgICAgICAgICAgICAgICBjbGFzczogJ2dpby1iYWRnZS1uZXV0cmFsJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHBhdGhPckNoYW5uZWxMYWJlbCA9IGAke2h0dHBTZWxlY3Rvci5wYXRofSR7aHR0cFNlbGVjdG9yLnBhdGhPcGVyYXRvciA9PT0gJ1NUQVJUU19XSVRIJyA/ICcvKionIDogJyd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uU2VsZWN0b3IgPSBmbG93LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0NPTkRJVElPTicpIGFzIENvbmRpdGlvblNlbGVjdG9yO1xuICAgICAgICAgICAgaWYgKGNvbmRpdGlvblNlbGVjdG9yICYmIGNvbmRpdGlvblNlbGVjdG9yLmNvbmRpdGlvbikge1xuICAgICAgICAgICAgICBoYXNDb25kaXRpb24gPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5mbG93LFxuICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEZsb3c/Ll9pZCA9PT0gZmxvdy5faWQsXG4gICAgICAgICAgICAgIG1vdXNlT3ZlcjogZmFsc2UsXG4gICAgICAgICAgICAgIGJhZGdlcyxcbiAgICAgICAgICAgICAgcGF0aE9yQ2hhbm5lbExhYmVsLFxuICAgICAgICAgICAgICBoYXNDb25kaXRpb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdEZsb3coZ3JvdXBJZDogc3RyaW5nLCBmbG93SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZsb3cgPSB0aGlzLmZsb3dzR3JvdXBzLmZpbmQoZmcgPT4gZmcuX2lkID09PSBncm91cElkKT8uZmxvd3MuZmluZChmID0+IGYuX2lkID09PSBmbG93SWQpO1xuICAgIGlmIChmbG93KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmxvd0NoYW5nZS5lbWl0KGZsb3cpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkFkZEZsb3coZmxvd0dyb3VwOiBGbG93R3JvdXBWTSk6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9XG4gICAgICB0aGlzLmFwaVR5cGUgPT09ICdNRVNTQUdFJ1xuICAgICAgICA/IHRoaXMubWF0RGlhbG9nXG4gICAgICAgICAgICAub3BlbjxcbiAgICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dEYXRhLFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdFxuICAgICAgICAgICAgPihHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGZsb3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBlbnRyeXBvaW50czogdGhpcy5lbnRyeXBvaW50cyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgIDogdGhpcy5tYXREaWFsb2dcbiAgICAgICAgICAgIC5vcGVuPEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dEYXRhLCBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdD4oXG4gICAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICBmbG93OiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICAgICAgICAgIGlkOiAnZ2lvUHNGbG93Rm9ybURpYWxvZycsXG4gICAgICAgICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKCk7XG5cbiAgICBkaWFsb2dSZXN1bHRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoY3JlYXRlZE9yRWRpdGVkID0+IHtcbiAgICAgICAgICBpZiAoIWNyZWF0ZWRPckVkaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBlZGl0ZWRGbG93c0dyb3VwcyA9IGNsb25lRGVlcCh0aGlzLmZsb3dzR3JvdXBzKTtcblxuICAgICAgICAgIGNvbnN0IGZsb3dzR3JvdXBUb0VkaXQgPSBlZGl0ZWRGbG93c0dyb3Vwcy5maW5kKGZnID0+IGZnLl9pZCA9PT0gZmxvd0dyb3VwLl9pZCk7XG4gICAgICAgICAgaWYgKCFmbG93c0dyb3VwVG9FZGl0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZsb3cgZ3JvdXAgJHtmbG93R3JvdXAuX2lkfSBub3QgZm91bmRgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZmxvd3NHcm91cFRvRWRpdC5mbG93cy5wdXNoKGNyZWF0ZWRPckVkaXRlZCk7XG5cbiAgICAgICAgICB0aGlzLmZsb3dzR3JvdXBzQ2hhbmdlLmVtaXQoZWRpdGVkRmxvd3NHcm91cHMpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbG93Q2hhbmdlLmVtaXQoY3JlYXRlZE9yRWRpdGVkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25Db25maWd1cmVFeGVjdXRpb24oZmxvd0V4ZWN1dGlvbjogRmxvd0V4ZWN1dGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9IHRoaXMubWF0RGlhbG9nXG4gICAgICAub3BlbjxHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dEYXRhLCBGbG93RXhlY3V0aW9uIHwgdW5kZWZpbmVkPihcbiAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBmbG93RXhlY3V0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICBpZDogJ2dpb1BzRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2cnLFxuICAgICAgICAgIHdpZHRoOiBHSU9fRElBTE9HX1dJRFRILk1FRElVTSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgIC5hZnRlckNsb3NlZCgpO1xuXG4gICAgZGlhbG9nUmVzdWx0XG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGVkaXRlZCA9PiB7XG4gICAgICAgICAgaWYgKCFlZGl0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5mbG93RXhlY3V0aW9uQ2hhbmdlLmVtaXQoZWRpdGVkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICAgIFxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICAgIFxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gICAgXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuXG48ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2xhYmVsXCI+XG4gICAgRmxvd3MgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86aW5mb1wiIG1hdFRvb2x0aXA9XCJGbG93cyBhbGxvdyB5b3UgdG8gYXBwbHkgZGlmZmVyZW50IHBvbGljaWVzIG9uIHlvdXIgQVBJIGV2ZW50IHBoYXNlc1wiPjwvbWF0LWljb24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyX19jb25maWdCdG5cIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiaGVhZGVyX19jb25maWdCdG5fZWRpdFwiIG1hdC1zdHJva2VkLWJ1dHRvbiBbZGlzYWJsZWRdPVwibG9hZGluZ1wiIChjbGljayk9XCJvbkNvbmZpZ3VyZUV4ZWN1dGlvbihmbG93RXhlY3V0aW9uKVwiPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86c2V0dGluZ3NcIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibGlzdFwiICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2UgbG9hZGluZ0xpc3RcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgZmxvd3NHcm91cCBvZiBmbG93R3JvdXBNZW51SXRlbXNcIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyX19sYWJlbFwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJmbG93c0dyb3VwLl9pY29uXCIgW3N2Z0ljb25dPVwiZmxvd3NHcm91cC5faWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPnt7IGZsb3dzR3JvdXAubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2hlYWRlcl9fYWRkQnRuXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwib25BZGRGbG93KGZsb3dzR3JvdXApXCI+PG1hdC1pY29uIHN2Z0ljb249XCJnaW86cGx1c1wiIG1hdFRvb2x0aXA9XCJOZXcgZmxvd1wiPjwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgICpuZ0Zvcj1cImxldCBmbG93IG9mIGZsb3dzR3JvdXAuZmxvd3NcIlxuICAgICAgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93XCJcbiAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJmbG93LnNlbGVjdGVkXCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RGbG93KGZsb3dzR3JvdXAuX2lkLCBmbG93Ll9pZClcIlxuICAgICAgKG1vdXNlb3V0KT1cImZsb3cubW91c2VPdmVyID0gZmFsc2VcIlxuICAgICAgKG1vdXNlb3Zlcik9XCJmbG93Lm1vdXNlT3ZlciA9IHRydWVcIlxuICAgID5cbiAgICAgIDxkaXYgKm5nSWY9XCJmbG93Lm5hbWVcIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX25hbWVcIiBbYXR0ci50aXRsZV09XCJmbG93Lm5hbWVcIj5cbiAgICAgICAge3sgZmxvdy5uYW1lIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19faW5mb3NfX2JhZGdlc1wiPlxuICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBiYWRnZSBvZiBmbG93LmJhZGdlc1wiIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19faW5mb3NfX2JhZGdlc19fYmFkZ2VcIiBbbmdDbGFzc109XCJiYWRnZS5jbGFzc1wiPnt7XG4gICAgICAgICAgICBiYWRnZS5sYWJlbFxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX2luZm9zX19wYXRoT3JDaGFubmVsTGFiZWxcIj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImZsb3cucGF0aE9yQ2hhbm5lbExhYmVsOyBlbHNlIGVtcHR5UGF0aE9yQ2hhbm5lbExhYmVsXCIgW2F0dHIudGl0bGVdPVwiZmxvdy5wYXRoT3JDaGFubmVsTGFiZWxcIj57e1xuICAgICAgICAgICAgZmxvdy5wYXRoT3JDaGFubmVsTGFiZWxcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5UGF0aE9yQ2hhbm5lbExhYmVsPlxuICAgICAgICAgICAgPGVtPkVtcHR5PC9lbT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8c3BhbiAqbmdJZj1cImZsb3cuaGFzQ29uZGl0aW9uXCIgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fY29uZGl0aW9uQmFkZ2UgZ2lvLWJhZGdlLW5ldXRyYWxcIiBtYXRUb29sdGlwPVwiQ29uZGl0aW9uZWRcIlxuICAgICAgICAgID48bWF0LWljb24gc3ZnSWNvbj1cImdpbzppZlwiPjwvbWF0LWljb25cbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmdMaXN0PlxuICA8ZGl2IGNsYXNzPVwibG9hZGluZ0xpc3RcIj5cbiAgICA8Z2lvLWxvYWRlcj48L2dpby1sb2FkZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
package/esm2020/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.mjs
CHANGED
|
@@ -16,21 +16,21 @@
|
|
|
16
16
|
import { Component, Inject } from '@angular/core';
|
|
17
17
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
18
18
|
import { toLower, uniq } from 'lodash';
|
|
19
|
-
import {
|
|
19
|
+
import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
|
|
20
20
|
import { startWith, takeUntil } from 'rxjs/operators';
|
|
21
21
|
import { Subject } from 'rxjs';
|
|
22
22
|
import * as i0 from "@angular/core";
|
|
23
23
|
import * as i1 from "@angular/material/dialog";
|
|
24
|
-
import * as i2 from "@angular/
|
|
25
|
-
import * as i3 from "@angular/
|
|
26
|
-
import * as i4 from "@angular/material/
|
|
27
|
-
import * as i5 from "@angular/material/
|
|
28
|
-
import * as i6 from "@
|
|
29
|
-
import * as i7 from "
|
|
30
|
-
import * as i8 from "@angular/
|
|
31
|
-
import * as i9 from "@angular/
|
|
32
|
-
import * as i10 from "@angular
|
|
33
|
-
import * as i11 from "
|
|
24
|
+
import * as i2 from "@angular/common";
|
|
25
|
+
import * as i3 from "@angular/forms";
|
|
26
|
+
import * as i4 from "@angular/material/button";
|
|
27
|
+
import * as i5 from "@angular/material/tooltip";
|
|
28
|
+
import * as i6 from "@angular/material/form-field";
|
|
29
|
+
import * as i7 from "@angular/material/input";
|
|
30
|
+
import * as i8 from "@angular/material/chips";
|
|
31
|
+
import * as i9 from "@angular/material/icon";
|
|
32
|
+
import * as i10 from "@gravitee/ui-particles-angular";
|
|
33
|
+
import * as i11 from "../step-form/gio-ps-step-form.component";
|
|
34
34
|
const executionPhaseLabels = {
|
|
35
35
|
REQUEST: 'Request',
|
|
36
36
|
RESPONSE: 'Response',
|
|
@@ -43,9 +43,9 @@ export class GioPolicyStudioPoliciesCatalogDialogComponent {
|
|
|
43
43
|
this.policies = [];
|
|
44
44
|
this.categories = [];
|
|
45
45
|
this.isValid = false;
|
|
46
|
-
this.filtersForm = new
|
|
47
|
-
categories: new
|
|
48
|
-
search: new
|
|
46
|
+
this.filtersForm = new UntypedFormGroup({
|
|
47
|
+
categories: new UntypedFormControl([]),
|
|
48
|
+
search: new UntypedFormControl(''),
|
|
49
49
|
});
|
|
50
50
|
this.allPolicies = [];
|
|
51
51
|
this.unsubscribe$ = new Subject();
|
|
@@ -112,13 +112,13 @@ export class GioPolicyStudioPoliciesCatalogDialogComponent {
|
|
|
112
112
|
this.isUnlicensed = false;
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
|
-
GioPolicyStudioPoliciesCatalogDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
116
|
-
GioPolicyStudioPoliciesCatalogDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioPoliciesCatalogDialogComponent, selector: "gio-ps-policies-catalog-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n Policies for <span class=\"title__phase\">{{ executionPhaseLabel }}</span> phase\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<ng-container>\n <mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div class=\"policiesCatalog__filters\" [formGroup]=\"filtersForm\">\n <mat-form-field class=\"policiesCatalog__filters__search\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" />\n <button\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n *ngIf=\"filtersForm.get('search')?.value\"\n (click)=\"filtersForm.get('search')?.setValue('')\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </mat-form-field>\n <mat-chip-list\n *ngIf=\"categories.length > 1\"\n class=\"policiesCatalog__filters__categories\"\n aria-label=\"Categories selection\"\n multiple\n formControlName=\"categories\"\n >\n <mat-chip\n *ngFor=\"let category of categories\"\n [selected]=\"category\"\n [value]=\"category\"\n #chip=\"matChip\"\n (click)=\"chip.toggleSelected(true)\"\n >{{ category | titlecase }}</mat-chip\n >\n </mat-chip-list>\n </div>\n\n <div *ngIf=\"policies.length; else emptyPoliciesTpl\" class=\"policiesCatalog__list\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__list__policy\">\n <div class=\"policiesCatalog__list__policy__head\">\n <mat-icon class=\"policiesCatalog__list__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__list__policy__head__name\">{{ policy.name }}</span>\n </div>\n\n <div class=\"policiesCatalog__list__policy__enterprise\" *ngIf=\"policy.deployed === false\">\n <mat-icon\n class=\"policiesCatalog__list__policy__enterprise__lock\"\n [svgIcon]=\"'gio:lock'\"\n matTooltip=\"This policy is only available for users with an enterprise license.\"\n ></mat-icon>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__list__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__list__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">\n Select\n </button>\n </div>\n </div>\n </mat-dialog-content>\n</ng-container>\n\n<ng-template #emptyPoliciesTpl>\n <mat-dialog-content class=\"emptyPoliciesCatalog\">No policies available.</mat-dialog-content>\n</ng-template>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <gio-banner *ngIf=\"isUnlicensed\" type=\"error\" icon=\"gio:universe\">\n This policy is only available for users with an enterprise license.\n <span gioBannerBody>Request a license to upgrade your account and unlock this policy</span>\n <div gioBannerAction>\n <a *ngIf=\"trialUrl\" mat-stroked-button [href]=\"trialUrl\" target=\"_blank\">Request upgrade</a>\n </div>\n </gio-banner>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-step-form [policy]=\"selectedPolicy\" (stepChange)=\"onStepChange($event)\" (isValid)=\"onIsValid($event)\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button\n *ngIf=\"selectedPolicy\"\n class=\"actions__addBtn\"\n color=\"primary\"\n mat-flat-button\n role=\"dialog\"\n [disabled]=\"!isValid || isUnlicensed\"\n (click)=\"onAddPolicy()\"\n >\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__closeBtn{top:-20px;right:-20px;float:right}.policiesCatalog__filters{display:flex;flex-direction:column;padding:0 0 8px;gap:8px}.policiesCatalog__filters__search{width:100%;height:54px;padding-bottom:0}.policiesCatalog__list{--grid-layout-gap: 16px;--grid-column-count: 3;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__list__policy{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__list__policy__head{display:flex;max-width:95%;align-items:center}.policiesCatalog__list__policy__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policiesCatalog__list__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__list__policy__enterprise{position:absolute;top:0;right:0;padding:8px 8px 8px 16px;border-radius:0 8px 0 38px;background:#e7e8ef;color:#6c59bd}.policiesCatalog__list__policy__enterprise__lock{min-width:16px;max-width:16px;color:#6c59bd}.policiesCatalog__list__policy__description{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__list__policy__description:empty{display:none}.policiesCatalog__list__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i6.GioBannerComponent, selector: "gio-banner", inputs: ["type", "icon", "collapsible"] }, { type: i2.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { type: i7.GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: ["step", "policy"], outputs: ["stepChange", "isValid"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.MatLabel, selector: "mat-label" }, { type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i9.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.MatSuffix, selector: "[matSuffix]" }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i6.GioBannerBodyDirective, selector: "[gioBannerBody]" }, { type: i6.GioBannerActionDirective, selector: "[gioBannerAction]" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }], pipes: { "titlecase": i8.TitleCasePipe } });
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
115
|
+
GioPolicyStudioPoliciesCatalogDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioPoliciesCatalogDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
116
|
+
GioPolicyStudioPoliciesCatalogDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GioPolicyStudioPoliciesCatalogDialogComponent, selector: "gio-ps-policies-catalog-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n Policies for <span class=\"title__phase\">{{ executionPhaseLabel }}</span> phase\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<ng-container>\n <mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div class=\"policiesCatalog__filters\" [formGroup]=\"filtersForm\">\n <mat-form-field class=\"policiesCatalog__filters__search\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" />\n <button\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n *ngIf=\"filtersForm.get('search')?.value\"\n (click)=\"filtersForm.get('search')?.setValue('')\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </mat-form-field>\n <mat-chip-listbox\n *ngIf=\"categories.length > 1\"\n class=\"policiesCatalog__filters__categories\"\n aria-label=\"Categories selection\"\n multiple\n formControlName=\"categories\"\n >\n <mat-chip-option *ngFor=\"let category of categories\" [selected]=\"category\" [value]=\"category\">{{\n category | titlecase\n }}</mat-chip-option>\n </mat-chip-listbox>\n </div>\n\n <div *ngIf=\"policies.length; else emptyPoliciesTpl\" class=\"policiesCatalog__list\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__list__policy\">\n <div class=\"policiesCatalog__list__policy__head\">\n <mat-icon class=\"policiesCatalog__list__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__list__policy__head__name\">{{ policy.name }}</span>\n </div>\n\n <div class=\"policiesCatalog__list__policy__enterprise\" *ngIf=\"policy.deployed === false\">\n <mat-icon\n class=\"policiesCatalog__list__policy__enterprise__lock\"\n [svgIcon]=\"'gio:lock'\"\n matTooltip=\"This policy is only available for users with an enterprise license.\"\n ></mat-icon>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__list__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__list__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">\n Select\n </button>\n </div>\n </div>\n </mat-dialog-content>\n</ng-container>\n\n<ng-template #emptyPoliciesTpl>\n <mat-dialog-content class=\"emptyPoliciesCatalog\">No policies available.</mat-dialog-content>\n</ng-template>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <gio-banner *ngIf=\"isUnlicensed\" type=\"error\" icon=\"gio:universe\">\n This policy is only available for users with an enterprise license.\n <span gioBannerBody>Request a license to upgrade your account and unlock this policy</span>\n <div gioBannerAction>\n <a *ngIf=\"trialUrl\" mat-stroked-button [href]=\"trialUrl\" target=\"_blank\">Request upgrade</a>\n </div>\n </gio-banner>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-step-form [policy]=\"selectedPolicy\" (stepChange)=\"onStepChange($event)\" (isValid)=\"onIsValid($event)\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button\n *ngIf=\"selectedPolicy\"\n class=\"actions__addBtn\"\n color=\"primary\"\n mat-flat-button\n role=\"dialog\"\n [disabled]=\"!isValid || isUnlicensed\"\n (click)=\"onAddPolicy()\"\n >\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__closeBtn{top:0;right:-20px;float:right}.policiesCatalog__filters{display:flex;flex-direction:column;padding:0 0 8px;gap:8px}.policiesCatalog__filters__search{width:100%;height:54px;padding-bottom:0}.policiesCatalog__list{--grid-layout-gap: 16px;--grid-column-count: 3;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__list__policy{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__list__policy__head{display:flex;max-width:95%;align-items:center}.policiesCatalog__list__policy__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policiesCatalog__list__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__list__policy__enterprise{position:absolute;top:0;right:0;padding:8px 8px 8px 16px;border-radius:0 8px 0 38px;background:#e7e8ef;color:#6c59bd}.policiesCatalog__list__policy__enterprise__lock{min-width:16px;max-width:16px;color:#6c59bd}.policiesCatalog__list__policy__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__list__policy__description:empty{display:none}.policiesCatalog__list__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i8.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i8.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.GioBannerComponent, selector: "gio-banner", inputs: ["type", "icon", "collapsible"] }, { kind: "directive", type: i10.GioBannerBodyDirective, selector: "[gioBannerBody]" }, { kind: "directive", type: i10.GioBannerActionDirective, selector: "[gioBannerAction]" }, { kind: "component", type: i11.GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: ["step", "policy"], outputs: ["stepChange", "isValid"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }] });
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioPoliciesCatalogDialogComponent, decorators: [{
|
|
118
118
|
type: Component,
|
|
119
|
-
args: [{ selector: 'gio-ps-policies-catalog-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n Policies for <span class=\"title__phase\">{{ executionPhaseLabel }}</span> phase\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<ng-container>\n <mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div class=\"policiesCatalog__filters\" [formGroup]=\"filtersForm\">\n <mat-form-field class=\"policiesCatalog__filters__search\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" />\n <button\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n *ngIf=\"filtersForm.get('search')?.value\"\n (click)=\"filtersForm.get('search')?.setValue('')\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </mat-form-field>\n <mat-chip-
|
|
119
|
+
args: [{ selector: 'gio-ps-policies-catalog-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n Policies for <span class=\"title__phase\">{{ executionPhaseLabel }}</span> phase\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<ng-container>\n <mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div class=\"policiesCatalog__filters\" [formGroup]=\"filtersForm\">\n <mat-form-field class=\"policiesCatalog__filters__search\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" />\n <button\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n *ngIf=\"filtersForm.get('search')?.value\"\n (click)=\"filtersForm.get('search')?.setValue('')\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </mat-form-field>\n <mat-chip-listbox\n *ngIf=\"categories.length > 1\"\n class=\"policiesCatalog__filters__categories\"\n aria-label=\"Categories selection\"\n multiple\n formControlName=\"categories\"\n >\n <mat-chip-option *ngFor=\"let category of categories\" [selected]=\"category\" [value]=\"category\">{{\n category | titlecase\n }}</mat-chip-option>\n </mat-chip-listbox>\n </div>\n\n <div *ngIf=\"policies.length; else emptyPoliciesTpl\" class=\"policiesCatalog__list\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__list__policy\">\n <div class=\"policiesCatalog__list__policy__head\">\n <mat-icon class=\"policiesCatalog__list__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__list__policy__head__name\">{{ policy.name }}</span>\n </div>\n\n <div class=\"policiesCatalog__list__policy__enterprise\" *ngIf=\"policy.deployed === false\">\n <mat-icon\n class=\"policiesCatalog__list__policy__enterprise__lock\"\n [svgIcon]=\"'gio:lock'\"\n matTooltip=\"This policy is only available for users with an enterprise license.\"\n ></mat-icon>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__list__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__list__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">\n Select\n </button>\n </div>\n </div>\n </mat-dialog-content>\n</ng-container>\n\n<ng-template #emptyPoliciesTpl>\n <mat-dialog-content class=\"emptyPoliciesCatalog\">No policies available.</mat-dialog-content>\n</ng-template>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <gio-banner *ngIf=\"isUnlicensed\" type=\"error\" icon=\"gio:universe\">\n This policy is only available for users with an enterprise license.\n <span gioBannerBody>Request a license to upgrade your account and unlock this policy</span>\n <div gioBannerAction>\n <a *ngIf=\"trialUrl\" mat-stroked-button [href]=\"trialUrl\" target=\"_blank\">Request upgrade</a>\n </div>\n </gio-banner>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-step-form [policy]=\"selectedPolicy\" (stepChange)=\"onStepChange($event)\" (isValid)=\"onIsValid($event)\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button\n *ngIf=\"selectedPolicy\"\n class=\"actions__addBtn\"\n color=\"primary\"\n mat-flat-button\n role=\"dialog\"\n [disabled]=\"!isValid || isUnlicensed\"\n (click)=\"onAddPolicy()\"\n >\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__closeBtn{top:0;right:-20px;float:right}.policiesCatalog__filters{display:flex;flex-direction:column;padding:0 0 8px;gap:8px}.policiesCatalog__filters__search{width:100%;height:54px;padding-bottom:0}.policiesCatalog__list{--grid-layout-gap: 16px;--grid-column-count: 3;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__list__policy{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__list__policy__head{display:flex;max-width:95%;align-items:center}.policiesCatalog__list__policy__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policiesCatalog__list__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__list__policy__enterprise{position:absolute;top:0;right:0;padding:8px 8px 8px 16px;border-radius:0 8px 0 38px;background:#e7e8ef;color:#6c59bd}.policiesCatalog__list__policy__enterprise__lock{min-width:16px;max-width:16px;color:#6c59bd}.policiesCatalog__list__policy__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__list__policy__description:empty{display:none}.policiesCatalog__list__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"] }]
|
|
120
120
|
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
121
121
|
type: Inject,
|
|
122
122
|
args: [MAT_DIALOG_DATA]
|
|
123
123
|
}] }]; } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7OztBQWEvQixNQUFNLG9CQUFvQixHQUFtQztJQUMzRCxPQUFPLEVBQUUsU0FBUztJQUNsQixRQUFRLEVBQUUsVUFBVTtJQUNwQixlQUFlLEVBQUUsU0FBUztJQUMxQixnQkFBZ0IsRUFBRSxXQUFXO0NBQzlCLENBQUM7QUFXRixNQUFNLE9BQU8sNkNBQTZDO0lBNEJ4RCxZQUNTLFNBQWtILEVBQ2hHLGNBQXdEO1FBRDFFLGNBQVMsR0FBVCxTQUFTLENBQXlHO1FBNUJwSCxhQUFRLEdBQWUsRUFBRSxDQUFDO1FBUTFCLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFFMUIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUloQixnQkFBVyxHQUFHLElBQUksU0FBUyxDQUFDO1lBQ2pDLFVBQVUsRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDL0IsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQztTQUM1QixDQUFDLENBQUM7UUFFSyxnQkFBVyxHQUFlLEVBQUUsQ0FBQztRQUU3QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFcEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFRMUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxRQUFRO2FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNmLElBQUksY0FBYyxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUU7Z0JBQ3RDLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQzlEO1lBQ0QsT0FBTyxNQUFNLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNkLEdBQUcsTUFBTTtZQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLFFBQVE7U0FDdEMsQ0FBQyxDQUFDLENBQUM7UUFFTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6SCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RCxJQUFJLFdBQVcsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqRTtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWTthQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNyRSxTQUFTLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQThDLEVBQUUsRUFBRTtZQUNoRixNQUFNLGtCQUFrQixHQUFHLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzlGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVc7aUJBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDZixPQUFPLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzVFLENBQUMsQ0FBQztpQkFDRCxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2YsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDeEUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQztJQUMxQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUFjO1FBQ2xDLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRU0sWUFBWSxDQUFDLElBQVU7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxPQUFnQjtRQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUk7WUFDL0IsT0FBTyxFQUFFLElBQUk7WUFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ2IseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7OzJJQXRHVSw2Q0FBNkMsOENBOEI5QyxlQUFlOytIQTlCZCw2Q0FBNkMsc0VDakQxRCx1cEtBa0lBOzRGRGpGYSw2Q0FBNkM7a0JBTHpELFNBQVM7K0JBQ0UsZ0NBQWdDOzswQkFrQ3ZDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyB0b0xvd2VyLCB1bmlxIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXBpVHlwZSwgRXhlY3V0aW9uUGhhc2UsIFBvbGljeSwgU3RlcCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0RhdGEgPSB7XG4gIHBvbGljaWVzOiBQb2xpY3lbXTtcbiAgZXhlY3V0aW9uUGhhc2U6IEV4ZWN1dGlvblBoYXNlO1xuICBhcGlUeXBlOiBBcGlUeXBlO1xuICB0cmlhbFVybD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ1Jlc3VsdCA9IHVuZGVmaW5lZCB8IFN0ZXA7XG5cbmNvbnN0IGV4ZWN1dGlvblBoYXNlTGFiZWxzOiBSZWNvcmQ8RXhlY3V0aW9uUGhhc2UsIHN0cmluZz4gPSB7XG4gIFJFUVVFU1Q6ICdSZXF1ZXN0JyxcbiAgUkVTUE9OU0U6ICdSZXNwb25zZScsXG4gIE1FU1NBR0VfUkVRVUVTVDogJ1B1Ymxpc2gnLFxuICBNRVNTQUdFX1JFU1BPTlNFOiAnU3Vic2NyaWJlJyxcbn07XG5cbnR5cGUgUG9saWN5Vk0gPSBQb2xpY3kgJiB7XG4gIGNhdGVnb3J5OiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBwb2xpY2llczogUG9saWN5Vk1bXSA9IFtdO1xuXG4gIHB1YmxpYyBleGVjdXRpb25QaGFzZUxhYmVsITogc3RyaW5nO1xuXG4gIHB1YmxpYyBzZWxlY3RlZFBvbGljeT86IFBvbGljeTtcblxuICBwdWJsaWMgc3RlcFRvQWRkPzogU3RlcDtcblxuICBwdWJsaWMgY2F0ZWdvcmllczogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgaXNWYWxpZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzZWxlY3RlZENhdGVnb3JpZXNDb250cm9sPzogRm9ybUNvbnRyb2w7XG5cbiAgcHVibGljIGZpbHRlcnNGb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgY2F0ZWdvcmllczogbmV3IEZvcm1Db250cm9sKFtdKSxcbiAgICBzZWFyY2g6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gIH0pO1xuXG4gIHByaXZhdGUgYWxsUG9saWNpZXM6IFBvbGljeVZNW10gPSBbXTtcblxuICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGlzVW5saWNlbnNlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyB0cmlhbFVybD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dSZXN1bHQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBmbG93RGlhbG9nRGF0YTogR2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nRGF0YSxcbiAgKSB7XG4gICAgdGhpcy5leGVjdXRpb25QaGFzZUxhYmVsID0gZXhlY3V0aW9uUGhhc2VMYWJlbHNbZmxvd0RpYWxvZ0RhdGEuZXhlY3V0aW9uUGhhc2VdO1xuXG4gICAgdGhpcy5hbGxQb2xpY2llcyA9IGZsb3dEaWFsb2dEYXRhLnBvbGljaWVzXG4gICAgICAuZmlsdGVyKHBvbGljeSA9PiB7XG4gICAgICAgIGlmIChmbG93RGlhbG9nRGF0YS5hcGlUeXBlID09PSAnUFJPWFknKSB7XG4gICAgICAgICAgcmV0dXJuIHBvbGljeS5wcm94eT8uaW5jbHVkZXMoZmxvd0RpYWxvZ0RhdGEuZXhlY3V0aW9uUGhhc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb2xpY3kubWVzc2FnZT8uaW5jbHVkZXMoZmxvd0RpYWxvZ0RhdGEuZXhlY3V0aW9uUGhhc2UpO1xuICAgICAgfSlcbiAgICAgIC5tYXAocG9saWN5ID0+ICh7XG4gICAgICAgIC4uLnBvbGljeSxcbiAgICAgICAgY2F0ZWdvcnk6IHBvbGljeS5jYXRlZ29yeSA/PyAnT3RoZXJzJyxcbiAgICAgIH0pKTtcblxuICAgIHRoaXMuY2F0ZWdvcmllcyA9IHVuaXEodGhpcy5hbGxQb2xpY2llcy5tYXAocG9saWN5ID0+IHBvbGljeS5jYXRlZ29yeS50b0xvd2VyQ2FzZSgpKSkuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKTtcbiAgICBjb25zdCBvdGhlcnNJbmRleCA9IHRoaXMuY2F0ZWdvcmllcy5pbmRleE9mKCdvdGhlcnMnKTtcbiAgICBpZiAob3RoZXJzSW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLmNhdGVnb3JpZXMucHVzaCh0aGlzLmNhdGVnb3JpZXMuc3BsaWNlKG90aGVyc0luZGV4LCAxKVswXSk7XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJzRm9ybS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLmZpbHRlcnNGb3JtLnZhbHVlKSwgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHsgY2F0ZWdvcmllcywgc2VhcmNoIH06IHsgY2F0ZWdvcmllcz86IHN0cmluZ1tdOyBzZWFyY2g/OiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZENhdGVnb3JpZXMgPSBjYXRlZ29yaWVzICYmIGNhdGVnb3JpZXMubGVuZ3RoID4gMCA/IGNhdGVnb3JpZXMgOiB0aGlzLmNhdGVnb3JpZXM7XG4gICAgICAgIHRoaXMucG9saWNpZXMgPSB0aGlzLmFsbFBvbGljaWVzXG4gICAgICAgICAgLmZpbHRlcihwb2xpY3kgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkQ2F0ZWdvcmllcy5tYXAodG9Mb3dlcikuaW5jbHVkZXModG9Mb3dlcihwb2xpY3kuY2F0ZWdvcnkpKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5maWx0ZXIocG9saWN5ID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzZWFyY2ggPyB0b0xvd2VyKHBvbGljeS5uYW1lKS5pbmNsdWRlcyh0b0xvd2VyKHNlYXJjaCkpIDogdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy50cmlhbFVybCA9IGZsb3dEaWFsb2dEYXRhLnRyaWFsVXJsO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0UG9saWN5KHBvbGljeTogUG9saWN5KSB7XG4gICAgaWYgKHBvbGljeS5kZXBsb3llZCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuaXNVbmxpY2Vuc2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFBvbGljeSA9IHBvbGljeTtcbiAgfVxuXG4gIHB1YmxpYyBvblN0ZXBDaGFuZ2Uoc3RlcDogU3RlcCkge1xuICAgIHRoaXMuc3RlcFRvQWRkID0gc3RlcDtcbiAgfVxuXG4gIHB1YmxpYyBvbklzVmFsaWQoaXNWYWxpZDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNWYWxpZCA9IGlzVmFsaWQ7XG4gIH1cblxuICBwdWJsaWMgb25BZGRQb2xpY3koKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgLi4udGhpcy5zdGVwVG9BZGQsXG4gICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkUG9saWN5Py5uYW1lLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIHBvbGljeTogdGhpcy5zZWxlY3RlZFBvbGljeT8uaWQsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25Hb0JhY2soKSB7XG4gICAgLy8gUmVzZXQgdG8gaW5pdGlhbCB2YWx1ZVxuICAgIHRoaXMuc2VsZWN0ZWRQb2xpY3kgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5pc1ZhbGlkID0gZmFsc2U7XG4gICAgdGhpcy5pc1VubGljZW5zZWQgPSBmYWxzZTtcbiAgfVxufVxuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG48aDIgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cInRpdGxlXCI+XG4gIFBvbGljaWVzIGZvciA8c3BhbiBjbGFzcz1cInRpdGxlX19waGFzZVwiPnt7IGV4ZWN1dGlvblBoYXNlTGFiZWwgfX08L3NwYW4+IHBoYXNlXG5cbiAgPGJ1dHRvbiBjbGFzcz1cInRpdGxlX19jbG9zZUJ0blwiIG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xvc2UgZGlhbG9nXCIgW21hdC1kaWFsb2ctY2xvc2VdPVwiXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y2FuY2VsXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2gyPlxuXG48bmctY29udGFpbmVyPlxuICA8bWF0LWRpYWxvZy1jb250ZW50ICpuZ0lmPVwiIXNlbGVjdGVkUG9saWN5XCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dcIj5cbiAgICA8ZGl2IGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19maWx0ZXJzXCIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJzRm9ybVwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19maWx0ZXJzX19zZWFyY2hcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICA8bWF0LWxhYmVsPlNlYXJjaDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoXCIgLz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhclwiXG4gICAgICAgICAgKm5nSWY9XCJmaWx0ZXJzRm9ybS5nZXQoJ3NlYXJjaCcpPy52YWx1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImZpbHRlcnNGb3JtLmdldCgnc2VhcmNoJyk/LnNldFZhbHVlKCcnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpjYW5jZWxcIj48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWNoaXAtbGlzdFxuICAgICAgICAqbmdJZj1cImNhdGVnb3JpZXMubGVuZ3RoID4gMVwiXG4gICAgICAgIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19maWx0ZXJzX19jYXRlZ29yaWVzXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNhdGVnb3JpZXMgc2VsZWN0aW9uXCJcbiAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2F0ZWdvcmllc1wiXG4gICAgICA+XG4gICAgICAgIDxtYXQtY2hpcFxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBjYXRlZ29yaWVzXCJcbiAgICAgICAgICBbc2VsZWN0ZWRdPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgIFt2YWx1ZV09XCJjYXRlZ29yeVwiXG4gICAgICAgICAgI2NoaXA9XCJtYXRDaGlwXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2hpcC50b2dnbGVTZWxlY3RlZCh0cnVlKVwiXG4gICAgICAgICAgPnt7IGNhdGVnb3J5IHwgdGl0bGVjYXNlIH19PC9tYXQtY2hpcFxuICAgICAgICA+XG4gICAgICA8L21hdC1jaGlwLWxpc3Q+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwicG9saWNpZXMubGVuZ3RoOyBlbHNlIGVtcHR5UG9saWNpZXNUcGxcIiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdFwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcG9saWN5IG9mIHBvbGljaWVzXCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2hlYWRcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9faGVhZF9faWNvblwiIFtzdmdJY29uXT1cInBvbGljeS5pY29uID8/ICdnaW86cHV6emxlJ1wiPjwvbWF0LWljb24+XG5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInBvbGljeS5uYW1lXCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9faGVhZF9fbmFtZVwiPnt7IHBvbGljeS5uYW1lIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2VudGVycHJpc2VcIiAqbmdJZj1cInBvbGljeS5kZXBsb3llZCA9PT0gZmFsc2VcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2VudGVycHJpc2VfX2xvY2tcIlxuICAgICAgICAgICAgW3N2Z0ljb25dPVwiJ2dpbzpsb2NrJ1wiXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiVGhpcyBwb2xpY3kgaXMgb25seSBhdmFpbGFibGUgZm9yIHVzZXJzIHdpdGggYW4gZW50ZXJwcmlzZSBsaWNlbnNlLlwiXG4gICAgICAgICAgPjwvbWF0LWljb24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJwb2xpY3kuZGVzY3JpcHRpb25cIiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19kZXNjcmlwdGlvblwiPnt7IHBvbGljeS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9fc2VsZWN0QnRuXCIgbWF0LXN0cm9rZWQtYnV0dG9uIHJvbGU9XCJkaWFsb2dcIiAoY2xpY2spPVwib25TZWxlY3RQb2xpY3kocG9saWN5KVwiPlxuICAgICAgICAgIFNlbGVjdFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L21hdC1kaWFsb2ctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5UG9saWNpZXNUcGw+XG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJlbXB0eVBvbGljaWVzQ2F0YWxvZ1wiPk5vIHBvbGljaWVzIGF2YWlsYWJsZS48L21hdC1kaWFsb2ctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgKm5nSWY9XCJzZWxlY3RlZFBvbGljeVwiIGNsYXNzPVwicG9saWN5Rm9ybVwiPlxuICA8YnV0dG9uIGNsYXNzPVwicG9saWN5Rm9ybV9fZ29CYWNrQnRuXCIgbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJvbkdvQmFjaygpXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86YXJyb3ctbGVmdFwiPjwvbWF0LWljb24+XG4gICAgR28gYmFja1xuICA8L2J1dHRvbj5cblxuICA8Z2lvLWJhbm5lciAqbmdJZj1cImlzVW5saWNlbnNlZFwiIHR5cGU9XCJlcnJvclwiIGljb249XCJnaW86dW5pdmVyc2VcIj5cbiAgICBUaGlzIHBvbGljeSBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdXNlcnMgd2l0aCBhbiBlbnRlcnByaXNlIGxpY2Vuc2UuXG4gICAgPHNwYW4gZ2lvQmFubmVyQm9keT5SZXF1ZXN0IGEgbGljZW5zZSB0byB1cGdyYWRlIHlvdXIgYWNjb3VudCBhbmQgdW5sb2NrIHRoaXMgcG9saWN5PC9zcGFuPlxuICAgIDxkaXYgZ2lvQmFubmVyQWN0aW9uPlxuICAgICAgPGEgKm5nSWY9XCJ0cmlhbFVybFwiIG1hdC1zdHJva2VkLWJ1dHRvbiBbaHJlZl09XCJ0cmlhbFVybFwiIHRhcmdldD1cIl9ibGFua1wiPlJlcXVlc3QgdXBncmFkZTwvYT5cbiAgICA8L2Rpdj5cbiAgPC9naW8tYmFubmVyPlxuXG4gIDxkaXYgY2xhc3M9XCJwb2xpY3lGb3JtX19pbmZvXCI+XG4gICAgPGRpdiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2hlYWRcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2hlYWRfX2ljb25cIiBbc3ZnSWNvbl09XCJzZWxlY3RlZFBvbGljeS5pY29uID8/ICdnaW86cHV6emxlJ1wiPjwvbWF0LWljb24+XG5cbiAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3kubmFtZVwiIGNsYXNzPVwicG9saWN5Rm9ybV9faW5mb19faGVhZF9fbmFtZVwiPnt7IHNlbGVjdGVkUG9saWN5Lm5hbWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3kuZGVzY3JpcHRpb25cIiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2Rlc2NyaXB0aW9uXCI+e3sgc2VsZWN0ZWRQb2xpY3kuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGdpby1wcy1zdGVwLWZvcm0gW3BvbGljeV09XCJzZWxlY3RlZFBvbGljeVwiIChzdGVwQ2hhbmdlKT1cIm9uU3RlcENoYW5nZSgkZXZlbnQpXCIgKGlzVmFsaWQpPVwib25Jc1ZhbGlkKCRldmVudClcIj48L2dpby1wcy1zdGVwLWZvcm0+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImFjdGlvbnNcIiBhbGlnbj1cImVuZFwiPlxuICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uc19fY2FuY2VsQnRuXCIgbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3lcIlxuICAgIGNsYXNzPVwiYWN0aW9uc19fYWRkQnRuXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgIG1hdC1mbGF0LWJ1dHRvblxuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIFtkaXNhYmxlZF09XCIhaXNWYWxpZCB8fCBpc1VubGljZW5zZWRcIlxuICAgIChjbGljayk9XCJvbkFkZFBvbGljeSgpXCJcbiAgPlxuICAgIEFkZCBwb2xpY3lcbiAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFhL0IsTUFBTSxvQkFBb0IsR0FBbUM7SUFDM0QsT0FBTyxFQUFFLFNBQVM7SUFDbEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsZUFBZSxFQUFFLFNBQVM7SUFDMUIsZ0JBQWdCLEVBQUUsV0FBVztDQUM5QixDQUFDO0FBV0YsTUFBTSxPQUFPLDZDQUE2QztJQTRCeEQsWUFDUyxTQUFrSCxFQUNoRyxj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QThCOUMsZUFBZTsrSEE5QmQsNkNBQTZDLHNFQ2pEMUQsMGpLQTZIQTs0RkQ1RWEsNkNBQTZDO2tCQUx6RCxTQUFTOytCQUNFLGdDQUFnQzs7MEJBa0N2QyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgdG9Mb3dlciwgdW5pcSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXBpVHlwZSwgRXhlY3V0aW9uUGhhc2UsIFBvbGljeSwgU3RlcCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0RhdGEgPSB7XG4gIHBvbGljaWVzOiBQb2xpY3lbXTtcbiAgZXhlY3V0aW9uUGhhc2U6IEV4ZWN1dGlvblBoYXNlO1xuICBhcGlUeXBlOiBBcGlUeXBlO1xuICB0cmlhbFVybD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ1Jlc3VsdCA9IHVuZGVmaW5lZCB8IFN0ZXA7XG5cbmNvbnN0IGV4ZWN1dGlvblBoYXNlTGFiZWxzOiBSZWNvcmQ8RXhlY3V0aW9uUGhhc2UsIHN0cmluZz4gPSB7XG4gIFJFUVVFU1Q6ICdSZXF1ZXN0JyxcbiAgUkVTUE9OU0U6ICdSZXNwb25zZScsXG4gIE1FU1NBR0VfUkVRVUVTVDogJ1B1Ymxpc2gnLFxuICBNRVNTQUdFX1JFU1BPTlNFOiAnU3Vic2NyaWJlJyxcbn07XG5cbnR5cGUgUG9saWN5Vk0gPSBQb2xpY3kgJiB7XG4gIGNhdGVnb3J5OiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBwb2xpY2llczogUG9saWN5Vk1bXSA9IFtdO1xuXG4gIHB1YmxpYyBleGVjdXRpb25QaGFzZUxhYmVsITogc3RyaW5nO1xuXG4gIHB1YmxpYyBzZWxlY3RlZFBvbGljeT86IFBvbGljeTtcblxuICBwdWJsaWMgc3RlcFRvQWRkPzogU3RlcDtcblxuICBwdWJsaWMgY2F0ZWdvcmllczogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgaXNWYWxpZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzZWxlY3RlZENhdGVnb3JpZXNDb250cm9sPzogVW50eXBlZEZvcm1Db250cm9sO1xuXG4gIHB1YmxpYyBmaWx0ZXJzRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBjYXRlZ29yaWVzOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFtdKSxcbiAgICBzZWFyY2g6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpLFxuICB9KTtcblxuICBwcml2YXRlIGFsbFBvbGljaWVzOiBQb2xpY3lWTVtdID0gW107XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBpc1VubGljZW5zZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgdHJpYWxVcmw/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nUmVzdWx0PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgZmxvd0RpYWxvZ0RhdGE6IEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0RhdGEsXG4gICkge1xuICAgIHRoaXMuZXhlY3V0aW9uUGhhc2VMYWJlbCA9IGV4ZWN1dGlvblBoYXNlTGFiZWxzW2Zsb3dEaWFsb2dEYXRhLmV4ZWN1dGlvblBoYXNlXTtcblxuICAgIHRoaXMuYWxsUG9saWNpZXMgPSBmbG93RGlhbG9nRGF0YS5wb2xpY2llc1xuICAgICAgLmZpbHRlcihwb2xpY3kgPT4ge1xuICAgICAgICBpZiAoZmxvd0RpYWxvZ0RhdGEuYXBpVHlwZSA9PT0gJ1BST1hZJykge1xuICAgICAgICAgIHJldHVybiBwb2xpY3kucHJveHk/LmluY2x1ZGVzKGZsb3dEaWFsb2dEYXRhLmV4ZWN1dGlvblBoYXNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcG9saWN5Lm1lc3NhZ2U/LmluY2x1ZGVzKGZsb3dEaWFsb2dEYXRhLmV4ZWN1dGlvblBoYXNlKTtcbiAgICAgIH0pXG4gICAgICAubWFwKHBvbGljeSA9PiAoe1xuICAgICAgICAuLi5wb2xpY3ksXG4gICAgICAgIGNhdGVnb3J5OiBwb2xpY3kuY2F0ZWdvcnkgPz8gJ090aGVycycsXG4gICAgICB9KSk7XG5cbiAgICB0aGlzLmNhdGVnb3JpZXMgPSB1bmlxKHRoaXMuYWxsUG9saWNpZXMubWFwKHBvbGljeSA9PiBwb2xpY3kuY2F0ZWdvcnkudG9Mb3dlckNhc2UoKSkpLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSk7XG4gICAgY29uc3Qgb3RoZXJzSW5kZXggPSB0aGlzLmNhdGVnb3JpZXMuaW5kZXhPZignb3RoZXJzJyk7XG4gICAgaWYgKG90aGVyc0luZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5jYXRlZ29yaWVzLnB1c2godGhpcy5jYXRlZ29yaWVzLnNwbGljZShvdGhlcnNJbmRleCwgMSlbMF0pO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyc0Zvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShzdGFydFdpdGgodGhpcy5maWx0ZXJzRm9ybS52YWx1ZSksIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKCh7IGNhdGVnb3JpZXMsIHNlYXJjaCB9OiB7IGNhdGVnb3JpZXM/OiBzdHJpbmdbXTsgc2VhcmNoPzogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDYXRlZ29yaWVzID0gY2F0ZWdvcmllcyAmJiBjYXRlZ29yaWVzLmxlbmd0aCA+IDAgPyBjYXRlZ29yaWVzIDogdGhpcy5jYXRlZ29yaWVzO1xuICAgICAgICB0aGlzLnBvbGljaWVzID0gdGhpcy5hbGxQb2xpY2llc1xuICAgICAgICAgIC5maWx0ZXIocG9saWN5ID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZENhdGVnb3JpZXMubWFwKHRvTG93ZXIpLmluY2x1ZGVzKHRvTG93ZXIocG9saWN5LmNhdGVnb3J5KSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZmlsdGVyKHBvbGljeSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc2VhcmNoID8gdG9Mb3dlcihwb2xpY3kubmFtZSkuaW5jbHVkZXModG9Mb3dlcihzZWFyY2gpKSA6IHRydWU7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMudHJpYWxVcmwgPSBmbG93RGlhbG9nRGF0YS50cmlhbFVybDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdFBvbGljeShwb2xpY3k6IFBvbGljeSkge1xuICAgIGlmIChwb2xpY3kuZGVwbG95ZWQgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmlzVW5saWNlbnNlZCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRQb2xpY3kgPSBwb2xpY3k7XG4gIH1cblxuICBwdWJsaWMgb25TdGVwQ2hhbmdlKHN0ZXA6IFN0ZXApIHtcbiAgICB0aGlzLnN0ZXBUb0FkZCA9IHN0ZXA7XG4gIH1cblxuICBwdWJsaWMgb25Jc1ZhbGlkKGlzVmFsaWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmlzVmFsaWQgPSBpc1ZhbGlkO1xuICB9XG5cbiAgcHVibGljIG9uQWRkUG9saWN5KCkge1xuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcbiAgICAgIC4uLnRoaXMuc3RlcFRvQWRkLFxuICAgICAgbmFtZTogdGhpcy5zZWxlY3RlZFBvbGljeT8ubmFtZSxcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBwb2xpY3k6IHRoaXMuc2VsZWN0ZWRQb2xpY3k/LmlkLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uR29CYWNrKCkge1xuICAgIC8vIFJlc2V0IHRvIGluaXRpYWwgdmFsdWVcbiAgICB0aGlzLnNlbGVjdGVkUG9saWN5ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuaXNWYWxpZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNVbmxpY2Vuc2VkID0gZmFsc2U7XG4gIH1cbn1cbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuPGgyIG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJ0aXRsZVwiPlxuICBQb2xpY2llcyBmb3IgPHNwYW4gY2xhc3M9XCJ0aXRsZV9fcGhhc2VcIj57eyBleGVjdXRpb25QaGFzZUxhYmVsIH19PC9zcGFuPiBwaGFzZVxuXG4gIDxidXR0b24gY2xhc3M9XCJ0aXRsZV9fY2xvc2VCdG5cIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsb3NlIGRpYWxvZ1wiIFttYXQtZGlhbG9nLWNsb3NlXT1cIlwiPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmNhbmNlbFwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuPC9oMj5cblxuPG5nLWNvbnRhaW5lcj5cbiAgPG1hdC1kaWFsb2ctY29udGVudCAqbmdJZj1cIiFzZWxlY3RlZFBvbGljeVwiIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nXCI+XG4gICAgPGRpdiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fZmlsdGVyc1wiIFtmb3JtR3JvdXBdPVwiZmlsdGVyc0Zvcm1cIj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fZmlsdGVyc19fc2VhcmNoXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cbiAgICAgICAgPG1hdC1sYWJlbD5TZWFyY2g8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInNlYXJjaFwiIC8+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxuICAgICAgICAgICpuZ0lmPVwiZmlsdGVyc0Zvcm0uZ2V0KCdzZWFyY2gnKT8udmFsdWVcIlxuICAgICAgICAgIChjbGljayk9XCJmaWx0ZXJzRm9ybS5nZXQoJ3NlYXJjaCcpPy5zZXRWYWx1ZSgnJylcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y2FuY2VsXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1jaGlwLWxpc3Rib3hcbiAgICAgICAgKm5nSWY9XCJjYXRlZ29yaWVzLmxlbmd0aCA+IDFcIlxuICAgICAgICBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fZmlsdGVyc19fY2F0ZWdvcmllc1wiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJDYXRlZ29yaWVzIHNlbGVjdGlvblwiXG4gICAgICAgIG11bHRpcGxlXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNhdGVnb3JpZXNcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWNoaXAtb3B0aW9uICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBjYXRlZ29yaWVzXCIgW3NlbGVjdGVkXT1cImNhdGVnb3J5XCIgW3ZhbHVlXT1cImNhdGVnb3J5XCI+e3tcbiAgICAgICAgICBjYXRlZ29yeSB8IHRpdGxlY2FzZVxuICAgICAgICB9fTwvbWF0LWNoaXAtb3B0aW9uPlxuICAgICAgPC9tYXQtY2hpcC1saXN0Ym94PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cInBvbGljaWVzLmxlbmd0aDsgZWxzZSBlbXB0eVBvbGljaWVzVHBsXCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHBvbGljeSBvZiBwb2xpY2llc1wiIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19oZWFkXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2hlYWRfX2ljb25cIiBbc3ZnSWNvbl09XCJwb2xpY3kuaWNvbiA/PyAnZ2lvOnB1enpsZSdcIj48L21hdC1pY29uPlxuXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJwb2xpY3kubmFtZVwiIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2hlYWRfX25hbWVcIj57eyBwb2xpY3kubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19lbnRlcnByaXNlXCIgKm5nSWY9XCJwb2xpY3kuZGVwbG95ZWQgPT09IGZhbHNlXCI+XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19lbnRlcnByaXNlX19sb2NrXCJcbiAgICAgICAgICAgIFtzdmdJY29uXT1cIidnaW86bG9jaydcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlRoaXMgcG9saWN5IGlzIG9ubHkgYXZhaWxhYmxlIGZvciB1c2VycyB3aXRoIGFuIGVudGVycHJpc2UgbGljZW5zZS5cIlxuICAgICAgICAgID48L21hdC1pY29uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwicG9saWN5LmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9fZGVzY3JpcHRpb25cIj57eyBwb2xpY3kuZGVzY3JpcHRpb24gfX08L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX3NlbGVjdEJ0blwiIG1hdC1zdHJva2VkLWJ1dHRvbiByb2xlPVwiZGlhbG9nXCIgKGNsaWNrKT1cIm9uU2VsZWN0UG9saWN5KHBvbGljeSlcIj5cbiAgICAgICAgICBTZWxlY3RcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNlbXB0eVBvbGljaWVzVHBsPlxuICA8bWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiZW1wdHlQb2xpY2llc0NhdGFsb2dcIj5ObyBwb2xpY2llcyBhdmFpbGFibGUuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bWF0LWRpYWxvZy1jb250ZW50ICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3lcIiBjbGFzcz1cInBvbGljeUZvcm1cIj5cbiAgPGJ1dHRvbiBjbGFzcz1cInBvbGljeUZvcm1fX2dvQmFja0J0blwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwib25Hb0JhY2soKVwiPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmFycm93LWxlZnRcIj48L21hdC1pY29uPlxuICAgIEdvIGJhY2tcbiAgPC9idXR0b24+XG5cbiAgPGdpby1iYW5uZXIgKm5nSWY9XCJpc1VubGljZW5zZWRcIiB0eXBlPVwiZXJyb3JcIiBpY29uPVwiZ2lvOnVuaXZlcnNlXCI+XG4gICAgVGhpcyBwb2xpY3kgaXMgb25seSBhdmFpbGFibGUgZm9yIHVzZXJzIHdpdGggYW4gZW50ZXJwcmlzZSBsaWNlbnNlLlxuICAgIDxzcGFuIGdpb0Jhbm5lckJvZHk+UmVxdWVzdCBhIGxpY2Vuc2UgdG8gdXBncmFkZSB5b3VyIGFjY291bnQgYW5kIHVubG9jayB0aGlzIHBvbGljeTwvc3Bhbj5cbiAgICA8ZGl2IGdpb0Jhbm5lckFjdGlvbj5cbiAgICAgIDxhICpuZ0lmPVwidHJpYWxVcmxcIiBtYXQtc3Ryb2tlZC1idXR0b24gW2hyZWZdPVwidHJpYWxVcmxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5SZXF1ZXN0IHVwZ3JhZGU8L2E+XG4gICAgPC9kaXY+XG4gIDwvZ2lvLWJhbm5lcj5cblxuICA8ZGl2IGNsYXNzPVwicG9saWN5Rm9ybV9faW5mb1wiPlxuICAgIDxkaXYgY2xhc3M9XCJwb2xpY3lGb3JtX19pbmZvX19oZWFkXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJwb2xpY3lGb3JtX19pbmZvX19oZWFkX19pY29uXCIgW3N2Z0ljb25dPVwic2VsZWN0ZWRQb2xpY3kuaWNvbiA/PyAnZ2lvOnB1enpsZSdcIj48L21hdC1pY29uPlxuXG4gICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkUG9saWN5Lm5hbWVcIiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2hlYWRfX25hbWVcIj57eyBzZWxlY3RlZFBvbGljeS5uYW1lIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkUG9saWN5LmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJwb2xpY3lGb3JtX19pbmZvX19kZXNjcmlwdGlvblwiPnt7IHNlbGVjdGVkUG9saWN5LmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxnaW8tcHMtc3RlcC1mb3JtIFtwb2xpY3ldPVwic2VsZWN0ZWRQb2xpY3lcIiAoc3RlcENoYW5nZSk9XCJvblN0ZXBDaGFuZ2UoJGV2ZW50KVwiIChpc1ZhbGlkKT1cIm9uSXNWYWxpZCgkZXZlbnQpXCI+PC9naW8tcHMtc3RlcC1mb3JtPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJhY3Rpb25zXCIgYWxpZ249XCJlbmRcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbnNfX2NhbmNlbEJ0blwiIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwiXCI+Q2FuY2VsPC9idXR0b24+XG4gIDxidXR0b25cbiAgICAqbmdJZj1cInNlbGVjdGVkUG9saWN5XCJcbiAgICBjbGFzcz1cImFjdGlvbnNfX2FkZEJ0blwiXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICBtYXQtZmxhdC1idXR0b25cbiAgICByb2xlPVwiZGlhbG9nXCJcbiAgICBbZGlzYWJsZWRdPVwiIWlzVmFsaWQgfHwgaXNVbmxpY2Vuc2VkXCJcbiAgICAoY2xpY2spPVwib25BZGRQb2xpY3koKVwiXG4gID5cbiAgICBBZGQgcG9saWN5XG4gIDwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4iXX0=
|
|
@@ -17,10 +17,10 @@ import { Component, Inject } from '@angular/core';
|
|
|
17
17
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
18
18
|
import * as i0 from "@angular/core";
|
|
19
19
|
import * as i1 from "@angular/material/dialog";
|
|
20
|
-
import * as i2 from "@angular/
|
|
20
|
+
import * as i2 from "@angular/common";
|
|
21
21
|
import * as i3 from "@angular/material/button";
|
|
22
|
-
import * as i4 from "
|
|
23
|
-
import * as i5 from "
|
|
22
|
+
import * as i4 from "@angular/material/icon";
|
|
23
|
+
import * as i5 from "../step-form/gio-ps-step-form.component";
|
|
24
24
|
export class GioPolicyStudioStepEditDialogComponent {
|
|
25
25
|
constructor(dialogRef, flowDialogData) {
|
|
26
26
|
this.dialogRef = dialogRef;
|
|
@@ -34,11 +34,11 @@ export class GioPolicyStudioStepEditDialogComponent {
|
|
|
34
34
|
});
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
GioPolicyStudioStepEditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
38
|
-
GioPolicyStudioStepEditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
37
|
+
GioPolicyStudioStepEditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioStepEditDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
38
|
+
GioPolicyStudioStepEditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GioPolicyStudioStepEditDialogComponent, selector: "gio-ps-step-edit-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n <mat-icon class=\"title__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"step.name\" class=\"title__name\">{{ step.name }}</span>\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n\n <div class=\"title__description\">\n {{ policy.description }}\n </div>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-step-form [policy]=\"policy\" [(step)]=\"step\" (isValid)=\"isValid = $event\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSave()\" [disabled]=\"!isValid\">Save</button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__icon{margin-right:8px}.title__closeBtn{top:0;right:-20px;float:right}.title__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: ["step", "policy"], outputs: ["stepChange", "isValid"] }] });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioStepEditDialogComponent, decorators: [{
|
|
40
40
|
type: Component,
|
|
41
|
-
args: [{ selector: 'gio-ps-step-edit-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n <mat-icon class=\"title__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"step.name\" class=\"title__name\">{{ step.name }}</span>\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n\n <div class=\"title__description\">\n {{ policy.description }}\n </div>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-step-form [policy]=\"policy\" [(step)]=\"step\" (isValid)=\"isValid = $event\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSave()\" [disabled]=\"!isValid\">Save</button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__icon{margin-right:8px}.title__closeBtn{top
|
|
41
|
+
args: [{ selector: 'gio-ps-step-edit-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n <mat-icon class=\"title__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"step.name\" class=\"title__name\">{{ step.name }}</span>\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n\n <div class=\"title__description\">\n {{ policy.description }}\n </div>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-step-form [policy]=\"policy\" [(step)]=\"step\" (isValid)=\"isValid = $event\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSave()\" [disabled]=\"!isValid\">Save</button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__icon{margin-right:8px}.title__closeBtn{top:0;right:-20px;float:right}.title__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"] }]
|
|
42
42
|
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
43
43
|
type: Inject,
|
|
44
44
|
args: [MAT_DIALOG_DATA]
|