ngwr 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,8 @@
1
1
  export { BooleanInput } from './boolean-input';
2
2
  export { WrThemeColor } from './color';
3
+ export { WrInputAutocomplete } from './input-autocomplete-type';
4
+ export { WrInputModeType } from './input-mode-type';
5
+ export { WrInputType } from './input-type';
3
6
  export { OnChangeType } from './on-change-type';
4
7
  export { OnTouchedType } from './on-touched-type';
5
8
  export { SafeAny } from './safe-any';
@@ -0,0 +1 @@
1
+ export declare type WrInputAutocomplete = 'off' | 'name' | 'email' | 'username' | 'new-password' | 'current-password' | 'one-time-code' | 'organization-title' | 'organization' | 'street-address' | 'country' | 'country-name' | 'postal-code' | 'cc-name' | 'cc-given-name' | 'cc-additional-name' | 'cc-family-name' | 'cc-number' | 'cc-exp' | 'cc-exp-month' | 'cc-exp-year' | 'cc-csc' | 'cc-type' | 'transaction-currency' | 'transaction-amount' | 'language' | 'bday' | 'bday-day' | 'bday-month' | 'bday-year' | 'sex' | 'tel' | 'tel-extension' | 'url' | 'photo';
@@ -0,0 +1 @@
1
+ export declare type WrInputModeType = 'text' | 'numeric' | 'tel' | 'email' | 'url';
@@ -0,0 +1 @@
1
+ export declare type WrInputType = 'text' | 'number' | 'password' | 'email';
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvX2NvcmUvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJy4vYm9vbGVhbi1pbnB1dCc7XG5leHBvcnQgeyBXclRoZW1lQ29sb3IgfSBmcm9tICcuL2NvbG9yJztcbmV4cG9ydCB7IE9uQ2hhbmdlVHlwZSB9IGZyb20gJy4vb24tY2hhbmdlLXR5cGUnO1xuZXhwb3J0IHsgT25Ub3VjaGVkVHlwZSB9IGZyb20gJy4vb24tdG91Y2hlZC10eXBlJztcbmV4cG9ydCB7IFNhZmVBbnkgfSBmcm9tICcuL3NhZmUtYW55JztcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvX2NvcmUvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJy4vYm9vbGVhbi1pbnB1dCc7XG5leHBvcnQgeyBXclRoZW1lQ29sb3IgfSBmcm9tICcuL2NvbG9yJztcbmV4cG9ydCB7IFdySW5wdXRBdXRvY29tcGxldGUgfSBmcm9tICcuL2lucHV0LWF1dG9jb21wbGV0ZS10eXBlJztcbmV4cG9ydCB7IFdySW5wdXRNb2RlVHlwZSB9IGZyb20gJy4vaW5wdXQtbW9kZS10eXBlJztcbmV4cG9ydCB7IFdySW5wdXRUeXBlIH0gZnJvbSAnLi9pbnB1dC10eXBlJztcbmV4cG9ydCB7IE9uQ2hhbmdlVHlwZSB9IGZyb20gJy4vb24tY2hhbmdlLXR5cGUnO1xuZXhwb3J0IHsgT25Ub3VjaGVkVHlwZSB9IGZyb20gJy4vb24tdG91Y2hlZC10eXBlJztcbmV4cG9ydCB7IFNhZmVBbnkgfSBmcm9tICcuL3NhZmUtYW55JztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYXV0b2NvbXBsZXRlLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvX2NvcmUvdHlwZXMvaW5wdXQtYXV0b2NvbXBsZXRlLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFdySW5wdXRBdXRvY29tcGxldGUgPVxuICB8ICdvZmYnXG4gIHwgJ25hbWUnXG4gIHwgJ2VtYWlsJ1xuICB8ICd1c2VybmFtZSdcbiAgfCAnbmV3LXBhc3N3b3JkJ1xuICB8ICdjdXJyZW50LXBhc3N3b3JkJ1xuICB8ICdvbmUtdGltZS1jb2RlJ1xuICB8ICdvcmdhbml6YXRpb24tdGl0bGUnXG4gIHwgJ29yZ2FuaXphdGlvbidcbiAgfCAnc3RyZWV0LWFkZHJlc3MnXG4gIHwgJ2NvdW50cnknXG4gIHwgJ2NvdW50cnktbmFtZSdcbiAgfCAncG9zdGFsLWNvZGUnXG4gIHwgJ2NjLW5hbWUnXG4gIHwgJ2NjLWdpdmVuLW5hbWUnXG4gIHwgJ2NjLWFkZGl0aW9uYWwtbmFtZSdcbiAgfCAnY2MtZmFtaWx5LW5hbWUnXG4gIHwgJ2NjLW51bWJlcidcbiAgfCAnY2MtZXhwJ1xuICB8ICdjYy1leHAtbW9udGgnXG4gIHwgJ2NjLWV4cC15ZWFyJ1xuICB8ICdjYy1jc2MnXG4gIHwgJ2NjLXR5cGUnXG4gIHwgJ3RyYW5zYWN0aW9uLWN1cnJlbmN5J1xuICB8ICd0cmFuc2FjdGlvbi1hbW91bnQnXG4gIHwgJ2xhbmd1YWdlJ1xuICB8ICdiZGF5J1xuICB8ICdiZGF5LWRheSdcbiAgfCAnYmRheS1tb250aCdcbiAgfCAnYmRheS15ZWFyJ1xuICB8ICdzZXgnXG4gIHwgJ3RlbCdcbiAgfCAndGVsLWV4dGVuc2lvbidcbiAgfCAndXJsJ1xuICB8ICdwaG90byc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbW9kZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL19jb3JlL3R5cGVzL2lucHV0LW1vZGUtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgV3JJbnB1dE1vZGVUeXBlID0gJ3RleHQnIHwgJ251bWVyaWMnIHwgJ3RlbCcgfCAnZW1haWwnIHwgJ3VybCc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9fY29yZS90eXBlcy9pbnB1dC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBXcklucHV0VHlwZSA9ICd0ZXh0JyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJyB8ICdlbWFpbCc7XG4iXX0=
@@ -1,9 +1,10 @@
1
1
  import { __decorate } from "tslib";
2
+ import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
2
3
  import { ChangeDetectionStrategy, Component, forwardRef, HostBinding, Input, ViewChild, ViewEncapsulation } from '@angular/core';
3
- import { BaseComponent, InputBoolean } from '../_core';
4
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import { fromEvent } from 'rxjs';
6
6
  import { takeUntil } from 'rxjs/operators';
7
+ import { BaseComponent, InputBoolean } from '../_core';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@angular/cdk/a11y";
9
10
  import * as i2 from "@angular/common";
@@ -16,20 +17,86 @@ export class WrInputComponent extends BaseComponent {
16
17
  this.elRef = elRef;
17
18
  this.focusMonitor = focusMonitor;
18
19
  this.ngZone = ngZone;
19
- this.value = null;
20
- this.type = 'text';
21
- this.autocomplete = 'on';
22
- this.inputmode = 'text';
23
- this.disabled = false;
24
- this.readonly = false;
25
- this.autofocus = false;
26
- this.passwordIcons = false;
27
- this.placeholder = undefined;
20
+ this.placeholder = '';
28
21
  this.prefix = null;
29
22
  this.suffix = null;
23
+ this.passwordIcons = false;
30
24
  this.eyeOn = true;
31
- this.onChange = () => { };
32
- this.onTouch = () => { };
25
+ this._value = '';
26
+ this._disabled = false;
27
+ this._readonly = false;
28
+ this._required = false;
29
+ this._autofocus = false;
30
+ this._focused = false;
31
+ this._autocomplete = 'off';
32
+ this._type = 'text';
33
+ this._mode = 'text';
34
+ this.onChangeCallback = () => { };
35
+ this.onTouchedCallback = () => { };
36
+ }
37
+ get type() {
38
+ return this._type;
39
+ }
40
+ set type(type) {
41
+ this._type = type;
42
+ }
43
+ get inputmode() {
44
+ return this._mode;
45
+ }
46
+ set inputmode(mode) {
47
+ this._mode = mode;
48
+ }
49
+ get disabled() {
50
+ return this._disabled;
51
+ }
52
+ set disabled(disabled) {
53
+ this._disabled = coerceBooleanProperty(disabled);
54
+ this.cdr.markForCheck();
55
+ }
56
+ get readonly() {
57
+ return this._readonly;
58
+ }
59
+ set readonly(readonly) {
60
+ this._readonly = coerceBooleanProperty(readonly);
61
+ }
62
+ get required() {
63
+ return this._required;
64
+ }
65
+ set required(required) {
66
+ this._required = coerceBooleanProperty(required);
67
+ }
68
+ get autofocus() {
69
+ return this._autofocus;
70
+ }
71
+ set autofocus(autofocus) {
72
+ this._autofocus = coerceBooleanProperty(autofocus);
73
+ }
74
+ get autocomplete() {
75
+ return this._autocomplete;
76
+ }
77
+ set autocomplete(autofocus) {
78
+ this._autocomplete = autofocus;
79
+ }
80
+ get value() {
81
+ return this.type === 'number' ? this.valueAsNumber : this._value;
82
+ }
83
+ set value(val) {
84
+ if (val !== this._value) {
85
+ this._value = val;
86
+ this.onChangeCallback(this.value);
87
+ }
88
+ }
89
+ get valueAsString() {
90
+ if (this._value == null || typeof this._value === 'undefined')
91
+ return '';
92
+ return String(this._value);
93
+ }
94
+ get valueAsNumber() {
95
+ return coerceNumberProperty(this._value);
96
+ }
97
+ get isBadInput() {
98
+ const validity = this.inputElement?.nativeElement?.validity;
99
+ return validity && validity.badInput;
33
100
  }
34
101
  get elClasses() {
35
102
  return {
@@ -46,7 +113,7 @@ export class WrInputComponent extends BaseComponent {
46
113
  .pipe(takeUntil(this.ngUnsubscribe))
47
114
  .subscribe(event => {
48
115
  event.preventDefault();
49
- this.focus();
116
+ this.onFocus();
50
117
  if (this.disabled) {
51
118
  event.stopImmediatePropagation();
52
119
  return;
@@ -59,62 +126,68 @@ export class WrInputComponent extends BaseComponent {
59
126
  }
60
127
  ngAfterViewInit() {
61
128
  if (this.autofocus) {
62
- this.focus();
129
+ this.onFocus();
130
+ this.cdr.markForCheck();
63
131
  }
64
132
  }
65
133
  ngOnDestroy() {
66
134
  super.ngOnDestroy();
67
135
  this.focusMonitor.stopMonitoring(this.elRef);
68
136
  }
69
- writeValue(value) {
70
- this.value = value;
71
- this.cdr.markForCheck();
137
+ onFocus(event) {
138
+ if (event) {
139
+ event.stopPropagation();
140
+ }
141
+ this._focused = true;
142
+ this.focusMonitor.focusVia(this.inputElement, 'keyboard');
72
143
  }
73
- registerOnChange(fn) {
74
- this.onChange = fn;
144
+ onBlur(event) {
145
+ if (event) {
146
+ event.stopPropagation();
147
+ }
148
+ this._focused = false;
149
+ // this.inputElement.nativeElement.blur();
150
+ this.onTouchedCallback();
75
151
  }
76
- registerOnTouched(fn) {
77
- this.onTouch = fn;
152
+ validate(control) {
153
+ return {
154
+ ...(this.isBadInput ? { badInput: true } : null)
155
+ };
78
156
  }
79
- setDisabledState(isDisabled) {
80
- this.disabled = isDisabled;
157
+ writeValue(value) {
158
+ if (value !== this._value) {
159
+ this._value = value;
160
+ }
81
161
  this.cdr.markForCheck();
82
162
  }
83
- focus() {
84
- this.focusMonitor.focusVia(this.inputElement, 'keyboard');
163
+ registerOnChange(fn) {
164
+ this.onChangeCallback = fn;
85
165
  }
86
- blur() {
87
- this.inputElement.nativeElement.blur();
166
+ registerOnTouched(fn) {
167
+ this.onTouchedCallback = fn;
88
168
  }
89
- onPasswordVisibilityChange(event) {
90
- event.stopPropagation();
169
+ onPasswordVisibilityChange() {
91
170
  this.type === 'password' ? (this.type = 'text') : (this.type = 'password');
92
171
  this.eyeOn = !this.eyeOn;
172
+ this.onFocus();
93
173
  }
94
- onModelChange(value) {
95
- if (!this.disabled) {
96
- this.value = value;
97
- this.onChange(this.value);
98
- }
174
+ setDisabledState(isDisabled) {
175
+ this.disabled = coerceBooleanProperty(isDisabled);
99
176
  }
100
177
  }
101
178
  WrInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: WrInputComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i1.FocusMonitor }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
102
- WrInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: WrInputComponent, selector: "wr-input", inputs: { value: "value", type: "type", autocomplete: "autocomplete", inputmode: "inputmode", disabled: "disabled", readonly: "readonly", autofocus: "autofocus", passwordIcons: "passwordIcons", placeholder: "placeholder", prefix: "prefix", suffix: "suffix" }, host: { properties: { "class": "this.elClasses" } }, providers: [
179
+ WrInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: WrInputComponent, selector: "wr-input", inputs: { placeholder: "placeholder", prefix: "prefix", suffix: "suffix", passwordIcons: "passwordIcons", type: "type", inputmode: "inputmode", disabled: "disabled", readonly: "readonly", required: "required", autofocus: "autofocus", autocomplete: "autocomplete", value: "value" }, host: { properties: { "class": "this.elClasses" } }, providers: [
103
180
  {
104
181
  provide: NG_VALUE_ACCESSOR,
105
182
  useExisting: forwardRef(() => WrInputComponent),
106
183
  multi: true
184
+ },
185
+ {
186
+ provide: NG_VALIDATORS,
187
+ useExisting: forwardRef(() => WrInputComponent),
188
+ multi: true
107
189
  }
108
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], exportAs: ["wrInput"], usesInheritance: true, ngImport: i0, template: "<div class=\"wr-input-prefix\" *ngIf=\"prefix\">\n <span class=\"wr-input-prefix__text\">{{ prefix }}</span>\n</div>\n<div class=\"wr-input-el\">\n <div\n *ngIf=\"passwordIcons\"\n class=\"wr-input-el-icon\"\n (click)=\"onPasswordVisibilityChange($event)\"\n >\n <wr-icon class=\"wr-input-el-icon__icon\" [name]=\"eyeOn ? 'eye' : 'eye-off'\"></wr-icon>\n </div>\n <input\n #inputElement\n class=\"wr-input-el__native\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n [attr.readonly]=\"readonly ? 'readonly' : null\"\n [attr.autofocus]=\"autofocus ? 'autofocus' : null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.inputmode]=\"inputmode\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange(value)\"\n />\n</div>\n<div class=\"wr-input-suffix\" *ngIf=\"suffix\">\n <span class=\"wr-input-suffix__text\">{{ suffix }}</span>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.WrIconComponent, selector: "wr-icon[name]", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
109
- __decorate([
110
- InputBoolean()
111
- ], WrInputComponent.prototype, "disabled", void 0);
112
- __decorate([
113
- InputBoolean()
114
- ], WrInputComponent.prototype, "readonly", void 0);
115
- __decorate([
116
- InputBoolean()
117
- ], WrInputComponent.prototype, "autofocus", void 0);
190
+ ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], exportAs: ["wrInput"], usesInheritance: true, ngImport: i0, template: "<div class=\"wr-input-prefix\" *ngIf=\"prefix\">\n <span class=\"wr-input-prefix__text\">{{ prefix }}</span>\n</div>\n<div class=\"wr-input-el\">\n <div *ngIf=\"passwordIcons\" class=\"wr-input-el-icon\" (click)=\"onPasswordVisibilityChange()\">\n <wr-icon class=\"wr-input-el-icon__icon\" [name]=\"eyeOn ? 'eye' : 'eye-off'\"></wr-icon>\n </div>\n <input\n #inputElement\n class=\"wr-input-el__native\"\n [ngModel]=\"valueAsString\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.inputmode]=\"inputmode\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n (ngModelChange)=\"value = $event\"\n />\n</div>\n<div class=\"wr-input-suffix\" *ngIf=\"suffix\">\n <span class=\"wr-input-suffix__text\">{{ suffix }}</span>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.WrIconComponent, selector: "wr-icon[name]", inputs: ["name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
118
191
  __decorate([
119
192
  InputBoolean()
120
193
  ], WrInputComponent.prototype, "passwordIcons", void 0);
@@ -125,13 +198,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
125
198
  provide: NG_VALUE_ACCESSOR,
126
199
  useExisting: forwardRef(() => WrInputComponent),
127
200
  multi: true
201
+ },
202
+ {
203
+ provide: NG_VALIDATORS,
204
+ useExisting: forwardRef(() => WrInputComponent),
205
+ multi: true
128
206
  }
129
- ], template: "<div class=\"wr-input-prefix\" *ngIf=\"prefix\">\n <span class=\"wr-input-prefix__text\">{{ prefix }}</span>\n</div>\n<div class=\"wr-input-el\">\n <div\n *ngIf=\"passwordIcons\"\n class=\"wr-input-el-icon\"\n (click)=\"onPasswordVisibilityChange($event)\"\n >\n <wr-icon class=\"wr-input-el-icon__icon\" [name]=\"eyeOn ? 'eye' : 'eye-off'\"></wr-icon>\n </div>\n <input\n #inputElement\n class=\"wr-input-el__native\"\n [type]=\"type\"\n [value]=\"value\"\n [placeholder]=\"placeholder ? placeholder : ''\"\n [attr.readonly]=\"readonly ? 'readonly' : null\"\n [attr.autofocus]=\"autofocus ? 'autofocus' : null\"\n [attr.disabled]=\"disabled ? 'disabled' : null\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.inputmode]=\"inputmode\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange(value)\"\n />\n</div>\n<div class=\"wr-input-suffix\" *ngIf=\"suffix\">\n <span class=\"wr-input-suffix__text\">{{ suffix }}</span>\n</div>\n" }]
130
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.FocusMonitor }, { type: i0.NgZone }]; }, propDecorators: { value: [{
207
+ ], template: "<div class=\"wr-input-prefix\" *ngIf=\"prefix\">\n <span class=\"wr-input-prefix__text\">{{ prefix }}</span>\n</div>\n<div class=\"wr-input-el\">\n <div *ngIf=\"passwordIcons\" class=\"wr-input-el-icon\" (click)=\"onPasswordVisibilityChange()\">\n <wr-icon class=\"wr-input-el-icon__icon\" [name]=\"eyeOn ? 'eye' : 'eye-off'\"></wr-icon>\n </div>\n <input\n #inputElement\n class=\"wr-input-el__native\"\n [ngModel]=\"valueAsString\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [type]=\"type\"\n [attr.autocomplete]=\"autocomplete\"\n [attr.inputmode]=\"inputmode\"\n (focus)=\"onFocus($event)\"\n (blur)=\"onBlur($event)\"\n (ngModelChange)=\"value = $event\"\n />\n</div>\n<div class=\"wr-input-suffix\" *ngIf=\"suffix\">\n <span class=\"wr-input-suffix__text\">{{ suffix }}</span>\n</div>\n" }]
208
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i1.FocusMonitor }, { type: i0.NgZone }]; }, propDecorators: { placeholder: [{
131
209
  type: Input
132
- }], type: [{
210
+ }], prefix: [{
133
211
  type: Input
134
- }], autocomplete: [{
212
+ }], suffix: [{
213
+ type: Input
214
+ }], passwordIcons: [{
215
+ type: Input
216
+ }], type: [{
135
217
  type: Input
136
218
  }], inputmode: [{
137
219
  type: Input
@@ -139,15 +221,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
139
221
  type: Input
140
222
  }], readonly: [{
141
223
  type: Input
142
- }], autofocus: [{
143
- type: Input
144
- }], passwordIcons: [{
224
+ }], required: [{
145
225
  type: Input
146
- }], placeholder: [{
226
+ }], autofocus: [{
147
227
  type: Input
148
- }], prefix: [{
228
+ }], autocomplete: [{
149
229
  type: Input
150
- }], suffix: [{
230
+ }], value: [{
151
231
  type: Input
152
232
  }], inputElement: [{
153
233
  type: ViewChild,
@@ -156,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
156
236
  type: HostBinding,
157
237
  args: ['class']
158
238
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2xpYi9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQ3RCLFNBQVMsRUFDakIsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQWdCLFlBQVksRUFBd0MsTUFBTSxVQUFVLENBQUM7QUFDM0csT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFnQjNDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxhQUFhO0lBK0JqRCxZQUNtQixHQUFzQixFQUN0QixLQUFtQyxFQUNuQyxZQUEwQixFQUMxQixNQUFjO1FBRS9CLEtBQUssRUFBRSxDQUFDO1FBTFMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsVUFBSyxHQUFMLEtBQUssQ0FBOEI7UUFDbkMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWxDeEIsVUFBSyxHQUFrQixJQUFJLENBQUM7UUFDNUIsU0FBSSxHQUE2QyxNQUFNLENBQUM7UUFDeEQsaUJBQVksR0FBaUIsSUFBSSxDQUFDO1FBQ2xDLGNBQVMsR0FBaUQsTUFBTSxDQUFDO1FBQ2pELGFBQVEsR0FBaUIsS0FBSyxDQUFDO1FBQy9CLGFBQVEsR0FBaUIsS0FBSyxDQUFDO1FBQy9CLGNBQVMsR0FBaUIsS0FBSyxDQUFDO1FBQ2hDLGtCQUFhLEdBQWlCLEtBQUss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QVE7c0JBQWhDLEtBQUs7Z0JBQ21CLFNBQVM7c0JBQWpDLEtBQUs7Z0JBQ21CLGFBQWE7c0JBQXJDLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUV1QyxZQUFZO3NCQUF4RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBR3ZDLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgTmdab25lLCBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQsIEJvb2xlYW5JbnB1dCwgSW5wdXRCb29sZWFuLCBPbkNoYW5nZVR5cGUsIE9uVG91Y2hlZFR5cGUsIFNhZmVBbnkgfSBmcm9tICcuLi9fY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd3ItaW5wdXQnLFxuICBleHBvcnRBczogJ3dySW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXcklucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFdySW5wdXRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSB0eXBlOiAndGV4dCcgfCAnbnVtYmVyJyB8ICdwYXNzd29yZCcgfCAnZW1haWwnID0gJ3RleHQnO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGU6ICdvbicgfCAnb2ZmJyA9ICdvbic7XG4gIEBJbnB1dCgpIGlucHV0bW9kZTogJ3RleHQnIHwgJ251bWVyaWMnIHwgJ3RlbCcgfCAnZW1haWwnIHwgJ3VybCcgPSAndGV4dCc7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBkaXNhYmxlZDogQm9vbGVhbklucHV0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSByZWFkb25seTogQm9vbGVhbklucHV0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBhdXRvZm9jdXM6IEJvb2xlYW5JbnB1dCA9IGZhbHNlO1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgcGFzc3dvcmRJY29uczogQm9vbGVhbklucHV0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHByZWZpeDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIHN1ZmZpeDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGVsQ2xhc3NlcygpOiBTYWZlQW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ3dyLWlucHV0JzogdHJ1ZSxcbiAgICAgICd3ci1pbnB1dC0taGFzLXByZWZpeCc6IHRoaXMucHJlZml4LFxuICAgICAgJ3dyLWlucHV0LS1oYXMtc3VmZml4JzogdGhpcy5zdWZmaXgsXG4gICAgICAnd3ItaW5wdXQtLXBhc3N3b3JkJzogdGhpcy5wYXNzd29yZEljb25zLFxuICAgICAgJ3dyLWlucHV0LS1kaXNhYmxlZCc6IHRoaXMuZGlzYWJsZWRcbiAgICB9O1xuICB9XG5cbiAgZXllT24gPSB0cnVlO1xuXG4gIG9uQ2hhbmdlOiBPbkNoYW5nZVR5cGUgPSAoKSA9PiB7fTtcbiAgb25Ub3VjaDogT25Ub3VjaGVkVHlwZSA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsUmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5mb2N1cygpO1xuICAgICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgZnJvbUV2ZW50KHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdjbGljaycpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvZm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuZWxSZWYpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IE9uQ2hhbmdlVHlwZSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBPblRvdWNoZWRUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuaW5wdXRFbGVtZW50LCAna2V5Ym9hcmQnKTtcbiAgfVxuXG4gIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gIH1cblxuICBvblBhc3N3b3JkVmlzaWJpbGl0eUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnR5cGUgPT09ICdwYXNzd29yZCcgPyAodGhpcy50eXBlID0gJ3RleHQnKSA6ICh0aGlzLnR5cGUgPSAncGFzc3dvcmQnKTtcbiAgICB0aGlzLmV5ZU9uID0gIXRoaXMuZXllT247XG4gIH1cblxuICBvbk1vZGVsQ2hhbmdlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIndyLWlucHV0LXByZWZpeFwiICpuZ0lmPVwicHJlZml4XCI+XG4gIDxzcGFuIGNsYXNzPVwid3ItaW5wdXQtcHJlZml4X190ZXh0XCI+e3sgcHJlZml4IH19PC9zcGFuPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwid3ItaW5wdXQtZWxcIj5cbiAgPGRpdlxuICAgICpuZ0lmPVwicGFzc3dvcmRJY29uc1wiXG4gICAgY2xhc3M9XCJ3ci1pbnB1dC1lbC1pY29uXCJcbiAgICAoY2xpY2spPVwib25QYXNzd29yZFZpc2liaWxpdHlDaGFuZ2UoJGV2ZW50KVwiXG4gID5cbiAgICA8d3ItaWNvbiBjbGFzcz1cIndyLWlucHV0LWVsLWljb25fX2ljb25cIiBbbmFtZV09XCJleWVPbiA/ICdleWUnIDogJ2V5ZS1vZmYnXCI+PC93ci1pY29uPlxuICA8L2Rpdj5cbiAgPGlucHV0XG4gICAgI2lucHV0RWxlbWVudFxuICAgIGNsYXNzPVwid3ItaW5wdXQtZWxfX25hdGl2ZVwiXG4gICAgW3R5cGVdPVwidHlwZVwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgPyBwbGFjZWhvbGRlciA6ICcnXCJcbiAgICBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcbiAgICBbYXR0ci5hdXRvZm9jdXNdPVwiYXV0b2ZvY3VzID8gJ2F1dG9mb2N1cycgOiBudWxsXCJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiBudWxsXCJcbiAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICBbYXR0ci5pbnB1dG1vZGVdPVwiaW5wdXRtb2RlXCJcbiAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSh2YWx1ZSlcIlxuICAvPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwid3ItaW5wdXQtc3VmZml4XCIgKm5nSWY9XCJzdWZmaXhcIj5cbiAgPHNwYW4gY2xhc3M9XCJ3ci1pbnB1dC1zdWZmaXhfX3RleHRcIj57eyBzdWZmaXggfX08L3NwYW4+XG48L2Rpdj5cbiJdfQ==
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2lucHV0L2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2xpYi9pbnB1dC9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEYsT0FBTyxFQUVMLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBSUwsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsYUFBYSxFQUNiLGlCQUFpQixFQUdsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFDTCxhQUFhLEVBRWIsWUFBWSxFQU9iLE1BQU0sVUFBVSxDQUFDOzs7Ozs7QUFxQmxCLE1BQU0sT0FBTyxnQkFDWCxTQUFRLGFBQWE7SUEwR3JCLFlBQ21CLEdBQXNCLEVBQ3RCLEtBQW1DLEVBQ25DLFlBQTBCLEVBQzFCLE1BQWM7UUFFL0IsS0FBSyxFQUFFLENBQUM7UUFMUyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUE4QjtRQUNuQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBM0d4QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUNiLGtCQUFhLEdBQWlCLEtBQUssQ0FBQztRQXVGN0QsVUFBSyxHQUFHLElBQUksQ0FBQztRQUNMLFdBQU0sR0FBb0Is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LGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDOzRCQUMvQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUM7NEJBQy9DLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lMQU1RLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDbUIsYUFBYTtzQkFBckMsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7Z0JBUUYsU0FBUztzQkFEWixLQUFLO2dCQVFGLFFBQVE7c0JBRFgsS0FBSztnQkFTRixRQUFRO3NCQURYLEtBQUs7Z0JBUUYsUUFBUTtzQkFEWCxLQUFLO2dCQVFGLFNBQVM7c0JBRFosS0FBSztnQkFRRixZQUFZO3NCQURmLEtBQUs7Z0JBUUYsS0FBSztzQkFEUixLQUFLO2dCQXVCdUMsWUFBWTtzQkFBeEQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUV2QyxTQUFTO3NCQURaLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3Jcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIEJhc2VDb21wb25lbnQsXG4gIEJvb2xlYW5JbnB1dCxcbiAgSW5wdXRCb29sZWFuLFxuICBPbkNoYW5nZVR5cGUsXG4gIE9uVG91Y2hlZFR5cGUsXG4gIFNhZmVBbnksXG4gIFdySW5wdXRBdXRvY29tcGxldGUsXG4gIFdySW5wdXRNb2RlVHlwZSxcbiAgV3JJbnB1dFR5cGVcbn0gZnJvbSAnLi4vX2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3ci1pbnB1dCcsXG4gIGV4cG9ydEFzOiAnd3JJbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdySW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXcklucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFdySW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBCYXNlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95LCBWYWxpZGF0b3JcbntcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwcmVmaXg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBzdWZmaXg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgcGFzc3dvcmRJY29uczogQm9vbGVhbklucHV0ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IHR5cGUoKTogV3JJbnB1dFR5cGUge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG4gIHNldCB0eXBlKHR5cGU6IFdySW5wdXRUeXBlKSB7XG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IGlucHV0bW9kZSgpOiBXcklucHV0TW9kZVR5cGUge1xuICAgIHJldHVybiB0aGlzLl9tb2RlO1xuICB9XG4gIHNldCBpbnB1dG1vZGUobW9kZTogV3JJbnB1dE1vZGVUeXBlKSB7XG4gICAgdGhpcy5fbW9kZSA9IG1vZGU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuICBzZXQgZGlzYWJsZWQoZGlzYWJsZWQ6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KGRpc2FibGVkKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRvbmx5O1xuICB9XG4gIHNldCByZWFkb25seShyZWFkb25seTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVhZG9ubHkgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkocmVhZG9ubHkpO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gIH1cbiAgc2V0IHJlcXVpcmVkKHJlcXVpcmVkOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXF1aXJlZCk7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IGF1dG9mb2N1cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b2ZvY3VzO1xuICB9XG4gIHNldCBhdXRvZm9jdXMoYXV0b2ZvY3VzOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9hdXRvZm9jdXMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoYXV0b2ZvY3VzKTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgYXV0b2NvbXBsZXRlKCk6IFdySW5wdXRBdXRvY29tcGxldGUge1xuICAgIHJldHVybiB0aGlzLl9hdXRvY29tcGxldGU7XG4gIH1cbiAgc2V0IGF1dG9jb21wbGV0ZShhdXRvZm9jdXM6IFdySW5wdXRBdXRvY29tcGxldGUpIHtcbiAgICB0aGlzLl9hdXRvY29tcGxldGUgPSBhdXRvZm9jdXM7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB8IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ251bWJlcicgPyB0aGlzLnZhbHVlQXNOdW1iZXIgOiB0aGlzLl92YWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUodmFsOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICBpZiAodmFsICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2YWw7XG4gICAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sodGhpcy52YWx1ZSk7XG4gICAgfVxuICB9XG4gIGdldCB2YWx1ZUFzU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3ZhbHVlID09IG51bGwgfHwgdHlwZW9mIHRoaXMuX3ZhbHVlID09PSAndW5kZWZpbmVkJykgcmV0dXJuICcnO1xuICAgIHJldHVybiBTdHJpbmcodGhpcy5fdmFsdWUpO1xuICB9XG4gIGdldCB2YWx1ZUFzTnVtYmVyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIGNvZXJjZU51bWJlclByb3BlcnR5KHRoaXMuX3ZhbHVlKTtcbiAgfVxuXG4gIGdldCBpc0JhZElucHV0KCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHZhbGlkaXR5ID0gdGhpcy5pbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LnZhbGlkaXR5O1xuICAgIHJldHVybiB2YWxpZGl0eSAmJiB2YWxpZGl0eS5iYWRJbnB1dDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgZWxDbGFzc2VzKCk6IFNhZmVBbnkge1xuICAgIHJldHVybiB7XG4gICAgICAnd3ItaW5wdXQnOiB0cnVlLFxuICAgICAgJ3dyLWlucHV0LS1oYXMtcHJlZml4JzogdGhpcy5wcmVmaXgsXG4gICAgICAnd3ItaW5wdXQtLWhhcy1zdWZmaXgnOiB0aGlzLnN1ZmZpeCxcbiAgICAgICd3ci1pbnB1dC0tcGFzc3dvcmQnOiB0aGlzLnBhc3N3b3JkSWNvbnMsXG4gICAgICAnd3ItaW5wdXQtLWRpc2FibGVkJzogdGhpcy5kaXNhYmxlZFxuICAgIH07XG4gIH1cblxuICBleWVPbiA9IHRydWU7XG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgfCBudW1iZXIgPSAnJztcbiAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYXV0b2ZvY3VzOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZvY3VzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYXV0b2NvbXBsZXRlOiBXcklucHV0QXV0b2NvbXBsZXRlID0gJ29mZic7XG4gIHByaXZhdGUgX3R5cGU6IFdySW5wdXRUeXBlID0gJ3RleHQnO1xuICBwcml2YXRlIF9tb2RlOiBXcklucHV0TW9kZVR5cGUgPSAndGV4dCc7XG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogT25DaGFuZ2VUeXBlID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6IE9uVG91Y2hlZFR5cGUgPSAoKSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHRoaXMub25Gb2N1cygpO1xuICAgICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgZnJvbUV2ZW50KHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdjbGljaycpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hdXRvZm9jdXMpIHtcbiAgICAgIHRoaXMub25Gb2N1cygpO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLmZvY3VzTW9uaXRvci5zdG9wTW9uaXRvcmluZyh0aGlzLmVsUmVmKTtcbiAgfVxuXG4gIG9uRm9jdXMoZXZlbnQ/OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgdGhpcy5fZm9jdXNlZCA9IHRydWU7XG4gICAgdGhpcy5mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5pbnB1dEVsZW1lbnQsICdrZXlib2FyZCcpO1xuICB9XG5cbiAgb25CbHVyKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9mb2N1c2VkID0gZmFsc2U7XG4gICAgLy8gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjaygpO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiB7XG4gICAgICAuLi4odGhpcy5pc0JhZElucHV0ID8geyBiYWRJbnB1dDogdHJ1ZSB9IDogbnVsbClcbiAgICB9O1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl92YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBPbkNoYW5nZVR5cGUpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBPblRvdWNoZWRUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgb25QYXNzd29yZFZpc2liaWxpdHlDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy50eXBlID09PSAncGFzc3dvcmQnID8gKHRoaXMudHlwZSA9ICd0ZXh0JykgOiAodGhpcy50eXBlID0gJ3Bhc3N3b3JkJyk7XG4gICAgdGhpcy5leWVPbiA9ICF0aGlzLmV5ZU9uO1xuICAgIHRoaXMub25Gb2N1cygpO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShpc0Rpc2FibGVkKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIndyLWlucHV0LXByZWZpeFwiICpuZ0lmPVwicHJlZml4XCI+XG4gIDxzcGFuIGNsYXNzPVwid3ItaW5wdXQtcHJlZml4X190ZXh0XCI+e3sgcHJlZml4IH19PC9zcGFuPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwid3ItaW5wdXQtZWxcIj5cbiAgPGRpdiAqbmdJZj1cInBhc3N3b3JkSWNvbnNcIiBjbGFzcz1cIndyLWlucHV0LWVsLWljb25cIiAoY2xpY2spPVwib25QYXNzd29yZFZpc2liaWxpdHlDaGFuZ2UoKVwiPlxuICAgIDx3ci1pY29uIGNsYXNzPVwid3ItaW5wdXQtZWwtaWNvbl9faWNvblwiIFtuYW1lXT1cImV5ZU9uID8gJ2V5ZScgOiAnZXllLW9mZidcIj48L3dyLWljb24+XG4gIDwvZGl2PlxuICA8aW5wdXRcbiAgICAjaW5wdXRFbGVtZW50XG4gICAgY2xhc3M9XCJ3ci1pbnB1dC1lbF9fbmF0aXZlXCJcbiAgICBbbmdNb2RlbF09XCJ2YWx1ZUFzU3RyaW5nXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICBbYXR0ci5hdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICBbYXR0ci5pbnB1dG1vZGVdPVwiaW5wdXRtb2RlXCJcbiAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWUgPSAkZXZlbnRcIlxuICAvPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwid3ItaW5wdXQtc3VmZml4XCIgKm5nSWY9XCJzdWZmaXhcIj5cbiAgPHNwYW4gY2xhc3M9XCJ3ci1pbnB1dC1zdWZmaXhfX3RleHRcIj57eyBzdWZmaXggfX08L3NwYW4+XG48L2Rpdj5cbiJdfQ==