@carefirst/library 4.0.0 → 4.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@ionic/angular";
4
- import * as i2 from "@angular/common";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@ionic/angular/standalone";
5
5
  import * as i3 from "../spacer/spacer.component";
6
6
  import * as i4 from "../spinner/spinner.component";
7
7
  export class VerificationCodeComponent {
@@ -116,7 +116,7 @@ export class VerificationCodeComponent {
116
116
  this.statusSub$?.unsubscribe();
117
117
  }
118
118
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: VerificationCodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
119
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: VerificationCodeComponent, selector: "cf-verification-code", inputs: { valueToVerify: "valueToVerify", status: "status", userFeedbackMessages: "userFeedbackMessages" }, outputs: { outcome: "outcome", resendClickEvent: "resendClickEvent" }, viewQueries: [{ propertyName: "myInput1", first: true, predicate: ["input1"], descendants: true }, { propertyName: "myInput2", first: true, predicate: ["input2"], descendants: true }, { propertyName: "myInput3", first: true, predicate: ["input3"], descendants: true }, { propertyName: "myInput4", first: true, predicate: ["input4"], descendants: true }, { propertyName: "myInput5", first: true, predicate: ["input5"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- ---<> rethink if statement logic -->\n<div id=\"verification-container\">\n <ion-grid id=\"verification-grid\" [ngStyle]=\"status.value === 'processing' ? { visibility: 'hidden' } : {}\">\n <!-- Input boxes for verification code 5 numeric digits -->\n <ion-row class=\"ion-justify-content-center\">\n <ng-container *ngIf=\"status.value !== 'disabled'\">\n <ion-col *ngIf=\"validationCodeError && !commsInputCountExceeded\" size=\"auto\">\n <p\n class=\"body-small error ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.error?.errorMessage || ['Invalid Code - Please Retry']\"\n >{{ string }}</p\n >\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n <ion-col *ngIf=\"commsInputCountExceeded\" size=\"auto\">\n <p class=\"body-small error ion-text-center\">Invalid Code - Max attempts exceeded</p>\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n <ion-col *ngIf=\"status.value === 'initial'\">\n <p *ngFor=\"let string of userFeedbackMessages?.initial || ['Code sent, Please check your inbox']\" class=\"body-small good ion-text-center\">{{\n string\n }}</p>\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n </ng-container>\n <ion-col\n *ngIf=\"\n (!validationCodeError && status.value === 'disabled') || status.value === 'disabled' || (status.value === 'invalid' && !validationCodeError)\n \">\n <cf-spacer default=\"32\"></cf-spacer>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col>\n <div class=\"single-container\" [ngClass]=\"{ error: validationCodeError }\">\n <ion-input\n #input1\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 1)\"></ion-input>\n <ion-input\n #input2\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 2)\"></ion-input>\n <ion-input\n #input3\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 3)\"></ion-input>\n <ion-input\n #input4\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 4)\"></ion-input>\n <ion-input\n #input5\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 5)\"></ion-input>\n </div>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <ng-container *ngIf=\"!loading && status.value !== 'disabled'\">\n <cf-spacer default=\"16\"></cf-spacer>\n <button *ngIf=\"commsSentCount < 3\" (click)=\"resendVerificationCode()\" style=\"background-color: transparent\">\n <ng-container *ngIf=\"validationCodeError\">\n <p class=\"body-small ion-text-center\" *ngFor=\"let string of userFeedbackMessages?.error?.resend || ['Resend Code']\">\n {{ string }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"!validationCodeError\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.standardResend || ['Didn`t get a code? Please resend the code']\">\n {{ string }}\n </p>\n </ng-container>\n </button>\n <ng-container *ngIf=\"commsSentCount >= 3\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"\n let string of userFeedbackMessages?.limitReached || ['Still struggling with your code?', 'Please contact support for assistance']\n \"\n >{{ string }}</p\n >\n </ng-container>\n </ng-container>\n <cf-spacer *ngIf=\"status.value === 'disabled'\" default=\"32\"></cf-spacer>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\"> </ion-col>\n </ion-row>\n </ion-grid>\n <cf-spinner style=\"position: absolute\" [size]=\"40\" [ngClass]=\"{ 'block-hidden': status.value !== 'processing' }\"></cf-spinner>\n</div>\n", styles: ["#verification-container{min-height:124px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}#verification-grid{width:100%;display:flex;flex-direction:column}.single-container{display:flex;justify-content:space-between}.single-container .single-digit-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;height:60px;width:60px;--border-radius: 12px;--background: var(--cf-app-system-color-outline);--highlight-color-focused: var(--cf-app-color-accent);color:var(--cf-app-text-color-default)}.single-container.error .single-digit-input{--border-color: var(--cf-app-system-color-error)}.block-hidden{display:none}p.error{color:var(--cf-app-system-color-error)}p.good{color:var(--cf-app-system-color-success)}\n"], dependencies: [{ kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.SpacerComponent, selector: "cf-spacer", inputs: ["default", "mobile", "desktop"] }, { kind: "component", type: i4.SpinnerComponent, selector: "cf-spinner", inputs: ["size"] }] });
119
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: VerificationCodeComponent, selector: "cf-verification-code", inputs: { valueToVerify: "valueToVerify", status: "status", userFeedbackMessages: "userFeedbackMessages" }, outputs: { outcome: "outcome", resendClickEvent: "resendClickEvent" }, viewQueries: [{ propertyName: "myInput1", first: true, predicate: ["input1"], descendants: true }, { propertyName: "myInput2", first: true, predicate: ["input2"], descendants: true }, { propertyName: "myInput3", first: true, predicate: ["input3"], descendants: true }, { propertyName: "myInput4", first: true, predicate: ["input4"], descendants: true }, { propertyName: "myInput5", first: true, predicate: ["input5"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- ---<> rethink if statement logic -->\n<div id=\"verification-container\">\n <ion-grid id=\"verification-grid\" [ngStyle]=\"status.value === 'processing' ? { visibility: 'hidden' } : {}\">\n <!-- Input boxes for verification code 5 numeric digits -->\n <ion-row class=\"ion-justify-content-center\">\n <ng-container *ngIf=\"status.value !== 'disabled'\">\n <ion-col *ngIf=\"validationCodeError && !commsInputCountExceeded\" size=\"auto\">\n <p\n class=\"body-small error ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.error?.errorMessage || ['Invalid Code - Please Retry']\"\n >{{ string }}</p\n >\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n <ion-col *ngIf=\"commsInputCountExceeded\" size=\"auto\">\n <p class=\"body-small error ion-text-center\">Invalid Code - Max attempts exceeded</p>\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n <ion-col *ngIf=\"status.value === 'initial'\">\n <p *ngFor=\"let string of userFeedbackMessages?.initial || ['Code sent, Please check your inbox']\" class=\"body-small good ion-text-center\">{{\n string\n }}</p>\n <cf-spacer default=\"16\"></cf-spacer>\n </ion-col>\n </ng-container>\n <ion-col\n *ngIf=\"\n (!validationCodeError && status.value === 'disabled') || status.value === 'disabled' || (status.value === 'invalid' && !validationCodeError)\n \">\n <cf-spacer default=\"32\"></cf-spacer>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col>\n <div class=\"single-container\" [ngClass]=\"{ error: validationCodeError }\">\n <ion-input\n #input1\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 1)\"></ion-input>\n <ion-input\n #input2\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 2)\"></ion-input>\n <ion-input\n #input3\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 3)\"></ion-input>\n <ion-input\n #input4\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 4)\"></ion-input>\n <ion-input\n #input5\n class=\"single-digit-input ion-text-center\"\n [disabled]=\"loading || commsInputCountExceeded || status.value === 'disabled'\"\n fill=\"outline\"\n maxlength=\"1\"\n clearOnEdit=\"true\"\n inputmode=\"numeric\"\n mode=\"md\"\n (ionInput)=\"formulateAndCheckVerificationCode($event, 5)\"></ion-input>\n </div>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\">\n <ng-container *ngIf=\"!loading && status.value !== 'disabled'\">\n <cf-spacer default=\"16\"></cf-spacer>\n <button *ngIf=\"commsSentCount < 3\" (click)=\"resendVerificationCode()\" style=\"background-color: transparent\">\n <ng-container *ngIf=\"validationCodeError\">\n <p class=\"body-small ion-text-center\" *ngFor=\"let string of userFeedbackMessages?.error?.resend || ['Resend Code']\">\n {{ string }}\n </p>\n </ng-container>\n <ng-container *ngIf=\"!validationCodeError\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"let string of userFeedbackMessages?.standardResend || ['Didn`t get a code? Please resend the code']\">\n {{ string }}\n </p>\n </ng-container>\n </button>\n <ng-container *ngIf=\"commsSentCount >= 3\">\n <p\n class=\"body-small ion-text-center\"\n *ngFor=\"\n let string of userFeedbackMessages?.limitReached || ['Still struggling with your code?', 'Please contact support for assistance']\n \"\n >{{ string }}</p\n >\n </ng-container>\n </ng-container>\n <cf-spacer *ngIf=\"status.value === 'disabled'\" default=\"32\"></cf-spacer>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-justify-content-center\">\n <ion-col size=\"auto\"> </ion-col>\n </ion-row>\n </ion-grid>\n <cf-spinner style=\"position: absolute\" [size]=\"40\" [ngClass]=\"{ 'block-hidden': status.value !== 'processing' }\"></cf-spinner>\n</div>\n", styles: ["#verification-container{min-height:124px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}#verification-grid{width:100%;display:flex;flex-direction:column}.single-container{display:flex;justify-content:space-between}.single-container .single-digit-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;height:60px;width:60px;--border-radius: 12px;--background: var(--cf-app-system-color-outline);--highlight-color-focused: var(--cf-app-color-accent);color:var(--cf-app-text-color-default)}.single-container.error .single-digit-input{--border-color: var(--cf-app-system-color-error)}.block-hidden{display:none}p.error{color:var(--cf-app-system-color-error)}p.good{color:var(--cf-app-system-color-success)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i3.SpacerComponent, selector: "cf-spacer", inputs: ["default", "mobile", "desktop"] }, { kind: "component", type: i4.SpinnerComponent, selector: "cf-spinner", inputs: ["size"] }] });
120
120
  }
121
121
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: VerificationCodeComponent, decorators: [{
122
122
  type: Component,
@@ -147,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
147
147
  type: ViewChild,
148
148
  args: ['input5']
149
149
  }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL3ZlcmlmaWNhdGlvbi1jb2RlL3ZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy92ZXJpZmljYXRpb24tY29kZS92ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBc0MsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVd0SCxNQUFNLE9BQU8seUJBQXlCO0lBQzNCLGFBQWEsQ0FBVTtJQUN2QixNQUFNLENBQXFEO0lBQzNELG9CQUFvQixDQUFvQztJQUV2RCxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUNyQyxnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRWpDLFFBQVEsQ0FBWTtJQUNwQixRQUFRLENBQVk7SUFDcEIsUUFBUSxDQUFZO0lBQ3BCLFFBQVEsQ0FBWTtJQUNwQixRQUFRLENBQVk7SUFHekMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQzVCLHdCQUF3QixHQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbkIsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUNwQix1QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFDaEMsY0FBYyxDQUFxQjtJQUVuQyxVQUFVLENB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QUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM5QyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM5QyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM5QyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFPRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7dUdBektVLHlCQUF5QjsyRkFBekIseUJBQXlCLDRyQkMxQnRDLDZtTEE0SEE7OzJGRGxHYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usc0JBQXNCOzhCQUt2QixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRWMsUUFBUTtzQkFBNUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNFLFFBQVE7c0JBQTVCLFNBQVM7dUJBQUMsUUFBUTtnQkFDRSxRQUFRO3NCQUE1QixTQUFTO3VCQUFDLFFBQVE7Z0JBQ0UsUUFBUTtzQkFBNUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNFLFFBQVE7c0JBQTVCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZWZpcnN0IGxpYnJhcnkgLSBWZXJpZmljYXRpb24gQ29kZSBJbnB1dFxuICpcbiAqIEBmaWxlICAgICAgICAgIHZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudFxuICogQGRlc2NyaXB0aW9uICAgQ29udGFpbnMgYWxsIHRoZSBsb2dpYyBmb3IgZ2VuZXJhdGluZyBhIENhcmVGaXJzdCBWZXJpZmljYXRpb24gQ29kZSBJbnB1dFxuICogQGF1dGhvciAgICAgICAgQXJubyBKYW5zZW4gdmFuIFZ1dXJlblxuICogQHNpbmNlICAgICAgICAgMjAyNCAtIDAzIC0gMDdcbiAqIEB1c2FnZSAgICAgICAgICAgPGNmLXZlcmlmaWNhdGlvbi1jb2RlXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1ZlcmlmeT1gc3RyaW5nYFxuICAgICAgICAgICAgICAgICAgICAgIChvdXRjb21lKT1gb21pdHMgY29kZSB2YWx1ZWBcbiAgICAgICAgICAgICAgICAgICAgICAocmVzZW5kQ2xpY2tFdmVudCk9YHJlc2VuZCBjbGljayBldmVudGBcbiAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1gQmVoYXZpb3JTdWJqZWN0PCdpbml0aWFsJyB8ICdpbnZhbGlkJz5gPlxuICAgICAgICAgICAgICAgICAgICA8L2NmLXZlcmlmaWNhdGlvbi1jb2RlPlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIHR5cGUgT25DaGFuZ2VzLCB0eXBlIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB0eXBlIHsgSW5wdXRDdXN0b21FdmVudCwgSW9uSW5wdXQgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG4vLy0tLSBJbnRlcmZhY2VcbmltcG9ydCB0eXBlIHsgQ2ZDb2RlSW5wdXRVc2VyRmVlZGJhY2tNZXNzYWdlc0ksIENmQ29kZUlucHV0VmVyaWZpY2F0aW9uU3RhdHVzZXNUIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy92ZXJpZmljYXRpb24tY29kZS5pbnRlcmZhY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZi12ZXJpZmljYXRpb24tY29kZScsXG4gIHRlbXBsYXRlVXJsOiAnLi92ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi92ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSB2YWx1ZVRvVmVyaWZ5ITogc3RyaW5nO1xuICBASW5wdXQoKSBzdGF0dXMhOiBCZWhhdmlvclN1YmplY3Q8Q2ZDb2RlSW5wdXRWZXJpZmljYXRpb25TdGF0dXNlc1Q+O1xuICBASW5wdXQoKSB1c2VyRmVlZGJhY2tNZXNzYWdlcz86IENmQ29kZUlucHV0VXNlckZlZWRiYWNrTWVzc2FnZXNJO1xuXG4gIEBPdXRwdXQoKSBvdXRjb21lID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSByZXNlbmRDbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx0cnVlPigpO1xuXG4gIEBWaWV3Q2hpbGQoYGlucHV0MWApIG15SW5wdXQxPzogSW9uSW5wdXQ7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0MicpIG15SW5wdXQyPzogSW9uSW5wdXQ7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0MycpIG15SW5wdXQzPzogSW9uSW5wdXQ7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0NCcpIG15SW5wdXQ0PzogSW9uSW5wdXQ7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0NScpIG15SW5wdXQ1PzogSW9uSW5wdXQ7XG5cbiAgLy8tLS0gSFRNTCB2YXJpYWJsZXNcbiAgdmFsaWRhdGlvbkNvZGVFcnJvciA9IGZhbHNlO1xuICB2ZXJpZmljYXRpb25Db2RlSW5wdXRBcnI6IChudW1iZXIgfCBudWxsKVtdID0gW251bGwsIG51bGwsIG51bGwsIG51bGwsIG51bGxdO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIGNvbW1zU2VudENvdW50ID0gMDtcbiAgY29tbXNJbnB1dENvdW50ID0gMDtcbiAgY29tbXNJbnB1dENvdW50RXhjZWVkZWQgPSBmYWxzZTtcbiAgdmFsaWRhdGlvbkNvZGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBzdGF0dXNTdWIkPzogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgaW9uVmlld1dpbGxFbnRlclxuICAgKiBAZGVzY3JpcHRpb24gICBVcGRhdGUgdmFyaW91cyB2YWx1ZXMgb24gY29tcG9uZW50IGluaXRpYWxpemF0aW9uXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgaW9uVmlld0RpZEVudGVyKCk6IHZvaWQge1xuICAgIHRoaXMuY29tbXNTZW50Q291bnQgPSAwO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBuZ09uQ2hhbmdlc1xuICAgKiBAZGVzY3JpcHRpb24gICBVcGRhdGUgdmFyaW91cyB2YWx1ZXMgb24gaW5wdXQgY2hhbmdlc1xuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLy0tLSBWYWx1ZSB0byB2ZXJpZnlcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzWyd2YWx1ZVRvVmVyaWZ5J10/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1sndmFsdWVUb1ZlcmlmeSddPy5wcmV2aW91c1ZhbHVlIHx8XG4gICAgICBjaGFuZ2VzWydjb2RlJ10/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1snY29kZSddPy5wcmV2aW91c1ZhbHVlXG4gICAgKSB7XG4gICAgICB0aGlzLmNvbW1zU2VudENvdW50ID0gMDtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkNvZGVFcnJvciA9IGZhbHNlO1xuICAgICAgdGhpcy5yZXNldEFsbElucHV0RmllbGRzKCk7XG4gICAgfVxuXG4gICAgLy8tLS0gU3RhdHVzIGRpc3BsYXlcbiAgICBpZiAoY2hhbmdlc1snc3RhdHVzJ10pIHtcbiAgICAgIHRoaXMuc3RhdHVzU3ViJCA9IChjaGFuZ2VzWydzdGF0dXMnXS5jdXJyZW50VmFsdWUgYXMgQmVoYXZpb3JTdWJqZWN0PCdpbml0aWFsJyB8ICdpbnZhbGlkJz4pLnN1YnNjcmliZSgoc3RhdCkgPT4ge1xuICAgICAgICBpZiAoc3RhdCA9PT0gJ2ludmFsaWQnKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uQ29kZUVycm9yID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc2V0QWxsSW5wdXRGaWVsZHMoKTtcbiAgICAgICAgdGhpcy5zZXRGb2N1c1RvTmV4dCgwKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgcmVzZW5kVmVyaWZpY2F0aW9uQ29kZVxuICAgKiBAZGVzY3JpcHRpb24gICBSZXNlbmQgYSB2ZXJpZmljYXRpb24gY29kZVxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIHJlc2VuZFZlcmlmaWNhdGlvbkNvZGUoKTogdm9pZCB7XG4gICAgdGhpcy5jb21tc0lucHV0Q291bnQgPSAwO1xuICAgIHRoaXMuY29tbXNJbnB1dENvdW50RXhjZWVkZWQgPSBmYWxzZTtcbiAgICB0aGlzLnZhbGlkYXRpb25Db2RlRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLmNvbW1zU2VudENvdW50Kys7XG4gICAgdGhpcy5zdGF0dXMubmV4dCgnaW5pdGlhbCcpO1xuICAgIHRoaXMucmVzZW5kQ2xpY2tFdmVudC5lbWl0KHRydWUpO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBmb3JtdWxhdGVBbmRDaGVja1ZlcmlmaWNhdGlvbkNvZGVcbiAgICogQGRlc2NyaXB0aW9uICAgSGFuZGxlIGlucHV0cyBhc3NvY2lhdGVkIHdpdGggdGhlIHZlcmlmaWNhdGlvbiBjb2RlIGFuZCBkbyBjYWxsIG9uY2UgY29kZSBpcyBjb21wbGV0ZVxuICAgKiBAcGFyYW0gICAgICAgICB7SW5wdXRDdXN0b21FdmVudH0gZXZlbnRcbiAgICogQHBhcmFtICAgICAgICAge251bWJlcn0gaW5kZXhcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBmb3JtdWxhdGVBbmRDaGVja1ZlcmlmaWNhdGlvbkNvZGUoZXZlbnQ6IElucHV0Q3VzdG9tRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LmRldGFpbC52YWx1ZTtcbiAgICBpZiAoIXZhbHVlIHx8ICEodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgfHwgISgrdmFsdWUgPCAxMCkpIHtcbiAgICAgIHRoaXMuY2xlYXJDb2RlSW5wdXQoaW5kZXgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0Rm9jdXNUb05leHQoaW5kZXgpO1xuICAgIHRoaXMudmVyaWZpY2F0aW9uQ29kZUlucHV0QXJyW2luZGV4IC0gMV0gPSArdmFsdWU7XG4gICAgdGhpcy52YWxpZGF0aW9uQ29kZUVycm9yID0gZmFsc2U7XG5cbiAgICAvLy0tLSBDaGVjayBpZiBjb2RlIGNvbXBsZXRlZFxuICAgIGlmICh0aGlzLnZlcmlmaWNhdGlvbkNvZGVJbnB1dEFyci5ldmVyeSgodmFsKSA9PiB2YWwgIT09IG51bGwpKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25Db2RlID0gdGhpcy52ZXJpZmljYXRpb25Db2RlSW5wdXRBcnIuam9pbignJyk7XG4gICAgICB0aGlzLm91dGNvbWUuZW1pdCh0aGlzLnZhbGlkYXRpb25Db2RlKTtcbiAgICAgIHRoaXMuY29tbXNJbnB1dENvdW50Kys7XG4gICAgICB0aGlzLmNvbW1zSW5wdXRDb3VudEV4Y2VlZGVkID0gdGhpcy5jb21tc0lucHV0Q291bnQgPj0gMztcbiAgICB9XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIHJlc2V0QWxsSW5wdXRGaWVsZHNcbiAgICogQGRlc2NyaXB0aW9uICAgUmVzZXQgYWxsIGlucHV0IGZpZWxkc1xuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIHByaXZhdGUgcmVzZXRBbGxJbnB1dEZpZWxkcygpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQ29kZUlucHV0KDEpO1xuICAgIHRoaXMuY2xlYXJDb2RlSW5wdXQoMik7XG4gICAgdGhpcy5jbGVhckNvZGVJbnB1dCgzKTtcbiAgICB0aGlzLmNsZWFyQ29kZUlucHV0KDQpO1xuICAgIHRoaXMuY2xlYXJDb2RlSW5wdXQoNSk7XG4gICAgdGhpcy52ZXJpZmljYXRpb25Db2RlSW5wdXRBcnIuZmlsbChudWxsKTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgc2V0Rm9jdXNUb05leHRcbiAgICogQGRlc2NyaXB0aW9uICAgU2V0IHRoZSBmb2N1cyB0byB0aGUgbmV4dCBpbnB1dFxuICAgKiBAcGFyYW0gICAgICAgICB7bnVtYmVyfSBjdXJyZW50SW5kZXhcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBwcml2YXRlIHNldEZvY3VzVG9OZXh0KGN1cnJlbnRJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA9PT0gNSkgcmV0dXJuO1xuICAgIGN1cnJlbnRJbmRleCA9PT0gMFxuICAgICAgPyB0aGlzLm15SW5wdXQxPy5zZXRGb2N1cygpXG4gICAgICA6IGN1cnJlbnRJbmRleCA9PT0gMVxuICAgICAgICA/IHRoaXMubXlJbnB1dDI/LnNldEZvY3VzKClcbiAgICAgICAgOiBjdXJyZW50SW5kZXggPT09IDJcbiAgICAgICAgICA/IHRoaXMubXlJbnB1dDM/LnNldEZvY3VzKClcbiAgICAgICAgICA6IGN1cnJlbnRJbmRleCA9PT0gM1xuICAgICAgICAgICAgPyB0aGlzLm15SW5wdXQ0Py5zZXRGb2N1cygpXG4gICAgICAgICAgICA6IHRoaXMubXlJbnB1dDU/LnNldEZvY3VzKCk7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGNsZWFyQ29kZUlucHV0XG4gICAqIEBkZXNjcmlwdGlvbiAgIENsZWFyIGEgY29kZSBpbnB1dCBvbiBpbnZhbGlkIGtleVxuICAgKiBAcGFyYW0gICAgICAgICB7bnVtYmVyfSBpbmRleFxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIHByaXZhdGUgY2xlYXJDb2RlSW5wdXQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHN3aXRjaCAoaW5kZXgpIHtcbiAgICAgIGNhc2UgMTpcbiAgICAgICAgaWYgKHRoaXMubXlJbnB1dDEpIHRoaXMubXlJbnB1dDEudmFsdWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgaWYgKHRoaXMubXlJbnB1dDIpIHRoaXMubXlJbnB1dDIudmFsdWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgaWYgKHRoaXMubXlJbnB1dDMpIHRoaXMubXlJbnB1dDMudmFsdWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgNDpcbiAgICAgICAgaWYgKHRoaXMubXlJbnB1dDQpIHRoaXMubXlJbnB1dDQudmFsdWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgNTpcbiAgICAgICAgaWYgKHRoaXMubXlJbnB1dDUpIHRoaXMubXlJbnB1dDUudmFsdWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGlvblZpZXdXaWxsTGVhdmVcbiAgICogQGRlc2NyaXB0aW9uICAgVW5zdWJzY3JpYmUgb24gY29tcG9uZW50IGxlYXZlXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgaW9uVmlld1dpbGxMZWF2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXR1c1N1YiQ/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjwhLS0gLS0tPD4gcmV0aGluayBpZiBzdGF0ZW1lbnQgbG9naWMgLS0+XG48ZGl2IGlkPVwidmVyaWZpY2F0aW9uLWNvbnRhaW5lclwiPlxuICA8aW9uLWdyaWQgaWQ9XCJ2ZXJpZmljYXRpb24tZ3JpZFwiIFtuZ1N0eWxlXT1cInN0YXR1cy52YWx1ZSA9PT0gJ3Byb2Nlc3NpbmcnID8geyB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9IDoge31cIj5cbiAgICA8IS0tIElucHV0IGJveGVzIGZvciB2ZXJpZmljYXRpb24gY29kZSA1IG51bWVyaWMgZGlnaXRzIC0tPlxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0dXMudmFsdWUgIT09ICdkaXNhYmxlZCdcIj5cbiAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJ2YWxpZGF0aW9uQ29kZUVycm9yICYmICFjb21tc0lucHV0Q291bnRFeGNlZWRlZFwiIHNpemU9XCJhdXRvXCI+XG4gICAgICAgICAgPHBcbiAgICAgICAgICAgIGNsYXNzPVwiYm9keS1zbWFsbCBlcnJvciBpb24tdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0cmluZyBvZiB1c2VyRmVlZGJhY2tNZXNzYWdlcz8uZXJyb3I/LmVycm9yTWVzc2FnZSB8fCBbJ0ludmFsaWQgQ29kZSAtIFBsZWFzZSBSZXRyeSddXCJcbiAgICAgICAgICAgID57eyBzdHJpbmcgfX08L3BcbiAgICAgICAgICA+XG4gICAgICAgICAgPGNmLXNwYWNlciBkZWZhdWx0PVwiMTZcIj48L2NmLXNwYWNlcj5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8aW9uLWNvbCAqbmdJZj1cImNvbW1zSW5wdXRDb3VudEV4Y2VlZGVkXCIgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgICA8cCBjbGFzcz1cImJvZHktc21hbGwgZXJyb3IgaW9uLXRleHQtY2VudGVyXCI+SW52YWxpZCBDb2RlIC0gTWF4IGF0dGVtcHRzIGV4Y2VlZGVkPC9wPlxuICAgICAgICAgIDxjZi1zcGFjZXIgZGVmYXVsdD1cIjE2XCI+PC9jZi1zcGFjZXI+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJzdGF0dXMudmFsdWUgPT09ICdpbml0aWFsJ1wiPlxuICAgICAgICAgIDxwICpuZ0Zvcj1cImxldCBzdHJpbmcgb2YgdXNlckZlZWRiYWNrTWVzc2FnZXM/LmluaXRpYWwgfHwgWydDb2RlIHNlbnQsIFBsZWFzZSBjaGVjayB5b3VyIGluYm94J11cIiBjbGFzcz1cImJvZHktc21hbGwgZ29vZCBpb24tdGV4dC1jZW50ZXJcIj57e1xuICAgICAgICAgICAgc3RyaW5nXG4gICAgICAgICAgfX08L3A+XG4gICAgICAgICAgPGNmLXNwYWNlciBkZWZhdWx0PVwiMTZcIj48L2NmLXNwYWNlcj5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8aW9uLWNvbFxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICghdmFsaWRhdGlvbkNvZGVFcnJvciAmJiBzdGF0dXMudmFsdWUgPT09ICdkaXNhYmxlZCcpIHx8IHN0YXR1cy52YWx1ZSA9PT0gJ2Rpc2FibGVkJyB8fCAoc3RhdHVzLnZhbHVlID09PSAnaW52YWxpZCcgJiYgIXZhbGlkYXRpb25Db2RlRXJyb3IpXG4gICAgICAgIFwiPlxuICAgICAgICA8Y2Ytc3BhY2VyIGRlZmF1bHQ9XCIzMlwiPjwvY2Ytc3BhY2VyPlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cbiAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICA8aW9uLWNvbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNpbmdsZS1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7IGVycm9yOiB2YWxpZGF0aW9uQ29kZUVycm9yIH1cIj5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICAjaW5wdXQxXG4gICAgICAgICAgICBjbGFzcz1cInNpbmdsZS1kaWdpdC1pbnB1dCBpb24tdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgY29tbXNJbnB1dENvdW50RXhjZWVkZWQgfHwgc3RhdHVzLnZhbHVlID09PSAnZGlzYWJsZWQnXCJcbiAgICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjFcIlxuICAgICAgICAgICAgY2xlYXJPbkVkaXQ9XCJ0cnVlXCJcbiAgICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICAgbW9kZT1cIm1kXCJcbiAgICAgICAgICAgIChpb25JbnB1dCk9XCJmb3JtdWxhdGVBbmRDaGVja1ZlcmlmaWNhdGlvbkNvZGUoJGV2ZW50LCAxKVwiPjwvaW9uLWlucHV0PlxuICAgICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAgICNpbnB1dDJcbiAgICAgICAgICAgIGNsYXNzPVwic2luZ2xlLWRpZ2l0LWlucHV0IGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBjb21tc0lucHV0Q291bnRFeGNlZWRlZCB8fCBzdGF0dXMudmFsdWUgPT09ICdkaXNhYmxlZCdcIlxuICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMVwiXG4gICAgICAgICAgICBjbGVhck9uRWRpdD1cInRydWVcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgICBtb2RlPVwibWRcIlxuICAgICAgICAgICAgKGlvbklucHV0KT1cImZvcm11bGF0ZUFuZENoZWNrVmVyaWZpY2F0aW9uQ29kZSgkZXZlbnQsIDIpXCI+PC9pb24taW5wdXQ+XG4gICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgI2lucHV0M1xuICAgICAgICAgICAgY2xhc3M9XCJzaW5nbGUtZGlnaXQtaW5wdXQgaW9uLXRleHQtY2VudGVyXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGNvbW1zSW5wdXRDb3VudEV4Y2VlZGVkIHx8IHN0YXR1cy52YWx1ZSA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxXCJcbiAgICAgICAgICAgIGNsZWFyT25FZGl0PVwidHJ1ZVwiXG4gICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgIChpb25JbnB1dCk9XCJmb3JtdWxhdGVBbmRDaGVja1ZlcmlmaWNhdGlvbkNvZGUoJGV2ZW50LCAzKVwiPjwvaW9uLWlucHV0PlxuICAgICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAgICNpbnB1dDRcbiAgICAgICAgICAgIGNsYXNzPVwic2luZ2xlLWRpZ2l0LWlucHV0IGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBjb21tc0lucHV0Q291bnRFeGNlZWRlZCB8fCBzdGF0dXMudmFsdWUgPT09ICdkaXNhYmxlZCdcIlxuICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMVwiXG4gICAgICAgICAgICBjbGVhck9uRWRpdD1cInRydWVcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgICBtb2RlPVwibWRcIlxuICAgICAgICAgICAgKGlvbklucHV0KT1cImZvcm11bGF0ZUFuZENoZWNrVmVyaWZpY2F0aW9uQ29kZSgkZXZlbnQsIDQpXCI+PC9pb24taW5wdXQ+XG4gICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgI2lucHV0NVxuICAgICAgICAgICAgY2xhc3M9XCJzaW5nbGUtZGlnaXQtaW5wdXQgaW9uLXRleHQtY2VudGVyXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGNvbW1zSW5wdXRDb3VudEV4Y2VlZGVkIHx8IHN0YXR1cy52YWx1ZSA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxXCJcbiAgICAgICAgICAgIGNsZWFyT25FZGl0PVwidHJ1ZVwiXG4gICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgIG1vZGU9XCJtZFwiXG4gICAgICAgICAgICAoaW9uSW5wdXQpPVwiZm9ybXVsYXRlQW5kQ2hlY2tWZXJpZmljYXRpb25Db2RlKCRldmVudCwgNSlcIj48L2lvbi1pbnB1dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGluZyAmJiBzdGF0dXMudmFsdWUgIT09ICdkaXNhYmxlZCdcIj5cbiAgICAgICAgICA8Y2Ytc3BhY2VyIGRlZmF1bHQ9XCIxNlwiPjwvY2Ytc3BhY2VyPlxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJjb21tc1NlbnRDb3VudCA8IDNcIiAoY2xpY2spPVwicmVzZW5kVmVyaWZpY2F0aW9uQ29kZSgpXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZhbGlkYXRpb25Db2RlRXJyb3JcIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJib2R5LXNtYWxsIGlvbi10ZXh0LWNlbnRlclwiICpuZ0Zvcj1cImxldCBzdHJpbmcgb2YgdXNlckZlZWRiYWNrTWVzc2FnZXM/LmVycm9yPy5yZXNlbmQgfHwgWydSZXNlbmQgQ29kZSddXCI+XG4gICAgICAgICAgICAgICAge3sgc3RyaW5nIH19XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF2YWxpZGF0aW9uQ29kZUVycm9yXCI+XG4gICAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJib2R5LXNtYWxsIGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHN0cmluZyBvZiB1c2VyRmVlZGJhY2tNZXNzYWdlcz8uc3RhbmRhcmRSZXNlbmQgfHwgWydEaWRuYHQgZ2V0IGEgY29kZT8gUGxlYXNlIHJlc2VuZCB0aGUgY29kZSddXCI+XG4gICAgICAgICAgICAgICAge3sgc3RyaW5nIH19XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21tc1NlbnRDb3VudCA+PSAzXCI+XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICBjbGFzcz1cImJvZHktc21hbGwgaW9uLXRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgbGV0IHN0cmluZyBvZiB1c2VyRmVlZGJhY2tNZXNzYWdlcz8ubGltaXRSZWFjaGVkIHx8IFsnU3RpbGwgc3RydWdnbGluZyB3aXRoIHlvdXIgY29kZT8nLCAnUGxlYXNlIGNvbnRhY3Qgc3VwcG9ydCBmb3IgYXNzaXN0YW5jZSddXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgID57eyBzdHJpbmcgfX08L3BcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxjZi1zcGFjZXIgKm5nSWY9XCJzdGF0dXMudmFsdWUgPT09ICdkaXNhYmxlZCdcIiBkZWZhdWx0PVwiMzJcIj48L2NmLXNwYWNlcj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj4gPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cbiAgPC9pb24tZ3JpZD5cbiAgPGNmLXNwaW5uZXIgc3R5bGU9XCJwb3NpdGlvbjogYWJzb2x1dGVcIiBbc2l6ZV09XCI0MFwiIFtuZ0NsYXNzXT1cInsgJ2Jsb2NrLWhpZGRlbic6IHN0YXR1cy52YWx1ZSAhPT0gJ3Byb2Nlc3NpbmcnIH1cIj48L2NmLXNwaW5uZXI+XG48L2Rpdj5cbiJdfQ==
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL3ZlcmlmaWNhdGlvbi1jb2RlL3ZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy92ZXJpZmljYXRpb24tY29kZS92ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBc0MsTUFBTSxlQUFlLENBQUM7Ozs7OztBQVd0SCxNQUFNLE9BQU8seUJBQXlCO0lBQzNCLGFBQWEsQ0FBVTtJQUN2QixNQUFNLENBQXFEO0lBQzNELG9CQUFvQixDQUFvQztJQUV2RCxPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUNyQyxnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRWpDLFFBQVEsQ0FBWTtJQUNwQixRQUFRLENBQVk7SUFDcEIsUUFBUSxDQUFZO0lBQ3BCLFFBQVEsQ0FBWTtJQUNwQixRQUFRLENBQVk7SUFHekMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQzVCLHdCQUF3QixHQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbkIsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUNwQix1QkFBdUIsR0FBRyxLQUFLLENBQUM7SUFDaEMsY0FBYyxDQUFxQjtJQUVuQyxVQUFVLENB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QUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM5QyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM5QyxNQUFNO1lBQ1IsS0FBSyxDQUFDO2dCQUNKLElBQUksSUFBSSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUM5QyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFPRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2pDLENBQUM7dUdBektVLHlCQUF5QjsyRkFBekIseUJBQXlCLDRyQkMxQnRDLDZtTEE0SEE7OzJGRGxHYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usc0JBQXNCOzhCQUt2QixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBRWMsUUFBUTtzQkFBNUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNFLFFBQVE7c0JBQTVCLFNBQVM7dUJBQUMsUUFBUTtnQkFDRSxRQUFRO3NCQUE1QixTQUFTO3VCQUFDLFFBQVE7Z0JBQ0UsUUFBUTtzQkFBNUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNFLFFBQVE7c0JBQTVCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZWZpcnN0IGxpYnJhcnkgLSBWZXJpZmljYXRpb24gQ29kZSBJbnB1dFxuICpcbiAqIEBmaWxlICAgICAgICAgIHZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudFxuICogQGRlc2NyaXB0aW9uICAgQ29udGFpbnMgYWxsIHRoZSBsb2dpYyBmb3IgZ2VuZXJhdGluZyBhIENhcmVGaXJzdCBWZXJpZmljYXRpb24gQ29kZSBJbnB1dFxuICogQGF1dGhvciAgICAgICAgQXJubyBKYW5zZW4gdmFuIFZ1dXJlblxuICogQHNpbmNlICAgICAgICAgMjAyNCAtIDAzIC0gMDdcbiAqIEB1c2FnZSAgICAgICAgICAgPGNmLXZlcmlmaWNhdGlvbi1jb2RlXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWVUb1ZlcmlmeT1gc3RyaW5nYFxuICAgICAgICAgICAgICAgICAgICAgIChvdXRjb21lKT1gb21pdHMgY29kZSB2YWx1ZWBcbiAgICAgICAgICAgICAgICAgICAgICAocmVzZW5kQ2xpY2tFdmVudCk9YHJlc2VuZCBjbGljayBldmVudGBcbiAgICAgICAgICAgICAgICAgICAgICBbc3RhdHVzXT1gQmVoYXZpb3JTdWJqZWN0PCdpbml0aWFsJyB8ICdpbnZhbGlkJz5gPlxuICAgICAgICAgICAgICAgICAgICA8L2NmLXZlcmlmaWNhdGlvbi1jb2RlPlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIHR5cGUgT25DaGFuZ2VzLCB0eXBlIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB0eXBlIHsgSW5wdXRDdXN0b21FdmVudCwgSW9uSW5wdXQgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbi8vLS0tIEludGVyZmFjZVxuaW1wb3J0IHR5cGUgeyBDZkNvZGVJbnB1dFVzZXJGZWVkYmFja01lc3NhZ2VzSSwgQ2ZDb2RlSW5wdXRWZXJpZmljYXRpb25TdGF0dXNlc1QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3ZlcmlmaWNhdGlvbi1jb2RlLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLXZlcmlmaWNhdGlvbi1jb2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3ZlcmlmaWNhdGlvbi1jb2RlLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgVmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHZhbHVlVG9WZXJpZnkhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0YXR1cyE6IEJlaGF2aW9yU3ViamVjdDxDZkNvZGVJbnB1dFZlcmlmaWNhdGlvblN0YXR1c2VzVD47XG4gIEBJbnB1dCgpIHVzZXJGZWVkYmFja01lc3NhZ2VzPzogQ2ZDb2RlSW5wdXRVc2VyRmVlZGJhY2tNZXNzYWdlc0k7XG5cbiAgQE91dHB1dCgpIG91dGNvbWUgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHJlc2VuZENsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHRydWU+KCk7XG5cbiAgQFZpZXdDaGlsZChgaW5wdXQxYCkgbXlJbnB1dDE/OiBJb25JbnB1dDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQyJykgbXlJbnB1dDI/OiBJb25JbnB1dDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQzJykgbXlJbnB1dDM/OiBJb25JbnB1dDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQ0JykgbXlJbnB1dDQ/OiBJb25JbnB1dDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQ1JykgbXlJbnB1dDU/OiBJb25JbnB1dDtcblxuICAvLy0tLSBIVE1MIHZhcmlhYmxlc1xuICB2YWxpZGF0aW9uQ29kZUVycm9yID0gZmFsc2U7XG4gIHZlcmlmaWNhdGlvbkNvZGVJbnB1dEFycjogKG51bWJlciB8IG51bGwpW10gPSBbbnVsbCwgbnVsbCwgbnVsbCwgbnVsbCwgbnVsbF07XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgY29tbXNTZW50Q291bnQgPSAwO1xuICBjb21tc0lucHV0Q291bnQgPSAwO1xuICBjb21tc0lucHV0Q291bnRFeGNlZWRlZCA9IGZhbHNlO1xuICB2YWxpZGF0aW9uQ29kZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHN0YXR1c1N1YiQ/OiBTdWJzY3JpcHRpb247XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBpb25WaWV3V2lsbEVudGVyXG4gICAqIEBkZXNjcmlwdGlvbiAgIFVwZGF0ZSB2YXJpb3VzIHZhbHVlcyBvbiBjb21wb25lbnQgaW5pdGlhbGl6YXRpb25cbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBpb25WaWV3RGlkRW50ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5jb21tc1NlbnRDb3VudCA9IDA7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIFVwZGF0ZSB2YXJpb3VzIHZhbHVlcyBvbiBpbnB1dCBjaGFuZ2VzXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIFZhbHVlIHRvIHZlcmlmeVxuICAgIGlmIChcbiAgICAgIGNoYW5nZXNbJ3ZhbHVlVG9WZXJpZnknXT8uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWyd2YWx1ZVRvVmVyaWZ5J10/LnByZXZpb3VzVmFsdWUgfHxcbiAgICAgIGNoYW5nZXNbJ2NvZGUnXT8uY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzWydjb2RlJ10/LnByZXZpb3VzVmFsdWVcbiAgICApIHtcbiAgICAgIHRoaXMuY29tbXNTZW50Q291bnQgPSAwO1xuICAgICAgdGhpcy52YWxpZGF0aW9uQ29kZUVycm9yID0gZmFsc2U7XG4gICAgICB0aGlzLnJlc2V0QWxsSW5wdXRGaWVsZHMoKTtcbiAgICB9XG5cbiAgICAvLy0tLSBTdGF0dXMgZGlzcGxheVxuICAgIGlmIChjaGFuZ2VzWydzdGF0dXMnXSkge1xuICAgICAgdGhpcy5zdGF0dXNTdWIkID0gKGNoYW5nZXNbJ3N0YXR1cyddLmN1cnJlbnRWYWx1ZSBhcyBCZWhhdmlvclN1YmplY3Q8J2luaXRpYWwnIHwgJ2ludmFsaWQnPikuc3Vic2NyaWJlKChzdGF0KSA9PiB7XG4gICAgICAgIGlmIChzdGF0ID09PSAnaW52YWxpZCcpIHtcbiAgICAgICAgICB0aGlzLnZhbGlkYXRpb25Db2RlRXJyb3IgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzZXRBbGxJbnB1dEZpZWxkcygpO1xuICAgICAgICB0aGlzLnNldEZvY3VzVG9OZXh0KDApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICByZXNlbmRWZXJpZmljYXRpb25Db2RlXG4gICAqIEBkZXNjcmlwdGlvbiAgIFJlc2VuZCBhIHZlcmlmaWNhdGlvbiBjb2RlXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgcmVzZW5kVmVyaWZpY2F0aW9uQ29kZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbW1zSW5wdXRDb3VudCA9IDA7XG4gICAgdGhpcy5jb21tc0lucHV0Q291bnRFeGNlZWRlZCA9IGZhbHNlO1xuICAgIHRoaXMudmFsaWRhdGlvbkNvZGVFcnJvciA9IGZhbHNlO1xuICAgIHRoaXMuY29tbXNTZW50Q291bnQrKztcbiAgICB0aGlzLnN0YXR1cy5uZXh0KCdpbml0aWFsJyk7XG4gICAgdGhpcy5yZXNlbmRDbGlja0V2ZW50LmVtaXQodHJ1ZSk7XG4gIH1cblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIGZvcm11bGF0ZUFuZENoZWNrVmVyaWZpY2F0aW9uQ29kZVxuICAgKiBAZGVzY3JpcHRpb24gICBIYW5kbGUgaW5wdXRzIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmVyaWZpY2F0aW9uIGNvZGUgYW5kIGRvIGNhbGwgb25jZSBjb2RlIGlzIGNvbXBsZXRlXG4gICAqIEBwYXJhbSAgICAgICAgIHtJbnB1dEN1c3RvbUV2ZW50fSBldmVudFxuICAgKiBAcGFyYW0gICAgICAgICB7bnVtYmVyfSBpbmRleFxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIGZvcm11bGF0ZUFuZENoZWNrVmVyaWZpY2F0aW9uQ29kZShldmVudDogSW5wdXRDdXN0b21FdmVudCwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gZXZlbnQuZGV0YWlsLnZhbHVlO1xuICAgIGlmICghdmFsdWUgfHwgISh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB8fCAhKCt2YWx1ZSA8IDEwKSkge1xuICAgICAgdGhpcy5jbGVhckNvZGVJbnB1dChpbmRleCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRGb2N1c1RvTmV4dChpbmRleCk7XG4gICAgdGhpcy52ZXJpZmljYXRpb25Db2RlSW5wdXRBcnJbaW5kZXggLSAxXSA9ICt2YWx1ZTtcbiAgICB0aGlzLnZhbGlkYXRpb25Db2RlRXJyb3IgPSBmYWxzZTtcblxuICAgIC8vLS0tIENoZWNrIGlmIGNvZGUgY29tcGxldGVkXG4gICAgaWYgKHRoaXMudmVyaWZpY2F0aW9uQ29kZUlucHV0QXJyLmV2ZXJ5KCh2YWwpID0+IHZhbCAhPT0gbnVsbCkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkNvZGUgPSB0aGlzLnZlcmlmaWNhdGlvbkNvZGVJbnB1dEFyci5qb2luKCcnKTtcbiAgICAgIHRoaXMub3V0Y29tZS5lbWl0KHRoaXMudmFsaWRhdGlvbkNvZGUpO1xuICAgICAgdGhpcy5jb21tc0lucHV0Q291bnQrKztcbiAgICAgIHRoaXMuY29tbXNJbnB1dENvdW50RXhjZWVkZWQgPSB0aGlzLmNvbW1zSW5wdXRDb3VudCA+PSAzO1xuICAgIH1cbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgcmVzZXRBbGxJbnB1dEZpZWxkc1xuICAgKiBAZGVzY3JpcHRpb24gICBSZXNldCBhbGwgaW5wdXQgZmllbGRzXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgcHJpdmF0ZSByZXNldEFsbElucHV0RmllbGRzKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJDb2RlSW5wdXQoMSk7XG4gICAgdGhpcy5jbGVhckNvZGVJbnB1dCgyKTtcbiAgICB0aGlzLmNsZWFyQ29kZUlucHV0KDMpO1xuICAgIHRoaXMuY2xlYXJDb2RlSW5wdXQoNCk7XG4gICAgdGhpcy5jbGVhckNvZGVJbnB1dCg1KTtcbiAgICB0aGlzLnZlcmlmaWNhdGlvbkNvZGVJbnB1dEFyci5maWxsKG51bGwpO1xuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBzZXRGb2N1c1RvTmV4dFxuICAgKiBAZGVzY3JpcHRpb24gICBTZXQgdGhlIGZvY3VzIHRvIHRoZSBuZXh0IGlucHV0XG4gICAqIEBwYXJhbSAgICAgICAgIHtudW1iZXJ9IGN1cnJlbnRJbmRleFxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIHByaXZhdGUgc2V0Rm9jdXNUb05leHQoY3VycmVudEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoY3VycmVudEluZGV4ID09PSA1KSByZXR1cm47XG4gICAgY3VycmVudEluZGV4ID09PSAwXG4gICAgICA/IHRoaXMubXlJbnB1dDE/LnNldEZvY3VzKClcbiAgICAgIDogY3VycmVudEluZGV4ID09PSAxXG4gICAgICAgID8gdGhpcy5teUlucHV0Mj8uc2V0Rm9jdXMoKVxuICAgICAgICA6IGN1cnJlbnRJbmRleCA9PT0gMlxuICAgICAgICAgID8gdGhpcy5teUlucHV0Mz8uc2V0Rm9jdXMoKVxuICAgICAgICAgIDogY3VycmVudEluZGV4ID09PSAzXG4gICAgICAgICAgICA/IHRoaXMubXlJbnB1dDQ/LnNldEZvY3VzKClcbiAgICAgICAgICAgIDogdGhpcy5teUlucHV0NT8uc2V0Rm9jdXMoKTtcbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgY2xlYXJDb2RlSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uICAgQ2xlYXIgYSBjb2RlIGlucHV0IG9uIGludmFsaWQga2V5XG4gICAqIEBwYXJhbSAgICAgICAgIHtudW1iZXJ9IGluZGV4XG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgcHJpdmF0ZSBjbGVhckNvZGVJbnB1dChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgc3dpdGNoIChpbmRleCkge1xuICAgICAgY2FzZSAxOlxuICAgICAgICBpZiAodGhpcy5teUlucHV0MSkgdGhpcy5teUlucHV0MS52YWx1ZSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAyOlxuICAgICAgICBpZiAodGhpcy5teUlucHV0MikgdGhpcy5teUlucHV0Mi52YWx1ZSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAzOlxuICAgICAgICBpZiAodGhpcy5teUlucHV0MykgdGhpcy5teUlucHV0My52YWx1ZSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA0OlxuICAgICAgICBpZiAodGhpcy5teUlucHV0NCkgdGhpcy5teUlucHV0NC52YWx1ZSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA1OlxuICAgICAgICBpZiAodGhpcy5teUlucHV0NSkgdGhpcy5teUlucHV0NS52YWx1ZSA9IG51bGw7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgaW9uVmlld1dpbGxMZWF2ZVxuICAgKiBAZGVzY3JpcHRpb24gICBVbnN1YnNjcmliZSBvbiBjb21wb25lbnQgbGVhdmVcbiAgICogQHJldHVybnMgICAgICAge3ZvaWR9XG4gICAqL1xuICBpb25WaWV3V2lsbExlYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdHVzU3ViJD8udW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPCEtLSAtLS08PiByZXRoaW5rIGlmIHN0YXRlbWVudCBsb2dpYyAtLT5cbjxkaXYgaWQ9XCJ2ZXJpZmljYXRpb24tY29udGFpbmVyXCI+XG4gIDxpb24tZ3JpZCBpZD1cInZlcmlmaWNhdGlvbi1ncmlkXCIgW25nU3R5bGVdPVwic3RhdHVzLnZhbHVlID09PSAncHJvY2Vzc2luZycgPyB7IHZpc2liaWxpdHk6ICdoaWRkZW4nIH0gOiB7fVwiPlxuICAgIDwhLS0gSW5wdXQgYm94ZXMgZm9yIHZlcmlmaWNhdGlvbiBjb2RlIDUgbnVtZXJpYyBkaWdpdHMgLS0+XG4gICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0YXR1cy52YWx1ZSAhPT0gJ2Rpc2FibGVkJ1wiPlxuICAgICAgICA8aW9uLWNvbCAqbmdJZj1cInZhbGlkYXRpb25Db2RlRXJyb3IgJiYgIWNvbW1zSW5wdXRDb3VudEV4Y2VlZGVkXCIgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgICA8cFxuICAgICAgICAgICAgY2xhc3M9XCJib2R5LXNtYWxsIGVycm9yIGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3RyaW5nIG9mIHVzZXJGZWVkYmFja01lc3NhZ2VzPy5lcnJvcj8uZXJyb3JNZXNzYWdlIHx8IFsnSW52YWxpZCBDb2RlIC0gUGxlYXNlIFJldHJ5J11cIlxuICAgICAgICAgICAgPnt7IHN0cmluZyB9fTwvcFxuICAgICAgICAgID5cbiAgICAgICAgICA8Y2Ytc3BhY2VyIGRlZmF1bHQ9XCIxNlwiPjwvY2Ytc3BhY2VyPlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgIDxpb24tY29sICpuZ0lmPVwiY29tbXNJbnB1dENvdW50RXhjZWVkZWRcIiBzaXplPVwiYXV0b1wiPlxuICAgICAgICAgIDxwIGNsYXNzPVwiYm9keS1zbWFsbCBlcnJvciBpb24tdGV4dC1jZW50ZXJcIj5JbnZhbGlkIENvZGUgLSBNYXggYXR0ZW1wdHMgZXhjZWVkZWQ8L3A+XG4gICAgICAgICAgPGNmLXNwYWNlciBkZWZhdWx0PVwiMTZcIj48L2NmLXNwYWNlcj5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8aW9uLWNvbCAqbmdJZj1cInN0YXR1cy52YWx1ZSA9PT0gJ2luaXRpYWwnXCI+XG4gICAgICAgICAgPHAgKm5nRm9yPVwibGV0IHN0cmluZyBvZiB1c2VyRmVlZGJhY2tNZXNzYWdlcz8uaW5pdGlhbCB8fCBbJ0NvZGUgc2VudCwgUGxlYXNlIGNoZWNrIHlvdXIgaW5ib3gnXVwiIGNsYXNzPVwiYm9keS1zbWFsbCBnb29kIGlvbi10ZXh0LWNlbnRlclwiPnt7XG4gICAgICAgICAgICBzdHJpbmdcbiAgICAgICAgICB9fTwvcD5cbiAgICAgICAgICA8Y2Ytc3BhY2VyIGRlZmF1bHQ9XCIxNlwiPjwvY2Ytc3BhY2VyPlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxpb24tY29sXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgKCF2YWxpZGF0aW9uQ29kZUVycm9yICYmIHN0YXR1cy52YWx1ZSA9PT0gJ2Rpc2FibGVkJykgfHwgc3RhdHVzLnZhbHVlID09PSAnZGlzYWJsZWQnIHx8IChzdGF0dXMudmFsdWUgPT09ICdpbnZhbGlkJyAmJiAhdmFsaWRhdGlvbkNvZGVFcnJvcilcbiAgICAgICAgXCI+XG4gICAgICAgIDxjZi1zcGFjZXIgZGVmYXVsdD1cIjMyXCI+PC9jZi1zcGFjZXI+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cbiAgICAgIDxpb24tY29sPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2luZ2xlLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsgZXJyb3I6IHZhbGlkYXRpb25Db2RlRXJyb3IgfVwiPlxuICAgICAgICAgIDxpb24taW5wdXRcbiAgICAgICAgICAgICNpbnB1dDFcbiAgICAgICAgICAgIGNsYXNzPVwic2luZ2xlLWRpZ2l0LWlucHV0IGlvbi10ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBjb21tc0lucHV0Q291bnRFeGNlZWRlZCB8fCBzdGF0dXMudmFsdWUgPT09ICdkaXNhYmxlZCdcIlxuICAgICAgICAgICAgZmlsbD1cIm91dGxpbmVcIlxuICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMVwiXG4gICAgICAgICAgICBjbGVhck9uRWRpdD1cInRydWVcIlxuICAgICAgICAgICAgaW5wdXRtb2RlPVwibnVtZXJpY1wiXG4gICAgICAgICAgICBtb2RlPVwibWRcIlxuICAgICAgICAgICAgKGlvbklucHV0KT1cImZvcm11bGF0ZUFuZENoZWNrVmVyaWZpY2F0aW9uQ29kZSgkZXZlbnQsIDEpXCI+PC9pb24taW5wdXQ+XG4gICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgI2lucHV0MlxuICAgICAgICAgICAgY2xhc3M9XCJzaW5nbGUtZGlnaXQtaW5wdXQgaW9uLXRleHQtY2VudGVyXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGNvbW1zSW5wdXRDb3VudEV4Y2VlZGVkIHx8IHN0YXR1cy52YWx1ZSA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxXCJcbiAgICAgICAgICAgIGNsZWFyT25FZGl0PVwidHJ1ZVwiXG4gICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgIG1vZGU9XCJtZFwiXG4gICAgICAgICAgICAoaW9uSW5wdXQpPVwiZm9ybXVsYXRlQW5kQ2hlY2tWZXJpZmljYXRpb25Db2RlKCRldmVudCwgMilcIj48L2lvbi1pbnB1dD5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICAjaW5wdXQzXG4gICAgICAgICAgICBjbGFzcz1cInNpbmdsZS1kaWdpdC1pbnB1dCBpb24tdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgY29tbXNJbnB1dENvdW50RXhjZWVkZWQgfHwgc3RhdHVzLnZhbHVlID09PSAnZGlzYWJsZWQnXCJcbiAgICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjFcIlxuICAgICAgICAgICAgY2xlYXJPbkVkaXQ9XCJ0cnVlXCJcbiAgICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICAgKGlvbklucHV0KT1cImZvcm11bGF0ZUFuZENoZWNrVmVyaWZpY2F0aW9uQ29kZSgkZXZlbnQsIDMpXCI+PC9pb24taW5wdXQ+XG4gICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgI2lucHV0NFxuICAgICAgICAgICAgY2xhc3M9XCJzaW5nbGUtZGlnaXQtaW5wdXQgaW9uLXRleHQtY2VudGVyXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGNvbW1zSW5wdXRDb3VudEV4Y2VlZGVkIHx8IHN0YXR1cy52YWx1ZSA9PT0gJ2Rpc2FibGVkJ1wiXG4gICAgICAgICAgICBmaWxsPVwib3V0bGluZVwiXG4gICAgICAgICAgICBtYXhsZW5ndGg9XCIxXCJcbiAgICAgICAgICAgIGNsZWFyT25FZGl0PVwidHJ1ZVwiXG4gICAgICAgICAgICBpbnB1dG1vZGU9XCJudW1lcmljXCJcbiAgICAgICAgICAgIG1vZGU9XCJtZFwiXG4gICAgICAgICAgICAoaW9uSW5wdXQpPVwiZm9ybXVsYXRlQW5kQ2hlY2tWZXJpZmljYXRpb25Db2RlKCRldmVudCwgNClcIj48L2lvbi1pbnB1dD5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICAjaW5wdXQ1XG4gICAgICAgICAgICBjbGFzcz1cInNpbmdsZS1kaWdpdC1pbnB1dCBpb24tdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgY29tbXNJbnB1dENvdW50RXhjZWVkZWQgfHwgc3RhdHVzLnZhbHVlID09PSAnZGlzYWJsZWQnXCJcbiAgICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCJcbiAgICAgICAgICAgIG1heGxlbmd0aD1cIjFcIlxuICAgICAgICAgICAgY2xlYXJPbkVkaXQ9XCJ0cnVlXCJcbiAgICAgICAgICAgIGlucHV0bW9kZT1cIm51bWVyaWNcIlxuICAgICAgICAgICAgbW9kZT1cIm1kXCJcbiAgICAgICAgICAgIChpb25JbnB1dCk9XCJmb3JtdWxhdGVBbmRDaGVja1ZlcmlmaWNhdGlvbkNvZGUoJGV2ZW50LCA1KVwiPjwvaW9uLWlucHV0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG4gICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxuICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkaW5nICYmIHN0YXR1cy52YWx1ZSAhPT0gJ2Rpc2FibGVkJ1wiPlxuICAgICAgICAgIDxjZi1zcGFjZXIgZGVmYXVsdD1cIjE2XCI+PC9jZi1zcGFjZXI+XG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImNvbW1zU2VudENvdW50IDwgM1wiIChjbGljayk9XCJyZXNlbmRWZXJpZmljYXRpb25Db2RlKClcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsaWRhdGlvbkNvZGVFcnJvclwiPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImJvZHktc21hbGwgaW9uLXRleHQtY2VudGVyXCIgKm5nRm9yPVwibGV0IHN0cmluZyBvZiB1c2VyRmVlZGJhY2tNZXNzYWdlcz8uZXJyb3I/LnJlc2VuZCB8fCBbJ1Jlc2VuZCBDb2RlJ11cIj5cbiAgICAgICAgICAgICAgICB7eyBzdHJpbmcgfX1cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXZhbGlkYXRpb25Db2RlRXJyb3JcIj5cbiAgICAgICAgICAgICAgPHBcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJvZHktc21hbGwgaW9uLXRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3RyaW5nIG9mIHVzZXJGZWVkYmFja01lc3NhZ2VzPy5zdGFuZGFyZFJlc2VuZCB8fCBbJ0RpZG5gdCBnZXQgYSBjb2RlPyBQbGVhc2UgcmVzZW5kIHRoZSBjb2RlJ11cIj5cbiAgICAgICAgICAgICAgICB7eyBzdHJpbmcgfX1cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbW1zU2VudENvdW50ID49IDNcIj5cbiAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgIGNsYXNzPVwiYm9keS1zbWFsbCBpb24tdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICBsZXQgc3RyaW5nIG9mIHVzZXJGZWVkYmFja01lc3NhZ2VzPy5saW1pdFJlYWNoZWQgfHwgWydTdGlsbCBzdHJ1Z2dsaW5nIHdpdGggeW91ciBjb2RlPycsICdQbGVhc2UgY29udGFjdCBzdXBwb3J0IGZvciBhc3Npc3RhbmNlJ11cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPnt7IHN0cmluZyB9fTwvcFxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGNmLXNwYWNlciAqbmdJZj1cInN0YXR1cy52YWx1ZSA9PT0gJ2Rpc2FibGVkJ1wiIGRlZmF1bHQ9XCIzMlwiPjwvY2Ytc3BhY2VyPlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cbiAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPiA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuICA8L2lvbi1ncmlkPlxuICA8Y2Ytc3Bpbm5lciBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZVwiIFtzaXplXT1cIjQwXCIgW25nQ2xhc3NdPVwieyAnYmxvY2staGlkZGVuJzogc3RhdHVzLnZhbHVlICE9PSAncHJvY2Vzc2luZycgfVwiPjwvY2Ytc3Bpbm5lcj5cbjwvZGl2PlxuIl19
@@ -1,7 +1,7 @@
1
1
  import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { IonicModule } from '@ionic/angular';
4
3
  import { ReactiveFormsModule } from '@angular/forms';
4
+ import { provideIonicAngular, IonApp, IonRadio, IonRadioGroup, IonGrid, IonRow, IonCol, IonCard, IonRouterOutlet, IonBackButton, IonModal, IonPopover, IonRouterLink, IonRouterLinkWithHref, IonTabs, IonNav, IonCheckbox, IonDatetime, IonInput, IonIcon, IonRange, IonSearchbar, IonSegment, IonSelect, IonTextarea, IonToggle, } from '@ionic/angular/standalone';
5
5
  import { ButtonLoaderDirective } from './directives/button-loader.directive';
6
6
  import { PageComponent } from './components/page/page.component';
7
7
  import { ButtonComponent } from './components/button/button.component';
@@ -21,6 +21,33 @@ import { SpinnerComponent } from './components/spinner/spinner.component';
21
21
  import { VerificationCodeComponent } from './components/verification-code/verification-code.component';
22
22
  import { MixPComponent } from './components/mix-p/mix-p.component';
23
23
  import * as i0 from "@angular/core";
24
+ const ionicModules = [
25
+ IonApp,
26
+ IonRadio,
27
+ IonRadioGroup,
28
+ IonGrid,
29
+ IonRow,
30
+ IonCol,
31
+ IonCard,
32
+ IonRouterOutlet,
33
+ IonBackButton,
34
+ IonModal,
35
+ IonPopover,
36
+ IonRouterLink,
37
+ IonRouterLinkWithHref,
38
+ IonTabs,
39
+ IonNav,
40
+ IonCheckbox,
41
+ IonDatetime,
42
+ IonInput,
43
+ IonIcon,
44
+ IonRange,
45
+ IonSearchbar,
46
+ IonSegment,
47
+ IonSelect,
48
+ IonTextarea,
49
+ IonToggle,
50
+ ];
24
51
  export class CareFirstLibraryModule {
25
52
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CareFirstLibraryModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
26
53
  static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: CareFirstLibraryModule, declarations: [PageComponent,
@@ -40,7 +67,55 @@ export class CareFirstLibraryModule {
40
67
  BadgeComponent,
41
68
  SpinnerComponent,
42
69
  VerificationCodeComponent,
43
- MixPComponent], imports: [IonicModule, CommonModule, ReactiveFormsModule], exports: [PageComponent,
70
+ MixPComponent], imports: [CommonModule, ReactiveFormsModule, IonApp,
71
+ IonRadio,
72
+ IonRadioGroup,
73
+ IonGrid,
74
+ IonRow,
75
+ IonCol,
76
+ IonCard,
77
+ IonRouterOutlet,
78
+ IonBackButton,
79
+ IonModal,
80
+ IonPopover,
81
+ IonRouterLink,
82
+ IonRouterLinkWithHref,
83
+ IonTabs,
84
+ IonNav,
85
+ IonCheckbox,
86
+ IonDatetime,
87
+ IonInput,
88
+ IonIcon,
89
+ IonRange,
90
+ IonSearchbar,
91
+ IonSegment,
92
+ IonSelect,
93
+ IonTextarea,
94
+ IonToggle], exports: [IonApp,
95
+ IonRadio,
96
+ IonRadioGroup,
97
+ IonGrid,
98
+ IonRow,
99
+ IonCol,
100
+ IonCard,
101
+ IonRouterOutlet,
102
+ IonBackButton,
103
+ IonModal,
104
+ IonPopover,
105
+ IonRouterLink,
106
+ IonRouterLinkWithHref,
107
+ IonTabs,
108
+ IonNav,
109
+ IonCheckbox,
110
+ IonDatetime,
111
+ IonInput,
112
+ IonIcon,
113
+ IonRange,
114
+ IonSearchbar,
115
+ IonSegment,
116
+ IonSelect,
117
+ IonTextarea,
118
+ IonToggle, PageComponent,
44
119
  ButtonComponent,
45
120
  SpacerComponent,
46
121
  IconComponent,
@@ -58,7 +133,29 @@ export class CareFirstLibraryModule {
58
133
  SpinnerComponent,
59
134
  VerificationCodeComponent,
60
135
  MixPComponent] });
61
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CareFirstLibraryModule, imports: [IonicModule, CommonModule, ReactiveFormsModule] });
136
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CareFirstLibraryModule, providers: [provideIonicAngular()], imports: [CommonModule, ReactiveFormsModule, IonApp,
137
+ IonRadio,
138
+ IonRadioGroup,
139
+ IonGrid,
140
+ IonRow,
141
+ IonCol,
142
+ IonCard,
143
+ IonRouterOutlet,
144
+ IonBackButton,
145
+ IonModal,
146
+ IonPopover,
147
+ IonTabs,
148
+ IonNav,
149
+ IonCheckbox,
150
+ IonDatetime,
151
+ IonInput,
152
+ IonIcon,
153
+ IonRange,
154
+ IonSearchbar,
155
+ IonSegment,
156
+ IonSelect,
157
+ IonTextarea,
158
+ IonToggle] });
62
159
  }
63
160
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CareFirstLibraryModule, decorators: [{
64
161
  type: NgModule,
@@ -83,8 +180,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
83
180
  VerificationCodeComponent,
84
181
  MixPComponent,
85
182
  ],
86
- imports: [IonicModule, CommonModule, ReactiveFormsModule],
183
+ imports: [CommonModule, ReactiveFormsModule, ...ionicModules],
87
184
  exports: [
185
+ ...ionicModules,
88
186
  PageComponent,
89
187
  ButtonComponent,
90
188
  SpacerComponent,
@@ -105,6 +203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
105
203
  MixPComponent,
106
204
  ],
107
205
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
206
+ providers: [provideIonicAngular()],
108
207
  }]
109
208
  }] });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2xpYnJhcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUU3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUM5RyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdkcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQStDbkUsTUFBTSxPQUFPLHNCQUFzQjt1R0FBdEIsc0JBQXNCO3dHQUF0QixzQkFBc0IsaUJBM0MvQixhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2IscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2QsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QiwwQkFBMEI7WUFDMUIsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIseUJBQXlCO1lBQ3pCLGFBQWEsYUFHTCxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixhQUV0RCxhQUFhO1lBQ2IsZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2IscUJBQXFCO1lBQ3JCLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2QsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLHdCQUF3QjtZQUN4QiwwQkFBMEI7WUFDMUIsbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIseUJBQXlCO1lBQ3pCLGFBQWE7d0dBSUosc0JBQXNCLFlBdkJ2QixXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQjs7MkZBdUI3QyxzQkFBc0I7a0JBN0NsQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsd0JBQXdCO3dCQUN4QiwwQkFBMEI7d0JBQzFCLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLHlCQUF5Qjt3QkFDekIsYUFBYTtxQkFDZDtvQkFFRCxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixDQUFDO29CQUN6RCxPQUFPLEVBQUU7d0JBQ1AsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixxQkFBcUI7d0JBQ3JCLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLHdCQUF3Qjt3QkFDeEIsMEJBQTBCO3dCQUMxQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQix5QkFBeUI7d0JBQ3pCLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG4vLy0tLSBNb2R1bGVzXG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG4vLy0tLSBEaXJlY3RpdmVzXG5pbXBvcnQgeyBCdXR0b25Mb2FkZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYnV0dG9uLWxvYWRlci5kaXJlY3RpdmUnO1xuLy8tLS0gQ29tcG9uZW50c1xuaW1wb3J0IHsgUGFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wYWdlL3BhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGFjZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3BhY2VyL3NwYWNlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydC9hbGVydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9nb0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9sb2dvL2xvZ28uY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtSW5wdXRTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1pbnB1dC1zZWxlY3QvZm9ybS1pbnB1dC1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1JbnB1dFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0taW5wdXQtdGV4dC1hcmVhL2Zvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGF0QnViYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYXQtYnViYmxlL2NoYXQtYnViYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmVyaWZpY2F0aW9uLWNvZGUvdmVyaWZpY2F0aW9uLWNvZGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1peFBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWl4LXAvbWl4LXAuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUGFnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgU3BhY2VyQ29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgQnV0dG9uTG9hZGVyRGlyZWN0aXZlLFxuICAgIE5vdGlmaWNhdGlvbkNvbXBvbmVudCxcbiAgICBBbGVydENvbXBvbmVudCxcbiAgICBMb2dvQ29tcG9uZW50LFxuICAgIENhbGVuZGFyQ29tcG9uZW50LFxuICAgIEZvcm1WYWxpZGF0aW9uQ29tcG9uZW50LFxuICAgIEZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBGb3JtSW5wdXRTZWxlY3RDb21wb25lbnQsXG4gICAgRm9ybUlucHV0VGV4dEFyZWFDb21wb25lbnQsXG4gICAgQ2hhdEJ1YmJsZUNvbXBvbmVudCxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBTcGlubmVyQ29tcG9uZW50LFxuICAgIFZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQsXG4gICAgTWl4UENvbXBvbmVudCxcbiAgXSxcblxuICBpbXBvcnRzOiBbSW9uaWNNb2R1bGUsIENvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIGV4cG9ydHM6IFtcbiAgICBQYWdlQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBTcGFjZXJDb21wb25lbnQsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBCdXR0b25Mb2FkZXJEaXJlY3RpdmUsXG4gICAgTm90aWZpY2F0aW9uQ29tcG9uZW50LFxuICAgIEFsZXJ0Q29tcG9uZW50LFxuICAgIExvZ29Db21wb25lbnQsXG4gICAgQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgRm9ybVZhbGlkYXRpb25Db21wb25lbnQsXG4gICAgRm9ybUlucHV0Q29tcG9uZW50LFxuICAgIEZvcm1JbnB1dFNlbGVjdENvbXBvbmVudCxcbiAgICBGb3JtSW5wdXRUZXh0QXJlYUNvbXBvbmVudCxcbiAgICBDaGF0QnViYmxlQ29tcG9uZW50LFxuICAgIEJhZGdlQ29tcG9uZW50LFxuICAgIFNwaW5uZXJDb21wb25lbnQsXG4gICAgVmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudCxcbiAgICBNaXhQQ29tcG9uZW50LFxuICBdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIENhcmVGaXJzdExpYnJhcnlNb2R1bGUge31cbiJdfQ==
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2xpYnJhcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsTUFBTSxFQUNOLFFBQVEsRUFDUixhQUFhLEVBQ2IsT0FBTyxFQUNQLE1BQU0sRUFDTixNQUFNLEVBQ04sT0FBTyxFQUNQLGVBQWUsRUFDZixhQUFhLEVBQ2IsUUFBUSxFQUNSLFVBQVUsRUFDVixhQUFhLEVBQ2IscUJBQXFCLEVBQ3JCLE9BQU8sRUFDUCxNQUFNLEVBQ04sV0FBVyxFQUNYLFdBQVcsRUFDWCxRQUFRLEVBQ1IsT0FBTyxFQUNQLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0Ms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QU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuLy8tLS0gTW9kdWxlc1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIHByb3ZpZGVJb25pY0FuZ3VsYXIsXG4gIElvbkFwcCxcbiAgSW9uUmFkaW8sXG4gIElvblJhZGlvR3JvdXAsXG4gIElvbkdyaWQsXG4gIElvblJvdyxcbiAgSW9uQ29sLFxuICBJb25DYXJkLFxuICBJb25Sb3V0ZXJPdXRsZXQsXG4gIElvbkJhY2tCdXR0b24sXG4gIElvbk1vZGFsLFxuICBJb25Qb3BvdmVyLFxuICBJb25Sb3V0ZXJMaW5rLFxuICBJb25Sb3V0ZXJMaW5rV2l0aEhyZWYsXG4gIElvblRhYnMsXG4gIElvbk5hdixcbiAgSW9uQ2hlY2tib3gsXG4gIElvbkRhdGV0aW1lLFxuICBJb25JbnB1dCxcbiAgSW9uSWNvbixcbiAgSW9uUmFuZ2UsXG4gIElvblNlYXJjaGJhcixcbiAgSW9uU2VnbWVudCxcbiAgSW9uU2VsZWN0LFxuICBJb25UZXh0YXJlYSxcbiAgSW9uVG9nZ2xlLFxufSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbi8vLS0tIERpcmVjdGl2ZXNcbmltcG9ydCB7IEJ1dHRvbkxvYWRlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9idXR0b24tbG9hZGVyLmRpcmVjdGl2ZSc7XG4vLy0tLSBDb21wb25lbnRzXG5pbXBvcnQgeyBQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BhZ2UvcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFNwYWNlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zcGFjZXIvc3BhY2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEFsZXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2dvQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvZ28vbG9nby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Zvcm0tdmFsaWRhdGlvbi9mb3JtLXZhbGlkYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1JbnB1dFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb3JtLWlucHV0LXNlbGVjdC9mb3JtLWlucHV0LXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUlucHV0VGV4dEFyZWFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZm9ybS1pbnB1dC10ZXh0LWFyZWEvZm9ybS1pbnB1dC10ZXh0LWFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IENoYXRCdWJibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhdC1idWJibGUvY2hhdC1idWJibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEJhZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92ZXJpZmljYXRpb24tY29kZS92ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWl4UENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9taXgtcC9taXgtcC5jb21wb25lbnQnO1xuXG5jb25zdCBpb25pY01vZHVsZXMgPSBbXG4gIElvbkFwcCxcbiAgSW9uUmFkaW8sXG4gIElvblJhZGlvR3JvdXAsXG4gIElvbkdyaWQsXG4gIElvblJvdyxcbiAgSW9uQ29sLFxuICBJb25DYXJkLFxuICBJb25Sb3V0ZXJPdXRsZXQsXG4gIElvbkJhY2tCdXR0b24sXG4gIElvbk1vZGFsLFxuICBJb25Qb3BvdmVyLFxuICBJb25Sb3V0ZXJMaW5rLFxuICBJb25Sb3V0ZXJMaW5rV2l0aEhyZWYsXG4gIElvblRhYnMsXG4gIElvbk5hdixcbiAgSW9uQ2hlY2tib3gsXG4gIElvbkRhdGV0aW1lLFxuICBJb25JbnB1dCxcbiAgSW9uSWNvbixcbiAgSW9uUmFuZ2UsXG4gIElvblNlYXJjaGJhcixcbiAgSW9uU2VnbWVudCxcbiAgSW9uU2VsZWN0LFxuICBJb25UZXh0YXJlYSxcbiAgSW9uVG9nZ2xlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUGFnZUNvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgU3BhY2VyQ29tcG9uZW50LFxuICAgIEljb25Db21wb25lbnQsXG4gICAgQnV0dG9uTG9hZGVyRGlyZWN0aXZlLFxuICAgIE5vdGlmaWNhdGlvbkNvbXBvbmVudCxcbiAgICBBbGVydENvbXBvbmVudCxcbiAgICBMb2dvQ29tcG9uZW50LFxuICAgIENhbGVuZGFyQ29tcG9uZW50LFxuICAgIEZvcm1WYWxpZGF0aW9uQ29tcG9uZW50LFxuICAgIEZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBGb3JtSW5wdXRTZWxlY3RDb21wb25lbnQsXG4gICAgRm9ybUlucHV0VGV4dEFyZWFDb21wb25lbnQsXG4gICAgQ2hhdEJ1YmJsZUNvbXBvbmVudCxcbiAgICBCYWRnZUNvbXBvbmVudCxcbiAgICBTcGlubmVyQ29tcG9uZW50LFxuICAgIFZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQsXG4gICAgTWl4UENvbXBvbmVudCxcbiAgXSxcblxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCAuLi5pb25pY01vZHVsZXNdLFxuICBleHBvcnRzOiBbXG4gICAgLi4uaW9uaWNNb2R1bGVzLFxuICAgIFBhZ2VDb21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIFNwYWNlckNvbXBvbmVudCxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkxvYWRlckRpcmVjdGl2ZSxcbiAgICBOb3RpZmljYXRpb25Db21wb25lbnQsXG4gICAgQWxlcnRDb21wb25lbnQsXG4gICAgTG9nb0NvbXBvbmVudCxcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcbiAgICBGb3JtVmFsaWRhdGlvbkNvbXBvbmVudCxcbiAgICBGb3JtSW5wdXRDb21wb25lbnQsXG4gICAgRm9ybUlucHV0U2VsZWN0Q29tcG9uZW50LFxuICAgIEZvcm1JbnB1dFRleHRBcmVhQ29tcG9uZW50LFxuICAgIENoYXRCdWJibGVDb21wb25lbnQsXG4gICAgQmFkZ2VDb21wb25lbnQsXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgICBWZXJpZmljYXRpb25Db2RlQ29tcG9uZW50LFxuICAgIE1peFBDb21wb25lbnQsXG4gIF0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZUlvbmljQW5ndWxhcigpXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZUZpcnN0TGlicmFyeU1vZHVsZSB7fVxuIl19