ngx-vector-components 0.0.9 → 0.0.12

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.
@@ -1,3 +1,3 @@
1
1
  <svg width="35" height="35" viewBox="0 0 35 35" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z" fill="#11B797"/>
2
+ <path d="M17.5 0C14.0388 0 10.6554 1.02636 7.77753 2.94928C4.89967 4.87221 2.65665 7.60533 1.33212 10.803C0.00758245 14.0007 -0.338976 17.5194 0.336265 20.9141C1.01151 24.3087 2.67822 27.4269 5.12564 29.8744C7.57306 32.3218 10.6913 33.9885 14.0859 34.6637C17.4806 35.339 20.9993 34.9924 24.197 33.6679C27.3947 32.3434 30.1278 30.1003 32.0507 27.2225C33.9736 24.3446 35 20.9612 35 17.5C34.9981 12.8593 33.1538 8.40918 29.8723 5.1277C26.5908 1.84622 22.1407 0.00187031 17.5 0ZM19.0402 27.5812V29.7512H15.9774V27.4929C14.7019 27.2047 13.5315 26.5677 12.5969 25.653C11.6623 24.7384 11.0002 23.582 10.6846 22.313L13.585 21.1415C13.7924 22.1249 14.3147 23.014 15.0727 23.6739C15.8307 24.3339 16.7832 24.7288 17.7858 24.7989C19.4143 24.7989 21.2509 23.9591 21.2509 21.976C21.2509 20.2964 20.0265 19.4213 17.2601 18.4227C15.3352 17.7399 11.3973 16.6196 11.3973 12.6306C11.4319 11.3659 11.9105 10.1538 12.7492 9.20665C13.5879 8.25952 14.7333 7.63784 15.9845 7.4506V5.25053H19.0473V7.42061C20.1005 7.59773 21.0873 8.05283 21.9059 8.7389C22.7244 9.42497 23.3449 10.3171 23.7033 11.3232L20.9386 12.4965C20.7138 11.7977 20.2678 11.191 19.6678 10.768C19.0679 10.345 18.3466 10.1287 17.6129 10.1517C16.3885 10.1517 14.4372 10.7992 14.4372 12.5847C14.4372 14.2466 15.9421 14.8783 19.0579 15.9104C23.2586 17.3624 24.326 19.4972 24.326 21.9478C24.2905 23.372 23.732 24.7333 22.7572 25.7723C21.7824 26.8112 20.4593 27.4551 19.0402 27.5812Z" fill="#4E4B66"/>
3
3
  </svg>
@@ -159,10 +159,10 @@ export class TextFieldComponent {
159
159
  }
160
160
  }
161
161
  TextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TextFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
162
- TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: TextFieldComponent, selector: "vector-text-field", inputs: { isRequired: "isRequired", label: "label", maxlength: "maxlength", isPassword: "isPassword", numeric: "numeric", onlyText: "onlyText", mask: "mask", autoClear: "autoClear", rightIcon: "rightIcon", centered: "centered", enableDocumentTypeChoice: "enableDocumentTypeChoice", control: "control" }, outputs: { blurEvent: "blurEvent", enterKeyPress: "enterKeyPress", focusEvent: "focusEvent", onDocumentTypeChange: "onDocumentTypeChange" }, ngImport: i0, template: "<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n slotChar=\"_\"\r\n (click)=\"onFocus($event)\"\r\n ></p-inputMask>\r\n </div>\r\n <!-- <span class=\"input-error\">{{ fieldErrorLabel() }}</span> -->\r\n</form>\r\n", styles: [".input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:#fd6a6a}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}\n"], components: [{ type: i1.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }, { type: i2.InputMask, selector: "p-inputMask", inputs: ["type", "slotChar", "autoClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autoFocus", "autocomplete", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown"] }], directives: [{ type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.InputText, selector: "[pInputText]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i6.KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
162
+ TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: TextFieldComponent, selector: "vector-text-field", inputs: { isRequired: "isRequired", label: "label", maxlength: "maxlength", isPassword: "isPassword", numeric: "numeric", onlyText: "onlyText", mask: "mask", autoClear: "autoClear", rightIcon: "rightIcon", centered: "centered", enableDocumentTypeChoice: "enableDocumentTypeChoice", control: "control" }, outputs: { blurEvent: "blurEvent", enterKeyPress: "enterKeyPress", focusEvent: "focusEvent", onDocumentTypeChange: "onDocumentTypeChange" }, ngImport: i0, template: "<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n [placeholder]=\"placeholder\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n slotChar=\"_\"\r\n (click)=\"onFocus($event)\"\r\n ></p-inputMask>\r\n </div>\r\n <!-- <span class=\"input-error\">{{ fieldErrorLabel() }}</span> -->\r\n</form>\r\n", styles: [".input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:#fd6a6a}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}\n"], components: [{ type: i1.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }, { type: i2.InputMask, selector: "p-inputMask", inputs: ["type", "slotChar", "autoClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autoFocus", "autocomplete", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown"] }], directives: [{ type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.InputText, selector: "[pInputText]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i6.KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
163
163
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TextFieldComponent, decorators: [{
164
164
  type: Component,
165
- args: [{ selector: 'vector-text-field', template: "<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n slotChar=\"_\"\r\n (click)=\"onFocus($event)\"\r\n ></p-inputMask>\r\n </div>\r\n <!-- <span class=\"input-error\">{{ fieldErrorLabel() }}</span> -->\r\n</form>\r\n", styles: [".input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:#fd6a6a}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}\n"] }]
165
+ args: [{ selector: 'vector-text-field', template: "<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n [placeholder]=\"placeholder\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n slotChar=\"_\"\r\n (click)=\"onFocus($event)\"\r\n ></p-inputMask>\r\n </div>\r\n <!-- <span class=\"input-error\">{{ fieldErrorLabel() }}</span> -->\r\n</form>\r\n", styles: [".input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:#fd6a6a}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}\n"] }]
166
166
  }], propDecorators: { isRequired: [{
167
167
  type: Input
168
168
  }], label: [{
@@ -196,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
196
196
  }], onDocumentTypeChange: [{
197
197
  type: Output
198
198
  }] } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWZpZWxkL3RleHQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQU9TLGVBQVUsR0FBd0IsS0FBSyxDQUFDO1FBRXhDLFVBQUssR0FBdUIsRUFBRSxDQUFDO1FBRS9CLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQiw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFzQmpDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9CLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztR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QUFVO3NCQURoQixNQUFNO2dCQUdBLG9CQUFvQjtzQkFEMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRG9jdW1lbnRUeXBlLCBMaXN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE1hc2tVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2ZWN0b3ItdGV4dC1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpc1JlcXVpcmVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1heGxlbmd0aDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNQYXNzd29yZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG51bWVyaWMgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBvbmx5VGV4dCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1hc2s6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhdXRvQ2xlYXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJpZ2h0SWNvbiA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNlbnRlcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzZXQgY29udHJvbChfY29udHJvbDogYW55KSB7XHJcbiAgICB0aGlzLl9jb250cm9sID0gX2NvbnRyb2w7XHJcbiAgICAvLyBpZiAodGhpcy5lbmFibGVEb2N1bWVudFR5cGVDaG9pY2UpIHtcclxuICAgIC8vICAgdGhpcy5oYW5kbGVJbml0aWFsRG9jdW1lbnRUeXBlU3RhdGUoKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb250cm9sU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmVuYWJsZURvY3VtZW50VHlwZUNob2ljZSAmJiAhdGhpcy5sYXN0VHlwZWRWYWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoID4gMTEpIHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlSW5pdGlhbERvY3VtZW50VHlwZVN0YXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdFR5cGVkVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBibHVyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGVudGVyS2V5UHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGZvY3VzRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRG9jdW1lbnRUeXBlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4oKTtcclxuXHJcbiAgcHVibGljIGlzUGFzc3dvcmRWaXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGdldCBwbGFjZWhvbGRlcigpIHtcclxuICAgIGlmICghdGhpcy5sYWJlbCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhpcy5sYWJlbH0ke3RoaXMuaXNSZXF1aXJlZCA/ICcqJyA6ICcnfWA7XHJcbiAgfVxyXG5cclxuICBnZXQga2V5ZmlsdGVyKCkge1xyXG4gICAgaWYgKHRoaXMubnVtZXJpYykge1xyXG4gICAgICByZXR1cm4gJ2ludCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbmx5VGV4dCkge1xyXG4gICAgICByZXR1cm4gL1thLXpBLVrDgC3Dulxcc10vZ207XHJcbiAgICB9XHJcbiAgICByZXR1cm4gL1tcXHNcXFNdKi87XHJcbiAgfVxyXG5cclxuICBnZXQgY29udHJvbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dQYXNzd29yZEljb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc1Bhc3N3b3JkVmlzaWJsZSA/ICdmYXMgZmEtZXllJyA6ICdmYXMgZmEtZXllLXNsYXNoJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkb2N1bWVudFR5cGVzOiBMaXN0SXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnQ1BGJyxcclxuICAgICAgY29kZTogRG9jdW1lbnRUeXBlLkNQRixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdDTlBKJyxcclxuICAgICAgY29kZTogRG9jdW1lbnRUeXBlLkNOUEosXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZERvY3VtZW50VHlwZSA9IHRoaXMuZG9jdW1lbnRUeXBlc1sxXTtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0Qmx1clZhbHVlID0gJyc7XHJcbiAgcHJpdmF0ZSBsYXN0VHlwZWRWYWx1ZSA9ICcnO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgY29udHJvbFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBwcml2YXRlIF9jb250cm9sOiBhbnk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlKSB7XHJcbiAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUuY29kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaWVsZEVycm9yTGFiZWwoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wgJiYgdGhpcy5jb250cm9sLmludmFsaWQgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQpIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xyXG4gICAgICAgIHJldHVybiAnQ2FtcG8gb2JyaWdhdMOzcmlvJztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuY29udHJvbC5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcclxuICAgICAgICByZXR1cm4gYFRhbWFuaG8gbcOtbmltbzogJHt0aGlzLmNvbnRyb2wuZXJyb3JzWydtaW5sZW5ndGgnXS5yZXF1aXJlZExlbmd0aH1gO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xyXG4gICAgICAgIHJldHVybiBgVGFtYW5obyBtw6F4aW1vIHBlcm1pdGlkbzogJHt0aGlzLmNvbnRyb2wuZXJyb3JzWydtYXhsZW5ndGgnXS5yZXF1aXJlZExlbmd0aH1gO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdHlwZW9mIHRoaXMuY29udHJvbC5lcnJvcnNbJ2ludmFsaWQnXSA9PT0gJ3N0cmluZycgPyB0aGlzLmNvbnRyb2wuZXJyb3JzWydpbnZhbGlkJ10gOiAnQ2FtcG8gaW52w6FsaWRvJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25CbHVyKCkge1xyXG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIGlmICh0aGlzLmxhc3RCbHVyVmFsdWUgIT09IHRoaXMuY29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmxhc3RCbHVyVmFsdWUgPSB0aGlzLmNvbnRyb2wudmFsdWU7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYmx1ckV2ZW50LmVtaXQodGhpcy5jb250cm9sLnZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25FbnRlclByZXNzKCkge1xyXG4gICAgdGhpcy5vbkJsdXIoKTtcclxuICAgIHRoaXMuZW50ZXJLZXlQcmVzcy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Gb2N1cygkZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBpZiAodGhpcy5tYXNrKSB7XHJcbiAgICAgIGNvbnN0IGZpcnN0VW5kZXJzY29yZSA9IHRhcmdldD8udmFsdWUuaW5kZXhPZignXycpO1xyXG4gICAgICBjb25zdCBzZWxlY3Rpb25JbmRleCA9IChmaXJzdFVuZGVyc2NvcmUgPj0gMCA/IGZpcnN0VW5kZXJzY29yZSA6IHRhcmdldD8udmFsdWUubGVuZ3RoKSB8fCAwO1xyXG4gICAgICB0YXJnZXQ/LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvbkluZGV4LCBzZWxlY3Rpb25JbmRleCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvY3VzRXZlbnQuZW1pdCh0YXJnZXQ/LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVTaG93UGFzc3dvcmQoKSB7XHJcbiAgICB0aGlzLmlzUGFzc3dvcmRWaXNpYmxlID0gIXRoaXMuaXNQYXNzd29yZFZpc2libGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRG9jdW1lbnRUeXBlQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUuY29kZSA9PT0gRG9jdW1lbnRUeXBlLkNOUEopIHtcclxuICAgICAgdGhpcy5zZXREb2N1bWVudFR5cGUoRG9jdW1lbnRUeXBlLkNQRik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ05QSik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUluaXRpYWxEb2N1bWVudFR5cGVTdGF0ZSgpIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUubGVuZ3RoID09PSAxMSkge1xyXG4gICAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKERvY3VtZW50VHlwZS5DUEYpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ05QSik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERvY3VtZW50VHlwZShkb2N1bWVudFR5cGU6IERvY3VtZW50VHlwZSkge1xyXG4gICAgc3dpdGNoIChkb2N1bWVudFR5cGUpIHtcclxuICAgICAgY2FzZSBEb2N1bWVudFR5cGUuQ05QSjpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gdGhpcy5kb2N1bWVudFR5cGVzWzFdO1xyXG4gICAgICAgIHRoaXMubWFzayA9IE1hc2tVdGlsLkNOUEpfVEVYVF9GSUVMRF9QQVRURVJOO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIERvY3VtZW50VHlwZS5DUEY6XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9IHRoaXMuZG9jdW1lbnRUeXBlc1swXTtcclxuICAgICAgICB0aGlzLm1hc2sgPSBNYXNrVXRpbC5DUEZfVEVYVF9GSUVMRF9QQVRURVJOO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkRvY3VtZW50VHlwZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBwLWlucHV0LWljb24tcmlnaHRcIj5cclxuICA8aSAqbmdJZj1cInJpZ2h0SWNvblwiIFtjbGFzc109XCJyaWdodEljb25cIj48L2k+XHJcbiAgPGkgKm5nSWY9XCJpc1Bhc3N3b3JkXCIgY2xhc3M9XCJzaG93LXBhc3N3b3JkLWljb24ge3sgc2hvd1Bhc3N3b3JkSWNvbiB9fVwiIChjbGljayk9XCJ0b2dnbGVTaG93UGFzc3dvcmQoKVwiPjwvaT5cclxuICA8ZGl2IGNsYXNzPVwicC1pbnB1dGdyb3VwXCI+XHJcbiAgICA8dmVjdG9yLWJ1dHRvblxyXG4gICAgICAqbmdJZj1cImVuYWJsZURvY3VtZW50VHlwZUNob2ljZVwiXHJcbiAgICAgIGxlZnRJY29uPVwiZmFzIGZhLWV4Y2hhbmdlLWFsdFwiXHJcbiAgICAgIHR5cGU9XCJzdWNjZXNzXCJcclxuICAgICAgW2xhYmVsXT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlLm5hbWVcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiY29udHJvbC5kaXNhYmxlZFwiXHJcbiAgICAgIFtub1NoYWRvd109XCJ0cnVlXCJcclxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlRG9jdW1lbnRUeXBlQ2hhbmdlKClcIlxyXG4gICAgPjwvdmVjdG9yLWJ1dHRvbj5cclxuXHJcbiAgICA8aW5wdXRcclxuICAgICAgKm5nSWY9XCIhbWFza1wiXHJcbiAgICAgIHBJbnB1dFRleHRcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcEtleUZpbHRlcl09XCJrZXlmaWx0ZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7ICdwYXNzd29yZC1maWVsZCc6IGlzUGFzc3dvcmQgJiYgIWlzUGFzc3dvcmRWaXNpYmxlLCAndGV4dC1jZW50ZXJlZCc6IGNlbnRlcmVkIH1cIlxyXG4gICAgICAob25CbHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlclByZXNzKClcIlxyXG4gICAgICAoY2xpY2spPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgIC8+XHJcbiAgICA8cC1pbnB1dE1hc2tcclxuICAgICAgKm5nSWY9XCJtYXNrXCJcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgIFttYXNrXT1cIm1hc2tcIlxyXG4gICAgICAob25CbHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlclByZXNzKClcIlxyXG4gICAgICBbYXV0b0NsZWFyXT1cImF1dG9DbGVhclwiXHJcbiAgICAgIFt1bm1hc2tdPVwidHJ1ZVwiXHJcbiAgICAgIFtzdHlsZUNsYXNzXT1cImNlbnRlcmVkID8gJ3RleHQtY2VudGVyZWQnIDogJydcIlxyXG4gICAgICBzbG90Q2hhcj1cIl9cIlxyXG4gICAgICAoY2xpY2spPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgID48L3AtaW5wdXRNYXNrPlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gPHNwYW4gY2xhc3M9XCJpbnB1dC1lcnJvclwiPnt7IGZpZWxkRXJyb3JMYWJlbCgpIH19PC9zcGFuPiAtLT5cclxuPC9mb3JtPlxyXG4iXX0=
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWZpZWxkL3RleHQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQU9TLGVBQVUsR0FBd0IsS0FBSyxDQUFDO1FBRXhDLFVBQUssR0FBdUIsRUFBRSxDQUFDO1FBRS9CLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQiw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFzQmpDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9CLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVuQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVoQyx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRXBELHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQTJCMUIsa0JBQWEsR0FBZTtZQUNqQztnQkFDRSxJQUFJLEVBQUUsS0FBSztnQkFDWCxJQUFJLEVBQUUsWUFBWSxDQUFDLEdBQUc7YUFDdkI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsTUFBTTtnQkFDWixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7YUFDeEI7U0FDRixDQUFDO1FBRUsseUJBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU1QyxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUNuQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQTZGbEQ7SUFyS0MsSUFDSSxPQUFPLENBQUMsUUFBYTtRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6Qix1Q0FBdUM7UUFDdkMsMkNBQTJDO1FBQzNDLElBQUk7UUFFSixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7U0FDL0M7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUNwRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksS0FBSyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUU7Z0JBQy9FLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO2FBQ3ZDO1lBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFZRCxJQUFJLFdBQVc7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixPQUFPLGlCQUFpQixDQUFDO1NBQzFCO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUM7SUFDcEUsQ0FBQztJQXFCRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNoRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNyQyxPQUFPLG1CQUFtQixDQUFDO2FBQzVCO1lBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDdEMsT0FBTyxtQkFBbUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDN0U7WUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLDZCQUE2QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN2RjtZQUVELE9BQU8sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztTQUMvRztRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUM3QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQ3hDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sT0FBTyxDQUFDLE1BQWE7UUFDMUIsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQTBCLENBQUM7UUFDakQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsTUFBTSxlQUFlLEdBQUcsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVGLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDM0Q7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbkQsQ0FBQztJQUVNLHdCQUF3QjtRQUM3QixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUksRUFBRTtZQUN4RCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0wsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDO0lBRU8sOEJBQThCO1FBQ3BDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUU7WUFDdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN4QztTQUNGO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxZQUEwQjtRQUNoRCxRQUFRLFlBQVksRUFBRTtZQUNwQixLQUFLLFlBQVksQ0FBQyxJQUFJO2dCQUNwQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsdUJBQXVCLENBQUM7Z0JBQzdDLE1BQU07WUFDUixLQUFLLFlBQVksQ0FBQyxHQUFHO2dCQUNuQixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsc0JBQXNCLENBQUM7Z0JBQzVDLE1BQU07U0FDVDtRQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDNUQsQ0FBQzs7K0dBM0xVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNmQ1YvQiwyakRBNENBOzJGRGxDYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsbUJBQW1COzhCQU10QixVQUFVO3NCQURoQixLQUFLO2dCQUdDLEtBQUs7c0JBRFgsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsVUFBVTtzQkFEaEIsS0FBSztnQkFHQyxPQUFPO3NCQURiLEtBQUs7Z0JBR0MsUUFBUTtzQkFEZCxLQUFLO2dCQUdDLElBQUk7c0JBRFYsS0FBSztnQkFHQyxTQUFTO3NCQURmLEtBQUs7Z0JBR0MsU0FBUztzQkFEZixLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSztnQkFHQyx3QkFBd0I7c0JBRDlCLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQXFCQyxTQUFTO3NCQURmLE1BQU07Z0JBR0EsYUFBYTtzQkFEbkIsTUFBTTtnQkFHQSxVQUFVO3NCQURoQixNQUFNO2dCQUdBLG9CQUFvQjtzQkFEMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRG9jdW1lbnRUeXBlLCBMaXN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE1hc2tVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2ZWN0b3ItdGV4dC1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpc1JlcXVpcmVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1heGxlbmd0aDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNQYXNzd29yZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG51bWVyaWMgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBvbmx5VGV4dCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1hc2s6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhdXRvQ2xlYXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJpZ2h0SWNvbiA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNlbnRlcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzZXQgY29udHJvbChfY29udHJvbDogYW55KSB7XHJcbiAgICB0aGlzLl9jb250cm9sID0gX2NvbnRyb2w7XHJcbiAgICAvLyBpZiAodGhpcy5lbmFibGVEb2N1bWVudFR5cGVDaG9pY2UpIHtcclxuICAgIC8vICAgdGhpcy5oYW5kbGVJbml0aWFsRG9jdW1lbnRUeXBlU3RhdGUoKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb250cm9sU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmVuYWJsZURvY3VtZW50VHlwZUNob2ljZSAmJiAhdGhpcy5sYXN0VHlwZWRWYWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoID4gMTEpIHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlSW5pdGlhbERvY3VtZW50VHlwZVN0YXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdFR5cGVkVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBibHVyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGVudGVyS2V5UHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGZvY3VzRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRG9jdW1lbnRUeXBlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4oKTtcclxuXHJcbiAgcHVibGljIGlzUGFzc3dvcmRWaXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGdldCBwbGFjZWhvbGRlcigpIHtcclxuICAgIGlmICghdGhpcy5sYWJlbCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhpcy5sYWJlbH0ke3RoaXMuaXNSZXF1aXJlZCA/ICcqJyA6ICcnfWA7XHJcbiAgfVxyXG5cclxuICBnZXQga2V5ZmlsdGVyKCkge1xyXG4gICAgaWYgKHRoaXMubnVtZXJpYykge1xyXG4gICAgICByZXR1cm4gJ2ludCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbmx5VGV4dCkge1xyXG4gICAgICByZXR1cm4gL1thLXpBLVrDgC3Dulxcc10vZ207XHJcbiAgICB9XHJcbiAgICByZXR1cm4gL1tcXHNcXFNdKi87XHJcbiAgfVxyXG5cclxuICBnZXQgY29udHJvbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dQYXNzd29yZEljb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc1Bhc3N3b3JkVmlzaWJsZSA/ICdmYXMgZmEtZXllJyA6ICdmYXMgZmEtZXllLXNsYXNoJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkb2N1bWVudFR5cGVzOiBMaXN0SXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnQ1BGJyxcclxuICAgICAgY29kZTogRG9jdW1lbnRUeXBlLkNQRixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdDTlBKJyxcclxuICAgICAgY29kZTogRG9jdW1lbnRUeXBlLkNOUEosXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZERvY3VtZW50VHlwZSA9IHRoaXMuZG9jdW1lbnRUeXBlc1sxXTtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0Qmx1clZhbHVlID0gJyc7XHJcbiAgcHJpdmF0ZSBsYXN0VHlwZWRWYWx1ZSA9ICcnO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgY29udHJvbFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBwcml2YXRlIF9jb250cm9sOiBhbnk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlKSB7XHJcbiAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUuY29kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaWVsZEVycm9yTGFiZWwoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wgJiYgdGhpcy5jb250cm9sLmludmFsaWQgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQpIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xyXG4gICAgICAgIHJldHVybiAnQ2FtcG8gb2JyaWdhdMOzcmlvJztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuY29udHJvbC5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcclxuICAgICAgICByZXR1cm4gYFRhbWFuaG8gbcOtbmltbzogJHt0aGlzLmNvbnRyb2wuZXJyb3JzWydtaW5sZW5ndGgnXS5yZXF1aXJlZExlbmd0aH1gO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xyXG4gICAgICAgIHJldHVybiBgVGFtYW5obyBtw6F4aW1vIHBlcm1pdGlkbzogJHt0aGlzLmNvbnRyb2wuZXJyb3JzWydtYXhsZW5ndGgnXS5yZXF1aXJlZExlbmd0aH1gO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdHlwZW9mIHRoaXMuY29udHJvbC5lcnJvcnNbJ2ludmFsaWQnXSA9PT0gJ3N0cmluZycgPyB0aGlzLmNvbnRyb2wuZXJyb3JzWydpbnZhbGlkJ10gOiAnQ2FtcG8gaW52w6FsaWRvJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25CbHVyKCkge1xyXG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIGlmICh0aGlzLmxhc3RCbHVyVmFsdWUgIT09IHRoaXMuY29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmxhc3RCbHVyVmFsdWUgPSB0aGlzLmNvbnRyb2wudmFsdWU7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYmx1ckV2ZW50LmVtaXQodGhpcy5jb250cm9sLnZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25FbnRlclByZXNzKCkge1xyXG4gICAgdGhpcy5vbkJsdXIoKTtcclxuICAgIHRoaXMuZW50ZXJLZXlQcmVzcy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Gb2N1cygkZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBpZiAodGhpcy5tYXNrKSB7XHJcbiAgICAgIGNvbnN0IGZpcnN0VW5kZXJzY29yZSA9IHRhcmdldD8udmFsdWUuaW5kZXhPZignXycpO1xyXG4gICAgICBjb25zdCBzZWxlY3Rpb25JbmRleCA9IChmaXJzdFVuZGVyc2NvcmUgPj0gMCA/IGZpcnN0VW5kZXJzY29yZSA6IHRhcmdldD8udmFsdWUubGVuZ3RoKSB8fCAwO1xyXG4gICAgICB0YXJnZXQ/LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvbkluZGV4LCBzZWxlY3Rpb25JbmRleCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvY3VzRXZlbnQuZW1pdCh0YXJnZXQ/LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVTaG93UGFzc3dvcmQoKSB7XHJcbiAgICB0aGlzLmlzUGFzc3dvcmRWaXNpYmxlID0gIXRoaXMuaXNQYXNzd29yZFZpc2libGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRG9jdW1lbnRUeXBlQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUuY29kZSA9PT0gRG9jdW1lbnRUeXBlLkNOUEopIHtcclxuICAgICAgdGhpcy5zZXREb2N1bWVudFR5cGUoRG9jdW1lbnRUeXBlLkNQRik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ05QSik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUluaXRpYWxEb2N1bWVudFR5cGVTdGF0ZSgpIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUubGVuZ3RoID09PSAxMSkge1xyXG4gICAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKERvY3VtZW50VHlwZS5DUEYpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ05QSik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERvY3VtZW50VHlwZShkb2N1bWVudFR5cGU6IERvY3VtZW50VHlwZSkge1xyXG4gICAgc3dpdGNoIChkb2N1bWVudFR5cGUpIHtcclxuICAgICAgY2FzZSBEb2N1bWVudFR5cGUuQ05QSjpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gdGhpcy5kb2N1bWVudFR5cGVzWzFdO1xyXG4gICAgICAgIHRoaXMubWFzayA9IE1hc2tVdGlsLkNOUEpfVEVYVF9GSUVMRF9QQVRURVJOO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIERvY3VtZW50VHlwZS5DUEY6XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9IHRoaXMuZG9jdW1lbnRUeXBlc1swXTtcclxuICAgICAgICB0aGlzLm1hc2sgPSBNYXNrVXRpbC5DUEZfVEVYVF9GSUVMRF9QQVRURVJOO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkRvY3VtZW50VHlwZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBwLWlucHV0LWljb24tcmlnaHRcIj5cclxuICA8aSAqbmdJZj1cInJpZ2h0SWNvblwiIFtjbGFzc109XCJyaWdodEljb25cIj48L2k+XHJcbiAgPGkgKm5nSWY9XCJpc1Bhc3N3b3JkXCIgY2xhc3M9XCJzaG93LXBhc3N3b3JkLWljb24ge3sgc2hvd1Bhc3N3b3JkSWNvbiB9fVwiIChjbGljayk9XCJ0b2dnbGVTaG93UGFzc3dvcmQoKVwiPjwvaT5cclxuICA8ZGl2IGNsYXNzPVwicC1pbnB1dGdyb3VwXCI+XHJcbiAgICA8dmVjdG9yLWJ1dHRvblxyXG4gICAgICAqbmdJZj1cImVuYWJsZURvY3VtZW50VHlwZUNob2ljZVwiXHJcbiAgICAgIGxlZnRJY29uPVwiZmFzIGZhLWV4Y2hhbmdlLWFsdFwiXHJcbiAgICAgIHR5cGU9XCJzdWNjZXNzXCJcclxuICAgICAgW2xhYmVsXT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlLm5hbWVcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiY29udHJvbC5kaXNhYmxlZFwiXHJcbiAgICAgIFtub1NoYWRvd109XCJ0cnVlXCJcclxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlRG9jdW1lbnRUeXBlQ2hhbmdlKClcIlxyXG4gICAgPjwvdmVjdG9yLWJ1dHRvbj5cclxuXHJcbiAgICA8aW5wdXRcclxuICAgICAgKm5nSWY9XCIhbWFza1wiXHJcbiAgICAgIHBJbnB1dFRleHRcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcEtleUZpbHRlcl09XCJrZXlmaWx0ZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7ICdwYXNzd29yZC1maWVsZCc6IGlzUGFzc3dvcmQgJiYgIWlzUGFzc3dvcmRWaXNpYmxlLCAndGV4dC1jZW50ZXJlZCc6IGNlbnRlcmVkIH1cIlxyXG4gICAgICAob25CbHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlclByZXNzKClcIlxyXG4gICAgICAoY2xpY2spPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgIC8+XHJcbiAgICA8cC1pbnB1dE1hc2tcclxuICAgICAgKm5nSWY9XCJtYXNrXCJcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgIFttYXNrXT1cIm1hc2tcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAob25CbHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlclByZXNzKClcIlxyXG4gICAgICBbYXV0b0NsZWFyXT1cImF1dG9DbGVhclwiXHJcbiAgICAgIFt1bm1hc2tdPVwidHJ1ZVwiXHJcbiAgICAgIFtzdHlsZUNsYXNzXT1cImNlbnRlcmVkID8gJ3RleHQtY2VudGVyZWQnIDogJydcIlxyXG4gICAgICBzbG90Q2hhcj1cIl9cIlxyXG4gICAgICAoY2xpY2spPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgID48L3AtaW5wdXRNYXNrPlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gPHNwYW4gY2xhc3M9XCJpbnB1dC1lcnJvclwiPnt7IGZpZWxkRXJyb3JMYWJlbCgpIH19PC9zcGFuPiAtLT5cclxuPC9mb3JtPlxyXG4iXX0=
@@ -24,6 +24,28 @@ export class MenuComponent {
24
24
  this.onFinishMenuOptionsConfig = new EventEmitter();
25
25
  this._opened = true;
26
26
  this.subscription = new Subscription();
27
+ this.currentWindowWidth = 0;
28
+ }
29
+ set opened(opened) {
30
+ this._opened = opened;
31
+ this.menuService.menuOpened$.next(this.opened);
32
+ }
33
+ get opened() {
34
+ return this._opened;
35
+ }
36
+ get hasFintechAdminPermission() {
37
+ return this.profileService.hasFintechAdminPermission;
38
+ }
39
+ get hasMarketplaceAdminPermission() {
40
+ return this.profileService.hasMarketplaceAdminPermission;
41
+ }
42
+ get hasAnyMarketplacePermission() {
43
+ return this.profileService.hasAnyMarketplacePermission;
44
+ }
45
+ get hasAnyFintechPermission() {
46
+ return this.profileService.hasAnyFintechPermission;
47
+ }
48
+ ngOnInit() {
27
49
  this.subscription.add(this.menuService.toggleMenu$.subscribe(() => {
28
50
  this.toggleMenu();
29
51
  }));
@@ -62,30 +84,11 @@ export class MenuComponent {
62
84
  });
63
85
  }
64
86
  }
65
- this.onFinishMenuOptionsConfig.emit();
87
+ this.onFinishMenuOptionsConfig.emit(null);
66
88
  }
67
89
  }));
68
90
  this.currentWindowWidth = window.innerWidth;
69
91
  }
70
- set opened(opened) {
71
- this._opened = opened;
72
- this.menuService.menuOpened$.next(this.opened);
73
- }
74
- get opened() {
75
- return this._opened;
76
- }
77
- get hasFintechAdminPermission() {
78
- return this.profileService.hasFintechAdminPermission;
79
- }
80
- get hasMarketplaceAdminPermission() {
81
- return this.profileService.hasMarketplaceAdminPermission;
82
- }
83
- get hasAnyMarketplacePermission() {
84
- return this.profileService.hasAnyMarketplacePermission;
85
- }
86
- get hasAnyFintechPermission() {
87
- return this.profileService.hasAnyFintechPermission;
88
- }
89
92
  onResize() {
90
93
  if (this.opened && this.currentWindowWidth !== window.innerWidth) {
91
94
  this.clearAndCloseMenu();
@@ -263,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
263
266
  type: HostListener,
264
267
  args: ['document:keydown.escape', ['$event']]
265
268
  }] } });
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBWSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7QUFrRXZELE1BQU0sT0FBTyxhQUFhO0lBMEN4QixZQUNVLFdBQXdCLEVBQ3hCLE1BQWMsRUFDZCxjQUE4QixFQUM5QixjQUE4QixFQUNQLFdBQWdCLEVBQ3BCLFVBQWtCO1FBTHJDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ1AsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQS9DeEMsWUFBTyxHQUFlLEVBQUUsQ0FBQztRQUd6QixlQUFVLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFD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SyxDQUNILEdBQUcsRUFDSCxLQUFLLENBQUM7Z0NBQ0osT0FBTyxFQUFFLENBQUM7Z0NBQ1YsV0FBVyxFQUFFLEtBQUs7Z0NBQ2xCLEtBQUssRUFBRSxNQUFNOzZCQUNkLENBQUMsQ0FDSDs0QkFDRCxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO3lCQUNwRCxDQUFDO3dCQUNGLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRTs0QkFDMUIsS0FBSyxDQUNILEdBQUcsRUFDSCxLQUFLLENBQUM7Z0NBQ0osT0FBTyxFQUFFLENBQUM7Z0NBQ1YsTUFBTSxFQUFFLElBQUk7NkJBQ2IsQ0FBQyxDQUNIOzRCQUNELEtBQUssQ0FDSCxHQUFHLEVBQ0gsS0FBSyxDQUFDO2dDQUNKLE9BQU8sRUFBRSxDQUFDO2dDQUNWLE1BQU0sRUFBRSxhQUFhOzZCQUN0QixDQUFDLENBQ0g7NEJBQ0QsVUFBVSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQzt5QkFDcEQsQ0FBQztxQkFDSDs7MEJBaURFLE1BQU07MkJBQUMsYUFBYTs7MEJBQ3BCLE1BQU07MkJBQUMsU0FBUzs0Q0FyQ1oseUJBQXlCO3NCQUQvQixNQUFNO2dCQThGUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVN6QyxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBPbkRlc3Ryb3ksIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXBwTmFtZSwgTWVudUl0ZW0sIFJvbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBNZW51U2VydmljZSwgUHJvZmlsZVNlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2ZWN0b3ItbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lbnUuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdzaWRlSW5PdXQnLCBbc3RhdGUoJ2luJywgc3R5bGUoeyB3aWR0aDogJzYwcHgnIH0pKSwgc3RhdGUoJ291dCcsIHN0eWxlKHsgd2lkdGg6ICcyNTBweCcgfSkpXSksXHJcbiAgICB0cmlnZ2VyKCdmYWRlSW5PdXQnLCBbXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcwJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgICAgd2lkdGg6ICcwJScsXHJcbiAgICAgICAgICAnZm9udC1zaXplJzogJzBlbScsXHJcbiAgICAgICAgfSlcclxuICAgICAgKSxcclxuICAgICAgc3RhdGUoXHJcbiAgICAgICAgJzEnLFxyXG4gICAgICAgIHN0eWxlKHtcclxuICAgICAgICAgIG9wYWNpdHk6IDEsXHJcbiAgICAgICAgICAnZm9udC1zaXplJzogJzFlbScsXHJcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHRyYW5zaXRpb24oJzAgPD0+IDEnLCBhbmltYXRlKCczNTBtcyBlYXNlLWluLW91dCcpKSxcclxuICAgIF0pLFxyXG4gICAgdHJpZ2dlcignZmFkZVNlYXJjaEluT3V0JywgW1xyXG4gICAgICBzdGF0ZShcclxuICAgICAgICAnMCcsXHJcbiAgICAgICAgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogMCxcclxuICAgICAgICAgIHdpZHRoOiAnMCUnLFxyXG4gICAgICAgICAgJ2ZvbnQtc2l6ZSc6ICcwZW0nLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcxJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAxLFxyXG4gICAgICAgICAgJ2ZvbnQtc2l6ZSc6ICcxZW0nLFxyXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICB9KVxyXG4gICAgICApLFxyXG4gICAgICB0cmFuc2l0aW9uKCcwIDw9PiAxJywgYW5pbWF0ZSgnMzUwbXMgZWFzZS1pbi1vdXQnKSksXHJcbiAgICBdKSxcclxuICAgIHRyaWdnZXIoJ3N1Ym1lbnVGYWRlSW5PdXQnLCBbXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcwJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnMCUnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcxJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAxLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnZml0LWNvbnRlbnQnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHRyYW5zaXRpb24oJzAgPD0+IDEnLCBhbmltYXRlKCczNTBtcyBlYXNlLWluLW91dCcpKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwdWJsaWMgb3B0aW9uczogTWVudUl0ZW1bXSA9IFtdO1xyXG4gIHB1YmxpYyBhY3RpdmVPcHRpb246IE1lbnVJdGVtIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBhY3RpdmVTdWJtZW51T3B0aW9uOiBNZW51SXRlbSB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgd2lkdGhTdHlsZSA9IHsgd2lkdGg6ICcyNTBweCcgfTtcclxuICBwdWJsaWMgbGFzdEFuaW1hdGlvbiA9ICdvdXQnO1xyXG4gIHB1YmxpYyBhcHBOYW1lTGFiZWwgPSB0aGlzLmVudmlyb25tZW50LmFwcE5hbWU7XHJcbiAgcHVibGljIGFkbWluT3B0aW9uOiBNZW51SXRlbSB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgYXBwcyA9IEFwcE5hbWU7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkZpbmlzaE1lbnVPcHRpb25zQ29uZmlnID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBzZXQgb3BlbmVkKG9wZW5lZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fb3BlbmVkID0gb3BlbmVkO1xyXG4gICAgdGhpcy5tZW51U2VydmljZS5tZW51T3BlbmVkJC5uZXh0KHRoaXMub3BlbmVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgb3BlbmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wZW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaGFzRmludGVjaEFkbWluUGVybWlzc2lvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmhhc0ZpbnRlY2hBZG1pblBlcm1pc3Npb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGhhc01hcmtldHBsYWNlQWRtaW5QZXJtaXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZVNlcnZpY2UuaGFzTWFya2V0cGxhY2VBZG1pblBlcm1pc3Npb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGhhc0FueU1hcmtldHBsYWNlUGVybWlzc2lvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmhhc0FueU1hcmtldHBsYWNlUGVybWlzc2lvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaGFzQW55RmludGVjaFBlcm1pc3Npb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlU2VydmljZS5oYXNBbnlGaW50ZWNoUGVybWlzc2lvbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX29wZW5lZCA9IHRydWU7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgcHJpdmF0ZSBjdXJyZW50V2luZG93V2lkdGg6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1lbnVTZXJ2aWNlOiBNZW51U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHByb2ZpbGVTZXJ2aWNlOiBQcm9maWxlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnksXHJcbiAgICBASW5qZWN0KCdhcHBOYW1lJykgcHJpdmF0ZSBjdXJyZW50QXBwOiBzdHJpbmdcclxuICApIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5tZW51U2VydmljZS50b2dnbGVNZW51JC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudG9nZ2xlTWVudSgpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMucHJvZmlsZVNlcnZpY2UubW9kdWxlUHJvZmlsZSQuc3Vic2NyaWJlKChwcm9maWxlKSA9PiB7XHJcbiAgICAgICAgaWYgKHByb2ZpbGUpIHtcclxuICAgICAgICAgIGNvbnN0IHJvbGUgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFJvbGUoKTtcclxuICAgICAgICAgIHRoaXMub3B0aW9ucyA9XHJcbiAgICAgICAgICAgIHJvbGUgPT09IFJvbGUuQURNSU5cclxuICAgICAgICAgICAgICA/IHRoaXMubWVudVNlcnZpY2UuZ2V0U2lkZUFkbWluTWVudU9wdGlvbnMoKVxyXG4gICAgICAgICAgICAgIDogdGhpcy5tZW51U2VydmljZS5nZXRTaWRlTWFpbk1lbnVPcHRpb25zKCk7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuaGFzRmludGVjaEFkbWluUGVybWlzc2lvbiB8fCB0aGlzLmhhc01hcmtldHBsYWNlQWRtaW5QZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRtaW5PcHRpb24gPSB7XHJcbiAgICAgICAgICAgICAgaWQ6IDk5OTk5LFxyXG4gICAgICAgICAgICAgIGxhYmVsOiAnQWRtaW4nLFxyXG4gICAgICAgICAgICAgIGljb25GaWxlTmFtZTogJ3ZlY3Rvcl9hZG1pbl9pY29uJyxcclxuICAgICAgICAgICAgICBjaGlsZHJlbjogW10sXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5oYXNGaW50ZWNoQWRtaW5QZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hZG1pbk9wdGlvbi5jaGlsZHJlbj8ucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBpZDogOTk5OTkxLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBZG1pbiBGaW50ZWNoJyxcclxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvUG9ydGFsKHsgcG9ydGFsOiAnZmludGVjaCcsIGFkbWluOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGhpZGRlbjogIXRoaXMuaGFzRmludGVjaEFkbWluUGVybWlzc2lvbixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzTWFya2V0cGxhY2VBZG1pblBlcm1pc3Npb24pIHtcclxuICAgICAgICAgICAgICB0aGlzLmFkbWluT3B0aW9uLmNoaWxkcmVuPy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiA5OTk5OTIsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0FkbWluIE1hcmtldHBsYWNlJyxcclxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvUG9ydGFsKHsgcG9ydGFsOiAnbWFya2V0cGxhY2UnLCBhZG1pbjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBoaWRkZW46ICF0aGlzLmhhc01hcmtldHBsYWNlQWRtaW5QZXJtaXNzaW9uLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLm9uRmluaXNoTWVudU9wdGlvbnNDb25maWcuZW1pdCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50V2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKCkge1xyXG4gICAgaWYgKHRoaXMub3BlbmVkICYmIHRoaXMuY3VycmVudFdpbmRvd1dpZHRoICE9PSB3aW5kb3cuaW5uZXJXaWR0aCkge1xyXG4gICAgICB0aGlzLmNsZWFyQW5kQ2xvc2VNZW51KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmN1cnJlbnRXaW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoKSB7XHJcbiAgICB0aGlzLmNsZWFyQW5kQ2xvc2VNZW51KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlTWVudSgpIHtcclxuICAgIHRoaXMub3BlbmVkID0gIXRoaXMub3BlbmVkO1xyXG4gICAgaWYgKCF0aGlzLm9wZW5lZCkge1xyXG4gICAgICB0aGlzLmFjdGl2ZU9wdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5hY3RpdmVTdWJtZW51T3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZXNpemVNZW51KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25NZW51Q2xpY2sob3B0aW9uOiBNZW51SXRlbSkge1xyXG4gICAgaWYgKCFvcHRpb24uYWx3YXlzT3Blbikge1xyXG4gICAgICBpZiAodGhpcy5hY3RpdmVPcHRpb24/LmlkID09PSBvcHRpb24uaWQpIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU9wdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU9wdGlvbiA9IG9wdGlvbi5jaGlsZHJlbj8ubGVuZ3RoID8gb3B0aW9uIDogdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghb3B0aW9uLmNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbb3B0aW9uLnJvdXRlXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG9wdGlvbi5jaGlsZHJlbj8ubGVuZ3RoICYmICF0aGlzLm9wZW5lZCkge1xyXG4gICAgICAgIHRoaXMudG9nZ2xlTWVudSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuYWN0aXZlU3VibWVudU9wdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblN1Ym1lbnVDbGljayhzdWJtZW51SXRlbTogTWVudUl0ZW0pIHtcclxuICAgIGlmICghc3VibWVudUl0ZW0uYWx3YXlzT3Blbikge1xyXG4gICAgICBpZiAodGhpcy5hY3RpdmVTdWJtZW51T3B0aW9uPy5pZCA9PT0gc3VibWVudUl0ZW0/LmlkKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVTdWJtZW51T3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlU3VibWVudU9wdGlvbiA9IHN1Ym1lbnVJdGVtLmNoaWxkcmVuPy5sZW5ndGggPyBzdWJtZW51SXRlbSA6IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXN1Ym1lbnVJdGVtLmNoaWxkcmVuPy5sZW5ndGgpIHtcclxuICAgICAgICBpZiAoc3VibWVudUl0ZW0ucm91dGUpIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtzdWJtZW51SXRlbS5yb3V0ZV0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoc3VibWVudUl0ZW0uY29tbWFuZCkge1xyXG4gICAgICAgICAgc3VibWVudUl0ZW0uY29tbWFuZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5UZXJtc09mVXNlKCkge31cclxuXHJcbiAgcHVibGljIGlzUG9ydGFsU2VsZWN0ZWQocG9ydGFsOiBBcHBOYW1lKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50QXBwID09PSBwb3J0YWw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmF2aWdhdGVUb1BvcnRhbChwYXJhbXM6IHsgcG9ydGFsOiAnZmludGVjaCcgfCAnbG9ndGVjaCcgfCAnbWFya2V0cGxhY2UnOyBhZG1pbjogYm9vbGVhbiB9KSB7XHJcbiAgICB0aGlzLmFjdGl2ZU9wdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuYWN0aXZlU3VibWVudU9wdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMubWVudVNlcnZpY2UubmF2aWdhdGVUb1BvcnRhbChwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhckFuZENsb3NlTWVudSgpOiB2b2lkIHtcclxuICAgIHRoaXMub3BlbmVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmFjdGl2ZU9wdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMucmVzaXplTWVudSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNpemVNZW51KCkge1xyXG4gICAgdGhpcy5sYXN0QW5pbWF0aW9uID0gdGhpcy5vcGVuZWQgPyAnb3V0JyA6ICdpbic7XHJcbiAgICB0aGlzLndpZHRoU3R5bGUgPSB7IHdpZHRoOiB0aGlzLm9wZW5lZCA/ICcyNTBweCcgOiAnNjBweCcgfTtcclxuICAgIHRoaXMuYWN0aXZlU3VibWVudU9wdGlvbiA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXNldE1lbnVzKGNsZWFyID0gZmFsc2UpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IGNsZWFyID8gW10gOiB0aGlzLm9wdGlvbnM7XHJcbiAgICB0aGlzLmFkbWluT3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG4iLCI8bmF2IGlkPVwibWVudVwiIFtuZ1N0eWxlXT1cIndpZHRoU3R5bGVcIiBbQHNpZGVJbk91dF09XCJsYXN0QW5pbWF0aW9uXCI+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlci1tZW51XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibG9nby1jb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxvZ29cIiBbbmdDbGFzc109XCJ7ICdsb2dvLXNtYWxsJzogIW9wZW5lZCB9XCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwibWVudS1zZWN0aW9uc1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtc2VjdGlvblwiPlxyXG4gICAgICA8c3BhbiBbbmdTdHlsZV09XCJ7IG9wYWNpdHk6IG9wZW5lZCA/IDEgOiAwIH1cIiBjbGFzcz1cIm1lbnUtc2VjdGlvbi10aXRsZVwiPlNFTEXDh8ODTyBERSBQT1JUQUw8L3NwYW4+XHJcbiAgICAgIDx1bCBjbGFzcz1cInNpZGUtbWVudVwiPlxyXG4gICAgICAgIDxsaT5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJzaWRlLW1lbnUtaXRlbVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkLXBvcnRhbCc6IGlzUG9ydGFsU2VsZWN0ZWQoYXBwcy5MT0dURUNIKSB9XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9Qb3J0YWwoeyBwb3J0YWw6ICdsb2d0ZWNoJywgYWRtaW46IGZhbHNlIH0pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPGltZyBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvaWNvbnMvdmVjdG9yX2xvZ3RlY2hfaWNvbi5zdmdcIiBjbGFzcz1cIm1lbnUtaWNvblwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGFiZWxcIj5DYXJnYXM8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSAqbmdJZj1cImhhc0FueUZpbnRlY2hQZXJtaXNzaW9uXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwic2lkZS1tZW51LWl0ZW1cIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdzZWxlY3RlZC1wb3J0YWwnOiBpc1BvcnRhbFNlbGVjdGVkKGFwcHMuRklOVEVDSCkgfVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvUG9ydGFsKHsgcG9ydGFsOiAnZmludGVjaCcsIGFkbWluOiBmYWxzZSB9KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ljb25zL3ZlY3Rvcl9maW50ZWNoX2ljb24uc3ZnXCIgY2xhc3M9XCJtZW51LWljb25cIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWxhYmVsXCI+Q2FydGVpcmEgZGlnaXRhbDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInNpZGUtbWVudS1pdGVtXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQtcG9ydGFsJzogaXNQb3J0YWxTZWxlY3RlZChhcHBzLk1BUktFVFBMQUNFKSB9XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9Qb3J0YWwoeyBwb3J0YWw6ICdtYXJrZXRwbGFjZScsIGFkbWluOiBmYWxzZSB9KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ljb25zL3ZlY3Rvcl9tYXJrZXRwbGFjZV9pY29uLnN2Z1wiIGNsYXNzPVwibWVudS1pY29uXCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1sYWJlbFwiPkNvbWJ1c3TDrXZlbDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpICpuZ0lmPVwiYWRtaW5PcHRpb24gJiYgKGhhc0ZpbnRlY2hBZG1pblBlcm1pc3Npb24gfHwgaGFzTWFya2V0cGxhY2VBZG1pblBlcm1pc3Npb24pXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwic2lkZS1tZW51LWl0ZW1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25NZW51Q2xpY2soYWRtaW5PcHRpb24pXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWN0aXZlLW1lbnUnOiBhY3RpdmVPcHRpb24/LmlkID09PSBhZG1pbk9wdGlvbi5pZCB9XCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPGltZyBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvaWNvbnMvdmVjdG9yX2FkbWluX2ljb24uc3ZnXCIgY2xhc3M9XCJtZW51LWljb25cIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWxhYmVsXCI+e3sgYWRtaW5PcHRpb24ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJvcGVuZWQgJiYgYWRtaW5PcHRpb24uY2hpbGRyZW4/Lmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmYXMgYW5nbGUtaWNvblwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgJ2ZhLWFuZ2xlLWRvd24nOiBhY3RpdmVPcHRpb24/LmlkICE9PSBhZG1pbk9wdGlvbi5pZCxcclxuICAgICAgICAgICAgICAgICdmYS1hbmdsZS11cCc6IGFjdGl2ZU9wdGlvbj8uaWQgPT09IGFkbWluT3B0aW9uLmlkXHJcbiAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDx2ZWN0b3Itc3ViLW1lbnVzLWxpc3RcclxuICAgICAgICAgICAgW29wdGlvbnNdPVwiYWRtaW5PcHRpb24uY2hpbGRyZW5cIlxyXG4gICAgICAgICAgICBbc2hvd0xpc3RdPVwiYWN0aXZlT3B0aW9uPy5pZCA9PT0gYWRtaW5PcHRpb24uaWRcIlxyXG4gICAgICAgICAgICBbc3VibWVudVNlbGVjdGVkXT1cImFjdGl2ZVN1Ym1lbnVPcHRpb25cIlxyXG4gICAgICAgICAgICAoc3VibWVudVNlbGVjdGVkQ2hhbmdlKT1cIm9uU3VibWVudUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvdmVjdG9yLXN1Yi1tZW51cy1saXN0PlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51LXNlY3Rpb25cIj5cclxuICAgICAgPHNwYW4gW25nU3R5bGVdPVwieyBvcGFjaXR5OiBvcGVuZWQgJiYgb3B0aW9ucz8ubGVuZ3RoID8gMSA6IDAgfVwiIGNsYXNzPVwibWVudS1zZWN0aW9uLXRpdGxlXCI+TUVOVTwvc3Bhbj5cclxuICAgICAgPHVsIGNsYXNzPVwic2lkZS1tZW51XCI+XHJcbiAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInNpZGUtbWVudS1pdGVtXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWN0aXZlLW1lbnUnOiBhY3RpdmVPcHRpb24/LmlkID09PSBvcHRpb24uaWQsICdhbHdheXMtb3Blbic6ICEhb3B0aW9uLmFsd2F5c09wZW4gfVwiXHJcbiAgICAgICAgICAgIFtwVG9vbHRpcF09XCJvcHRpb24ubGFiZWxcIlxyXG4gICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJyaWdodFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbk1lbnVDbGljayhvcHRpb24pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJvcHRpb24uaWNvbkZpbGVOYW1lXCJcclxuICAgICAgICAgICAgICAgIFtzcmNdPVwiJy4uLy4uLy4uLy4uL2Fzc2V0cy9pY29ucy8nICsgb3B0aW9uLmljb25GaWxlTmFtZSArICcuc3ZnJ1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtaWNvblwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICA8aSAqbmdJZj1cIm9wdGlvbi5pY29uXCIgY2xhc3M9XCJtZW51LWljb24ge3sgb3B0aW9uLmljb24gfX1cIj48L2k+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGFiZWxcIj57eyBvcHRpb24ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJvcGVuZWQgJiYgb3B0aW9uLmNoaWxkcmVuPy5sZW5ndGggJiYgIW9wdGlvbi5hbHdheXNPcGVuXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZhcyBhbmdsZS1pY29uXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAnZmEtYW5nbGUtZG93bic6IGFjdGl2ZU9wdGlvbj8uaWQgIT09IG9wdGlvbi5pZCxcclxuICAgICAgICAgICAgICAgICdmYS1hbmdsZS11cCc6IGFjdGl2ZU9wdGlvbj8uaWQgPT09IG9wdGlvbi5pZFxyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8dmVjdG9yLXN1Yi1tZW51cy1saXN0XHJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cIm9wdGlvbi5jaGlsZHJlblwiXHJcbiAgICAgICAgICAgIFtzaG93TGlzdF09XCJhY3RpdmVPcHRpb24/LmlkID09PSBvcHRpb24uaWQgfHwgKCEhb3B0aW9uLmFsd2F5c09wZW4gJiYgb3BlbmVkKVwiXHJcbiAgICAgICAgICAgIFtzdWJtZW51U2VsZWN0ZWRdPVwiYWN0aXZlU3VibWVudU9wdGlvblwiXHJcbiAgICAgICAgICAgIChzdWJtZW51U2VsZWN0ZWRDaGFuZ2UpPVwib25TdWJtZW51Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC92ZWN0b3Itc3ViLW1lbnVzLWxpc3Q+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJmb290ZXIgc2lkZS1tZW51LWl0ZW1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pY29ucy9tZW51X2Zvb3Rlcl9pY29uLnN2Z1wiIGNsYXNzPVwibWVudS1pY29uXCIgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPHNwYW4gY2xhc3M9XCJtZW51LWxhYmVsIGZvb3Rlci1jb250ZW50XCI+XHJcbiAgICAgIDxzcGFuPiBWZWphIG5vc3NvIDxhIChjbGljayk9XCJvcGVuVGVybXNPZlVzZSgpXCI+VGVybW8gZGUgdXNvPC9hPiA8L3NwYW4+XHJcbiAgICAgIDxzcGFuPmUgPGE+UG9sw610aWNhIGRlIHByaXZhY2lkYWRlPC9hPjwvc3Bhbj5cclxuICAgIDwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9uYXY+XHJcbiJdfQ==
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQVksSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBa0V2RCxNQUFNLE9BQU8sYUFBYTtJQXlDeEIsWUFDVSxXQUF3QixFQUN4QixNQUFjLEVBQ2QsY0FBOEIsRUFDOUIsY0FBOEIsRUFDUCxXQUFnQixFQUNwQixVQUFrQjtRQUxyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNQLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQVE7UUE5Q3hDLFlBQU8sR0FBZSxFQUFFLENBQUM7UUFHekIsZUFBVSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FB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LEVBQUUsSUFBSTtnQ0FDWCxXQUFXLEVBQUUsS0FBSzs2QkFDbkIsQ0FBQyxDQUNIOzRCQUNELEtBQUssQ0FDSCxHQUFHLEVBQ0gsS0FBSyxDQUFDO2dDQUNKLE9BQU8sRUFBRSxDQUFDO2dDQUNWLFdBQVcsRUFBRSxLQUFLO2dDQUNsQixLQUFLLEVBQUUsTUFBTTs2QkFDZCxDQUFDLENBQ0g7NEJBQ0QsVUFBVSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQzt5QkFDcEQsQ0FBQzt3QkFDRixPQUFPLENBQUMsa0JBQWtCLEVBQUU7NEJBQzFCLEtBQUssQ0FDSCxHQUFHLEVBQ0gsS0FBSyxDQUFDO2dDQUNKLE9BQU8sRUFBRSxDQUFDO2dDQUNWLE1BQU0sRUFBRSxJQUFJOzZCQUNiLENBQUMsQ0FDSDs0QkFDRCxLQUFLLENBQ0gsR0FBRyxFQUNILEtBQUssQ0FBQztnQ0FDSixPQUFPLEVBQUUsQ0FBQztnQ0FDVixNQUFNLEVBQUUsYUFBYTs2QkFDdEIsQ0FBQyxDQUNIOzRCQUNELFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7eUJBQ3BELENBQUM7cUJBQ0g7OzBCQWdERSxNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixNQUFNOzJCQUFDLFNBQVM7NENBckNULHlCQUF5QjtzQkFBbEMsTUFBTTtnQkErRlAsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTekMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXBwTmFtZSwgTWVudUl0ZW0sIFJvbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBNZW51U2VydmljZSwgUHJvZmlsZVNlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2ZWN0b3ItbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lbnUuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdzaWRlSW5PdXQnLCBbc3RhdGUoJ2luJywgc3R5bGUoeyB3aWR0aDogJzYwcHgnIH0pKSwgc3RhdGUoJ291dCcsIHN0eWxlKHsgd2lkdGg6ICcyNTBweCcgfSkpXSksXHJcbiAgICB0cmlnZ2VyKCdmYWRlSW5PdXQnLCBbXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcwJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgICAgd2lkdGg6ICcwJScsXHJcbiAgICAgICAgICAnZm9udC1zaXplJzogJzBlbScsXHJcbiAgICAgICAgfSlcclxuICAgICAgKSxcclxuICAgICAgc3RhdGUoXHJcbiAgICAgICAgJzEnLFxyXG4gICAgICAgIHN0eWxlKHtcclxuICAgICAgICAgIG9wYWNpdHk6IDEsXHJcbiAgICAgICAgICAnZm9udC1zaXplJzogJzFlbScsXHJcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHRyYW5zaXRpb24oJzAgPD0+IDEnLCBhbmltYXRlKCczNTBtcyBlYXNlLWluLW91dCcpKSxcclxuICAgIF0pLFxyXG4gICAgdHJpZ2dlcignZmFkZVNlYXJjaEluT3V0JywgW1xyXG4gICAgICBzdGF0ZShcclxuICAgICAgICAnMCcsXHJcbiAgICAgICAgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogMCxcclxuICAgICAgICAgIHdpZHRoOiAnMCUnLFxyXG4gICAgICAgICAgJ2ZvbnQtc2l6ZSc6ICcwZW0nLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcxJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAxLFxyXG4gICAgICAgICAgJ2ZvbnQtc2l6ZSc6ICcxZW0nLFxyXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICB9KVxyXG4gICAgICApLFxyXG4gICAgICB0cmFuc2l0aW9uKCcwIDw9PiAxJywgYW5pbWF0ZSgnMzUwbXMgZWFzZS1pbi1vdXQnKSksXHJcbiAgICBdKSxcclxuICAgIHRyaWdnZXIoJ3N1Ym1lbnVGYWRlSW5PdXQnLCBbXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcwJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnMCUnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcxJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAxLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnZml0LWNvbnRlbnQnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHRyYW5zaXRpb24oJzAgPD0+IDEnLCBhbmltYXRlKCczNTBtcyBlYXNlLWluLW91dCcpKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBvcHRpb25zOiBNZW51SXRlbVtdID0gW107XHJcbiAgcHVibGljIGFjdGl2ZU9wdGlvbjogTWVudUl0ZW0gfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGFjdGl2ZVN1Ym1lbnVPcHRpb246IE1lbnVJdGVtIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyB3aWR0aFN0eWxlID0geyB3aWR0aDogJzI1MHB4JyB9O1xyXG4gIHB1YmxpYyBsYXN0QW5pbWF0aW9uID0gJ291dCc7XHJcbiAgcHVibGljIGFwcE5hbWVMYWJlbCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwTmFtZTtcclxuICBwdWJsaWMgYWRtaW5PcHRpb246IE1lbnVJdGVtIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBhcHBzID0gQXBwTmFtZTtcclxuXHJcbiAgQE91dHB1dCgpIG9uRmluaXNoTWVudU9wdGlvbnNDb25maWcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgc2V0IG9wZW5lZChvcGVuZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX29wZW5lZCA9IG9wZW5lZDtcclxuICAgIHRoaXMubWVudVNlcnZpY2UubWVudU9wZW5lZCQubmV4dCh0aGlzLm9wZW5lZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG9wZW5lZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9vcGVuZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGhhc0ZpbnRlY2hBZG1pblBlcm1pc3Npb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlU2VydmljZS5oYXNGaW50ZWNoQWRtaW5QZXJtaXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBoYXNNYXJrZXRwbGFjZUFkbWluUGVybWlzc2lvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmhhc01hcmtldHBsYWNlQWRtaW5QZXJtaXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBoYXNBbnlNYXJrZXRwbGFjZVBlcm1pc3Npb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlU2VydmljZS5oYXNBbnlNYXJrZXRwbGFjZVBlcm1pc3Npb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGhhc0FueUZpbnRlY2hQZXJtaXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZVNlcnZpY2UuaGFzQW55RmludGVjaFBlcm1pc3Npb247XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9vcGVuZWQgPSB0cnVlO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgY3VycmVudFdpbmRvd1dpZHRoOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueSxcclxuICAgIEBJbmplY3QoJ2FwcE5hbWUnKSBwcml2YXRlIGN1cnJlbnRBcHA6IHN0cmluZ1xyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMubWVudVNlcnZpY2UudG9nZ2xlTWVudSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnRvZ2dsZU1lbnUoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLnByb2ZpbGVTZXJ2aWNlLm1vZHVsZVByb2ZpbGUkLnN1YnNjcmliZSgocHJvZmlsZSkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9maWxlKSB7XHJcbiAgICAgICAgICBjb25zdCByb2xlID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRSb2xlKCk7XHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMgPVxyXG4gICAgICAgICAgICByb2xlID09PSBSb2xlLkFETUlOXHJcbiAgICAgICAgICAgICAgPyB0aGlzLm1lbnVTZXJ2aWNlLmdldFNpZGVBZG1pbk1lbnVPcHRpb25zKClcclxuICAgICAgICAgICAgICA6IHRoaXMubWVudVNlcnZpY2UuZ2V0U2lkZU1haW5NZW51T3B0aW9ucygpO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmhhc0ZpbnRlY2hBZG1pblBlcm1pc3Npb24gfHwgdGhpcy5oYXNNYXJrZXRwbGFjZUFkbWluUGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICB0aGlzLmFkbWluT3B0aW9uID0ge1xyXG4gICAgICAgICAgICAgIGlkOiA5OTk5OSxcclxuICAgICAgICAgICAgICBsYWJlbDogJ0FkbWluJyxcclxuICAgICAgICAgICAgICBpY29uRmlsZU5hbWU6ICd2ZWN0b3JfYWRtaW5faWNvbicsXHJcbiAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzRmludGVjaEFkbWluUGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWRtaW5PcHRpb24uY2hpbGRyZW4/LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWQ6IDk5OTk5MSxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQWRtaW4gRmludGVjaCcsXHJcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGVUb1BvcnRhbCh7IHBvcnRhbDogJ2ZpbnRlY2gnLCBhZG1pbjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBoaWRkZW46ICF0aGlzLmhhc0ZpbnRlY2hBZG1pblBlcm1pc3Npb24sXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc01hcmtldHBsYWNlQWRtaW5QZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hZG1pbk9wdGlvbi5jaGlsZHJlbj8ucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBpZDogOTk5OTkyLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBZG1pbiBNYXJrZXRwbGFjZScsXHJcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGVUb1BvcnRhbCh7IHBvcnRhbDogJ21hcmtldHBsYWNlJywgYWRtaW46IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgaGlkZGVuOiAhdGhpcy5oYXNNYXJrZXRwbGFjZUFkbWluUGVybWlzc2lvbixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5vbkZpbmlzaE1lbnVPcHRpb25zQ29uZmlnLmVtaXQobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRXaW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgb25SZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5vcGVuZWQgJiYgdGhpcy5jdXJyZW50V2luZG93V2lkdGggIT09IHdpbmRvdy5pbm5lcldpZHRoKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJBbmRDbG9zZU1lbnUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudFdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudCgpIHtcclxuICAgIHRoaXMuY2xlYXJBbmRDbG9zZU1lbnUoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVNZW51KCkge1xyXG4gICAgdGhpcy5vcGVuZWQgPSAhdGhpcy5vcGVuZWQ7XHJcbiAgICBpZiAoIXRoaXMub3BlbmVkKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLmFjdGl2ZVN1Ym1lbnVPcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc2l6ZU1lbnUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk1lbnVDbGljayhvcHRpb246IE1lbnVJdGVtKSB7XHJcbiAgICBpZiAoIW9wdGlvbi5hbHdheXNPcGVuKSB7XHJcbiAgICAgIGlmICh0aGlzLmFjdGl2ZU9wdGlvbj8uaWQgPT09IG9wdGlvbi5pZCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gb3B0aW9uLmNoaWxkcmVuPy5sZW5ndGggPyBvcHRpb24gOiB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFvcHRpb24uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtvcHRpb24ucm91dGVdKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob3B0aW9uLmNoaWxkcmVuPy5sZW5ndGggJiYgIXRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgdGhpcy50b2dnbGVNZW51KCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hY3RpdmVTdWJtZW51T3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU3VibWVudUNsaWNrKHN1Ym1lbnVJdGVtOiBNZW51SXRlbSkge1xyXG4gICAgaWYgKCFzdWJtZW51SXRlbS5hbHdheXNPcGVuKSB7XHJcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVN1Ym1lbnVPcHRpb24/LmlkID09PSBzdWJtZW51SXRlbT8uaWQpIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVN1Ym1lbnVPcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVTdWJtZW51T3B0aW9uID0gc3VibWVudUl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA/IHN1Ym1lbnVJdGVtIDogdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghc3VibWVudUl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICAgIGlmIChzdWJtZW51SXRlbS5yb3V0ZSkge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3N1Ym1lbnVJdGVtLnJvdXRlXSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChzdWJtZW51SXRlbS5jb21tYW5kKSB7XHJcbiAgICAgICAgICBzdWJtZW51SXRlbS5jb21tYW5kKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlblRlcm1zT2ZVc2UoKSB7fVxyXG5cclxuICBwdWJsaWMgaXNQb3J0YWxTZWxlY3RlZChwb3J0YWw6IEFwcE5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRBcHAgPT09IHBvcnRhbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvUG9ydGFsKHBhcmFtczogeyBwb3J0YWw6ICdmaW50ZWNoJyB8ICdsb2d0ZWNoJyB8ICdtYXJrZXRwbGFjZSc7IGFkbWluOiBib29sZWFuIH0pIHtcclxuICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5hY3RpdmVTdWJtZW51T3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5tZW51U2VydmljZS5uYXZpZ2F0ZVRvUG9ydGFsKHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyQW5kQ2xvc2VNZW51KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5yZXNpemVNZW51KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2l6ZU1lbnUoKSB7XHJcbiAgICB0aGlzLmxhc3RBbmltYXRpb24gPSB0aGlzLm9wZW5lZCA/ICdvdXQnIDogJ2luJztcclxuICAgIHRoaXMud2lkdGhTdHlsZSA9IHsgd2lkdGg6IHRoaXMub3BlbmVkID8gJzI1MHB4JyA6ICc2MHB4JyB9O1xyXG4gICAgdGhpcy5hY3RpdmVTdWJtZW51T3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlc2V0TWVudXMoY2xlYXIgPSBmYWxzZSkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gY2xlYXIgPyBbXSA6IHRoaXMub3B0aW9ucztcclxuICAgIHRoaXMuYWRtaW5PcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG59XHJcbiIsIjxuYXYgaWQ9XCJtZW51XCIgW25nU3R5bGVdPVwid2lkdGhTdHlsZVwiIFtAc2lkZUluT3V0XT1cImxhc3RBbmltYXRpb25cIj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLW1lbnVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJsb2dvLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibG9nb1wiIFtuZ0NsYXNzXT1cInsgJ2xvZ28tc21hbGwnOiAhb3BlbmVkIH1cIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtZW51LXNlY3Rpb25zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS1zZWN0aW9uXCI+XHJcbiAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cInsgb3BhY2l0eTogb3BlbmVkID8gMSA6IDAgfVwiIGNsYXNzPVwibWVudS1zZWN0aW9uLXRpdGxlXCI+U0VMRcOHw4NPIERFIFBPUlRBTDwvc3Bhbj5cclxuICAgICAgPHVsIGNsYXNzPVwic2lkZS1tZW51XCI+XHJcbiAgICAgICAgPGxpPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInNpZGUtbWVudS1pdGVtXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQtcG9ydGFsJzogaXNQb3J0YWxTZWxlY3RlZChhcHBzLkxPR1RFQ0gpIH1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1BvcnRhbCh7IHBvcnRhbDogJ2xvZ3RlY2gnLCBhZG1pbjogZmFsc2UgfSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pY29ucy92ZWN0b3JfbG9ndGVjaF9pY29uLnN2Z1wiIGNsYXNzPVwibWVudS1pY29uXCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1sYWJlbFwiPkNhcmdhczwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpICpuZ0lmPVwiaGFzQW55RmludGVjaFBlcm1pc3Npb25cIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJzaWRlLW1lbnUtaXRlbVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkLXBvcnRhbCc6IGlzUG9ydGFsU2VsZWN0ZWQoYXBwcy5GSU5URUNIKSB9XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9Qb3J0YWwoeyBwb3J0YWw6ICdmaW50ZWNoJywgYWRtaW46IGZhbHNlIH0pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPGltZyBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvaWNvbnMvdmVjdG9yX2ZpbnRlY2hfaWNvbi5zdmdcIiBjbGFzcz1cIm1lbnUtaWNvblwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGFiZWxcIj5DYXJ0ZWlyYSBkaWdpdGFsPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGk+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwic2lkZS1tZW51LWl0ZW1cIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdzZWxlY3RlZC1wb3J0YWwnOiBpc1BvcnRhbFNlbGVjdGVkKGFwcHMuTUFSS0VUUExBQ0UpIH1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1BvcnRhbCh7IHBvcnRhbDogJ21hcmtldHBsYWNlJywgYWRtaW46IGZhbHNlIH0pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPGltZyBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvaWNvbnMvdmVjdG9yX21hcmtldHBsYWNlX2ljb24uc3ZnXCIgY2xhc3M9XCJtZW51LWljb25cIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWxhYmVsXCI+Q29tYnVzdMOtdmVsPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgKm5nSWY9XCJhZG1pbk9wdGlvbiAmJiAoaGFzRmludGVjaEFkbWluUGVybWlzc2lvbiB8fCBoYXNNYXJrZXRwbGFjZUFkbWluUGVybWlzc2lvbilcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJzaWRlLW1lbnUtaXRlbVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbk1lbnVDbGljayhhZG1pbk9wdGlvbilcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhY3RpdmUtbWVudSc6IGFjdGl2ZU9wdGlvbj8uaWQgPT09IGFkbWluT3B0aW9uLmlkIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pY29ucy92ZWN0b3JfYWRtaW5faWNvbi5zdmdcIiBjbGFzcz1cIm1lbnUtaWNvblwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGFiZWxcIj57eyBhZG1pbk9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAqbmdJZj1cIm9wZW5lZCAmJiBhZG1pbk9wdGlvbi5jaGlsZHJlbj8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZhcyBhbmdsZS1pY29uXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAnZmEtYW5nbGUtZG93bic6IGFjdGl2ZU9wdGlvbj8uaWQgIT09IGFkbWluT3B0aW9uLmlkLFxyXG4gICAgICAgICAgICAgICAgJ2ZhLWFuZ2xlLXVwJzogYWN0aXZlT3B0aW9uPy5pZCA9PT0gYWRtaW5PcHRpb24uaWRcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPHZlY3Rvci1zdWItbWVudXMtbGlzdFxyXG4gICAgICAgICAgICBbb3B0aW9uc109XCJhZG1pbk9wdGlvbi5jaGlsZHJlblwiXHJcbiAgICAgICAgICAgIFtzaG93TGlzdF09XCJhY3RpdmVPcHRpb24/LmlkID09PSBhZG1pbk9wdGlvbi5pZFwiXHJcbiAgICAgICAgICAgIFtzdWJtZW51U2VsZWN0ZWRdPVwiYWN0aXZlU3VibWVudU9wdGlvblwiXHJcbiAgICAgICAgICAgIChzdWJtZW51U2VsZWN0ZWRDaGFuZ2UpPVwib25TdWJtZW51Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC92ZWN0b3Itc3ViLW1lbnVzLWxpc3Q+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtc2VjdGlvblwiPlxyXG4gICAgICA8c3BhbiBbbmdTdHlsZV09XCJ7IG9wYWNpdHk6IG9wZW5lZCAmJiBvcHRpb25zPy5sZW5ndGggPyAxIDogMCB9XCIgY2xhc3M9XCJtZW51LXNlY3Rpb24tdGl0bGVcIj5NRU5VPC9zcGFuPlxyXG4gICAgICA8dWwgY2xhc3M9XCJzaWRlLW1lbnVcIj5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwic2lkZS1tZW51LWl0ZW1cIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhY3RpdmUtbWVudSc6IGFjdGl2ZU9wdGlvbj8uaWQgPT09IG9wdGlvbi5pZCwgJ2Fsd2F5cy1vcGVuJzogISFvcHRpb24uYWx3YXlzT3BlbiB9XCJcclxuICAgICAgICAgICAgW3BUb29sdGlwXT1cIm9wdGlvbi5sYWJlbFwiXHJcbiAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWVudUNsaWNrKG9wdGlvbilcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi5pY29uRmlsZU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgW3NyY109XCInLi4vLi4vLi4vLi4vYXNzZXRzL2ljb25zLycgKyBvcHRpb24uaWNvbkZpbGVOYW1lICsgJy5zdmcnXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWVudS1pY29uXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwib3B0aW9uLmljb25cIiBjbGFzcz1cIm1lbnUtaWNvbiB7eyBvcHRpb24uaWNvbiB9fVwiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1sYWJlbFwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAqbmdJZj1cIm9wZW5lZCAmJiBvcHRpb24uY2hpbGRyZW4/Lmxlbmd0aCAmJiAhb3B0aW9uLmFsd2F5c09wZW5cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmFzIGFuZ2xlLWljb25cIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICdmYS1hbmdsZS1kb3duJzogYWN0aXZlT3B0aW9uPy5pZCAhPT0gb3B0aW9uLmlkLFxyXG4gICAgICAgICAgICAgICAgJ2ZhLWFuZ2xlLXVwJzogYWN0aXZlT3B0aW9uPy5pZCA9PT0gb3B0aW9uLmlkXHJcbiAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDx2ZWN0b3Itc3ViLW1lbnVzLWxpc3RcclxuICAgICAgICAgICAgW29wdGlvbnNdPVwib3B0aW9uLmNoaWxkcmVuXCJcclxuICAgICAgICAgICAgW3Nob3dMaXN0XT1cImFjdGl2ZU9wdGlvbj8uaWQgPT09IG9wdGlvbi5pZCB8fCAoISFvcHRpb24uYWx3YXlzT3BlbiAmJiBvcGVuZWQpXCJcclxuICAgICAgICAgICAgW3N1Ym1lbnVTZWxlY3RlZF09XCJhY3RpdmVTdWJtZW51T3B0aW9uXCJcclxuICAgICAgICAgICAgKHN1Ym1lbnVTZWxlY3RlZENoYW5nZSk9XCJvblN1Ym1lbnVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgID48L3ZlY3Rvci1zdWItbWVudXMtbGlzdD5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZvb3RlciBzaWRlLW1lbnUtaXRlbVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XHJcbiAgICAgIDxpbWcgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ljb25zL21lbnVfZm9vdGVyX2ljb24uc3ZnXCIgY2xhc3M9XCJtZW51LWljb25cIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGFiZWwgZm9vdGVyLWNvbnRlbnRcIj5cclxuICAgICAgPHNwYW4+IFZlamEgbm9zc28gPGEgKGNsaWNrKT1cIm9wZW5UZXJtc09mVXNlKClcIj5UZXJtbyBkZSB1c288L2E+IDwvc3Bhbj5cclxuICAgICAgPHNwYW4+ZSA8YT5Qb2zDrXRpY2EgZGUgcHJpdmFjaWRhZGU8L2E+PC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L25hdj5cclxuIl19
@@ -1464,10 +1464,10 @@ class TextFieldComponent {
1464
1464
  }
1465
1465
  }
1466
1466
  TextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TextFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1467
- TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: TextFieldComponent, selector: "vector-text-field", inputs: { isRequired: "isRequired", label: "label", maxlength: "maxlength", isPassword: "isPassword", numeric: "numeric", onlyText: "onlyText", mask: "mask", autoClear: "autoClear", rightIcon: "rightIcon", centered: "centered", enableDocumentTypeChoice: "enableDocumentTypeChoice", control: "control" }, outputs: { blurEvent: "blurEvent", enterKeyPress: "enterKeyPress", focusEvent: "focusEvent", onDocumentTypeChange: "onDocumentTypeChange" }, ngImport: i0, template: "<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n slotChar=\"_\"\r\n (click)=\"onFocus($event)\"\r\n ></p-inputMask>\r\n </div>\r\n <!-- <span class=\"input-error\">{{ fieldErrorLabel() }}</span> -->\r\n</form>\r\n", styles: [".input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:#fd6a6a}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}\n"], components: [{ type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }, { type: i2$3.InputMask, selector: "p-inputMask", inputs: ["type", "slotChar", "autoClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autoFocus", "autocomplete", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown"] }], directives: [{ type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.InputText, selector: "[pInputText]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i6.KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1467
+ TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: TextFieldComponent, selector: "vector-text-field", inputs: { isRequired: "isRequired", label: "label", maxlength: "maxlength", isPassword: "isPassword", numeric: "numeric", onlyText: "onlyText", mask: "mask", autoClear: "autoClear", rightIcon: "rightIcon", centered: "centered", enableDocumentTypeChoice: "enableDocumentTypeChoice", control: "control" }, outputs: { blurEvent: "blurEvent", enterKeyPress: "enterKeyPress", focusEvent: "focusEvent", onDocumentTypeChange: "onDocumentTypeChange" }, ngImport: i0, template: "<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n [placeholder]=\"placeholder\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n slotChar=\"_\"\r\n (click)=\"onFocus($event)\"\r\n ></p-inputMask>\r\n </div>\r\n <!-- <span class=\"input-error\">{{ fieldErrorLabel() }}</span> -->\r\n</form>\r\n", styles: [".input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:#fd6a6a}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}\n"], components: [{ type: ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }, { type: i2$3.InputMask, selector: "p-inputMask", inputs: ["type", "slotChar", "autoClear", "style", "inputId", "styleClass", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "disabled", "readonly", "unmask", "name", "required", "characterPattern", "autoFocus", "autocomplete", "mask"], outputs: ["onComplete", "onFocus", "onBlur", "onInput", "onKeydown"] }], directives: [{ type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.InputText, selector: "[pInputText]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i6.KeyFilter, selector: "[pKeyFilter]", inputs: ["pValidateOnly", "pKeyFilter"], outputs: ["ngModelChange"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
1468
1468
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: TextFieldComponent, decorators: [{
1469
1469
  type: Component,
1470
- args: [{ selector: 'vector-text-field', template: "<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n slotChar=\"_\"\r\n (click)=\"onFocus($event)\"\r\n ></p-inputMask>\r\n </div>\r\n <!-- <span class=\"input-error\">{{ fieldErrorLabel() }}</span> -->\r\n</form>\r\n", styles: [".input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:#fd6a6a}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}\n"] }]
1470
+ args: [{ selector: 'vector-text-field', template: "<form class=\"input-container p-input-icon-right\">\r\n <i *ngIf=\"rightIcon\" [class]=\"rightIcon\"></i>\r\n <i *ngIf=\"isPassword\" class=\"show-password-icon {{ showPasswordIcon }}\" (click)=\"toggleShowPassword()\"></i>\r\n <div class=\"p-inputgroup\">\r\n <vector-button\r\n *ngIf=\"enableDocumentTypeChoice\"\r\n leftIcon=\"fas fa-exchange-alt\"\r\n type=\"success\"\r\n [label]=\"selectedDocumentType.name\"\r\n [disabled]=\"control.disabled\"\r\n [noShadow]=\"true\"\r\n (onClick)=\"handleDocumentTypeChange()\"\r\n ></vector-button>\r\n\r\n <input\r\n *ngIf=\"!mask\"\r\n pInputText\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [attr.maxlength]=\"maxlength\"\r\n [placeholder]=\"placeholder\"\r\n [pKeyFilter]=\"keyfilter\"\r\n [ngClass]=\"{ 'password-field': isPassword && !isPasswordVisible, 'text-centered': centered }\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n (click)=\"onFocus($event)\"\r\n />\r\n <p-inputMask\r\n *ngIf=\"mask\"\r\n type=\"text\"\r\n [formControl]=\"control\"\r\n [mask]=\"mask\"\r\n [placeholder]=\"placeholder\"\r\n (onBlur)=\"onBlur()\"\r\n (keydown.enter)=\"onEnterPress()\"\r\n [autoClear]=\"autoClear\"\r\n [unmask]=\"true\"\r\n [styleClass]=\"centered ? 'text-centered' : ''\"\r\n slotChar=\"_\"\r\n (click)=\"onFocus($event)\"\r\n ></p-inputMask>\r\n </div>\r\n <!-- <span class=\"input-error\">{{ fieldErrorLabel() }}</span> -->\r\n</form>\r\n", styles: [".input-container{width:100%}.input-container .password-field{-webkit-text-security:disc}.input-container .input-error{font-size:.7em;color:#fd6a6a}.input-container .show-password-icon{font-size:1.4em;margin-right:5px;cursor:pointer}\n"] }]
1471
1471
  }], propDecorators: { isRequired: [{
1472
1472
  type: Input
1473
1473
  }], label: [{
@@ -2390,6 +2390,28 @@ class MenuComponent {
2390
2390
  this.onFinishMenuOptionsConfig = new EventEmitter();
2391
2391
  this._opened = true;
2392
2392
  this.subscription = new Subscription();
2393
+ this.currentWindowWidth = 0;
2394
+ }
2395
+ set opened(opened) {
2396
+ this._opened = opened;
2397
+ this.menuService.menuOpened$.next(this.opened);
2398
+ }
2399
+ get opened() {
2400
+ return this._opened;
2401
+ }
2402
+ get hasFintechAdminPermission() {
2403
+ return this.profileService.hasFintechAdminPermission;
2404
+ }
2405
+ get hasMarketplaceAdminPermission() {
2406
+ return this.profileService.hasMarketplaceAdminPermission;
2407
+ }
2408
+ get hasAnyMarketplacePermission() {
2409
+ return this.profileService.hasAnyMarketplacePermission;
2410
+ }
2411
+ get hasAnyFintechPermission() {
2412
+ return this.profileService.hasAnyFintechPermission;
2413
+ }
2414
+ ngOnInit() {
2393
2415
  this.subscription.add(this.menuService.toggleMenu$.subscribe(() => {
2394
2416
  this.toggleMenu();
2395
2417
  }));
@@ -2429,30 +2451,11 @@ class MenuComponent {
2429
2451
  });
2430
2452
  }
2431
2453
  }
2432
- this.onFinishMenuOptionsConfig.emit();
2454
+ this.onFinishMenuOptionsConfig.emit(null);
2433
2455
  }
2434
2456
  }));
2435
2457
  this.currentWindowWidth = window.innerWidth;
2436
2458
  }
2437
- set opened(opened) {
2438
- this._opened = opened;
2439
- this.menuService.menuOpened$.next(this.opened);
2440
- }
2441
- get opened() {
2442
- return this._opened;
2443
- }
2444
- get hasFintechAdminPermission() {
2445
- return this.profileService.hasFintechAdminPermission;
2446
- }
2447
- get hasMarketplaceAdminPermission() {
2448
- return this.profileService.hasMarketplaceAdminPermission;
2449
- }
2450
- get hasAnyMarketplacePermission() {
2451
- return this.profileService.hasAnyMarketplacePermission;
2452
- }
2453
- get hasAnyFintechPermission() {
2454
- return this.profileService.hasAnyFintechPermission;
2455
- }
2456
2459
  onResize() {
2457
2460
  if (this.opened && this.currentWindowWidth !== window.innerWidth) {
2458
2461
  this.clearAndCloseMenu();