@bsachref/ng-form 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) [2025] [BOUSNINA ACHRAF]
3
+ Copyright (c) 2025 bsachref
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,23 @@
1
+ import { ChangeDetectorRef } from '@angular/core';
2
+ import { FormGroup, FormBuilder, ValidatorFn, AbstractControl } from '@angular/forms';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { FormControlConfig } from '../public-api';
5
+ import * as i0 from "@angular/core";
6
+ export declare class BaseFormsComponent {
7
+ protected fb: FormBuilder;
8
+ protected cdr: ChangeDetectorRef;
9
+ formName: import("@angular/core").InputSignal<string>;
10
+ controls: import("@angular/core").InputSignal<FormControlConfig[]>;
11
+ formSubmit: import("@angular/core").OutputEmitterRef<Record<string, any>>;
12
+ form: FormGroup;
13
+ protected formChanges$: BehaviorSubject<boolean>;
14
+ constructor(fb: FormBuilder, cdr: ChangeDetectorRef);
15
+ ngOnInit(): void;
16
+ protected initializeForm(): void;
17
+ protected getValidators(control: FormControlConfig): ValidatorFn[];
18
+ protected updateValidators(control: AbstractControl, value: any): void;
19
+ protected shouldRequireValidation(value: any): boolean;
20
+ onSubmit(): void;
21
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseFormsComponent, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<BaseFormsComponent, "base-forms", never, { "formName": { "alias": "formName"; "required": true; "isSignal": true; }; "controls": { "alias": "controls"; "required": true; "isSignal": true; }; }, { "formSubmit": "formSubmit"; }, never, never, true, never>;
23
+ }
@@ -1,22 +1,6 @@
1
- import { ChangeDetectorRef } from '@angular/core';
2
- import { FormGroup, FormBuilder } from '@angular/forms';
3
- import { FormControlConfig } from '../formControlConfig';
1
+ import { BaseFormsComponent } from '../base.component';
4
2
  import * as i0 from "@angular/core";
5
- export declare class DefaultFormsComponent {
6
- private fb;
7
- private cdr;
8
- formName: import("@angular/core").InputSignal<string>;
9
- controls: import("@angular/core").InputSignal<FormControlConfig[]>;
10
- formSubmit: import("@angular/core").OutputEmitterRef<Record<string, any>>;
11
- form: FormGroup;
12
- private formChanges$;
13
- constructor(fb: FormBuilder, cdr: ChangeDetectorRef);
14
- ngOnInit(): void;
15
- private initializeForm;
16
- private getValidators;
17
- private updateValidators;
18
- private shouldRequireValidation;
19
- onSubmit(): void;
3
+ export declare class DefaultFormsComponent extends BaseFormsComponent {
20
4
  static ɵfac: i0.ɵɵFactoryDeclaration<DefaultFormsComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<DefaultFormsComponent, "default-forms", never, { "formName": { "alias": "formName"; "required": true; "isSignal": true; }; "controls": { "alias": "controls"; "required": true; "isSignal": true; }; }, { "formSubmit": "formSubmit"; }, never, never, true, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<DefaultFormsComponent, "default-forms", never, {}, {}, never, never, true, never>;
22
6
  }
@@ -1,19 +1,6 @@
1
- import { ChangeDetectorRef } from '@angular/core';
2
- import { FormGroup, FormBuilder } from '@angular/forms';
3
- import { FormControlConfig } from '../formControlConfig';
1
+ import { BaseFormsComponent } from '../base.component';
4
2
  import * as i0 from "@angular/core";
5
- export declare class MaterialFormsComponent {
6
- private fb;
7
- private cdr;
8
- formName: import("@angular/core").InputSignal<string>;
9
- controls: import("@angular/core").InputSignal<FormControlConfig[]>;
10
- formSubmit: import("@angular/core").OutputEmitterRef<Record<string, any>>;
11
- form: FormGroup;
12
- constructor(fb: FormBuilder, cdr: ChangeDetectorRef);
13
- ngOnInit(): void;
14
- private initializeForm;
15
- private getValidators;
16
- onSubmit(): void;
3
+ export declare class MaterialFormsComponent extends BaseFormsComponent {
17
4
  static ɵfac: i0.ɵɵFactoryDeclaration<MaterialFormsComponent, never>;
18
- static ɵcmp: i0.ɵɵComponentDeclaration<MaterialFormsComponent, "material-forms", never, { "formName": { "alias": "formName"; "required": true; "isSignal": true; }; "controls": { "alias": "controls"; "required": true; "isSignal": true; }; }, { "formSubmit": "formSubmit"; }, never, never, true, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<MaterialFormsComponent, "material-forms", never, {}, {}, never, never, true, never>;
19
6
  }
@@ -1,23 +1,7 @@
1
- import { ChangeDetectorRef } from '@angular/core';
2
- import { FormGroup, FormBuilder } from '@angular/forms';
3
- import { FormControlConfig } from '../formControlConfig';
1
+ import { BaseFormsComponent } from '../base.component';
4
2
  import * as i0 from "@angular/core";
5
- export declare class PrimeNgFormsComponent {
6
- private fb;
7
- private cdr;
8
- formName: import("@angular/core").InputSignal<string>;
9
- controls: import("@angular/core").InputSignal<FormControlConfig[]>;
10
- formSubmit: import("@angular/core").OutputEmitterRef<Record<string, any>>;
11
- form: FormGroup;
12
- private formChanges$;
13
- constructor(fb: FormBuilder, cdr: ChangeDetectorRef);
14
- ngOnInit(): void;
15
- private initializeForm;
16
- private getValidators;
17
- private updateValidators;
18
- private shouldRequireValidation;
3
+ export declare class PrimeNgFormsComponent extends BaseFormsComponent {
19
4
  onFileSelect(event: any, controlName: string): void;
20
- onSubmit(): void;
21
5
  static ɵfac: i0.ɵɵFactoryDeclaration<PrimeNgFormsComponent, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<PrimeNgFormsComponent, "primeng-forms", never, { "formName": { "alias": "formName"; "required": true; "isSignal": true; }; "controls": { "alias": "controls"; "required": true; "isSignal": true; }; }, { "formSubmit": "formSubmit"; }, never, never, true, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<PrimeNgFormsComponent, "primeng-forms", never, {}, {}, never, never, true, never>;
23
7
  }
@@ -0,0 +1,113 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, input, output, } from '@angular/core';
3
+ import { ReactiveFormsModule, FormsModule, Validators, } from '@angular/forms';
4
+ import { BehaviorSubject } from 'rxjs';
5
+ import { ValidationMessagesComponent } from './validation-messages/validation-messages.component';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ export class BaseFormsComponent {
9
+ fb;
10
+ cdr;
11
+ formName = input.required();
12
+ controls = input.required();
13
+ formSubmit = output();
14
+ form;
15
+ formChanges$ = new BehaviorSubject(false);
16
+ constructor(fb, cdr) {
17
+ this.fb = fb;
18
+ this.cdr = cdr;
19
+ }
20
+ ngOnInit() {
21
+ this.initializeForm();
22
+ }
23
+ initializeForm() {
24
+ const formControls = {};
25
+ this.controls().forEach((control) => {
26
+ formControls[control.name] = [
27
+ control.value ?? '',
28
+ this.getValidators(control),
29
+ ];
30
+ });
31
+ this.form = this.fb.group(formControls);
32
+ this.controls().forEach((control) => {
33
+ const formControl = this.form.get(control.name);
34
+ if (formControl) {
35
+ formControl.valueChanges.subscribe((value) => {
36
+ // Only update validators if the value actually changes
37
+ if (formControl.value !== value) {
38
+ this.updateValidators(formControl, value);
39
+ }
40
+ });
41
+ }
42
+ });
43
+ this.formChanges$.subscribe(() => this.cdr.markForCheck());
44
+ }
45
+ getValidators(control) {
46
+ const validators = [];
47
+ if (control.validators) {
48
+ control.validators.forEach((validator) => {
49
+ if (validator.required)
50
+ validators.push(Validators.required);
51
+ if (validator.minlength)
52
+ validators.push(Validators.minLength(validator.minlength));
53
+ if (validator.maxlength)
54
+ validators.push(Validators.maxLength(validator.maxlength));
55
+ if (validator.pattern)
56
+ validators.push(Validators.pattern(validator.pattern));
57
+ if (validator.email)
58
+ validators.push(Validators.email);
59
+ if (validator.custom)
60
+ validators.push(validator.custom);
61
+ });
62
+ }
63
+ return validators;
64
+ }
65
+ updateValidators(control, value) {
66
+ const requiresValidation = this.shouldRequireValidation(value);
67
+ // Check if the validators need to be updated
68
+ const hasRequiredValidator = control.hasValidator(Validators.required);
69
+ if (requiresValidation && !hasRequiredValidator) {
70
+ control.addValidators(Validators.required);
71
+ control.updateValueAndValidity();
72
+ }
73
+ else if (!requiresValidation && hasRequiredValidator) {
74
+ control.removeValidators(Validators.required);
75
+ control.updateValueAndValidity();
76
+ }
77
+ this.formChanges$.next(true);
78
+ }
79
+ shouldRequireValidation(value) {
80
+ return value !== null && value !== '';
81
+ }
82
+ onSubmit() {
83
+ this.form.markAllAsTouched();
84
+ this.form.markAsDirty();
85
+ this.form.updateValueAndValidity();
86
+ if (this.form.valid) {
87
+ this.formSubmit.emit(this.form.value);
88
+ this.form.reset();
89
+ }
90
+ else {
91
+ console.error('Form Invalid');
92
+ }
93
+ this.formChanges$.next(true);
94
+ }
95
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFormsComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
96
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: BaseFormsComponent, isStandalone: true, selector: "base-forms", inputs: { formName: { classPropertyName: "formName", publicName: "formName", isSignal: true, isRequired: true, transformFunction: null }, controls: { classPropertyName: "controls", publicName: "controls", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formSubmit: "formSubmit" }, ngImport: i0, template: '', isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BaseFormsComponent, decorators: [{
99
+ type: Component,
100
+ args: [{
101
+ selector: 'base-forms',
102
+ standalone: true,
103
+ imports: [
104
+ CommonModule,
105
+ ReactiveFormsModule,
106
+ FormsModule,
107
+ ValidationMessagesComponent,
108
+ ],
109
+ template: '',
110
+ changeDetection: ChangeDetectionStrategy.OnPush,
111
+ }]
112
+ }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i0.ChangeDetectorRef }] });
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9uZ0Zvcm0vc3JjL2FwcC9iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLFdBQVcsRUFJWCxVQUFVLEdBRVgsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDOzs7QUFlbEcsTUFBTSxPQUFPLGtCQUFrQjtJQVNqQjtJQUNBO0lBVFosUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUNwQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBdUIsQ0FBQztJQUNqRCxVQUFVLEdBQUcsTUFBTSxFQUF1QixDQUFDO0lBRTNDLElBQUksQ0FBYTtJQUNQLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUU3RCxZQUNZLEVBQWUsRUFDZixHQUFzQjtRQUR0QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsUUFBRyxHQUFILEdBQUcsQ0FBbUI7SUFDL0IsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVTLGNBQWM7UUFDdEIsTUFBTSxZQUFZLEdBQTJCLEVBQUUsQ0FBQztRQUVoRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FB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WixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGlucHV0LFxuICBvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgRm9ybXNNb2R1bGUsXG4gIEZvcm1Hcm91cCxcbiAgRm9ybUJ1aWxkZXIsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzLFxuICBBYnN0cmFjdENvbnRyb2wsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VzQ29tcG9uZW50IH0gZnJvbSAnLi92YWxpZGF0aW9uLW1lc3NhZ2VzL3ZhbGlkYXRpb24tbWVzc2FnZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1Db250cm9sQ29uZmlnIH0gZnJvbSAnLi4vcHVibGljLWFwaSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhc2UtZm9ybXMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VzQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogJycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCYXNlRm9ybXNDb21wb25lbnQge1xuICBmb3JtTmFtZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgY29udHJvbHMgPSBpbnB1dC5yZXF1aXJlZDxGb3JtQ29udHJvbENvbmZpZ1tdPigpO1xuICBmb3JtU3VibWl0ID0gb3V0cHV0PFJlY29yZDxzdHJpbmcsIGFueT4+KCk7XG5cbiAgZm9ybSE6IEZvcm1Hcm91cDtcbiAgcHJvdGVjdGVkIGZvcm1DaGFuZ2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVGb3JtKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZUZvcm0oKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2xzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XG5cbiAgICB0aGlzLmNvbnRyb2xzKCkuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgZm9ybUNvbnRyb2xzW2NvbnRyb2wubmFtZV0gPSBbXG4gICAgICAgIGNvbnRyb2wudmFsdWUgPz8gJycsXG4gICAgICAgIHRoaXMuZ2V0VmFsaWRhdG9ycyhjb250cm9sKSxcbiAgICAgIF07XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKGZvcm1Db250cm9scyk7XG5cbiAgICB0aGlzLmNvbnRyb2xzKCkuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGNvbnRyb2wubmFtZSk7XG4gICAgICBpZiAoZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAvLyBPbmx5IHVwZGF0ZSB2YWxpZGF0b3JzIGlmIHRoZSB2YWx1ZSBhY3R1YWxseSBjaGFuZ2VzXG4gICAgICAgICAgaWYgKGZvcm1Db250cm9sLnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0b3JzKGZvcm1Db250cm9sLCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuZm9ybUNoYW5nZXMkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0VmFsaWRhdG9ycyhjb250cm9sOiBGb3JtQ29udHJvbENvbmZpZyk6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcblxuICAgIGlmIChjb250cm9sLnZhbGlkYXRvcnMpIHtcbiAgICAgIGNvbnRyb2wudmFsaWRhdG9ycy5mb3JFYWNoKCh2YWxpZGF0b3IpID0+IHtcbiAgICAgICAgaWYgKHZhbGlkYXRvci5yZXF1aXJlZCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICBpZiAodmFsaWRhdG9yLm1pbmxlbmd0aClcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgodmFsaWRhdG9yLm1pbmxlbmd0aCkpO1xuICAgICAgICBpZiAodmFsaWRhdG9yLm1heGxlbmd0aClcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodmFsaWRhdG9yLm1heGxlbmd0aCkpO1xuICAgICAgICBpZiAodmFsaWRhdG9yLnBhdHRlcm4pXG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih2YWxpZGF0b3IucGF0dGVybikpO1xuICAgICAgICBpZiAodmFsaWRhdG9yLmVtYWlsKSB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5lbWFpbCk7XG4gICAgICAgIGlmICh2YWxpZGF0b3IuY3VzdG9tKSB2YWxpZGF0b3JzLnB1c2godmFsaWRhdG9yLmN1c3RvbSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxuXG4gIHByb3RlY3RlZCB1cGRhdGVWYWxpZGF0b3JzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHJlcXVpcmVzVmFsaWRhdGlvbiA9IHRoaXMuc2hvdWxkUmVxdWlyZVZhbGlkYXRpb24odmFsdWUpO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHZhbGlkYXRvcnMgbmVlZCB0byBiZSB1cGRhdGVkXG4gICAgY29uc3QgaGFzUmVxdWlyZWRWYWxpZGF0b3IgPSBjb250cm9sLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKTtcblxuICAgIGlmIChyZXF1aXJlc1ZhbGlkYXRpb24gJiYgIWhhc1JlcXVpcmVkVmFsaWRhdG9yKSB7XG4gICAgICBjb250cm9sLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9IGVsc2UgaWYgKCFyZXF1aXJlc1ZhbGlkYXRpb24gJiYgaGFzUmVxdWlyZWRWYWxpZGF0b3IpIHtcbiAgICAgIGNvbnRyb2wucmVtb3ZlVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIHRoaXMuZm9ybUNoYW5nZXMkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hvdWxkUmVxdWlyZVZhbGlkYXRpb24odmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gJyc7XG4gIH1cblxuICBvblN1Ym1pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG5cbiAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmZvcm1TdWJtaXQuZW1pdCh0aGlzLmZvcm0udmFsdWUpO1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Zvcm0gSW52YWxpZCcpO1xuICAgIH1cblxuICAgIHRoaXMuZm9ybUNoYW5nZXMkLm5leHQodHJ1ZSk7XG4gIH1cbn0iXX0=
@@ -61,103 +61,25 @@
61
61
  * @description Handles the form submission. Marks the form as touched and dirty, validates the form, emits the form value if valid, and resets the form.
62
62
  */
63
63
  import { CommonModule } from '@angular/common';
64
- import { ChangeDetectionStrategy, Component, input, output, } from '@angular/core';
65
- import { ReactiveFormsModule, FormsModule, Validators, } from '@angular/forms';
64
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
65
+ import { ReactiveFormsModule, FormsModule } from '@angular/forms';
66
66
  import { ValidationMessagesComponent } from '../validation-messages/validation-messages.component';
67
- import { BehaviorSubject } from 'rxjs';
67
+ import { BaseFormsComponent } from '../base.component';
68
68
  import * as i0 from "@angular/core";
69
69
  import * as i1 from "@angular/forms";
70
70
  import * as i2 from "@angular/common";
71
- export class DefaultFormsComponent {
72
- fb;
73
- cdr;
74
- formName = input.required();
75
- controls = input.required();
76
- formSubmit = output();
77
- form;
78
- formChanges$ = new BehaviorSubject(false);
79
- constructor(fb, cdr) {
80
- this.fb = fb;
81
- this.cdr = cdr;
82
- }
83
- ngOnInit() {
84
- this.initializeForm();
85
- }
86
- initializeForm() {
87
- const formControls = {};
88
- this.controls().forEach((control) => {
89
- formControls[control.name] = [
90
- control.value ?? '',
91
- this.getValidators(control),
92
- ];
93
- });
94
- this.form = this.fb.group(formControls);
95
- this.controls().forEach((control) => {
96
- const formControl = this.form.get(control.name);
97
- if (formControl) {
98
- formControl.valueChanges.subscribe((value) => {
99
- this.updateValidators(formControl, value);
100
- });
101
- }
102
- });
103
- this.formChanges$.subscribe(() => this.cdr.markForCheck());
104
- }
105
- getValidators(control) {
106
- const validators = [];
107
- if (control.validators) {
108
- control.validators.forEach((validator) => {
109
- if (validator.required)
110
- validators.push(Validators.required);
111
- if (validator.minlength)
112
- validators.push(Validators.minLength(validator.minlength));
113
- if (validator.maxlength)
114
- validators.push(Validators.maxLength(validator.maxlength));
115
- if (validator.pattern)
116
- validators.push(Validators.pattern(validator.pattern));
117
- if (validator.email)
118
- validators.push(Validators.email);
119
- if (validator.custom)
120
- validators.push(validator.custom);
121
- });
122
- }
123
- return validators;
124
- }
125
- updateValidators(control, value) {
126
- if (this.shouldRequireValidation(value)) {
127
- control.addValidators(Validators.required);
128
- }
129
- else {
130
- control.removeValidators(Validators.required);
131
- }
132
- control.updateValueAndValidity();
133
- this.formChanges$.next(true);
134
- }
135
- shouldRequireValidation(value) {
136
- return value !== null && value !== '';
137
- }
138
- onSubmit() {
139
- this.form.markAllAsTouched();
140
- this.form.markAsDirty();
141
- this.form.updateValueAndValidity();
142
- if (this.form.valid) {
143
- this.formSubmit.emit(this.form.value);
144
- this.form.reset();
145
- }
146
- else {
147
- console.error('Form Invalid');
148
- }
149
- this.formChanges$.next(true);
150
- }
151
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultFormsComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
152
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultFormsComponent, isStandalone: true, selector: "default-forms", inputs: { formName: { classPropertyName: "formName", publicName: "formName", isSignal: true, isRequired: true, transformFunction: null }, controls: { classPropertyName: "controls", publicName: "controls", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formSubmit: "formSubmit" }, ngImport: i0, template: "<form [formGroup]=\"form\" [attr.name]=\"formName()\" (ngSubmit)=\"onSubmit()\">\n @for (control of controls(); track $index) {\n @if (control.uiFramework === \"default\" || !control.uiFramework) {\n @if (form.get(control.name)) {\n <section [ngClass]=\"control.class\" [ngStyle]=\"control.style\">\n @if (control.label) {\n <label\n [attr.for]=\"control.name\"\n [ngClass]=\"control.labelClass\"\n [ngStyle]=\"control.labelStyle\"\n >\n {{ control.label }}\n </label>\n }\n\n @if (control.type === \"input\") {\n <input\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n type=\"text\"\n />\n }\n @if (control.type === \"select\") {\n <select [formControlName]=\"control.name\" [id]=\"control.name\">\n @for (option of control.options; track $index) {\n <option [value]=\"option\">{{ option }}</option>\n }\n </select>\n }\n @if (control.type === \"textarea\") {\n <textarea\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n ></textarea>\n }\n @if (control.type === \"checkbox\") {\n <input\n type=\"checkbox\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n />\n }\n @if (control.type === \"radio\") {\n @for (option of control.options ?? []; track $index) {\n <div>\n <input\n type=\"radio\"\n [formControlName]=\"control.name\"\n [id]=\"control.name + '-' + option\"\n [value]=\"option\"\n />\n <label [for]=\"control.name + '-' + option\">{{ option }}</label>\n </div>\n }\n }\n\n <validation-messages\n [control]=\"form.get(control.name)\"\n [controlName]=\"control.name\"\n [config]=\"control\"\n ></validation-messages>\n </section>\n }\n }\n }\n <button type=\"submit\" [disabled]=\"form.invalid\">Submit</button>\n</form>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: ValidationMessagesComponent, selector: "validation-messages", inputs: ["control", "controlName", "config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
71
+ export class DefaultFormsComponent extends BaseFormsComponent {
72
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultFormsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
73
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DefaultFormsComponent, isStandalone: true, selector: "default-forms", usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\" [attr.name]=\"formName()\" (ngSubmit)=\"onSubmit()\">\n @for (control of controls(); track $index) {\n @if (control.uiFramework === \"default\" || !control.uiFramework) {\n @if (form.get(control.name)) {\n <section [ngClass]=\"control.class\" [ngStyle]=\"control.style\">\n @if (control.label) {\n <label\n [attr.for]=\"control.name\"\n [ngClass]=\"control.labelClass\"\n [ngStyle]=\"control.labelStyle\"\n >\n {{ control.label }}\n </label>\n }\n\n @if (control.type === \"input\") {\n <input\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n type=\"text\"\n />\n }\n @if (control.type === \"select\") {\n <select [formControlName]=\"control.name\" [id]=\"control.name\">\n @for (option of control.options; track $index) {\n <option [value]=\"option\">{{ option }}</option>\n }\n </select>\n }\n @if (control.type === \"textarea\") {\n <textarea\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n ></textarea>\n }\n @if (control.type === \"checkbox\") {\n <input\n type=\"checkbox\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n />\n }\n @if (control.type === \"radio\") {\n @for (option of control.options ?? []; track $index) {\n <div>\n <input\n type=\"radio\"\n [formControlName]=\"control.name\"\n [id]=\"control.name + '-' + option\"\n [value]=\"option\"\n />\n <label [for]=\"control.name + '-' + option\">{{ option }}</label>\n </div>\n }\n }\n\n <validation-messages\n [control]=\"form.get(control.name)\"\n [controlName]=\"control.name\"\n [config]=\"control\"\n ></validation-messages>\n </section>\n }\n }\n }\n <button type=\"submit\" [disabled]=\"form.invalid\">Submit</button>\n</form>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: ValidationMessagesComponent, selector: "validation-messages", inputs: ["control", "controlName", "config"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
153
74
  }
154
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultFormsComponent, decorators: [{
155
76
  type: Component,
156
77
  args: [{ selector: 'default-forms', standalone: true, imports: [
78
+ BaseFormsComponent,
157
79
  ReactiveFormsModule,
158
80
  CommonModule,
159
81
  FormsModule,
160
82
  ValidationMessagesComponent,
161
83
  ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form [formGroup]=\"form\" [attr.name]=\"formName()\" (ngSubmit)=\"onSubmit()\">\n @for (control of controls(); track $index) {\n @if (control.uiFramework === \"default\" || !control.uiFramework) {\n @if (form.get(control.name)) {\n <section [ngClass]=\"control.class\" [ngStyle]=\"control.style\">\n @if (control.label) {\n <label\n [attr.for]=\"control.name\"\n [ngClass]=\"control.labelClass\"\n [ngStyle]=\"control.labelStyle\"\n >\n {{ control.label }}\n </label>\n }\n\n @if (control.type === \"input\") {\n <input\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n type=\"text\"\n />\n }\n @if (control.type === \"select\") {\n <select [formControlName]=\"control.name\" [id]=\"control.name\">\n @for (option of control.options; track $index) {\n <option [value]=\"option\">{{ option }}</option>\n }\n </select>\n }\n @if (control.type === \"textarea\") {\n <textarea\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n ></textarea>\n }\n @if (control.type === \"checkbox\") {\n <input\n type=\"checkbox\"\n [formControlName]=\"control.name\"\n [id]=\"control.name\"\n />\n }\n @if (control.type === \"radio\") {\n @for (option of control.options ?? []; track $index) {\n <div>\n <input\n type=\"radio\"\n [formControlName]=\"control.name\"\n [id]=\"control.name + '-' + option\"\n [value]=\"option\"\n />\n <label [for]=\"control.name + '-' + option\">{{ option }}</label>\n </div>\n }\n }\n\n <validation-messages\n [control]=\"form.get(control.name)\"\n [controlName]=\"control.name\"\n [config]=\"control\"\n ></validation-messages>\n </section>\n }\n }\n }\n <button type=\"submit\" [disabled]=\"form.invalid\">Submit</button>\n</form>\n" }]
162
- }], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i0.ChangeDetectorRef }] });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1mb3Jtcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uZ0Zvcm0vc3JjL2FwcC9kZWZhdWx0LWZvcm1zL2RlZmF1bHQtZm9ybXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbmdGb3JtL3NyYy9hcHAvZGVmYXVsdC1mb3Jtcy9kZWZhdWx0LWZvcm1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRHO0FBQ0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixXQUFXLEVBSVgsVUFBVSxHQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFbkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQWV2QyxNQUFNLE9BQU8scUJBQXFCO0lBU3RCO0lBQ0E7SUFUVixRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3BDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUF1QixDQUFDO0lBQ2pELFVBQVUsR0FBRyxNQUFNLEVBQXVCLENBQUM7SUFFM0MsSUFBSSxDQUFhO0lBQ1QsWUFBWSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRTNELFlBQ1UsRUFBZSxFQUNmLEdBQXNCO1FBRHRCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUM3QixDQUFDO0lBRUosUUFBUTtR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QUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8sdUJBQXVCLENBQUMsS0FBVTtRQUN4QyxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUVuQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQzt3R0F6RlUscUJBQXFCOzRGQUFyQixxQkFBcUIsNFhDakdsQyx5eUVBbUVBLHlERHFCSSxtQkFBbUIsMnVEQUNuQixZQUFZLGlOQUNaLFdBQVcsK0JBQ1gsMkJBQTJCOzs0RkFNbEIscUJBQXFCO2tCQWJqQyxTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1A7d0JBQ1AsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsMkJBQTJCO3FCQUM1QixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGNvbXBvbmVudCBEZWZhdWx0Rm9ybXNDb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvblxuICogVGhlIGBEZWZhdWx0Rm9ybXNDb21wb25lbnRgIGlzIGFuIEFuZ3VsYXIgc3RhbmRhbG9uZSBjb21wb25lbnQgdGhhdCBwcm92aWRlcyBhIGR5bmFtaWMgZm9ybSBnZW5lcmF0aW9uXG4gKiBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbi4gSXQgdXNlcyByZWFjdGl2ZSBmb3JtcyB0byBoYW5kbGUgZm9ybSBjb250cm9scyBhbmQgdGhlaXIgdmFsaWRhdGlvbnMuXG4gKiBUaGUgY29tcG9uZW50IGlzIGRlc2lnbmVkIHRvIGJlIGhpZ2hseSBjb25maWd1cmFibGUgYW5kIHN1cHBvcnRzIHZhcmlvdXMgdHlwZXMgb2YgZm9ybSB2YWxpZGF0b3JzLlxuICpcbiAqIEBzZWxlY3RvciBkZWZhdWx0LWZvcm1zXG4gKiBAc3RhbmRhbG9uZSB0cnVlXG4gKiBAaW1wb3J0c1xuICogLSBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gKiAtIENvbW1vbk1vZHVsZVxuICogLSBGb3Jtc01vZHVsZVxuICogLSBWYWxpZGF0aW9uTWVzc2FnZXNDb21wb25lbnRcbiAqIEB0ZW1wbGF0ZVVybCAuL2RlZmF1bHQtZm9ybXMuY29tcG9uZW50Lmh0bWxcbiAqIEBzdHlsZVVybCAuL2RlZmF1bHQtZm9ybXMuY29tcG9uZW50LmNzc1xuICogQGNoYW5nZURldGVjdGlvbiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbiAqXG4gKiBAaW5wdXRcbiAqIC0gYGZvcm1OYW1lOiBzdHJpbmdgIC0gVGhlIG5hbWUgb2YgdGhlIGZvcm0uXG4gKiAtIGBjb250cm9sczogRm9ybUNvbnRyb2xDb25maWdbXWAgLSBBbiBhcnJheSBvZiBmb3JtIGNvbnRyb2wgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQG91dHB1dFxuICogLSBgZm9ybVN1Ym1pdDogRXZlbnRFbWl0dGVyPFJlY29yZDxzdHJpbmcsIGFueT4+YCAtIEVtaXRzIHRoZSBmb3JtIHZhbHVlIHdoZW4gdGhlIGZvcm0gaXMgc3VibWl0dGVkLlxuICpcbiAqIEBjbGFzcyBEZWZhdWx0Rm9ybXNDb21wb25lbnRcbiAqIEBpbXBsZW1lbnRzIE9uSW5pdFxuICpcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBmb3JtTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBmb3JtLlxuICogQHByb3BlcnR5IHtGb3JtQ29udHJvbENvbmZpZ1tdfSBjb250cm9scyAtIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgZm9ybSBjb250cm9scy5cbiAqIEBwcm9wZXJ0eSB7RXZlbnRFbWl0dGVyPFJlY29yZDxzdHJpbmcsIGFueT4+fSBmb3JtU3VibWl0IC0gRXZlbnQgZW1pdHRlciBmb3IgZm9ybSBzdWJtaXNzaW9uLlxuICogQHByb3BlcnR5IHtGb3JtR3JvdXB9IGZvcm0gLSBUaGUgcmVhY3RpdmUgZm9ybSBncm91cCBpbnN0YW5jZS5cbiAqIEBwcm9wZXJ0eSB7QmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+fSBmb3JtQ2hhbmdlcyQgLSBBIHN1YmplY3QgdG8gdHJhY2sgZm9ybSBjaGFuZ2VzLlxuICpcbiAqIEBjb25zdHJ1Y3RvclxuICogQHBhcmFtIHtGb3JtQnVpbGRlcn0gZmIgLSBBbmd1bGFyJ3MgRm9ybUJ1aWxkZXIgc2VydmljZSB0byBjcmVhdGUgZm9ybSBjb250cm9scy5cbiAqIEBwYXJhbSB7Q2hhbmdlRGV0ZWN0b3JSZWZ9IGNkciAtIEFuZ3VsYXIncyBDaGFuZ2VEZXRlY3RvclJlZiBzZXJ2aWNlIHRvIG1hbnVhbGx5IHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbi5cbiAqXG4gKiBAbWV0aG9kIG5nT25Jbml0XG4gKiBAZGVzY3JpcHRpb24gTGlmZWN5Y2xlIGhvb2sgdGhhdCBpcyBjYWxsZWQgYWZ0ZXIgdGhlIGNvbXBvbmVudCdzIHZpZXcgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuIEl0IGluaXRpYWxpemVzIHRoZSBmb3JtLlxuICpcbiAqIEBtZXRob2QgaW5pdGlhbGl6ZUZvcm1cbiAqIEBkZXNjcmlwdGlvbiBJbml0aWFsaXplcyB0aGUgZm9ybSBieSBjcmVhdGluZyBmb3JtIGNvbnRyb2xzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uIGFuZCBzZXRzIHVwIHZhbHVlIGNoYW5nZSBzdWJzY3JpcHRpb25zLlxuICpcbiAqIEBtZXRob2QgZ2V0VmFsaWRhdG9yc1xuICogQHBhcmFtIHtGb3JtQ29udHJvbENvbmZpZ30gY29udHJvbCAtIFRoZSBjb25maWd1cmF0aW9uIGZvciBhIGZvcm0gY29udHJvbC5cbiAqIEByZXR1cm5zIHtWYWxpZGF0b3JGbltdfSBBbiBhcnJheSBvZiB2YWxpZGF0b3JzIGZvciB0aGUgZm9ybSBjb250cm9sLlxuICogQGRlc2NyaXB0aW9uIEdlbmVyYXRlcyBhbiBhcnJheSBvZiB2YWxpZGF0b3JzIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb250cm9sIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogQG1ldGhvZCB1cGRhdGVWYWxpZGF0b3JzXG4gKiBAcGFyYW0ge0Fic3RyYWN0Q29udHJvbH0gY29udHJvbCAtIFRoZSBmb3JtIGNvbnRyb2wgdG8gdXBkYXRlIHZhbGlkYXRvcnMgZm9yLlxuICogQHBhcmFtIHthbnl9IHZhbHVlIC0gVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGZvcm0gY29udHJvbC5cbiAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIHRoZSB2YWxpZGF0b3JzIGZvciBhIGZvcm0gY29udHJvbCBiYXNlZCBvbiBpdHMgY3VycmVudCB2YWx1ZS5cbiAqXG4gKiBAbWV0aG9kIHNob3VsZFJlcXVpcmVWYWxpZGF0aW9uXG4gKiBAcGFyYW0ge2FueX0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY2hlY2sgZm9yIHZhbGlkYXRpb24gcmVxdWlyZW1lbnQuXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciB0aGUgdmFsdWUgcmVxdWlyZXMgdmFsaWRhdGlvbi5cbiAqIEBkZXNjcmlwdGlvbiBEZXRlcm1pbmVzIGlmIGEgdmFsdWUgc2hvdWxkIHJlcXVpcmUgdmFsaWRhdGlvbi5cbiAqXG4gKiBAbWV0aG9kIG9uU3VibWl0XG4gKiBAZGVzY3JpcHRpb24gSGFuZGxlcyB0aGUgZm9ybSBzdWJtaXNzaW9uLiBNYXJrcyB0aGUgZm9ybSBhcyB0b3VjaGVkIGFuZCBkaXJ0eSwgdmFsaWRhdGVzIHRoZSBmb3JtLCBlbWl0cyB0aGUgZm9ybSB2YWx1ZSBpZiB2YWxpZCwgYW5kIHJlc2V0cyB0aGUgZm9ybS5cbiAqL1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgRm9ybXNNb2R1bGUsXG4gIEZvcm1Hcm91cCxcbiAgRm9ybUJ1aWxkZXIsXG4gIFZhbGlkYXRvckZuLFxuICBWYWxpZGF0b3JzLFxuICBBYnN0cmFjdENvbnRyb2wsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlc0NvbXBvbmVudCB9IGZyb20gJy4uL3ZhbGlkYXRpb24tbWVzc2FnZXMvdmFsaWRhdGlvbi1tZXNzYWdlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2xDb25maWcgfSBmcm9tICcuLi9mb3JtQ29udHJvbENvbmZpZyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVmYXVsdC1mb3JtcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBWYWxpZGF0aW9uTWVzc2FnZXNDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LWZvcm1zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RlZmF1bHQtZm9ybXMuY29tcG9uZW50LmNzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEZWZhdWx0Rm9ybXNDb21wb25lbnQge1xuICBmb3JtTmFtZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgY29udHJvbHMgPSBpbnB1dC5yZXF1aXJlZDxGb3JtQ29udHJvbENvbmZpZ1tdPigpO1xuICBmb3JtU3VibWl0ID0gb3V0cHV0PFJlY29yZDxzdHJpbmcsIGFueT4+KCk7XG5cbiAgZm9ybSE6IEZvcm1Hcm91cDtcbiAgcHJpdmF0ZSBmb3JtQ2hhbmdlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVGb3JtKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVGb3JtKCk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1Db250cm9sczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gICAgdGhpcy5jb250cm9scygpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgIGZvcm1Db250cm9sc1tjb250cm9sLm5hbWVdID0gW1xuICAgICAgICBjb250cm9sLnZhbHVlID8/ICcnLFxuICAgICAgICB0aGlzLmdldFZhbGlkYXRvcnMoY29udHJvbCksXG4gICAgICBdO1xuICAgIH0pO1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cChmb3JtQ29udHJvbHMpO1xuXG4gICAgdGhpcy5jb250cm9scygpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtLmdldChjb250cm9sLm5hbWUpO1xuICAgICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICAgIGZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0b3JzKGZvcm1Db250cm9sLCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5mb3JtQ2hhbmdlcyQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsaWRhdG9ycyhjb250cm9sOiBGb3JtQ29udHJvbENvbmZpZyk6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcblxuICAgIGlmIChjb250cm9sLnZhbGlkYXRvcnMpIHtcbiAgICAgIGNvbnRyb2wudmFsaWRhdG9ycy5mb3JFYWNoKCh2YWxpZGF0b3IpID0+IHtcbiAgICAgICAgaWYgKHZhbGlkYXRvci5yZXF1aXJlZCkgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICBpZiAodmFsaWRhdG9yLm1pbmxlbmd0aClcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgodmFsaWRhdG9yLm1pbmxlbmd0aCkpO1xuICAgICAgICBpZiAodmFsaWRhdG9yLm1heGxlbmd0aClcbiAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodmFsaWRhdG9yLm1heGxlbmd0aCkpO1xuICAgICAgICBpZiAodmFsaWRhdG9yLnBhdHRlcm4pXG4gICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih2YWxpZGF0b3IucGF0dGVybikpO1xuICAgICAgICBpZiAodmFsaWRhdG9yLmVtYWlsKSB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5lbWFpbCk7XG4gICAgICAgIGlmICh2YWxpZGF0b3IuY3VzdG9tKSB2YWxpZGF0b3JzLnB1c2godmFsaWRhdG9yLmN1c3RvbSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmFsaWRhdG9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG91bGRSZXF1aXJlVmFsaWRhdGlvbih2YWx1ZSkpIHtcbiAgICAgIGNvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udHJvbC5yZW1vdmVWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cblxuICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMuZm9ybUNoYW5nZXMkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFJlcXVpcmVWYWxpZGF0aW9uKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09ICcnO1xuICB9XG5cbiAgb25TdWJtaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmZvcm0ubWFya0FzRGlydHkoKTtcbiAgICB0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuXG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5mb3JtU3VibWl0LmVtaXQodGhpcy5mb3JtLnZhbHVlKTtcbiAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGb3JtIEludmFsaWQnKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm1DaGFuZ2VzJC5uZXh0KHRydWUpO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBbYXR0ci5uYW1lXT1cImZvcm1OYW1lKClcIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiPlxuICBAZm9yIChjb250cm9sIG9mIGNvbnRyb2xzKCk7IHRyYWNrICRpbmRleCkge1xuICAgIEBpZiAoY29udHJvbC51aUZyYW1ld29yayA9PT0gXCJkZWZhdWx0XCIgfHwgIWNvbnRyb2wudWlGcmFtZXdvcmspIHtcbiAgICAgIEBpZiAoZm9ybS5nZXQoY29udHJvbC5uYW1lKSkge1xuICAgICAgICA8c2VjdGlvbiBbbmdDbGFzc109XCJjb250cm9sLmNsYXNzXCIgW25nU3R5bGVdPVwiY29udHJvbC5zdHlsZVwiPlxuICAgICAgICAgIEBpZiAoY29udHJvbC5sYWJlbCkge1xuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgIFthdHRyLmZvcl09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJjb250cm9sLmxhYmVsQ2xhc3NcIlxuICAgICAgICAgICAgICBbbmdTdHlsZV09XCJjb250cm9sLmxhYmVsU3R5bGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBjb250cm9sLmxhYmVsIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAoY29udHJvbC50eXBlID09PSBcImlucHV0XCIpIHtcbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgIFtpZF09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGNvbnRyb2wudHlwZSA9PT0gXCJzZWxlY3RcIikge1xuICAgICAgICAgICAgPHNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiIFtpZF09XCJjb250cm9sLm5hbWVcIj5cbiAgICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIGNvbnRyb2wub3B0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwib3B0aW9uXCI+e3sgb3B0aW9uIH19PC9vcHRpb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGNvbnRyb2wudHlwZSA9PT0gXCJ0ZXh0YXJlYVwiKSB7XG4gICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICBbaWRdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKGNvbnRyb2wudHlwZSA9PT0gXCJjaGVja2JveFwiKSB7XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICBbaWRdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY29udHJvbC50eXBlID09PSBcInJhZGlvXCIpIHtcbiAgICAgICAgICAgIEBmb3IgKG9wdGlvbiBvZiBjb250cm9sLm9wdGlvbnMgPz8gW107IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgICAgIFtpZF09XCJjb250cm9sLm5hbWUgKyAnLScgKyBvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJjb250cm9sLm5hbWUgKyAnLScgKyBvcHRpb25cIj57eyBvcHRpb24gfX08L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8dmFsaWRhdGlvbi1tZXNzYWdlc1xuICAgICAgICAgICAgW2NvbnRyb2xdPVwiZm9ybS5nZXQoY29udHJvbC5uYW1lKVwiXG4gICAgICAgICAgICBbY29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgIFtjb25maWddPVwiY29udHJvbFwiXG4gICAgICAgICAgPjwvdmFsaWRhdGlvbi1tZXNzYWdlcz5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuICAgIH1cbiAgfVxuICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCI+U3VibWl0PC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
84
+ }] });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1mb3Jtcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uZ0Zvcm0vc3JjL2FwcC9kZWZhdWx0LWZvcm1zL2RlZmF1bHQtZm9ybXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbmdGb3JtL3NyYy9hcHAvZGVmYXVsdC1mb3Jtcy9kZWZhdWx0LWZvcm1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkRHO0FBQ0gsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBZXZELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFBa0I7d0dBQWhELHFCQUFxQjs0RkFBckIscUJBQXFCLGdHQ2pGbEMseXlFQW1FQSwyQ0RNSSxtQkFBbUIsMnVEQUNuQixZQUFZLGlOQUNaLFdBQVcsK0JBQ1gsMkJBQTJCOzs0RkFLbEIscUJBQXFCO2tCQWJqQyxTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1A7d0JBQ1Asa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCwyQkFBMkI7cUJBQzVCLG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAY29tcG9uZW50IERlZmF1bHRGb3Jtc0NvbXBvbmVudFxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgYERlZmF1bHRGb3Jtc0NvbXBvbmVudGAgaXMgYW4gQW5ndWxhciBzdGFuZGFsb25lIGNvbXBvbmVudCB0aGF0IHByb3ZpZGVzIGEgZHluYW1pYyBmb3JtIGdlbmVyYXRpb25cbiAqIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uLiBJdCB1c2VzIHJlYWN0aXZlIGZvcm1zIHRvIGhhbmRsZSBmb3JtIGNvbnRyb2xzIGFuZCB0aGVpciB2YWxpZGF0aW9ucy5cbiAqIFRoZSBjb21wb25lbnQgaXMgZGVzaWduZWQgdG8gYmUgaGlnaGx5IGNvbmZpZ3VyYWJsZSBhbmQgc3VwcG9ydHMgdmFyaW91cyB0eXBlcyBvZiBmb3JtIHZhbGlkYXRvcnMuXG4gKlxuICogQHNlbGVjdG9yIGRlZmF1bHQtZm9ybXNcbiAqIEBzdGFuZGFsb25lIHRydWVcbiAqIEBpbXBvcnRzXG4gKiAtIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAqIC0gQ29tbW9uTW9kdWxlXG4gKiAtIEZvcm1zTW9kdWxlXG4gKiAtIFZhbGlkYXRpb25NZXNzYWdlc0NvbXBvbmVudFxuICogQHRlbXBsYXRlVXJsIC4vZGVmYXVsdC1mb3Jtcy5jb21wb25lbnQuaHRtbFxuICogQHN0eWxlVXJsIC4vZGVmYXVsdC1mb3Jtcy5jb21wb25lbnQuY3NzXG4gKiBAY2hhbmdlRGV0ZWN0aW9uIENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxuICpcbiAqIEBpbnB1dFxuICogLSBgZm9ybU5hbWU6IHN0cmluZ2AgLSBUaGUgbmFtZSBvZiB0aGUgZm9ybS5cbiAqIC0gYGNvbnRyb2xzOiBGb3JtQ29udHJvbENvbmZpZ1tdYCAtIEFuIGFycmF5IG9mIGZvcm0gY29udHJvbCBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAb3V0cHV0XG4gKiAtIGBmb3JtU3VibWl0OiBFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj5gIC0gRW1pdHMgdGhlIGZvcm0gdmFsdWUgd2hlbiB0aGUgZm9ybSBpcyBzdWJtaXR0ZWQuXG4gKlxuICogQGNsYXNzIERlZmF1bHRGb3Jtc0NvbXBvbmVudFxuICogQGltcGxlbWVudHMgT25Jbml0XG4gKlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGZvcm1OYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGZvcm0uXG4gKiBAcHJvcGVydHkge0Zvcm1Db250cm9sQ29uZmlnW119IGNvbnRyb2xzIC0gVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBmb3JtIGNvbnRyb2xzLlxuICogQHByb3BlcnR5IHtFdmVudEVtaXR0ZXI8UmVjb3JkPHN0cmluZywgYW55Pj59IGZvcm1TdWJtaXQgLSBFdmVudCBlbWl0dGVyIGZvciBmb3JtIHN1Ym1pc3Npb24uXG4gKiBAcHJvcGVydHkge0Zvcm1Hcm91cH0gZm9ybSAtIFRoZSByZWFjdGl2ZSBmb3JtIGdyb3VwIGluc3RhbmNlLlxuICogQHByb3BlcnR5IHtCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj59IGZvcm1DaGFuZ2VzJCAtIEEgc3ViamVjdCB0byB0cmFjayBmb3JtIGNoYW5nZXMuXG4gKlxuICogQGNvbnN0cnVjdG9yXG4gKiBAcGFyYW0ge0Zvcm1CdWlsZGVyfSBmYiAtIEFuZ3VsYXIncyBGb3JtQnVpbGRlciBzZXJ2aWNlIHRvIGNyZWF0ZSBmb3JtIGNvbnRyb2xzLlxuICogQHBhcmFtIHtDaGFuZ2VEZXRlY3RvclJlZn0gY2RyIC0gQW5ndWxhcidzIENoYW5nZURldGVjdG9yUmVmIHNlcnZpY2UgdG8gbWFudWFsbHkgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uLlxuICpcbiAqIEBtZXRob2QgbmdPbkluaXRcbiAqIEBkZXNjcmlwdGlvbiBMaWZlY3ljbGUgaG9vayB0aGF0IGlzIGNhbGxlZCBhZnRlciB0aGUgY29tcG9uZW50J3MgdmlldyBoYXMgYmVlbiBpbml0aWFsaXplZC4gSXQgaW5pdGlhbGl6ZXMgdGhlIGZvcm0uXG4gKlxuICogQG1ldGhvZCBpbml0aWFsaXplRm9ybVxuICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIHRoZSBmb3JtIGJ5IGNyZWF0aW5nIGZvcm0gY29udHJvbHMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb24gYW5kIHNldHMgdXAgdmFsdWUgY2hhbmdlIHN1YnNjcmlwdGlvbnMuXG4gKlxuICogQG1ldGhvZCBnZXRWYWxpZGF0b3JzXG4gKiBAcGFyYW0ge0Zvcm1Db250cm9sQ29uZmlnfSBjb250cm9sIC0gVGhlIGNvbmZpZ3VyYXRpb24gZm9yIGEgZm9ybSBjb250cm9sLlxuICogQHJldHVybnMge1ZhbGlkYXRvckZuW119IEFuIGFycmF5IG9mIHZhbGlkYXRvcnMgZm9yIHRoZSBmb3JtIGNvbnRyb2wuXG4gKiBAZGVzY3JpcHRpb24gR2VuZXJhdGVzIGFuIGFycmF5IG9mIHZhbGlkYXRvcnMgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGNvbnRyb2wgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBAbWV0aG9kIHVwZGF0ZVZhbGlkYXRvcnNcbiAqIEBwYXJhbSB7QWJzdHJhY3RDb250cm9sfSBjb250cm9sIC0gVGhlIGZvcm0gY29udHJvbCB0byB1cGRhdGUgdmFsaWRhdG9ycyBmb3IuXG4gKiBAcGFyYW0ge2FueX0gdmFsdWUgLSBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZm9ybSBjb250cm9sLlxuICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgdGhlIHZhbGlkYXRvcnMgZm9yIGEgZm9ybSBjb250cm9sIGJhc2VkIG9uIGl0cyBjdXJyZW50IHZhbHVlLlxuICpcbiAqIEBtZXRob2Qgc2hvdWxkUmVxdWlyZVZhbGlkYXRpb25cbiAqIEBwYXJhbSB7YW55fSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjayBmb3IgdmFsaWRhdGlvbiByZXF1aXJlbWVudC5cbiAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHRoZSB2YWx1ZSByZXF1aXJlcyB2YWxpZGF0aW9uLlxuICogQGRlc2NyaXB0aW9uIERldGVybWluZXMgaWYgYSB2YWx1ZSBzaG91bGQgcmVxdWlyZSB2YWxpZGF0aW9uLlxuICpcbiAqIEBtZXRob2Qgb25TdWJtaXRcbiAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIHRoZSBmb3JtIHN1Ym1pc3Npb24uIE1hcmtzIHRoZSBmb3JtIGFzIHRvdWNoZWQgYW5kIGRpcnR5LCB2YWxpZGF0ZXMgdGhlIGZvcm0sIGVtaXRzIHRoZSBmb3JtIHZhbHVlIGlmIHZhbGlkLCBhbmQgcmVzZXRzIHRoZSBmb3JtLlxuICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZXNDb21wb25lbnQgfSBmcm9tICcuLi92YWxpZGF0aW9uLW1lc3NhZ2VzL3ZhbGlkYXRpb24tbWVzc2FnZXMuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VGb3Jtc0NvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVmYXVsdC1mb3JtcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBCYXNlRm9ybXNDb21wb25lbnQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VzQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1mb3Jtcy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEZWZhdWx0Rm9ybXNDb21wb25lbnQgZXh0ZW5kcyBCYXNlRm9ybXNDb21wb25lbnQge31cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIFthdHRyLm5hbWVdPVwiZm9ybU5hbWUoKVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XG4gIEBmb3IgKGNvbnRyb2wgb2YgY29udHJvbHMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgQGlmIChjb250cm9sLnVpRnJhbWV3b3JrID09PSBcImRlZmF1bHRcIiB8fCAhY29udHJvbC51aUZyYW1ld29yaykge1xuICAgICAgQGlmIChmb3JtLmdldChjb250cm9sLm5hbWUpKSB7XG4gICAgICAgIDxzZWN0aW9uIFtuZ0NsYXNzXT1cImNvbnRyb2wuY2xhc3NcIiBbbmdTdHlsZV09XCJjb250cm9sLnN0eWxlXCI+XG4gICAgICAgICAgQGlmIChjb250cm9sLmxhYmVsKSB7XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgW2F0dHIuZm9yXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNvbnRyb2wubGFiZWxDbGFzc1wiXG4gICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImNvbnRyb2wubGFiZWxTdHlsZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGNvbnRyb2wubGFiZWwgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChjb250cm9sLnR5cGUgPT09IFwiaW5wdXRcIikge1xuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCJcbiAgICAgICAgICAgICAgW2lkXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY29udHJvbC50eXBlID09PSBcInNlbGVjdFwiKSB7XG4gICAgICAgICAgICA8c2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbC5uYW1lXCIgW2lkXT1cImNvbnRyb2wubmFtZVwiPlxuICAgICAgICAgICAgICBAZm9yIChvcHRpb24gb2YgY29udHJvbC5vcHRpb25zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJvcHRpb25cIj57eyBvcHRpb24gfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY29udHJvbC50eXBlID09PSBcInRleHRhcmVhXCIpIHtcbiAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgIFtpZF09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY29udHJvbC50eXBlID09PSBcImNoZWNrYm94XCIpIHtcbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2wubmFtZVwiXG4gICAgICAgICAgICAgIFtpZF09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChjb250cm9sLnR5cGUgPT09IFwicmFkaW9cIikge1xuICAgICAgICAgICAgQGZvciAob3B0aW9uIG9mIGNvbnRyb2wub3B0aW9ucyA/PyBbXTsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICB0eXBlPVwicmFkaW9cIlxuICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgW2lkXT1cImNvbnRyb2wubmFtZSArICctJyArIG9wdGlvblwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImNvbnRyb2wubmFtZSArICctJyArIG9wdGlvblwiPnt7IG9wdGlvbiB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIDx2YWxpZGF0aW9uLW1lc3NhZ2VzXG4gICAgICAgICAgICBbY29udHJvbF09XCJmb3JtLmdldChjb250cm9sLm5hbWUpXCJcbiAgICAgICAgICAgIFtjb250cm9sTmFtZV09XCJjb250cm9sLm5hbWVcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb250cm9sXCJcbiAgICAgICAgICA+PC92YWxpZGF0aW9uLW1lc3NhZ2VzPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG4gICAgfVxuICB9XG4gIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIj5TdWJtaXQ8L2J1dHRvbj5cbjwvZm9ybT5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUNvbnRyb2xDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9uZ0Zvcm0vc3JjL2FwcC9mb3JtQ29udHJvbENvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGEgZm9ybSBjb250cm9sLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1Db250cm9sQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmb3JtIGNvbnRyb2wuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBmb3JtIGNvbnRyb2wuIFBvc3NpYmxlIHZhbHVlcyBpbmNsdWRlICdpbnB1dCcsICdzZWxlY3QnLCAndGV4dGFyZWEnLCAnY2hlY2tib3gnLCAncmFkaW8nLCAnZmlsZScsICdjYWxlbmRhcicsIGV0Yy5cbiAgICovXG4gIHR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgJ3NlbGVjdCcsICdyYWRpbycsICdkcm9wZG93bicgY29udHJvbHMuIEVhY2ggb3B0aW9uIGNhbiBiZSBhbiBvYmplY3Qgd2l0aCBhIGxhYmVsIGFuZCB2YWx1ZSBvciBhIHN0cmluZy5cbiAgICovXG4gIG9wdGlvbnM/OiBBcnJheTx7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfSB8IHN0cmluZz47XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRvcnMgZm9yIHRoZSBmb3JtIGNvbnRyb2wuIEluY2x1ZGVzIHN0YW5kYXJkIHZhbGlkYXRvcnMgbGlrZSByZXF1aXJlZCwgbWlubGVuZ3RoLCBtYXhsZW5ndGgsIHBhdHRlcm4sIGVtYWlsLCBhbmQgY3VzdG9tIHZhbGlkYXRvcnMuXG4gICAqL1xuICB2YWxpZGF0b3JzPzoge1xuICAgIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgICBtaW5sZW5ndGg/OiBudW1iZXI7XG4gICAgbWF4bGVuZ3RoPzogbnVtYmVyO1xuICAgIHBhdHRlcm4/OiBzdHJpbmc7XG4gICAgZW1haWw/OiBib29sZWFuO1xuICAgIGN1c3RvbT86IFZhbGlkYXRvckZuO1xuICB9W107XG5cbiAgLyoqXG4gICAqIENTUyBjbGFzc2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIGNsYXNzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbmxpbmUgc3R5bGVzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIHN0eWxlPzogYW55O1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IHZhbHVlIGZvciB0aGUgZm9ybSBjb250cm9sLlxuICAgKi9cbiAgdmFsdWU/OiBhbnk7XG5cbiAgLyoqXG4gICAqIFVJIGZyYW1ld29yayB0byBiZSB1c2VkIGZvciB0aGUgZm9ybSBjb250cm9sLiBQb3NzaWJsZSB2YWx1ZXMgYXJlICdtYXRlcmlhbCcsICdwcmltZW5nJywgJ2RlZmF1bHQnLlxuICAgKi9cbiAgdWlGcmFtZXdvcms/OiAnbWF0ZXJpYWwnIHwgJ3ByaW1lbmcnIHwgJ2RlZmF1bHQnO1xuXG4gIC8qKlxuICAgKiBMYWJlbCBmb3IgdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvIHRoZSBsYWJlbCBvZiB0aGUgZm9ybSBjb250cm9sLlxuICAgKi9cbiAgbGFiZWxDbGFzcz86IHN0cmluZztcblxuICAvKipcbiAgICogSW5saW5lIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoZSBsYWJlbCBvZiB0aGUgZm9ybSBjb250cm9sLlxuICAgKi9cbiAgbGFiZWxTdHlsZT86IGFueTtcblxuICAvKipcbiAgICogTW9kZSBmb3IgZGF0ZSBwaWNrZXIgY29udHJvbHMuIFBvc3NpYmxlIHZhbHVlcyBhcmUgJ3NpbmdsZScgYW5kICdyYW5nZScuXG4gICAqL1xuICBkYXRlUGlja2VyTW9kZT86ICdzaW5nbGUnIHwgJ3JhbmdlJztcblxuICAvKipcbiAgICogUHJpbWVORy1zcGVjaWZpYyBwcm9wZXJ0aWVzIGZvciB0aGUgZm9ybSBjb250cm9sLlxuICAgKi9cbiAgcHJpbWVuZz86IHtcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIHNob3dDbGVhcj86IGJvb2xlYW47XG4gICAgbXVsdGlwbGU/OiBib29sZWFuO1xuICAgIG1heEZpbGVTaXplPzogbnVtYmVyO1xuICAgIGFjY2VwdD86IHN0cmluZztcbiAgICBzaG93V2Vlaz86IGJvb2xlYW47XG4gICAgbWluRGF0ZT86IERhdGU7XG4gICAgbWF4RGF0ZT86IERhdGU7XG4gICAgbW9kZT86ICdiYXNpYycgfCAnYWR2YW5jZWQnO1xuICAgIGN1cnJlbmN5Pzogc3RyaW5nO1xuICAgIGRlY2ltYWxTZXBhcmF0b3I/OiBzdHJpbmc7XG4gICAgc3RlcD86IG51bWJlcjtcbiAgICByYW5nZT86IGJvb2xlYW47XG4gICAgc2Nyb2xsSGVpZ2h0Pzogc3RyaW5nO1xuICAgIHNob3dUb2dnbGVBbGw/OiBib29sZWFuO1xuICAgIHNob3dCdXR0b25zPzogYm9vbGVhbjtcbiAgICBwYW5lbENsYXNzPzogc3RyaW5nO1xuICAgIGNob29zZUxhYmVsPzogc3RyaW5nO1xuICAgIGNsZWFyTGFiZWw/OiBzdHJpbmc7XG4gICAgdG9kYXlMYWJlbD86IHN0cmluZztcbiAgICB0aW1lT25seT86IGJvb2xlYW47XG4gICAgaG91ckZvcm1hdD86IHN0cmluZztcbiAgICBtaW51dGVGb3JtYXQ/OiBzdHJpbmc7XG4gICAgc2Vjb25kc0Zvcm1hdD86IHN0cmluZztcbiAgICBzaG93U2Vjb25kcz86IGJvb2xlYW47XG4gICAgc2hvd01pbGxpc2VjPzogYm9vbGVhbjtcbiAgICB0aW1lU2VwYXJhdG9yPzogc3RyaW5nO1xuICAgIHNob3dPbkZvY3VzPzogYm9vbGVhbjtcbiAgICBhcHBlbmRUbz86IHN0cmluZztcbiAgICBpbnB1dFN0eWxlPzogYW55O1xuICAgIGlucHV0U3R5bGVDbGFzcz86IHN0cmluZztcbiAgICB1cGxvYWRMYWJlbD86IHN0cmluZztcbiAgICBjYW5jZWxMYWJlbD86IHN0cmluZztcbiAgICBhdXRvPzogYm9vbGVhbjtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcbiAgICBjdXN0b21VcGxvYWQ/OiBzdHJpbmc7XG4gICAgc2hvd1VwbG9hZEJ1dHRvbj86IGJvb2xlYW47XG4gICAgc2hvd0NhbmNlbEJ1dHRvbj86IGJvb2xlYW47XG4gICAgc2hvd1VwbG9hZEljb24/OiBib29sZWFuO1xuICAgIHNob3dSZW1vdmVJY29uPzogYm9vbGVhbjtcbiAgICBzaG93UHJldmlldz86IGJvb2xlYW47XG4gICAgcHJldmlld1dpZHRoPzogbnVtYmVyO1xuICAgIGNob29zZU9wdGlvbnM/OiBhbnk7XG4gICAgc2hvd1RpbWU/OiBib29sZWFuO1xuICAgIHNob3dEYXRlPzogYm9vbGVhbjtcbiAgICBzaG93SWNvbj86IGJvb2xlYW47XG4gICAgaWNvblBvcz86ICdsZWZ0JyB8ICdyaWdodCc7XG4gIH07XG5cbiAgLyoqXG4gICAqIEFuZ3VsYXItc3BlY2lmaWMgcHJvcGVydGllcyBmb3IgdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIGFuZ3VsYXI/OiB7XG4gICAgcmVhZG9ubHk/OiBib29sZWFuO1xuICAgIGF1dG9jb21wbGV0ZT86ICdvbicgfCAnb2ZmJztcbiAgICBhdXRvZm9jdXM/OiBib29sZWFuO1xuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIG1hc2s/OiBzdHJpbmc7XG4gICAgdG9vbHRpcD86IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIHByZWZpeD86IHN0cmluZztcbiAgICBzdWZmaXg/OiBzdHJpbmc7XG4gICAgaGludD86IHN0cmluZztcbiAgICB0YWJJbmRleD86IG51bWJlcjtcbiAgICBjb2xvcj86IHN0cmluZztcbiAgICB0aGVtZT86ICdkYXJrJyB8ICdsaWdodCcgfCBzdHJpbmc7XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIGRlcGVuZGVudCBmaWVsZHMuIFNwZWNpZmllcyBmaWVsZHMgdGhhdCBkZXBlbmQgb24gdGhlIHZhbHVlIG9mIHRoaXMgZmllbGQgYW5kIHRoZSBjb25kaXRpb24gZm9yIHRoZWlyIGRlcGVuZGVuY3kuXG4gICAqL1xuICBkZXBlbmRlbnRGaWVsZHM/OiB7XG4gICAgZGVwZW5kc09uOiBzdHJpbmc7XG4gICAgY29uZGl0aW9uOiAodmFsdWU6IGFueSkgPT4gYm9vbGVhbjtcbiAgfVtdO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGZvcm0gY29udHJvbCBpcyByZXBlYXRhYmxlLlxuICAgKi9cbiAgcmVwZWF0YWJsZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGNvbmRpdGlvbmFsbHkgcmVuZGVyIHRoZSBmb3JtIGNvbnRyb2wgYmFzZWQgb24gdGhlIHZhbHVlcyBvZiBvdGhlciBjb250cm9scy5cbiAgICovXG4gIGNvbmRpdGlvbmFsUmVuZGVyPzogKHZhbHVlczogYW55KSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHcm91cCB0byB3aGljaCB0aGUgZm9ybSBjb250cm9sIGJlbG9uZ3MuXG4gICAqL1xuICBncm91cD86IHN0cmluZztcblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlcnMgZm9yIHZhcmlvdXMgZXZlbnRzIHJlbGF0ZWQgdG8gdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIGV2ZW50cz86IHtcbiAgICBvbkNoYW5nZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uRm9jdXM/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvbkJsdXI/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblNlbGVjdD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uVXBsb2FkPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25LZXlVcD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uS2V5RG93bj86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFzdGU/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvbkRvd25sb2FkPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25DbGVhcj86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUmVzZXQ/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblRvZ2dsZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uU2hvdz86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uSGlkZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uT3Blbj86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uQ2xvc2U/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsQ2xpY2s/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsU2hvdz86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxIaWRlPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbE9wZW4/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsQ2xvc2U/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsVG9nZ2xlPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbFNlbGVjdD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxVbnNlbGVjdD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxVbnNlbGVjdEFsbD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxSZW9yZGVyPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbFJlc2l6ZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxEcmFnU3RhcnQ/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsRHJhZ0VuZD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxEcmFnT3Zlcj86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxEcmFnTGVhdmU/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsRHJvcD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxTY3JvbGw/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsRmlsdGVyPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbFRvZ2dsZUFsbD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxTaG93QWxsPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbEhpZGVBbGw/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsT3BlbkFsbD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxDbG9zZUFsbD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUmVtb3ZlPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25FcnJvcj86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uQmVmb3JlVXBsb2FkPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25Qcm9ncmVzcz86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uU2xpZGVFbmQ/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgfTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybUNvbnRyb2xDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9uZ0Zvcm0vc3JjL2FwcC9mb3JtQ29udHJvbENvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuXG4vKipcbiAqIEludGVyZmFjZSByZXByZXNlbnRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGEgZm9ybSBjb250cm9sLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1Db250cm9sQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBmb3JtIGNvbnRyb2wuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBmb3JtIGNvbnRyb2wuIFBvc3NpYmxlIHZhbHVlcyBpbmNsdWRlICdpbnB1dCcsICdzZWxlY3QnLCAndGV4dGFyZWEnLCAnY2hlY2tib3gnLCAncmFkaW8nLCAnZmlsZScsICdjYWxlbmRhcicsIGV0Yy5cbiAgICovXG4gIHR5cGU6IHN0cmluZztcbiBcbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yICdzZWxlY3QnLCAncmFkaW8nLCAnZHJvcGRvd24nIGNvbnRyb2xzLiBFYWNoIG9wdGlvbiBjYW4gYmUgYW4gb2JqZWN0IHdpdGggYSBsYWJlbCBhbmQgdmFsdWUgb3IgYSBzdHJpbmcuXG4gICAqL1xuICBvcHRpb25zPzogQXJyYXk8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH0gfCBzdHJpbmc+O1xuXG4gIC8qKlxuICAgKiBWYWxpZGF0b3JzIGZvciB0aGUgZm9ybSBjb250cm9sLiBJbmNsdWRlcyBzdGFuZGFyZCB2YWxpZGF0b3JzIGxpa2UgcmVxdWlyZWQsIG1pbmxlbmd0aCwgbWF4bGVuZ3RoLCBwYXR0ZXJuLCBlbWFpbCwgYW5kIGN1c3RvbSB2YWxpZGF0b3JzLlxuICAgKi9cbiAgdmFsaWRhdG9ycz86IHtcbiAgICByZXF1aXJlZD86IGJvb2xlYW47XG4gICAgbWlubGVuZ3RoPzogbnVtYmVyO1xuICAgIG1heGxlbmd0aD86IG51bWJlcjtcbiAgICBwYXR0ZXJuPzogc3RyaW5nO1xuICAgIGVtYWlsPzogYm9vbGVhbjtcbiAgICBjdXN0b20/OiBWYWxpZGF0b3JGbjtcbiAgfVtdO1xuXG4gIC8qKlxuICAgKiBDU1MgY2xhc3NlcyB0byBiZSBhcHBsaWVkIHRvIHRoZSBmb3JtIGNvbnRyb2wuXG4gICAqL1xuICBjbGFzcz86IHN0cmluZztcblxuICAvKipcbiAgICogSW5saW5lIHN0eWxlcyB0byBiZSBhcHBsaWVkIHRvIHRoZSBmb3JtIGNvbnRyb2wuXG4gICAqL1xuICBzdHlsZT86IGFueTtcblxuICAvKipcbiAgICogRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIHZhbHVlPzogYW55O1xuXG4gIC8qKlxuICAgKiBVSSBmcmFtZXdvcmsgdG8gYmUgdXNlZCBmb3IgdGhlIGZvcm0gY29udHJvbC4gUG9zc2libGUgdmFsdWVzIGFyZSAnbWF0ZXJpYWwnLCAncHJpbWVuZycsICdkZWZhdWx0Jy5cbiAgICovXG4gIHVpRnJhbWV3b3JrPzogJ21hdGVyaWFsJyB8ICdwcmltZW5nJyB8ICdkZWZhdWx0JztcblxuICAvKipcbiAgICogTGFiZWwgZm9yIHRoZSBmb3JtIGNvbnRyb2wuXG4gICAqL1xuICBsYWJlbD86IHN0cmluZztcblxuICAvKipcbiAgICogQ1NTIGNsYXNzZXMgdG8gYmUgYXBwbGllZCB0byB0aGUgbGFiZWwgb2YgdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIGxhYmVsQ2xhc3M/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElubGluZSBzdHlsZXMgdG8gYmUgYXBwbGllZCB0byB0aGUgbGFiZWwgb2YgdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIGxhYmVsU3R5bGU/OiBhbnk7XG5cbiAgLyoqXG4gICAqIE1vZGUgZm9yIGRhdGUgcGlja2VyIGNvbnRyb2xzLiBQb3NzaWJsZSB2YWx1ZXMgYXJlICdzaW5nbGUnIGFuZCAncmFuZ2UnLlxuICAgKi9cbiAgZGF0ZVBpY2tlck1vZGU/OiAnc2luZ2xlJyB8ICdyYW5nZSc7XG5cbiAgLyoqXG4gICAqIFByaW1lTkctc3BlY2lmaWMgcHJvcGVydGllcyBmb3IgdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIHByaW1lbmc/OiB7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBzaG93Q2xlYXI/OiBib29sZWFuO1xuICAgIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgICBtYXhGaWxlU2l6ZT86IG51bWJlcjtcbiAgICBhY2NlcHQ/OiBzdHJpbmc7XG4gICAgc2hvd1dlZWs/OiBib29sZWFuO1xuICAgIG1pbkRhdGU/OiBEYXRlO1xuICAgIG1heERhdGU/OiBEYXRlO1xuICAgIG1vZGU/OiAnYmFzaWMnIHwgJ2FkdmFuY2VkJztcbiAgICBjdXJyZW5jeT86IHN0cmluZztcbiAgICBkZWNpbWFsU2VwYXJhdG9yPzogc3RyaW5nO1xuICAgIHN0ZXA/OiBudW1iZXI7XG4gICAgcmFuZ2U/OiBib29sZWFuO1xuICAgIHNjcm9sbEhlaWdodD86IHN0cmluZztcbiAgICBzaG93VG9nZ2xlQWxsPzogYm9vbGVhbjtcbiAgICBzaG93QnV0dG9ucz86IGJvb2xlYW47XG4gICAgcGFuZWxDbGFzcz86IHN0cmluZztcbiAgICBjaG9vc2VMYWJlbD86IHN0cmluZztcbiAgICBjbGVhckxhYmVsPzogc3RyaW5nO1xuICAgIHRvZGF5TGFiZWw/OiBzdHJpbmc7XG4gICAgdGltZU9ubHk/OiBib29sZWFuO1xuICAgIGhvdXJGb3JtYXQ/OiBzdHJpbmc7XG4gICAgbWludXRlRm9ybWF0Pzogc3RyaW5nO1xuICAgIHNlY29uZHNGb3JtYXQ/OiBzdHJpbmc7XG4gICAgc2hvd1NlY29uZHM/OiBib29sZWFuO1xuICAgIHNob3dNaWxsaXNlYz86IGJvb2xlYW47XG4gICAgdGltZVNlcGFyYXRvcj86IHN0cmluZztcbiAgICBzaG93T25Gb2N1cz86IGJvb2xlYW47XG4gICAgYXBwZW5kVG8/OiBzdHJpbmc7XG4gICAgaW5wdXRTdHlsZT86IGFueTtcbiAgICBpbnB1dFN0eWxlQ2xhc3M/OiBzdHJpbmc7XG4gICAgdXBsb2FkTGFiZWw/OiBzdHJpbmc7XG4gICAgY2FuY2VsTGFiZWw/OiBzdHJpbmc7XG4gICAgYXV0bz86IGJvb2xlYW47XG4gICAgdXJsPzogc3RyaW5nO1xuICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XG4gICAgY3VzdG9tVXBsb2FkPzogc3RyaW5nO1xuICAgIHNob3dVcGxvYWRCdXR0b24/OiBib29sZWFuO1xuICAgIHNob3dDYW5jZWxCdXR0b24/OiBib29sZWFuO1xuICAgIHNob3dVcGxvYWRJY29uPzogYm9vbGVhbjtcbiAgICBzaG93UmVtb3ZlSWNvbj86IGJvb2xlYW47XG4gICAgc2hvd1ByZXZpZXc/OiBib29sZWFuO1xuICAgIHByZXZpZXdXaWR0aD86IG51bWJlcjtcbiAgICBjaG9vc2VPcHRpb25zPzogYW55O1xuICAgIHNob3dUaW1lPzogYm9vbGVhbjtcbiAgICBzaG93RGF0ZT86IGJvb2xlYW47XG4gICAgc2hvd0ljb24/OiBib29sZWFuO1xuICAgIGljb25Qb3M/OiAnbGVmdCcgfCAncmlnaHQnO1xuICB9O1xuXG4gIC8qKlxuICAgKiBBbmd1bGFyLXNwZWNpZmljIHByb3BlcnRpZXMgZm9yIHRoZSBmb3JtIGNvbnRyb2wuXG4gICAqL1xuICBhbmd1bGFyPzoge1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgICBhdXRvY29tcGxldGU/OiAnb24nIHwgJ29mZic7XG4gICAgYXV0b2ZvY3VzPzogYm9vbGVhbjtcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBtYXNrPzogc3RyaW5nO1xuICAgIHRvb2x0aXA/OiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBwcmVmaXg/OiBzdHJpbmc7XG4gICAgc3VmZml4Pzogc3RyaW5nO1xuICAgIGhpbnQ/OiBzdHJpbmc7XG4gICAgdGFiSW5kZXg/OiBudW1iZXI7XG4gICAgY29sb3I/OiBzdHJpbmc7XG4gICAgdGhlbWU/OiAnZGFyaycgfCAnbGlnaHQnIHwgc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBkZXBlbmRlbnQgZmllbGRzLiBTcGVjaWZpZXMgZmllbGRzIHRoYXQgZGVwZW5kIG9uIHRoZSB2YWx1ZSBvZiB0aGlzIGZpZWxkIGFuZCB0aGUgY29uZGl0aW9uIGZvciB0aGVpciBkZXBlbmRlbmN5LlxuICAgKi9cbiAgZGVwZW5kZW50RmllbGRzPzoge1xuICAgIGRlcGVuZHNPbjogc3RyaW5nO1xuICAgIGNvbmRpdGlvbjogKHZhbHVlOiBhbnkpID0+IGJvb2xlYW47XG4gIH1bXTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBmb3JtIGNvbnRyb2wgaXMgcmVwZWF0YWJsZS5cbiAgICovXG4gIHJlcGVhdGFibGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBjb25kaXRpb25hbGx5IHJlbmRlciB0aGUgZm9ybSBjb250cm9sIGJhc2VkIG9uIHRoZSB2YWx1ZXMgb2Ygb3RoZXIgY29udHJvbHMuXG4gICAqL1xuICBjb25kaXRpb25hbFJlbmRlcj86ICh2YWx1ZXM6IGFueSkgPT4gYm9vbGVhbjtcblxuICAvKipcbiAgICogR3JvdXAgdG8gd2hpY2ggdGhlIGZvcm0gY29udHJvbCBiZWxvbmdzLlxuICAgKi9cbiAgZ3JvdXA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXJzIGZvciB2YXJpb3VzIGV2ZW50cyByZWxhdGVkIHRvIHRoZSBmb3JtIGNvbnRyb2wuXG4gICAqL1xuICBldmVudHM/OiB7XG4gICAgb25DaGFuZ2U/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvbkZvY3VzPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25CbHVyPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25TZWxlY3Q/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblVwbG9hZD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uS2V5VXA/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvbktleURvd24/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhc3RlPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25Eb3dubG9hZD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uQ2xlYXI/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblJlc2V0PzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25Ub2dnbGU/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblNob3c/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvbkhpZGU/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvbk9wZW4/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvbkNsb3NlPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbENsaWNrPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbFNob3c/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsSGlkZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxPcGVuPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbENsb3NlPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbFRvZ2dsZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxTZWxlY3Q/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsVW5zZWxlY3Q/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsVW5zZWxlY3RBbGw/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsUmVvcmRlcj86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxSZXNpemU/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsRHJhZ1N0YXJ0PzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbERyYWdFbmQ/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsRHJhZ092ZXI/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsRHJhZ0xlYXZlPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbERyb3A/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsU2Nyb2xsPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbEZpbHRlcj86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxUb2dnbGVBbGw/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsU2hvd0FsbD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUGFuZWxIaWRlQWxsPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gICAgb25QYW5lbE9wZW5BbGw/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblBhbmVsQ2xvc2VBbGw/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblJlbW92ZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uRXJyb3I/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvbkJlZm9yZVVwbG9hZD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICAgIG9uUHJvZ3Jlc3M/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgICBvblNsaWRlRW5kPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gIH07XG59XG4iXX0=