@energinet/watt 4.1.19 → 4.1.21
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/esm2022/chip/watt-date-chip.component.js +2 -2
- package/esm2022/chip/watt-date-range-chip.component.js +2 -2
- package/esm2022/datetime-field/watt-datetime-field.component.js +1 -1
- package/esm2022/dropdown/watt-dropdown.component.js +2 -2
- package/esm2022/dropzone/watt-dropzone.js +2 -2
- package/esm2022/field/watt-field.component.js +9 -8
- package/esm2022/file-field/watt-file-field.component.js +1 -1
- package/esm2022/phone-field/watt-phone-field.component.js +2 -2
- package/esm2022/picker/datepicker/watt-datepicker.component.js +2 -2
- package/esm2022/picker/timepicker/watt-timepicker.component.js +2 -2
- package/esm2022/text-field/watt-text-field.component.js +4 -4
- package/esm2022/textarea-field/watt-textarea-field.component.js +4 -4
- package/esm2022/year-field/watt-year-field.component.js +1 -1
- package/esm2022/yearmonth-field/watt-yearmonth-field.component.js +1 -1
- package/field/watt-field.component.d.ts +4 -2
- package/package.json +1 -1
|
@@ -34,10 +34,13 @@ export class WattFieldComponent {
|
|
|
34
34
|
control = input(null, ...(ngDevMode ? [{ debugName: "control" }] : []));
|
|
35
35
|
label = input(...(ngDevMode ? [undefined, { debugName: "label" }] : []));
|
|
36
36
|
id = input(...(ngDevMode ? [undefined, { debugName: "id" }] : []));
|
|
37
|
+
/** @deprecated Use `displayMode` instead. */
|
|
37
38
|
chipMode = input(false, ...(ngDevMode ? [{ debugName: "chipMode" }] : []));
|
|
38
39
|
tooltip = input(...(ngDevMode ? [undefined, { debugName: "tooltip" }] : []));
|
|
39
40
|
placeholder = input('', ...(ngDevMode ? [{ debugName: "placeholder" }] : []));
|
|
40
41
|
anchorName = input(...(ngDevMode ? [undefined, { debugName: "anchorName" }] : []));
|
|
42
|
+
displayMode = input('box', ...(ngDevMode ? [{ debugName: "displayMode" }] : []));
|
|
43
|
+
className = computed(() => `watt-field--${this.chipMode() ? 'chip' : this.displayMode()}`, ...(ngDevMode ? [{ debugName: "className" }] : []));
|
|
41
44
|
/**
|
|
42
45
|
* Whether the input should receive focus when the component is rendered.
|
|
43
46
|
*/
|
|
@@ -48,7 +51,6 @@ export class WattFieldComponent {
|
|
|
48
51
|
value = signal('', ...(ngDevMode ? [{ debugName: "value" }] : []));
|
|
49
52
|
filler = computed(() => this.placeholder().slice(this.value().length), ...(ngDevMode ? [{ debugName: "filler" }] : []));
|
|
50
53
|
ghost = computed(() => this.value().slice(0, this.placeholder().length), ...(ngDevMode ? [{ debugName: "ghost" }] : []));
|
|
51
|
-
unlabelled = computed(() => !this.label(), ...(ngDevMode ? [{ debugName: "unlabelled" }] : []));
|
|
52
54
|
errors = signal(null, ...(ngDevMode ? [{ debugName: "errors" }] : []));
|
|
53
55
|
isRequired = signal(false, ...(ngDevMode ? [{ debugName: "isRequired" }] : []));
|
|
54
56
|
isEmpty = computed(() => this.errors()?.['required'] || this.errors()?.['rangeRequired'], ...(ngDevMode ? [{ debugName: "isEmpty" }] : []));
|
|
@@ -80,7 +82,7 @@ export class WattFieldComponent {
|
|
|
80
82
|
return validators.some((validator) => control.hasValidator(validator));
|
|
81
83
|
}
|
|
82
84
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattFieldComponent, isStandalone: true, selector: "watt-field", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, chipMode: { classPropertyName: "chipMode", publicName: "chipMode", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, anchorName: { classPropertyName: "anchorName", publicName: "anchorName", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, showErrors: { classPropertyName: "showErrors", publicName: "showErrors", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.watt-field--
|
|
85
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattFieldComponent, isStandalone: true, selector: "watt-field", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, chipMode: { classPropertyName: "chipMode", publicName: "chipMode", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, anchorName: { classPropertyName: "anchorName", publicName: "anchorName", isSignal: true, isRequired: false, transformFunction: null }, displayMode: { classPropertyName: "displayMode", publicName: "displayMode", isSignal: true, isRequired: false, transformFunction: null }, autoFocus: { classPropertyName: "autoFocus", publicName: "autoFocus", isSignal: true, isRequired: false, transformFunction: null }, showErrors: { classPropertyName: "showErrors", publicName: "showErrors", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.watt-field--disabled": "control()?.disabled", "class.watt-field--show-errors": "showErrors()", "class": "className()" } }, viewQueries: [{ propertyName: "labelElement", first: true, predicate: ["label"], descendants: true, isSignal: true }, { propertyName: "wattLabelElement", first: true, predicate: ["wattLabel"], descendants: true, isSignal: true }, { propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
84
86
|
@if (chipMode()) {
|
|
85
87
|
<span [attr.autofocus]="autoFocus() || null" class="watt-label" #wattLabel>
|
|
86
88
|
<ng-container *ngTemplateOutlet="template" />
|
|
@@ -127,7 +129,7 @@ export class WattFieldComponent {
|
|
|
127
129
|
<watt-field-error>{{ intl.required }}</watt-field-error>
|
|
128
130
|
}
|
|
129
131
|
</ng-template>
|
|
130
|
-
`, isInline: true, styles: ["[watt-field-disabled=true] watt-field .label,.watt-field--disabled .label{color:var(--watt-disabled-text-label-color)}[watt-field-disabled=true] .watt-field-wrapper,.watt-field--disabled .watt-field-wrapper{background-color:var(--watt-field-disabled-background-color)}watt-field watt-field-hint{display:block}watt-field :is(watt-field-error,watt-field-warning),.ng-valid watt-field :is(watt-field-error,watt-field-warning){display:none}form.ng-submitted .ng-invalid watt-field watt-field-hint,:not(form).ng-touched.ng-invalid watt-field watt-field-hint{display:none}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors :is(watt-field-error,watt-field-warning),:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors :is(watt-field-error,watt-field-warning){display:block}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors .watt-field-wrapper,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors .watt-field-wrapper{border-color:var(--watt-color-state-danger)}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors .label,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors .label{color:var(--watt-color-state-danger)}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors .label.required:after,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors .label.required:after{color:var(--watt-color-state-danger)}form.ng-submitted .ng-invalid watt-field:has(watt-field-warning):not(:has(watt-field-error)) .label,:not(form).ng-touched.ng-invalid watt-field:has(watt-field-warning):not(:has(watt-field-error)) .label{color:var(--watt-text-color)}form.ng-submitted .ng-invalid watt-field:has(watt-field-warning):not(:has(watt-field-error)) .watt-field-wrapper,:not(form).ng-touched.ng-invalid watt-field:has(watt-field-warning):not(:has(watt-field-error)) .watt-field-wrapper{border-color:var(--watt-color-state-warning)}.watt-field-wrapper input{width:100%;border:none;outline:none;background-color:transparent}.watt-field-placeholder{position:absolute;padding:1px 2px;pointer-events:none;white-space:nowrap}.watt-field--has-placeholder input,.watt-field-placeholder{font-family:Droid Sans Mono,monospace;letter-spacing:-.03em}.watt-field-filler{color:var(--watt-on-light-low-emphasis)}.watt-field-ghost{color:transparent}watt-field{--watt-text-color: var(--watt-on-light-high-emphasis);--watt-disabled-text-label-color: var(--watt-on-light-low-emphasis);--watt-field-disabled-background-color: var(--watt-color-neutral-grey-100);--watt-input-border-radius: 4px;--watt-border-color: var(--watt-on-light-low-emphasis);--watt-label-text-color: var(--watt-text-color);width:100%;display:block}watt-field:not(.watt-field--chip
|
|
132
|
+
`, isInline: true, styles: ["[watt-field-disabled=true] watt-field .label,.watt-field--disabled .label{color:var(--watt-disabled-text-label-color)}[watt-field-disabled=true] .watt-field-wrapper,.watt-field--disabled .watt-field-wrapper{background-color:var(--watt-field-disabled-background-color)}watt-field watt-field-hint{display:block}watt-field :is(watt-field-error,watt-field-warning),.ng-valid watt-field :is(watt-field-error,watt-field-warning),watt-field:has(.ng-valid) :is(watt-field-error,watt-field-warning){display:none}form.ng-submitted .ng-invalid watt-field watt-field-hint,form.ng-submitted watt-field:has(.ng-invalid) watt-field-hint,:not(form).ng-touched.ng-invalid watt-field watt-field-hint{display:none}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors :is(watt-field-error,watt-field-warning),form.ng-submitted watt-field:has(.ng-invalid).watt-field--show-errors :is(watt-field-error,watt-field-warning),:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors :is(watt-field-error,watt-field-warning){display:block}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors .watt-field-wrapper,form.ng-submitted watt-field:has(.ng-invalid).watt-field--show-errors .watt-field-wrapper,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors .watt-field-wrapper{border-color:var(--watt-color-state-danger)}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors .label,form.ng-submitted watt-field:has(.ng-invalid).watt-field--show-errors .label,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors .label{color:var(--watt-color-state-danger)}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors .label.required:after,form.ng-submitted watt-field:has(.ng-invalid).watt-field--show-errors .label.required:after,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors .label.required:after{color:var(--watt-color-state-danger)}form.ng-submitted .ng-invalid watt-field:has(watt-field-error,watt-field-warning),form.ng-submitted watt-field:has(.ng-invalid):has(watt-field-error,watt-field-warning),:not(form).ng-touched.ng-invalid watt-field:has(watt-field-error,watt-field-warning){padding-bottom:0}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors:has(watt-field-warning):not(:has(watt-field-error)) .label,form.ng-submitted watt-field:has(.ng-invalid).watt-field--show-errors:has(watt-field-warning):not(:has(watt-field-error)) .label,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors:has(watt-field-warning):not(:has(watt-field-error)) .label{color:var(--watt-text-color)}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors:has(watt-field-warning):not(:has(watt-field-error)) .watt-field-wrapper,form.ng-submitted watt-field:has(.ng-invalid).watt-field--show-errors:has(watt-field-warning):not(:has(watt-field-error)) .watt-field-wrapper,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors:has(watt-field-warning):not(:has(watt-field-error)) .watt-field-wrapper{border-color:var(--watt-color-state-warning)}.watt-field-wrapper input{width:100%;border:none;outline:none;background-color:transparent}.watt-field-placeholder{position:absolute;padding:1px 2px;pointer-events:none;white-space:nowrap}.watt-field--has-placeholder input,.watt-field-placeholder{font-family:Droid Sans Mono,monospace;letter-spacing:-.03em}.watt-field-filler{color:var(--watt-on-light-low-emphasis)}.watt-field-ghost{color:transparent}watt-field{--watt-text-color: var(--watt-on-light-high-emphasis);--watt-disabled-text-label-color: var(--watt-on-light-low-emphasis);--watt-field-disabled-background-color: var(--watt-color-neutral-grey-100);--watt-input-border-radius: 4px;--watt-border-color: var(--watt-on-light-low-emphasis);--watt-label-text-color: var(--watt-text-color);width:100%;display:block}watt-field:not(.watt-field--chip,:has(watt-field-hint)){padding-bottom:20px}watt-field .label{min-height:27px;display:flex;align-items:center}watt-field .label watt-icon{margin-left:var(--watt-space-s)}watt-field .label watt-tooltip{max-width:250px}watt-field .label.required:after{content:\"*\"}watt-field label,watt-field .watt-label{color:var(--watt-label-text-color);display:block;width:100%}watt-field label .watt-field-wrapper,watt-field .watt-label .watt-field-wrapper{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;display:flex;position:relative;width:100%;padding:0 var(--watt-space-s);border-radius:var(--watt-input-border-radius);border:1px solid var(--watt-border-color);overflow:hidden;color:var(--watt-text-color);align-items:center;gap:var(--watt-space-m);background-color:var(--watt-color-neutral-white)}watt-field label .watt-field-wrapper:focus-within,watt-field .watt-label .watt-field-wrapper:focus-within{--watt-border-color: var(--watt-color-primary)}watt-field label watt-field-hint,watt-field label watt-field-error,watt-field label watt-field-warning,watt-field .watt-label watt-field-hint,watt-field .watt-label watt-field-error,watt-field .watt-label watt-field-warning{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0}watt-field label :not(.watt-field--chip) :is(watt-field-hint,watt-field-error,watt-field-warning),watt-field .watt-label :not(.watt-field--chip) :is(watt-field-hint,watt-field-error,watt-field-warning){padding:0 var(--watt-space-s)}watt-field:not(.watt-field--box) .watt-field-wrapper{border:none;padding:0}watt-field.watt-field--chip watt-field-hint,watt-field.watt-field--chip watt-field-error,watt-field.watt-field--chip watt-field-warning{margin-top:var(--watt-space-xs)}watt-field.watt-field--box .watt-field-wrapper{min-height:46px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: WattIconComponent, selector: "watt-icon", inputs: ["name", "label", "size", "state"] }, { kind: "directive", type: WattTooltipDirective, selector: "[wattTooltip]", inputs: ["wattTooltip", "wattTooltipPosition", "wattTooltipVariant"], exportAs: ["wattTooltip"] }, { kind: "component", type: WattFieldErrorComponent, selector: "watt-field-error" }, { kind: "component", type: VaterFlexComponent, selector: "vater-flex, [vater-flex]", inputs: ["autoSize"] }, { kind: "directive", type: VaterUtilityDirective, selector: "[vater]", inputs: ["center", "fill", "inset", "scrollable"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
131
133
|
}
|
|
132
134
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattFieldComponent, decorators: [{
|
|
133
135
|
type: Component,
|
|
@@ -186,10 +188,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
186
188
|
}
|
|
187
189
|
</ng-template>
|
|
188
190
|
`, host: {
|
|
189
|
-
'[class.watt-field--chip]': 'chipMode()',
|
|
190
|
-
'[class.watt-field--unlabelled]': 'unlabelled()',
|
|
191
191
|
'[class.watt-field--disabled]': 'control()?.disabled',
|
|
192
192
|
'[class.watt-field--show-errors]': 'showErrors()',
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9maWVsZC93YXR0LWZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFpQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFzRW5ELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsSUFBSSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3BDLFVBQVUsR0FBRyxNQUFNLENBQWEsVUFBVSxDQUFDLENBQUM7SUFFNUMsT0FBTyxHQUFHLEtBQUssQ0FBcUIsSUFBSSxtREFBQyxDQUFDO0lBQzFDLEtBQUssR0FBRyxLQUFLLDJEQUFVLENBQUM7SUFDeEIsRUFBRSxHQUFHLEtBQUssd0RBQVUsQ0FBQztJQUNyQixRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssb0RBQUMsQ0FBQztJQUN4QixPQUFPLEdBQUcsS0FBSyw2REFBVSxDQUFDO0lBQzFCLFdBQVcsR0FBRyxLQUFLLENBQUMsRUFBRSx1REFBQyxDQUFDO0lBQ3hCLFVBQVUsR0FBRyxLQUFLLGdFQUFVLENBQUM7SUFFN0I7O09BRUc7SUFDSCxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUsscURBQUMsQ0FBQztJQUV6QixjQUFjO0lBQ2QsWUFBWSxHQUFHLFNBQVMsQ0FBK0IsT0FBTyx3REFBQyxDQUFDO0lBQ2hFLGdCQUFnQixHQUFHLFNBQVMsQ0FBOEIsV0FBVyw0REFBQyxDQUFDO0lBRXZFLEtBQUssR0FBRyxNQUFNLENBQUMsRUFBRSxpREFBQyxDQUFDO0lBQ25CLE1BQU0sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLGtEQUFDLENBQUM7SUFDdkUsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLGlEQUFDLENBQUM7SUFFekUsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsc0RBQUMsQ0FBQztJQUUzQyxNQUFNLEdBQUcsTUFBTSxDQUEwQixJQUFJLGtEQUFDLENBQUM7SUFDL0MsVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLHNEQUFDLENBQUM7SUFDM0IsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsbURBQUMsQ0FBQztJQUMxRixVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksc0RBQUMsQ0FBQztJQUV6Qix5Q0FBeUM7SUFDekMsT0FBTyxHQUFHLFNBQVMsQ0FBYSxTQUFTLG1EQUFDLENBQUM7SUFFM0M7UUFDRSxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXhGLGtEQUFrRDtRQUNsRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUMxQixTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUNwQixPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDdkIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFDeEIsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUMvRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3RDLENBQ0YsRUFDRCxrQkFBa0IsRUFBRSxDQUNyQixDQUFDO1FBRUYsaUVBQWlFO1FBQ2pFLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQzNCLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ3BCLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUN4QixTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUN6QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFDL0QsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUMzQyxDQUNGLEVBQ0Qsa0JBQWtCLEVBQUUsQ0FDckIsQ0FBQztRQUVGLDZCQUE2QjtRQUM3QixNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRXBCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO2dCQUNyQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2pELENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM3QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLE9BQW9CO1FBQ3BDLE1BQU0sVUFBVSxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO3VHQWhGVSxrQkFBa0I7MkZBQWxCLGtCQUFrQixzdkRBdkRuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1Qsb2xKQXZEQyxnQkFBZ0Isb0pBQ2hCLGlCQUFpQixrR0FDakIsb0JBQW9CLDJKQUNwQix1QkFBdUIsNkRBQ3ZCLGtCQUFrQiwyRkFDbEIscUJBQXFCOzsyRkEwRFosa0JBQWtCO2tCQXBFOUIsU0FBUzsrQkFDRSxZQUFZLG1CQUNMLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUI7d0JBQ1AsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3dCQUN2QixrQkFBa0I7d0JBQ2xCLHFCQUFxQjtxQkFDdEIsWUFFUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1QsUUFDSzt3QkFDSiwwQkFBMEIsRUFBRSxZQUFZO3dCQUN4QyxnQ0FBZ0MsRUFBRSxjQUFjO3dCQUNoRCw4QkFBOEIsRUFBRSxxQkFBcUI7d0JBQ3JELGlDQUFpQyxFQUFFLGNBQWM7cUJBQ2xEOzAxQkFvQnNELE9BQU8sMEVBQ0osV0FBVyxxS0FjckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmltcG9ydCB7IFdhdHRJY29uQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ljb24nO1xuaW1wb3J0IHsgV2F0dFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvdG9vbHRpcCc7XG5pbXBvcnQgeyBWYXRlckZsZXhDb21wb25lbnQsIFZhdGVyVXRpbGl0eURpcmVjdGl2ZSB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC92YXRlcic7XG5pbXBvcnQgeyBXYXR0UmFuZ2VWYWxpZGF0b3JzIH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3ZhbGlkYXRvcnMnO1xuXG5pbXBvcnQgeyBXYXR0RmllbGRJbnRsU2VydmljZSB9IGZyb20gJy4vd2F0dC1maWVsZC1pbnRsLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2F0dEZpZWxkRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL3dhdHQtZmllbGQtZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXR0LWZpZWxkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFdhdHRJY29uQ29tcG9uZW50LFxuICAgIFdhdHRUb29sdGlwRGlyZWN0aXZlLFxuICAgIFdhdHRGaWVsZEVycm9yQ29tcG9uZW50LFxuICAgIFZhdGVyRmxleENvbXBvbmVudCxcbiAgICBWYXRlclV0aWxpdHlEaXJlY3RpdmUsXG4gIF0sXG4gIHN0eWxlVXJsczogWycuL3dhdHQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGNoaXBNb2RlKCkpIHtcbiAgICAgIDxzcGFuIFthdHRyLmF1dG9mb2N1c109XCJhdXRvRm9jdXMoKSB8fCBudWxsXCIgY2xhc3M9XCJ3YXR0LWxhYmVsXCIgI3dhdHRMYWJlbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlXCIgLz5cbiAgICAgIDwvc3Bhbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxsYWJlbCBbYXR0ci5hdXRvZm9jdXNdPVwiYXV0b0ZvY3VzKCkgfHwgbnVsbFwiIFthdHRyLmZvcl09XCJpZCgpXCIgI2xhYmVsPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVcIiAvPlxuICAgICAgPC9sYWJlbD5cbiAgICB9XG5cbiAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgICAgQGlmIChsYWJlbCgpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIiBbY2xhc3MucmVxdWlyZWRdPVwiaXNSZXF1aXJlZCgpXCI+XG4gICAgICAgICAge3sgbGFiZWwoKSB9fVxuICAgICAgICAgIEBpZiAodG9vbHRpcCgpOyBhcyB0b29sdGlwKSB7XG4gICAgICAgICAgICA8d2F0dC1pY29uIG5hbWU9XCJpbmZvXCIgd2F0dFRvb2x0aXBQb3NpdGlvbj1cInRvcFwiIFt3YXR0VG9vbHRpcF09XCJ0b29sdGlwXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIDx2YXRlci1mbGV4IGRpcmVjdGlvbj1cInJvd1wiIGdhcD1cInNcIiBhbGlnbj1cImNlbnRlclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgdmF0ZXJcbiAgICAgICAgICBmaWxsPVwiaG9yaXpvbnRhbFwiXG4gICAgICAgICAgI3dyYXBwZXJcbiAgICAgICAgICBjbGFzcz1cIndhdHQtZmllbGQtd3JhcHBlclwiXG4gICAgICAgICAgW2NsYXNzLndhdHQtZmllbGQtLWhhcy1wbGFjZWhvbGRlcl09XCIhIXBsYWNlaG9sZGVyKClcIlxuICAgICAgICAgIFtzdHlsZS5hbmNob3ItbmFtZV09XCJhbmNob3JOYW1lKClcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmIChwbGFjZWhvbGRlcigpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2F0dC1maWVsZC1wbGFjZWhvbGRlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndhdHQtZmllbGQtZ2hvc3RcIj57eyBnaG9zdCgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndhdHQtZmllbGQtZmlsbGVyXCI+e3sgZmlsbGVyKCkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZmllbGQtZGVzY3JpcHRvclwiIC8+XG4gICAgICA8L3ZhdGVyLWZsZXg+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcG9wb3Zlcl1cIiAvPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwid2F0dC1maWVsZC1oaW50XCIgLz5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZmllbGQtZXJyb3JcIiAvPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwid2F0dC1maWVsZC13YXJuaW5nXCIgLz5cbiAgICAgIEBpZiAoaXNFbXB0eSgpKSB7XG4gICAgICAgIDx3YXR0LWZpZWxkLWVycm9yPnt7IGludGwucmVxdWlyZWQgfX08L3dhdHQtZmllbGQtZXJyb3I+XG4gICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Mud2F0dC1maWVsZC0tY2hpcF0nOiAnY2hpcE1vZGUoKScsXG4gICAgJ1tjbGFzcy53YXR0LWZpZWxkLS11bmxhYmVsbGVkXSc6ICd1bmxhYmVsbGVkKCknLFxuICAgICdbY2xhc3Mud2F0dC1maWVsZC0tZGlzYWJsZWRdJzogJ2NvbnRyb2woKT8uZGlzYWJsZWQnLFxuICAgICdbY2xhc3Mud2F0dC1maWVsZC0tc2hvdy1lcnJvcnNdJzogJ3Nob3dFcnJvcnMoKScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRGaWVsZENvbXBvbmVudCB7XG4gIGludGwgPSBpbmplY3QoV2F0dEZpZWxkSW50bFNlcnZpY2UpO1xuICBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY+KEVsZW1lbnRSZWYpO1xuXG4gIGNvbnRyb2wgPSBpbnB1dDxGb3JtQ29udHJvbCB8IG51bGw+KG51bGwpO1xuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oKTtcbiAgaWQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGNoaXBNb2RlID0gaW5wdXQoZmFsc2UpO1xuICB0b29sdGlwID0gaW5wdXQ8c3RyaW5nPigpO1xuICBwbGFjZWhvbGRlciA9IGlucHV0KCcnKTtcbiAgYW5jaG9yTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5wdXQgc2hvdWxkIHJlY2VpdmUgZm9jdXMgd2hlbiB0aGUgY29tcG9uZW50IGlzIHJlbmRlcmVkLlxuICAgKi9cbiAgYXV0b0ZvY3VzID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIGxhYmVsRWxlbWVudCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxMYWJlbEVsZW1lbnQ+PignbGFiZWwnKTtcbiAgd2F0dExhYmVsRWxlbWVudCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD4+KCd3YXR0TGFiZWwnKTtcblxuICB2YWx1ZSA9IHNpZ25hbCgnJyk7XG4gIGZpbGxlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGxhY2Vob2xkZXIoKS5zbGljZSh0aGlzLnZhbHVlKCkubGVuZ3RoKSk7XG4gIGdob3N0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy52YWx1ZSgpLnNsaWNlKDAsIHRoaXMucGxhY2Vob2xkZXIoKS5sZW5ndGgpKTtcblxuICB1bmxhYmVsbGVkID0gY29tcHV0ZWQoKCkgPT4gIXRoaXMubGFiZWwoKSk7XG5cbiAgZXJyb3JzID0gc2lnbmFsPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPihudWxsKTtcbiAgaXNSZXF1aXJlZCA9IHNpZ25hbChmYWxzZSk7XG4gIGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmVycm9ycygpPy5bJ3JlcXVpcmVkJ10gfHwgdGhpcy5lcnJvcnMoKT8uWydyYW5nZVJlcXVpcmVkJ10pO1xuICBzaG93RXJyb3JzID0gaW5wdXQodHJ1ZSk7XG5cbiAgLy8gVXNlZCBmb3IgdGV4dCBmaWVsZHMgd2l0aCBhdXRvY29tcGxldGVcbiAgd3JhcHBlciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignd3JhcHBlcicpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IGNvbnRyb2wkID0gdG9PYnNlcnZhYmxlKHRoaXMuY29udHJvbCkucGlwZShmaWx0ZXIoKGNvbnRyb2wpID0+IGNvbnRyb2wgIT09IG51bGwpKTtcblxuICAgIC8vIFRyYWNrIHZhbHVlIGluIG9yZGVyIHRvIHVwZGF0ZSBnaG9zdCBhbmQgZmlsbGVyXG4gICAgY29uc3QgdmFsdWUkID0gY29udHJvbCQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoY29udHJvbCkgPT5cbiAgICAgICAgY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICBzdGFydFdpdGgoY29udHJvbC52YWx1ZSksXG4gICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgPyAnJyA6IHZhbHVlLnRvU3RyaW5nKCkpKSxcbiAgICAgICAgICB0YXAoKHZhbHVlKSA9PiB0aGlzLnZhbHVlLnNldCh2YWx1ZSkpXG4gICAgICAgIClcbiAgICAgICksXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICk7XG5cbiAgICAvLyBUcmFjayBzdGF0dXMgaW4gb3JkZXIgdG8gdXBkYXRlIHJlcXVpcmVkIHN0YXRlIGFuZCBzaG93IGVycm9yc1xuICAgIGNvbnN0IHN0YXR1cyQgPSBjb250cm9sJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChjb250cm9sKSA9PlxuICAgICAgICBjb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZShcbiAgICAgICAgICBzdGFydFdpdGgoY29udHJvbC5zdGF0dXMpLFxuICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmlzUmVxdWlyZWQuc2V0KHRoaXMuaXNSZXF1aXJlZENvbnRyb2woY29udHJvbCkpKSxcbiAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5lcnJvcnMuc2V0KGNvbnRyb2wuZXJyb3JzKSlcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXG4gICAgKTtcblxuICAgIC8vIFN1YnNjcmliZSBmb3Igc2lkZSBlZmZlY3RzXG4gICAgdmFsdWUkLnN1YnNjcmliZSgpO1xuICAgIHN0YXR1cyQuc3Vic2NyaWJlKCk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYXV0b0ZvY3VzKCkpIHtcbiAgICAgICAgaWYgKHRoaXMuY2hpcE1vZGUoKSkge1xuICAgICAgICAgIHRoaXMud2F0dExhYmVsRWxlbWVudCgpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sYWJlbEVsZW1lbnQoKT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpc1JlcXVpcmVkQ29udHJvbChjb250cm9sOiBGb3JtQ29udHJvbCkge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgV2F0dFJhbmdlVmFsaWRhdG9ycy5yZXF1aXJlZF07XG4gICAgcmV0dXJuIHZhbGlkYXRvcnMuc29tZSgodmFsaWRhdG9yKSA9PiBjb250cm9sLmhhc1ZhbGlkYXRvcih2YWxpZGF0b3IpKTtcbiAgfVxufVxuIl19
|
|
193
|
+
'[class]': 'className()',
|
|
194
|
+
}, styles: ["[watt-field-disabled=true] watt-field .label,.watt-field--disabled .label{color:var(--watt-disabled-text-label-color)}[watt-field-disabled=true] .watt-field-wrapper,.watt-field--disabled .watt-field-wrapper{background-color:var(--watt-field-disabled-background-color)}watt-field watt-field-hint{display:block}watt-field :is(watt-field-error,watt-field-warning),.ng-valid watt-field :is(watt-field-error,watt-field-warning),watt-field:has(.ng-valid) :is(watt-field-error,watt-field-warning){display:none}form.ng-submitted .ng-invalid watt-field watt-field-hint,form.ng-submitted watt-field:has(.ng-invalid) watt-field-hint,:not(form).ng-touched.ng-invalid watt-field watt-field-hint{display:none}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors :is(watt-field-error,watt-field-warning),form.ng-submitted watt-field:has(.ng-invalid).watt-field--show-errors :is(watt-field-error,watt-field-warning),:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors :is(watt-field-error,watt-field-warning){display:block}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors .watt-field-wrapper,form.ng-submitted watt-field:has(.ng-invalid).watt-field--show-errors .watt-field-wrapper,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors .watt-field-wrapper{border-color:var(--watt-color-state-danger)}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors .label,form.ng-submitted watt-field:has(.ng-invalid).watt-field--show-errors .label,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors .label{color:var(--watt-color-state-danger)}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors .label.required:after,form.ng-submitted watt-field:has(.ng-invalid).watt-field--show-errors .label.required:after,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors .label.required:after{color:var(--watt-color-state-danger)}form.ng-submitted .ng-invalid watt-field:has(watt-field-error,watt-field-warning),form.ng-submitted watt-field:has(.ng-invalid):has(watt-field-error,watt-field-warning),:not(form).ng-touched.ng-invalid watt-field:has(watt-field-error,watt-field-warning){padding-bottom:0}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors:has(watt-field-warning):not(:has(watt-field-error)) .label,form.ng-submitted watt-field:has(.ng-invalid).watt-field--show-errors:has(watt-field-warning):not(:has(watt-field-error)) .label,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors:has(watt-field-warning):not(:has(watt-field-error)) .label{color:var(--watt-text-color)}form.ng-submitted .ng-invalid watt-field.watt-field--show-errors:has(watt-field-warning):not(:has(watt-field-error)) .watt-field-wrapper,form.ng-submitted watt-field:has(.ng-invalid).watt-field--show-errors:has(watt-field-warning):not(:has(watt-field-error)) .watt-field-wrapper,:not(form).ng-touched.ng-invalid watt-field.watt-field--show-errors:has(watt-field-warning):not(:has(watt-field-error)) .watt-field-wrapper{border-color:var(--watt-color-state-warning)}.watt-field-wrapper input{width:100%;border:none;outline:none;background-color:transparent}.watt-field-placeholder{position:absolute;padding:1px 2px;pointer-events:none;white-space:nowrap}.watt-field--has-placeholder input,.watt-field-placeholder{font-family:Droid Sans Mono,monospace;letter-spacing:-.03em}.watt-field-filler{color:var(--watt-on-light-low-emphasis)}.watt-field-ghost{color:transparent}watt-field{--watt-text-color: var(--watt-on-light-high-emphasis);--watt-disabled-text-label-color: var(--watt-on-light-low-emphasis);--watt-field-disabled-background-color: var(--watt-color-neutral-grey-100);--watt-input-border-radius: 4px;--watt-border-color: var(--watt-on-light-low-emphasis);--watt-label-text-color: var(--watt-text-color);width:100%;display:block}watt-field:not(.watt-field--chip,:has(watt-field-hint)){padding-bottom:20px}watt-field .label{min-height:27px;display:flex;align-items:center}watt-field .label watt-icon{margin-left:var(--watt-space-s)}watt-field .label watt-tooltip{max-width:250px}watt-field .label.required:after{content:\"*\"}watt-field label,watt-field .watt-label{color:var(--watt-label-text-color);display:block;width:100%}watt-field label .watt-field-wrapper,watt-field .watt-label .watt-field-wrapper{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0;display:flex;position:relative;width:100%;padding:0 var(--watt-space-s);border-radius:var(--watt-input-border-radius);border:1px solid var(--watt-border-color);overflow:hidden;color:var(--watt-text-color);align-items:center;gap:var(--watt-space-m);background-color:var(--watt-color-neutral-white)}watt-field label .watt-field-wrapper:focus-within,watt-field .watt-label .watt-field-wrapper:focus-within{--watt-border-color: var(--watt-color-primary)}watt-field label watt-field-hint,watt-field label watt-field-error,watt-field label watt-field-warning,watt-field .watt-label watt-field-hint,watt-field .watt-label watt-field-error,watt-field .watt-label watt-field-warning{font-size:.875rem;line-height:1.25rem;font-weight:400;text-transform:none;letter-spacing:0}watt-field label :not(.watt-field--chip) :is(watt-field-hint,watt-field-error,watt-field-warning),watt-field .watt-label :not(.watt-field--chip) :is(watt-field-hint,watt-field-error,watt-field-warning){padding:0 var(--watt-space-s)}watt-field:not(.watt-field--box) .watt-field-wrapper{border:none;padding:0}watt-field.watt-field--chip watt-field-hint,watt-field.watt-field--chip watt-field-error,watt-field.watt-field--chip watt-field-warning{margin-top:var(--watt-space-xs)}watt-field.watt-field--box .watt-field-wrapper{min-height:46px}\n"] }]
|
|
195
|
+
}], ctorParameters: () => [], propDecorators: { control: [{ type: i0.Input, args: [{ isSignal: true, alias: "control", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], chipMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "chipMode", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], anchorName: [{ type: i0.Input, args: [{ isSignal: true, alias: "anchorName", required: false }] }], displayMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayMode", required: false }] }], autoFocus: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoFocus", required: false }] }], labelElement: [{ type: i0.ViewChild, args: ['label', { isSignal: true }] }], wattLabelElement: [{ type: i0.ViewChild, args: ['wattLabel', { isSignal: true }] }], showErrors: [{ type: i0.Input, args: [{ isSignal: true, alias: "showErrors", required: false }] }], wrapper: [{ type: i0.ViewChild, args: ['wrapper', { isSignal: true }] }] } });
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9maWVsZC93YXR0LWZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFpQyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFxRW5ELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsSUFBSSxHQUFHLE1BQU0sQ0FB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LElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7dUdBakZVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLGcwREF0RG5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDVCx5b0xBdkRDLGdCQUFnQixvSkFDaEIsaUJBQWlCLGtHQUNqQixvQkFBb0IsMkpBQ3BCLHVCQUF1Qiw2REFDdkIsa0JBQWtCLDJGQUNsQixxQkFBcUI7OzJGQXlEWixrQkFBa0I7a0JBbkU5QixTQUFTOytCQUNFLFlBQVksbUJBQ0wsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIscUJBQXFCO3FCQUN0QixZQUVTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDVCxRQUNLO3dCQUNKLDhCQUE4QixFQUFFLHFCQUFxQjt3QkFDckQsaUNBQWlDLEVBQUUsY0FBYzt3QkFDakQsU0FBUyxFQUFFLGFBQWE7cUJBQ3pCO2c4QkF1QnNELE9BQU8sMEVBQ0osV0FBVyxxS0FZckMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIi8vI3JlZ2lvbiBMaWNlbnNlXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMCBFbmVyZ2luZXQgRGF0YUh1YiBBL1NcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlMlwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vLyNlbmRyZWdpb25cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBzaWduYWwsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmltcG9ydCB7IFdhdHRJY29uQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ljb24nO1xuaW1wb3J0IHsgV2F0dFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvdG9vbHRpcCc7XG5pbXBvcnQgeyBWYXRlckZsZXhDb21wb25lbnQsIFZhdGVyVXRpbGl0eURpcmVjdGl2ZSB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC92YXRlcic7XG5pbXBvcnQgeyBXYXR0UmFuZ2VWYWxpZGF0b3JzIH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3ZhbGlkYXRvcnMnO1xuXG5pbXBvcnQgeyBXYXR0RmllbGRJbnRsU2VydmljZSB9IGZyb20gJy4vd2F0dC1maWVsZC1pbnRsLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2F0dEZpZWxkRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL3dhdHQtZmllbGQtZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd3YXR0LWZpZWxkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIFdhdHRJY29uQ29tcG9uZW50LFxuICAgIFdhdHRUb29sdGlwRGlyZWN0aXZlLFxuICAgIFdhdHRGaWVsZEVycm9yQ29tcG9uZW50LFxuICAgIFZhdGVyRmxleENvbXBvbmVudCxcbiAgICBWYXRlclV0aWxpdHlEaXJlY3RpdmUsXG4gIF0sXG4gIHN0eWxlVXJsczogWycuL3dhdHQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGNoaXBNb2RlKCkpIHtcbiAgICAgIDxzcGFuIFthdHRyLmF1dG9mb2N1c109XCJhdXRvRm9jdXMoKSB8fCBudWxsXCIgY2xhc3M9XCJ3YXR0LWxhYmVsXCIgI3dhdHRMYWJlbD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlXCIgLz5cbiAgICAgIDwvc3Bhbj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxsYWJlbCBbYXR0ci5hdXRvZm9jdXNdPVwiYXV0b0ZvY3VzKCkgfHwgbnVsbFwiIFthdHRyLmZvcl09XCJpZCgpXCIgI2xhYmVsPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVcIiAvPlxuICAgICAgPC9sYWJlbD5cbiAgICB9XG5cbiAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgICAgQGlmIChsYWJlbCgpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIiBbY2xhc3MucmVxdWlyZWRdPVwiaXNSZXF1aXJlZCgpXCI+XG4gICAgICAgICAge3sgbGFiZWwoKSB9fVxuICAgICAgICAgIEBpZiAodG9vbHRpcCgpOyBhcyB0b29sdGlwKSB7XG4gICAgICAgICAgICA8d2F0dC1pY29uIG5hbWU9XCJpbmZvXCIgd2F0dFRvb2x0aXBQb3NpdGlvbj1cInRvcFwiIFt3YXR0VG9vbHRpcF09XCJ0b29sdGlwXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIDx2YXRlci1mbGV4IGRpcmVjdGlvbj1cInJvd1wiIGdhcD1cInNcIiBhbGlnbj1cImNlbnRlclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgdmF0ZXJcbiAgICAgICAgICBmaWxsPVwiaG9yaXpvbnRhbFwiXG4gICAgICAgICAgI3dyYXBwZXJcbiAgICAgICAgICBjbGFzcz1cIndhdHQtZmllbGQtd3JhcHBlclwiXG4gICAgICAgICAgW2NsYXNzLndhdHQtZmllbGQtLWhhcy1wbGFjZWhvbGRlcl09XCIhIXBsYWNlaG9sZGVyKClcIlxuICAgICAgICAgIFtzdHlsZS5hbmNob3ItbmFtZV09XCJhbmNob3JOYW1lKClcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmIChwbGFjZWhvbGRlcigpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2F0dC1maWVsZC1wbGFjZWhvbGRlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndhdHQtZmllbGQtZ2hvc3RcIj57eyBnaG9zdCgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndhdHQtZmllbGQtZmlsbGVyXCI+e3sgZmlsbGVyKCkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZmllbGQtZGVzY3JpcHRvclwiIC8+XG4gICAgICA8L3ZhdGVyLWZsZXg+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcG9wb3Zlcl1cIiAvPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwid2F0dC1maWVsZC1oaW50XCIgLz5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIndhdHQtZmllbGQtZXJyb3JcIiAvPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwid2F0dC1maWVsZC13YXJuaW5nXCIgLz5cbiAgICAgIEBpZiAoaXNFbXB0eSgpKSB7XG4gICAgICAgIDx3YXR0LWZpZWxkLWVycm9yPnt7IGludGwucmVxdWlyZWQgfX08L3dhdHQtZmllbGQtZXJyb3I+XG4gICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Mud2F0dC1maWVsZC0tZGlzYWJsZWRdJzogJ2NvbnRyb2woKT8uZGlzYWJsZWQnLFxuICAgICdbY2xhc3Mud2F0dC1maWVsZC0tc2hvdy1lcnJvcnNdJzogJ3Nob3dFcnJvcnMoKScsXG4gICAgJ1tjbGFzc10nOiAnY2xhc3NOYW1lKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBXYXR0RmllbGRDb21wb25lbnQge1xuICBpbnRsID0gaW5qZWN0KFdhdHRGaWVsZEludGxTZXJ2aWNlKTtcbiAgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPihFbGVtZW50UmVmKTtcblxuICBjb250cm9sID0gaW5wdXQ8Rm9ybUNvbnRyb2wgfCBudWxsPihudWxsKTtcbiAgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGlkID0gaW5wdXQ8c3RyaW5nPigpO1xuICAvKiogQGRlcHJlY2F0ZWQgVXNlIGBkaXNwbGF5TW9kZWAgaW5zdGVhZC4gKi9cbiAgY2hpcE1vZGUgPSBpbnB1dChmYWxzZSk7XG4gIHRvb2x0aXAgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHBsYWNlaG9sZGVyID0gaW5wdXQoJycpO1xuICBhbmNob3JOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICBkaXNwbGF5TW9kZSA9IGlucHV0PCdib3gnIHwgJ2NoaXAnIHwgJ2NvbnRlbnQnPignYm94Jyk7XG4gIGNsYXNzTmFtZSA9IGNvbXB1dGVkKCgpID0+IGB3YXR0LWZpZWxkLS0ke3RoaXMuY2hpcE1vZGUoKSA/ICdjaGlwJyA6IHRoaXMuZGlzcGxheU1vZGUoKX1gKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5wdXQgc2hvdWxkIHJlY2VpdmUgZm9jdXMgd2hlbiB0aGUgY29tcG9uZW50IGlzIHJlbmRlcmVkLlxuICAgKi9cbiAgYXV0b0ZvY3VzID0gaW5wdXQoZmFsc2UpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIGxhYmVsRWxlbWVudCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxMYWJlbEVsZW1lbnQ+PignbGFiZWwnKTtcbiAgd2F0dExhYmVsRWxlbWVudCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD4+KCd3YXR0TGFiZWwnKTtcblxuICB2YWx1ZSA9IHNpZ25hbCgnJyk7XG4gIGZpbGxlciA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGxhY2Vob2xkZXIoKS5zbGljZSh0aGlzLnZhbHVlKCkubGVuZ3RoKSk7XG4gIGdob3N0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy52YWx1ZSgpLnNsaWNlKDAsIHRoaXMucGxhY2Vob2xkZXIoKS5sZW5ndGgpKTtcblxuICBlcnJvcnMgPSBzaWduYWw8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+KG51bGwpO1xuICBpc1JlcXVpcmVkID0gc2lnbmFsKGZhbHNlKTtcbiAgaXNFbXB0eSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZXJyb3JzKCk/LlsncmVxdWlyZWQnXSB8fCB0aGlzLmVycm9ycygpPy5bJ3JhbmdlUmVxdWlyZWQnXSk7XG4gIHNob3dFcnJvcnMgPSBpbnB1dCh0cnVlKTtcblxuICAvLyBVc2VkIGZvciB0ZXh0IGZpZWxkcyB3aXRoIGF1dG9jb21wbGV0ZVxuICB3cmFwcGVyID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCd3cmFwcGVyJyk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgY29udHJvbCQgPSB0b09ic2VydmFibGUodGhpcy5jb250cm9sKS5waXBlKGZpbHRlcigoY29udHJvbCkgPT4gY29udHJvbCAhPT0gbnVsbCkpO1xuXG4gICAgLy8gVHJhY2sgdmFsdWUgaW4gb3JkZXIgdG8gdXBkYXRlIGdob3N0IGFuZCBmaWxsZXJcbiAgICBjb25zdCB2YWx1ZSQgPSBjb250cm9sJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChjb250cm9sKSA9PlxuICAgICAgICBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgICAgIHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSxcbiAgICAgICAgICBtYXAoKHZhbHVlKSA9PiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCA/ICcnIDogdmFsdWUudG9TdHJpbmcoKSkpLFxuICAgICAgICAgIHRhcCgodmFsdWUpID0+IHRoaXMudmFsdWUuc2V0KHZhbHVlKSlcbiAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXG4gICAgKTtcblxuICAgIC8vIFRyYWNrIHN0YXR1cyBpbiBvcmRlciB0byB1cGRhdGUgcmVxdWlyZWQgc3RhdGUgYW5kIHNob3cgZXJyb3JzXG4gICAgY29uc3Qgc3RhdHVzJCA9IGNvbnRyb2wkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKGNvbnRyb2wpID0+XG4gICAgICAgIGNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKFxuICAgICAgICAgIHN0YXJ0V2l0aChjb250cm9sLnN0YXR1cyksXG4gICAgICAgICAgdGFwKCgpID0+IHRoaXMuaXNSZXF1aXJlZC5zZXQodGhpcy5pc1JlcXVpcmVkQ29udHJvbChjb250cm9sKSkpLFxuICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmVycm9ycy5zZXQoY29udHJvbC5lcnJvcnMpKVxuICAgICAgICApXG4gICAgICApLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKClcbiAgICApO1xuXG4gICAgLy8gU3Vic2NyaWJlIGZvciBzaWRlIGVmZmVjdHNcbiAgICB2YWx1ZSQuc3Vic2NyaWJlKCk7XG4gICAgc3RhdHVzJC5zdWJzY3JpYmUoKTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5hdXRvRm9jdXMoKSkge1xuICAgICAgICBpZiAodGhpcy5jaGlwTW9kZSgpKSB7XG4gICAgICAgICAgdGhpcy53YXR0TGFiZWxFbGVtZW50KCk/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxhYmVsRWxlbWVudCgpPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGlzUmVxdWlyZWRDb250cm9sKGNvbnRyb2w6IEZvcm1Db250cm9sKSB7XG4gICAgY29uc3QgdmFsaWRhdG9ycyA9IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBXYXR0UmFuZ2VWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICByZXR1cm4gdmFsaWRhdG9ycy5zb21lKCh2YWxpZGF0b3IpID0+IGNvbnRyb2wuaGFzVmFsaWRhdG9yKHZhbGlkYXRvcikpO1xuICB9XG59XG4iXX0=
|
|
@@ -44,7 +44,7 @@ export class WattFileField {
|
|
|
44
44
|
}
|
|
45
45
|
<ng-content />
|
|
46
46
|
</watt-field>
|
|
47
|
-
`, isInline: true, styles: [".watt-file-field-text{color:var(--watt-color-primary)}.watt-file-field-text:placeholder-shown{color:var(--watt-input-placeholder-color)}\n"], dependencies: [{ kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName", "autoFocus", "showErrors"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
47
|
+
`, isInline: true, styles: [".watt-file-field-text{color:var(--watt-color-primary)}.watt-file-field-text:placeholder-shown{color:var(--watt-input-placeholder-color)}\n"], dependencies: [{ kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName", "displayMode", "autoFocus", "showErrors"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
48
48
|
}
|
|
49
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattFileField, decorators: [{
|
|
50
50
|
type: Component,
|
|
@@ -197,7 +197,7 @@ export class WattPhoneFieldComponent {
|
|
|
197
197
|
<watt-field-error> {{ intl.invalidPhoneNumber }} </watt-field-error>
|
|
198
198
|
}
|
|
199
199
|
</watt-field>
|
|
200
|
-
`, isInline: true, styles: [".watt-phone-field__select.mat-mdc-select-panel{--mat-option-label-text-size: 14px;overflow-y:scroll}.watt-phone-field__select.mat-mdc-select-panel watt-icon{margin-right:var(--watt-space-s)}.watt-phone-field__select.mat-mdc-select-panel watt-icon .mat-icon{margin-right:0}.watt-phone-field__select.mat-mdc-select-panel .mat-mdc-option.mdc-list-item .mdc-list-item__primary-text{display:flex;width:100%;align-items:center;gap:var(--watt-space-xs)}watt-phone-field{display:block}watt-phone-field .watt-phone-field__prefix-container{width:100%;display:flex;align-items:center;gap:var(--watt-space-xs)}watt-phone-field input{width:100%;border:none}watt-phone-field input:focus-visible,watt-phone-field input:focus-within{border:none;outline:none}watt-phone-field .mat-mdc-select{width:auto;height:24px}watt-phone-field .mat-mdc-select .mat-mdc-select-arrow-wrapper{width:24px;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i2.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName", "autoFocus", "showErrors"] }, { kind: "component", type: WattFieldErrorComponent, selector: "watt-field-error" }, { kind: "component", type: WattFlagComponent, selector: "watt-flag", inputs: ["country", "label", "size"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
200
|
+
`, isInline: true, styles: [".watt-phone-field__select.mat-mdc-select-panel{--mat-option-label-text-size: 14px;overflow-y:scroll}.watt-phone-field__select.mat-mdc-select-panel watt-icon{margin-right:var(--watt-space-s)}.watt-phone-field__select.mat-mdc-select-panel watt-icon .mat-icon{margin-right:0}.watt-phone-field__select.mat-mdc-select-panel .mat-mdc-option.mdc-list-item .mdc-list-item__primary-text{display:flex;width:100%;align-items:center;gap:var(--watt-space-xs)}watt-phone-field{display:block}watt-phone-field .watt-phone-field__prefix-container{width:100%;display:flex;align-items:center;gap:var(--watt-space-xs)}watt-phone-field input{width:100%;border:none}watt-phone-field input:focus-visible,watt-phone-field input:focus-within{border:none;outline:none}watt-phone-field .mat-mdc-select{width:auto;height:24px}watt-phone-field .mat-mdc-select .mat-mdc-select-arrow-wrapper{width:24px;justify-content:center}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i2.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i2.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: MaskitoDirective, selector: "[maskito]", inputs: ["maskito", "maskitoElement"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName", "displayMode", "autoFocus", "showErrors"] }, { kind: "component", type: WattFieldErrorComponent, selector: "watt-field-error" }, { kind: "component", type: WattFlagComponent, selector: "watt-flag", inputs: ["country", "label", "size"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
201
201
|
}
|
|
202
202
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattPhoneFieldComponent, decorators: [{
|
|
203
203
|
type: Component,
|
|
@@ -260,4 +260,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
260
260
|
type: ViewChild,
|
|
261
261
|
args: ['phoneNumberInput']
|
|
262
262
|
}] } });
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1waG9uZS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9waG9uZS1maWVsZC93YXR0LXBob25lLWZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFFWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGlCQUFpQixFQUNqQixtQkFBbUIsR0FHcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQW1CLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxhQUFhLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7QUFPNUUsU0FBUyxjQUFjLENBQUMsV0FBd0I7SUFDOUMsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7UUFDM0Qs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NUI7d0JBQ1AsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLGlCQUFpQjtxQkFDbEIsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQ1Q7O3NCQThCQSxXQUFXO3VCQUFDLDBCQUEwQjs7c0JBT3RDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBzaWduYWwsXG4gIHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXNraXRvRGlyZWN0aXZlIH0gZnJvbSAnQG1hc2tpdG8vYW5ndWxhcic7XG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UsIE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNQVNLSVRPX0RFRkFVTFRfT1BUSU9OUywgbWFza2l0b1RyYW5zZm9ybSB9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IHsgbWFza2l0b1Bob25lT3B0aW9uc0dlbmVyYXRvciB9IGZyb20gJ0BtYXNraXRvL3Bob25lJztcbmltcG9ydCB7IGlzVmFsaWRQaG9uZU51bWJlciwgdHlwZSBDb3VudHJ5Q29kZSB9IGZyb20gJ2xpYnBob25lbnVtYmVyLWpzJztcbmltcG9ydCBwaG9uZU1ldGFkYXRhIGZyb20gJ2xpYnBob25lbnVtYmVyLWpzL21pbi9tZXRhZGF0YSc7XG5cbmltcG9ydCB7IFdhdHRGbGFnQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ljb24vZmxhZ3MnO1xuaW1wb3J0IHsgV2F0dEZpZWxkQ29tcG9uZW50LCBXYXR0RmllbGRFcnJvckNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9maWVsZCc7XG5cbmltcG9ydCB7IFdhdHRQaG9uZUZpZWxkSW50bFNlcnZpY2UgfSBmcm9tICcuL3dhdHQtcGhvbmUtZmllbGQtaW50bC5zZXJ2aWNlJztcblxudHlwZSBDb250cnkgPSB7XG4gIGNvdW50cnlJc29Db2RlOiBDb3VudHJ5Q29kZTtcbiAgcGhvbmVFeHRlbnNpb246IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIHBob25lVmFsaWRhdG9yKGNvdW50cnlDb2RlOiBDb3VudHJ5Q29kZSk6IFZhbGlkYXRvckZuIHtcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgaWYgKCFjb250cm9sLnZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB2YWxpZCA9IGlzVmFsaWRQaG9uZU51bWJlcihjb250cm9sLnZhbHVlLCBjb3VudHJ5Q29kZSk7XG5cbiAgICByZXR1cm4gdmFsaWQgPyBudWxsIDogeyBpbnZhbGlkUGhvbmU6IHRydWUgfTtcbiAgfTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2F0dC1waG9uZS1maWVsZCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXNraXRvRGlyZWN0aXZlLFxuICAgIFdhdHRGaWVsZENvbXBvbmVudCxcbiAgICBXYXR0RmllbGRFcnJvckNvbXBvbmVudCxcbiAgICBXYXR0RmxhZ0NvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXYXR0UGhvbmVGaWVsZENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx3YXR0LWZpZWxkIFtsYWJlbF09XCJsYWJlbCgpXCIgW2NvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIndhdHQtcGhvbmUtZmllbGRfX3ByZWZpeC1jb250YWluZXJcIj5cbiAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICBwYW5lbFdpZHRoPVwiXCJcbiAgICAgICAgICBwYW5lbENsYXNzPVwid2F0dC1waG9uZS1maWVsZF9fc2VsZWN0XCJcbiAgICAgICAgICBbaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcl09XCJ0cnVlXCJcbiAgICAgICAgICBbdmFsdWVdPVwiY2hvc2VuQ291bnRyeSgpLmNvdW50cnlJc29Db2RlXCJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGVkQ29udHJ5KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1zZWxlY3QtdHJpZ2dlcj5cbiAgICAgICAgICAgIDx3YXR0LWZsYWcgW2NvdW50cnldPVwiY2hvc2VuQ291bnRyeSgpLmNvdW50cnlJc29Db2RlXCIgLz5cbiAgICAgICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cbiAgICAgICAgICBAZm9yIChjb250cnkgb2YgY291bnRyaWVzOyB0cmFjayBjb250cnk7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJ7eyBjb250cnkuY291bnRyeUlzb0NvZGUgfX1cIj5cbiAgICAgICAgICAgICAgPHdhdHQtZmxhZyBbY291bnRyeV09XCJjb250cnkuY291bnRyeUlzb0NvZGVcIiAvPlxuICAgICAgICAgICAgICA8ZGl2Pnt7IGdldENvdW50cnlOYW1lKGNvbnRyeS5jb3VudHJ5SXNvQ29kZSkgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbCgpXCJcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJ0ZWxcIlxuICAgICAgICAgIGlucHV0bW9kZT1cInRlbFwiXG4gICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXG4gICAgICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICAgICAgICAgIChpbnB1dCk9XCJvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgW21hc2tpdG9dPVwibWFza1wiXG4gICAgICAgICAgI3Bob25lTnVtYmVySW5wdXRcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJ3YXR0LWZpZWxkLWhpbnRcIiBzZWxlY3Q9XCJ3YXR0LWZpZWxkLWhpbnRcIiAvPlxuICAgICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJ3YXR0LWZpZWxkLWVycm9yXCIgc2VsZWN0PVwid2F0dC1maWVsZC1lcnJvclwiIC8+XG4gICAgICBAaWYgKGZvcm1Db250cm9sKCkuaGFzRXJyb3IoJ2ludmFsaWRQaG9uZScpKSB7XG4gICAgICAgIDx3YXR0LWZpZWxkLWVycm9yPiB7eyBpbnRsLmludmFsaWRQaG9uZU51bWJlciB9fSA8L3dhdHQtZmllbGQtZXJyb3I+XG4gICAgICB9XG4gICAgPC93YXR0LWZpZWxkPlxuICBgLFxuICBzdHlsZVVybDogJy4vd2F0dC1waG9uZS1maWVsZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRQaG9uZUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIC8qKiBAaWdub3JlICovXG4gIHJlYWRvbmx5IGNvdW50cmllczogQ29udHJ5W10gPSBbXG4gICAgeyBjb3VudHJ5SXNvQ29kZTogJ0RLJywgcGhvbmVFeHRlbnNpb246ICcrNDUnIH0sXG4gICAgeyBjb3VudHJ5SXNvQ29kZTogJ1NFJywgcGhvbmVFeHRlbnNpb246ICcrNDYnIH0sXG4gICAgeyBjb3VudHJ5SXNvQ29kZTogJ05PJywgcGhvbmVFeHRlbnNpb246ICcrNDcnIH0sXG4gICAgeyBjb3VudHJ5SXNvQ29kZTogJ0dCJywgcGhvbmVFeHRlbnNpb246ICcrNDQnIH0sXG4gICAgeyBjb3VudHJ5SXNvQ29kZTogJ0RFJywgcGhvbmVFeHRlbnNpb246ICcrNDknIH0sXG4gICAgeyBjb3VudHJ5SXNvQ29kZTogJ0ZJJywgcGhvbmVFeHRlbnNpb246ICcrMzU4JyB9LFxuICAgIHsgY291bnRyeUlzb0NvZGU6ICdQTCcsIHBob25lRXh0ZW5zaW9uOiAnKzQ4JyB9LFxuICAgIHsgY291bnRyeUlzb0NvZGU6ICdOTCcsIHBob25lRXh0ZW5zaW9uOiAnKzMxJyB9LFxuICAgIHsgY291bnRyeUlzb0NvZGU6ICdDSCcsIHBob25lRXh0ZW5zaW9uOiAnKzQxJyB9LFxuICBdO1xuXG4gIGZvcm1Db250cm9sID0gaW5wdXQucmVxdWlyZWQ8Rm9ybUNvbnRyb2w+KCk7XG4gIGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIGNob3NlbkNvdW50cnkgPSBzaWduYWw8Q29udHJ5Pih0aGlzLmNvdW50cmllc1swXSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbWFzayA9IE1BU0tJVE9fREVGQVVMVF9PUFRJT05TO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIGludGwgPSBpbmplY3QoV2F0dFBob25lRmllbGRJbnRsU2VydmljZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLndhdHQtZmllbGQtZGlzYWJsZWQnKVxuICBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgdmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoJ3Bob25lTnVtYmVySW5wdXQnKSBwaG9uZU51bWJlcklucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldHVwKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IGNvdW50cnkgPSB0aGlzLmNvdW50cmllcy5maW5kKChjb3VudHJ5KSA9PiB2YWx1ZS5zdGFydHNXaXRoKGNvdW50cnkucGhvbmVFeHRlbnNpb24pKTtcblxuICAgICAgaWYgKGNvdW50cnkpIHtcbiAgICAgICAgLy8gRXhjbHVkZSBTaWduYWwgZnJvbSBiZWluZyB0cmFja2VkXG4gICAgICAgIC8vIGluIGNhc2UgdGhlIHBhcmVudCBjb21wb25lbnQgc2V0cyB0aGUgdmFsdWUgaW5zaWRlIGFuIGBlZmZlY3RgLlxuICAgICAgICAvLyBXaXRob3V0IHRoaXMsIHVwZGF0aW5nIHRoZSBTaWduYWwgaW50ZXJuYWx5IHRyaWdnZXJzIHRoZSBwYXJyZW50IGBlZmZlY3RgIHRvIHJlLXJ1bi5cbiAgICAgICAgLy8gTm90ZTogUmV2aXNpdCBvbmNlIHYxOSBpcyByZWxlYXNlZCBiZWNhdXNlIHRoZSBgZWZmZWN0YCBBUEkgaGFzIGNoYW5nZWRcbiAgICAgICAgLy8gc2lnbmlmaWNhbnRseSBhbmQgdGhpcyBtaWdodCBub3QgYmUgbmVjZXNzYXJ5IGFueW1vcmVcbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNldENvdW50cnkoY291bnRyeSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhbHVlID0gbWFza2l0b1RyYW5zZm9ybSh2YWx1ZSwgdGhpcy5tYXNrKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgLyogbm9vcCBmdW5jdGlvbiAqL1xuICB9O1xuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICAvKiBub29wIGZ1bmN0aW9uICovXG4gIH07XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgc2VsZWN0ZWRDb250cnkoeyB2YWx1ZSB9OiBNYXRTZWxlY3RDaGFuZ2UpIHtcbiAgICBjb25zdCBjb3VudHJ5ID0gdGhpcy5jb3VudHJpZXMuZmluZCgoY29udHJ5KSA9PiBjb250cnkuY291bnRyeUlzb0NvZGUgPT09IHZhbHVlKTtcblxuICAgIGlmICghY291bnRyeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcmVmaXggbm90IGZvdW5kJyk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRDb3VudHJ5KGNvdW50cnkpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2woKS5yZXNldCgpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnBob25lTnVtYmVySW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBzZXRDb3VudHJ5KGNvdW50cnk6IENvbnRyeSkge1xuICAgIHRoaXMuY2hvc2VuQ291bnRyeS5zZXQoY291bnRyeSk7XG4gICAgdGhpcy5zZXR1cCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgb25DaGFuZ2VkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCk/LnZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZVBob25lT3B0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBwaG9uZU9wdGlvbnMgPSBtYXNraXRvUGhvbmVPcHRpb25zR2VuZXJhdG9yKHtcbiAgICAgIGNvdW50cnlJc29Db2RlOiB0aGlzLmNob3NlbkNvdW50cnkoKS5jb3VudHJ5SXNvQ29kZSxcbiAgICAgIG1ldGFkYXRhOiBwaG9uZU1ldGFkYXRhLFxuICAgICAgc2VwYXJhdG9yOiAnICcsXG4gICAgfSk7XG5cbiAgICB0aGlzLm1hc2sgPSBwaG9uZU9wdGlvbnM7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHNldHVwKCk6IHZvaWQge1xuICAgIHRoaXMuZ2VuZXJhdGVQaG9uZU9wdGlvbnMoKTtcbiAgICB0aGlzLnNldFZhbGlkYXRvcigpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBzZXRWYWxpZGF0b3IoKSB7XG4gICAgY29uc3QgY291bnRyeUNvZGUgPSB0aGlzLmNob3NlbkNvdW50cnkoKS5jb3VudHJ5SXNvQ29kZTtcbiAgICB0aGlzLmZvcm1Db250cm9sKCkuYWRkVmFsaWRhdG9ycyhwaG9uZVZhbGlkYXRvcihjb3VudHJ5Q29kZSkpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgZ2V0Q291bnRyeU5hbWUoY291bnRyeUlzb0NvZGU6IENvdW50cnlDb2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaW50bFtjb3VudHJ5SXNvQ29kZSBhcyBrZXlvZiBXYXR0UGhvbmVGaWVsZEludGxTZXJ2aWNlXTtcbiAgfVxufVxuIl19
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1waG9uZS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9waG9uZS1maWVsZC93YXR0LXBob25lLWZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUFDakI7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsWUFBWTtBQUNaLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFFWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGlCQUFpQixFQUNqQixtQkFBbUIsR0FHcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLEVBQW1CLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxhQUFhLE1BQU0sZ0NBQWdDLENBQUM7QUFFM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7QUFPNUUsU0FBUyxjQUFjLENBQUMsV0FBd0I7SUFDOUMsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7UUFDM0Qs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NUI7d0JBQ1AsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQix1QkFBdUI7d0JBQ3ZCLGlCQUFpQjtxQkFDbEIsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQ1Q7O3NCQThCQSxXQUFXO3VCQUFDLDBCQUEwQjs7c0JBT3RDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiLy8jcmVnaW9uIExpY2Vuc2Vcbi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIwIEVuZXJnaW5ldCBEYXRhSHViIEEvU1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vI2VuZHJlZ2lvblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBzaWduYWwsXG4gIHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQ29udHJvbCxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvckZuLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXNraXRvRGlyZWN0aXZlIH0gZnJvbSAnQG1hc2tpdG8vYW5ndWxhcic7XG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UsIE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNQVNLSVRPX0RFRkFVTFRfT1BUSU9OUywgbWFza2l0b1RyYW5zZm9ybSB9IGZyb20gJ0BtYXNraXRvL2NvcmUnO1xuaW1wb3J0IHsgbWFza2l0b1Bob25lT3B0aW9uc0dlbmVyYXRvciB9IGZyb20gJ0BtYXNraXRvL3Bob25lJztcbmltcG9ydCB7IGlzVmFsaWRQaG9uZU51bWJlciwgdHlwZSBDb3VudHJ5Q29kZSB9IGZyb20gJ2xpYnBob25lbnVtYmVyLWpzJztcbmltcG9ydCBwaG9uZU1ldGFkYXRhIGZyb20gJ2xpYnBob25lbnVtYmVyLWpzL21pbi9tZXRhZGF0YSc7XG5cbmltcG9ydCB7IFdhdHRGbGFnQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ljb24vZmxhZ3MnO1xuaW1wb3J0IHsgV2F0dEZpZWxkQ29tcG9uZW50LCBXYXR0RmllbGRFcnJvckNvbXBvbmVudCB9IGZyb20gJ0BlbmVyZ2luZXQvd2F0dC9maWVsZCc7XG5cbmltcG9ydCB7IFdhdHRQaG9uZUZpZWxkSW50bFNlcnZpY2UgfSBmcm9tICcuL3dhdHQtcGhvbmUtZmllbGQtaW50bC5zZXJ2aWNlJztcblxudHlwZSBDb250cnkgPSB7XG4gIGNvdW50cnlJc29Db2RlOiBDb3VudHJ5Q29kZTtcbiAgcGhvbmVFeHRlbnNpb246IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIHBob25lVmFsaWRhdG9yKGNvdW50cnlDb2RlOiBDb3VudHJ5Q29kZSk6IFZhbGlkYXRvckZuIHtcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgaWYgKCFjb250cm9sLnZhbHVlKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCB2YWxpZCA9IGlzVmFsaWRQaG9uZU51bWJlcihjb250cm9sLnZhbHVlLCBjb3VudHJ5Q29kZSk7XG5cbiAgICByZXR1cm4gdmFsaWQgPyBudWxsIDogeyBpbnZhbGlkUGhvbmU6IHRydWUgfTtcbiAgfTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnd2F0dC1waG9uZS1maWVsZCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXNraXRvRGlyZWN0aXZlLFxuICAgIFdhdHRGaWVsZENvbXBvbmVudCxcbiAgICBXYXR0RmllbGRFcnJvckNvbXBvbmVudCxcbiAgICBXYXR0RmxhZ0NvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXYXR0UGhvbmVGaWVsZENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDx3YXR0LWZpZWxkIFtsYWJlbF09XCJsYWJlbCgpXCIgW2NvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIndhdHQtcGhvbmUtZmllbGRfX3ByZWZpeC1jb250YWluZXJcIj5cbiAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICBwYW5lbFdpZHRoPVwiXCJcbiAgICAgICAgICBwYW5lbENsYXNzPVwid2F0dC1waG9uZS1maWVsZF9fc2VsZWN0XCJcbiAgICAgICAgICBbaGlkZVNpbmdsZVNlbGVjdGlvbkluZGljYXRvcl09XCJ0cnVlXCJcbiAgICAgICAgICBbdmFsdWVdPVwiY2hvc2VuQ291bnRyeSgpLmNvdW50cnlJc29Db2RlXCJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGVkQ29udHJ5KCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1zZWxlY3QtdHJpZ2dlcj5cbiAgICAgICAgICAgIDx3YXR0LWZsYWcgW2NvdW50cnldPVwiY2hvc2VuQ291bnRyeSgpLmNvdW50cnlJc29Db2RlXCIgLz5cbiAgICAgICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cbiAgICAgICAgICBAZm9yIChjb250cnkgb2YgY291bnRyaWVzOyB0cmFjayBjb250cnk7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJ7eyBjb250cnkuY291bnRyeUlzb0NvZGUgfX1cIj5cbiAgICAgICAgICAgICAgPHdhdHQtZmxhZyBbY291bnRyeV09XCJjb250cnkuY291bnRyeUlzb0NvZGVcIiAvPlxuICAgICAgICAgICAgICA8ZGl2Pnt7IGdldENvdW50cnlOYW1lKGNvbnRyeS5jb3VudHJ5SXNvQ29kZSkgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbCgpXCJcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJ0ZWxcIlxuICAgICAgICAgIGlucHV0bW9kZT1cInRlbFwiXG4gICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2woKVwiXG4gICAgICAgICAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICAgICAgICAgIChpbnB1dCk9XCJvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgW21hc2tpdG9dPVwibWFza1wiXG4gICAgICAgICAgI3Bob25lTnVtYmVySW5wdXRcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJ3YXR0LWZpZWxkLWhpbnRcIiBzZWxlY3Q9XCJ3YXR0LWZpZWxkLWhpbnRcIiAvPlxuICAgICAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJ3YXR0LWZpZWxkLWVycm9yXCIgc2VsZWN0PVwid2F0dC1maWVsZC1lcnJvclwiIC8+XG4gICAgICBAaWYgKGZvcm1Db250cm9sKCkuaGFzRXJyb3IoJ2ludmFsaWRQaG9uZScpKSB7XG4gICAgICAgIDx3YXR0LWZpZWxkLWVycm9yPiB7eyBpbnRsLmludmFsaWRQaG9uZU51bWJlciB9fSA8L3dhdHQtZmllbGQtZXJyb3I+XG4gICAgICB9XG4gICAgPC93YXR0LWZpZWxkPlxuICBgLFxuICBzdHlsZVVybDogJy4vd2F0dC1waG9uZS1maWVsZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFdhdHRQaG9uZUZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIC8qKiBAaWdub3JlICovXG4gIHJlYWRvbmx5IGNvdW50cmllczogQ29udHJ5W10gPSBbXG4gICAgeyBjb3VudHJ5SXNvQ29kZTogJ0RLJywgcGhvbmVFeHRlbnNpb246ICcrNDUnIH0sXG4gICAgeyBjb3VudHJ5SXNvQ29kZTogJ1NFJywgcGhvbmVFeHRlbnNpb246ICcrNDYnIH0sXG4gICAgeyBjb3VudHJ5SXNvQ29kZTogJ05PJywgcGhvbmVFeHRlbnNpb246ICcrNDcnIH0sXG4gICAgeyBjb3VudHJ5SXNvQ29kZTogJ0dCJywgcGhvbmVFeHRlbnNpb246ICcrNDQnIH0sXG4gICAgeyBjb3VudHJ5SXNvQ29kZTogJ0RFJywgcGhvbmVFeHRlbnNpb246ICcrNDknIH0sXG4gICAgeyBjb3VudHJ5SXNvQ29kZTogJ0ZJJywgcGhvbmVFeHRlbnNpb246ICcrMzU4JyB9LFxuICAgIHsgY291bnRyeUlzb0NvZGU6ICdQTCcsIHBob25lRXh0ZW5zaW9uOiAnKzQ4JyB9LFxuICAgIHsgY291bnRyeUlzb0NvZGU6ICdOTCcsIHBob25lRXh0ZW5zaW9uOiAnKzMxJyB9LFxuICAgIHsgY291bnRyeUlzb0NvZGU6ICdDSCcsIHBob25lRXh0ZW5zaW9uOiAnKzQxJyB9LFxuICBdO1xuXG4gIGZvcm1Db250cm9sID0gaW5wdXQucmVxdWlyZWQ8Rm9ybUNvbnRyb2w+KCk7XG4gIGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIGNob3NlbkNvdW50cnkgPSBzaWduYWw8Q29udHJ5Pih0aGlzLmNvdW50cmllc1swXSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbWFzayA9IE1BU0tJVE9fREVGQVVMVF9PUFRJT05TO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIGludGwgPSBpbmplY3QoV2F0dFBob25lRmllbGRJbnRsU2VydmljZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLndhdHQtZmllbGQtZGlzYWJsZWQnKVxuICBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgdmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBWaWV3Q2hpbGQoJ3Bob25lTnVtYmVySW5wdXQnKSBwaG9uZU51bWJlcklucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldHVwKCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnN0IGNvdW50cnkgPSB0aGlzLmNvdW50cmllcy5maW5kKChjb3VudHJ5KSA9PiB2YWx1ZS5zdGFydHNXaXRoKGNvdW50cnkucGhvbmVFeHRlbnNpb24pKTtcblxuICAgICAgaWYgKGNvdW50cnkpIHtcbiAgICAgICAgLy8gRXhjbHVkZSBTaWduYWwgZnJvbSBiZWluZyB0cmFja2VkXG4gICAgICAgIC8vIGluIGNhc2UgdGhlIHBhcmVudCBjb21wb25lbnQgc2V0cyB0aGUgdmFsdWUgaW5zaWRlIGFuIGBlZmZlY3RgLlxuICAgICAgICAvLyBXaXRob3V0IHRoaXMsIHVwZGF0aW5nIHRoZSBTaWduYWwgaW50ZXJuYWx5IHRyaWdnZXJzIHRoZSBwYXJyZW50IGBlZmZlY3RgIHRvIHJlLXJ1bi5cbiAgICAgICAgLy8gTm90ZTogUmV2aXNpdCBvbmNlIHYxOSBpcyByZWxlYXNlZCBiZWNhdXNlIHRoZSBgZWZmZWN0YCBBUEkgaGFzIGNoYW5nZWRcbiAgICAgICAgLy8gc2lnbmlmaWNhbnRseSBhbmQgdGhpcyBtaWdodCBub3QgYmUgbmVjZXNzYXJ5IGFueW1vcmVcbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNldENvdW50cnkoY291bnRyeSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHZhbHVlID0gbWFza2l0b1RyYW5zZm9ybSh2YWx1ZSwgdGhpcy5tYXNrKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgLyogbm9vcCBmdW5jdGlvbiAqL1xuICB9O1xuXG4gIC8qKiBAaWdub3JlICovXG4gIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICAvKiBub29wIGZ1bmN0aW9uICovXG4gIH07XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgc2VsZWN0ZWRDb250cnkoeyB2YWx1ZSB9OiBNYXRTZWxlY3RDaGFuZ2UpIHtcbiAgICBjb25zdCBjb3VudHJ5ID0gdGhpcy5jb3VudHJpZXMuZmluZCgoY29udHJ5KSA9PiBjb250cnkuY291bnRyeUlzb0NvZGUgPT09IHZhbHVlKTtcblxuICAgIGlmICghY291bnRyeSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcmVmaXggbm90IGZvdW5kJyk7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRDb3VudHJ5KGNvdW50cnkpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2woKS5yZXNldCgpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnBob25lTnVtYmVySW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH0sIDEwMCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBzZXRDb3VudHJ5KGNvdW50cnk6IENvbnRyeSkge1xuICAgIHRoaXMuY2hvc2VuQ291bnRyeS5zZXQoY291bnRyeSk7XG4gICAgdGhpcy5zZXR1cCgpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgb25DaGFuZ2VkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCk/LnZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZVBob25lT3B0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBwaG9uZU9wdGlvbnMgPSBtYXNraXRvUGhvbmVPcHRpb25zR2VuZXJhdG9yKHtcbiAgICAgIGNvdW50cnlJc29Db2RlOiB0aGlzLmNob3NlbkNvdW50cnkoKS5jb3VudHJ5SXNvQ29kZSxcbiAgICAgIG1ldGFkYXRhOiBwaG9uZU1ldGFkYXRhLFxuICAgICAgc2VwYXJhdG9yOiAnICcsXG4gICAgfSk7XG5cbiAgICB0aGlzLm1hc2sgPSBwaG9uZU9wdGlvbnM7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIHNldHVwKCk6IHZvaWQge1xuICAgIHRoaXMuZ2VuZXJhdGVQaG9uZU9wdGlvbnMoKTtcbiAgICB0aGlzLnNldFZhbGlkYXRvcigpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBzZXRWYWxpZGF0b3IoKSB7XG4gICAgY29uc3QgY291bnRyeUNvZGUgPSB0aGlzLmNob3NlbkNvdW50cnkoKS5jb3VudHJ5SXNvQ29kZTtcbiAgICB0aGlzLmZvcm1Db250cm9sKCkuYWRkVmFsaWRhdG9ycyhwaG9uZVZhbGlkYXRvcihjb3VudHJ5Q29kZSkpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgZ2V0Q291bnRyeU5hbWUoY291bnRyeUlzb0NvZGU6IENvdW50cnlDb2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaW50bFtjb3VudHJ5SXNvQ29kZSBhcyBrZXlvZiBXYXR0UGhvbmVGaWVsZEludGxTZXJ2aWNlXTtcbiAgfVxufVxuIl19
|
|
@@ -289,7 +289,7 @@ export class WattDatepickerComponent extends WattPickerBase {
|
|
|
289
289
|
return maybeDateInDanishTimeZone;
|
|
290
290
|
}
|
|
291
291
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
292
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattDatepickerComponent, isStandalone: true, selector: "watt-datepicker", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, rangeMonthOnlyMode: { classPropertyName: "rangeMonthOnlyMode", publicName: "rangeMonthOnlyMode", isSignal: true, isRequired: false, transformFunction: null }, startAt: { classPropertyName: "startAt", publicName: "startAt", isSignal: true, isRequired: false, transformFunction: null }, dateClass: { classPropertyName: "dateClass", publicName: "dateClass", isSignal: true, isRequired: false, transformFunction: null }, canStepThroughDays: { classPropertyName: "canStepThroughDays", publicName: "canStepThroughDays", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: MatFormFieldControl, useExisting: WattDatepickerComponent }], viewQueries: [{ propertyName: "matEndDate", first: true, predicate: MatEndDate, descendants: true, isSignal: true }, { propertyName: "matStartDate", first: true, predicate: MatStartDate, descendants: true, isSignal: true }, { propertyName: "matDateRangeInput", first: true, predicate: MatDateRangeInput, descendants: true, isSignal: true }, { propertyName: "matDatepickerInput", first: true, predicate: MatDatepickerInput, descendants: true, isSignal: true }, { propertyName: "matDateRangePicker", first: true, predicate: MatDateRangePicker, descendants: true, isSignal: true }, { propertyName: "actualInput", first: true, predicate: ["actualInput"], descendants: true, isSignal: true }, { propertyName: "input", first: true, predicate: ["dateInput"], descendants: true, isSignal: true }, { propertyName: "endInput", first: true, predicate: ["endDateInput"], descendants: true, isSignal: true }, { propertyName: "startInput", first: true, predicate: ["startDateInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<watt-field [control]=\"control\" [label]=\"label()\">\n @if (range) {\n <mat-date-range-input\n [disabled]=\"disabled\"\n [rangePicker]=\"rangeDatepicker\"\n [min]=\"min() ?? null\"\n [max]=\"max() ?? null\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut($event)\"\n >\n <input\n inert\n aria-label=\"start-date-input\"\n matStartDate\n #startDateInput\n [readOnly]=\"rangeMonthOnlyMode()\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [hidden]=\"true\"\n />\n\n <input\n inert\n aria-label=\"end-date-input\"\n matEndDate\n #endDateInput\n [readOnly]=\"rangeMonthOnlyMode()\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [hidden]=\"true\"\n />\n </mat-date-range-input>\n <input #actualInput class=\"mask-input\" [disabled]=\"disabled\" />\n <watt-placeholder-mask\n [primaryInputElement]=\"actualInput\"\n [mask]=\"rangeInputMask()\"\n [placeholder]=\"rangePlaceholder\"\n (maskApplied)=\"rangeInputChanged($event)\"\n />\n\n <watt-button\n variant=\"icon\"\n icon=\"date\"\n [disabled]=\"disabled\"\n [attr.aria-pressed]=\"false\"\n (click)=\"rangeDatepicker.open()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut($event)\"\n />\n\n <mat-date-range-picker\n [panelClass]=\"rangeMonthOnlyMode() ? 'watt-datepicker-range__panel--month-only' : ''\"\n [startView]=\"rangeMonthOnlyMode() ? 'multi-year' : 'month'\"\n [startAt]=\"startAt()\"\n (monthSelected)=\"onMonthSelected($event)\"\n (closed)=\"rangePickerClosed()\"\n #rangeDatepicker\n />\n } @else {\n <input\n inert\n matInput\n tabindex=\"-1\"\n aria-label=\"date-input\"\n #dateInput\n autocomplete=\"off\"\n spellcheck=\"false\"\n [disabled]=\"disabled\"\n [min]=\"min()\"\n [max]=\"max()\"\n [matDatepicker]=\"singleDatepicker\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut($event)\"\n />\n <input #actualInput class=\"mask-input\" [disabled]=\"disabled\" />\n <watt-placeholder-mask\n [primaryInputElement]=\"actualInput\"\n [mask]=\"inputMask()\"\n [placeholder]=\"placeholder\"\n (maskApplied)=\"inputChanged($event)\"\n />\n\n <watt-button\n wattSuffix\n variant=\"icon\"\n icon=\"date\"\n [disabled]=\"disabled\"\n (click)=\"singleDatepicker.open()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut($event)\"\n />\n\n <mat-datepicker\n #singleDatepicker\n panelClass=\"watt-datepicker-single__panel\"\n [dateClass]=\"dateClass()\"\n [startAt]=\"startAt()\"\n (closed)=\"datepickerClosed()\"\n />\n }\n\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n <ng-content ngProjectAs=\"watt-field-warning\" select=\"watt-field-warning\" />\n</watt-field>\n\n@if (!range && canStepThroughDays()) {\n <span\n class=\"watt-datepicker-single__step-through\"\n [class.watt-datepicker-single__has-label]=\"!!label()\"\n >\n <watt-button\n variant=\"icon\"\n icon=\"left\"\n (click)=\"prevDay()\"\n [disabled]=\"disabled || isPrevDayButtonDisabled()\"\n />\n <watt-button\n variant=\"icon\"\n icon=\"right\"\n (click)=\"nextDay()\"\n [disabled]=\"disabled || isNextDayButtonDisabled()\"\n />\n </span>\n}\n", styles: ["watt-datepicker{display:flex;align-items:center;width:100%}watt-datepicker watt-button[variant=icon]{margin-left:auto}watt-datepicker watt-button[variant=icon] .watt-button--icon{height:42px}watt-datepicker mat-datepicker,watt-datepicker mat-date-range-picker{display:none}watt-datepicker input.mat-date-range-input-inner,watt-datepicker input.mat-mdc-input-element,watt-datepicker .mat-date-range-input-mirror,watt-datepicker input.mask-input{font-family:Droid Sans Mono,monospace}watt-datepicker input.mat-date-range-input-inner,watt-datepicker input.mat-mdc-input-element,watt-datepicker input.mask-input{border:none;caret-color:var(--watt-color-neutral-black);letter-spacing:-.03em;-webkit-background-clip:text;-moz-background-clip:text;background-clip:text;color:transparent}watt-datepicker input.mask-input{color:#000}watt-datepicker input.mask-input{position:absolute;min-width:100%;padding:2px 1px}watt-datepicker input.mask-input:focus-visible{outline:none}watt-datepicker .mat-date-range-input-container{align-items:initial}watt-datepicker .mat-date-range-input-start-wrapper,watt-datepicker .mat-date-range-input-end-wrapper{max-width:calc(50% - var(--watt-space-s));overflow:visible;position:relative}watt-datepicker .mat-date-range-input-separator{display:flex;align-items:center}watt-datepicker .mat-date-range-input-separator-hidden,watt-datepicker .mat-date-range-input-separator{opacity:0!important}watt-datepicker .mat-date-range-input-inner::-webkit-input-placeholder{color:var(--watt-color-neutral-grey-500)!important;-webkit-text-fill-color:var(--watt-color-neutral-grey-500)}watt-datepicker watt-button .mat-button{background:transparent}watt-datepicker:has(.watt-datepicker-single__step-through){align-items:flex-start}watt-datepicker:has(.watt-datepicker-single__step-through) .watt-datepicker-single__step-through{display:flex;margin-top:1px}watt-datepicker:has(.watt-datepicker-single__has-label) .watt-datepicker-single__step-through{margin-top:28px}.watt-datepicker-range__panel--month-only .mat-calendar-period-button{pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i2.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName", "autoFocus", "showErrors"] }, { kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "component", type: WattPlaceholderMaskComponent, selector: "watt-placeholder-mask", inputs: ["primaryInputElement", "secondaryInputElement", "mask", "placeholder"], outputs: ["maskApplied"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
292
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: WattDatepickerComponent, isStandalone: true, selector: "watt-datepicker", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, rangeMonthOnlyMode: { classPropertyName: "rangeMonthOnlyMode", publicName: "rangeMonthOnlyMode", isSignal: true, isRequired: false, transformFunction: null }, startAt: { classPropertyName: "startAt", publicName: "startAt", isSignal: true, isRequired: false, transformFunction: null }, dateClass: { classPropertyName: "dateClass", publicName: "dateClass", isSignal: true, isRequired: false, transformFunction: null }, canStepThroughDays: { classPropertyName: "canStepThroughDays", publicName: "canStepThroughDays", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: MatFormFieldControl, useExisting: WattDatepickerComponent }], viewQueries: [{ propertyName: "matEndDate", first: true, predicate: MatEndDate, descendants: true, isSignal: true }, { propertyName: "matStartDate", first: true, predicate: MatStartDate, descendants: true, isSignal: true }, { propertyName: "matDateRangeInput", first: true, predicate: MatDateRangeInput, descendants: true, isSignal: true }, { propertyName: "matDatepickerInput", first: true, predicate: MatDatepickerInput, descendants: true, isSignal: true }, { propertyName: "matDateRangePicker", first: true, predicate: MatDateRangePicker, descendants: true, isSignal: true }, { propertyName: "actualInput", first: true, predicate: ["actualInput"], descendants: true, isSignal: true }, { propertyName: "input", first: true, predicate: ["dateInput"], descendants: true, isSignal: true }, { propertyName: "endInput", first: true, predicate: ["endDateInput"], descendants: true, isSignal: true }, { propertyName: "startInput", first: true, predicate: ["startDateInput"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<watt-field [control]=\"control\" [label]=\"label()\">\n @if (range) {\n <mat-date-range-input\n [disabled]=\"disabled\"\n [rangePicker]=\"rangeDatepicker\"\n [min]=\"min() ?? null\"\n [max]=\"max() ?? null\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut($event)\"\n >\n <input\n inert\n aria-label=\"start-date-input\"\n matStartDate\n #startDateInput\n [readOnly]=\"rangeMonthOnlyMode()\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [hidden]=\"true\"\n />\n\n <input\n inert\n aria-label=\"end-date-input\"\n matEndDate\n #endDateInput\n [readOnly]=\"rangeMonthOnlyMode()\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [hidden]=\"true\"\n />\n </mat-date-range-input>\n <input #actualInput class=\"mask-input\" [disabled]=\"disabled\" />\n <watt-placeholder-mask\n [primaryInputElement]=\"actualInput\"\n [mask]=\"rangeInputMask()\"\n [placeholder]=\"rangePlaceholder\"\n (maskApplied)=\"rangeInputChanged($event)\"\n />\n\n <watt-button\n variant=\"icon\"\n icon=\"date\"\n [disabled]=\"disabled\"\n [attr.aria-pressed]=\"false\"\n (click)=\"rangeDatepicker.open()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut($event)\"\n />\n\n <mat-date-range-picker\n [panelClass]=\"rangeMonthOnlyMode() ? 'watt-datepicker-range__panel--month-only' : ''\"\n [startView]=\"rangeMonthOnlyMode() ? 'multi-year' : 'month'\"\n [startAt]=\"startAt()\"\n (monthSelected)=\"onMonthSelected($event)\"\n (closed)=\"rangePickerClosed()\"\n #rangeDatepicker\n />\n } @else {\n <input\n inert\n matInput\n tabindex=\"-1\"\n aria-label=\"date-input\"\n #dateInput\n autocomplete=\"off\"\n spellcheck=\"false\"\n [disabled]=\"disabled\"\n [min]=\"min()\"\n [max]=\"max()\"\n [matDatepicker]=\"singleDatepicker\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut($event)\"\n />\n <input #actualInput class=\"mask-input\" [disabled]=\"disabled\" />\n <watt-placeholder-mask\n [primaryInputElement]=\"actualInput\"\n [mask]=\"inputMask()\"\n [placeholder]=\"placeholder\"\n (maskApplied)=\"inputChanged($event)\"\n />\n\n <watt-button\n wattSuffix\n variant=\"icon\"\n icon=\"date\"\n [disabled]=\"disabled\"\n (click)=\"singleDatepicker.open()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut($event)\"\n />\n\n <mat-datepicker\n #singleDatepicker\n panelClass=\"watt-datepicker-single__panel\"\n [dateClass]=\"dateClass()\"\n [startAt]=\"startAt()\"\n (closed)=\"datepickerClosed()\"\n />\n }\n\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n <ng-content ngProjectAs=\"watt-field-warning\" select=\"watt-field-warning\" />\n</watt-field>\n\n@if (!range && canStepThroughDays()) {\n <span\n class=\"watt-datepicker-single__step-through\"\n [class.watt-datepicker-single__has-label]=\"!!label()\"\n >\n <watt-button\n variant=\"icon\"\n icon=\"left\"\n (click)=\"prevDay()\"\n [disabled]=\"disabled || isPrevDayButtonDisabled()\"\n />\n <watt-button\n variant=\"icon\"\n icon=\"right\"\n (click)=\"nextDay()\"\n [disabled]=\"disabled || isNextDayButtonDisabled()\"\n />\n </span>\n}\n", styles: ["watt-datepicker{display:flex;align-items:center;width:100%}watt-datepicker watt-button[variant=icon]{margin-left:auto}watt-datepicker watt-button[variant=icon] .watt-button--icon{height:42px}watt-datepicker mat-datepicker,watt-datepicker mat-date-range-picker{display:none}watt-datepicker input.mat-date-range-input-inner,watt-datepicker input.mat-mdc-input-element,watt-datepicker .mat-date-range-input-mirror,watt-datepicker input.mask-input{font-family:Droid Sans Mono,monospace}watt-datepicker input.mat-date-range-input-inner,watt-datepicker input.mat-mdc-input-element,watt-datepicker input.mask-input{border:none;caret-color:var(--watt-color-neutral-black);letter-spacing:-.03em;-webkit-background-clip:text;-moz-background-clip:text;background-clip:text;color:transparent}watt-datepicker input.mask-input{color:#000}watt-datepicker input.mask-input{position:absolute;min-width:100%;padding:2px 1px}watt-datepicker input.mask-input:focus-visible{outline:none}watt-datepicker .mat-date-range-input-container{align-items:initial}watt-datepicker .mat-date-range-input-start-wrapper,watt-datepicker .mat-date-range-input-end-wrapper{max-width:calc(50% - var(--watt-space-s));overflow:visible;position:relative}watt-datepicker .mat-date-range-input-separator{display:flex;align-items:center}watt-datepicker .mat-date-range-input-separator-hidden,watt-datepicker .mat-date-range-input-separator{opacity:0!important}watt-datepicker .mat-date-range-input-inner::-webkit-input-placeholder{color:var(--watt-color-neutral-grey-500)!important;-webkit-text-fill-color:var(--watt-color-neutral-grey-500)}watt-datepicker watt-button .mat-button{background:transparent}watt-datepicker:has(.watt-datepicker-single__step-through){align-items:flex-start}watt-datepicker:has(.watt-datepicker-single__step-through) .watt-datepicker-single__step-through{display:flex;margin-top:1px}watt-datepicker:has(.watt-datepicker-single__has-label) .watt-datepicker-single__step-through{margin-top:28px}.watt-datepicker-range__panel--month-only .mat-calendar-period-button{pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i2.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i2.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i2.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "component", type: WattFieldComponent, selector: "watt-field", inputs: ["control", "label", "id", "chipMode", "tooltip", "placeholder", "anchorName", "displayMode", "autoFocus", "showErrors"] }, { kind: "component", type: WattButtonComponent, selector: "watt-button", inputs: ["icon", "variant", "size", "type", "formId", "disabled", "loading"] }, { kind: "component", type: WattPlaceholderMaskComponent, selector: "watt-placeholder-mask", inputs: ["primaryInputElement", "secondaryInputElement", "mask", "placeholder"], outputs: ["maskApplied"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
293
293
|
}
|
|
294
294
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: WattDatepickerComponent, decorators: [{
|
|
295
295
|
type: Component,
|
|
@@ -301,4 +301,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
301
301
|
WattPlaceholderMaskComponent,
|
|
302
302
|
], template: "<!--\n@license\nCopyright 2020 Energinet DataHub A/S\n\nLicensed under the Apache License, Version 2.0 (the \"License2\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n-->\n<watt-field [control]=\"control\" [label]=\"label()\">\n @if (range) {\n <mat-date-range-input\n [disabled]=\"disabled\"\n [rangePicker]=\"rangeDatepicker\"\n [min]=\"min() ?? null\"\n [max]=\"max() ?? null\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut($event)\"\n >\n <input\n inert\n aria-label=\"start-date-input\"\n matStartDate\n #startDateInput\n [readOnly]=\"rangeMonthOnlyMode()\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [hidden]=\"true\"\n />\n\n <input\n inert\n aria-label=\"end-date-input\"\n matEndDate\n #endDateInput\n [readOnly]=\"rangeMonthOnlyMode()\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n [hidden]=\"true\"\n />\n </mat-date-range-input>\n <input #actualInput class=\"mask-input\" [disabled]=\"disabled\" />\n <watt-placeholder-mask\n [primaryInputElement]=\"actualInput\"\n [mask]=\"rangeInputMask()\"\n [placeholder]=\"rangePlaceholder\"\n (maskApplied)=\"rangeInputChanged($event)\"\n />\n\n <watt-button\n variant=\"icon\"\n icon=\"date\"\n [disabled]=\"disabled\"\n [attr.aria-pressed]=\"false\"\n (click)=\"rangeDatepicker.open()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut($event)\"\n />\n\n <mat-date-range-picker\n [panelClass]=\"rangeMonthOnlyMode() ? 'watt-datepicker-range__panel--month-only' : ''\"\n [startView]=\"rangeMonthOnlyMode() ? 'multi-year' : 'month'\"\n [startAt]=\"startAt()\"\n (monthSelected)=\"onMonthSelected($event)\"\n (closed)=\"rangePickerClosed()\"\n #rangeDatepicker\n />\n } @else {\n <input\n inert\n matInput\n tabindex=\"-1\"\n aria-label=\"date-input\"\n #dateInput\n autocomplete=\"off\"\n spellcheck=\"false\"\n [disabled]=\"disabled\"\n [min]=\"min()\"\n [max]=\"max()\"\n [matDatepicker]=\"singleDatepicker\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut($event)\"\n />\n <input #actualInput class=\"mask-input\" [disabled]=\"disabled\" />\n <watt-placeholder-mask\n [primaryInputElement]=\"actualInput\"\n [mask]=\"inputMask()\"\n [placeholder]=\"placeholder\"\n (maskApplied)=\"inputChanged($event)\"\n />\n\n <watt-button\n wattSuffix\n variant=\"icon\"\n icon=\"date\"\n [disabled]=\"disabled\"\n (click)=\"singleDatepicker.open()\"\n (focusin)=\"onFocusIn()\"\n (focusout)=\"onFocusOut($event)\"\n />\n\n <mat-datepicker\n #singleDatepicker\n panelClass=\"watt-datepicker-single__panel\"\n [dateClass]=\"dateClass()\"\n [startAt]=\"startAt()\"\n (closed)=\"datepickerClosed()\"\n />\n }\n\n <ng-content />\n <ng-content ngProjectAs=\"watt-field-hint\" select=\"watt-field-hint\" />\n <ng-content ngProjectAs=\"watt-field-error\" select=\"watt-field-error\" />\n <ng-content ngProjectAs=\"watt-field-warning\" select=\"watt-field-warning\" />\n</watt-field>\n\n@if (!range && canStepThroughDays()) {\n <span\n class=\"watt-datepicker-single__step-through\"\n [class.watt-datepicker-single__has-label]=\"!!label()\"\n >\n <watt-button\n variant=\"icon\"\n icon=\"left\"\n (click)=\"prevDay()\"\n [disabled]=\"disabled || isPrevDayButtonDisabled()\"\n />\n <watt-button\n variant=\"icon\"\n icon=\"right\"\n (click)=\"nextDay()\"\n [disabled]=\"disabled || isNextDayButtonDisabled()\"\n />\n </span>\n}\n", styles: ["watt-datepicker{display:flex;align-items:center;width:100%}watt-datepicker watt-button[variant=icon]{margin-left:auto}watt-datepicker watt-button[variant=icon] .watt-button--icon{height:42px}watt-datepicker mat-datepicker,watt-datepicker mat-date-range-picker{display:none}watt-datepicker input.mat-date-range-input-inner,watt-datepicker input.mat-mdc-input-element,watt-datepicker .mat-date-range-input-mirror,watt-datepicker input.mask-input{font-family:Droid Sans Mono,monospace}watt-datepicker input.mat-date-range-input-inner,watt-datepicker input.mat-mdc-input-element,watt-datepicker input.mask-input{border:none;caret-color:var(--watt-color-neutral-black);letter-spacing:-.03em;-webkit-background-clip:text;-moz-background-clip:text;background-clip:text;color:transparent}watt-datepicker input.mask-input{color:#000}watt-datepicker input.mask-input{position:absolute;min-width:100%;padding:2px 1px}watt-datepicker input.mask-input:focus-visible{outline:none}watt-datepicker .mat-date-range-input-container{align-items:initial}watt-datepicker .mat-date-range-input-start-wrapper,watt-datepicker .mat-date-range-input-end-wrapper{max-width:calc(50% - var(--watt-space-s));overflow:visible;position:relative}watt-datepicker .mat-date-range-input-separator{display:flex;align-items:center}watt-datepicker .mat-date-range-input-separator-hidden,watt-datepicker .mat-date-range-input-separator{opacity:0!important}watt-datepicker .mat-date-range-input-inner::-webkit-input-placeholder{color:var(--watt-color-neutral-grey-500)!important;-webkit-text-fill-color:var(--watt-color-neutral-grey-500)}watt-datepicker watt-button .mat-button{background:transparent}watt-datepicker:has(.watt-datepicker-single__step-through){align-items:flex-start}watt-datepicker:has(.watt-datepicker-single__step-through) .watt-datepicker-single__step-through{display:flex;margin-top:1px}watt-datepicker:has(.watt-datepicker-single__has-label) .watt-datepicker-single__step-through{margin-top:28px}.watt-datepicker-range__panel--month-only .mat-calendar-period-button{pointer-events:none}\n"] }]
|
|
303
303
|
}], ctorParameters: () => [], propDecorators: { max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], rangeMonthOnlyMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "rangeMonthOnlyMode", required: false }] }], startAt: [{ type: i0.Input, args: [{ isSignal: true, alias: "startAt", required: false }] }], dateClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "dateClass", required: false }] }], canStepThroughDays: [{ type: i0.Input, args: [{ isSignal: true, alias: "canStepThroughDays", required: false }] }], matEndDate: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatEndDate), { isSignal: true }] }], matStartDate: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatStartDate), { isSignal: true }] }], matDateRangeInput: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatDateRangeInput), { isSignal: true }] }], matDatepickerInput: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatDatepickerInput), { isSignal: true }] }], matDateRangePicker: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatDateRangePicker), { isSignal: true }] }], actualInput: [{ type: i0.ViewChild, args: ['actualInput', { isSignal: true }] }], input: [{ type: i0.ViewChild, args: ['dateInput', { isSignal: true }] }], endInput: [{ type: i0.ViewChild, args: ['endDateInput', { isSignal: true }] }], startInput: [{ type: i0.ViewChild, args: ['startDateInput', { isSignal: true }] }] } });
|
|
304
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kYXRlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL3BpY2tlci9kYXRlcGlja2VyL3dhdHQtZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9waWNrZXIvZGF0ZXBpY2tlci93YXR0LWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBRVosZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBbUIsU0FBUyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUNMLFVBQVUsRUFDVixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsbUJBQW1CLEdBRXBCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdGLE9BQU8sRUFDTCxLQUFLLEVBR0wsaUJBQWlCLEdBRWxCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0s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LENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsT0FBTyx5QkFBeUIsQ0FBQztJQUNuQyxDQUFDO3VHQTVVVSx1QkFBdUI7MkZBQXZCLHVCQUF1QixzK0JBWHZCLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLENBQUMsc0VBMEJuQyxVQUFVLCtGQUNOLFlBQVksb0dBQ0YsaUJBQWlCLHFHQUNmLGtCQUFrQixxR0FDbEIsa0JBQWtCLG1nQkMvR3BGLDZvSUE4SUEsOGtFRDFESSxjQUFjLGlZQUNkLG1CQUFtQixrNUJBRW5CLGtCQUFrQiwwS0FDbEIsbUJBQW1CLHNJQUNuQiw0QkFBNEI7OzJGQUduQix1QkFBdUI7a0JBZm5DLFNBQVM7K0JBQ0UsaUJBQWlCLGFBR2hCLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyx5QkFBeUIsRUFBRSxDQUFDLGlCQUNwRSxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUVuQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsNEJBQTRCO3FCQUM3QjtveUJBaUIrQyxVQUFVLDJGQUNOLFlBQVksZ0dBQ0YsaUJBQWlCLGlHQUNmLGtCQUFrQixpR0FDbEIsa0JBQWtCLHNFQUU1QixhQUFhLCtEQUNWLFdBQVcsa0VBQ1IsY0FBYyxvRUFDWixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5pbXBvcnQge1xuICBpbnB1dCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGNvbXB1dGVkLFxuICBDb21wb25lbnQsXG4gIExPQ0FMRV9JRCxcbiAgdmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBsaW5rZWRTaWduYWwsXG4gIEFmdGVyVmlld0luaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOZ0NvbnRyb2wsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgTWF0RW5kRGF0ZSxcbiAgTWF0U3RhcnREYXRlLFxuICBNYXREYXRlUmFuZ2VJbnB1dCxcbiAgTWF0RGF0ZVJhbmdlUGlja2VyLFxuICBNYXREYXRlcGlja2VySW5wdXQsXG4gIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gIE1hdENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb24sXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuXG5pbXBvcnQgeyBtYXNraXRvRGF0ZU9wdGlvbnNHZW5lcmF0b3IsIG1hc2tpdG9EYXRlUmFuZ2VPcHRpb25zR2VuZXJhdG9yIH0gZnJvbSAnQG1hc2tpdG8va2l0JztcblxuaW1wb3J0IHtcbiAgZGF5anMsXG4gIFdhdHRSYW5nZSxcbiAgV2F0dERhdGVSYW5nZSxcbiAgV2F0dExvY2FsZVNlcnZpY2UsXG4gIFdhdHRTdXBwb3J0ZWRMb2NhbGVzLFxufSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvY29yZS9kYXRlJztcblxuaW1wb3J0IHsgV2F0dEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ZpZWxkJztcbmltcG9ydCB7IFdhdHRCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvYnV0dG9uJztcblxuaW1wb3J0IHtcbiAgV2F0dFBpY2tlckJhc2UsXG4gIFdhdHRQaWNrZXJWYWx1ZSxcbiAgV2F0dFBsYWNlaG9sZGVyTWFza0NvbXBvbmVudCxcbn0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3BpY2tlci9fX3NoYXJlZCc7XG5cbmNvbnN0IGRhdGVTaG9ydEZvcm1hdCA9ICdERC1NTS1ZWVlZJztcbmV4cG9ydCBjb25zdCBkYW5pc2hUaW1lWm9uZUlkZW50aWZpZXIgPSAnRXVyb3BlL0NvcGVuaGFnZW4nO1xuXG4vKipcbiAqIFVzYWdlOlxuICogYGltcG9ydCB7IFdhdHREYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2RhdGVwaWNrZXInO2BcbiAqXG4gKiBJTVBPUlRBTlQ6XG4gKiBUaGUgc3R5bGluZyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIG91ciBtb25vc3BhY2VkIGZvbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhdHQtZGF0ZXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi93YXR0LWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93YXR0LWRhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogV2F0dERhdGVwaWNrZXJDb21wb25lbnQgfV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuXG4gICAgV2F0dEZpZWxkQ29tcG9uZW50LFxuICAgIFdhdHRCdXR0b25Db21wb25lbnQsXG4gICAgV2F0dFBsYWNlaG9sZGVyTWFza0NvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dERhdGVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBXYXR0UGlja2VyQmFzZSBpbXBsZW1lbnRzIFZhbGlkYXRvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNoYW5nZURldGVjdGlvblJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBuZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7IG9wdGlvbmFsOiB0cnVlLCBzZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoV2F0dExvY2FsZVNlcnZpY2UpO1xuICBwcml2YXRlIGxvY2FsZSA9IGluamVjdDxXYXR0U3VwcG9ydGVkTG9jYWxlcz4oTE9DQUxFX0lEKTtcblxuICBtYXggPSBpbnB1dDxEYXRlPigpO1xuICBtaW4gPSBpbnB1dDxEYXRlPigpO1xuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oJycpO1xuICByYW5nZU1vbnRoT25seU1vZGUgPSBpbnB1dChmYWxzZSk7XG4gIHN0YXJ0QXQgPSBpbnB1dDxEYXRlIHwgbnVsbD4obnVsbCk7XG4gIGRhdGVDbGFzcyA9IGlucHV0PE1hdENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb248RGF0ZT4+KCgpID0+ICcnKTtcbiAgY2FuU3RlcFRocm91Z2hEYXlzID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIG1hdEVuZERhdGUgPSB2aWV3Q2hpbGQ8TWF0RW5kRGF0ZTxEYXRlIHwgbnVsbD4+KE1hdEVuZERhdGUpO1xuICBtYXRTdGFydERhdGUgPSB2aWV3Q2hpbGQ8TWF0U3RhcnREYXRlPERhdGUgfCBudWxsPj4oTWF0U3RhcnREYXRlKTtcbiAgbWF0RGF0ZVJhbmdlSW5wdXQgPSB2aWV3Q2hpbGQ8TWF0RGF0ZVJhbmdlSW5wdXQ8RGF0ZSB8IG51bGw+PihNYXREYXRlUmFuZ2VJbnB1dCk7XG4gIG1hdERhdGVwaWNrZXJJbnB1dCA9IHZpZXdDaGlsZDxNYXREYXRlcGlja2VySW5wdXQ8RGF0ZSB8IG51bGw+PihNYXREYXRlcGlja2VySW5wdXQpO1xuICBtYXREYXRlUmFuZ2VQaWNrZXIgPSB2aWV3Q2hpbGQ8TWF0RGF0ZVJhbmdlUGlja2VyPERhdGUgfCBudWxsPj4oTWF0RGF0ZVJhbmdlUGlja2VyKTtcblxuICBhY3R1YWxJbnB1dCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PignYWN0dWFsSW5wdXQnKTtcbiAgb3ZlcnJpZGUgaW5wdXQgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oJ2RhdGVJbnB1dCcpO1xuICBvdmVycmlkZSBlbmRJbnB1dCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PignZW5kRGF0ZUlucHV0Jyk7XG4gIG92ZXJyaWRlIHN0YXJ0SW5wdXQgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oJ3N0YXJ0RGF0ZUlucHV0Jyk7XG5cbiAgcHJvdGVjdGVkIF9wbGFjZWhvbGRlciA9IHRoaXMuZ2V0UGxhY2Vob2xkZXJCeUxvY2FsZSh0aGlzLmxvY2FsZSk7XG5cbiAgcmFuZ2VTZXBhcmF0b3IgPSAnIC0gJztcblxuICByYW5nZVBsYWNlaG9sZGVyID0gdGhpcy5nZXRSYW5nZVBsYWNlaG9sZGVyKCk7XG5cbiAgaW5wdXRNYXNrID0gY29tcHV0ZWQoKCkgPT5cbiAgICBtYXNraXRvRGF0ZU9wdGlvbnNHZW5lcmF0b3Ioe1xuICAgICAgbW9kZTogJ2RkL21tL3l5eXknLFxuICAgICAgc2VwYXJhdG9yOiAnLScsXG4gICAgICBtYXg6IHRoaXMubWF4KCksXG4gICAgICBtaW46IHRoaXMubWluKCksXG4gICAgfSlcbiAgKTtcblxuICByYW5nZUlucHV0TWFzayA9IGNvbXB1dGVkKCgpID0+XG4gICAgbWFza2l0b0RhdGVSYW5nZU9wdGlvbnNHZW5lcmF0b3Ioe1xuICAgICAgbW9kZTogJ2RkL21tL3l5eXknLFxuICAgICAgZGF0ZVNlcGFyYXRvcjogJy0nLFxuICAgICAgbWF4OiB0aGlzLm1heCgpLFxuICAgICAgbWluOiB0aGlzLm1pbigpLFxuICAgIH0pXG4gICk7XG5cbiAgZ2V0UGxhY2Vob2xkZXJCeUxvY2FsZShsb2NhbGU6IFdhdHRTdXBwb3J0ZWRMb2NhbGVzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbG9jYWxlID09PSAnZGEnID8gJ2RkLW1tLcOlw6XDpcOlJyA6ICdkZC1tbS15eXl5JztcbiAgfVxuXG4gIGdldFJhbmdlUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlciArIHRoaXMucmFuZ2VTZXBhcmF0b3IgKyB0aGlzLnBsYWNlaG9sZGVyO1xuICB9XG5cbiAgaXNQcmV2RGF5QnV0dG9uRGlzYWJsZWQgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5pc1ByZXZEYXlCZWZvcmVPckVxdWFsVG9NaW5EYXRlKCkpO1xuICBpc05leHREYXlCdXR0b25EaXNhYmxlZCA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLmlzTmV4dERheUFmdGVyT3JFcXVhbFRvTWF4RGF0ZSgpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihgd2F0dC1kYXRlcGlja2VyLSR7V2F0dERhdGVwaWNrZXJDb21wb25lbnQubmV4dElkKyt9YCk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbG9jYWxlID0gdGhpcy5sb2NhbGVTZXJ2aWNlLmxvY2FsZSgpO1xuICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMuZ2V0UGxhY2Vob2xkZXJCeUxvY2FsZShsb2NhbGUpO1xuICAgICAgdGhpcy5yYW5nZVBsYWNlaG9sZGVyID0gdGhpcy5nZXRSYW5nZVBsYWNlaG9sZGVyKCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5yYW5nZU1vbnRoT25seU1vZGUoKTtcbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uYWRkVmFsaWRhdG9ycyh0aGlzLnZhbGlkYXRlKTtcbiAgfVxuXG4gIHZhbGlkYXRlID0gKHsgdmFsdWUgfTogQWJzdHJhY3RDb250cm9sPFdhdHRSYW5nZTxzdHJpbmc+PikgPT4ge1xuICAgIGlmICghdmFsdWU/LmVuZCB8fCAhdmFsdWU/LnN0YXJ0KSByZXR1cm4gbnVsbDtcbiAgICBpZiAoIXRoaXMucmFuZ2VNb250aE9ubHlNb2RlKCkpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHN0YXJ0ID0gZGF5anModmFsdWUuc3RhcnQpO1xuICAgIGNvbnN0IGVuZCA9IGRheWpzKHZhbHVlLmVuZCk7XG4gICAgcmV0dXJuIHN0YXJ0LmlzU2FtZShzdGFydC5zdGFydE9mKCdtb250aCcpKSAmJiBlbmQuaXNTYW1lKHN0YXJ0LmVuZE9mKCdtb250aCcpKVxuICAgICAgPyBudWxsXG4gICAgICA6IHsgbW9udGhPbmx5OiB0cnVlIH07XG4gIH07XG5cbiAgcHJvdGVjdGVkIGluaXRTaW5nbGVJbnB1dCgpIHtcbiAgICBjb25zdCBtYXREYXRlcGlja2VySW5wdXQgPSB0aGlzLm1hdERhdGVwaWNrZXJJbnB1dCgpO1xuICAgIGlmICh0aGlzLmluaXRpYWxWYWx1ZSAmJiBtYXREYXRlcGlja2VySW5wdXQpIHtcbiAgICAgIG1hdERhdGVwaWNrZXJJbnB1dC52YWx1ZSA9IHRoaXMuaW5pdGlhbFZhbHVlO1xuICAgICAgdGhpcy5kYXRlcGlja2VyQ2xvc2VkKCk7XG4gICAgfVxuICB9XG5cbiAgaW5wdXRDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkYXRlU3RyaW5nID0gdmFsdWUuc2xpY2UoMCwgdGhpcy5wbGFjZWhvbGRlci5sZW5ndGgpO1xuXG4gICAgaWYgKGRhdGVTdHJpbmcubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmNvbnRyb2w/LnNldFZhbHVlKG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChkYXRlU3RyaW5nLmxlbmd0aCAhPT0gdGhpcy5wbGFjZWhvbGRlci5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRlID0gdGhpcy5wYXJzZURhdGVTaG9ydEZvcm1hdChkYXRlU3RyaW5nKTtcbiAgICB0aGlzLmNvbnRyb2w/LnNldFZhbHVlKHRoaXMuZm9ybWF0RGF0ZUZyb21WaWV3VG9Nb2RlbChkYXRlKSk7XG4gIH1cblxuICBkYXRlcGlja2VyQ2xvc2VkKCkge1xuICAgIGNvbnN0IG1hdERhdGVwaWNrZXJJbnB1dCA9IHRoaXMubWF0RGF0ZXBpY2tlcklucHV0KCk7XG4gICAgY29uc3QgYWN0dWFsSW5wdXQgPSB0aGlzLmFjdHVhbElucHV0KCk7XG5cbiAgICBpZiAoIWFjdHVhbElucHV0KSByZXR1cm47XG5cbiAgICBpZiAobWF0RGF0ZXBpY2tlcklucHV0ICYmIG1hdERhdGVwaWNrZXJJbnB1dC52YWx1ZSkge1xuICAgICAgdGhpcy5jb250cm9sPy5zZXRWYWx1ZShtYXREYXRlcGlja2VySW5wdXQudmFsdWUpO1xuXG4gICAgICBhY3R1YWxJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5mb3JtYXREYXRlVGltZUZyb21Nb2RlbFRvVmlldyhcbiAgICAgICAgdGhpcy5mb3JtYXREYXRlRnJvbVZpZXdUb01vZGVsKG1hdERhdGVwaWNrZXJJbnB1dC52YWx1ZSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjdHVhbElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc1ByZXZEYXlCdXR0b25EaXNhYmxlZC5zZXQodGhpcy5pc1ByZXZEYXlCZWZvcmVPckVxdWFsVG9NaW5EYXRlKCkpO1xuICAgIHRoaXMuaXNOZXh0RGF5QnV0dG9uRGlzYWJsZWQuc2V0KHRoaXMuaXNOZXh0RGF5QWZ0ZXJPckVxdWFsVG9NYXhEYXRlKCkpO1xuXG4gICAgYWN0dWFsSW5wdXQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcpKTtcbiAgfVxuXG4gIG9uTW9udGhTZWxlY3RlZChkYXRlOiBEYXRlKSB7XG4gICAgY29uc3QgbWF0RGF0ZVJhbmdlUGlja2VyID0gdGhpcy5tYXREYXRlUmFuZ2VQaWNrZXIoKTtcbiAgICBpZiAobWF0RGF0ZVJhbmdlUGlja2VyICYmIHRoaXMucmFuZ2VNb250aE9ubHlNb2RlKCkgJiYgZGF0ZSkge1xuICAgICAgbWF0RGF0ZVJhbmdlUGlja2VyLnNlbGVjdChkYXlqcyhkYXRlKS5zdGFydE9mKCdtb250aCcpLnRvRGF0ZSgpKTtcbiAgICAgIG1hdERhdGVSYW5nZVBpY2tlci5zZWxlY3QoZGF5anMoZGF0ZSkuZW5kT2YoJ21vbnRoJykudG9EYXRlKCkpO1xuICAgICAgbWF0RGF0ZVJhbmdlUGlja2VyLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGluaXRSYW5nZUlucHV0KCkge1xuICAgIGNvbnN0IG1hdFN0YXJ0RGF0ZSA9IHRoaXMubWF0U3RhcnREYXRlKCk7XG4gICAgY29uc3QgbWF0RW5kRGF0ZSA9IHRoaXMubWF0RW5kRGF0ZSgpO1xuXG4gICAgaWYgKHRoaXMuaW5pdGlhbFZhbHVlICYmIG1hdFN0YXJ0RGF0ZSAmJiBtYXRFbmREYXRlKSB7XG4gICAgICBtYXRTdGFydERhdGUudmFsdWUgPSAodGhpcy5pbml0aWFsVmFsdWUgYXMgV2F0dERhdGVSYW5nZSkuc3RhcnQ7XG4gICAgICBtYXRFbmREYXRlLnZhbHVlID0gKHRoaXMuaW5pdGlhbFZhbHVlIGFzIFdhdHREYXRlUmFuZ2UpLmVuZDtcbiAgICAgIHRoaXMucmFuZ2VQaWNrZXJDbG9zZWQoKTtcbiAgICB9XG4gIH1cblxuICBjbGVhclJhbmdlUGlja2VyKCkge1xuICAgIGNvbnN0IGFjdHVhbElucHV0ID0gdGhpcy5hY3R1YWxJbnB1dCgpO1xuXG4gICAgaWYgKCFhY3R1YWxJbnB1dCkgcmV0dXJuO1xuXG4gICAgdGhpcy5jb250cm9sPy5zZXRWYWx1ZShudWxsKTtcbiAgICBhY3R1YWxJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgYWN0dWFsSW5wdXQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcpKTtcbiAgfVxuXG4gIHJhbmdlSW5wdXRDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzdGFydERhdGVTdHJpbmcgPSB2YWx1ZS5zbGljZSgwLCB0aGlzLnBsYWNlaG9sZGVyLmxlbmd0aCk7XG5cbiAgICBpZiAoc3RhcnREYXRlU3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5jb250cm9sPy5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoc3RhcnREYXRlU3RyaW5nLmxlbmd0aCAhPT0gdGhpcy5wbGFjZWhvbGRlci5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9IHRoaXMucGFyc2VEYXRlU2hvcnRGb3JtYXQoc3RhcnREYXRlU3RyaW5nKTtcbiAgICBjb25zdCBlbmREYXRlU3RyaW5nID0gdmFsdWUuc2xpY2UodGhpcy5wbGFjZWhvbGRlci5sZW5ndGggKyB0aGlzLnJhbmdlU2VwYXJhdG9yLmxlbmd0aCk7XG4gICAgbGV0IGVuZCA9IHRoaXMuc2V0RW5kRGF0ZVRvRGFuaXNoVGltZVpvbmUoZW5kRGF0ZVN0cmluZyk7XG5cbiAgICBpZiAoZW5kICE9PSBudWxsKSB7XG4gICAgICBlbmQgPSB0aGlzLnNldFRvRW5kT2ZEYXkoZW5kKTtcbiAgICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUoeyBzdGFydCwgZW5kIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJhbmdlUGlja2VyQ2xvc2VkKCkge1xuICAgIGNvbnN0IG1hdERhdGVSYW5nZUlucHV0ID0gdGhpcy5tYXREYXRlUmFuZ2VJbnB1dCgpO1xuICAgIGNvbnN0IGFjdHVhbElucHV0ID0gdGhpcy5hY3R1YWxJbnB1dCgpO1xuXG4gICAgaWYgKCFhY3R1YWxJbnB1dCkgcmV0dXJuO1xuXG4gICAgaWYgKG1hdERhdGVSYW5nZUlucHV0Py52YWx1ZT8uc3RhcnQgJiYgbWF0RGF0ZVJhbmdlSW5wdXQ/LnZhbHVlPy5lbmQpIHtcbiAgICAgIGFjdHVhbElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPVxuICAgICAgICB0aGlzLmZvcm1hdERhdGVUaW1lRnJvbU1vZGVsVG9WaWV3KFxuICAgICAgICAgIHRoaXMuZm9ybWF0RGF0ZUZyb21WaWV3VG9Nb2RlbChtYXREYXRlUmFuZ2VJbnB1dC52YWx1ZT8uc3RhcnQpXG4gICAgICAgICkgK1xuICAgICAgICAnLScgK1xuICAgICAgICB0aGlzLmZvcm1hdERhdGVUaW1lRnJvbU1vZGVsVG9WaWV3KFxuICAgICAgICAgIHRoaXMuZm9ybWF0RGF0ZUZyb21WaWV3VG9Nb2RlbChtYXREYXRlUmFuZ2VJbnB1dC52YWx1ZS5lbmQpXG4gICAgICAgICk7XG5cbiAgICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUoe1xuICAgICAgICBzdGFydDogdGhpcy5mb3JtYXREYXRlRnJvbVZpZXdUb01vZGVsKG1hdERhdGVSYW5nZUlucHV0LnZhbHVlLnN0YXJ0KSxcbiAgICAgICAgZW5kOiB0aGlzLmZvcm1hdERhdGVGcm9tVmlld1RvTW9kZWwobWF0RGF0ZVJhbmdlSW5wdXQudmFsdWUuZW5kKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBhY3R1YWxJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICB0aGlzLmNvbnRyb2w/LnNldFZhbHVlKG51bGwpO1xuICAgIH1cblxuICAgIGFjdHVhbElucHV0Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0U2luZ2xlVmFsdWUoXG4gICAgdmFsdWU6IEV4Y2x1ZGU8V2F0dFBpY2tlclZhbHVlLCBXYXR0RGF0ZVJhbmdlPixcbiAgICBpbnB1dDogSFRNTElucHV0RWxlbWVudFxuICApIHtcbiAgICBjb25zdCBtYXREYXRlcGlja2VySW5wdXQgPSB0aGlzLm1hdERhdGVwaWNrZXJJbnB1dCgpO1xuICAgIGlmIChtYXREYXRlcGlja2VySW5wdXQpIHtcbiAgICAgIHRoaXMuc2V0VmFsdWVUb0lucHV0KHZhbHVlLCBpbnB1dCwgbWF0RGF0ZXBpY2tlcklucHV0KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0UmFuZ2VWYWx1ZShcbiAgICB2YWx1ZTogV2F0dERhdGVSYW5nZSB8IG51bGwsXG4gICAgc3RhcnRJbnB1dDogSFRNTElucHV0RWxlbWVudCxcbiAgICBlbmRJbnB1dDogSFRNTElucHV0RWxlbWVudFxuICApIHtcbiAgICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IHZhbHVlID8/IHt9O1xuXG4gICAgY29uc3QgbWF0U3RhcnREYXRlID0gdGhpcy5tYXRTdGFydERhdGUoKTtcbiAgICBjb25zdCBtYXRFbmREYXRlID0gdGhpcy5tYXRFbmREYXRlKCk7XG5cbiAgICBpZiAoIW1hdFN0YXJ0RGF0ZSB8fCAhbWF0RW5kRGF0ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zZXRWYWx1ZVRvSW5wdXQoc3RhcnQsIHN0YXJ0SW5wdXQsIG1hdFN0YXJ0RGF0ZSk7XG4gICAgdGhpcy5zZXRWYWx1ZVRvSW5wdXQoZW5kLCBlbmRJbnB1dCwgbWF0RW5kRGF0ZSk7XG4gIH1cblxuICBwcmV2RGF5KCkge1xuICAgIHRoaXMuY2hhbmdlRGF5KC0xKTtcbiAgfVxuXG4gIG5leHREYXkoKSB7XG4gICAgdGhpcy5jaGFuZ2VEYXkoMSk7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZURheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgY29uc3QgY3VycmVudERhdGUgPSB0aGlzLm1hdERhdGVwaWNrZXJJbnB1dCgpPy52YWx1ZTtcblxuICAgIGlmIChjdXJyZW50RGF0ZSkge1xuICAgICAgY29uc3QgbmV3RGF0ZSA9IGRheWpzKGN1cnJlbnREYXRlKS5hZGQodmFsdWUsICdkYXknKS50b0lTT1N0cmluZygpO1xuICAgICAgY29uc3QgbmV3RGF0ZUZvcm1hdHRlZCA9IHRoaXMuZm9ybWF0RGF0ZVRpbWVGcm9tTW9kZWxUb1ZpZXcobmV3RGF0ZSk7XG5cbiAgICAgIHRoaXMuaW5wdXRDaGFuZ2VkKG5ld0RhdGVGb3JtYXR0ZWQpO1xuICAgICAgdGhpcy5kYXRlcGlja2VyQ2xvc2VkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ByZXZEYXlCZWZvcmVPckVxdWFsVG9NaW5EYXRlKCkge1xuICAgIGNvbnN0IG1pbiA9IHRoaXMubWluKCk7XG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gdGhpcy5tYXREYXRlcGlja2VySW5wdXQoKT8udmFsdWU7XG5cbiAgICBpZiAoIW1pbiB8fCAhc2VsZWN0ZWREYXRlKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBpc0JlZm9yZSA9IGRheWpzKHNlbGVjdGVkRGF0ZSkuaXNCZWZvcmUobWluLCAnZGF5Jyk7XG4gICAgY29uc3QgaXNTYW1lID0gZGF5anMoc2VsZWN0ZWREYXRlKS5pc1NhbWUobWluLCAnZGF5Jyk7XG5cbiAgICByZXR1cm4gaXNTYW1lIHx8IGlzQmVmb3JlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc05leHREYXlBZnRlck9yRXF1YWxUb01heERhdGUoKSB7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5tYXgoKTtcbiAgICBjb25zdCBzZWxlY3RlZERhdGUgPSB0aGlzLm1hdERhdGVwaWNrZXJJbnB1dCgpPy52YWx1ZTtcblxuICAgIGlmICghbWF4IHx8ICFzZWxlY3RlZERhdGUpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGlzQWZ0ZXIgPSBkYXlqcyhzZWxlY3RlZERhdGUpLmlzQWZ0ZXIobWF4LCAnZGF5Jyk7XG4gICAgY29uc3QgaXNTYW1lID0gZGF5anMoc2VsZWN0ZWREYXRlKS5pc1NhbWUobWF4LCAnZGF5Jyk7XG5cbiAgICByZXR1cm4gaXNTYW1lIHx8IGlzQWZ0ZXI7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGF0ZVNob3J0Rm9ybWF0KHZhbHVlOiBzdHJpbmcpOiBEYXRlIHtcbiAgICByZXR1cm4gZGF5anModmFsdWUsIGRhdGVTaG9ydEZvcm1hdCkudG9EYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFZhbHVlVG9JbnB1dDxEIGV4dGVuZHMgeyB2YWx1ZTogRGF0ZSB8IG51bGwgfT4oXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgbmF0aXZlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsXG4gICAgbWF0RGF0ZUlucHV0OiBEXG4gICk6IHZvaWQge1xuICAgIG5hdGl2ZUlucHV0LnZhbHVlID0gdmFsdWUgPyB0aGlzLmZvcm1hdERhdGVUaW1lRnJvbU1vZGVsVG9WaWV3KHZhbHVlKSA6ICcnO1xuICAgIG1hdERhdGVJbnB1dC52YWx1ZSA9IHZhbHVlID8gZGF5anModmFsdWUpLnV0YygpLnRvRGF0ZSgpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqIEZvcm1hdHMgRGF0ZSB0byBmdWxsIElTTyA4NjAxIGZvcm1hdCAoZS5nLiBgMjAyMi0wOC0zMVQyMjowMDowMC4wMDBaYClcbiAgICovXG4gIHByaXZhdGUgZm9ybWF0RGF0ZUZyb21WaWV3VG9Nb2RlbCh2YWx1ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRheWpzKHZhbHVlKS51dGMoKS50b0lTT1N0cmluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXREYXRlVGltZUZyb21Nb2RlbFRvVmlldyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF5anModmFsdWUpLnR6KGRhbmlzaFRpbWVab25lSWRlbnRpZmllcikuZm9ybWF0KGRhdGVTaG9ydEZvcm1hdCk7XG4gIH1cblxuICBwcml2YXRlIHRvRGFuaXNoVGltZVpvbmUodmFsdWU6IERhdGUpOiBEYXRlIHtcbiAgICByZXR1cm4gZGF5anModmFsdWUudG9JU09TdHJpbmcoKSkudHooZGFuaXNoVGltZVpvbmVJZGVudGlmaWVyKS50b0RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VG9FbmRPZkRheSh2YWx1ZTogRGF0ZSk6IERhdGUge1xuICAgIHJldHVybiBkYXlqcyh2YWx1ZSkuZW5kT2YoJ2RheScpLnRvRGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFbmREYXRlVG9EYW5pc2hUaW1lWm9uZSh2YWx1ZTogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xuICAgIGNvbnN0IGRhdGVCYXNlZE9uU2hvcnRGb3JtYXQgPSB0aGlzLnBhcnNlRGF0ZVNob3J0Rm9ybWF0KHZhbHVlKTtcblxuICAgIGxldCBtYXliZURhdGVJbkRhbmlzaFRpbWVab25lOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAoZGF5anMoZGF0ZUJhc2VkT25TaG9ydEZvcm1hdCkuaXNWYWxpZCgpKSB7XG4gICAgICBtYXliZURhdGVJbkRhbmlzaFRpbWVab25lID0gdGhpcy50b0RhbmlzaFRpbWVab25lKGRhdGVCYXNlZE9uU2hvcnRGb3JtYXQpO1xuICAgIH1cblxuICAgIHJldHVybiBtYXliZURhdGVJbkRhbmlzaFRpbWVab25lO1xuICB9XG59XG4iLCI8IS0tXG5AbGljZW5zZVxuQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG5cbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xueW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG5TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG5saW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbi0tPlxuPHdhdHQtZmllbGQgW2NvbnRyb2xdPVwiY29udHJvbFwiIFtsYWJlbF09XCJsYWJlbCgpXCI+XG4gIEBpZiAocmFuZ2UpIHtcbiAgICA8bWF0LWRhdGUtcmFuZ2UtaW5wdXRcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmFuZ2VQaWNrZXJdPVwicmFuZ2VEYXRlcGlja2VyXCJcbiAgICAgIFttaW5dPVwibWluKCkgPz8gbnVsbFwiXG4gICAgICBbbWF4XT1cIm1heCgpID8/IG51bGxcIlxuICAgICAgKGZvY3VzaW4pPVwib25Gb2N1c0luKClcIlxuICAgICAgKGZvY3Vzb3V0KT1cIm9uRm9jdXNPdXQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIGluZXJ0XG4gICAgICAgIGFyaWEtbGFiZWw9XCJzdGFydC1kYXRlLWlucHV0XCJcbiAgICAgICAgbWF0U3RhcnREYXRlXG4gICAgICAgICNzdGFydERhdGVJbnB1dFxuICAgICAgICBbcmVhZE9ubHldPVwicmFuZ2VNb250aE9ubHlNb2RlKClcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICBbaGlkZGVuXT1cInRydWVcIlxuICAgICAgLz5cblxuICAgICAgPGlucHV0XG4gICAgICAgIGluZXJ0XG4gICAgICAgIGFyaWEtbGFiZWw9XCJlbmQtZGF0ZS1pbnB1dFwiXG4gICAgICAgIG1hdEVuZERhdGVcbiAgICAgICAgI2VuZERhdGVJbnB1dFxuICAgICAgICBbcmVhZE9ubHldPVwicmFuZ2VNb250aE9ubHlNb2RlKClcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICBbaGlkZGVuXT1cInRydWVcIlxuICAgICAgLz5cbiAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxuICAgIDxpbnB1dCAjYWN0dWFsSW5wdXQgY2xhc3M9XCJtYXNrLWlucHV0XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgLz5cbiAgICA8d2F0dC1wbGFjZWhvbGRlci1tYXNrXG4gICAgICBbcHJpbWFyeUlucHV0RWxlbWVudF09XCJhY3R1YWxJbnB1dFwiXG4gICAgICBbbWFza109XCJyYW5nZUlucHV0TWFzaygpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJyYW5nZVBsYWNlaG9sZGVyXCJcbiAgICAgIChtYXNrQXBwbGllZCk9XCJyYW5nZUlucHV0Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAvPlxuXG4gICAgPHdhdHQtYnV0dG9uXG4gICAgICB2YXJpYW50PVwiaWNvblwiXG4gICAgICBpY29uPVwiZGF0ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2F0dHIuYXJpYS1wcmVzc2VkXT1cImZhbHNlXCJcbiAgICAgIChjbGljayk9XCJyYW5nZURhdGVwaWNrZXIub3BlbigpXCJcbiAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNJbigpXCJcbiAgICAgIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KCRldmVudClcIlxuICAgIC8+XG5cbiAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyXG4gICAgICBbcGFuZWxDbGFzc109XCJyYW5nZU1vbnRoT25seU1vZGUoKSA/ICd3YXR0LWRhdGVwaWNrZXItcmFuZ2VfX3BhbmVsLS1tb250aC1vbmx5JyA6ICcnXCJcbiAgICAgIFtzdGFydFZpZXddPVwicmFuZ2VNb250aE9ubHlNb2RlKCkgPyAnbXVsdGkteWVhcicgOiAnbW9udGgnXCJcbiAgICAgIFtzdGFydEF0XT1cInN0YXJ0QXQoKVwiXG4gICAgICAobW9udGhTZWxlY3RlZCk9XCJvbk1vbnRoU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAoY2xvc2VkKT1cInJhbmdlUGlja2VyQ2xvc2VkKClcIlxuICAgICAgI3JhbmdlRGF0ZXBpY2tlclxuICAgIC8+XG4gIH0gQGVsc2Uge1xuICAgIDxpbnB1dFxuICAgICAgaW5lcnRcbiAgICAgIG1hdElucHV0XG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJkYXRlLWlucHV0XCJcbiAgICAgICNkYXRlSW5wdXRcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFttaW5dPVwibWluKClcIlxuICAgICAgW21heF09XCJtYXgoKVwiXG4gICAgICBbbWF0RGF0ZXBpY2tlcl09XCJzaW5nbGVEYXRlcGlja2VyXCJcbiAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNJbigpXCJcbiAgICAgIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KCRldmVudClcIlxuICAgIC8+XG4gICAgPGlucHV0ICNhY3R1YWxJbnB1dCBjbGFzcz1cIm1hc2staW5wdXRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAvPlxuICAgIDx3YXR0LXBsYWNlaG9sZGVyLW1hc2tcbiAgICAgIFtwcmltYXJ5SW5wdXRFbGVtZW50XT1cImFjdHVhbElucHV0XCJcbiAgICAgIFttYXNrXT1cImlucHV0TWFzaygpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAobWFza0FwcGxpZWQpPVwiaW5wdXRDaGFuZ2VkKCRldmVudClcIlxuICAgIC8+XG5cbiAgICA8d2F0dC1idXR0b25cbiAgICAgIHdhdHRTdWZmaXhcbiAgICAgIHZhcmlhbnQ9XCJpY29uXCJcbiAgICAgIGljb249XCJkYXRlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwic2luZ2xlRGF0ZXBpY2tlci5vcGVuKClcIlxuICAgICAgKGZvY3VzaW4pPVwib25Gb2N1c0luKClcIlxuICAgICAgKGZvY3Vzb3V0KT1cIm9uRm9jdXNPdXQoJGV2ZW50KVwiXG4gICAgLz5cblxuICAgIDxtYXQtZGF0ZXBpY2tlclxuICAgICAgI3NpbmdsZURhdGVwaWNrZXJcbiAgICAgIHBhbmVsQ2xhc3M9XCJ3YXR0LWRhdGVwaWNrZXItc2luZ2xlX19wYW5lbFwiXG4gICAgICBbZGF0ZUNsYXNzXT1cImRhdGVDbGFzcygpXCJcbiAgICAgIFtzdGFydEF0XT1cInN0YXJ0QXQoKVwiXG4gICAgICAoY2xvc2VkKT1cImRhdGVwaWNrZXJDbG9zZWQoKVwiXG4gICAgLz5cbiAgfVxuXG4gIDxuZy1jb250ZW50IC8+XG4gIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC1oaW50XCIgc2VsZWN0PVwid2F0dC1maWVsZC1oaW50XCIgLz5cbiAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJ3YXR0LWZpZWxkLWVycm9yXCIgc2VsZWN0PVwid2F0dC1maWVsZC1lcnJvclwiIC8+XG4gIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC13YXJuaW5nXCIgc2VsZWN0PVwid2F0dC1maWVsZC13YXJuaW5nXCIgLz5cbjwvd2F0dC1maWVsZD5cblxuQGlmICghcmFuZ2UgJiYgY2FuU3RlcFRocm91Z2hEYXlzKCkpIHtcbiAgPHNwYW5cbiAgICBjbGFzcz1cIndhdHQtZGF0ZXBpY2tlci1zaW5nbGVfX3N0ZXAtdGhyb3VnaFwiXG4gICAgW2NsYXNzLndhdHQtZGF0ZXBpY2tlci1zaW5nbGVfX2hhcy1sYWJlbF09XCIhIWxhYmVsKClcIlxuICA+XG4gICAgPHdhdHQtYnV0dG9uXG4gICAgICB2YXJpYW50PVwiaWNvblwiXG4gICAgICBpY29uPVwibGVmdFwiXG4gICAgICAoY2xpY2spPVwicHJldkRheSgpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBpc1ByZXZEYXlCdXR0b25EaXNhYmxlZCgpXCJcbiAgICAvPlxuICAgIDx3YXR0LWJ1dHRvblxuICAgICAgdmFyaWFudD1cImljb25cIlxuICAgICAgaWNvbj1cInJpZ2h0XCJcbiAgICAgIChjbGljayk9XCJuZXh0RGF5KClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGlzTmV4dERheUJ1dHRvbkRpc2FibGVkKClcIlxuICAgIC8+XG4gIDwvc3Bhbj5cbn1cbiJdfQ==
|
|
304
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0dC1kYXRlcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvd2F0dC9wYWNrYWdlL3BpY2tlci9kYXRlcGlja2VyL3dhdHQtZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL3dhdHQvcGFja2FnZS9waWNrZXIvZGF0ZXBpY2tlci93YXR0LWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FBQ2pCOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBRVosZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBbUIsU0FBUyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUNMLFVBQVUsRUFDVixZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsbUJBQW1CLEdBRXBCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdGLE9BQU8sRUFDTCxLQUFLLEVBR0wsaUJBQWlCLEdBRWxCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0s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LENBQUMsQ0FBQztRQUM1RSxDQUFDO1FBRUQsT0FBTyx5QkFBeUIsQ0FBQztJQUNuQyxDQUFDO3VHQTVVVSx1QkFBdUI7MkZBQXZCLHVCQUF1QixzK0JBWHZCLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLENBQUMsc0VBMEJuQyxVQUFVLCtGQUNOLFlBQVksb0dBQ0YsaUJBQWlCLHFHQUNmLGtCQUFrQixxR0FDbEIsa0JBQWtCLG1nQkMvR3BGLDZvSUE4SUEsOGtFRDFESSxjQUFjLGlZQUNkLG1CQUFtQixrNUJBRW5CLGtCQUFrQix5TEFDbEIsbUJBQW1CLHNJQUNuQiw0QkFBNEI7OzJGQUduQix1QkFBdUI7a0JBZm5DLFNBQVM7K0JBQ0UsaUJBQWlCLGFBR2hCLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyx5QkFBeUIsRUFBRSxDQUFDLGlCQUNwRSxpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNQLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUVuQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsNEJBQTRCO3FCQUM3QjtveUJBaUIrQyxVQUFVLDJGQUNOLFlBQVksZ0dBQ0YsaUJBQWlCLGlHQUNmLGtCQUFrQixpR0FDbEIsa0JBQWtCLHNFQUU1QixhQUFhLCtEQUNWLFdBQVcsa0VBQ1IsY0FBYyxvRUFDWixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gTGljZW5zZVxuLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZTJcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8jZW5kcmVnaW9uXG5pbXBvcnQge1xuICBpbnB1dCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGNvbXB1dGVkLFxuICBDb21wb25lbnQsXG4gIExPQ0FMRV9JRCxcbiAgdmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBsaW5rZWRTaWduYWwsXG4gIEFmdGVyVmlld0luaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOZ0NvbnRyb2wsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgTWF0RW5kRGF0ZSxcbiAgTWF0U3RhcnREYXRlLFxuICBNYXREYXRlUmFuZ2VJbnB1dCxcbiAgTWF0RGF0ZVJhbmdlUGlja2VyLFxuICBNYXREYXRlcGlja2VySW5wdXQsXG4gIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gIE1hdENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb24sXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuXG5pbXBvcnQgeyBtYXNraXRvRGF0ZU9wdGlvbnNHZW5lcmF0b3IsIG1hc2tpdG9EYXRlUmFuZ2VPcHRpb25zR2VuZXJhdG9yIH0gZnJvbSAnQG1hc2tpdG8va2l0JztcblxuaW1wb3J0IHtcbiAgZGF5anMsXG4gIFdhdHRSYW5nZSxcbiAgV2F0dERhdGVSYW5nZSxcbiAgV2F0dExvY2FsZVNlcnZpY2UsXG4gIFdhdHRTdXBwb3J0ZWRMb2NhbGVzLFxufSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvY29yZS9kYXRlJztcblxuaW1wb3J0IHsgV2F0dEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2ZpZWxkJztcbmltcG9ydCB7IFdhdHRCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZW5lcmdpbmV0L3dhdHQvYnV0dG9uJztcblxuaW1wb3J0IHtcbiAgV2F0dFBpY2tlckJhc2UsXG4gIFdhdHRQaWNrZXJWYWx1ZSxcbiAgV2F0dFBsYWNlaG9sZGVyTWFza0NvbXBvbmVudCxcbn0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L3BpY2tlci9fX3NoYXJlZCc7XG5cbmNvbnN0IGRhdGVTaG9ydEZvcm1hdCA9ICdERC1NTS1ZWVlZJztcbmV4cG9ydCBjb25zdCBkYW5pc2hUaW1lWm9uZUlkZW50aWZpZXIgPSAnRXVyb3BlL0NvcGVuaGFnZW4nO1xuXG4vKipcbiAqIFVzYWdlOlxuICogYGltcG9ydCB7IFdhdHREYXRlcGlja2VyQ29tcG9uZW50IH0gZnJvbSAnQGVuZXJnaW5ldC93YXR0L2RhdGVwaWNrZXInO2BcbiAqXG4gKiBJTVBPUlRBTlQ6XG4gKiBUaGUgc3R5bGluZyBpcyBjYWxjdWxhdGVkIGJhc2VkIG9uIG91ciBtb25vc3BhY2VkIGZvbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhdHQtZGF0ZXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi93YXR0LWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93YXR0LWRhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogV2F0dERhdGVwaWNrZXJDb21wb25lbnQgfV0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuXG4gICAgV2F0dEZpZWxkQ29tcG9uZW50LFxuICAgIFdhdHRCdXR0b25Db21wb25lbnQsXG4gICAgV2F0dFBsYWNlaG9sZGVyTWFza0NvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2F0dERhdGVwaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBXYXR0UGlja2VyQmFzZSBpbXBsZW1lbnRzIFZhbGlkYXRvciwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGNoYW5nZURldGVjdGlvblJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBuZ0NvbnRyb2wgPSBpbmplY3QoTmdDb250cm9sLCB7IG9wdGlvbmFsOiB0cnVlLCBzZWxmOiB0cnVlIH0pO1xuICBwcml2YXRlIGxvY2FsZVNlcnZpY2UgPSBpbmplY3QoV2F0dExvY2FsZVNlcnZpY2UpO1xuICBwcml2YXRlIGxvY2FsZSA9IGluamVjdDxXYXR0U3VwcG9ydGVkTG9jYWxlcz4oTE9DQUxFX0lEKTtcblxuICBtYXggPSBpbnB1dDxEYXRlPigpO1xuICBtaW4gPSBpbnB1dDxEYXRlPigpO1xuICBsYWJlbCA9IGlucHV0PHN0cmluZz4oJycpO1xuICByYW5nZU1vbnRoT25seU1vZGUgPSBpbnB1dChmYWxzZSk7XG4gIHN0YXJ0QXQgPSBpbnB1dDxEYXRlIHwgbnVsbD4obnVsbCk7XG4gIGRhdGVDbGFzcyA9IGlucHV0PE1hdENhbGVuZGFyQ2VsbENsYXNzRnVuY3Rpb248RGF0ZT4+KCgpID0+ICcnKTtcbiAgY2FuU3RlcFRocm91Z2hEYXlzID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIG1hdEVuZERhdGUgPSB2aWV3Q2hpbGQ8TWF0RW5kRGF0ZTxEYXRlIHwgbnVsbD4+KE1hdEVuZERhdGUpO1xuICBtYXRTdGFydERhdGUgPSB2aWV3Q2hpbGQ8TWF0U3RhcnREYXRlPERhdGUgfCBudWxsPj4oTWF0U3RhcnREYXRlKTtcbiAgbWF0RGF0ZVJhbmdlSW5wdXQgPSB2aWV3Q2hpbGQ8TWF0RGF0ZVJhbmdlSW5wdXQ8RGF0ZSB8IG51bGw+PihNYXREYXRlUmFuZ2VJbnB1dCk7XG4gIG1hdERhdGVwaWNrZXJJbnB1dCA9IHZpZXdDaGlsZDxNYXREYXRlcGlja2VySW5wdXQ8RGF0ZSB8IG51bGw+PihNYXREYXRlcGlja2VySW5wdXQpO1xuICBtYXREYXRlUmFuZ2VQaWNrZXIgPSB2aWV3Q2hpbGQ8TWF0RGF0ZVJhbmdlUGlja2VyPERhdGUgfCBudWxsPj4oTWF0RGF0ZVJhbmdlUGlja2VyKTtcblxuICBhY3R1YWxJbnB1dCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PignYWN0dWFsSW5wdXQnKTtcbiAgb3ZlcnJpZGUgaW5wdXQgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oJ2RhdGVJbnB1dCcpO1xuICBvdmVycmlkZSBlbmRJbnB1dCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+PignZW5kRGF0ZUlucHV0Jyk7XG4gIG92ZXJyaWRlIHN0YXJ0SW5wdXQgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50Pj4oJ3N0YXJ0RGF0ZUlucHV0Jyk7XG5cbiAgcHJvdGVjdGVkIF9wbGFjZWhvbGRlciA9IHRoaXMuZ2V0UGxhY2Vob2xkZXJCeUxvY2FsZSh0aGlzLmxvY2FsZSk7XG5cbiAgcmFuZ2VTZXBhcmF0b3IgPSAnIC0gJztcblxuICByYW5nZVBsYWNlaG9sZGVyID0gdGhpcy5nZXRSYW5nZVBsYWNlaG9sZGVyKCk7XG5cbiAgaW5wdXRNYXNrID0gY29tcHV0ZWQoKCkgPT5cbiAgICBtYXNraXRvRGF0ZU9wdGlvbnNHZW5lcmF0b3Ioe1xuICAgICAgbW9kZTogJ2RkL21tL3l5eXknLFxuICAgICAgc2VwYXJhdG9yOiAnLScsXG4gICAgICBtYXg6IHRoaXMubWF4KCksXG4gICAgICBtaW46IHRoaXMubWluKCksXG4gICAgfSlcbiAgKTtcblxuICByYW5nZUlucHV0TWFzayA9IGNvbXB1dGVkKCgpID0+XG4gICAgbWFza2l0b0RhdGVSYW5nZU9wdGlvbnNHZW5lcmF0b3Ioe1xuICAgICAgbW9kZTogJ2RkL21tL3l5eXknLFxuICAgICAgZGF0ZVNlcGFyYXRvcjogJy0nLFxuICAgICAgbWF4OiB0aGlzLm1heCgpLFxuICAgICAgbWluOiB0aGlzLm1pbigpLFxuICAgIH0pXG4gICk7XG5cbiAgZ2V0UGxhY2Vob2xkZXJCeUxvY2FsZShsb2NhbGU6IFdhdHRTdXBwb3J0ZWRMb2NhbGVzKTogc3RyaW5nIHtcbiAgICByZXR1cm4gbG9jYWxlID09PSAnZGEnID8gJ2RkLW1tLcOlw6XDpcOlJyA6ICdkZC1tbS15eXl5JztcbiAgfVxuXG4gIGdldFJhbmdlUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlciArIHRoaXMucmFuZ2VTZXBhcmF0b3IgKyB0aGlzLnBsYWNlaG9sZGVyO1xuICB9XG5cbiAgaXNQcmV2RGF5QnV0dG9uRGlzYWJsZWQgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5pc1ByZXZEYXlCZWZvcmVPckVxdWFsVG9NaW5EYXRlKCkpO1xuICBpc05leHREYXlCdXR0b25EaXNhYmxlZCA9IGxpbmtlZFNpZ25hbCgoKSA9PiB0aGlzLmlzTmV4dERheUFmdGVyT3JFcXVhbFRvTWF4RGF0ZSgpKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihgd2F0dC1kYXRlcGlja2VyLSR7V2F0dERhdGVwaWNrZXJDb21wb25lbnQubmV4dElkKyt9YCk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgbG9jYWxlID0gdGhpcy5sb2NhbGVTZXJ2aWNlLmxvY2FsZSgpO1xuICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMuZ2V0UGxhY2Vob2xkZXJCeUxvY2FsZShsb2NhbGUpO1xuICAgICAgdGhpcy5yYW5nZVBsYWNlaG9sZGVyID0gdGhpcy5nZXRSYW5nZVBsYWNlaG9sZGVyKCk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5yYW5nZU1vbnRoT25seU1vZGUoKTtcbiAgICAgIHRoaXMubmdDb250cm9sPy5jb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICB0aGlzLm5nQ29udHJvbD8uY29udHJvbD8uYWRkVmFsaWRhdG9ycyh0aGlzLnZhbGlkYXRlKTtcbiAgfVxuXG4gIHZhbGlkYXRlID0gKHsgdmFsdWUgfTogQWJzdHJhY3RDb250cm9sPFdhdHRSYW5nZTxzdHJpbmc+PikgPT4ge1xuICAgIGlmICghdmFsdWU/LmVuZCB8fCAhdmFsdWU/LnN0YXJ0KSByZXR1cm4gbnVsbDtcbiAgICBpZiAoIXRoaXMucmFuZ2VNb250aE9ubHlNb2RlKCkpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHN0YXJ0ID0gZGF5anModmFsdWUuc3RhcnQpO1xuICAgIGNvbnN0IGVuZCA9IGRheWpzKHZhbHVlLmVuZCk7XG4gICAgcmV0dXJuIHN0YXJ0LmlzU2FtZShzdGFydC5zdGFydE9mKCdtb250aCcpKSAmJiBlbmQuaXNTYW1lKHN0YXJ0LmVuZE9mKCdtb250aCcpKVxuICAgICAgPyBudWxsXG4gICAgICA6IHsgbW9udGhPbmx5OiB0cnVlIH07XG4gIH07XG5cbiAgcHJvdGVjdGVkIGluaXRTaW5nbGVJbnB1dCgpIHtcbiAgICBjb25zdCBtYXREYXRlcGlja2VySW5wdXQgPSB0aGlzLm1hdERhdGVwaWNrZXJJbnB1dCgpO1xuICAgIGlmICh0aGlzLmluaXRpYWxWYWx1ZSAmJiBtYXREYXRlcGlja2VySW5wdXQpIHtcbiAgICAgIG1hdERhdGVwaWNrZXJJbnB1dC52YWx1ZSA9IHRoaXMuaW5pdGlhbFZhbHVlO1xuICAgICAgdGhpcy5kYXRlcGlja2VyQ2xvc2VkKCk7XG4gICAgfVxuICB9XG5cbiAgaW5wdXRDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBkYXRlU3RyaW5nID0gdmFsdWUuc2xpY2UoMCwgdGhpcy5wbGFjZWhvbGRlci5sZW5ndGgpO1xuXG4gICAgaWYgKGRhdGVTdHJpbmcubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmNvbnRyb2w/LnNldFZhbHVlKG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChkYXRlU3RyaW5nLmxlbmd0aCAhPT0gdGhpcy5wbGFjZWhvbGRlci5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRlID0gdGhpcy5wYXJzZURhdGVTaG9ydEZvcm1hdChkYXRlU3RyaW5nKTtcbiAgICB0aGlzLmNvbnRyb2w/LnNldFZhbHVlKHRoaXMuZm9ybWF0RGF0ZUZyb21WaWV3VG9Nb2RlbChkYXRlKSk7XG4gIH1cblxuICBkYXRlcGlja2VyQ2xvc2VkKCkge1xuICAgIGNvbnN0IG1hdERhdGVwaWNrZXJJbnB1dCA9IHRoaXMubWF0RGF0ZXBpY2tlcklucHV0KCk7XG4gICAgY29uc3QgYWN0dWFsSW5wdXQgPSB0aGlzLmFjdHVhbElucHV0KCk7XG5cbiAgICBpZiAoIWFjdHVhbElucHV0KSByZXR1cm47XG5cbiAgICBpZiAobWF0RGF0ZXBpY2tlcklucHV0ICYmIG1hdERhdGVwaWNrZXJJbnB1dC52YWx1ZSkge1xuICAgICAgdGhpcy5jb250cm9sPy5zZXRWYWx1ZShtYXREYXRlcGlja2VySW5wdXQudmFsdWUpO1xuXG4gICAgICBhY3R1YWxJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5mb3JtYXREYXRlVGltZUZyb21Nb2RlbFRvVmlldyhcbiAgICAgICAgdGhpcy5mb3JtYXREYXRlRnJvbVZpZXdUb01vZGVsKG1hdERhdGVwaWNrZXJJbnB1dC52YWx1ZSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjdHVhbElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc1ByZXZEYXlCdXR0b25EaXNhYmxlZC5zZXQodGhpcy5pc1ByZXZEYXlCZWZvcmVPckVxdWFsVG9NaW5EYXRlKCkpO1xuICAgIHRoaXMuaXNOZXh0RGF5QnV0dG9uRGlzYWJsZWQuc2V0KHRoaXMuaXNOZXh0RGF5QWZ0ZXJPckVxdWFsVG9NYXhEYXRlKCkpO1xuXG4gICAgYWN0dWFsSW5wdXQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcpKTtcbiAgfVxuXG4gIG9uTW9udGhTZWxlY3RlZChkYXRlOiBEYXRlKSB7XG4gICAgY29uc3QgbWF0RGF0ZVJhbmdlUGlja2VyID0gdGhpcy5tYXREYXRlUmFuZ2VQaWNrZXIoKTtcbiAgICBpZiAobWF0RGF0ZVJhbmdlUGlja2VyICYmIHRoaXMucmFuZ2VNb250aE9ubHlNb2RlKCkgJiYgZGF0ZSkge1xuICAgICAgbWF0RGF0ZVJhbmdlUGlja2VyLnNlbGVjdChkYXlqcyhkYXRlKS5zdGFydE9mKCdtb250aCcpLnRvRGF0ZSgpKTtcbiAgICAgIG1hdERhdGVSYW5nZVBpY2tlci5zZWxlY3QoZGF5anMoZGF0ZSkuZW5kT2YoJ21vbnRoJykudG9EYXRlKCkpO1xuICAgICAgbWF0RGF0ZVJhbmdlUGlja2VyLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGluaXRSYW5nZUlucHV0KCkge1xuICAgIGNvbnN0IG1hdFN0YXJ0RGF0ZSA9IHRoaXMubWF0U3RhcnREYXRlKCk7XG4gICAgY29uc3QgbWF0RW5kRGF0ZSA9IHRoaXMubWF0RW5kRGF0ZSgpO1xuXG4gICAgaWYgKHRoaXMuaW5pdGlhbFZhbHVlICYmIG1hdFN0YXJ0RGF0ZSAmJiBtYXRFbmREYXRlKSB7XG4gICAgICBtYXRTdGFydERhdGUudmFsdWUgPSAodGhpcy5pbml0aWFsVmFsdWUgYXMgV2F0dERhdGVSYW5nZSkuc3RhcnQ7XG4gICAgICBtYXRFbmREYXRlLnZhbHVlID0gKHRoaXMuaW5pdGlhbFZhbHVlIGFzIFdhdHREYXRlUmFuZ2UpLmVuZDtcbiAgICAgIHRoaXMucmFuZ2VQaWNrZXJDbG9zZWQoKTtcbiAgICB9XG4gIH1cblxuICBjbGVhclJhbmdlUGlja2VyKCkge1xuICAgIGNvbnN0IGFjdHVhbElucHV0ID0gdGhpcy5hY3R1YWxJbnB1dCgpO1xuXG4gICAgaWYgKCFhY3R1YWxJbnB1dCkgcmV0dXJuO1xuXG4gICAgdGhpcy5jb250cm9sPy5zZXRWYWx1ZShudWxsKTtcbiAgICBhY3R1YWxJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgYWN0dWFsSW5wdXQubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcpKTtcbiAgfVxuXG4gIHJhbmdlSW5wdXRDaGFuZ2VkKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzdGFydERhdGVTdHJpbmcgPSB2YWx1ZS5zbGljZSgwLCB0aGlzLnBsYWNlaG9sZGVyLmxlbmd0aCk7XG5cbiAgICBpZiAoc3RhcnREYXRlU3RyaW5nLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5jb250cm9sPy5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoc3RhcnREYXRlU3RyaW5nLmxlbmd0aCAhPT0gdGhpcy5wbGFjZWhvbGRlci5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9IHRoaXMucGFyc2VEYXRlU2hvcnRGb3JtYXQoc3RhcnREYXRlU3RyaW5nKTtcbiAgICBjb25zdCBlbmREYXRlU3RyaW5nID0gdmFsdWUuc2xpY2UodGhpcy5wbGFjZWhvbGRlci5sZW5ndGggKyB0aGlzLnJhbmdlU2VwYXJhdG9yLmxlbmd0aCk7XG4gICAgbGV0IGVuZCA9IHRoaXMuc2V0RW5kRGF0ZVRvRGFuaXNoVGltZVpvbmUoZW5kRGF0ZVN0cmluZyk7XG5cbiAgICBpZiAoZW5kICE9PSBudWxsKSB7XG4gICAgICBlbmQgPSB0aGlzLnNldFRvRW5kT2ZEYXkoZW5kKTtcbiAgICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUoeyBzdGFydCwgZW5kIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJhbmdlUGlja2VyQ2xvc2VkKCkge1xuICAgIGNvbnN0IG1hdERhdGVSYW5nZUlucHV0ID0gdGhpcy5tYXREYXRlUmFuZ2VJbnB1dCgpO1xuICAgIGNvbnN0IGFjdHVhbElucHV0ID0gdGhpcy5hY3R1YWxJbnB1dCgpO1xuXG4gICAgaWYgKCFhY3R1YWxJbnB1dCkgcmV0dXJuO1xuXG4gICAgaWYgKG1hdERhdGVSYW5nZUlucHV0Py52YWx1ZT8uc3RhcnQgJiYgbWF0RGF0ZVJhbmdlSW5wdXQ/LnZhbHVlPy5lbmQpIHtcbiAgICAgIGFjdHVhbElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPVxuICAgICAgICB0aGlzLmZvcm1hdERhdGVUaW1lRnJvbU1vZGVsVG9WaWV3KFxuICAgICAgICAgIHRoaXMuZm9ybWF0RGF0ZUZyb21WaWV3VG9Nb2RlbChtYXREYXRlUmFuZ2VJbnB1dC52YWx1ZT8uc3RhcnQpXG4gICAgICAgICkgK1xuICAgICAgICAnLScgK1xuICAgICAgICB0aGlzLmZvcm1hdERhdGVUaW1lRnJvbU1vZGVsVG9WaWV3KFxuICAgICAgICAgIHRoaXMuZm9ybWF0RGF0ZUZyb21WaWV3VG9Nb2RlbChtYXREYXRlUmFuZ2VJbnB1dC52YWx1ZS5lbmQpXG4gICAgICAgICk7XG5cbiAgICAgIHRoaXMuY29udHJvbD8uc2V0VmFsdWUoe1xuICAgICAgICBzdGFydDogdGhpcy5mb3JtYXREYXRlRnJvbVZpZXdUb01vZGVsKG1hdERhdGVSYW5nZUlucHV0LnZhbHVlLnN0YXJ0KSxcbiAgICAgICAgZW5kOiB0aGlzLmZvcm1hdERhdGVGcm9tVmlld1RvTW9kZWwobWF0RGF0ZVJhbmdlSW5wdXQudmFsdWUuZW5kKSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBhY3R1YWxJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICB0aGlzLmNvbnRyb2w/LnNldFZhbHVlKG51bGwpO1xuICAgIH1cblxuICAgIGFjdHVhbElucHV0Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0U2luZ2xlVmFsdWUoXG4gICAgdmFsdWU6IEV4Y2x1ZGU8V2F0dFBpY2tlclZhbHVlLCBXYXR0RGF0ZVJhbmdlPixcbiAgICBpbnB1dDogSFRNTElucHV0RWxlbWVudFxuICApIHtcbiAgICBjb25zdCBtYXREYXRlcGlja2VySW5wdXQgPSB0aGlzLm1hdERhdGVwaWNrZXJJbnB1dCgpO1xuICAgIGlmIChtYXREYXRlcGlja2VySW5wdXQpIHtcbiAgICAgIHRoaXMuc2V0VmFsdWVUb0lucHV0KHZhbHVlLCBpbnB1dCwgbWF0RGF0ZXBpY2tlcklucHV0KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0UmFuZ2VWYWx1ZShcbiAgICB2YWx1ZTogV2F0dERhdGVSYW5nZSB8IG51bGwsXG4gICAgc3RhcnRJbnB1dDogSFRNTElucHV0RWxlbWVudCxcbiAgICBlbmRJbnB1dDogSFRNTElucHV0RWxlbWVudFxuICApIHtcbiAgICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IHZhbHVlID8/IHt9O1xuXG4gICAgY29uc3QgbWF0U3RhcnREYXRlID0gdGhpcy5tYXRTdGFydERhdGUoKTtcbiAgICBjb25zdCBtYXRFbmREYXRlID0gdGhpcy5tYXRFbmREYXRlKCk7XG5cbiAgICBpZiAoIW1hdFN0YXJ0RGF0ZSB8fCAhbWF0RW5kRGF0ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zZXRWYWx1ZVRvSW5wdXQoc3RhcnQsIHN0YXJ0SW5wdXQsIG1hdFN0YXJ0RGF0ZSk7XG4gICAgdGhpcy5zZXRWYWx1ZVRvSW5wdXQoZW5kLCBlbmRJbnB1dCwgbWF0RW5kRGF0ZSk7XG4gIH1cblxuICBwcmV2RGF5KCkge1xuICAgIHRoaXMuY2hhbmdlRGF5KC0xKTtcbiAgfVxuXG4gIG5leHREYXkoKSB7XG4gICAgdGhpcy5jaGFuZ2VEYXkoMSk7XG4gIH1cblxuICBwcml2YXRlIGNoYW5nZURheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgY29uc3QgY3VycmVudERhdGUgPSB0aGlzLm1hdERhdGVwaWNrZXJJbnB1dCgpPy52YWx1ZTtcblxuICAgIGlmIChjdXJyZW50RGF0ZSkge1xuICAgICAgY29uc3QgbmV3RGF0ZSA9IGRheWpzKGN1cnJlbnREYXRlKS5hZGQodmFsdWUsICdkYXknKS50b0lTT1N0cmluZygpO1xuICAgICAgY29uc3QgbmV3RGF0ZUZvcm1hdHRlZCA9IHRoaXMuZm9ybWF0RGF0ZVRpbWVGcm9tTW9kZWxUb1ZpZXcobmV3RGF0ZSk7XG5cbiAgICAgIHRoaXMuaW5wdXRDaGFuZ2VkKG5ld0RhdGVGb3JtYXR0ZWQpO1xuICAgICAgdGhpcy5kYXRlcGlja2VyQ2xvc2VkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ByZXZEYXlCZWZvcmVPckVxdWFsVG9NaW5EYXRlKCkge1xuICAgIGNvbnN0IG1pbiA9IHRoaXMubWluKCk7XG4gICAgY29uc3Qgc2VsZWN0ZWREYXRlID0gdGhpcy5tYXREYXRlcGlja2VySW5wdXQoKT8udmFsdWU7XG5cbiAgICBpZiAoIW1pbiB8fCAhc2VsZWN0ZWREYXRlKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBpc0JlZm9yZSA9IGRheWpzKHNlbGVjdGVkRGF0ZSkuaXNCZWZvcmUobWluLCAnZGF5Jyk7XG4gICAgY29uc3QgaXNTYW1lID0gZGF5anMoc2VsZWN0ZWREYXRlKS5pc1NhbWUobWluLCAnZGF5Jyk7XG5cbiAgICByZXR1cm4gaXNTYW1lIHx8IGlzQmVmb3JlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc05leHREYXlBZnRlck9yRXF1YWxUb01heERhdGUoKSB7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5tYXgoKTtcbiAgICBjb25zdCBzZWxlY3RlZERhdGUgPSB0aGlzLm1hdERhdGVwaWNrZXJJbnB1dCgpPy52YWx1ZTtcblxuICAgIGlmICghbWF4IHx8ICFzZWxlY3RlZERhdGUpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IGlzQWZ0ZXIgPSBkYXlqcyhzZWxlY3RlZERhdGUpLmlzQWZ0ZXIobWF4LCAnZGF5Jyk7XG4gICAgY29uc3QgaXNTYW1lID0gZGF5anMoc2VsZWN0ZWREYXRlKS5pc1NhbWUobWF4LCAnZGF5Jyk7XG5cbiAgICByZXR1cm4gaXNTYW1lIHx8IGlzQWZ0ZXI7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGF0ZVNob3J0Rm9ybWF0KHZhbHVlOiBzdHJpbmcpOiBEYXRlIHtcbiAgICByZXR1cm4gZGF5anModmFsdWUsIGRhdGVTaG9ydEZvcm1hdCkudG9EYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHNldFZhbHVlVG9JbnB1dDxEIGV4dGVuZHMgeyB2YWx1ZTogRGF0ZSB8IG51bGwgfT4oXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgbmF0aXZlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsXG4gICAgbWF0RGF0ZUlucHV0OiBEXG4gICk6IHZvaWQge1xuICAgIG5hdGl2ZUlucHV0LnZhbHVlID0gdmFsdWUgPyB0aGlzLmZvcm1hdERhdGVUaW1lRnJvbU1vZGVsVG9WaWV3KHZhbHVlKSA6ICcnO1xuICAgIG1hdERhdGVJbnB1dC52YWx1ZSA9IHZhbHVlID8gZGF5anModmFsdWUpLnV0YygpLnRvRGF0ZSgpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqIEZvcm1hdHMgRGF0ZSB0byBmdWxsIElTTyA4NjAxIGZvcm1hdCAoZS5nLiBgMjAyMi0wOC0zMVQyMjowMDowMC4wMDBaYClcbiAgICovXG4gIHByaXZhdGUgZm9ybWF0RGF0ZUZyb21WaWV3VG9Nb2RlbCh2YWx1ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRheWpzKHZhbHVlKS51dGMoKS50b0lTT1N0cmluZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXREYXRlVGltZUZyb21Nb2RlbFRvVmlldyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF5anModmFsdWUpLnR6KGRhbmlzaFRpbWVab25lSWRlbnRpZmllcikuZm9ybWF0KGRhdGVTaG9ydEZvcm1hdCk7XG4gIH1cblxuICBwcml2YXRlIHRvRGFuaXNoVGltZVpvbmUodmFsdWU6IERhdGUpOiBEYXRlIHtcbiAgICByZXR1cm4gZGF5anModmFsdWUudG9JU09TdHJpbmcoKSkudHooZGFuaXNoVGltZVpvbmVJZGVudGlmaWVyKS50b0RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VG9FbmRPZkRheSh2YWx1ZTogRGF0ZSk6IERhdGUge1xuICAgIHJldHVybiBkYXlqcyh2YWx1ZSkuZW5kT2YoJ2RheScpLnRvRGF0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFbmREYXRlVG9EYW5pc2hUaW1lWm9uZSh2YWx1ZTogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xuICAgIGNvbnN0IGRhdGVCYXNlZE9uU2hvcnRGb3JtYXQgPSB0aGlzLnBhcnNlRGF0ZVNob3J0Rm9ybWF0KHZhbHVlKTtcblxuICAgIGxldCBtYXliZURhdGVJbkRhbmlzaFRpbWVab25lOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAoZGF5anMoZGF0ZUJhc2VkT25TaG9ydEZvcm1hdCkuaXNWYWxpZCgpKSB7XG4gICAgICBtYXliZURhdGVJbkRhbmlzaFRpbWVab25lID0gdGhpcy50b0RhbmlzaFRpbWVab25lKGRhdGVCYXNlZE9uU2hvcnRGb3JtYXQpO1xuICAgIH1cblxuICAgIHJldHVybiBtYXliZURhdGVJbkRhbmlzaFRpbWVab25lO1xuICB9XG59XG4iLCI8IS0tXG5AbGljZW5zZVxuQ29weXJpZ2h0IDIwMjAgRW5lcmdpbmV0IERhdGFIdWIgQS9TXG5cbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2UyXCIpO1xueW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG5TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG5saW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbi0tPlxuPHdhdHQtZmllbGQgW2NvbnRyb2xdPVwiY29udHJvbFwiIFtsYWJlbF09XCJsYWJlbCgpXCI+XG4gIEBpZiAocmFuZ2UpIHtcbiAgICA8bWF0LWRhdGUtcmFuZ2UtaW5wdXRcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmFuZ2VQaWNrZXJdPVwicmFuZ2VEYXRlcGlja2VyXCJcbiAgICAgIFttaW5dPVwibWluKCkgPz8gbnVsbFwiXG4gICAgICBbbWF4XT1cIm1heCgpID8/IG51bGxcIlxuICAgICAgKGZvY3VzaW4pPVwib25Gb2N1c0luKClcIlxuICAgICAgKGZvY3Vzb3V0KT1cIm9uRm9jdXNPdXQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPGlucHV0XG4gICAgICAgIGluZXJ0XG4gICAgICAgIGFyaWEtbGFiZWw9XCJzdGFydC1kYXRlLWlucHV0XCJcbiAgICAgICAgbWF0U3RhcnREYXRlXG4gICAgICAgICNzdGFydERhdGVJbnB1dFxuICAgICAgICBbcmVhZE9ubHldPVwicmFuZ2VNb250aE9ubHlNb2RlKClcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICBbaGlkZGVuXT1cInRydWVcIlxuICAgICAgLz5cblxuICAgICAgPGlucHV0XG4gICAgICAgIGluZXJ0XG4gICAgICAgIGFyaWEtbGFiZWw9XCJlbmQtZGF0ZS1pbnB1dFwiXG4gICAgICAgIG1hdEVuZERhdGVcbiAgICAgICAgI2VuZERhdGVJbnB1dFxuICAgICAgICBbcmVhZE9ubHldPVwicmFuZ2VNb250aE9ubHlNb2RlKClcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgICBbaGlkZGVuXT1cInRydWVcIlxuICAgICAgLz5cbiAgICA8L21hdC1kYXRlLXJhbmdlLWlucHV0PlxuICAgIDxpbnB1dCAjYWN0dWFsSW5wdXQgY2xhc3M9XCJtYXNrLWlucHV0XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgLz5cbiAgICA8d2F0dC1wbGFjZWhvbGRlci1tYXNrXG4gICAgICBbcHJpbWFyeUlucHV0RWxlbWVudF09XCJhY3R1YWxJbnB1dFwiXG4gICAgICBbbWFza109XCJyYW5nZUlucHV0TWFzaygpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJyYW5nZVBsYWNlaG9sZGVyXCJcbiAgICAgIChtYXNrQXBwbGllZCk9XCJyYW5nZUlucHV0Q2hhbmdlZCgkZXZlbnQpXCJcbiAgICAvPlxuXG4gICAgPHdhdHQtYnV0dG9uXG4gICAgICB2YXJpYW50PVwiaWNvblwiXG4gICAgICBpY29uPVwiZGF0ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW2F0dHIuYXJpYS1wcmVzc2VkXT1cImZhbHNlXCJcbiAgICAgIChjbGljayk9XCJyYW5nZURhdGVwaWNrZXIub3BlbigpXCJcbiAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNJbigpXCJcbiAgICAgIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KCRldmVudClcIlxuICAgIC8+XG5cbiAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyXG4gICAgICBbcGFuZWxDbGFzc109XCJyYW5nZU1vbnRoT25seU1vZGUoKSA/ICd3YXR0LWRhdGVwaWNrZXItcmFuZ2VfX3BhbmVsLS1tb250aC1vbmx5JyA6ICcnXCJcbiAgICAgIFtzdGFydFZpZXddPVwicmFuZ2VNb250aE9ubHlNb2RlKCkgPyAnbXVsdGkteWVhcicgOiAnbW9udGgnXCJcbiAgICAgIFtzdGFydEF0XT1cInN0YXJ0QXQoKVwiXG4gICAgICAobW9udGhTZWxlY3RlZCk9XCJvbk1vbnRoU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAoY2xvc2VkKT1cInJhbmdlUGlja2VyQ2xvc2VkKClcIlxuICAgICAgI3JhbmdlRGF0ZXBpY2tlclxuICAgIC8+XG4gIH0gQGVsc2Uge1xuICAgIDxpbnB1dFxuICAgICAgaW5lcnRcbiAgICAgIG1hdElucHV0XG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJkYXRlLWlucHV0XCJcbiAgICAgICNkYXRlSW5wdXRcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBzcGVsbGNoZWNrPVwiZmFsc2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFttaW5dPVwibWluKClcIlxuICAgICAgW21heF09XCJtYXgoKVwiXG4gICAgICBbbWF0RGF0ZXBpY2tlcl09XCJzaW5nbGVEYXRlcGlja2VyXCJcbiAgICAgIChmb2N1c2luKT1cIm9uRm9jdXNJbigpXCJcbiAgICAgIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KCRldmVudClcIlxuICAgIC8+XG4gICAgPGlucHV0ICNhY3R1YWxJbnB1dCBjbGFzcz1cIm1hc2staW5wdXRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAvPlxuICAgIDx3YXR0LXBsYWNlaG9sZGVyLW1hc2tcbiAgICAgIFtwcmltYXJ5SW5wdXRFbGVtZW50XT1cImFjdHVhbElucHV0XCJcbiAgICAgIFttYXNrXT1cImlucHV0TWFzaygpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAobWFza0FwcGxpZWQpPVwiaW5wdXRDaGFuZ2VkKCRldmVudClcIlxuICAgIC8+XG5cbiAgICA8d2F0dC1idXR0b25cbiAgICAgIHdhdHRTdWZmaXhcbiAgICAgIHZhcmlhbnQ9XCJpY29uXCJcbiAgICAgIGljb249XCJkYXRlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwic2luZ2xlRGF0ZXBpY2tlci5vcGVuKClcIlxuICAgICAgKGZvY3VzaW4pPVwib25Gb2N1c0luKClcIlxuICAgICAgKGZvY3Vzb3V0KT1cIm9uRm9jdXNPdXQoJGV2ZW50KVwiXG4gICAgLz5cblxuICAgIDxtYXQtZGF0ZXBpY2tlclxuICAgICAgI3NpbmdsZURhdGVwaWNrZXJcbiAgICAgIHBhbmVsQ2xhc3M9XCJ3YXR0LWRhdGVwaWNrZXItc2luZ2xlX19wYW5lbFwiXG4gICAgICBbZGF0ZUNsYXNzXT1cImRhdGVDbGFzcygpXCJcbiAgICAgIFtzdGFydEF0XT1cInN0YXJ0QXQoKVwiXG4gICAgICAoY2xvc2VkKT1cImRhdGVwaWNrZXJDbG9zZWQoKVwiXG4gICAgLz5cbiAgfVxuXG4gIDxuZy1jb250ZW50IC8+XG4gIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC1oaW50XCIgc2VsZWN0PVwid2F0dC1maWVsZC1oaW50XCIgLz5cbiAgPG5nLWNvbnRlbnQgbmdQcm9qZWN0QXM9XCJ3YXR0LWZpZWxkLWVycm9yXCIgc2VsZWN0PVwid2F0dC1maWVsZC1lcnJvclwiIC8+XG4gIDxuZy1jb250ZW50IG5nUHJvamVjdEFzPVwid2F0dC1maWVsZC13YXJuaW5nXCIgc2VsZWN0PVwid2F0dC1maWVsZC13YXJuaW5nXCIgLz5cbjwvd2F0dC1maWVsZD5cblxuQGlmICghcmFuZ2UgJiYgY2FuU3RlcFRocm91Z2hEYXlzKCkpIHtcbiAgPHNwYW5cbiAgICBjbGFzcz1cIndhdHQtZGF0ZXBpY2tlci1zaW5nbGVfX3N0ZXAtdGhyb3VnaFwiXG4gICAgW2NsYXNzLndhdHQtZGF0ZXBpY2tlci1zaW5nbGVfX2hhcy1sYWJlbF09XCIhIWxhYmVsKClcIlxuICA+XG4gICAgPHdhdHQtYnV0dG9uXG4gICAgICB2YXJpYW50PVwiaWNvblwiXG4gICAgICBpY29uPVwibGVmdFwiXG4gICAgICAoY2xpY2spPVwicHJldkRheSgpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBpc1ByZXZEYXlCdXR0b25EaXNhYmxlZCgpXCJcbiAgICAvPlxuICAgIDx3YXR0LWJ1dHRvblxuICAgICAgdmFyaWFudD1cImljb25cIlxuICAgICAgaWNvbj1cInJpZ2h0XCJcbiAgICAgIChjbGljayk9XCJuZXh0RGF5KClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGlzTmV4dERheUJ1dHRvbkRpc2FibGVkKClcIlxuICAgIC8+XG4gIDwvc3Bhbj5cbn1cbiJdfQ==
|