keevo-components 1.8.176 → 1.8.178

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.
@@ -6,7 +6,8 @@ import * as i2 from "@angular/common";
6
6
  import * as i3 from "primeng/menu";
7
7
  import * as i4 from "../kv-buttons/kv-button-secondary/kv-button-secondary.component";
8
8
  import * as i5 from "../kv-buttons/kv-button-success/kv-button-success.component";
9
- import * as i6 from "../kv-buttons/kv-button-popup/kv-button-popup.component";
9
+ import * as i6 from "../kv-buttons/kv-button-personalize/kv-button-personalize.component";
10
+ import * as i7 from "../kv-buttons/kv-button-popup/kv-button-popup.component";
10
11
  export class KvPageFormComponent {
11
12
  constructor(fb) {
12
13
  this.fb = fb;
@@ -38,11 +39,11 @@ export class KvPageFormComponent {
38
39
  this.iconBtnSaveToogle = "pi pi-chevron-down";
39
40
  this.showBtnSaveToogle = false;
40
41
  this.txtBtnSaveToogle = "Ações";
42
+ this.showBtnSecundary = false;
43
+ this.colorBtnSecundary = 'bg-blue-200';
41
44
  this.iconBtnToogle = "pi pi-chevron-down";
42
45
  this.showBtnToogle = false;
43
46
  this.txtBtnToogle = "Ações";
44
- this.disableBtnToogle = false;
45
- this.positionBtnToogle = 'end';
46
47
  this.classBtnToogle = 'bg-glue-500';
47
48
  /**
48
49
  * Botão fechar
@@ -56,6 +57,10 @@ export class KvPageFormComponent {
56
57
  * Cancelar
57
58
  */
58
59
  this.onCancel = new EventEmitter();
60
+ /**
61
+ * Ação do botão Secundary
62
+ */
63
+ this.onClickSecundary = new EventEmitter();
59
64
  }
60
65
  /**
61
66
  * Adiciona sub-título à tela
@@ -89,8 +94,12 @@ export class KvPageFormComponent {
89
94
  * @param event evento
90
95
  */
91
96
  save(event) {
97
+ console.log(event);
92
98
  this.onSave.emit(event);
93
99
  }
100
+ actionSecundary(event) {
101
+ this.onClickSecundary.emit(event);
102
+ }
94
103
  /**
95
104
  * Ajusta o tamanho da tela considerando o menu lateral
96
105
  */
@@ -105,11 +114,11 @@ export class KvPageFormComponent {
105
114
  }
106
115
  }
107
116
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPageFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
108
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPageFormComponent, selector: "kv-page-form", inputs: { formGroup: "formGroup", TituloForm: "TituloForm", SubTituloForm: "SubTituloForm", isSaveLoading: "isSaveLoading", popup: "popup", locationUseComponent: "locationUseComponent", iconBtnCancel: "iconBtnCancel", showBtnCancel: "showBtnCancel", txtBtnCancel: "txtBtnCancel", actionsCancelToogle: "actionsCancelToogle", iconBtnCancelToogle: "iconBtnCancelToogle", showBtnCancelToogle: "showBtnCancelToogle", txtBtnCancelToogle: "txtBtnCancelToogle", iconBtnSave: "iconBtnSave", showBtnSave: "showBtnSave", txtBtnSave: "txtBtnSave", disableBtnSave: "disableBtnSave", actionsSaveToogle: "actionsSaveToogle", iconBtnSaveToogle: "iconBtnSaveToogle", showBtnSaveToogle: "showBtnSaveToogle", txtBtnSaveToogle: "txtBtnSaveToogle", actionsToogle: "actionsToogle", iconBtnToogle: "iconBtnToogle", showBtnToogle: "showBtnToogle", txtBtnToogle: "txtBtnToogle", disableBtnToogle: "disableBtnToogle", positionBtnToogle: "positionBtnToogle", classBtnToogle: "classBtnToogle", disableBtnSair: "disableBtnSair" }, outputs: { onSave: "onSave", onCancel: "onCancel" }, ngImport: i0, template: "<div\r\n [formGroup]=\"formGroup\"\r\n class=\"grid-nogutter m-0\"\r\n id=\"page-form-container\"\r\n>\r\n\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <!-- <p-divider class=\"col-12\"></p-divider> -->\r\n\r\n <!-- Barra de a\u00E7\u00F5es -->\r\n <div class=\"flex flex-column lg:flex-row justify-content-end col-12 gap-2 barra-acoes grid grid-nogutter p-fluid\">\r\n\r\n @if(positionBtnToogle == 'start'){\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n [disabled]=\"disableBtnToogle\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n }\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-secondary border-300'\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n\r\n <kv-button-secondary\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (click)=\"cancel($event)\"\r\n class=\"w-full lg:w-auto\"\r\n >\r\n </kv-button-secondary>\r\n\r\n <kv-button-success\r\n *ngIf=\"showBtnSave\"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave\"\r\n [loading]=\"isSaveLoading\"\r\n (click)=\"!disableBtnSave ? save($event) : ''\"\r\n class=\"w-full lg:w-auto\"\r\n />\r\n\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-success border-green-500'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n\r\n\r\n @if(positionBtnToogle == 'end'){\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n [disabled]=\"disableBtnToogle\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n }\r\n </div>\r\n\r\n</div>", styles: ["::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}.sub-title{color:#ff0;position:relative;bottom:25px;z-index:1}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;left:0;right:0;background-color:#fff;padding:10px;z-index:999}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i3.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i4.KvButtonSecondaryComponent, selector: "kv-button-secondary" }, { kind: "component", type: i5.KvButtonSuccessComponent, selector: "kv-button-success" }, { kind: "component", type: i6.KvButtonPopupComponent, selector: "kv-button-popup", inputs: ["items", "classBtn"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
117
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: KvPageFormComponent, selector: "kv-page-form", inputs: { formGroup: "formGroup", TituloForm: "TituloForm", SubTituloForm: "SubTituloForm", isSaveLoading: "isSaveLoading", popup: "popup", locationUseComponent: "locationUseComponent", iconBtnCancel: "iconBtnCancel", showBtnCancel: "showBtnCancel", txtBtnCancel: "txtBtnCancel", actionsCancelToogle: "actionsCancelToogle", iconBtnCancelToogle: "iconBtnCancelToogle", showBtnCancelToogle: "showBtnCancelToogle", txtBtnCancelToogle: "txtBtnCancelToogle", iconBtnSave: "iconBtnSave", showBtnSave: "showBtnSave", txtBtnSave: "txtBtnSave", disableBtnSave: "disableBtnSave", actionsSaveToogle: "actionsSaveToogle", iconBtnSaveToogle: "iconBtnSaveToogle", showBtnSaveToogle: "showBtnSaveToogle", txtBtnSaveToogle: "txtBtnSaveToogle", iconBtnSecundary: "iconBtnSecundary", showBtnSecundary: "showBtnSecundary", txtBtnSecundary: "txtBtnSecundary", colorBtnSecundary: "colorBtnSecundary", actionsToogle: "actionsToogle", iconBtnToogle: "iconBtnToogle", showBtnToogle: "showBtnToogle", txtBtnToogle: "txtBtnToogle", classBtnToogle: "classBtnToogle", disableBtnSair: "disableBtnSair" }, outputs: { onSave: "onSave", onCancel: "onCancel", onClickSecundary: "onClickSecundary" }, ngImport: i0, template: "<div\r\n [formGroup]=\"formGroup\"\r\n class=\"grid-nogutter m-0\"\r\n id=\"page-form-container\"\r\n>\r\n\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <!-- <p-divider class=\"col-12\"></p-divider> -->\r\n\r\n <!-- Barra de a\u00E7\u00F5es -->\r\n <div class=\"flex flex-column lg:flex-row justify-content-end col-12 gap-2 barra-acoes grid grid-nogutter p-fluid\">\r\n\r\n <kv-button-secondary\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (onClick)=\"cancel($event)\"\r\n class=\"w-full lg:w-auto\"\r\n >\r\n </kv-button-secondary>\r\n <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-secondary border-300'\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button-personalize\r\n *ngIf=\"showBtnSecundary\"\r\n [label]=\"txtBtnSecundary\"\r\n [icon]=\"iconBtnSecundary\"\r\n [disabled]=\"isSaveLoading\"\r\n [color]=\"colorBtnSecundary\"\r\n (onClick)=\"actionSecundary($event)\"\r\n class=\"w-full lg:w-auto\"\r\n ></kv-button-personalize>\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button-success\r\n *ngIf=\"showBtnSave\"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave\"\r\n [loading]=\"isSaveLoading\"\r\n (onClick)=\"save($event)\"\r\n class=\"w-full lg:w-auto\"\r\n />\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-success border-green-500'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n </div>\r\n\r\n</div>\r\n", styles: ["::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}.sub-title{color:#ff0;position:relative;bottom:25px;z-index:1}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;left:0;right:0;background-color:#fff;padding:10px;z-index:999}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i3.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "component", type: i4.KvButtonSecondaryComponent, selector: "kv-button-secondary" }, { kind: "component", type: i5.KvButtonSuccessComponent, selector: "kv-button-success" }, { kind: "component", type: i6.KvButtonPersonalizeComponent, selector: "kv-button-personalize", inputs: ["colorHover", "textColor"] }, { kind: "component", type: i7.KvButtonPopupComponent, selector: "kv-button-popup", inputs: ["items", "classBtn"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
109
118
  }
110
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPageFormComponent, decorators: [{
111
120
  type: Component,
112
- args: [{ selector: 'kv-page-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n [formGroup]=\"formGroup\"\r\n class=\"grid-nogutter m-0\"\r\n id=\"page-form-container\"\r\n>\r\n\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <!-- <p-divider class=\"col-12\"></p-divider> -->\r\n\r\n <!-- Barra de a\u00E7\u00F5es -->\r\n <div class=\"flex flex-column lg:flex-row justify-content-end col-12 gap-2 barra-acoes grid grid-nogutter p-fluid\">\r\n\r\n @if(positionBtnToogle == 'start'){\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n [disabled]=\"disableBtnToogle\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n }\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-secondary border-300'\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n\r\n <kv-button-secondary\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (click)=\"cancel($event)\"\r\n class=\"w-full lg:w-auto\"\r\n >\r\n </kv-button-secondary>\r\n\r\n <kv-button-success\r\n *ngIf=\"showBtnSave\"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave\"\r\n [loading]=\"isSaveLoading\"\r\n (click)=\"!disableBtnSave ? save($event) : ''\"\r\n class=\"w-full lg:w-auto\"\r\n />\r\n\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-success border-green-500'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n\r\n\r\n @if(positionBtnToogle == 'end'){\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n [disabled]=\"disableBtnToogle\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n }\r\n </div>\r\n\r\n</div>", styles: ["::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}.sub-title{color:#ff0;position:relative;bottom:25px;z-index:1}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;left:0;right:0;background-color:#fff;padding:10px;z-index:999}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}\n"] }]
121
+ args: [{ selector: 'kv-page-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n [formGroup]=\"formGroup\"\r\n class=\"grid-nogutter m-0\"\r\n id=\"page-form-container\"\r\n>\r\n\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <!-- <p-divider class=\"col-12\"></p-divider> -->\r\n\r\n <!-- Barra de a\u00E7\u00F5es -->\r\n <div class=\"flex flex-column lg:flex-row justify-content-end col-12 gap-2 barra-acoes grid grid-nogutter p-fluid\">\r\n\r\n <kv-button-secondary\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (onClick)=\"cancel($event)\"\r\n class=\"w-full lg:w-auto\"\r\n >\r\n </kv-button-secondary>\r\n <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-secondary border-300'\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button-personalize\r\n *ngIf=\"showBtnSecundary\"\r\n [label]=\"txtBtnSecundary\"\r\n [icon]=\"iconBtnSecundary\"\r\n [disabled]=\"isSaveLoading\"\r\n [color]=\"colorBtnSecundary\"\r\n (onClick)=\"actionSecundary($event)\"\r\n class=\"w-full lg:w-auto\"\r\n ></kv-button-personalize>\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n <kv-button-success\r\n *ngIf=\"showBtnSave\"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave\"\r\n [loading]=\"isSaveLoading\"\r\n (onClick)=\"save($event)\"\r\n class=\"w-full lg:w-auto\"\r\n />\r\n\r\n <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-success border-green-500'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n [style.display]=\"'none'\"\r\n ></p-menu>\r\n\r\n </div>\r\n\r\n</div>\r\n", styles: ["::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}.sub-title{color:#ff0;position:relative;bottom:25px;z-index:1}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;left:0;right:0;background-color:#fff;padding:10px;z-index:999}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}\n"] }]
113
122
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { formGroup: [{
114
123
  type: Input
115
124
  }], TituloForm: [{
@@ -152,6 +161,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
152
161
  type: Input
153
162
  }], txtBtnSaveToogle: [{
154
163
  type: Input
164
+ }], iconBtnSecundary: [{
165
+ type: Input
166
+ }], showBtnSecundary: [{
167
+ type: Input
168
+ }], txtBtnSecundary: [{
169
+ type: Input
170
+ }], colorBtnSecundary: [{
171
+ type: Input
155
172
  }], actionsToogle: [{
156
173
  type: Input
157
174
  }], iconBtnToogle: [{
@@ -160,10 +177,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
160
177
  type: Input
161
178
  }], txtBtnToogle: [{
162
179
  type: Input
163
- }], disableBtnToogle: [{
164
- type: Input
165
- }], positionBtnToogle: [{
166
- type: Input
167
180
  }], classBtnToogle: [{
168
181
  type: Input
169
182
  }], disableBtnSair: [{
@@ -172,5 +185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
172
185
  type: Output
173
186
  }], onCancel: [{
174
187
  type: Output
188
+ }], onClickSecundary: [{
189
+ type: Output
175
190
  }] } });
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBhZ2UtZm9ybS9rdi1wYWdlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGFnZS1mb3JtL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBRUwsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBVXhCLE1BQU0sT0FBTyxtQkFBbUI7SUFzRTlCLFlBQW9CLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBcEVuQzs7V0FFRztRQUNNLGNBQVMsR0FBYyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QyxlQUFVLEdBQXVCLEVBQUUsQ0FBQztRQUNwQyxrQkFBYSxHQUF1QixFQUFFLENBQUM7UUFFdkMsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUN2Qix5QkFBb0IsR0FBc0IsUUFBUSxDQUFDO1FBQzVELGlDQUFpQztRQUVqQzs7V0FFRztRQUNNLGtCQUFhLEdBQVcsbUJBQW1CLENBQUM7UUFDNUMsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFDOUIsaUJBQVksR0FBVyxVQUFVLENBQUM7UUFNbEMsd0JBQW1CLEdBQVcsb0JBQW9CLENBQUM7UUFDbkQsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLHVCQUFrQixHQUFXLFVBQVUsQ0FBQztRQUVqRDs7V0FFRztRQUNNLGdCQUFXLEdBQVcsWUFBWSxDQUFDO1FBQ25DLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLGVBQVUsR0FBVyxRQUFRLENBQUM7UUFDOUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFNaEMsc0JBQWlCLEdBQVcsb0JBQW9CLENBQUM7UUFDakQsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQ25DLHFCQUFnQixHQUFXLE9BQU8sQ0FBQztRQU1uQyxrQkFBYSxHQUFXLG9CQUFvQixDQUFDO1FBQzdDLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGlCQUFZLEdBQVcsT0FBTyxDQUFDO1FBQy9CLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxzQkFBaUIsR0FBVyxLQUFLLENBQUM7UUFDbEMsbUJBQWMsR0FBVyxhQUFhLENBQUM7UUFFaEQ7O1dBRUc7UUFDTSxtQkFBYyxHQUFZLElBQUksQ0FBQztRQUV4Qzs7V0FFRztRQUNPLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV6RDs7V0FFRztRQUNPLGFBQVEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVwQixDQUFDO0lBRXhDOztPQUVHO0lBQ0gsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUMzRSxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2RCxlQUFlLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQ2pELGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQTtnQkFDMUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFBO2dCQUNwQyxlQUFlLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7Z0JBRXhDLGFBQWEsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDN0MsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQVk7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBQyxLQUFZO1FBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsOEJBQThCO1FBQzVCLElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3hDLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUUxRCxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNULElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQ2pDLElBQUksYUFBYSxDQUFDO2dCQUVsQixhQUFhLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQTtZQUVqQyxDQUFDO1FBQ0gsQ0FBQztJQUdILENBQUM7OEdBaElVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLG1sQ0N0QmhDLHUzR0FvSE07OzJGRDlGTyxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsY0FBYyxtQkFHUCx1QkFBdUIsQ0FBQyxNQUFNO2dGQU90QyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBTUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBS0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUtHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0ksTUFBTTtzQkFBZixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtR3JvdXBcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBBY3Rpb25JdGVtIH0gZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvdGFibGUvYWN0aW9uLWl0ZW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1wYWdlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlBhZ2VGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uZmlndXJhw6fDtWVzIGRvIGZvcm11bMOhcmlvXHJcbiAgICovXHJcbiAgQElucHV0KCkgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBASW5wdXQoKSBUaXR1bG9Gb3JtOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnJztcclxuICBASW5wdXQoKSBTdWJUaXR1bG9Gb3JtOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnJztcclxuICBASW5wdXQoKSBpc1NhdmVMb2FkaW5nITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBwb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxvY2F0aW9uVXNlQ29tcG9uZW50OiAncGFnZScgfCAnZGlhbG9nJyA9ICdkaWFsb2cnO1xyXG4gIC8vIEBJbnB1dCgpIGV4cGFuZE1lbnUhOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gY2FuY2VsYXJcclxuICAgKi9cclxuICBASW5wdXQoKSBpY29uQnRuQ2FuY2VsOiBzdHJpbmcgPSAncGkgcGktZncgcGktdGltZXMnO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5DYW5jZWw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHR4dEJ0bkNhbmNlbDogc3RyaW5nID0gXCJDYW5jZWxhclwiO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gZGUgY2FuY2VsYXIgY29tIG9ww6fDtWVzXHJcbiAgICovXHJcbiAgQElucHV0KCkgYWN0aW9uc0NhbmNlbFRvb2dsZSE6IEFjdGlvbkl0ZW1bXTtcclxuICBASW5wdXQoKSBpY29uQnRuQ2FuY2VsVG9vZ2xlOiBzdHJpbmcgPSBcInBpIHBpLWNoZXZyb24tZG93blwiO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5DYW5jZWxUb29nbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eHRCdG5DYW5jZWxUb29nbGU6IHN0cmluZyA9IFwiQ2FuY2VsYXJcIjtcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIHNhbHZhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGljb25CdG5TYXZlOiBzdHJpbmcgPSAncGkgcGktc2F2ZSc7XHJcbiAgQElucHV0KCkgc2hvd0J0blNhdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHR4dEJ0blNhdmU6IHN0cmluZyA9IFwiU2FsdmFyXCI7XHJcbiAgQElucHV0KCkgZGlzYWJsZUJ0blNhdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGRlIHNhbHZhciBjb20gb3DDp8O1ZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBhY3Rpb25zU2F2ZVRvb2dsZSE6IEFjdGlvbkl0ZW1bXTtcclxuICBASW5wdXQoKSBpY29uQnRuU2F2ZVRvb2dsZTogc3RyaW5nID0gXCJwaSBwaS1jaGV2cm9uLWRvd25cIjtcclxuICBASW5wdXQoKSBzaG93QnRuU2F2ZVRvb2dsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHR4dEJ0blNhdmVUb29nbGU6IHN0cmluZyA9IFwiQcOnw7Vlc1wiO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gZ2Vuw6lyaWNvIGNvbSBvcMOnw7Vlc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFjdGlvbnNUb29nbGUhOiBBY3Rpb25JdGVtW107XHJcbiAgQElucHV0KCkgaWNvbkJ0blRvb2dsZTogc3RyaW5nID0gXCJwaSBwaS1jaGV2cm9uLWRvd25cIjtcclxuICBASW5wdXQoKSBzaG93QnRuVG9vZ2xlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdHh0QnRuVG9vZ2xlOiBzdHJpbmcgPSBcIkHDp8O1ZXNcIjtcclxuICBASW5wdXQoKSBkaXNhYmxlQnRuVG9vZ2xlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcG9zaXRpb25CdG5Ub29nbGU6IHN0cmluZyA9ICdlbmQnO1xyXG4gIEBJbnB1dCgpIGNsYXNzQnRuVG9vZ2xlOiBzdHJpbmcgPSAnYmctZ2x1ZS01MDAnO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gZmVjaGFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlzYWJsZUJ0blNhaXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBTYWx2YXIgZGFkb3NcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25TYXZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2FuY2VsYXJcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25DYW5jZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkaWNpb25hIHN1Yi10w610dWxvIMOgIHRlbGFcclxuICAgKi9cclxuICBhZGRTdWJUaXRsZSgpIHtcclxuICAgIGlmICh0aGlzLlN1YlRpdHVsb0Zvcm0pIHtcclxuICAgICAgY29uc3QgaGVhZGVyRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wLWRpYWxvZyAucC1kaWFsb2ctaGVhZGVyJyk7XHJcbiAgICAgIGlmIChoZWFkZXJFbGVtZW50KSB7XHJcbiAgICAgICAgY29uc3Qgc3VidGl0bGVFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIHN1YnRpdGxlRWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuU3ViVGl0dWxvRm9ybTtcclxuICAgICAgICBzdWJ0aXRsZUVsZW1lbnQuc3R5bGUuZm9udFNpemUgPSAnMC43NXJlbSdcclxuICAgICAgICBzdWJ0aXRsZUVsZW1lbnQuc3R5bGUud2lkdGggPSAnMTAwJSdcclxuICAgICAgICBzdWJ0aXRsZUVsZW1lbnQuc3R5bGUubWFyZ2luTGVmdCA9ICcycHgnXHJcblxyXG4gICAgICAgIGhlYWRlckVsZW1lbnQuYXBwZW5kQ2hpbGQoc3VidGl0bGVFbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFkZFN1YlRpdGxlKCk7XHJcbiAgICB0aGlzLnNldFBhZ2VGb3JtQ29udGFpbmVyQXR0cmlidXRlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGFyYSBvIG3DqXRvZG8gZGUgY2FuY2VsYW1lbnRvIGRhIHRlbGFcclxuICAgKiBAcGFyYW0gZXZlbnQgZXZlbnRvXHJcbiAgICovXHJcbiAgY2FuY2VsKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5vbkNhbmNlbC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BhcmEgbyBtw6l0b2RvIGRlIHNhbHZhciBkYSB0ZWxhXHJcbiAgICogQHBhcmFtIGV2ZW50IGV2ZW50b1xyXG4gICAqL1xyXG4gIHNhdmUoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLm9uU2F2ZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFqdXN0YSBvIHRhbWFuaG8gZGEgdGVsYSBjb25zaWRlcmFuZG8gbyBtZW51IGxhdGVyYWxcclxuICAgKi9cclxuICBzZXRQYWdlRm9ybUNvbnRhaW5lckF0dHJpYnV0ZXMoKSB7XHJcbiAgICBpZiAodGhpcy5sb2NhdGlvblVzZUNvbXBvbmVudCA9PSAncGFnZScpIHtcclxuICAgICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFnZS1mb3JtLWNvbnRhaW5lcicpO1xyXG5cclxuICAgICAgaWYgKGZvcm0pIHtcclxuICAgICAgICB2YXIgd2lkdGhGdWxsID0gZm9ybS5jbGllbnRXaWR0aDtcclxuICAgICAgICB2YXIgd2lkdGhBZGp1c3RlZDtcclxuXHJcbiAgICAgICAgd2lkdGhBZGp1c3RlZCA9IHdpZHRoRnVsbCAtIDMzMlxyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcblxyXG4gIH1cclxufSIsIjxkaXZcclxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXHJcbiAgY2xhc3M9XCJncmlkLW5vZ3V0dGVyIG0tMFwiXHJcbiAgaWQ9XCJwYWdlLWZvcm0tY29udGFpbmVyXCJcclxuPlxyXG5cclxuICA8IS0tIFJlbmRlcml6YcOnw6NvIGRvIGZvcm0gLS0+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBwLTBcIiBpZD1cInBhZ2UtZm9ybS1jb250ZW50XCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gRGl2aWRlciAtLT5cclxuICA8IS0tIDxwLWRpdmlkZXIgY2xhc3M9XCJjb2wtMTJcIj48L3AtZGl2aWRlcj4gLS0+XHJcblxyXG4gIDwhLS0gQmFycmEgZGUgYcOnw7VlcyAtLT5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBsZzpmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIGNvbC0xMiBnYXAtMiBiYXJyYS1hY29lcyBncmlkIGdyaWQtbm9ndXR0ZXIgcC1mbHVpZFwiPlxyXG5cclxuICAgIEBpZihwb3NpdGlvbkJ0blRvb2dsZSA9PSAnc3RhcnQnKXtcclxuICAgICAgPGt2LWJ1dHRvbi1wb3B1cFxyXG4gICAgICAgICpuZ0lmPVwiYWN0aW9uc1Rvb2dsZSAmJiBzaG93QnRuVG9vZ2xlXCJcclxuICAgICAgICBbbGFiZWxdPVwidHh0QnRuVG9vZ2xlXCJcclxuICAgICAgICBbaWNvbl09XCJpY29uQnRuVG9vZ2xlXCJcclxuICAgICAgICAoY2xpY2spPVwibWVudVRvb2dsZS50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVCdG5Ub29nbGVcIlxyXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgICAgY2xhc3NCdG49XCJ7e2NsYXNzQnRuVG9vZ2xlfX1cIlxyXG4gICAgICA+XHJcbiAgICAgIDwva3YtYnV0dG9uLXBvcHVwPlxyXG4gICAgICA8cC1tZW51XHJcbiAgICAgICAgI21lbnVUb29nbGVcclxuICAgICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgICAgW21vZGVsXT1cImFjdGlvbnNUb29nbGVcIlxyXG4gICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgPjwvcC1tZW51PlxyXG4gICAgfVxyXG5cclxuICAgIDxrdi1idXR0b24tcG9wdXBcclxuICAgICAgICAqbmdJZj1cImFjdGlvbnNDYW5jZWxUb29nbGUgJiYgc2hvd0J0bkNhbmNlbFRvb2dsZVwiXHJcbiAgICAgICAgW2xhYmVsXT1cInR4dEJ0bkNhbmNlbFRvb2dsZVwiXHJcbiAgICAgICAgW2ljb25dPVwiaWNvbkJ0bkNhbmNlbFRvb2dsZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm1lbnVDYW5jZWwudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgICAgW2NsYXNzQnRuXT1cIididG4tc2Vjb25kYXJ5IGJvcmRlci0zMDAnXCJcclxuICAgICAgPlxyXG4gICAgICA8L2t2LWJ1dHRvbi1wb3B1cD5cclxuICAgICAgPHAtbWVudVxyXG4gICAgICAgICNtZW51Q2FuY2VsXHJcbiAgICAgICAgW3BvcHVwXT1cInRydWVcIlxyXG4gICAgICAgIFttb2RlbF09XCJhY3Rpb25zQ2FuY2VsVG9vZ2xlXCJcclxuICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgID48L3AtbWVudT5cclxuXHJcbiAgICA8a3YtYnV0dG9uLXNlY29uZGFyeVxyXG4gICAgICAqbmdJZj1cInNob3dCdG5DYW5jZWxcIlxyXG4gICAgICBbbGFiZWxdPVwidHh0QnRuQ2FuY2VsXCJcclxuICAgICAgW2ljb25dPVwiaWNvbkJ0bkNhbmNlbFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgICAgKGNsaWNrKT1cImNhbmNlbCgkZXZlbnQpXCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgID5cclxuICAgIDwva3YtYnV0dG9uLXNlY29uZGFyeT5cclxuXHJcbiAgICA8a3YtYnV0dG9uLXN1Y2Nlc3NcclxuICAgICAgKm5nSWY9XCJzaG93QnRuU2F2ZVwiXHJcbiAgICAgIFtsYWJlbF09XCJ0eHRCdG5TYXZlXCJcclxuICAgICAgW2ljb25dPVwiaWNvbkJ0blNhdmVcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUJ0blNhdmVcIlxyXG4gICAgICBbbG9hZGluZ109XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgICAgKGNsaWNrKT1cIiFkaXNhYmxlQnRuU2F2ZSA/IHNhdmUoJGV2ZW50KSA6ICcnXCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgIC8+XHJcblxyXG5cclxuICAgIDxrdi1idXR0b24tcG9wdXBcclxuICAgICAgKm5nSWY9XCJhY3Rpb25zU2F2ZVRvb2dsZSAmJiBzaG93QnRuU2F2ZVRvb2dsZVwiXHJcbiAgICAgIFtsYWJlbF09XCJ0eHRCdG5TYXZlVG9vZ2xlXCJcclxuICAgICAgW2ljb25dPVwiaWNvbkJ0blNhdmVUb29nbGVcIlxyXG4gICAgICAoY2xpY2spPVwibWVudVNhdmUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICBbbG9hZGluZ109XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgW2NsYXNzQnRuXT1cIididG4tc3VjY2VzcyBib3JkZXItZ3JlZW4tNTAwJ1wiXHJcbiAgICA+XHJcbiAgICA8L2t2LWJ1dHRvbi1wb3B1cD5cclxuXHJcbiAgICA8cC1tZW51XHJcbiAgICAgICNtZW51U2F2ZVxyXG4gICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgIFttb2RlbF09XCJhY3Rpb25zU2F2ZVRvb2dsZVwiXHJcbiAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICA+PC9wLW1lbnU+XHJcblxyXG5cclxuICAgIEBpZihwb3NpdGlvbkJ0blRvb2dsZSA9PSAnZW5kJyl7XHJcbiAgICAgIDxrdi1idXR0b24tcG9wdXBcclxuICAgICAgICAqbmdJZj1cImFjdGlvbnNUb29nbGUgJiYgc2hvd0J0blRvb2dsZVwiXHJcbiAgICAgICAgW2xhYmVsXT1cInR4dEJ0blRvb2dsZVwiXHJcbiAgICAgICAgW2ljb25dPVwiaWNvbkJ0blRvb2dsZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm1lbnVUb29nbGUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQnRuVG9vZ2xlXCJcclxuICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgIGNsYXNzQnRuPVwie3tjbGFzc0J0blRvb2dsZX19XCJcclxuICAgICAgPlxyXG4gICAgICA8L2t2LWJ1dHRvbi1wb3B1cD5cclxuICAgICAgPHAtbWVudVxyXG4gICAgICAgICNtZW51VG9vZ2xlXHJcbiAgICAgICAgW3BvcHVwXT1cInRydWVcIlxyXG4gICAgICAgIFttb2RlbF09XCJhY3Rpb25zVG9vZ2xlXCJcclxuICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgID48L3AtbWVudT5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PiJdfQ==
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBhZ2UtZm9ybS9rdi1wYWdlLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGFnZS1mb3JtL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBRUwsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQVV4QixNQUFNLE9BQU8sbUJBQW1CO0lBaUY5QixZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQS9FbkM7O1dBRUc7UUFDTSxjQUFTLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekMsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFDcEMsa0JBQWEsR0FBdUIsRUFBRSxDQUFDO1FBRXZDLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIseUJBQW9CLEdBQXNCLFFBQVEsQ0FBQztRQUM1RCxpQ0FBaUM7UUFFakM7O1dBRUc7UUFDTSxrQkFBYSxHQUFXLG1CQUFtQixDQUFDO1FBQzVDLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBQzlCLGlCQUFZLEdBQVcsVUFBVSxDQUFDO1FBTWxDLHdCQUFtQixHQUFXLG9CQUFvQixDQUFDO1FBQ25ELHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUNyQyx1QkFBa0IsR0FBVyxVQUFVLENBQUM7UUFFakQ7O1dBRUc7UUFDTSxnQkFBVyxHQUFXLFlBQVksQ0FBQztRQUNuQyxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixlQUFVLEdBQVcsUUFBUSxDQUFDO1FBQzlCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBTWhDLHNCQUFpQixHQUFXLG9CQUFvQixDQUFDO1FBQ2pELHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxxQkFBZ0IsR0FBVyxPQUFPLENBQUM7UUFNbkMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWxDLHNCQUFpQixHQUFXLGFBQWEsQ0FBQTtRQU16QyxrQkFBYSxHQUFXLG9CQUFvQixDQUFDO1FBQzdDLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLGlCQUFZLEdBQVcsT0FBTyxDQUFDO1FBQy9CLG1CQUFjLEdBQVcsYUFBYSxDQUFDO1FBRWhEOztXQUVHO1FBQ00sbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFFeEM7O1dBRUc7UUFDTyxXQUFNLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFekQ7O1dBRUc7UUFDTyxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0Q7O1dBRUc7UUFDTyxxQkFBZ0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUU1QixDQUFDO0lBRXhDOztPQUVHO0lBQ0gsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUMzRSxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2RCxlQUFlLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7Z0JBQ2pELGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQTtnQkFDMUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFBO2dCQUNwQyxlQUFlLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7Z0JBRXhDLGFBQWEsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDN0MsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQVk7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBQyxLQUFZO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVk7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCw4QkFBOEI7UUFDNUIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLElBQUksTUFBTSxFQUFFLENBQUM7WUFDeEMsSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBRTFELElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDakMsSUFBSSxhQUFhLENBQUM7Z0JBRWxCLGFBQWEsR0FBRyxTQUFTLEdBQUcsR0FBRyxDQUFBO1lBRWpDLENBQUM7UUFDSCxDQUFDO0lBR0gsQ0FBQzs4R0FoSlUsbUJBQW1CO2tHQUFuQixtQkFBbUIsbXNDQ3RCaEMsa2lHQXlHQTs7MkZEbkZhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU07Z0ZBT3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFNRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFLRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFLRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBS0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csY0FBYztzQkFBdEIsS0FBSztnQkFLSSxNQUFNO3NCQUFmLE1BQU07Z0JBS0csUUFBUTtzQkFBakIsTUFBTTtnQkFLRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtR3JvdXBcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBBY3Rpb25JdGVtIH0gZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvdGFibGUvYWN0aW9uLWl0ZW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrdi1wYWdlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9rdi1wYWdlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2t2LXBhZ2UtZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBLdlBhZ2VGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uZmlndXJhw6fDtWVzIGRvIGZvcm11bMOhcmlvXHJcbiAgICovXHJcbiAgQElucHV0KCkgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBASW5wdXQoKSBUaXR1bG9Gb3JtOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnJztcclxuICBASW5wdXQoKSBTdWJUaXR1bG9Gb3JtOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnJztcclxuICBASW5wdXQoKSBpc1NhdmVMb2FkaW5nITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBwb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGxvY2F0aW9uVXNlQ29tcG9uZW50OiAncGFnZScgfCAnZGlhbG9nJyA9ICdkaWFsb2cnO1xyXG4gIC8vIEBJbnB1dCgpIGV4cGFuZE1lbnUhOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gY2FuY2VsYXJcclxuICAgKi9cclxuICBASW5wdXQoKSBpY29uQnRuQ2FuY2VsOiBzdHJpbmcgPSAncGkgcGktZncgcGktdGltZXMnO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5DYW5jZWw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHR4dEJ0bkNhbmNlbDogc3RyaW5nID0gXCJDYW5jZWxhclwiO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gZGUgY2FuY2VsYXIgY29tIG9ww6fDtWVzXHJcbiAgICovXHJcbiAgQElucHV0KCkgYWN0aW9uc0NhbmNlbFRvb2dsZSE6IEFjdGlvbkl0ZW1bXTtcclxuICBASW5wdXQoKSBpY29uQnRuQ2FuY2VsVG9vZ2xlOiBzdHJpbmcgPSBcInBpIHBpLWNoZXZyb24tZG93blwiO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5DYW5jZWxUb29nbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eHRCdG5DYW5jZWxUb29nbGU6IHN0cmluZyA9IFwiQ2FuY2VsYXJcIjtcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIHNhbHZhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGljb25CdG5TYXZlOiBzdHJpbmcgPSAncGkgcGktc2F2ZSc7XHJcbiAgQElucHV0KCkgc2hvd0J0blNhdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHR4dEJ0blNhdmU6IHN0cmluZyA9IFwiU2FsdmFyXCI7XHJcbiAgQElucHV0KCkgZGlzYWJsZUJ0blNhdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGRlIHNhbHZhciBjb20gb3DDp8O1ZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBhY3Rpb25zU2F2ZVRvb2dsZSE6IEFjdGlvbkl0ZW1bXTtcclxuICBASW5wdXQoKSBpY29uQnRuU2F2ZVRvb2dsZTogc3RyaW5nID0gXCJwaSBwaS1jaGV2cm9uLWRvd25cIjtcclxuICBASW5wdXQoKSBzaG93QnRuU2F2ZVRvb2dsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHR4dEJ0blNhdmVUb29nbGU6IHN0cmluZyA9IFwiQcOnw7Vlc1wiO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gZ2Vuw6lyaWNvICdTZWN1bmRhcnknXHJcbiAgICovXHJcbiAgQElucHV0KCkgaWNvbkJ0blNlY3VuZGFyeSE6IHN0cmluZztcclxuICBASW5wdXQoKSBzaG93QnRuU2VjdW5kYXJ5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdHh0QnRuU2VjdW5kYXJ5ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbG9yQnRuU2VjdW5kYXJ5OiBzdHJpbmcgPSAnYmctYmx1ZS0yMDAnXHJcblxyXG4gIC8qKlxyXG4gICAqIEJvdMOjbyBnZW7DqXJpY28gY29tIG9ww6fDtWVzXHJcbiAgICovXHJcbiAgQElucHV0KCkgYWN0aW9uc1Rvb2dsZSE6IEFjdGlvbkl0ZW1bXTtcclxuICBASW5wdXQoKSBpY29uQnRuVG9vZ2xlOiBzdHJpbmcgPSBcInBpIHBpLWNoZXZyb24tZG93blwiO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5Ub29nbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eHRCdG5Ub29nbGU6IHN0cmluZyA9IFwiQcOnw7Vlc1wiO1xyXG4gIEBJbnB1dCgpIGNsYXNzQnRuVG9vZ2xlOiBzdHJpbmcgPSAnYmctZ2x1ZS01MDAnO1xyXG5cclxuICAvKipcclxuICAgKiBCb3TDo28gZmVjaGFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGlzYWJsZUJ0blNhaXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBTYWx2YXIgZGFkb3NcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25TYXZlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ2FuY2VsYXJcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25DYW5jZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKipcclxuICAgKiBBw6fDo28gZG8gYm90w6NvIFNlY3VuZGFyeVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBvbkNsaWNrU2VjdW5kYXJ5OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGljaW9uYSBzdWItdMOtdHVsbyDDoCB0ZWxhXHJcbiAgICovXHJcbiAgYWRkU3ViVGl0bGUoKSB7XHJcbiAgICBpZiAodGhpcy5TdWJUaXR1bG9Gb3JtKSB7XHJcbiAgICAgIGNvbnN0IGhlYWRlckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1kaWFsb2cgLnAtZGlhbG9nLWhlYWRlcicpO1xyXG4gICAgICBpZiAoaGVhZGVyRWxlbWVudCkge1xyXG4gICAgICAgIGNvbnN0IHN1YnRpdGxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICBzdWJ0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLlN1YlRpdHVsb0Zvcm07XHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLmZvbnRTaXplID0gJzAuNzVyZW0nXHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLndpZHRoID0gJzEwMCUnXHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLm1hcmdpbkxlZnQgPSAnMnB4J1xyXG5cclxuICAgICAgICBoZWFkZXJFbGVtZW50LmFwcGVuZENoaWxkKHN1YnRpdGxlRWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hZGRTdWJUaXRsZSgpO1xyXG4gICAgdGhpcy5zZXRQYWdlRm9ybUNvbnRhaW5lckF0dHJpYnV0ZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BhcmEgbyBtw6l0b2RvIGRlIGNhbmNlbGFtZW50byBkYSB0ZWxhXHJcbiAgICogQHBhcmFtIGV2ZW50IGV2ZW50b1xyXG4gICAqL1xyXG4gIGNhbmNlbChldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMub25DYW5jZWwuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNwYXJhIG8gbcOpdG9kbyBkZSBzYWx2YXIgZGEgdGVsYVxyXG4gICAqIEBwYXJhbSBldmVudCBldmVudG9cclxuICAgKi9cclxuICBzYXZlKGV2ZW50OiBFdmVudCkge1xyXG4gICAgY29uc29sZS5sb2coZXZlbnQpXHJcbiAgICB0aGlzLm9uU2F2ZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGFjdGlvblNlY3VuZGFyeShldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMub25DbGlja1NlY3VuZGFyeS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFqdXN0YSBvIHRhbWFuaG8gZGEgdGVsYSBjb25zaWRlcmFuZG8gbyBtZW51IGxhdGVyYWxcclxuICAgKi9cclxuICBzZXRQYWdlRm9ybUNvbnRhaW5lckF0dHJpYnV0ZXMoKSB7XHJcbiAgICBpZiAodGhpcy5sb2NhdGlvblVzZUNvbXBvbmVudCA9PSAncGFnZScpIHtcclxuICAgICAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFnZS1mb3JtLWNvbnRhaW5lcicpO1xyXG5cclxuICAgICAgaWYgKGZvcm0pIHtcclxuICAgICAgICB2YXIgd2lkdGhGdWxsID0gZm9ybS5jbGllbnRXaWR0aDtcclxuICAgICAgICB2YXIgd2lkdGhBZGp1c3RlZDtcclxuXHJcbiAgICAgICAgd2lkdGhBZGp1c3RlZCA9IHdpZHRoRnVsbCAtIDMzMlxyXG5cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXHJcbiAgY2xhc3M9XCJncmlkLW5vZ3V0dGVyIG0tMFwiXHJcbiAgaWQ9XCJwYWdlLWZvcm0tY29udGFpbmVyXCJcclxuPlxyXG5cclxuICA8IS0tIFJlbmRlcml6YcOnw6NvIGRvIGZvcm0gLS0+XHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBwLTBcIiBpZD1cInBhZ2UtZm9ybS1jb250ZW50XCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gRGl2aWRlciAtLT5cclxuICA8IS0tIDxwLWRpdmlkZXIgY2xhc3M9XCJjb2wtMTJcIj48L3AtZGl2aWRlcj4gLS0+XHJcblxyXG4gIDwhLS0gQmFycmEgZGUgYcOnw7VlcyAtLT5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBsZzpmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIGNvbC0xMiBnYXAtMiBiYXJyYS1hY29lcyBncmlkIGdyaWQtbm9ndXR0ZXIgcC1mbHVpZFwiPlxyXG5cclxuICAgIDxrdi1idXR0b24tc2Vjb25kYXJ5XHJcbiAgICAgICpuZ0lmPVwic2hvd0J0bkNhbmNlbFwiXHJcbiAgICAgIFtsYWJlbF09XCJ0eHRCdG5DYW5jZWxcIlxyXG4gICAgICBbaWNvbl09XCJpY29uQnRuQ2FuY2VsXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImlzU2F2ZUxvYWRpbmdcIlxyXG4gICAgICAob25DbGljayk9XCJjYW5jZWwoJGV2ZW50KVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICA+XHJcbiAgICA8L2t2LWJ1dHRvbi1zZWNvbmRhcnk+XHJcbiAgICA8a3YtYnV0dG9uLXBvcHVwXHJcbiAgICAgICAgKm5nSWY9XCJhY3Rpb25zQ2FuY2VsVG9vZ2xlICYmIHNob3dCdG5DYW5jZWxUb29nbGVcIlxyXG4gICAgICAgIFtsYWJlbF09XCJ0eHRCdG5DYW5jZWxUb29nbGVcIlxyXG4gICAgICAgIFtpY29uXT1cImljb25CdG5DYW5jZWxUb29nbGVcIlxyXG4gICAgICAgIChjbGljayk9XCJtZW51Q2FuY2VsLnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgIFtjbGFzc0J0bl09XCInYnRuLXNlY29uZGFyeSBib3JkZXItMzAwJ1wiXHJcbiAgICA+XHJcbiAgICAgIDwva3YtYnV0dG9uLXBvcHVwPlxyXG4gICAgICA8cC1tZW51XHJcbiAgICAgICAgI21lbnVDYW5jZWxcclxuICAgICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgICAgW21vZGVsXT1cImFjdGlvbnNDYW5jZWxUb29nbGVcIlxyXG4gICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIlxyXG4gICAgICA+PC9wLW1lbnU+XHJcblxyXG4gICAgPGt2LWJ1dHRvbi1wZXJzb25hbGl6ZVxyXG4gICAgKm5nSWY9XCJzaG93QnRuU2VjdW5kYXJ5XCJcclxuICAgIFtsYWJlbF09XCJ0eHRCdG5TZWN1bmRhcnlcIlxyXG4gICAgW2ljb25dPVwiaWNvbkJ0blNlY3VuZGFyeVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiaXNTYXZlTG9hZGluZ1wiXHJcbiAgICBbY29sb3JdPVwiY29sb3JCdG5TZWN1bmRhcnlcIlxyXG4gICAgKG9uQ2xpY2spPVwiYWN0aW9uU2VjdW5kYXJ5KCRldmVudClcIlxyXG4gICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgID48L2t2LWJ1dHRvbi1wZXJzb25hbGl6ZT5cclxuXHJcbiAgICA8a3YtYnV0dG9uLXBvcHVwXHJcbiAgICAgICpuZ0lmPVwiYWN0aW9uc1Rvb2dsZSAmJiBzaG93QnRuVG9vZ2xlXCJcclxuICAgICAgW2xhYmVsXT1cInR4dEJ0blRvb2dsZVwiXHJcbiAgICAgIFtpY29uXT1cImljb25CdG5Ub29nbGVcIlxyXG4gICAgICAoY2xpY2spPVwibWVudVRvb2dsZS50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgIGNsYXNzQnRuPVwie3tjbGFzc0J0blRvb2dsZX19XCJcclxuICAgID5cclxuICAgIDwva3YtYnV0dG9uLXBvcHVwPlxyXG4gICAgPHAtbWVudVxyXG4gICAgICAjbWVudVRvb2dsZVxyXG4gICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgIFttb2RlbF09XCJhY3Rpb25zVG9vZ2xlXCJcclxuICAgICAgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCJcclxuICAgID48L3AtbWVudT5cclxuXHJcbiAgICA8a3YtYnV0dG9uLXN1Y2Nlc3NcclxuICAgICpuZ0lmPVwic2hvd0J0blNhdmVcIlxyXG4gICAgW2xhYmVsXT1cInR4dEJ0blNhdmVcIlxyXG4gICAgW2ljb25dPVwiaWNvbkJ0blNhdmVcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVCdG5TYXZlXCJcclxuICAgIFtsb2FkaW5nXT1cImlzU2F2ZUxvYWRpbmdcIlxyXG4gICAgKG9uQ2xpY2spPVwic2F2ZSgkZXZlbnQpXCJcclxuICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgLz5cclxuXHJcbiAgICA8a3YtYnV0dG9uLXBvcHVwXHJcbiAgICAgICpuZ0lmPVwiYWN0aW9uc1NhdmVUb29nbGUgJiYgc2hvd0J0blNhdmVUb29nbGVcIlxyXG4gICAgICBbbGFiZWxdPVwidHh0QnRuU2F2ZVRvb2dsZVwiXHJcbiAgICAgIFtpY29uXT1cImljb25CdG5TYXZlVG9vZ2xlXCJcclxuICAgICAgKGNsaWNrKT1cIm1lbnVTYXZlLnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgW2xvYWRpbmddPVwiaXNTYXZlTG9hZGluZ1wiXHJcbiAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgIFtjbGFzc0J0bl09XCInYnRuLXN1Y2Nlc3MgYm9yZGVyLWdyZWVuLTUwMCdcIlxyXG4gICAgPlxyXG4gICAgPC9rdi1idXR0b24tcG9wdXA+XHJcblxyXG4gICAgPHAtbWVudVxyXG4gICAgICAjbWVudVNhdmVcclxuICAgICAgW3BvcHVwXT1cInRydWVcIlxyXG4gICAgICBbbW9kZWxdPVwiYWN0aW9uc1NhdmVUb29nbGVcIlxyXG4gICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICBbc3R5bGUuZGlzcGxheV09XCInbm9uZSdcIlxyXG4gICAgPjwvcC1tZW51PlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
@@ -156,11 +156,11 @@ export class KvPageStepperComponent {
156
156
  }
157
157
  }
158
158
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPageStepperComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
159
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPageStepperComponent, selector: "kv-page-stepper", inputs: { panels: "panels", activeStep: "activeStep", orientation: "orientation", linear: "linear", formGroup: "formGroup", TituloForm: "TituloForm", SubTituloForm: "SubTituloForm", isSaveLoading: "isSaveLoading", popup: "popup", locationUseComponent: "locationUseComponent", iconBtnCancel: "iconBtnCancel", showBtnCancel: "showBtnCancel", txtBtnCancel: "txtBtnCancel", iconBtnSave: "iconBtnSave", showBtnSave: "showBtnSave", txtBtnSave: "txtBtnSave", disableBtnSave: "disableBtnSave", disableBtnSair: "disableBtnSair" }, outputs: { activeStepChange: "activeStepChange", onSave: "onSave", onCancel: "onCancel" }, ngImport: i0, template: "<!-- [formGroup]=\"formGroup\" -->\r\n<div\r\n class=\"grid-nogutter m-0\"\r\n id=\"page-form-container\"\r\n>\r\n\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n\r\n\r\n\r\n<!--______________________________________________________________________________________________________-->\r\n\r\n\r\n\r\n <p-stepper\r\n [activeStep]=\"activeStep\"\r\n [orientation]=\"orientation\"\r\n [linear]=\"linear\"\r\n (activeStepChange)=\"onActiveStepChange($event)\"\r\n >\r\n <ng-container *ngFor=\"let panel of panels; let i = index\">\r\n <p-stepperPanel [header]=\"panel.header\">\r\n\r\n <ng-template\r\n pTemplate=\"content\"\r\n let-nextCallback=\"nextCallback\"\r\n let-prevCallback=\"prevCallback\"\r\n >\r\n\r\n <div class=\"flex flex-column\">\r\n <div class=\"content-panel\" [dynamicComponent]=\"{ component: panel.contentTemplate, inputs: panel.inputs || {} }\">\r\n <!-- <ng-container\r\n *ngComponentOutlet=\"panel.contentTemplate\"\r\n ></ng-container> -->\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"flex pt-4\"\r\n [ngClass]=\"{\r\n 'justify-content-between': panel.id !== 0,\r\n 'justify-content-end': panel.id === 0,\r\n 'justify-content-start': orientation === 'vertical'\r\n }\"\r\n >\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <div class=\"flex flex-column lg:flex-row justify-content-end col-12 gap-2 barra-acoes grid grid-nogutter p-fluid\">\r\n\r\n\r\n\r\n <kv-button-secondary\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (click)=\"cancel($event)\"\r\n class=\"w-full lg:w-auto\"\r\n >\r\n </kv-button-secondary>\r\n\r\n <!-- panel.id !== 0 -->\r\n @if(true){\r\n <kv-button-personalize\r\n class=\"w-full lg:w-auto\"\r\n [label]=\"'Voltar'\"\r\n color=\"#002542\"\r\n [disabled]=\"panel.id == 0\"\r\n [icon]=\"'pi pi-arrow-left'\"\r\n (click)=\"prevCallback.emit()\"\r\n >\r\n </kv-button-personalize>\r\n }\r\n\r\n\r\n <!-- panel.id !== panels.length - 1 -->\r\n @if(true){\r\n <kv-button-success\r\n (click)=\" panel.id != panels.length-1 ? nextCallback.emit() : save($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [icon]=\"'pi pi-arrow-right'\"\r\n [label]=\"panel.id != panels.length-1 ? 'Avan\u00E7ar ' : txtBtnSave\"\r\n iconPos=\"right\"\r\n ></kv-button-success>\r\n }\r\n<!--\r\n <kv-button-success\r\n *ngIf=\"showBtnSave && panel.id === panels.length - 1 \"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave || panel.id !== panels.length - 1\"\r\n [loading]=\"isSaveLoading\"\r\n (click)=\"nextCallback.emit()\"\r\n (click)=\"!disableBtnSave ? save($event) : ''\"\r\n class=\"w-full lg:w-auto\"\r\n /> -->\r\n\r\n\r\n\r\n <!-- @if(positionBtnToogle == 'start'){\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n [disabled]=\"disableBtnToogle\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n } -->\r\n\r\n <!-- <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-secondary border-300'\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu> -->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!-- <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-success border-green-500'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu> -->\r\n\r\n\r\n <!-- @if(positionBtnToogle == 'end'){\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n [disabled]=\"disableBtnToogle\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n } -->\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n </ng-template>\r\n\r\n </p-stepperPanel>\r\n </ng-container>\r\n </p-stepper>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<!--______________________________________________________________________________________________________-->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n", styles: ["::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}.sub-title{color:#ff0;position:relative;bottom:25px;z-index:1}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;left:0;right:0;background-color:#fff;padding:10px;z-index:999}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}.kv-stepper{display:flex;flex-direction:column}:host ::ng-deep .p-stepper .p-stepper-header.p-highlight .p-stepper-number{color:#f2f3f5!important;background-color:#002542!important}:host ::ng-deep .p-stepper .p-stepper-header:has(~.p-highlight) .p-stepper-separator{color:#002542;background-color:#f2f3f5}:host ::ng-deep .p-stepper .p-stepper-header .p-stepper-action .p-stepper-number{color:#002542;background-color:#f2f3f5}:host ::ng-deep .p-stepper.p-stepper-vertical .p-stepper-panel .p-stepper-separator{background-color:#f2f3f5}.btn-secondary{background-color:#f2f3f5!important;color:#000000de!important;height:35px}.btn-secondary:hover{background-color:#d8d9db!important}.btn-secondary:disabled{pointer-events:none}\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: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.Stepper, selector: "p-stepper", inputs: ["activeStep", "orientation", "linear", "transitionOptions"], outputs: ["onClick", "activeStepChange"] }, { kind: "component", type: i4.StepperPanel, selector: "p-stepperPanel", inputs: ["header"] }, { kind: "component", type: i5.KvButtonSecondaryComponent, selector: "kv-button-secondary" }, { kind: "component", type: i6.KvButtonSuccessComponent, selector: "kv-button-success" }, { kind: "component", type: i7.KvButtonPersonalizeComponent, selector: "kv-button-personalize", inputs: ["colorHover", "textColor"] }, { kind: "directive", type: i8.DynamicInputDirective, selector: "[dynamicComponent]", inputs: ["dynamicComponent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.8", type: KvPageStepperComponent, selector: "kv-page-stepper", inputs: { panels: "panels", activeStep: "activeStep", orientation: "orientation", linear: "linear", formGroup: "formGroup", TituloForm: "TituloForm", SubTituloForm: "SubTituloForm", isSaveLoading: "isSaveLoading", popup: "popup", locationUseComponent: "locationUseComponent", iconBtnCancel: "iconBtnCancel", showBtnCancel: "showBtnCancel", txtBtnCancel: "txtBtnCancel", iconBtnSave: "iconBtnSave", showBtnSave: "showBtnSave", txtBtnSave: "txtBtnSave", disableBtnSave: "disableBtnSave", disableBtnSair: "disableBtnSair" }, outputs: { activeStepChange: "activeStepChange", onSave: "onSave", onCancel: "onCancel" }, ngImport: i0, template: "<!-- [formGroup]=\"formGroup\" -->\r\n<div\r\n class=\"grid-nogutter m-0\"\r\n id=\"page-form-container\"\r\n>\r\n\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n\r\n\r\n\r\n<!--______________________________________________________________________________________________________-->\r\n\r\n\r\n\r\n <p-stepper\r\n [activeStep]=\"activeStep\"\r\n [orientation]=\"orientation\"\r\n [linear]=\"linear\"\r\n (activeStepChange)=\"onActiveStepChange($event)\"\r\n >\r\n <ng-container *ngFor=\"let panel of panels; let i = index\">\r\n <p-stepperPanel [header]=\"panel.header\">\r\n\r\n <ng-template\r\n pTemplate=\"content\"\r\n let-nextCallback=\"nextCallback\"\r\n let-prevCallback=\"prevCallback\"\r\n >\r\n\r\n <div class=\"flex flex-column\">\r\n <div class=\"content-panel\" [dynamicComponent]=\"{ component: panel.contentTemplate, inputs: panel.inputs || {} }\">\r\n <!-- <ng-container\r\n *ngComponentOutlet=\"panel.contentTemplate\"\r\n ></ng-container> -->\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"flex pt-4\"\r\n [ngClass]=\"{\r\n 'justify-content-between': panel.id !== 0,\r\n 'justify-content-end': panel.id === 0,\r\n 'justify-content-start': orientation === 'vertical'\r\n }\"\r\n >\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <div class=\"flex flex-column lg:flex-row justify-content-end col-12 gap-2 barra-acoes grid grid-nogutter p-fluid\">\r\n\r\n\r\n\r\n <kv-button-secondary\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (click)=\"cancel($event)\"\r\n class=\"w-full lg:w-auto\"\r\n >\r\n </kv-button-secondary>\r\n\r\n <!-- panel.id !== 0 -->\r\n @if(true){\r\n <kv-button-personalize\r\n class=\"w-full lg:w-auto\"\r\n [label]=\"'Voltar'\"\r\n color=\"#002542\"\r\n [disabled]=\"panel.id == 0\"\r\n [icon]=\"'pi pi-arrow-left'\"\r\n (onClick)=\"prevCallback.emit()\"\r\n >\r\n </kv-button-personalize>\r\n }\r\n\r\n\r\n <!-- panel.id !== panels.length - 1 -->\r\n @if(true){\r\n <kv-button-success\r\n (click)=\" panel.id != panels.length-1 ? nextCallback.emit() : save($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [icon]=\"'pi pi-arrow-right'\"\r\n [label]=\"panel.id != panels.length-1 ? 'Avan\u00E7ar ' : txtBtnSave\"\r\n iconPos=\"right\"\r\n ></kv-button-success>\r\n }\r\n<!--\r\n <kv-button-success\r\n *ngIf=\"showBtnSave && panel.id === panels.length - 1 \"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave || panel.id !== panels.length - 1\"\r\n [loading]=\"isSaveLoading\"\r\n (click)=\"nextCallback.emit()\"\r\n (click)=\"!disableBtnSave ? save($event) : ''\"\r\n class=\"w-full lg:w-auto\"\r\n /> -->\r\n\r\n\r\n\r\n <!-- @if(positionBtnToogle == 'start'){\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n [disabled]=\"disableBtnToogle\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n } -->\r\n\r\n <!-- <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-secondary border-300'\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu> -->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!-- <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-success border-green-500'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu> -->\r\n\r\n\r\n <!-- @if(positionBtnToogle == 'end'){\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n [disabled]=\"disableBtnToogle\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n } -->\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n </ng-template>\r\n\r\n </p-stepperPanel>\r\n </ng-container>\r\n </p-stepper>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<!--______________________________________________________________________________________________________-->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n", styles: ["::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}.sub-title{color:#ff0;position:relative;bottom:25px;z-index:1}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;left:0;right:0;background-color:#fff;padding:10px;z-index:999}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}.kv-stepper{display:flex;flex-direction:column}:host ::ng-deep .p-stepper .p-stepper-header.p-highlight .p-stepper-number{color:#f2f3f5!important;background-color:#002542!important}:host ::ng-deep .p-stepper .p-stepper-header:has(~.p-highlight) .p-stepper-separator{color:#002542;background-color:#f2f3f5}:host ::ng-deep .p-stepper .p-stepper-header .p-stepper-action .p-stepper-number{color:#002542;background-color:#f2f3f5}:host ::ng-deep .p-stepper.p-stepper-vertical .p-stepper-panel .p-stepper-separator{background-color:#f2f3f5}.btn-secondary{background-color:#f2f3f5!important;color:#000000de!important;height:35px}.btn-secondary:hover{background-color:#d8d9db!important}.btn-secondary:disabled{pointer-events:none}\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: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i4.Stepper, selector: "p-stepper", inputs: ["activeStep", "orientation", "linear", "transitionOptions"], outputs: ["onClick", "activeStepChange"] }, { kind: "component", type: i4.StepperPanel, selector: "p-stepperPanel", inputs: ["header"] }, { kind: "component", type: i5.KvButtonSecondaryComponent, selector: "kv-button-secondary" }, { kind: "component", type: i6.KvButtonSuccessComponent, selector: "kv-button-success" }, { kind: "component", type: i7.KvButtonPersonalizeComponent, selector: "kv-button-personalize", inputs: ["colorHover", "textColor"] }, { kind: "directive", type: i8.DynamicInputDirective, selector: "[dynamicComponent]", inputs: ["dynamicComponent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
160
160
  }
161
161
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: KvPageStepperComponent, decorators: [{
162
162
  type: Component,
163
- args: [{ selector: 'kv-page-stepper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- [formGroup]=\"formGroup\" -->\r\n<div\r\n class=\"grid-nogutter m-0\"\r\n id=\"page-form-container\"\r\n>\r\n\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n\r\n\r\n\r\n<!--______________________________________________________________________________________________________-->\r\n\r\n\r\n\r\n <p-stepper\r\n [activeStep]=\"activeStep\"\r\n [orientation]=\"orientation\"\r\n [linear]=\"linear\"\r\n (activeStepChange)=\"onActiveStepChange($event)\"\r\n >\r\n <ng-container *ngFor=\"let panel of panels; let i = index\">\r\n <p-stepperPanel [header]=\"panel.header\">\r\n\r\n <ng-template\r\n pTemplate=\"content\"\r\n let-nextCallback=\"nextCallback\"\r\n let-prevCallback=\"prevCallback\"\r\n >\r\n\r\n <div class=\"flex flex-column\">\r\n <div class=\"content-panel\" [dynamicComponent]=\"{ component: panel.contentTemplate, inputs: panel.inputs || {} }\">\r\n <!-- <ng-container\r\n *ngComponentOutlet=\"panel.contentTemplate\"\r\n ></ng-container> -->\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"flex pt-4\"\r\n [ngClass]=\"{\r\n 'justify-content-between': panel.id !== 0,\r\n 'justify-content-end': panel.id === 0,\r\n 'justify-content-start': orientation === 'vertical'\r\n }\"\r\n >\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <div class=\"flex flex-column lg:flex-row justify-content-end col-12 gap-2 barra-acoes grid grid-nogutter p-fluid\">\r\n\r\n\r\n\r\n <kv-button-secondary\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (click)=\"cancel($event)\"\r\n class=\"w-full lg:w-auto\"\r\n >\r\n </kv-button-secondary>\r\n\r\n <!-- panel.id !== 0 -->\r\n @if(true){\r\n <kv-button-personalize\r\n class=\"w-full lg:w-auto\"\r\n [label]=\"'Voltar'\"\r\n color=\"#002542\"\r\n [disabled]=\"panel.id == 0\"\r\n [icon]=\"'pi pi-arrow-left'\"\r\n (click)=\"prevCallback.emit()\"\r\n >\r\n </kv-button-personalize>\r\n }\r\n\r\n\r\n <!-- panel.id !== panels.length - 1 -->\r\n @if(true){\r\n <kv-button-success\r\n (click)=\" panel.id != panels.length-1 ? nextCallback.emit() : save($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [icon]=\"'pi pi-arrow-right'\"\r\n [label]=\"panel.id != panels.length-1 ? 'Avan\u00E7ar ' : txtBtnSave\"\r\n iconPos=\"right\"\r\n ></kv-button-success>\r\n }\r\n<!--\r\n <kv-button-success\r\n *ngIf=\"showBtnSave && panel.id === panels.length - 1 \"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave || panel.id !== panels.length - 1\"\r\n [loading]=\"isSaveLoading\"\r\n (click)=\"nextCallback.emit()\"\r\n (click)=\"!disableBtnSave ? save($event) : ''\"\r\n class=\"w-full lg:w-auto\"\r\n /> -->\r\n\r\n\r\n\r\n <!-- @if(positionBtnToogle == 'start'){\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n [disabled]=\"disableBtnToogle\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n } -->\r\n\r\n <!-- <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-secondary border-300'\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu> -->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!-- <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-success border-green-500'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu> -->\r\n\r\n\r\n <!-- @if(positionBtnToogle == 'end'){\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n [disabled]=\"disableBtnToogle\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n } -->\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n </ng-template>\r\n\r\n </p-stepperPanel>\r\n </ng-container>\r\n </p-stepper>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<!--______________________________________________________________________________________________________-->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n", styles: ["::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}.sub-title{color:#ff0;position:relative;bottom:25px;z-index:1}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;left:0;right:0;background-color:#fff;padding:10px;z-index:999}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}.kv-stepper{display:flex;flex-direction:column}:host ::ng-deep .p-stepper .p-stepper-header.p-highlight .p-stepper-number{color:#f2f3f5!important;background-color:#002542!important}:host ::ng-deep .p-stepper .p-stepper-header:has(~.p-highlight) .p-stepper-separator{color:#002542;background-color:#f2f3f5}:host ::ng-deep .p-stepper .p-stepper-header .p-stepper-action .p-stepper-number{color:#002542;background-color:#f2f3f5}:host ::ng-deep .p-stepper.p-stepper-vertical .p-stepper-panel .p-stepper-separator{background-color:#f2f3f5}.btn-secondary{background-color:#f2f3f5!important;color:#000000de!important;height:35px}.btn-secondary:hover{background-color:#d8d9db!important}.btn-secondary:disabled{pointer-events:none}\n"] }]
163
+ args: [{ selector: 'kv-page-stepper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- [formGroup]=\"formGroup\" -->\r\n<div\r\n class=\"grid-nogutter m-0\"\r\n id=\"page-form-container\"\r\n>\r\n\r\n <!-- Renderiza\u00E7\u00E3o do form -->\r\n <div class=\"col-12 p-0\" id=\"page-form-content\">\r\n\r\n\r\n\r\n<!--______________________________________________________________________________________________________-->\r\n\r\n\r\n\r\n <p-stepper\r\n [activeStep]=\"activeStep\"\r\n [orientation]=\"orientation\"\r\n [linear]=\"linear\"\r\n (activeStepChange)=\"onActiveStepChange($event)\"\r\n >\r\n <ng-container *ngFor=\"let panel of panels; let i = index\">\r\n <p-stepperPanel [header]=\"panel.header\">\r\n\r\n <ng-template\r\n pTemplate=\"content\"\r\n let-nextCallback=\"nextCallback\"\r\n let-prevCallback=\"prevCallback\"\r\n >\r\n\r\n <div class=\"flex flex-column\">\r\n <div class=\"content-panel\" [dynamicComponent]=\"{ component: panel.contentTemplate, inputs: panel.inputs || {} }\">\r\n <!-- <ng-container\r\n *ngComponentOutlet=\"panel.contentTemplate\"\r\n ></ng-container> -->\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"flex pt-4\"\r\n [ngClass]=\"{\r\n 'justify-content-between': panel.id !== 0,\r\n 'justify-content-end': panel.id === 0,\r\n 'justify-content-start': orientation === 'vertical'\r\n }\"\r\n >\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <div class=\"flex flex-column lg:flex-row justify-content-end col-12 gap-2 barra-acoes grid grid-nogutter p-fluid\">\r\n\r\n\r\n\r\n <kv-button-secondary\r\n *ngIf=\"showBtnCancel\"\r\n [label]=\"txtBtnCancel\"\r\n [icon]=\"iconBtnCancel\"\r\n [disabled]=\"isSaveLoading\"\r\n (click)=\"cancel($event)\"\r\n class=\"w-full lg:w-auto\"\r\n >\r\n </kv-button-secondary>\r\n\r\n <!-- panel.id !== 0 -->\r\n @if(true){\r\n <kv-button-personalize\r\n class=\"w-full lg:w-auto\"\r\n [label]=\"'Voltar'\"\r\n color=\"#002542\"\r\n [disabled]=\"panel.id == 0\"\r\n [icon]=\"'pi pi-arrow-left'\"\r\n (onClick)=\"prevCallback.emit()\"\r\n >\r\n </kv-button-personalize>\r\n }\r\n\r\n\r\n <!-- panel.id !== panels.length - 1 -->\r\n @if(true){\r\n <kv-button-success\r\n (click)=\" panel.id != panels.length-1 ? nextCallback.emit() : save($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [icon]=\"'pi pi-arrow-right'\"\r\n [label]=\"panel.id != panels.length-1 ? 'Avan\u00E7ar ' : txtBtnSave\"\r\n iconPos=\"right\"\r\n ></kv-button-success>\r\n }\r\n<!--\r\n <kv-button-success\r\n *ngIf=\"showBtnSave && panel.id === panels.length - 1 \"\r\n [label]=\"txtBtnSave\"\r\n [icon]=\"iconBtnSave\"\r\n [disabled]=\"disableBtnSave || panel.id !== panels.length - 1\"\r\n [loading]=\"isSaveLoading\"\r\n (click)=\"nextCallback.emit()\"\r\n (click)=\"!disableBtnSave ? save($event) : ''\"\r\n class=\"w-full lg:w-auto\"\r\n /> -->\r\n\r\n\r\n\r\n <!-- @if(positionBtnToogle == 'start'){\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n [disabled]=\"disableBtnToogle\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n } -->\r\n\r\n <!-- <kv-button-popup\r\n *ngIf=\"actionsCancelToogle && showBtnCancelToogle\"\r\n [label]=\"txtBtnCancelToogle\"\r\n [icon]=\"iconBtnCancelToogle\"\r\n (click)=\"menuCancel.toggle($event)\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-secondary border-300'\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuCancel\r\n [popup]=\"true\"\r\n [model]=\"actionsCancelToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu> -->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!-- <kv-button-popup\r\n *ngIf=\"actionsSaveToogle && showBtnSaveToogle\"\r\n [label]=\"txtBtnSaveToogle\"\r\n [icon]=\"iconBtnSaveToogle\"\r\n (click)=\"menuSave.toggle($event)\"\r\n [loading]=\"isSaveLoading\"\r\n class=\"w-full lg:w-auto\"\r\n [classBtn]=\"'btn-success border-green-500'\"\r\n >\r\n </kv-button-popup>\r\n\r\n <p-menu\r\n #menuSave\r\n [popup]=\"true\"\r\n [model]=\"actionsSaveToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu> -->\r\n\r\n\r\n <!-- @if(positionBtnToogle == 'end'){\r\n <kv-button-popup\r\n *ngIf=\"actionsToogle && showBtnToogle\"\r\n [label]=\"txtBtnToogle\"\r\n [icon]=\"iconBtnToogle\"\r\n (click)=\"menuToogle.toggle($event)\"\r\n [disabled]=\"disableBtnToogle\"\r\n class=\"w-full lg:w-auto\"\r\n classBtn=\"{{classBtnToogle}}\"\r\n >\r\n </kv-button-popup>\r\n <p-menu\r\n #menuToogle\r\n [popup]=\"true\"\r\n [model]=\"actionsToogle\"\r\n appendTo=\"body\"\r\n class=\"w-full lg:w-auto\"\r\n ></p-menu>\r\n } -->\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n </ng-template>\r\n\r\n </p-stepperPanel>\r\n </ng-container>\r\n </p-stepper>\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n<!--______________________________________________________________________________________________________-->\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n", styles: ["::ng-deep .p-dialog .p-dialog-header{color:#fff!important;background:#002542!important;display:flex!important;flex-wrap:wrap}::ng-deep .p-dialog .p-dialog-content{padding-top:1rem}::ng-deep .p-dialog{min-width:320px}.sub-title{color:#ff0;position:relative;bottom:25px;z-index:1}::ng-deep .p-dialog-content{overflow-x:hidden}::ng-deep .p-dialog-content::-webkit-scrollbar{width:8px}::ng-deep .p-dialog-content::-webkit-scrollbar:hover{background-color:#dededebf}::ng-deep .p-dialog-content::-webkit-scrollbar-thumb{border-radius:4px;background-color:transparent}::ng-deep .p-dialog-content:hover::-webkit-scrollbar-thumb{border-left:2px solid white;background-color:#00000080}::ng-deep .p-dialog-content::-webkit-scrollbar-track{border-left:2px solid white;background-color:#dededebf}*{padding-bottom:0rem;padding-top:0rem}.barra-acoes{position:fixed;bottom:0;left:0;right:0;background-color:#fff;padding:10px;z-index:999}#page-form-container{padding-bottom:40px}@media screen and (max-width: 991px){#page-form-container{padding-bottom:100px}}.kv-stepper{display:flex;flex-direction:column}:host ::ng-deep .p-stepper .p-stepper-header.p-highlight .p-stepper-number{color:#f2f3f5!important;background-color:#002542!important}:host ::ng-deep .p-stepper .p-stepper-header:has(~.p-highlight) .p-stepper-separator{color:#002542;background-color:#f2f3f5}:host ::ng-deep .p-stepper .p-stepper-header .p-stepper-action .p-stepper-number{color:#002542;background-color:#f2f3f5}:host ::ng-deep .p-stepper.p-stepper-vertical .p-stepper-panel .p-stepper-separator{background-color:#f2f3f5}.btn-secondary{background-color:#f2f3f5!important;color:#000000de!important;height:35px}.btn-secondary:hover{background-color:#d8d9db!important}.btn-secondary:disabled{pointer-events:none}\n"] }]
164
164
  }], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { panels: [{
165
165
  type: Input
166
166
  }], activeStep: [{
@@ -204,4 +204,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
204
204
  }], onCancel: [{
205
205
  type: Output
206
206
  }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGFnZS1zdGVwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBhZ2Utc3RlcHBlci9rdi1wYWdlLXN0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGFnZS1zdGVwcGVyL2t2LXBhZ2Utc3RlcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFlLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBU3hELE1BQU0sT0FBTyxzQkFBc0I7SUE4QmpDLHlEQUF5RDtJQUV6RCxrQkFBa0IsQ0FBQyxJQUFZO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25DLEtBQUssQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELGNBQWMsQ0FBQyxJQUFTO1FBQ3RCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNyQixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7YUFDekM7U0FD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S0ksTUFBTTtzQkFBZixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3Rpb25JdGVtIH0gZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvdGFibGUvYWN0aW9uLWl0ZW0nO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBLdlN0ZXBwZXJQYW5lbCB9IGZyb20gJy4uLy4uL2FwaS9jb21wb25lbnRzL3N0ZXBwZXIva3Ytc3RlcHBlcnBhbmVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtcGFnZS1zdGVwcGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtcGFnZS1zdGVwcGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4va3YtcGFnZS1zdGVwcGVyLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZQYWdlU3RlcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKipcclxuICAgKiBQcm9waWVkYWRlIHF1ZSByZWNlYmUgdW1hIGxpc3RhIGRlIHBhaW5pZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBwYW5lbHM6IEt2U3RlcHBlclBhbmVsW10gPSBbXTtcclxuXHJcbiAgLy8gQElucHV0KCkgdGVtcGxhdGVQYW5lbHNIZWFkZXJzOiBLdlN0ZXBwZXJQYW5lbFtdID0gW107XHJcblxyXG5cclxuICAvKipcclxuICAgKiBQcm9waWVkYWRlIHF1ZSBkZWZpbmUgbyBzdGVwcGVyIGF0aXZvIG5vIG1vbWVudG9cclxuICAgKi9cclxuICBASW5wdXQoKSBhY3RpdmVTdGVwOiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBQcm9waWVkYWRlIHF1ZSBkZWZpbmUgYSBmb3JtYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG9yaWVudGF0aW9uOiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xyXG4gIEBJbnB1dCgpIGxpbmVhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAqIERpc3BhcmEgbyBldmVudG8gcGFyYSBhdHVhbGl6YcOnw6NvIGRhIHByb3BpZWRhZGUgYWNpdmVTdGVwXHJcbiAgICogQHBhcmFtIGV2ZW50IGV2ZW50b1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBhY3RpdmVTdGVwQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLy8gQE91dHB1dCgpIGNvbmNsdWlyQ2FsbGJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIG9uQWN0aXZlU3RlcENoYW5nZShzdGVwOiBudW1iZXIpIHtcclxuICAgIHRoaXMuYWN0aXZlU3RlcCA9IHN0ZXA7XHJcbiAgICB0aGlzLmFjdGl2ZVN0ZXBDaGFuZ2UuZW1pdChzdGVwKTtcclxuICB9XHJcblxyXG4gIGFzc2lnbklkc1RvUGFuZWxzKCkge1xyXG4gICAgdGhpcy5wYW5lbHMuZm9yRWFjaCgocGFuZWwsIGluZGV4KSA9PiB7XHJcbiAgICAgIHBhbmVsLmlkID0gaW5kZXg7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgY3JlYXRlSW5qZWN0b3IoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiAnaW5wdXREYXRhJywgdXNlVmFsdWU6IGRhdGEgfVxyXG4gICAgICBdXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbmZpZ3VyYcOnw7VlcyBkbyBmb3JtdWzDoXJpb1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQElucHV0KCkgVGl0dWxvRm9ybTogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XHJcbiAgQElucHV0KCkgU3ViVGl0dWxvRm9ybTogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XHJcbiAgQElucHV0KCkgaXNTYXZlTG9hZGluZyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBsb2NhdGlvblVzZUNvbXBvbmVudDogJ3BhZ2UnIHwgJ2RpYWxvZycgPSAnZGlhbG9nJztcclxuICAvLyBASW5wdXQoKSBleHBhbmRNZW51ITogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGNhbmNlbGFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgaWNvbkJ0bkNhbmNlbDogc3RyaW5nID0gJ3BpIHBpLWZ3IHBpLXRpbWVzJztcclxuICBASW5wdXQoKSBzaG93QnRuQ2FuY2VsOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB0eHRCdG5DYW5jZWw6IHN0cmluZyA9IFwiQ2FuY2VsYXJcIjtcclxuXHJcbiAgLy8gLyoqXHJcbiAgLy8gICogQm90w6NvIGRlIGNhbmNlbGFyIGNvbSBvcMOnw7Vlc1xyXG4gIC8vICAqL1xyXG4gIC8vIEBJbnB1dCgpIGFjdGlvbnNDYW5jZWxUb29nbGUhOiBBY3Rpb25JdGVtW107XHJcbiAgLy8gQElucHV0KCkgaWNvbkJ0bkNhbmNlbFRvb2dsZTogc3RyaW5nID0gXCJwaSBwaS1jaGV2cm9uLWRvd25cIjtcclxuICAvLyBASW5wdXQoKSBzaG93QnRuQ2FuY2VsVG9vZ2xlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLy8gQElucHV0KCkgdHh0QnRuQ2FuY2VsVG9vZ2xlOiBzdHJpbmcgPSBcIkNhbmNlbGFyXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJvdMOjbyBzYWx2YXJcclxuICAgKi9cclxuICBASW5wdXQoKSBpY29uQnRuU2F2ZTogc3RyaW5nID0gJ3BpIHBpLXNhdmUnO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5TYXZlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB0eHRCdG5TYXZlOiBzdHJpbmcgPSBcIlNhbHZhclwiO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVCdG5TYXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIC8qKlxyXG4gIC8vICAqIEJvdMOjbyBkZSBzYWx2YXIgY29tIG9ww6fDtWVzXHJcbiAgLy8gICovXHJcbiAgLy8gQElucHV0KCkgYWN0aW9uc1NhdmVUb29nbGUhOiBBY3Rpb25JdGVtW107XHJcbiAgLy8gQElucHV0KCkgaWNvbkJ0blNhdmVUb29nbGU6IHN0cmluZyA9IFwicGkgcGktY2hldnJvbi1kb3duXCI7XHJcbiAgLy8gQElucHV0KCkgc2hvd0J0blNhdmVUb29nbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvLyBASW5wdXQoKSB0eHRCdG5TYXZlVG9vZ2xlOiBzdHJpbmcgPSBcIkHDp8O1ZXNcIjtcclxuXHJcbiAgLy8gLyoqXHJcbiAgLy8gICogQm90w6NvIGdlbsOpcmljbyBjb20gb3DDp8O1ZXNcclxuICAvLyAgKi9cclxuICAvLyBASW5wdXQoKSBhY3Rpb25zVG9vZ2xlITogQWN0aW9uSXRlbVtdO1xyXG4gIC8vIEBJbnB1dCgpIGljb25CdG5Ub29nbGU6IHN0cmluZyA9IFwicGkgcGktY2hldnJvbi1kb3duXCI7XHJcbiAgLy8gQElucHV0KCkgc2hvd0J0blRvb2dsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIEBJbnB1dCgpIHR4dEJ0blRvb2dsZTogc3RyaW5nID0gXCJBw6fDtWVzXCI7XHJcbiAgLy8gQElucHV0KCkgZGlzYWJsZUJ0blRvb2dsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIEBJbnB1dCgpIHBvc2l0aW9uQnRuVG9vZ2xlOiBzdHJpbmcgPSAnZW5kJztcclxuICAvLyBASW5wdXQoKSBjbGFzc0J0blRvb2dsZTogc3RyaW5nID0gJ2JnLWdsdWUtNTAwJztcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGZlY2hhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVCdG5TYWlyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2FsdmFyIGRhZG9zXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG9uU2F2ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbmNlbGFyXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG9uQ2FuY2VsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHRoaXMuYXNzaWduSWRzVG9QYW5lbHMoKTtcclxuICAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGljaW9uYSBzdWItdMOtdHVsbyDDoCB0ZWxhXHJcbiAgICovXHJcbiAgYWRkU3ViVGl0bGUoKSB7XHJcbiAgICBpZiAodGhpcy5TdWJUaXR1bG9Gb3JtKSB7XHJcbiAgICAgIGNvbnN0IGhlYWRlckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1kaWFsb2cgLnAtZGlhbG9nLWhlYWRlcicpO1xyXG4gICAgICBpZiAoaGVhZGVyRWxlbWVudCkge1xyXG4gICAgICAgIGNvbnN0IHN1YnRpdGxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICBzdWJ0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLlN1YlRpdHVsb0Zvcm07XHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLmZvbnRTaXplID0gJzAuNzVyZW0nXHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLndpZHRoID0gJzEwMCUnXHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLm1hcmdpbkxlZnQgPSAnMnB4J1xyXG5cclxuICAgICAgICBoZWFkZXJFbGVtZW50LmFwcGVuZENoaWxkKHN1YnRpdGxlRWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hZGRTdWJUaXRsZSgpO1xyXG4gICAgdGhpcy5zZXRQYWdlRm9ybUNvbnRhaW5lckF0dHJpYnV0ZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BhcmEgbyBtw6l0b2RvIGRlIGNhbmNlbGFtZW50byBkYSB0ZWxhXHJcbiAgICogQHBhcmFtIGV2ZW50IGV2ZW50b1xyXG4gICAqL1xyXG4gIGNhbmNlbChldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMub25DYW5jZWwuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNwYXJhIG8gbcOpdG9kbyBkZSBzYWx2YXIgZGEgdGVsYVxyXG4gICAqIEBwYXJhbSBldmVudCBldmVudG9cclxuICAgKi9cclxuICBzYXZlKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5vblNhdmUuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBanVzdGEgbyB0YW1hbmhvIGRhIHRlbGEgY29uc2lkZXJhbmRvIG8gbWVudSBsYXRlcmFsXHJcbiAgICovXHJcbiAgc2V0UGFnZUZvcm1Db250YWluZXJBdHRyaWJ1dGVzKCkge1xyXG4gICAgaWYgKHRoaXMubG9jYXRpb25Vc2VDb21wb25lbnQgPT0gJ3BhZ2UnKSB7XHJcbiAgICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhZ2UtZm9ybS1jb250YWluZXInKTtcclxuXHJcbiAgICAgIGlmIChmb3JtKSB7XHJcbiAgICAgICAgdmFyIHdpZHRoRnVsbCA9IGZvcm0uY2xpZW50V2lkdGg7XHJcbiAgICAgICAgdmFyIHdpZHRoQWRqdXN0ZWQ7XHJcblxyXG4gICAgICAgIHdpZHRoQWRqdXN0ZWQgPSB3aWR0aEZ1bGwgLSAzMzJcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxufVxyXG4iLCI8IS0tIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgLS0+XHJcbjxkaXZcclxuICBjbGFzcz1cImdyaWQtbm9ndXR0ZXIgbS0wXCJcclxuICBpZD1cInBhZ2UtZm9ybS1jb250YWluZXJcIlxyXG4+XHJcblxyXG4gIDwhLS0gUmVuZGVyaXphw6fDo28gZG8gZm9ybSAtLT5cclxuICA8ZGl2IGNsYXNzPVwiY29sLTEyIHAtMFwiIGlkPVwicGFnZS1mb3JtLWNvbnRlbnRcIj5cclxuXHJcblxyXG5cclxuPCEtLV9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy0tPlxyXG5cclxuXHJcblxyXG4gICAgPHAtc3RlcHBlclxyXG4gICAgW2FjdGl2ZVN0ZXBdPVwiYWN0aXZlU3RlcFwiXHJcbiAgICBbb3JpZW50YXRpb25dPVwib3JpZW50YXRpb25cIlxyXG4gICAgW2xpbmVhcl09XCJsaW5lYXJcIlxyXG4gICAgKGFjdGl2ZVN0ZXBDaGFuZ2UpPVwib25BY3RpdmVTdGVwQ2hhbmdlKCRldmVudClcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBhbmVsIG9mIHBhbmVsczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICA8cC1zdGVwcGVyUGFuZWwgW2hlYWRlcl09XCJwYW5lbC5oZWFkZXJcIj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBwVGVtcGxhdGU9XCJjb250ZW50XCJcclxuICAgICAgICAgIGxldC1uZXh0Q2FsbGJhY2s9XCJuZXh0Q2FsbGJhY2tcIlxyXG4gICAgICAgICAgbGV0LXByZXZDYWxsYmFjaz1cInByZXZDYWxsYmFja1wiXHJcbiAgICAgICAgPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LXBhbmVsXCIgW2R5bmFtaWNDb21wb25lbnRdPVwieyBjb21wb25lbnQ6IHBhbmVsLmNvbnRlbnRUZW1wbGF0ZSwgaW5wdXRzOiBwYW5lbC5pbnB1dHMgfHwge30gfVwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwicGFuZWwuY29udGVudFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+IC0tPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IHB0LTRcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgJ2p1c3RpZnktY29udGVudC1iZXR3ZWVuJzogcGFuZWwuaWQgIT09IDAsXHJcbiAgICAgICAgICAgICAgJ2p1c3RpZnktY29udGVudC1lbmQnOiBwYW5lbC5pZCA9PT0gMCxcclxuICAgICAgICAgICAgICAnanVzdGlmeS1jb250ZW50LXN0YXJ0Jzogb3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCdcclxuICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICA+XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBsZzpmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIGNvbC0xMiBnYXAtMiBiYXJyYS1hY29lcyBncmlkIGdyaWQtbm9ndXR0ZXIgcC1mbHVpZFwiPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDxrdi1idXR0b24tc2Vjb25kYXJ5XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dCdG5DYW5jZWxcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInR4dEJ0bkNhbmNlbFwiXHJcbiAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uQnRuQ2FuY2VsXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2t2LWJ1dHRvbi1zZWNvbmRhcnk+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gcGFuZWwuaWQgIT09IDAgLS0+XHJcbiAgICAgICAgICAgICAgQGlmKHRydWUpe1xyXG4gICAgICAgICAgICAgICAgPGt2LWJ1dHRvbi1wZXJzb25hbGl6ZVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1ZvbHRhcidcIlxyXG4gICAgICAgICAgICAgICAgICBjb2xvcj1cIiMwMDI1NDJcIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicGFuZWwuaWQgPT0gMFwiXHJcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cIidwaSBwaS1hcnJvdy1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmV2Q2FsbGJhY2suZW1pdCgpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwva3YtYnV0dG9uLXBlcnNvbmFsaXplPlxyXG4gICAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gcGFuZWwuaWQgIT09IHBhbmVscy5sZW5ndGggLSAxIC0tPlxyXG4gICAgICAgICAgICAgIEBpZih0cnVlKXtcclxuICAgICAgICAgICAgICAgIDxrdi1idXR0b24tc3VjY2Vzc1xyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiIHBhbmVsLmlkICE9IHBhbmVscy5sZW5ndGgtMSA/IG5leHRDYWxsYmFjay5lbWl0KCkgOiBzYXZlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICBbaWNvbl09XCIncGkgcGktYXJyb3ctcmlnaHQnXCJcclxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInBhbmVsLmlkICE9IHBhbmVscy5sZW5ndGgtMSA/ICdBdmFuw6dhciAnIDogdHh0QnRuU2F2ZVwiXHJcbiAgICAgICAgICAgICAgICAgIGljb25Qb3M9XCJyaWdodFwiXHJcbiAgICAgICAgICAgICAgICA+PC9rdi1idXR0b24tc3VjY2Vzcz5cclxuICAgICAgICAgICAgICB9XHJcbjwhLS1cclxuICAgICAgICAgICAgICA8a3YtYnV0dG9uLXN1Y2Nlc3NcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2hvd0J0blNhdmUgJiYgIHBhbmVsLmlkID09PSBwYW5lbHMubGVuZ3RoIC0gMSBcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInR4dEJ0blNhdmVcIlxyXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiaWNvbkJ0blNhdmVcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVCdG5TYXZlIHx8IHBhbmVsLmlkICE9PSBwYW5lbHMubGVuZ3RoIC0gMVwiXHJcbiAgICAgICAgICAgICAgICBbbG9hZGluZ109XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJuZXh0Q2FsbGJhY2suZW1pdCgpXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhZGlzYWJsZUJ0blNhdmUgPyBzYXZlKCRldmVudCkgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgICAgICAgIC8+IC0tPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gQGlmKHBvc2l0aW9uQnRuVG9vZ2xlID09ICdzdGFydCcpe1xyXG4gICAgICAgICAgICAgICAgPGt2LWJ1dHRvbi1wb3B1cFxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbnNUb29nbGUgJiYgc2hvd0J0blRvb2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ0eHRCdG5Ub29nbGVcIlxyXG4gICAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uQnRuVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lbnVUb29nbGUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUJ0blRvb2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzQnRuPVwie3tjbGFzc0J0blRvb2dsZX19XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwva3YtYnV0dG9uLXBvcHVwPlxyXG4gICAgICAgICAgICAgICAgPHAtbWVudVxyXG4gICAgICAgICAgICAgICAgICAjbWVudVRvb2dsZVxyXG4gICAgICAgICAgICAgICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJhY3Rpb25zVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgICAgICAgICAgID48L3AtbWVudT5cclxuICAgICAgICAgICAgICB9IC0tPlxyXG5cclxuICAgICAgICAgICAgICA8IS0tIDxrdi1idXR0b24tcG9wdXBcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb25zQ2FuY2VsVG9vZ2xlICYmIHNob3dCdG5DYW5jZWxUb29nbGVcIlxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwidHh0QnRuQ2FuY2VsVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgW2ljb25dPVwiaWNvbkJ0bkNhbmNlbFRvb2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtZW51Q2FuY2VsLnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzQnRuXT1cIididG4tc2Vjb25kYXJ5IGJvcmRlci0zMDAnXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwva3YtYnV0dG9uLXBvcHVwPlxyXG4gICAgICAgICAgICAgICAgPHAtbWVudVxyXG4gICAgICAgICAgICAgICAgICAjbWVudUNhbmNlbFxyXG4gICAgICAgICAgICAgICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJhY3Rpb25zQ2FuY2VsVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgICAgICAgICAgID48L3AtbWVudT4gLS0+XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGt2LWJ1dHRvbi1wb3B1cFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb25zU2F2ZVRvb2dsZSAmJiBzaG93QnRuU2F2ZVRvb2dsZVwiXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwidHh0QnRuU2F2ZVRvb2dsZVwiXHJcbiAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uQnRuU2F2ZVRvb2dsZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibWVudVNhdmUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2xvYWRpbmddPVwiaXNTYXZlTG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzQnRuXT1cIididG4tc3VjY2VzcyBib3JkZXItZ3JlZW4tNTAwJ1wiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwva3YtYnV0dG9uLXBvcHVwPlxyXG5cclxuICAgICAgICAgICAgICA8cC1tZW51XHJcbiAgICAgICAgICAgICAgICAjbWVudVNhdmVcclxuICAgICAgICAgICAgICAgIFtwb3B1cF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFttb2RlbF09XCJhY3Rpb25zU2F2ZVRvb2dsZVwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgICAgICAgICA+PC9wLW1lbnU+IC0tPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSBAaWYocG9zaXRpb25CdG5Ub29nbGUgPT0gJ2VuZCcpe1xyXG4gICAgICAgICAgICAgICAgPGt2LWJ1dHRvbi1wb3B1cFxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbnNUb29nbGUgJiYgc2hvd0J0blRvb2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ0eHRCdG5Ub29nbGVcIlxyXG4gICAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uQnRuVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lbnVUb29nbGUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUJ0blRvb2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzQnRuPVwie3tjbGFzc0J0blRvb2dsZX19XCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwva3YtYnV0dG9uLXBvcHVwPlxyXG4gICAgICAgICAgICAgICAgPHAtbWVudVxyXG4gICAgICAgICAgICAgICAgICAjbWVudVRvb2dsZVxyXG4gICAgICAgICAgICAgICAgICBbcG9wdXBdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJhY3Rpb25zVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgICAgICAgICAgID48L3AtbWVudT5cclxuICAgICAgICAgICAgICB9IC0tPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPC9wLXN0ZXBwZXJQYW5lbD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvcC1zdGVwcGVyPlxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuPCEtLV9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy0tPlxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG5cclxuPC9kaXY+XHJcbiJdfQ==
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3YtcGFnZS1zdGVwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tlZXZvLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2t2LXBhZ2Utc3RlcHBlci9rdi1wYWdlLXN0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2Vldm8tY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMva3YtcGFnZS1zdGVwcGVyL2t2LXBhZ2Utc3RlcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFlLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBU3hELE1BQU0sT0FBTyxzQkFBc0I7SUE4QmpDLHlEQUF5RDtJQUV6RCxrQkFBa0IsQ0FBQyxJQUFZO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ25DLEtBQUssQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUlELGNBQWMsQ0FBQyxJQUFTO1FBQ3RCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNyQixTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7YUFDekM7U0FD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S0ksTUFBTTtzQkFBZixNQUFNO2dCQUtHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3Rpb25JdGVtIH0gZnJvbSAnLi4vLi4vYXBpL2NvbXBvbmVudHMvdGFibGUvYWN0aW9uLWl0ZW0nO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBLdlN0ZXBwZXJQYW5lbCB9IGZyb20gJy4uLy4uL2FwaS9jb21wb25lbnRzL3N0ZXBwZXIva3Ytc3RlcHBlcnBhbmVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna3YtcGFnZS1zdGVwcGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4va3YtcGFnZS1zdGVwcGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4va3YtcGFnZS1zdGVwcGVyLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgS3ZQYWdlU3RlcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKipcclxuICAgKiBQcm9waWVkYWRlIHF1ZSByZWNlYmUgdW1hIGxpc3RhIGRlIHBhaW5pZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBwYW5lbHM6IEt2U3RlcHBlclBhbmVsW10gPSBbXTtcclxuXHJcbiAgLy8gQElucHV0KCkgdGVtcGxhdGVQYW5lbHNIZWFkZXJzOiBLdlN0ZXBwZXJQYW5lbFtdID0gW107XHJcblxyXG5cclxuICAvKipcclxuICAgKiBQcm9waWVkYWRlIHF1ZSBkZWZpbmUgbyBzdGVwcGVyIGF0aXZvIG5vIG1vbWVudG9cclxuICAgKi9cclxuICBASW5wdXQoKSBhY3RpdmVTdGVwOiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBQcm9waWVkYWRlIHF1ZSBkZWZpbmUgYSBmb3JtYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG9yaWVudGF0aW9uOiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnID0gJ2hvcml6b250YWwnO1xyXG4gIEBJbnB1dCgpIGxpbmVhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAqIERpc3BhcmEgbyBldmVudG8gcGFyYSBhdHVhbGl6YcOnw6NvIGRhIHByb3BpZWRhZGUgYWNpdmVTdGVwXHJcbiAgICogQHBhcmFtIGV2ZW50IGV2ZW50b1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBhY3RpdmVTdGVwQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLy8gQE91dHB1dCgpIGNvbmNsdWlyQ2FsbGJhY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIG9uQWN0aXZlU3RlcENoYW5nZShzdGVwOiBudW1iZXIpIHtcclxuICAgIHRoaXMuYWN0aXZlU3RlcCA9IHN0ZXA7XHJcbiAgICB0aGlzLmFjdGl2ZVN0ZXBDaGFuZ2UuZW1pdChzdGVwKTtcclxuICB9XHJcblxyXG4gIGFzc2lnbklkc1RvUGFuZWxzKCkge1xyXG4gICAgdGhpcy5wYW5lbHMuZm9yRWFjaCgocGFuZWwsIGluZGV4KSA9PiB7XHJcbiAgICAgIHBhbmVsLmlkID0gaW5kZXg7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgY3JlYXRlSW5qZWN0b3IoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHtcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiAnaW5wdXREYXRhJywgdXNlVmFsdWU6IGRhdGEgfVxyXG4gICAgICBdXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbmZpZ3VyYcOnw7VlcyBkbyBmb3JtdWzDoXJpb1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cDogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQElucHV0KCkgVGl0dWxvRm9ybTogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XHJcbiAgQElucHV0KCkgU3ViVGl0dWxvRm9ybTogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XHJcbiAgQElucHV0KCkgaXNTYXZlTG9hZGluZyE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBsb2NhdGlvblVzZUNvbXBvbmVudDogJ3BhZ2UnIHwgJ2RpYWxvZycgPSAnZGlhbG9nJztcclxuICAvLyBASW5wdXQoKSBleHBhbmRNZW51ITogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGNhbmNlbGFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgaWNvbkJ0bkNhbmNlbDogc3RyaW5nID0gJ3BpIHBpLWZ3IHBpLXRpbWVzJztcclxuICBASW5wdXQoKSBzaG93QnRuQ2FuY2VsOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB0eHRCdG5DYW5jZWw6IHN0cmluZyA9IFwiQ2FuY2VsYXJcIjtcclxuXHJcbiAgLy8gLyoqXHJcbiAgLy8gICogQm90w6NvIGRlIGNhbmNlbGFyIGNvbSBvcMOnw7Vlc1xyXG4gIC8vICAqL1xyXG4gIC8vIEBJbnB1dCgpIGFjdGlvbnNDYW5jZWxUb29nbGUhOiBBY3Rpb25JdGVtW107XHJcbiAgLy8gQElucHV0KCkgaWNvbkJ0bkNhbmNlbFRvb2dsZTogc3RyaW5nID0gXCJwaSBwaS1jaGV2cm9uLWRvd25cIjtcclxuICAvLyBASW5wdXQoKSBzaG93QnRuQ2FuY2VsVG9vZ2xlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLy8gQElucHV0KCkgdHh0QnRuQ2FuY2VsVG9vZ2xlOiBzdHJpbmcgPSBcIkNhbmNlbGFyXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJvdMOjbyBzYWx2YXJcclxuICAgKi9cclxuICBASW5wdXQoKSBpY29uQnRuU2F2ZTogc3RyaW5nID0gJ3BpIHBpLXNhdmUnO1xyXG4gIEBJbnB1dCgpIHNob3dCdG5TYXZlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSB0eHRCdG5TYXZlOiBzdHJpbmcgPSBcIlNhbHZhclwiO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVCdG5TYXZlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIC8qKlxyXG4gIC8vICAqIEJvdMOjbyBkZSBzYWx2YXIgY29tIG9ww6fDtWVzXHJcbiAgLy8gICovXHJcbiAgLy8gQElucHV0KCkgYWN0aW9uc1NhdmVUb29nbGUhOiBBY3Rpb25JdGVtW107XHJcbiAgLy8gQElucHV0KCkgaWNvbkJ0blNhdmVUb29nbGU6IHN0cmluZyA9IFwicGkgcGktY2hldnJvbi1kb3duXCI7XHJcbiAgLy8gQElucHV0KCkgc2hvd0J0blNhdmVUb29nbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvLyBASW5wdXQoKSB0eHRCdG5TYXZlVG9vZ2xlOiBzdHJpbmcgPSBcIkHDp8O1ZXNcIjtcclxuXHJcbiAgLy8gLyoqXHJcbiAgLy8gICogQm90w6NvIGdlbsOpcmljbyBjb20gb3DDp8O1ZXNcclxuICAvLyAgKi9cclxuICAvLyBASW5wdXQoKSBhY3Rpb25zVG9vZ2xlITogQWN0aW9uSXRlbVtdO1xyXG4gIC8vIEBJbnB1dCgpIGljb25CdG5Ub29nbGU6IHN0cmluZyA9IFwicGkgcGktY2hldnJvbi1kb3duXCI7XHJcbiAgLy8gQElucHV0KCkgc2hvd0J0blRvb2dsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIEBJbnB1dCgpIHR4dEJ0blRvb2dsZTogc3RyaW5nID0gXCJBw6fDtWVzXCI7XHJcbiAgLy8gQElucHV0KCkgZGlzYWJsZUJ0blRvb2dsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIEBJbnB1dCgpIHBvc2l0aW9uQnRuVG9vZ2xlOiBzdHJpbmcgPSAnZW5kJztcclxuICAvLyBASW5wdXQoKSBjbGFzc0J0blRvb2dsZTogc3RyaW5nID0gJ2JnLWdsdWUtNTAwJztcclxuXHJcbiAgLyoqXHJcbiAgICogQm90w6NvIGZlY2hhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc2FibGVCdG5TYWlyOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2FsdmFyIGRhZG9zXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG9uU2F2ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIENhbmNlbGFyXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG9uQ2FuY2VsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIHRoaXMuYXNzaWduSWRzVG9QYW5lbHMoKTtcclxuICAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGljaW9uYSBzdWItdMOtdHVsbyDDoCB0ZWxhXHJcbiAgICovXHJcbiAgYWRkU3ViVGl0bGUoKSB7XHJcbiAgICBpZiAodGhpcy5TdWJUaXR1bG9Gb3JtKSB7XHJcbiAgICAgIGNvbnN0IGhlYWRlckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcucC1kaWFsb2cgLnAtZGlhbG9nLWhlYWRlcicpO1xyXG4gICAgICBpZiAoaGVhZGVyRWxlbWVudCkge1xyXG4gICAgICAgIGNvbnN0IHN1YnRpdGxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgICAgICBzdWJ0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLlN1YlRpdHVsb0Zvcm07XHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLmZvbnRTaXplID0gJzAuNzVyZW0nXHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLndpZHRoID0gJzEwMCUnXHJcbiAgICAgICAgc3VidGl0bGVFbGVtZW50LnN0eWxlLm1hcmdpbkxlZnQgPSAnMnB4J1xyXG5cclxuICAgICAgICBoZWFkZXJFbGVtZW50LmFwcGVuZENoaWxkKHN1YnRpdGxlRWxlbWVudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hZGRTdWJUaXRsZSgpO1xyXG4gICAgdGhpcy5zZXRQYWdlRm9ybUNvbnRhaW5lckF0dHJpYnV0ZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BhcmEgbyBtw6l0b2RvIGRlIGNhbmNlbGFtZW50byBkYSB0ZWxhXHJcbiAgICogQHBhcmFtIGV2ZW50IGV2ZW50b1xyXG4gICAqL1xyXG4gIGNhbmNlbChldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMub25DYW5jZWwuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEaXNwYXJhIG8gbcOpdG9kbyBkZSBzYWx2YXIgZGEgdGVsYVxyXG4gICAqIEBwYXJhbSBldmVudCBldmVudG9cclxuICAgKi9cclxuICBzYXZlKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5vblNhdmUuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBanVzdGEgbyB0YW1hbmhvIGRhIHRlbGEgY29uc2lkZXJhbmRvIG8gbWVudSBsYXRlcmFsXHJcbiAgICovXHJcbiAgc2V0UGFnZUZvcm1Db250YWluZXJBdHRyaWJ1dGVzKCkge1xyXG4gICAgaWYgKHRoaXMubG9jYXRpb25Vc2VDb21wb25lbnQgPT0gJ3BhZ2UnKSB7XHJcbiAgICAgIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhZ2UtZm9ybS1jb250YWluZXInKTtcclxuXHJcbiAgICAgIGlmIChmb3JtKSB7XHJcbiAgICAgICAgdmFyIHdpZHRoRnVsbCA9IGZvcm0uY2xpZW50V2lkdGg7XHJcbiAgICAgICAgdmFyIHdpZHRoQWRqdXN0ZWQ7XHJcblxyXG4gICAgICAgIHdpZHRoQWRqdXN0ZWQgPSB3aWR0aEZ1bGwgLSAzMzJcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxufVxyXG4iLCI8IS0tIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgLS0+XHJcbjxkaXZcclxuICBjbGFzcz1cImdyaWQtbm9ndXR0ZXIgbS0wXCJcclxuICBpZD1cInBhZ2UtZm9ybS1jb250YWluZXJcIlxyXG4+XHJcblxyXG4gIDwhLS0gUmVuZGVyaXphw6fDo28gZG8gZm9ybSAtLT5cclxuICA8ZGl2IGNsYXNzPVwiY29sLTEyIHAtMFwiIGlkPVwicGFnZS1mb3JtLWNvbnRlbnRcIj5cclxuXHJcblxyXG5cclxuPCEtLV9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXy0tPlxyXG5cclxuXHJcblxyXG4gICAgPHAtc3RlcHBlclxyXG4gICAgW2FjdGl2ZVN0ZXBdPVwiYWN0aXZlU3RlcFwiXHJcbiAgICBbb3JpZW50YXRpb25dPVwib3JpZW50YXRpb25cIlxyXG4gICAgW2xpbmVhcl09XCJsaW5lYXJcIlxyXG4gICAgKGFjdGl2ZVN0ZXBDaGFuZ2UpPVwib25BY3RpdmVTdGVwQ2hhbmdlKCRldmVudClcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBhbmVsIG9mIHBhbmVsczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICA8cC1zdGVwcGVyUGFuZWwgW2hlYWRlcl09XCJwYW5lbC5oZWFkZXJcIj5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgICBwVGVtcGxhdGU9XCJjb250ZW50XCJcclxuICAgICAgICAgIGxldC1uZXh0Q2FsbGJhY2s9XCJuZXh0Q2FsbGJhY2tcIlxyXG4gICAgICAgICAgbGV0LXByZXZDYWxsYmFjaz1cInByZXZDYWxsYmFja1wiXHJcbiAgICAgICAgPlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LXBhbmVsXCIgW2R5bmFtaWNDb21wb25lbnRdPVwieyBjb21wb25lbnQ6IHBhbmVsLmNvbnRlbnRUZW1wbGF0ZSwgaW5wdXRzOiBwYW5lbC5pbnB1dHMgfHwge30gfVwiPlxyXG4gICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwicGFuZWwuY29udGVudFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+IC0tPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IHB0LTRcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgJ2p1c3RpZnktY29udGVudC1iZXR3ZWVuJzogcGFuZWwuaWQgIT09IDAsXHJcbiAgICAgICAgICAgICAgJ2p1c3RpZnktY29udGVudC1lbmQnOiBwYW5lbC5pZCA9PT0gMCxcclxuICAgICAgICAgICAgICAnanVzdGlmeS1jb250ZW50LXN0YXJ0Jzogb3JpZW50YXRpb24gPT09ICd2ZXJ0aWNhbCdcclxuICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICA+XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBsZzpmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtZW5kIGNvbC0xMiBnYXAtMiBiYXJyYS1hY29lcyBncmlkIGdyaWQtbm9ndXR0ZXIgcC1mbHVpZFwiPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICAgIDxrdi1idXR0b24tc2Vjb25kYXJ5XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dCdG5DYW5jZWxcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInR4dEJ0bkNhbmNlbFwiXHJcbiAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uQnRuQ2FuY2VsXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L2t2LWJ1dHRvbi1zZWNvbmRhcnk+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gcGFuZWwuaWQgIT09IDAgLS0+XHJcbiAgICAgICAgICAgICAgQGlmKHRydWUpe1xyXG4gICAgICAgICAgICAgICAgPGt2LWJ1dHRvbi1wZXJzb25hbGl6ZVxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1ZvbHRhcidcIlxyXG4gICAgICAgICAgICAgICAgICBjb2xvcj1cIiMwMDI1NDJcIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicGFuZWwuaWQgPT0gMFwiXHJcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cIidwaSBwaS1hcnJvdy1sZWZ0J1wiXHJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInByZXZDYWxsYmFjay5lbWl0KClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9rdi1idXR0b24tcGVyc29uYWxpemU+XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSBwYW5lbC5pZCAhPT0gcGFuZWxzLmxlbmd0aCAtIDEgLS0+XHJcbiAgICAgICAgICAgICAgQGlmKHRydWUpe1xyXG4gICAgICAgICAgICAgICAgPGt2LWJ1dHRvbi1zdWNjZXNzXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCIgcGFuZWwuaWQgIT0gcGFuZWxzLmxlbmd0aC0xID8gbmV4dENhbGxiYWNrLmVtaXQoKSA6IHNhdmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cIidwaSBwaS1hcnJvdy1yaWdodCdcIlxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwicGFuZWwuaWQgIT0gcGFuZWxzLmxlbmd0aC0xID8gJ0F2YW7Dp2FyICcgOiB0eHRCdG5TYXZlXCJcclxuICAgICAgICAgICAgICAgICAgaWNvblBvcz1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAgID48L2t2LWJ1dHRvbi1zdWNjZXNzPlxyXG4gICAgICAgICAgICAgIH1cclxuPCEtLVxyXG4gICAgICAgICAgICAgIDxrdi1idXR0b24tc3VjY2Vzc1xyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93QnRuU2F2ZSAmJiAgcGFuZWwuaWQgPT09IHBhbmVscy5sZW5ndGggLSAxIFwiXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwidHh0QnRuU2F2ZVwiXHJcbiAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uQnRuU2F2ZVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUJ0blNhdmUgfHwgcGFuZWwuaWQgIT09IHBhbmVscy5sZW5ndGggLSAxXCJcclxuICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cImlzU2F2ZUxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRDYWxsYmFjay5lbWl0KClcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFkaXNhYmxlQnRuU2F2ZSA/IHNhdmUoJGV2ZW50KSA6ICcnXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgICAgICAgICAgLz4gLS0+XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSBAaWYocG9zaXRpb25CdG5Ub29nbGUgPT0gJ3N0YXJ0Jyl7XHJcbiAgICAgICAgICAgICAgICA8a3YtYnV0dG9uLXBvcHVwXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uc1Rvb2dsZSAmJiBzaG93QnRuVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInR4dEJ0blRvb2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cImljb25CdG5Ub29nbGVcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWVudVRvb2dsZS50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQnRuVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3NCdG49XCJ7e2NsYXNzQnRuVG9vZ2xlfX1cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9rdi1idXR0b24tcG9wdXA+XHJcbiAgICAgICAgICAgICAgICA8cC1tZW51XHJcbiAgICAgICAgICAgICAgICAgICNtZW51VG9vZ2xlXHJcbiAgICAgICAgICAgICAgICAgIFtwb3B1cF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImFjdGlvbnNUb29nbGVcIlxyXG4gICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgICAgICAgICAgPjwvcC1tZW51PlxyXG4gICAgICAgICAgICAgIH0gLS0+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGt2LWJ1dHRvbi1wb3B1cFxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbnNDYW5jZWxUb29nbGUgJiYgc2hvd0J0bkNhbmNlbFRvb2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ0eHRCdG5DYW5jZWxUb29nbGVcIlxyXG4gICAgICAgICAgICAgICAgICBbaWNvbl09XCJpY29uQnRuQ2FuY2VsVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lbnVDYW5jZWwudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3NCdG5dPVwiJ2J0bi1zZWNvbmRhcnkgYm9yZGVyLTMwMCdcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9rdi1idXR0b24tcG9wdXA+XHJcbiAgICAgICAgICAgICAgICA8cC1tZW51XHJcbiAgICAgICAgICAgICAgICAgICNtZW51Q2FuY2VsXHJcbiAgICAgICAgICAgICAgICAgIFtwb3B1cF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImFjdGlvbnNDYW5jZWxUb29nbGVcIlxyXG4gICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgICAgICAgICAgPjwvcC1tZW51PiAtLT5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgICAgPCEtLSA8a3YtYnV0dG9uLXBvcHVwXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGlvbnNTYXZlVG9vZ2xlICYmIHNob3dCdG5TYXZlVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ0eHRCdG5TYXZlVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgIFtpY29uXT1cImljb25CdG5TYXZlVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJtZW51U2F2ZS50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbbG9hZGluZ109XCJpc1NhdmVMb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGxnOnctYXV0b1wiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3NCdG5dPVwiJ2J0bi1zdWNjZXNzIGJvcmRlci1ncmVlbi01MDAnXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9rdi1idXR0b24tcG9wdXA+XHJcblxyXG4gICAgICAgICAgICAgIDxwLW1lbnVcclxuICAgICAgICAgICAgICAgICNtZW51U2F2ZVxyXG4gICAgICAgICAgICAgICAgW3BvcHVwXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cImFjdGlvbnNTYXZlVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgICAgICAgID48L3AtbWVudT4gLS0+XHJcblxyXG5cclxuICAgICAgICAgICAgICA8IS0tIEBpZihwb3NpdGlvbkJ0blRvb2dsZSA9PSAnZW5kJyl7XHJcbiAgICAgICAgICAgICAgICA8a3YtYnV0dG9uLXBvcHVwXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uc1Rvb2dsZSAmJiBzaG93QnRuVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInR4dEJ0blRvb2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cImljb25CdG5Ub29nbGVcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWVudVRvb2dsZS50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQnRuVG9vZ2xlXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbGc6dy1hdXRvXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3NCdG49XCJ7e2NsYXNzQnRuVG9vZ2xlfX1cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9rdi1idXR0b24tcG9wdXA+XHJcbiAgICAgICAgICAgICAgICA8cC1tZW51XHJcbiAgICAgICAgICAgICAgICAgICNtZW51VG9vZ2xlXHJcbiAgICAgICAgICAgICAgICAgIFtwb3B1cF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImFjdGlvbnNUb29nbGVcIlxyXG4gICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCBsZzp3LWF1dG9cIlxyXG4gICAgICAgICAgICAgICAgPjwvcC1tZW51PlxyXG4gICAgICAgICAgICAgIH0gLS0+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8L3Atc3RlcHBlclBhbmVsPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9wLXN0ZXBwZXI+XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG48IS0tX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fLS0+XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICA8L2Rpdj5cclxuXHJcblxyXG48L2Rpdj5cclxuIl19