@danske/sapphire-angular 1.16.2 → 1.17.0
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/esm2020/lib/field/src/field.component.mjs +16 -5
- package/esm2020/lib/theme/src/themes.mjs +4 -4
- package/fesm2015/danske-sapphire-angular.mjs +3789 -3779
- package/fesm2015/danske-sapphire-angular.mjs.map +1 -1
- package/fesm2020/danske-sapphire-angular.mjs +3728 -3718
- package/fesm2020/danske-sapphire-angular.mjs.map +1 -1
- package/lib/field/src/field.component.d.ts +8 -2
- package/package.json +3 -3
|
@@ -10,6 +10,7 @@ import { FieldControl } from './field-control';
|
|
|
10
10
|
import { FieldLabelDirective } from './field-label.directive';
|
|
11
11
|
import { UseComponentStylesOnHost } from '../../common/sapphire-view-encapsulation';
|
|
12
12
|
import { ICON_SIZE_PROVIDER, } from '../../icon/src/icon-size-provider';
|
|
13
|
+
import { RadioGroupComponent } from '../../radio/src/radio-group.component';
|
|
13
14
|
import * as i0 from "@angular/core";
|
|
14
15
|
import * as i1 from "../../common/sapphire-view-encapsulation";
|
|
15
16
|
import * as i2 from "@angular/common";
|
|
@@ -21,7 +22,7 @@ import * as i4 from "../../label/src/label.component";
|
|
|
21
22
|
* In addition to the field control (sp-select, sp-radio-group, sp-text-field), the following
|
|
22
23
|
* components can be used inside a field:
|
|
23
24
|
* - sp-field-label: is used to provide the label text for the field.
|
|
24
|
-
* - sp-contextual-
|
|
25
|
+
* - sp-contextual-help: is placed in the label area, next to the label text
|
|
25
26
|
* - sp-field-error: is used to provide an error message, which is placed below the field's
|
|
26
27
|
* control.
|
|
27
28
|
* - sp-field-note: is used to provide a note, which is placed below the field's control. Only
|
|
@@ -82,6 +83,12 @@ export class FieldComponent {
|
|
|
82
83
|
hasError() {
|
|
83
84
|
return this.error != undefined;
|
|
84
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Whether the field control is radio group (sp-radio-group).
|
|
88
|
+
*/
|
|
89
|
+
hasFieldGroupChild() {
|
|
90
|
+
return this.radioGroup != undefined;
|
|
91
|
+
}
|
|
85
92
|
get labelNecessityIndicator() {
|
|
86
93
|
if (this.necessityIndicator) {
|
|
87
94
|
return coerceBooleanProperty(this.requiredValidator?.required)
|
|
@@ -102,12 +109,12 @@ export class FieldComponent {
|
|
|
102
109
|
}
|
|
103
110
|
}
|
|
104
111
|
FieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: FieldComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
105
|
-
FieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: FieldComponent, selector: "sp-field", inputs: { necessityIndicator: "necessityIndicator", labelPlacement: "labelPlacement", size: "size" }, host: { properties: { "class.sapphire-field--label-placement-side": "labelPlacement === \"side\"", "class.sapphire-field--medium": "size === \"medium\"", "class.sapphire-field--error": "hasError()", "class.is-disabled": "control?.isDisabled()" }, classAttribute: "sapphire-field" }, providers: [
|
|
112
|
+
FieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: FieldComponent, selector: "sp-field", inputs: { necessityIndicator: "necessityIndicator", labelPlacement: "labelPlacement", size: "size" }, host: { properties: { "class.sapphire-field--label-placement-side": "labelPlacement === \"side\"", "class.sapphire-field--label-alignment-top": "labelPlacement === \"side\" && hasFieldGroupChild()", "class.sapphire-field--medium": "size === \"medium\"", "class.sapphire-field--error": "hasError()", "class.is-disabled": "control?.isDisabled()" }, classAttribute: "sapphire-field" }, providers: [
|
|
106
113
|
{
|
|
107
114
|
provide: ICON_SIZE_PROVIDER,
|
|
108
115
|
useExisting: forwardRef(() => FieldComponent),
|
|
109
116
|
},
|
|
110
|
-
], queries: [{ propertyName: "note", first: true, predicate: FieldNoteDirective, descendants: true }, { propertyName: "error", first: true, predicate: FieldErrorDirective, descendants: true }, { propertyName: "_fieldLabel", first: true, predicate: FieldLabelDirective, descendants: true }, { propertyName: "control", first: true, predicate: FieldControl, descendants: true }, { propertyName: "requiredValidator", first: true, predicate: RequiredValidator, descendants: true }], viewQueries: [{ propertyName: "label", first: true, predicate: LabelComponent, descendants: true }], hostDirectives: [{ directive: i1.UseComponentStylesOnHost }], ngImport: i0, template: "<div class=\"sapphire-field__label\" *ngIf=\"_fieldLabel\">\n <sp-label\n [necessityIndicator]=\"labelNecessityIndicator\"\n [for]=\"control?.getId?.()\"\n [disabled]=\"control?.isDisabled()\"\n (labelClick)=\"control?.focus?.('keyboard')\"\n [size]=\"size\"\n >\n <ng-content select=\"sp-field-label\"></ng-content>\n <ng-content\n select=\"sp-contextual-help\"\n ngProjectAs=\"sp-contextual-help\"\n ></ng-content>\n </sp-label>\n</div>\n<div class=\"sapphire-field__control\">\n <ng-content></ng-content>\n</div>\n<div class=\"sapphire-field__message\" *ngIf=\"note || error || _noteSuffixPortal\">\n <div class=\"sapphire-field__note-row\">\n <div class=\"sapphire-field__note\" *ngIf=\"error\">\n <ng-content select=\"sp-field-error\"></ng-content>\n </div>\n <div class=\"sapphire-field__note\" *ngIf=\"note && !error\">\n <ng-content select=\"sp-field-note\"></ng-content>\n </div>\n <ng-container *ngIf=\"_noteSuffixPortal\">\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".sapphire-field{display:inline-grid;grid-template-columns:auto;row-gap:var(--sapphire-field-size-spacing-vertical);column-gap:var(--sapphire-field-size-spacing-horizontal);font-family:var(--sapphire-field-font-name);grid-auto-rows:min-content;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}fieldset.sapphire-field{border:0;margin:0;padding:0}.sapphire-field__label{order:1;justify-content:end}legend.sapphire-field__label{padding:0;float:left}.sapphire-field__control{order:2;min-width:100%}.sapphire-field__control--group{display:flex;gap:var(--sapphire-field-size-spacing-control-group)}.sapphire-field--no-shrink .sapphire-field__control{min-width:initial}.sapphire-field__message{min-width:100%;max-width:min-content;order:3}.sapphire-field__note-row{display:flex;align-items:top;font-size:var(--sapphire-field-size-font-note-l);line-height:var(--sapphire-field-size-line-height-note-l);color:var(--sapphire-field-color-note-default)}.sapphire-field--medium .sapphire-field__note-row{font-size:var(--sapphire-field-size-font-note-m);line-height:var(--sapphire-field-size-line-height-note-m)}.sapphire-field__note{flex:1}.sapphire-field--error .sapphire-field__note{color:var(--sapphire-field-color-note-error)}.sapphire-field.is-disabled{opacity:var(--sapphire-field-opacity-disabled);cursor:not-allowed}.sapphire-field.is-disabled .sapphire-field__control *{cursor:inherit}.sapphire-field--label-placement-side{grid-template-columns:max-content auto}.sapphire-field--label-placement-side .sapphire-field__control,.sapphire-field--label-placement-side .sapphire-field__message{grid-column:2}.sapphire-field--label-placement-side .sapphire-field__label{display:flex;align-items:center;max-height:var(--sapphire-field-size-max-height-label)}.sapphire-fieldset{display:inline-flex;flex-direction:column;width:min-content;gap:var(--sapphire-field-size-spacing-fieldset-large)}.sapphire-fieldset .sapphire-field--label-placement-side{grid-template-columns:1fr min-content}.sapphire-fieldset .sapphire-field--label-placement-side .sapphire-field__label{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4.LabelComponent, selector: "sp-label", inputs: ["id", "for", "disabled", "necessityIndicator", "size"], outputs: ["labelClick"] }] });
|
|
117
|
+
], queries: [{ propertyName: "note", first: true, predicate: FieldNoteDirective, descendants: true }, { propertyName: "error", first: true, predicate: FieldErrorDirective, descendants: true }, { propertyName: "radioGroup", first: true, predicate: RadioGroupComponent, descendants: true }, { propertyName: "_fieldLabel", first: true, predicate: FieldLabelDirective, descendants: true }, { propertyName: "control", first: true, predicate: FieldControl, descendants: true }, { propertyName: "requiredValidator", first: true, predicate: RequiredValidator, descendants: true }], viewQueries: [{ propertyName: "label", first: true, predicate: LabelComponent, descendants: true }], hostDirectives: [{ directive: i1.UseComponentStylesOnHost }], ngImport: i0, template: "<div class=\"sapphire-field__label\" *ngIf=\"_fieldLabel\">\n <sp-label\n [necessityIndicator]=\"labelNecessityIndicator\"\n [for]=\"control?.getId?.()\"\n [disabled]=\"control?.isDisabled()\"\n (labelClick)=\"control?.focus?.('keyboard')\"\n [size]=\"size\"\n >\n <ng-content select=\"sp-field-label\"></ng-content>\n <ng-content\n select=\"sp-contextual-help\"\n ngProjectAs=\"sp-contextual-help\"\n ></ng-content>\n </sp-label>\n</div>\n<div class=\"sapphire-field__control\">\n <ng-content></ng-content>\n</div>\n<div class=\"sapphire-field__message\" *ngIf=\"note || error || _noteSuffixPortal\">\n <div class=\"sapphire-field__note-row\">\n <div class=\"sapphire-field__note\" *ngIf=\"error\">\n <ng-content select=\"sp-field-error\"></ng-content>\n </div>\n <div class=\"sapphire-field__note\" *ngIf=\"note && !error\">\n <ng-content select=\"sp-field-note\"></ng-content>\n </div>\n <ng-container *ngIf=\"_noteSuffixPortal\">\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".sapphire-field{display:inline-grid;grid-template-columns:auto;row-gap:var(--sapphire-field-size-spacing-vertical);column-gap:var(--sapphire-field-size-spacing-horizontal);font-family:var(--sapphire-field-font-name);grid-auto-rows:min-content;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}fieldset.sapphire-field{border:0;margin:0;padding:0}.sapphire-field__label{order:1;justify-content:end}legend.sapphire-field__label{padding:0;float:left}.sapphire-field__control{order:2;min-width:100%}.sapphire-field__control--group{display:flex;gap:var(--sapphire-field-size-spacing-control-group)}.sapphire-field--no-shrink .sapphire-field__control{min-width:initial}.sapphire-field__message{min-width:100%;max-width:min-content;order:3}.sapphire-field__note-row{display:flex;align-items:top;font-size:var(--sapphire-field-size-font-note-l);line-height:var(--sapphire-field-size-line-height-note-l);color:var(--sapphire-field-color-note-default)}.sapphire-field--medium .sapphire-field__note-row{font-size:var(--sapphire-field-size-font-note-m);line-height:var(--sapphire-field-size-line-height-note-m)}.sapphire-field__note{flex:1}.sapphire-field--error .sapphire-field__note{color:var(--sapphire-field-color-note-error)}.sapphire-field.is-disabled{opacity:var(--sapphire-field-opacity-disabled);cursor:not-allowed}.sapphire-field.is-disabled .sapphire-field__control *{cursor:inherit}.sapphire-field--label-placement-side{grid-template-columns:max-content auto}.sapphire-field--label-placement-side .sapphire-field__control,.sapphire-field--label-placement-side .sapphire-field__message{grid-column:2}.sapphire-field--label-placement-side .sapphire-field__label{display:flex;align-items:center;max-height:var(--sapphire-field-size-max-height-label-l)}.sapphire-field--label-placement-side.sapphire-field--medium .sapphire-field__label{max-height:var(--sapphire-field-size-max-height-label-m)}.sapphire-field--label-placement-side.sapphire-field--label-alignment-top .sapphire-field__label{align-items:flex-start;max-height:unset}.sapphire-fieldset{display:inline-flex;flex-direction:column;width:min-content;gap:var(--sapphire-field-size-spacing-fieldset-large)}.sapphire-fieldset .sapphire-field--label-placement-side{grid-template-columns:1fr min-content}.sapphire-fieldset .sapphire-field--label-placement-side .sapphire-field__label{white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4.LabelComponent, selector: "sp-label", inputs: ["id", "for", "disabled", "necessityIndicator", "size"], outputs: ["labelClick"] }] });
|
|
111
118
|
__decorate([
|
|
112
119
|
CoerceBoolean
|
|
113
120
|
], FieldComponent.prototype, "necessityIndicator", void 0);
|
|
@@ -116,6 +123,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
116
123
|
args: [{ selector: 'sp-field', host: {
|
|
117
124
|
class: 'sapphire-field',
|
|
118
125
|
'[class.sapphire-field--label-placement-side]': 'labelPlacement === "side"',
|
|
126
|
+
'[class.sapphire-field--label-alignment-top]': 'labelPlacement === "side" && hasFieldGroupChild()',
|
|
119
127
|
'[class.sapphire-field--medium]': 'size === "medium"',
|
|
120
128
|
'[class.sapphire-field--error]': 'hasError()',
|
|
121
129
|
'[class.is-disabled]': 'control?.isDisabled()',
|
|
@@ -124,7 +132,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
124
132
|
provide: ICON_SIZE_PROVIDER,
|
|
125
133
|
useExisting: forwardRef(() => FieldComponent),
|
|
126
134
|
},
|
|
127
|
-
], template: "<div class=\"sapphire-field__label\" *ngIf=\"_fieldLabel\">\n <sp-label\n [necessityIndicator]=\"labelNecessityIndicator\"\n [for]=\"control?.getId?.()\"\n [disabled]=\"control?.isDisabled()\"\n (labelClick)=\"control?.focus?.('keyboard')\"\n [size]=\"size\"\n >\n <ng-content select=\"sp-field-label\"></ng-content>\n <ng-content\n select=\"sp-contextual-help\"\n ngProjectAs=\"sp-contextual-help\"\n ></ng-content>\n </sp-label>\n</div>\n<div class=\"sapphire-field__control\">\n <ng-content></ng-content>\n</div>\n<div class=\"sapphire-field__message\" *ngIf=\"note || error || _noteSuffixPortal\">\n <div class=\"sapphire-field__note-row\">\n <div class=\"sapphire-field__note\" *ngIf=\"error\">\n <ng-content select=\"sp-field-error\"></ng-content>\n </div>\n <div class=\"sapphire-field__note\" *ngIf=\"note && !error\">\n <ng-content select=\"sp-field-note\"></ng-content>\n </div>\n <ng-container *ngIf=\"_noteSuffixPortal\">\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".sapphire-field{display:inline-grid;grid-template-columns:auto;row-gap:var(--sapphire-field-size-spacing-vertical);column-gap:var(--sapphire-field-size-spacing-horizontal);font-family:var(--sapphire-field-font-name);grid-auto-rows:min-content;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}fieldset.sapphire-field{border:0;margin:0;padding:0}.sapphire-field__label{order:1;justify-content:end}legend.sapphire-field__label{padding:0;float:left}.sapphire-field__control{order:2;min-width:100%}.sapphire-field__control--group{display:flex;gap:var(--sapphire-field-size-spacing-control-group)}.sapphire-field--no-shrink .sapphire-field__control{min-width:initial}.sapphire-field__message{min-width:100%;max-width:min-content;order:3}.sapphire-field__note-row{display:flex;align-items:top;font-size:var(--sapphire-field-size-font-note-l);line-height:var(--sapphire-field-size-line-height-note-l);color:var(--sapphire-field-color-note-default)}.sapphire-field--medium .sapphire-field__note-row{font-size:var(--sapphire-field-size-font-note-m);line-height:var(--sapphire-field-size-line-height-note-m)}.sapphire-field__note{flex:1}.sapphire-field--error .sapphire-field__note{color:var(--sapphire-field-color-note-error)}.sapphire-field.is-disabled{opacity:var(--sapphire-field-opacity-disabled);cursor:not-allowed}.sapphire-field.is-disabled .sapphire-field__control *{cursor:inherit}.sapphire-field--label-placement-side{grid-template-columns:max-content auto}.sapphire-field--label-placement-side .sapphire-field__control,.sapphire-field--label-placement-side .sapphire-field__message{grid-column:2}.sapphire-field--label-placement-side .sapphire-field__label{display:flex;align-items:center;max-height:var(--sapphire-field-size-max-height-label)}.sapphire-fieldset{display:inline-flex;flex-direction:column;width:min-content;gap:var(--sapphire-field-size-spacing-fieldset-large)}.sapphire-fieldset .sapphire-field--label-placement-side{grid-template-columns:1fr min-content}.sapphire-fieldset .sapphire-field--label-placement-side .sapphire-field__label{white-space:nowrap}\n"] }]
|
|
135
|
+
], template: "<div class=\"sapphire-field__label\" *ngIf=\"_fieldLabel\">\n <sp-label\n [necessityIndicator]=\"labelNecessityIndicator\"\n [for]=\"control?.getId?.()\"\n [disabled]=\"control?.isDisabled()\"\n (labelClick)=\"control?.focus?.('keyboard')\"\n [size]=\"size\"\n >\n <ng-content select=\"sp-field-label\"></ng-content>\n <ng-content\n select=\"sp-contextual-help\"\n ngProjectAs=\"sp-contextual-help\"\n ></ng-content>\n </sp-label>\n</div>\n<div class=\"sapphire-field__control\">\n <ng-content></ng-content>\n</div>\n<div class=\"sapphire-field__message\" *ngIf=\"note || error || _noteSuffixPortal\">\n <div class=\"sapphire-field__note-row\">\n <div class=\"sapphire-field__note\" *ngIf=\"error\">\n <ng-content select=\"sp-field-error\"></ng-content>\n </div>\n <div class=\"sapphire-field__note\" *ngIf=\"note && !error\">\n <ng-content select=\"sp-field-note\"></ng-content>\n </div>\n <ng-container *ngIf=\"_noteSuffixPortal\">\n <ng-container *cdkPortalOutlet=\"_noteSuffixPortal\"></ng-container>\n </ng-container>\n </div>\n</div>\n", styles: [".sapphire-field{display:inline-grid;grid-template-columns:auto;row-gap:var(--sapphire-field-size-spacing-vertical);column-gap:var(--sapphire-field-size-spacing-horizontal);font-family:var(--sapphire-field-font-name);grid-auto-rows:min-content;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box}fieldset.sapphire-field{border:0;margin:0;padding:0}.sapphire-field__label{order:1;justify-content:end}legend.sapphire-field__label{padding:0;float:left}.sapphire-field__control{order:2;min-width:100%}.sapphire-field__control--group{display:flex;gap:var(--sapphire-field-size-spacing-control-group)}.sapphire-field--no-shrink .sapphire-field__control{min-width:initial}.sapphire-field__message{min-width:100%;max-width:min-content;order:3}.sapphire-field__note-row{display:flex;align-items:top;font-size:var(--sapphire-field-size-font-note-l);line-height:var(--sapphire-field-size-line-height-note-l);color:var(--sapphire-field-color-note-default)}.sapphire-field--medium .sapphire-field__note-row{font-size:var(--sapphire-field-size-font-note-m);line-height:var(--sapphire-field-size-line-height-note-m)}.sapphire-field__note{flex:1}.sapphire-field--error .sapphire-field__note{color:var(--sapphire-field-color-note-error)}.sapphire-field.is-disabled{opacity:var(--sapphire-field-opacity-disabled);cursor:not-allowed}.sapphire-field.is-disabled .sapphire-field__control *{cursor:inherit}.sapphire-field--label-placement-side{grid-template-columns:max-content auto}.sapphire-field--label-placement-side .sapphire-field__control,.sapphire-field--label-placement-side .sapphire-field__message{grid-column:2}.sapphire-field--label-placement-side .sapphire-field__label{display:flex;align-items:center;max-height:var(--sapphire-field-size-max-height-label-l)}.sapphire-field--label-placement-side.sapphire-field--medium .sapphire-field__label{max-height:var(--sapphire-field-size-max-height-label-m)}.sapphire-field--label-placement-side.sapphire-field--label-alignment-top .sapphire-field__label{align-items:flex-start;max-height:unset}.sapphire-fieldset{display:inline-flex;flex-direction:column;width:min-content;gap:var(--sapphire-field-size-spacing-fieldset-large)}.sapphire-fieldset .sapphire-field--label-placement-side{grid-template-columns:1fr min-content}.sapphire-fieldset .sapphire-field--label-placement-side .sapphire-field__label{white-space:nowrap}\n"] }]
|
|
128
136
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { necessityIndicator: [{
|
|
129
137
|
type: Input
|
|
130
138
|
}], labelPlacement: [{
|
|
@@ -137,6 +145,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
137
145
|
}], error: [{
|
|
138
146
|
type: ContentChild,
|
|
139
147
|
args: [FieldErrorDirective]
|
|
148
|
+
}], radioGroup: [{
|
|
149
|
+
type: ContentChild,
|
|
150
|
+
args: [RadioGroupComponent]
|
|
140
151
|
}], label: [{
|
|
141
152
|
type: ViewChild,
|
|
142
153
|
args: [LabelComponent]
|
|
@@ -150,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
150
161
|
type: ContentChild,
|
|
151
162
|
args: [RequiredValidator, { descendants: true }]
|
|
152
163
|
}] } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9maWVsZC9zcmMvZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9maWVsZC9zcmMvZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDcEYsT0FBTyxFQUNMLGtCQUFrQixHQUVuQixNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFFM0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQW9CSCxNQUFNLE9BQU8sY0FBYztJQXNEekIsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE1Q3hEOzs7V0FHRztRQUVILG1CQUFjLEdBQXNCLE9BQU8sQ0FBQztRQUU1Qzs7V0FF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dGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIGlzRGV2TW9kZSxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkTm90ZURpcmVjdGl2ZSB9IGZyb20gJy4vZmllbGQtbm90ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmllbGRFcnJvckRpcmVjdGl2ZSB9IGZyb20gJy4vZmllbGQtZXJyb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbGFiZWwvc3JjL2xhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb2VyY2VCb29sZWFuIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvZXJjZS1ib29sZWFuLmRlY29yYXRvcic7XG5pbXBvcnQgeyBSZXF1aXJlZFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkQ29udHJvbCB9IGZyb20gJy4vZmllbGQtY29udHJvbCc7XG5pbXBvcnQgeyBGaWVsZExhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9maWVsZC1sYWJlbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRG9tUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBVc2VDb21wb25lbnRTdHlsZXNPbkhvc3QgfSBmcm9tICcuLi8uLi9jb21tb24vc2FwcGhpcmUtdmlldy1lbmNhcHN1bGF0aW9uJztcbmltcG9ydCB7XG4gIElDT05fU0laRV9QUk9WSURFUixcbiAgSWNvblNpemVQcm92aWRlcixcbn0gZnJvbSAnLi4vLi4vaWNvbi9zcmMvaWNvbi1zaXplLXByb3ZpZGVyJztcblxuLyoqXG4gKiBBIGZpZWxkIGlzIGEgY29tbW9uIGNvbnRhaW5lciBmb3IgbGFiZWxhYmxlIGNvbnRyb2xzIHN1Y2ggYXMgc2VsZWN0LCByYWRpbyBncm91cCwgdGV4dCBmaWVsZCxcbiAqIGV0Yy5cbiAqIEluIGFkZGl0aW9uIHRvIHRoZSBmaWVsZCBjb250cm9sIChzcC1zZWxlY3QsIHNwLXJhZGlvLWdyb3VwLCBzcC10ZXh0LWZpZWxkKSwgdGhlIGZvbGxvd2luZ1xuICogY29tcG9uZW50cyBjYW4gYmUgdXNlZCBpbnNpZGUgYSBmaWVsZDpcbiAqIC0gc3AtZmllbGQtbGFiZWw6IGlzIHVzZWQgdG8gcHJvdmlkZSB0aGUgbGFiZWwgdGV4dCBmb3IgdGhlIGZpZWxkLlxuICogLSBzcC1jb250ZXh0dWFsLWxhYmVsOiBpcyBwbGFjZWQgaW4gdGhlIGxhYmVsIGFyZWEsIG5leHQgdG8gdGhlIGxhYmVsIHRleHRcbiAqIC0gc3AtZmllbGQtZXJyb3I6IGlzIHVzZWQgdG8gcHJvdmlkZSBhbiBlcnJvciBtZXNzYWdlLCB3aGljaCBpcyBwbGFjZWQgYmVsb3cgdGhlIGZpZWxkJ3NcbiAqIGNvbnRyb2wuXG4gKiAtIHNwLWZpZWxkLW5vdGU6IGlzIHVzZWQgdG8gcHJvdmlkZSBhIG5vdGUsIHdoaWNoIGlzIHBsYWNlZCBiZWxvdyB0aGUgZmllbGQncyBjb250cm9sLiBPbmx5XG4gKiBzaG93blxuICogICB3aGVuIHRoZXJlIGlzIG5vIGVycm9yXG4gKiAtIHNwLWZpZWxkLW5vdGUtc3VmZml4OiBpcyB1c2VkIHRvIHByb3ZpZGUgYSBzdWZmaXgsIHdoaWNoIGlzIHBsYWNlZCBvbiB0aGUgcmlnaHQgc2lkZSBvZiB0aGVcbiAqIG5vdGUgYXJlYS5cbiAqXG4gKiBBZGRpdGlvbmFsbHksIGZpZWxkIHN1cHBvcnRzOlxuICogLSBMYWJlbCBwbGFjZW1lbnQgZWl0aGVyIGFib3ZlIChkZWZhdWx0KSBvciBvbiB0aGUgc2lkZSBvZiB0aGUgY29udHJvbC5cbiAqIC0gQXNzb2NpYXRpbmcgbGFiZWwgd2l0aCB0aGUgY29udHJvbCwgc28gdGhhdCBjbGlja2luZyB0aGUgbGFiZWwgZm9jdXNlcyB0aGUgY29udHJvbCwgc2hvd2luZ1xuICogICBmb2N1cyByaW5nLlxuICogLSBPcHRpb25hbGx5IHNob3dpbmcgbmVjZXNzaXR5IGluZGljYXRvciBpbiB0aGUgbGFiZWwuIEZpZWxkcyBuZWNlc3NpdHkgKHJlcXVpcmVkIG9yIG9wdGlvbmFsKVxuICogICBpcyBkZXRlcm1pbmVkIGJhc2VkIG9uIHRoZSBwcmVzZW5jZSBvZiBAYW5ndWxhci9mb3JtJ3Mge0BsaW5rIFJlcXVpcmVkVmFsaWRhdG9yfS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3AtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdzYXBwaGlyZS1maWVsZCcsXG4gICAgJ1tjbGFzcy5zYXBwaGlyZS1maWVsZC0tbGFiZWwtcGxhY2VtZW50LXNpZGVdJzogJ2xhYmVsUGxhY2VtZW50ID09PSBcInNpZGVcIicsXG4gICAgJ1tjbGFzcy5zYXBwaGlyZS1maWVsZC0tbWVkaXVtXSc6ICdzaXplID09PSBcIm1lZGl1bVwiJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLWZpZWxkLS1lcnJvcl0nOiAnaGFzRXJyb3IoKScsXG4gICAgJ1tjbGFzcy5pcy1kaXNhYmxlZF0nOiAnY29udHJvbD8uaXNEaXNhYmxlZCgpJyxcbiAgfSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtVc2VDb21wb25lbnRTdHlsZXNPbkhvc3RdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBJQ09OX1NJWkVfUFJPVklERVIsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWVsZENvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBJY29uU2l6ZVByb3ZpZGVyXG57XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBuZWNlc3NpdHkgaW5kaWNhdG9yIHNob3VsZCBiZSB2aXNpYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgQENvZXJjZUJvb2xlYW5cbiAgbmVjZXNzaXR5SW5kaWNhdG9yPzogQm9vbGVhbklucHV0O1xuXG4gIC8qKlxuICAgKiBMYWJlbCBwbGFjZW1lbnQgd2l0aCByZXNwZWN0IHRvIHRoZSBmb3JtIGNvbnRyb2wuXG4gICAqIEBkZWZhdWx0IFwiYWJvdmVcIlxuICAgKi9cbiAgQElucHV0KClcbiAgbGFiZWxQbGFjZW1lbnQ/OiAnc2lkZScgfCAnYWJvdmUnID0gJ2Fib3ZlJztcblxuICAvKipcbiAgICogQGRlZmF1bHQgXCJsYXJnZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBzaXplPzogJ2xhcmdlJyB8ICdtZWRpdW0nID0gJ2xhcmdlJztcblxuICBAQ29udGVudENoaWxkKEZpZWxkTm90ZURpcmVjdGl2ZSlcbiAgbm90ZT86IEZpZWxkTm90ZURpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkKEZpZWxkRXJyb3JEaXJlY3RpdmUpXG4gIGVycm9yPzogRmllbGRFcnJvckRpcmVjdGl2ZTtcblxuICBAVmlld0NoaWxkKExhYmVsQ29tcG9uZW50KVxuICBsYWJlbD86IExhYmVsQ29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoRmllbGRMYWJlbERpcmVjdGl2ZSlcbiAgX2ZpZWxkTGFiZWw/OiBGaWVsZExhYmVsRGlyZWN0aXZlO1xuXG4gIC8qKlxuICAgKiBGb2N1c2FibGUsIGxhYmVsYWJsZSBjb250cm9sLiBDb21wb25lbnRzIGxpa2UgU2VsZWN0LCBSYWRpb0dyb3VwIG9yIFRleHRGaWVsZCxcbiAgICogdGhhdCBhcmUgbWVhbnQgdG8gcmVuZGVyZWQgaW5zaWRlIHNwLWZpZWxkLCBwcm92aWRlIEZpZWxkQ29udHJvbC5cbiAgICovXG4gIEBDb250ZW50Q2hpbGQoRmllbGRDb250cm9sKVxuICBjb250cm9sPzogRmllbGRDb250cm9sO1xuXG4gIEBDb250ZW50Q2hpbGQoUmVxdWlyZWRWYWxpZGF0b3IsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHJpdmF0ZSByZXF1aXJlZFZhbGlkYXRvcj86IFJlcXVpcmVkVmFsaWRhdG9yO1xuXG4gIC8qKlxuICAgKiBJcyBzZXQgdmlhIGZpZWxkLW5vdGUtYWZmaXggZGlyZWN0aXZlLiBDb250ZW50Q2hpbGQgcXVlcnkgY2FuJ3QgYmUgdXNlZCBzaW5jZSB3ZSBuZWVkXG4gICAqIHRvIHF1ZXJ5IGZyb20gY29udGVudCAtPiB2aWV3IGluIHNvbWUgY2FzZXMuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX25vdGVTdWZmaXhQb3J0YWw6IERvbVBvcnRhbDxIVE1MRWxlbWVudD4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGNoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2wgJiYgaXNEZXZNb2RlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ3NwLWZpZWxkIGlzIHJlbmRlcmVkIHdpdGhvdXQgYW55IGNvbnRyb2wgbGlrZSBzcC1zZWxlY3QsIHNwLXRleHQtZmllbGQsIG9yIHNwLXJhZGlvLWdyb3VwIGluc2lkZSBpdC4nXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAvKipcbiAgICAgKiBTaW5jZSBub3RlIHN1ZmZpeCBwb3J0YWwgaXMgY2hhbmdlZCBieSBGaWVsZE5vdGVTdWZmaXhEaXJlY3RpdmUsXG4gICAgICogaXQgY3JlYXRlcyBhIGNhc2Ugb2YgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvci5cbiAgICAgKiBTbyB3ZSBuZWVkIHRvIG1hbnVhbGx5IGRldGVjdCBjaGFuZ2VzIHdoZW4gc3VmZml4IHBvcnRhbCBpcyBjaGFuZ2VkLlxuICAgICAqIFdlIFdvdWxkbid0IG5lZWQgdG8gZG8gc28sIGlmIHdlIGNvdWxkIHF1ZXJ5IEZpZWxkTm90ZVN1ZmZpeERpcmVjdGl2ZVxuICAgICAqIHZpYSBAQ29udGVudENoaWxkLCBidXQgd2UgY2FuJ3QgYmVjYXVzZSBpdCBjYW4gYmUgaW4gdGhlIHZpZXcgb2YgYSBjb250ZW50XG4gICAgICogY2hpbGQsIHdoaWNoIG1ha2VzIGl0IG5vdCBxdWVyeS1hYmxlLlxuICAgICAqL1xuICAgIGlmICh0aGlzLmNoYW5nZWQpIHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5jaGFuZ2VkID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmaWVsZCBjb250YWlucyBhbiBlcnJvciBtZXNzYWdlIChzcC1maWVsZC1lcnJvcikuXG4gICAqL1xuICBoYXNFcnJvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvciAhPSB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgbGFiZWxOZWNlc3NpdHlJbmRpY2F0b3IoKTogTGFiZWxDb21wb25lbnRbJ25lY2Vzc2l0eUluZGljYXRvciddIHtcbiAgICBpZiAodGhpcy5uZWNlc3NpdHlJbmRpY2F0b3IpIHtcbiAgICAgIHJldHVybiBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5yZXF1aXJlZFZhbGlkYXRvcj8ucmVxdWlyZWQpXG4gICAgICAgID8gJ3JlcXVpcmVkJ1xuICAgICAgICA6ICdvcHRpb25hbCc7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBfc2V0U3VmZml4UG9ydGFsKHBvcnRhbDogRG9tUG9ydGFsPEhUTUxFbGVtZW50PiB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5fbm90ZVN1ZmZpeFBvcnRhbD8uaXNBdHRhY2hlZCkge1xuICAgICAgdGhpcy5fbm90ZVN1ZmZpeFBvcnRhbC5kZXRhY2goKTtcbiAgICAgIC8vIGNhbGxpbmcgZGV0YWNoIHdpbGwgbW92ZSB0aGUgZWxlbWVudCBiYWNrIHRvIHRoZSBET00uIENvdWxkbid0IGZpbmQgYW55IGJldHRlclxuICAgICAgLy8gd2F5IHRoYW4gaW1wZXJhdGl2ZWx5IHJlbW92aW5nIHRoZSBET00gZWxlbWVudCB0b28uXG4gICAgICB0aGlzLl9ub3RlU3VmZml4UG9ydGFsLmVsZW1lbnQucmVtb3ZlKCk7XG4gICAgfVxuICAgIHRoaXMuX25vdGVTdWZmaXhQb3J0YWwgPSBwb3J0YWw7XG4gICAgdGhpcy5jaGFuZ2VkID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNhcHBoaXJlLWZpZWxkX19sYWJlbFwiICpuZ0lmPVwiX2ZpZWxkTGFiZWxcIj5cbiAgPHNwLWxhYmVsXG4gICAgW25lY2Vzc2l0eUluZGljYXRvcl09XCJsYWJlbE5lY2Vzc2l0eUluZGljYXRvclwiXG4gICAgW2Zvcl09XCJjb250cm9sPy5nZXRJZD8uKClcIlxuICAgIFtkaXNhYmxlZF09XCJjb250cm9sPy5pc0Rpc2FibGVkKClcIlxuICAgIChsYWJlbENsaWNrKT1cImNvbnRyb2w/LmZvY3VzPy4oJ2tleWJvYXJkJylcIlxuICAgIFtzaXplXT1cInNpemVcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3AtZmllbGQtbGFiZWxcIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnRcbiAgICAgIHNlbGVjdD1cInNwLWNvbnRleHR1YWwtaGVscFwiXG4gICAgICBuZ1Byb2plY3RBcz1cInNwLWNvbnRleHR1YWwtaGVscFwiXG4gICAgPjwvbmctY29udGVudD5cbiAgPC9zcC1sYWJlbD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInNhcHBoaXJlLWZpZWxkX19jb250cm9sXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInNhcHBoaXJlLWZpZWxkX19tZXNzYWdlXCIgKm5nSWY9XCJub3RlIHx8IGVycm9yIHx8IF9ub3RlU3VmZml4UG9ydGFsXCI+XG4gIDxkaXYgY2xhc3M9XCJzYXBwaGlyZS1maWVsZF9fbm90ZS1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2FwcGhpcmUtZmllbGRfX25vdGVcIiAqbmdJZj1cImVycm9yXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzcC1maWVsZC1lcnJvclwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2FwcGhpcmUtZmllbGRfX25vdGVcIiAqbmdJZj1cIm5vdGUgJiYgIWVycm9yXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzcC1maWVsZC1ub3RlXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfbm90ZVN1ZmZpeFBvcnRhbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqY2RrUG9ydGFsT3V0bGV0PVwiX25vdGVTdWZmaXhQb3J0YWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9maWVsZC9zcmMvZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9maWVsZC9zcmMvZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFJTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDcEYsT0FBTyxFQUNMLGtCQUFrQixHQUVuQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7QUFFNUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQXNCSCxNQUFNLE9BQU8sY0FBYztJQXlEekIsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUEvQ3hE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QUs7c0JBREosU0FBUzt1QkFBQyxjQUFjO2dCQUl6QixXQUFXO3NCQURWLFlBQVk7dUJBQUMsbUJBQW1CO2dCQVFqQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsWUFBWTtnQkFJbEIsaUJBQWlCO3NCQUR4QixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIGlzRGV2TW9kZSxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkTm90ZURpcmVjdGl2ZSB9IGZyb20gJy4vZmllbGQtbm90ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmllbGRFcnJvckRpcmVjdGl2ZSB9IGZyb20gJy4vZmllbGQtZXJyb3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbGFiZWwvc3JjL2xhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb2VyY2VCb29sZWFuIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvZXJjZS1ib29sZWFuLmRlY29yYXRvcic7XG5pbXBvcnQgeyBSZXF1aXJlZFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkQ29udHJvbCB9IGZyb20gJy4vZmllbGQtY29udHJvbCc7XG5pbXBvcnQgeyBGaWVsZExhYmVsRGlyZWN0aXZlIH0gZnJvbSAnLi9maWVsZC1sYWJlbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRG9tUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBVc2VDb21wb25lbnRTdHlsZXNPbkhvc3QgfSBmcm9tICcuLi8uLi9jb21tb24vc2FwcGhpcmUtdmlldy1lbmNhcHN1bGF0aW9uJztcbmltcG9ydCB7XG4gIElDT05fU0laRV9QUk9WSURFUixcbiAgSWNvblNpemVQcm92aWRlcixcbn0gZnJvbSAnLi4vLi4vaWNvbi9zcmMvaWNvbi1zaXplLXByb3ZpZGVyJztcbmltcG9ydCB7IFJhZGlvR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yYWRpby9zcmMvcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcblxuLyoqXG4gKiBBIGZpZWxkIGlzIGEgY29tbW9uIGNvbnRhaW5lciBmb3IgbGFiZWxhYmxlIGNvbnRyb2xzIHN1Y2ggYXMgc2VsZWN0LCByYWRpbyBncm91cCwgdGV4dCBmaWVsZCxcbiAqIGV0Yy5cbiAqIEluIGFkZGl0aW9uIHRvIHRoZSBmaWVsZCBjb250cm9sIChzcC1zZWxlY3QsIHNwLXJhZGlvLWdyb3VwLCBzcC10ZXh0LWZpZWxkKSwgdGhlIGZvbGxvd2luZ1xuICogY29tcG9uZW50cyBjYW4gYmUgdXNlZCBpbnNpZGUgYSBmaWVsZDpcbiAqIC0gc3AtZmllbGQtbGFiZWw6IGlzIHVzZWQgdG8gcHJvdmlkZSB0aGUgbGFiZWwgdGV4dCBmb3IgdGhlIGZpZWxkLlxuICogLSBzcC1jb250ZXh0dWFsLWhlbHA6IGlzIHBsYWNlZCBpbiB0aGUgbGFiZWwgYXJlYSwgbmV4dCB0byB0aGUgbGFiZWwgdGV4dFxuICogLSBzcC1maWVsZC1lcnJvcjogaXMgdXNlZCB0byBwcm92aWRlIGFuIGVycm9yIG1lc3NhZ2UsIHdoaWNoIGlzIHBsYWNlZCBiZWxvdyB0aGUgZmllbGQnc1xuICogY29udHJvbC5cbiAqIC0gc3AtZmllbGQtbm90ZTogaXMgdXNlZCB0byBwcm92aWRlIGEgbm90ZSwgd2hpY2ggaXMgcGxhY2VkIGJlbG93IHRoZSBmaWVsZCdzIGNvbnRyb2wuIE9ubHlcbiAqIHNob3duXG4gKiAgIHdoZW4gdGhlcmUgaXMgbm8gZXJyb3JcbiAqIC0gc3AtZmllbGQtbm90ZS1zdWZmaXg6IGlzIHVzZWQgdG8gcHJvdmlkZSBhIHN1ZmZpeCwgd2hpY2ggaXMgcGxhY2VkIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZVxuICogbm90ZSBhcmVhLlxuICpcbiAqIEFkZGl0aW9uYWxseSwgZmllbGQgc3VwcG9ydHM6XG4gKiAtIExhYmVsIHBsYWNlbWVudCBlaXRoZXIgYWJvdmUgKGRlZmF1bHQpIG9yIG9uIHRoZSBzaWRlIG9mIHRoZSBjb250cm9sLlxuICogLSBBc3NvY2lhdGluZyBsYWJlbCB3aXRoIHRoZSBjb250cm9sLCBzbyB0aGF0IGNsaWNraW5nIHRoZSBsYWJlbCBmb2N1c2VzIHRoZSBjb250cm9sLCBzaG93aW5nXG4gKiAgIGZvY3VzIHJpbmcuXG4gKiAtIE9wdGlvbmFsbHkgc2hvd2luZyBuZWNlc3NpdHkgaW5kaWNhdG9yIGluIHRoZSBsYWJlbC4gRmllbGRzIG5lY2Vzc2l0eSAocmVxdWlyZWQgb3Igb3B0aW9uYWwpXG4gKiAgIGlzIGRldGVybWluZWQgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9mIEBhbmd1bGFyL2Zvcm0ncyB7QGxpbmsgUmVxdWlyZWRWYWxpZGF0b3J9LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3NhcHBoaXJlLWZpZWxkJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLWZpZWxkLS1sYWJlbC1wbGFjZW1lbnQtc2lkZV0nOiAnbGFiZWxQbGFjZW1lbnQgPT09IFwic2lkZVwiJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLWZpZWxkLS1sYWJlbC1hbGlnbm1lbnQtdG9wXSc6XG4gICAgICAnbGFiZWxQbGFjZW1lbnQgPT09IFwic2lkZVwiICYmIGhhc0ZpZWxkR3JvdXBDaGlsZCgpJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLWZpZWxkLS1tZWRpdW1dJzogJ3NpemUgPT09IFwibWVkaXVtXCInLFxuICAgICdbY2xhc3Muc2FwcGhpcmUtZmllbGQtLWVycm9yXSc6ICdoYXNFcnJvcigpJyxcbiAgICAnW2NsYXNzLmlzLWRpc2FibGVkXSc6ICdjb250cm9sPy5pc0Rpc2FibGVkKCknLFxuICB9LFxuICBob3N0RGlyZWN0aXZlczogW1VzZUNvbXBvbmVudFN0eWxlc09uSG9zdF0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IElDT05fU0laRV9QUk9WSURFUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpZWxkQ29tcG9uZW50KSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZENvbXBvbmVudFxuICBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0NoZWNrZWQsIEljb25TaXplUHJvdmlkZXJcbntcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIG5lY2Vzc2l0eSBpbmRpY2F0b3Igc2hvdWxkIGJlIHZpc2libGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBAQ29lcmNlQm9vbGVhblxuICBuZWNlc3NpdHlJbmRpY2F0b3I/OiBCb29sZWFuSW5wdXQ7XG5cbiAgLyoqXG4gICAqIExhYmVsIHBsYWNlbWVudCB3aXRoIHJlc3BlY3QgdG8gdGhlIGZvcm0gY29udHJvbC5cbiAgICogQGRlZmF1bHQgXCJhYm92ZVwiXG4gICAqL1xuICBASW5wdXQoKVxuICBsYWJlbFBsYWNlbWVudD86ICdzaWRlJyB8ICdhYm92ZScgPSAnYWJvdmUnO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCBcImxhcmdlXCJcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNpemU/OiAnbGFyZ2UnIHwgJ21lZGl1bScgPSAnbGFyZ2UnO1xuXG4gIEBDb250ZW50Q2hpbGQoRmllbGROb3RlRGlyZWN0aXZlKVxuICBub3RlPzogRmllbGROb3RlRGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGQoRmllbGRFcnJvckRpcmVjdGl2ZSlcbiAgZXJyb3I/OiBGaWVsZEVycm9yRGlyZWN0aXZlO1xuXG4gIEBDb250ZW50Q2hpbGQoUmFkaW9Hcm91cENvbXBvbmVudClcbiAgcmFkaW9Hcm91cD86IFJhZGlvR3JvdXBDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChMYWJlbENvbXBvbmVudClcbiAgbGFiZWw/OiBMYWJlbENvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEZpZWxkTGFiZWxEaXJlY3RpdmUpXG4gIF9maWVsZExhYmVsPzogRmllbGRMYWJlbERpcmVjdGl2ZTtcblxuICAvKipcbiAgICogRm9jdXNhYmxlLCBsYWJlbGFibGUgY29udHJvbC4gQ29tcG9uZW50cyBsaWtlIFNlbGVjdCwgUmFkaW9Hcm91cCBvciBUZXh0RmllbGQsXG4gICAqIHRoYXQgYXJlIG1lYW50IHRvIHJlbmRlcmVkIGluc2lkZSBzcC1maWVsZCwgcHJvdmlkZSBGaWVsZENvbnRyb2wuXG4gICAqL1xuICBAQ29udGVudENoaWxkKEZpZWxkQ29udHJvbClcbiAgY29udHJvbD86IEZpZWxkQ29udHJvbDtcblxuICBAQ29udGVudENoaWxkKFJlcXVpcmVkVmFsaWRhdG9yLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgcmVxdWlyZWRWYWxpZGF0b3I/OiBSZXF1aXJlZFZhbGlkYXRvcjtcblxuICAvKipcbiAgICogSXMgc2V0IHZpYSBmaWVsZC1ub3RlLWFmZml4IGRpcmVjdGl2ZS4gQ29udGVudENoaWxkIHF1ZXJ5IGNhbid0IGJlIHVzZWQgc2luY2Ugd2UgbmVlZFxuICAgKiB0byBxdWVyeSBmcm9tIGNvbnRlbnQgLT4gdmlldyBpbiBzb21lIGNhc2VzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIF9ub3RlU3VmZml4UG9ydGFsOiBEb21Qb3J0YWw8SFRNTEVsZW1lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBjaGFuZ2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGlmICghdGhpcy5jb250cm9sICYmIGlzRGV2TW9kZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdzcC1maWVsZCBpcyByZW5kZXJlZCB3aXRob3V0IGFueSBjb250cm9sIGxpa2Ugc3Atc2VsZWN0LCBzcC10ZXh0LWZpZWxkLCBvciBzcC1yYWRpby1ncm91cCBpbnNpZGUgaXQuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgLyoqXG4gICAgICogU2luY2Ugbm90ZSBzdWZmaXggcG9ydGFsIGlzIGNoYW5nZWQgYnkgRmllbGROb3RlU3VmZml4RGlyZWN0aXZlLFxuICAgICAqIGl0IGNyZWF0ZXMgYSBjYXNlIG9mIEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IuXG4gICAgICogU28gd2UgbmVlZCB0byBtYW51YWxseSBkZXRlY3QgY2hhbmdlcyB3aGVuIHN1ZmZpeCBwb3J0YWwgaXMgY2hhbmdlZC5cbiAgICAgKiBXZSBXb3VsZG4ndCBuZWVkIHRvIGRvIHNvLCBpZiB3ZSBjb3VsZCBxdWVyeSBGaWVsZE5vdGVTdWZmaXhEaXJlY3RpdmVcbiAgICAgKiB2aWEgQENvbnRlbnRDaGlsZCwgYnV0IHdlIGNhbid0IGJlY2F1c2UgaXQgY2FuIGJlIGluIHRoZSB2aWV3IG9mIGEgY29udGVudFxuICAgICAqIGNoaWxkLCB3aGljaCBtYWtlcyBpdCBub3QgcXVlcnktYWJsZS5cbiAgICAgKi9cbiAgICBpZiAodGhpcy5jaGFuZ2VkKSB7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHRoaXMuY2hhbmdlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogV2hldGhlciB0aGUgZmllbGQgY29udGFpbnMgYW4gZXJyb3IgbWVzc2FnZSAoc3AtZmllbGQtZXJyb3IpLlxuICAgKi9cbiAgaGFzRXJyb3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3IgIT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGZpZWxkIGNvbnRyb2wgaXMgcmFkaW8gZ3JvdXAgKHNwLXJhZGlvLWdyb3VwKS5cbiAgICovXG4gIGhhc0ZpZWxkR3JvdXBDaGlsZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yYWRpb0dyb3VwICE9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBsYWJlbE5lY2Vzc2l0eUluZGljYXRvcigpOiBMYWJlbENvbXBvbmVudFsnbmVjZXNzaXR5SW5kaWNhdG9yJ10ge1xuICAgIGlmICh0aGlzLm5lY2Vzc2l0eUluZGljYXRvcikge1xuICAgICAgcmV0dXJuIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLnJlcXVpcmVkVmFsaWRhdG9yPy5yZXF1aXJlZClcbiAgICAgICAgPyAncmVxdWlyZWQnXG4gICAgICAgIDogJ29wdGlvbmFsJztcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIF9zZXRTdWZmaXhQb3J0YWwocG9ydGFsOiBEb21Qb3J0YWw8SFRNTEVsZW1lbnQ+IHwgbnVsbCkge1xuICAgIGlmICh0aGlzLl9ub3RlU3VmZml4UG9ydGFsPy5pc0F0dGFjaGVkKSB7XG4gICAgICB0aGlzLl9ub3RlU3VmZml4UG9ydGFsLmRldGFjaCgpO1xuICAgICAgLy8gY2FsbGluZyBkZXRhY2ggd2lsbCBtb3ZlIHRoZSBlbGVtZW50IGJhY2sgdG8gdGhlIERPTS4gQ291bGRuJ3QgZmluZCBhbnkgYmV0dGVyXG4gICAgICAvLyB3YXkgdGhhbiBpbXBlcmF0aXZlbHkgcmVtb3ZpbmcgdGhlIERPTSBlbGVtZW50IHRvby5cbiAgICAgIHRoaXMuX25vdGVTdWZmaXhQb3J0YWwuZWxlbWVudC5yZW1vdmUoKTtcbiAgICB9XG4gICAgdGhpcy5fbm90ZVN1ZmZpeFBvcnRhbCA9IHBvcnRhbDtcbiAgICB0aGlzLmNoYW5nZWQgPSB0cnVlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2FwcGhpcmUtZmllbGRfX2xhYmVsXCIgKm5nSWY9XCJfZmllbGRMYWJlbFwiPlxuICA8c3AtbGFiZWxcbiAgICBbbmVjZXNzaXR5SW5kaWNhdG9yXT1cImxhYmVsTmVjZXNzaXR5SW5kaWNhdG9yXCJcbiAgICBbZm9yXT1cImNvbnRyb2w/LmdldElkPy4oKVwiXG4gICAgW2Rpc2FibGVkXT1cImNvbnRyb2w/LmlzRGlzYWJsZWQoKVwiXG4gICAgKGxhYmVsQ2xpY2spPVwiY29udHJvbD8uZm9jdXM/Ligna2V5Ym9hcmQnKVwiXG4gICAgW3NpemVdPVwic2l6ZVwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzcC1maWVsZC1sYWJlbFwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudFxuICAgICAgc2VsZWN0PVwic3AtY29udGV4dHVhbC1oZWxwXCJcbiAgICAgIG5nUHJvamVjdEFzPVwic3AtY29udGV4dHVhbC1oZWxwXCJcbiAgICA+PC9uZy1jb250ZW50PlxuICA8L3NwLWxhYmVsPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwic2FwcGhpcmUtZmllbGRfX2NvbnRyb2xcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwic2FwcGhpcmUtZmllbGRfX21lc3NhZ2VcIiAqbmdJZj1cIm5vdGUgfHwgZXJyb3IgfHwgX25vdGVTdWZmaXhQb3J0YWxcIj5cbiAgPGRpdiBjbGFzcz1cInNhcHBoaXJlLWZpZWxkX19ub3RlLXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJzYXBwaGlyZS1maWVsZF9fbm90ZVwiICpuZ0lmPVwiZXJyb3JcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNwLWZpZWxkLWVycm9yXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzYXBwaGlyZS1maWVsZF9fbm90ZVwiICpuZ0lmPVwibm90ZSAmJiAhZXJyb3JcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNwLWZpZWxkLW5vdGVcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl9ub3RlU3VmZml4UG9ydGFsXCI+XG4gICAgICA8bmctY29udGFpbmVyICpjZGtQb3J0YWxPdXRsZXQ9XCJfbm90ZVN1ZmZpeFBvcnRhbFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|