@dsivd/prestations-ng 15.3.1-beta5 → 15.3.1-beta6
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/CHANGELOG.md +4 -0
- package/dsivd-prestations-ng-v15.3.1-beta6.tgz +0 -0
- package/esm2020/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.mjs +35 -6
- package/esm2020/sdk-dictionary/default-dictionary.mjs +2 -1
- package/fesm2015/dsivd-prestations-ng.mjs +36 -5
- package/fesm2015/dsivd-prestations-ng.mjs.map +1 -1
- package/fesm2020/dsivd-prestations-ng.mjs +35 -5
- package/fesm2020/dsivd-prestations-ng.mjs.map +1 -1
- package/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.d.ts +2 -0
- package/package.json +1 -1
- package/dsivd-prestations-ng-v15.3.1-beta5.tgz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -51,6 +51,10 @@ A change is considered **breaking** if you have to change your code or update yo
|
|
|
51
51
|
- [foehn-boolean-checkbox.component.html](projects/prestations-ng/src/foehn-boolean/foehn-boolean-checkbox.component.html)
|
|
52
52
|
- handle `isLabelSrOnly` input
|
|
53
53
|
|
|
54
|
+
- [foehn-picture-upload.component.ts](projects/prestations-ng/src/foehn-upload/foehn-picture-upload/foehn-picture-upload.component.ts)
|
|
55
|
+
- check file format before trying to display the image for cropping
|
|
56
|
+
- when file has wrong extension, display error with key `foehn-picture-upload.invalid-file-type`
|
|
57
|
+
|
|
54
58
|
## [15.3.0]
|
|
55
59
|
|
|
56
60
|
### Added
|
|
Binary file
|
|
@@ -45,6 +45,7 @@ export class FoehnPictureUploadComponent extends FoehnInputComponent {
|
|
|
45
45
|
this.resizeToWidth = 300;
|
|
46
46
|
this.resizeToHeight = 0;
|
|
47
47
|
this.shouldDisplayFileSavedConfirmation = true;
|
|
48
|
+
this.acceptFormats = '.jpeg,.jpg,.png';
|
|
48
49
|
this.loading = false;
|
|
49
50
|
}
|
|
50
51
|
get hasPicture() {
|
|
@@ -60,9 +61,30 @@ export class FoehnPictureUploadComponent extends FoehnInputComponent {
|
|
|
60
61
|
});
|
|
61
62
|
}
|
|
62
63
|
onPictureSelection(imgEvent) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
const targetInput = imgEvent.target;
|
|
65
|
+
if (!targetInput?.files?.length || !targetInput.files[0]) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const file = targetInput.files[0];
|
|
69
|
+
if (this.isValidFileType(file.name)) {
|
|
70
|
+
this.refreshErrors([[], true]);
|
|
71
|
+
this.pictureToCrop = imgEvent;
|
|
72
|
+
this.loading = true;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
const errors = [
|
|
76
|
+
{
|
|
77
|
+
name: this.name,
|
|
78
|
+
code: 'InvalidFileType',
|
|
79
|
+
message: this.dictionaryService.getKeySync('foehn-picture-upload.invalid-file-type', {
|
|
80
|
+
filename: file.name,
|
|
81
|
+
acceptFormats: this.acceptFormats
|
|
82
|
+
})
|
|
83
|
+
}
|
|
84
|
+
];
|
|
85
|
+
this.refreshErrors([errors, true]);
|
|
86
|
+
this.resetPictureSelection();
|
|
87
|
+
}
|
|
66
88
|
}
|
|
67
89
|
onPictureSelectionFailed() {
|
|
68
90
|
const errors = [
|
|
@@ -125,6 +147,13 @@ export class FoehnPictureUploadComponent extends FoehnInputComponent {
|
|
|
125
147
|
}
|
|
126
148
|
super.refreshErrors(results);
|
|
127
149
|
}
|
|
150
|
+
isValidFileType(filename) {
|
|
151
|
+
const acceptedFormats = this.acceptFormats
|
|
152
|
+
.split(',')
|
|
153
|
+
.map(ext => ext.toLowerCase());
|
|
154
|
+
const fileExtension = `.${filename.split('.').pop()}`.toLowerCase();
|
|
155
|
+
return acceptedFormats.includes(fileExtension);
|
|
156
|
+
}
|
|
128
157
|
}
|
|
129
158
|
FoehnPictureUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnPictureUploadComponent, deps: [{ token: i1.GrowlBrokerService }, { token: i2.MultiUploadService }, { token: i3.SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
130
159
|
FoehnPictureUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FoehnPictureUploadComponent, selector: "foehn-picture-upload", inputs: { name: "name", key: "key", label: "label", baseUrl: "baseUrl", croppedPictureFilename: "croppedPictureFilename", resizeToWidth: "resizeToWidth", resizeToHeight: "resizeToHeight", shouldDisplayFileSavedConfirmation: "shouldDisplayFileSavedConfirmation" }, providers: [
|
|
@@ -133,7 +162,7 @@ FoehnPictureUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
|
|
|
133
162
|
useExisting: forwardRef(() => FoehnPictureUploadComponent),
|
|
134
163
|
multi: true
|
|
135
164
|
}
|
|
136
|
-
], usesInheritance: true, ngImport: i0, template: "<div\n [attr.id]=\"buildId('Container')\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"form-group clearable-input-form-group\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div *ngIf=\"hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <img\n [id]=\"buildChildId('Picture')\"\n [attr.alt]=\"label\"\n [src]=\"getDownloadUrl()\"\n />\n </div>\n <div class=\"col-md-4\">\n <button\n type=\"button\"\n class=\"btn btn-danger w-100\"\n [attr.id]=\"buildChildId('DeleteButton')\"\n (click)=\"deleteFile()\"\n >\n {{\n 'foehn-picture-upload.delete-picture-label' | fromDictionary\n }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!hasPicture && !croppedPictureAsBase64Url\">\n <input\n #inputFile\n type=\"file\"\n class=\"form-control-file d-none\"\n [attr.id]=\"name\"\n [attr.accept]=\"
|
|
165
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n [attr.id]=\"buildId('Container')\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"form-group clearable-input-form-group\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div *ngIf=\"hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <img\n [id]=\"buildChildId('Picture')\"\n [attr.alt]=\"label\"\n [src]=\"getDownloadUrl()\"\n />\n </div>\n <div class=\"col-md-4\">\n <button\n type=\"button\"\n class=\"btn btn-danger w-100\"\n [attr.id]=\"buildChildId('DeleteButton')\"\n (click)=\"deleteFile()\"\n >\n {{\n 'foehn-picture-upload.delete-picture-label' | fromDictionary\n }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!hasPicture && !croppedPictureAsBase64Url\">\n <input\n #inputFile\n type=\"file\"\n class=\"form-control-file d-none\"\n [attr.id]=\"name\"\n [attr.accept]=\"acceptFormats\"\n [multiple]=\"false\"\n [name]=\"name\"\n (change)=\"onPictureSelection($event)\"\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary my-2\"\n [attr.id]=\"buildChildId('ChooseButton')\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n [attr.disabled]=\"loading ? 'disabled' : null\"\n >\n {{ 'foehn-picture-upload.choose-button-label' | fromDictionary }}\n </button>\n </div>\n\n <div *ngIf=\"loading\">\n {{ 'foehn-picture-upload.loading-label' | fromDictionary }}\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <image-cropper\n [id]=\"buildChildId('Cropper')\"\n (cropperReady)=\"loading = false\"\n (imageCropped)=\"onImageCropped($event)\"\n (loadImageFailed)=\"onPictureSelectionFailed()\"\n [aspectRatio]=\"3 / 4\"\n [imageChangedEvent]=\"pictureToCrop\"\n [maintainAspectRatio]=\"true\"\n [resizeToWidth]=\"resizeToWidth\"\n [resizeToHeight]=\"resizeToHeight\"\n [onlyScaleDown]=\"true\"\n format=\"png\"\n ></image-cropper>\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"col-md-4\">\n <div class=\"row mb-3\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-primary w-100\"\n [attr.id]=\"buildChildId('SaveButton')\"\n (click)=\"savePicture()\"\n >\n {{\n 'foehn-picture-upload.validate-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n <div class=\"row\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-secondary w-100\"\n [attr.id]=\"buildChildId('CancelButton')\"\n (click)=\"resetPictureSelection()\"\n >\n {{\n 'foehn-picture-upload.cancel-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: i4.FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { type: i5.ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "format", "transform", "maintainAspectRatio", "aspectRatio", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "autoCrop", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "cropper", "alignImage", "disabled"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "fromDictionary": i8.SdkDictionaryPipe } });
|
|
137
166
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnPictureUploadComponent, decorators: [{
|
|
138
167
|
type: Component,
|
|
139
168
|
args: [{ selector: 'foehn-picture-upload', providers: [
|
|
@@ -142,7 +171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
142
171
|
useExisting: forwardRef(() => FoehnPictureUploadComponent),
|
|
143
172
|
multi: true
|
|
144
173
|
}
|
|
145
|
-
], template: "<div\n [attr.id]=\"buildId('Container')\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"form-group clearable-input-form-group\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div *ngIf=\"hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <img\n [id]=\"buildChildId('Picture')\"\n [attr.alt]=\"label\"\n [src]=\"getDownloadUrl()\"\n />\n </div>\n <div class=\"col-md-4\">\n <button\n type=\"button\"\n class=\"btn btn-danger w-100\"\n [attr.id]=\"buildChildId('DeleteButton')\"\n (click)=\"deleteFile()\"\n >\n {{\n 'foehn-picture-upload.delete-picture-label' | fromDictionary\n }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!hasPicture && !croppedPictureAsBase64Url\">\n <input\n #inputFile\n type=\"file\"\n class=\"form-control-file d-none\"\n [attr.id]=\"name\"\n [attr.accept]=\"
|
|
174
|
+
], template: "<div\n [attr.id]=\"buildId('Container')\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"form-group clearable-input-form-group\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div *ngIf=\"hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <img\n [id]=\"buildChildId('Picture')\"\n [attr.alt]=\"label\"\n [src]=\"getDownloadUrl()\"\n />\n </div>\n <div class=\"col-md-4\">\n <button\n type=\"button\"\n class=\"btn btn-danger w-100\"\n [attr.id]=\"buildChildId('DeleteButton')\"\n (click)=\"deleteFile()\"\n >\n {{\n 'foehn-picture-upload.delete-picture-label' | fromDictionary\n }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!hasPicture && !croppedPictureAsBase64Url\">\n <input\n #inputFile\n type=\"file\"\n class=\"form-control-file d-none\"\n [attr.id]=\"name\"\n [attr.accept]=\"acceptFormats\"\n [multiple]=\"false\"\n [name]=\"name\"\n (change)=\"onPictureSelection($event)\"\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary my-2\"\n [attr.id]=\"buildChildId('ChooseButton')\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n [attr.disabled]=\"loading ? 'disabled' : null\"\n >\n {{ 'foehn-picture-upload.choose-button-label' | fromDictionary }}\n </button>\n </div>\n\n <div *ngIf=\"loading\">\n {{ 'foehn-picture-upload.loading-label' | fromDictionary }}\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <image-cropper\n [id]=\"buildChildId('Cropper')\"\n (cropperReady)=\"loading = false\"\n (imageCropped)=\"onImageCropped($event)\"\n (loadImageFailed)=\"onPictureSelectionFailed()\"\n [aspectRatio]=\"3 / 4\"\n [imageChangedEvent]=\"pictureToCrop\"\n [maintainAspectRatio]=\"true\"\n [resizeToWidth]=\"resizeToWidth\"\n [resizeToHeight]=\"resizeToHeight\"\n [onlyScaleDown]=\"true\"\n format=\"png\"\n ></image-cropper>\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"col-md-4\">\n <div class=\"row mb-3\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-primary w-100\"\n [attr.id]=\"buildChildId('SaveButton')\"\n (click)=\"savePicture()\"\n >\n {{\n 'foehn-picture-upload.validate-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n <div class=\"row\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-secondary w-100\"\n [attr.id]=\"buildChildId('CancelButton')\"\n (click)=\"resetPictureSelection()\"\n >\n {{\n 'foehn-picture-upload.cancel-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
146
175
|
}], ctorParameters: function () { return [{ type: i1.GrowlBrokerService }, { type: i2.MultiUploadService }, { type: i3.SdkDictionaryService }]; }, propDecorators: { name: [{
|
|
147
176
|
type: Input
|
|
148
177
|
}], key: [{
|
|
@@ -160,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
160
189
|
}], shouldDisplayFileSavedConfirmation: [{
|
|
161
190
|
type: Input
|
|
162
191
|
}] } });
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tcGljdHVyZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLXVwbG9hZC9mb2Vobi1waWN0dXJlLXVwbG9hZC9mb2Vobi1waWN0dXJlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tdXBsb2FkL2ZvZWhuLXBpY3R1cmUtdXBsb2FkL2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7Ozs7QUFROUUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFjLEVBQUUsUUFBZ0IsRUFBUSxFQUFFO0lBQzFELDhEQUE4RDtJQUM5RCxNQUFNLElBQUksR0FBUSxRQUFRLENBQUM7SUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7SUFDckIsT0FBTyxJQUFZLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxzQkFBc0IsR0FBRyxDQUMzQix1QkFBK0IsRUFDL0IsUUFBZ0IsRUFDWixFQUFFO0lBQ04sTUFBTSxHQUFHLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxD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bUI7WUFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztZQUMxRCxLQUFLLEVBQUUsSUFBSTtTQUNkO0tBQ0osaURDbERMLG1nSkFzSUE7NEZEbEZhLDJCQUEyQjtrQkFYdkMsU0FBUzsrQkFDSSxzQkFBc0IsYUFFckI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7NEJBQzFELEtBQUssRUFBRSxJQUFJO3lCQUNkO3FCQUNKOzZLQU1ELElBQUk7c0JBREgsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4sS0FBSztzQkFESixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixrQ0FBa0M7c0JBRGpDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9laG5JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEb2N1bWVudFJlZmVyZW5jZSB9IGZyb20gJy4uLy4uL2ZvZWhuLXVwbG9hZC9kb2N1bWVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgR3Jvd2xCcm9rZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZm9laG4tZ3Jvd2wvZ3Jvd2wtYnJva2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTXVsdGlVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZm9laG4tdXBsb2FkL2ZvZWhuLW11bHRpLXVwbG9hZC9tdWx0aS11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUVycm9yIH0gZnJvbSAnLi4vLi4vZm9ybS1lcnJvcic7XG5pbXBvcnQgeyBJbWFnZUNyb3BwZWRFdmVudCB9IGZyb20gJ25neC1pbWFnZS1jcm9wcGVyJztcblxuY29uc3QgYmxvYlRvRmlsZSA9IChibG9iRGF0YTogQmxvYiwgZmlsZU5hbWU6IHN0cmluZyk6IEZpbGUgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgY29uc3QgYmxvYjogYW55ID0gYmxvYkRhdGE7XG4gICAgYmxvYi5uYW1lID0gZmlsZU5hbWU7XG4gICAgcmV0dXJuIGJsb2IgYXMgRmlsZTtcbn07XG5cbmNvbnN0IGNvbnZlcnRCYXNlNjRVcmxUb0ZpbGUgPSAoXG4gICAgY3JvcHBlZEltYWdlYXNCYXNlNjRVcmw6IHN0cmluZyxcbiAgICBmaWxlbmFtZTogc3RyaW5nXG4pOiBGaWxlID0+IHtcbiAgICBjb25zdCBhcnIgPSBjcm9wcGVkSW1hZ2Vhc0Jhc2U2NFVybC5zcGxpdCgnLCcpO1xuICAgIGNvbnN0IG1pbWUgPSBhcnJbMF0ubWF0Y2goLzooLio/KTsvKVsxXTtcbiAgICBjb25zdCBic3RyID0gYXRvYihhcnJbMV0pO1xuICAgIGxldCBuID0gYnN0ci5sZW5ndGg7XG4gICAgY29uc3QgdThhcnIgPSBuZXcgVWludDhBcnJheShuKTtcbiAgICB3aGlsZSAobi0tKSB7XG4gICAgICAgIHU4YXJyW25dID0gYnN0ci5jaGFyQ29kZUF0KG4pO1xuICAgIH1cblxuICAgIGlmICghbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmNsdWRlcygnRWRnZScpKSB7XG4gICAgICAgIC8vIGRldGVjdCBpZiBub3QgRWRnZVxuICAgICAgICByZXR1cm4gbmV3IEZpbGUoW3U4YXJyXSwgZmlsZW5hbWUsIHsgdHlwZTogbWltZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyBFZGdlIHN1cHBvcnQgdGhlIEZpbGVBUEkgYnV0IG5vdCB0aGUgRmlsZSBjb25zdHJ1Y3Rvci5cbiAgICAgICAgcmV0dXJuIGJsb2JUb0ZpbGUobmV3IEJsb2IoW3U4YXJyXSwgeyB0eXBlOiBtaW1lIH0pLCBmaWxlbmFtZSk7XG4gICAgfVxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1waWN0dXJlLXVwbG9hZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRm9laG5JbnB1dENvbXBvbmVudCxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvZWhuUGljdHVyZVVwbG9hZENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2VoblBpY3R1cmVVcGxvYWRDb21wb25lbnRcbiAgICBleHRlbmRzIEZvZWhuSW5wdXRDb21wb25lbnQ8RG9jdW1lbnRSZWZlcmVuY2VbXT5cbiAgICBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBuYW1lOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGtleTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBiYXNlVXJsID0gJ2FwaS9kb2N1bWVudCc7XG5cbiAgICBASW5wdXQoKVxuICAgIGNyb3BwZWRQaWN0dXJlRmlsZW5hbWUgPSAncGhvdG8ucG5nJztcblxuICAgIEBJbnB1dCgpXG4gICAgcmVzaXplVG9XaWR0aCA9IDMwMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcmVzaXplVG9IZWlnaHQgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBzaG91bGREaXNwbGF5RmlsZVNhdmVkQ29uZmlybWF0aW9uID0gdHJ1ZTtcblxuICAgIHBpY3R1cmVUb0Nyb3A6IEV2ZW50O1xuICAgIGNyb3BwZWRQaWN0dXJlQXNCYXNlNjRVcmw6IHN0cmluZztcbiAgICBsb2FkaW5nID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgY3VycmVudExhbmd1YWdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gICAgcHJvdGVjdGVkIGN1cnJlbnRMYW5ndWFnZTogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZ3Jvd2xTZXJ2aWNlOiBHcm93bEJyb2tlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdXBsb2FkU2VydmljZTogTXVsdGlVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpY3Rpb25hcnlTZXJ2aWNlOiBTZGtEaWN0aW9uYXJ5U2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGdldCBoYXNQaWN0dXJlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbCAmJiB0aGlzLm1vZGVsLmxlbmd0aCAmJiAhIXRoaXMubW9kZWxbMF0ucmVmZXJlbmNlO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZVN1YnNjcmlwdGlvbiA9IHRoaXMuZGljdGlvbmFyeVNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRDdXJyZW50TGFuZ3VhZ2VDb2RlKClcbiAgICAgICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGxhbmd1YWdlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSA9IGxhbmd1YWdlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25QaWN0dXJlU2VsZWN0aW9uKGltZ0V2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZnJlc2hFcnJvcnMoW1tdLCB0cnVlXSk7XG4gICAgICAgIHRoaXMucGljdHVyZVRvQ3JvcCA9IGltZ0V2ZW50O1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uUGljdHVyZVNlbGVjdGlvbkZhaWxlZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXJyb3JzID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICBjb2RlOiAnTG9hZGluZ0ZhaWx1cmUnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5U3luYyhcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmxvYWRpbmctZmFpbHVyZS1sYWJlbCdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICAgIHRoaXMucmVmcmVzaEVycm9ycyhbZXJyb3JzLCB0cnVlXSk7XG4gICAgICAgIHRoaXMucmVzZXRQaWN0dXJlU2VsZWN0aW9uKCk7XG4gICAgfVxuXG4gICAgb25JbWFnZUNyb3BwZWQoY3JvcHBlZEV2ZW50OiBJbWFnZUNyb3BwZWRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyb3BwZWRQaWN0dXJlQXNCYXNlNjRVcmwgPSBjcm9wcGVkRXZlbnQuYmFzZTY0O1xuICAgIH1cblxuICAgIHJlc2V0UGljdHVyZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcm9wcGVkUGljdHVyZUFzQmFzZTY0VXJsID0gbnVsbDtcbiAgICAgICAgdGhpcy5waWN0dXJlVG9Dcm9wID0gbnVsbDtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgc2F2ZVBpY3R1cmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcblxuICAgICAgICBjb25zdCBwaG90byA9IGNvbnZlcnRCYXNlNjRVcmxUb0ZpbGUoXG4gICAgICAgICAgICB0aGlzLmNyb3BwZWRQaWN0dXJlQXNCYXNlNjRVcmwsXG4gICAgICAgICAgICB0aGlzLmNyb3BwZWRQaWN0dXJlRmlsZW5hbWVcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2VcbiAgICAgICAgICAgIC51cGxvYWREb2N1bWVudHMoXG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsLFxuICAgICAgICAgICAgICAgIFtwaG90b10sXG4gICAgICAgICAgICAgICAgdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgdGhpcy5zaG91bGREaXNwbGF5RmlsZVNhdmVkQ29uZmlybWF0aW9uXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShmaWx0ZXIocmVzdWx0ID0+ICEhcmVzdWx0KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgZG9jdW1lbnRzLCBlcnJvcnMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRQaWN0dXJlU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgaWYgKCEhZG9jdW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWwgPSBkb2N1bWVudHM7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEVycm9ycyhbW10sIHRydWVdKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEVycm9ycyhbZXJyb3JzLCB0cnVlXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZGVsZXRlRmlsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlXG4gICAgICAgICAgICAuZGVsZXRlRG9jdW1lbnQodGhpcy5iYXNlVXJsLCB0aGlzLm1vZGVsWzBdKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbCA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRQaWN0dXJlU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXREb3dubG9hZFVybCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRTZXJ2aWNlLmdldERvd25sb2FkVXJsKHRoaXMuYmFzZVVybCwgdGhpcy5tb2RlbFswXSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWZyZXNoRXJyb3JzKHJlc3VsdHM6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVycm9yczogRm9ybUVycm9yW10gPSByZXN1bHRzWzBdO1xuXG4gICAgICAgIGNvbnN0IGlzSW5TZWxlY3Rpb25Nb2RlID1cbiAgICAgICAgICAgICF0aGlzLmhhc1BpY3R1cmUgJiYgISF0aGlzLmNyb3BwZWRQaWN0dXJlQXNCYXNlNjRVcmw7XG4gICAgICAgIGlmIChpc0luU2VsZWN0aW9uTW9kZSkge1xuICAgICAgICAgICAgY29uc3Qgbm90TnVsbEVycm9yID0gZXJyb3JzLmZpbmQoXG4gICAgICAgICAgICAgICAgZSA9PiBlLm5hbWUgPT09IHRoaXMubmFtZSAmJiBlLmNvZGUgPT09ICdOb3RFbXB0eSdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAobm90TnVsbEVycm9yKSB7XG4gICAgICAgICAgICAgICAgbm90TnVsbEVycm9yLm1lc3NhZ2UgPSB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldEtleVN5bmMoXG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5zZWxlY3Rpb24tbm90LXZhbGlkYXRlZC1sYWJlbCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc3VwZXIucmVmcmVzaEVycm9ycyhyZXN1bHRzKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgW2F0dHIuaWRdPVwiYnVpbGRJZCgnQ29udGFpbmVyJylcIlxuICAgIFtjbGFzcy5oYXMtZGFuZ2VyXT1cImhhc0Vycm9ycygpXCJcbiAgICBbY2xhc3MudmQtZm9ybS1ncm91cC1kYW5nZXJdPVwiaGFzRXJyb3JzKClcIlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cCBjbGVhcmFibGUtaW5wdXQtZm9ybS1ncm91cFwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4+XG4gICAgPGxhYmVsXG4gICAgICAgIFthdHRyLmZvcl09XCJidWlsZENoaWxkSWQoKVwiXG4gICAgICAgICpuZ0lmPVwiISFsYWJlbFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImlzTGFiZWxTck9ubHkgPyAnc3Itb25seScgOiBsYWJlbFN0eWxlTW9kaWZpZXJcIlxuICAgID5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsYWJlbFwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIXJlcXVpcmVkICYmICFoaWRlTm90UmVxdWlyZWRFeHRyYUxhYmVsXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7ICdmb2Vobi1pbnB1dC5vcHRpb25hbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cblxuICAgIDxmb2Vobi12YWxpZGF0aW9uLWFsZXJ0cyBbY29tcG9uZW50XT1cInRoaXNcIj48L2ZvZWhuLXZhbGlkYXRpb24tYWxlcnRzPlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiaGVscFRleHRcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dFwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8aW5wdXQgdHlwZT1cImhpZGRlblwiIFtuYW1lXT1cIm5hbWUgfHwgbGFiZWxcIiBbbmdNb2RlbF09XCJtb2RlbFwiIC8+XG5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaGFzUGljdHVyZVwiIGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoJ1BpY3R1cmUnKVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYWx0XT1cImxhYmVsXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImdldERvd25sb2FkVXJsKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXIgdy0xMDBcIlxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgnRGVsZXRlQnV0dG9uJylcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVGaWxlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5kZWxldGUtcGljdHVyZS1sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIWhhc1BpY3R1cmUgJiYgIWNyb3BwZWRQaWN0dXJlQXNCYXNlNjRVcmxcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjaW5wdXRGaWxlXG4gICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbC1maWxlIGQtbm9uZVwiXG4gICAgICAgICAgICBbYXR0ci5pZF09XCJuYW1lXCJcbiAgICAgICAgICAgIFthdHRyLmFjY2VwdF09XCInLmpwZWcsLmpwZywucG5nJ1wiXG4gICAgICAgICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uUGljdHVyZVNlbGVjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG15LTJcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCdDaG9vc2VCdXR0b24nKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImJ1aWxkSWQoJ0Vycm9yc0NvbnRhaW5lcicpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpbnB1dEZpbGUuY2xpY2soKVwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJsb2FkaW5nID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyAnZm9laG4tcGljdHVyZS11cGxvYWQuY2hvb3NlLWJ1dHRvbi1sYWJlbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgICAgIHt7ICdmb2Vobi1waWN0dXJlLXVwbG9hZC5sb2FkaW5nLWxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIWhhc1BpY3R1cmVcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxpbWFnZS1jcm9wcGVyXG4gICAgICAgICAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgnQ3JvcHBlcicpXCJcbiAgICAgICAgICAgICAgICAoY3JvcHBlclJlYWR5KT1cImxvYWRpbmcgPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgKGltYWdlQ3JvcHBlZCk9XCJvbkltYWdlQ3JvcHBlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobG9hZEltYWdlRmFpbGVkKT1cIm9uUGljdHVyZVNlbGVjdGlvbkZhaWxlZCgpXCJcbiAgICAgICAgICAgICAgICBbYXNwZWN0UmF0aW9dPVwiMyAvIDRcIlxuICAgICAgICAgICAgICAgIFtpbWFnZUNoYW5nZWRFdmVudF09XCJwaWN0dXJlVG9Dcm9wXCJcbiAgICAgICAgICAgICAgICBbbWFpbnRhaW5Bc3BlY3RSYXRpb109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbcmVzaXplVG9XaWR0aF09XCJyZXNpemVUb1dpZHRoXCJcbiAgICAgICAgICAgICAgICBbcmVzaXplVG9IZWlnaHRdPVwicmVzaXplVG9IZWlnaHRcIlxuICAgICAgICAgICAgICAgIFtvbmx5U2NhbGVEb3duXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIGZvcm1hdD1cInBuZ1wiXG4gICAgICAgICAgICA+PC9pbWFnZS1jcm9wcGVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWhhc1BpY3R1cmVcIiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3JvcHBlZFBpY3R1cmVBc0Jhc2U2NFVybFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgnU2F2ZUJ1dHRvbicpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVQaWN0dXJlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC52YWxpZGF0ZS1zZWxlY3Rpb24tbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNyb3BwZWRQaWN0dXJlQXNCYXNlNjRVcmxcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgnQ2FuY2VsQnV0dG9uJylcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVzZXRQaWN0dXJlU2VsZWN0aW9uKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5jYW5jZWwtc2VsZWN0aW9uLWxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tcGljdHVyZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLXVwbG9hZC9mb2Vobi1waWN0dXJlLXVwbG9hZC9mb2Vobi1waWN0dXJlLXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tdXBsb2FkL2ZvZWhuLXBpY3R1cmUtdXBsb2FkL2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7Ozs7QUFROUUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFjLEVBQUUsUUFBZ0IsRUFBUSxFQUFFO0lBQzFELDhEQUE4RDtJQUM5RCxNQUFNLElBQUksR0FBUSxRQUFRLENBQUM7SUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7SUFDckIsT0FBTyxJQUFZLENBQUM7QUFDeEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxzQkFBc0IsR0FBRyxDQUMzQix1QkFBK0IsRUFDL0IsUUFBZ0IsRUFDWixFQUFFO0lBQ04sTUFBTSxHQUFHLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxD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UnpCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7WUFDMUQsS0FBSyxFQUFFLElBQUk7U0FDZDtLQUNKLGlEQ2xETCwrL0lBc0lBOzRGRGxGYSwyQkFBMkI7a0JBWHZDLFNBQVM7K0JBQ0ksc0JBQXNCLGFBRXJCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSjs2S0FNRCxJQUFJO3NCQURILEtBQUs7Z0JBSU4sR0FBRztzQkFERixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sc0JBQXNCO3NCQURyQixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sa0NBQWtDO3NCQURqQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvZWhuSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb2Vobi1pbnB1dC9mb2Vobi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRG9jdW1lbnRSZWZlcmVuY2UgfSBmcm9tICcuLi8uLi9mb2Vobi11cGxvYWQvZG9jdW1lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IEdyb3dsQnJva2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2ZvZWhuLWdyb3dsL2dyb3dsLWJyb2tlci5zZXJ2aWNlJztcbmltcG9ydCB7IE11bHRpVXBsb2FkU2VydmljZSB9IGZyb20gJy4uLy4uL2ZvZWhuLXVwbG9hZC9mb2Vobi1tdWx0aS11cGxvYWQvbXVsdGktdXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1FcnJvciB9IGZyb20gJy4uLy4uL2Zvcm0tZXJyb3InO1xuaW1wb3J0IHsgSW1hZ2VDcm9wcGVkRXZlbnQgfSBmcm9tICduZ3gtaW1hZ2UtY3JvcHBlcic7XG5cbmNvbnN0IGJsb2JUb0ZpbGUgPSAoYmxvYkRhdGE6IEJsb2IsIGZpbGVOYW1lOiBzdHJpbmcpOiBGaWxlID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGNvbnN0IGJsb2I6IGFueSA9IGJsb2JEYXRhO1xuICAgIGJsb2IubmFtZSA9IGZpbGVOYW1lO1xuICAgIHJldHVybiBibG9iIGFzIEZpbGU7XG59O1xuXG5jb25zdCBjb252ZXJ0QmFzZTY0VXJsVG9GaWxlID0gKFxuICAgIGNyb3BwZWRJbWFnZWFzQmFzZTY0VXJsOiBzdHJpbmcsXG4gICAgZmlsZW5hbWU6IHN0cmluZ1xuKTogRmlsZSA9PiB7XG4gICAgY29uc3QgYXJyID0gY3JvcHBlZEltYWdlYXNCYXNlNjRVcmwuc3BsaXQoJywnKTtcbiAgICBjb25zdCBtaW1lID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7LylbMV07XG4gICAgY29uc3QgYnN0ciA9IGF0b2IoYXJyWzFdKTtcbiAgICBsZXQgbiA9IGJzdHIubGVuZ3RoO1xuICAgIGNvbnN0IHU4YXJyID0gbmV3IFVpbnQ4QXJyYXkobik7XG4gICAgd2hpbGUgKG4tLSkge1xuICAgICAgICB1OGFycltuXSA9IGJzdHIuY2hhckNvZGVBdChuKTtcbiAgICB9XG5cbiAgICBpZiAoIW5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoJ0VkZ2UnKSkge1xuICAgICAgICAvLyBkZXRlY3QgaWYgbm90IEVkZ2VcbiAgICAgICAgcmV0dXJuIG5ldyBGaWxlKFt1OGFycl0sIGZpbGVuYW1lLCB7IHR5cGU6IG1pbWUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRWRnZSBzdXBwb3J0IHRoZSBGaWxlQVBJIGJ1dCBub3QgdGhlIEZpbGUgY29uc3RydWN0b3IuXG4gICAgICAgIHJldHVybiBibG9iVG9GaWxlKG5ldyBCbG9iKFt1OGFycl0sIHsgdHlwZTogbWltZSB9KSwgZmlsZW5hbWUpO1xuICAgIH1cbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZm9laG4tcGljdHVyZS11cGxvYWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1waWN0dXJlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvZWhuSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2VoblBpY3R1cmVVcGxvYWRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9laG5QaWN0dXJlVXBsb2FkQ29tcG9uZW50XG4gICAgZXh0ZW5kcyBGb2VobklucHV0Q29tcG9uZW50PERvY3VtZW50UmVmZXJlbmNlW10+XG4gICAgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBrZXk6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgbGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgYmFzZVVybCA9ICdhcGkvZG9jdW1lbnQnO1xuXG4gICAgQElucHV0KClcbiAgICBjcm9wcGVkUGljdHVyZUZpbGVuYW1lID0gJ3Bob3RvLnBuZyc7XG5cbiAgICBASW5wdXQoKVxuICAgIHJlc2l6ZVRvV2lkdGggPSAzMDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHJlc2l6ZVRvSGVpZ2h0ID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2hvdWxkRGlzcGxheUZpbGVTYXZlZENvbmZpcm1hdGlvbiA9IHRydWU7XG5cbiAgICByZWFkb25seSBhY2NlcHRGb3JtYXRzID0gJy5qcGVnLC5qcGcsLnBuZyc7XG5cbiAgICBwaWN0dXJlVG9Dcm9wOiBFdmVudDtcbiAgICBjcm9wcGVkUGljdHVyZUFzQmFzZTY0VXJsOiBzdHJpbmc7XG4gICAgbG9hZGluZyA9IGZhbHNlO1xuXG4gICAgcHJvdGVjdGVkIGN1cnJlbnRMYW5ndWFnZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByb3RlY3RlZCBjdXJyZW50TGFuZ3VhZ2U6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGdyb3dsU2VydmljZTogR3Jvd2xCcm9rZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHVwbG9hZFNlcnZpY2U6IE11bHRpVXBsb2FkU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWN0aW9uYXJ5U2VydmljZTogU2RrRGljdGlvbmFyeVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzUGljdHVyZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwgJiYgdGhpcy5tb2RlbC5sZW5ndGggJiYgISF0aGlzLm1vZGVsWzBdLnJlZmVyZW5jZTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2VTdWJzY3JpcHRpb24gPSB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0Q3VycmVudExhbmd1YWdlQ29kZSgpXG4gICAgICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShsYW5ndWFnZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgPSBsYW5ndWFnZTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uUGljdHVyZVNlbGVjdGlvbihpbWdFdmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0SW5wdXQgPSBpbWdFdmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaWYgKCF0YXJnZXRJbnB1dD8uZmlsZXM/Lmxlbmd0aCB8fCAhdGFyZ2V0SW5wdXQuZmlsZXNbMF0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaWxlID0gdGFyZ2V0SW5wdXQuZmlsZXNbMF07XG5cbiAgICAgICAgaWYgKHRoaXMuaXNWYWxpZEZpbGVUeXBlKGZpbGUubmFtZSkpIHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaEVycm9ycyhbW10sIHRydWVdKTtcbiAgICAgICAgICAgIHRoaXMucGljdHVyZVRvQ3JvcCA9IGltZ0V2ZW50O1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGVycm9ycyA9IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgY29kZTogJ0ludmFsaWRGaWxlVHlwZScsXG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5U3luYyhcbiAgICAgICAgICAgICAgICAgICAgICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5pbnZhbGlkLWZpbGUtdHlwZScsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHRGb3JtYXRzOiB0aGlzLmFjY2VwdEZvcm1hdHNcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hFcnJvcnMoW2Vycm9ycywgdHJ1ZV0pO1xuICAgICAgICAgICAgdGhpcy5yZXNldFBpY3R1cmVTZWxlY3Rpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUGljdHVyZVNlbGVjdGlvbkZhaWxlZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXJyb3JzID0gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICBjb2RlOiAnTG9hZGluZ0ZhaWx1cmUnLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5U3luYyhcbiAgICAgICAgICAgICAgICAgICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmxvYWRpbmctZmFpbHVyZS1sYWJlbCdcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICAgIHRoaXMucmVmcmVzaEVycm9ycyhbZXJyb3JzLCB0cnVlXSk7XG4gICAgICAgIHRoaXMucmVzZXRQaWN0dXJlU2VsZWN0aW9uKCk7XG4gICAgfVxuXG4gICAgb25JbWFnZUNyb3BwZWQoY3JvcHBlZEV2ZW50OiBJbWFnZUNyb3BwZWRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyb3BwZWRQaWN0dXJlQXNCYXNlNjRVcmwgPSBjcm9wcGVkRXZlbnQuYmFzZTY0O1xuICAgIH1cblxuICAgIHJlc2V0UGljdHVyZVNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jcm9wcGVkUGljdHVyZUFzQmFzZTY0VXJsID0gbnVsbDtcbiAgICAgICAgdGhpcy5waWN0dXJlVG9Dcm9wID0gbnVsbDtcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgc2F2ZVBpY3R1cmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWFya0FzUHJpc3RpbmUoKTtcblxuICAgICAgICBjb25zdCBwaG90byA9IGNvbnZlcnRCYXNlNjRVcmxUb0ZpbGUoXG4gICAgICAgICAgICB0aGlzLmNyb3BwZWRQaWN0dXJlQXNCYXNlNjRVcmwsXG4gICAgICAgICAgICB0aGlzLmNyb3BwZWRQaWN0dXJlRmlsZW5hbWVcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnVwbG9hZFNlcnZpY2VcbiAgICAgICAgICAgIC51cGxvYWREb2N1bWVudHMoXG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgIHRoaXMubmFtZSxcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsLFxuICAgICAgICAgICAgICAgIFtwaG90b10sXG4gICAgICAgICAgICAgICAgdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgdGhpcy5zaG91bGREaXNwbGF5RmlsZVNhdmVkQ29uZmlybWF0aW9uXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZShmaWx0ZXIocmVzdWx0ID0+ICEhcmVzdWx0KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHsgZG9jdW1lbnRzLCBlcnJvcnMgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRQaWN0dXJlU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgaWYgKCEhZG9jdW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWwgPSBkb2N1bWVudHM7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEVycm9ycyhbW10sIHRydWVdKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaEVycm9ycyhbZXJyb3JzLCB0cnVlXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZGVsZXRlRmlsZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlXG4gICAgICAgICAgICAuZGVsZXRlRG9jdW1lbnQodGhpcy5iYXNlVXJsLCB0aGlzLm1vZGVsWzBdKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbCA9IFtdO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRQaWN0dXJlU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXREb3dubG9hZFVybCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRTZXJ2aWNlLmdldERvd25sb2FkVXJsKHRoaXMuYmFzZVVybCwgdGhpcy5tb2RlbFswXSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICByZWZyZXNoRXJyb3JzKHJlc3VsdHM6IGFueVtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVycm9yczogRm9ybUVycm9yW10gPSByZXN1bHRzWzBdO1xuICAgICAgICBjb25zdCBpc0luU2VsZWN0aW9uTW9kZSA9XG4gICAgICAgICAgICAhdGhpcy5oYXNQaWN0dXJlICYmICEhdGhpcy5jcm9wcGVkUGljdHVyZUFzQmFzZTY0VXJsO1xuICAgICAgICBpZiAoaXNJblNlbGVjdGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vdE51bGxFcnJvciA9IGVycm9ycy5maW5kKFxuICAgICAgICAgICAgICAgIGUgPT4gZS5uYW1lID09PSB0aGlzLm5hbWUgJiYgZS5jb2RlID09PSAnTm90RW1wdHknXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKG5vdE51bGxFcnJvcikge1xuICAgICAgICAgICAgICAgIG5vdE51bGxFcnJvci5tZXNzYWdlID0gdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXRLZXlTeW5jKFxuICAgICAgICAgICAgICAgICAgICAnZm9laG4tcGljdHVyZS11cGxvYWQuc2VsZWN0aW9uLW5vdC12YWxpZGF0ZWQtbGFiZWwnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLnJlZnJlc2hFcnJvcnMocmVzdWx0cyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbGlkRmlsZVR5cGUoZmlsZW5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBhY2NlcHRlZEZvcm1hdHMgPSB0aGlzLmFjY2VwdEZvcm1hdHNcbiAgICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgICAubWFwKGV4dCA9PiBleHQudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBgLiR7ZmlsZW5hbWUuc3BsaXQoJy4nKS5wb3AoKX1gLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBhY2NlcHRlZEZvcm1hdHMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbik7XG4gICAgfVxufVxuIiwiPGRpdlxuICAgIFthdHRyLmlkXT1cImJ1aWxkSWQoJ0NvbnRhaW5lcicpXCJcbiAgICBbY2xhc3MuaGFzLWRhbmdlcl09XCJoYXNFcnJvcnMoKVwiXG4gICAgW2NsYXNzLnZkLWZvcm0tZ3JvdXAtZGFuZ2VyXT1cImhhc0Vycm9ycygpXCJcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAgY2xlYXJhYmxlLWlucHV0LWZvcm0tZ3JvdXBcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuPlxuICAgIDxsYWJlbFxuICAgICAgICBbYXR0ci5mb3JdPVwiYnVpbGRDaGlsZElkKClcIlxuICAgICAgICAqbmdJZj1cIiEhbGFiZWxcIlxuICAgICAgICBbbmdDbGFzc109XCJpc0xhYmVsU3JPbmx5ID8gJ3NyLW9ubHknIDogbGFiZWxTdHlsZU1vZGlmaWVyXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGFiZWxcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cIiFyZXF1aXJlZCAmJiAhaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbFwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyAnZm9laG4taW5wdXQub3B0aW9uYWwnIHwgZnJvbURpY3Rpb25hcnkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgIDwvbGFiZWw+XG5cbiAgICA8Zm9laG4tdmFsaWRhdGlvbi1hbGVydHMgW2NvbXBvbmVudF09XCJ0aGlzXCI+PC9mb2Vobi12YWxpZGF0aW9uLWFsZXJ0cz5cblxuICAgIDxzbWFsbFxuICAgICAgICAqbmdJZj1cImhlbHBUZXh0XCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnSGVscCdcIlxuICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHRcIlxuICAgID48L3NtYWxsPlxuXG4gICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbbmFtZV09XCJuYW1lIHx8IGxhYmVsXCIgW25nTW9kZWxdPVwibW9kZWxcIiAvPlxuXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gICAgPGRpdiAqbmdJZj1cImhhc1BpY3R1cmVcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBbaWRdPVwiYnVpbGRDaGlsZElkKCdQaWN0dXJlJylcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFsdF09XCJsYWJlbFwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJnZXREb3dubG9hZFVybCgpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIHctMTAwXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoJ0RlbGV0ZUJ1dHRvbicpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlRmlsZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAnZm9laG4tcGljdHVyZS11cGxvYWQuZGVsZXRlLXBpY3R1cmUtbGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFoYXNQaWN0dXJlICYmICFjcm9wcGVkUGljdHVyZUFzQmFzZTY0VXJsXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgI2lucHV0RmlsZVxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZmlsZSBkLW5vbmVcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwibmFtZVwiXG4gICAgICAgICAgICBbYXR0ci5hY2NlcHRdPVwiYWNjZXB0Rm9ybWF0c1wiXG4gICAgICAgICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uUGljdHVyZVNlbGVjdGlvbigkZXZlbnQpXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG15LTJcIlxuICAgICAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCdDaG9vc2VCdXR0b24nKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaGFzRXJyb3JzVG9EaXNwbGF5KCkgfHwgbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImJ1aWxkSWQoJ0Vycm9yc0NvbnRhaW5lcicpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpbnB1dEZpbGUuY2xpY2soKVwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJsb2FkaW5nID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyAnZm9laG4tcGljdHVyZS11cGxvYWQuY2hvb3NlLWJ1dHRvbi1sYWJlbCcgfCBmcm9tRGljdGlvbmFyeSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCI+XG4gICAgICAgIHt7ICdmb2Vobi1waWN0dXJlLXVwbG9hZC5sb2FkaW5nLWxhYmVsJyB8IGZyb21EaWN0aW9uYXJ5IH19XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIWhhc1BpY3R1cmVcIiBjbGFzcz1cInJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cbiAgICAgICAgICAgIDxpbWFnZS1jcm9wcGVyXG4gICAgICAgICAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgnQ3JvcHBlcicpXCJcbiAgICAgICAgICAgICAgICAoY3JvcHBlclJlYWR5KT1cImxvYWRpbmcgPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgKGltYWdlQ3JvcHBlZCk9XCJvbkltYWdlQ3JvcHBlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobG9hZEltYWdlRmFpbGVkKT1cIm9uUGljdHVyZVNlbGVjdGlvbkZhaWxlZCgpXCJcbiAgICAgICAgICAgICAgICBbYXNwZWN0UmF0aW9dPVwiMyAvIDRcIlxuICAgICAgICAgICAgICAgIFtpbWFnZUNoYW5nZWRFdmVudF09XCJwaWN0dXJlVG9Dcm9wXCJcbiAgICAgICAgICAgICAgICBbbWFpbnRhaW5Bc3BlY3RSYXRpb109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbcmVzaXplVG9XaWR0aF09XCJyZXNpemVUb1dpZHRoXCJcbiAgICAgICAgICAgICAgICBbcmVzaXplVG9IZWlnaHRdPVwicmVzaXplVG9IZWlnaHRcIlxuICAgICAgICAgICAgICAgIFtvbmx5U2NhbGVEb3duXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIGZvcm1hdD1cInBuZ1wiXG4gICAgICAgICAgICA+PC9pbWFnZS1jcm9wcGVyPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWhhc1BpY3R1cmVcIiBjbGFzcz1cImNvbC1tZC00XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG1iLTNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3JvcHBlZFBpY3R1cmVBc0Jhc2U2NFVybFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgnU2F2ZUJ1dHRvbicpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVQaWN0dXJlKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC52YWxpZGF0ZS1zZWxlY3Rpb24tbGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNyb3BwZWRQaWN0dXJlQXNCYXNlNjRVcmxcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImJ1aWxkQ2hpbGRJZCgnQ2FuY2VsQnV0dG9uJylcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVzZXRQaWN0dXJlU2VsZWN0aW9uKClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5jYW5jZWwtc2VsZWN0aW9uLWxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -78,6 +78,7 @@ export const DEFAULT_DICTIONARY = {
|
|
|
78
78
|
'use-login.continue-without-login.button.text': 'Continuer sans se connecter',
|
|
79
79
|
'foehn-picture-upload.choose-button-label': 'Choisissez une photo',
|
|
80
80
|
'foehn-picture-upload.loading-label': 'Chargement...',
|
|
81
|
+
'foehn-picture-upload.invalid-file-type': 'Le type de votre pièce jointe {filename} ne figure pas parmi ceux qui sont autorisés : "{acceptFormats}"',
|
|
81
82
|
'foehn-picture-upload.loading-failure-label': 'Impossible de charger la photo sélectionnée',
|
|
82
83
|
'foehn-picture-upload.validate-selection-label': 'Valider la sélection',
|
|
83
84
|
'foehn-picture-upload.cancel-selection-label': 'Annuler',
|
|
@@ -133,4 +134,4 @@ export const DEFAULT_DICTIONARY = {
|
|
|
133
134
|
'foehn-textarea.chars-remaining.zero': 'Vous avez atteint le nombre de caractère autorisé!',
|
|
134
135
|
'foehn-textarea.chars-remaining.exceeded': 'Vous avez dépassé le nombre de caractères autorisés de {charCountLeft}'
|
|
135
136
|
};
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1kaWN0aW9uYXJ5L2RlZmF1bHQtZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBbUI7SUFDOUMsc0JBQXNCLEVBQUUsY0FBYztJQUN0Qyw0QkFBNEIsRUFBRSxNQUFNO0lBQ3BDLDhCQUE4QixFQUFFLE1BQU07SUFDdEMsNkJBQTZCLEVBQUUsT0FBTztJQUN0QywrQkFBK0IsRUFBRSxNQUFNO0lBQ3ZDLGlDQUFpQyxFQUM3QixpREFBaUQ7UUFDakQsaUZBQWlGO0lBQ3JGLDhCQUE4QixFQUFFLE9BQU87SUFDdkMsZ0NBQWdDLEVBQUUsU0FBUztJQUMzQyw2Q0FBNkMsRUFDekMsaURBQWlEO0lBQ3JELG1DQUFtQyxFQUFFLE1BQU07SUFDM0Msb0NBQW9DLEVBQUUsZUFBZTtJQUNyRCxzQ0FBc0MsRUFBRSwrQkFBK0I7SUFDdkUsa0NBQWtDLEVBQUUsS0FBSztJQUN6Qyx1Q0FBdUMsRUFBRSxlQUFlO0lBQ3hELDJDQUEyQyxFQUN2QywwREFBMEQ7SUFDOUQsNkNBQTZDLEVBQUUsY0FBYztJQUM3RCxpREFBaUQsRUFDN0MsK0NBQStDO0lBQ25ELHdDQUF3QyxFQUFFLEtBQUs7SUFDL0Msd0NBQXdDLEVBQUUsc0JBQXNCO0lBQ2hFLDRDQUE0QyxFQUFFLGFBQWE7SUFDM0QsNkNBQTZDLEVBQUUsVUFBVTtJQUN6RCw2QkFBNkIsRUFBRSxTQUFTO0lBQ3hDLGlDQUFpQyxFQUFFLFdBQVc7SUFDOUMsaUNBQWlDLEVBQUUsYUFBYTtJQUNoRCx1Q0FBdUMsRUFBRSw0QkFBNEI7SUFDckUsd0NBQXdDLEVBQUUsS0FBSztJQUMvQywwQkFBMEIsRUFBRSxtQ0FBbUM7SUFDL0QsMkJBQTJCLEVBQUUsY0FBYztJQUMzQyxtQ0FBbUMsRUFB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QTRDO0lBQ2hELDhDQUE4QyxFQUFFLDJCQUEyQjtJQUMzRSxpREFBaUQsRUFDN0MsMEJBQTBCO0lBQzlCLGdDQUFnQyxFQUFFLGNBQWM7SUFDaEQsc0NBQXNDLEVBQUUsd0JBQXdCO0lBQ2hFLHVDQUF1QyxFQUFFLDZCQUE2QjtJQUN0RSwyQ0FBMkMsRUFDdkMsaUNBQWlDO0lBQ3JDLCtDQUErQyxFQUMzQywwREFBMEQ7SUFDOUQsdUNBQXVDLEVBQ25DLHFDQUFxQztJQUN6Qyx1Q0FBdUMsRUFBRSxnQkFBZ0I7SUFDekQsdUNBQXVDLEVBQUUsb0JBQW9CO0lBQzdELCtDQUErQyxFQUMzQyxxQ0FBcUM7SUFDekMsbUNBQW1DLEVBQUUsa0JBQWtCO0lBQ3ZELDJDQUEyQyxFQUN2QywrQkFBK0I7SUFDbkMsd0NBQXdDLEVBQUUsb0JBQW9CO0lBQzlELHdFQUF3RSxFQUNwRSx3Q0FBd0M7SUFDNUMsaUNBQWlDLEVBQzdCLG1GQUFtRjtJQUN2RixpQ0FBaUMsRUFBRSxzQkFBc0I7SUFDekQsb0NBQW9DLEVBQ2hDLHdFQUF3RTtJQUM1RSxvQ0FBb0MsRUFBRSxhQUFhO0lBQ25ELG1DQUFtQyxFQUMvQiwwRUFBMEU7UUFDMUUscUZBQXFGO1FBQ3JGLG9GQUFvRjtRQUNwRix1RkFBdUY7SUFDM0Ysa0NBQWtDLEVBQUUsNkJBQTZCO0lBQ2pFLDZCQUE2QixFQUFFLFFBQVE7SUFDdkMsdUNBQXVDLEVBQ25DLHFDQUFxQztJQUN6Qyx5Q0FBeUMsRUFDckMsbUNBQW1DO0lBQ3ZDLHFDQUFxQyxFQUNqQyxvREFBb0Q7SUFDeEQseUNBQXlDLEVBQ3JDLHdFQUF3RTtDQUMvRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1jeWNsZVxuaW1wb3J0IHsgRGljdGlvbmFyeVR5cGUgfSBmcm9tICcuL3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9ESUNUSU9OQVJZOiBEaWN0aW9uYXJ5VHlwZSA9IHtcbiAgICAnZm9laG4taW5wdXQub3B0aW9uYWwnOiAnKGZhY3VsdGF0aWYpJyxcbiAgICAnZm9laG4taW5wdXQtZGF0ZS5kYXkubGFiZWwnOiAnSm91cicsXG4gICAgJ2ZvZWhuLWlucHV0LWRhdGUubW9udGgubGFiZWwnOiAnTW9pcycsXG4gICAgJ2ZvZWhuLWlucHV0LWRhdGUueWVhci5sYWJlbCc6ICdBbm7DqWUnLFxuICAgICdmb2Vobi1pbnB1dC1lbWFpbC5tb2RhbC50aXRsZSc6ICdBaWRlJyxcbiAgICAnZm9laG4taW5wdXQtZW1haWwubW9kYWwuY29udGVudCc6XG4gICAgICAgIFwiPHA+Vm91cyBuJ2Fycml2ZXogcGFzIMOgIHNhaXNpciB2b3RyZSBtYWlsID88L3A+XCIgK1xuICAgICAgICAnPHA+TWVyY2kgZFxcJ8OpY3JpcmUgw6AgPGEgaHJlZj1cIm1haWx0bzppbmZvLmN5YmVyQHZkLmNoXCI+aW5mby5jeWJlckB2ZC5jaDwvYT48L3A+JyxcbiAgICAnZm9laG4taW5wdXQtdGltZS5ob3Vycy5sYWJlbCc6ICdIZXVyZScsXG4gICAgJ2ZvZWhuLWlucHV0LXRpbWUubWludXRlcy5sYWJlbCc6ICdNaW51dGVzJyxcbiAgICAnZm9laG4taW5wdXQtbnVtYmVyLnN0YW5kYXJkLWhlbHAtdGV4dC5sYWJlbCc6XG4gICAgICAgICdTYWlzaXIgdW4gbm9tYnJlIGVudHJlIHttaW5WYWx1ZX0gZXQge21heFZhbHVlfScsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3MuY291bnRyeS5sYWJlbCc6ICdQYXlzJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5sb2NhbGl0eS5sYWJlbCc6ICdOUEEsIExvY2FsaXTDqScsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3Muc3RyZWV0LmhlbHAtdGV4dCc6ICdFeGVtcGxlIDogQXZlbnVlIGRlIGxhIFNhbGxheicsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3Muc3RyZWV0LmxhYmVsJzogJ1J1ZScsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3MuaG91c2VOdW1iZXIubGFiZWwnOiAnTnVtw6lybyBkZSBydWUnLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmhvdXNlTnVtYmVyLmhlbHAtdGV4dCc6XG4gICAgICAgIFwiRXhlbXBsZSA6IDQwIHBvdXIgdW5lIGFkcmVzc2Ugw6AgbCdBdmVudWUgZGUgbGEgU2FsbGF6IDQwXCIsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3MucG9zdE9mZmljZUJveFRleHQubGFiZWwnOiAnQ2FzZSBwb3N0YWxlJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5wb3N0T2ZmaWNlQm94VGV4dC5oZWxwLXRleHQnOlxuICAgICAgICAnRXhlbXBsZSA6IENhc2UgcG9zdGFsZSAxMjIgb3UgQ1AxMjIgb3UgQ1AgMTIyJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5hZGRyZXNzTGluZTEubGFiZWwnOiAnYy9vJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5hZGRyZXNzTGluZTIubGFiZWwnOiBcIkNvbXBsw6ltZW50IGQnYWRyZXNzZVwiLFxuICAgICdmb2Vobi1pbnB1dC1mb3JlaWduLWxvY2FsaXR5LnppcENvZGUubGFiZWwnOiAnQ29kZSBwb3N0YWwnLFxuICAgICdmb2Vobi1pbnB1dC1mb3JlaWduLWxvY2FsaXR5LmxvY2FsaXR5LmxhYmVsJzogJ0xvY2FsaXTDqScsXG4gICAgJ2ZvZWhuLW5hdmlnYXRpb24ubmV4dC5sYWJlbCc6ICdTdWl2YW50JyxcbiAgICAnZm9laG4tbmF2aWdhdGlvbi5wcmV2aW91cy5sYWJlbCc6ICdQcsOpY8OpZGVudCcsXG4gICAgJ2ZvZWhuLW5hdmlnYXRpb24udHJhbnNtaXQubGFiZWwnOiAnVHJhbnNtZXR0cmUnLFxuICAgICdmb2Vobi1uYXZpZ2F0aW9uLmNvbnRpbnVlLWxhdGVyLmxhYmVsJzogJ0ZpbmlyIGxhIGRlbWFuZGUgcGx1cyB0YXJkJyxcbiAgICAnZm9laG4tbmF2aWdhdGlvbi5yb3V0ZS5pbmRleC5zZXBhcmF0b3InOiAnc3VyJyxcbiAgICAnZm9laG4tcGFnZS1jb3VudGVyLmxhYmVsJzogJ1BhZ2Uge2N1cnJlbnRQYWdlfSBkZSB7cGFnZUNvdW50fScsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24udGl0bGUnOiAnQ29uZmlybWF0aW9uJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5zdWNjZXNzLWxhYmVsJzogJ0RlbWFuZGUgdHJhbnNtaXNlJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5uZXh0LXN0ZXAuc3VjY2Vzcy1sYWJlbCc6ICdSw6lwb25zZSB0cmFuc21pc2UnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmFib3J0LWxhYmVsJzogJ0RlbWFuZGUgYWJhbmRvbm7DqWUnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnJlZmVyZW5jZS10aXRsZS5sYWJlbCc6XG4gICAgICAgICdMZSBudW3DqXJvIGRlIHLDqWbDqXJlbmNlIGRlIHZvdHJlIGRlbWFuZGUgZXN0JyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5tYWlsLXNlbnQubGFiZWwnOlxuICAgICAgICAnVm91cyByZWNldnJleiB1biBlbWFpbCBkZSBjb25maXJtYXRpb24gZGFucyBxdWVscXVlcyBpbnN0YW50cy4nLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmRvd25sb2FkLXBkZi1yZWNhcC1idXR0b24nOlxuICAgICAgICAnVMOpbMOpY2hhcmdlciBsYSBkZW1hbmRlIChwZGYpJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5leGl0LWJ1dHRvbic6ICdUZXJtaW5lcicsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24ubG9nb3V0LWJ1dHRvbic6ICdTZSBkw6ljb25uZWN0ZXInLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmV4dHJhLWNvbnRlbnQnOiAnICcsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLWJ1dHRvbi5pY29uLXRpdGxlJzogJ0FmZmljaGVyIGxlIGNhbGVuZHJpZXInLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci1idXR0b24uc2NyZWVuLXJlYWRlci5zZWxlY3RlZC1kYXRlJzpcbiAgICAgICAgJ0RhdGUgc8OpbGVjdGlvbm7DqWUgOiB7c2VsZWN0ZWREYXRlfScsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLmNvbnRhaW5lci5hcmlhLWxhYmVsJzogJ0NhbGVuZHJpZXInLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci5jbG9zZS1idXR0b24uYXJpYS1sYWJlbCc6ICdGZXJtZXIgbGUgY2FsZW5kcmllcicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnByZXZpb3VzLW1vbnRoLWJ1dHRvbi50aXRsZSc6ICdNb2lzIHByw6ljw6lkZW50JyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIubmV4dC1tb250aC1idXR0b24udGl0bGUnOiAnTW9pcyBzdWl2YW50JyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIuc2NyZWVuLXJlYWRlci5hY3R1YWwtbW9udGgtZGlzcGxheWVkJzpcbiAgICAgICAgJ01vaXMgYWN0dWVsbGVtZW50IGFmZmljaMOpIDonLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci5zY3JlZW4tcmVhZGVyLm1vbnRoLWlucHV0LmxhYmVsJzogJ1PDqWxlY3Rpb25uZXIgdW4gbW9pcycsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnNjcmVlbi1yZWFkZXIueWVhci1pbnB1dC5sYWJlbCc6XG4gICAgICAgICdTw6lsZWN0aW9ubmVyIHVuZSBhbm7DqWUnLFxuICAgICdlcnJvcnMuRklMRU5BTUVfVE9PX0xPTkcnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGEgdW4gbm9tIGR1IGZpY2hpZXIgcXVpIGV4Y8OoZGUgbGUgbWF4aW11bSBhdXRvcmlzw6kgOiAlMiRzIGNhcmFjdMOocmVzJyxcbiAgICAnZXJyb3JzLkZJTEVfVE9PX1NNQUxMJzpcbiAgICAgICAgJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBhIHVuZSB0YWlsbGUgaW5mw6lyaWV1cmUgYXUgbWluaW11bSBleGlnw6kgOiAlMiRzIGJ5dGVzJyxcbiAgICAnZXJyb3JzLlBERl9QQVNTV09SRF9MT0NLRUQnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGVzdCB2ZXJyb3VpbGzDqWUgcGFyIHVuIG1vdCBkZSBwYXNzZScsXG4gICAgJ2Vycm9ycy5QREZfQ09OVEFJTlNfU0NSSVBUJzogJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBjb250aWVudCB1biBzY3JpcHQnLFxuICAgICdlcnJvcnMuUERGX0hBU19BVFRBQ0hNRU5UUyc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgY29udGllbnQgdW4gZmljaGllciBhdHRhY2jDqScsXG4gICAgJ2Vycm9ycy5FTVBUWV9QREYnOiAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGVzdCB2aWRlJyxcbiAgICAnZXJyb3JzLlBERl9HRU5FUkFMX1BST0JMRU0nOiAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGVzdCBpbGxpc2libGUnLFxuICAgICdlcnJvcnMuUERGX0hBU19SRVNUUklDVElPTlMnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGVzdCBwcm90w6lnw6llLiBWZXVpbGxleiBlbmxldmVyIHRvdXRlcyBsZXMgcHJvdGVjdGlvbnMgYXZhbnQgZGUgam9pbmRyZSBjZSBmaWNoaWVyLicsXG4gICAgJ2Vycm9ycy5GSUxFTkFNRV9TSE9VTERfTk9UX0NPTlRBSU4nOlxuICAgICAgICAnTGUgbm9tIGRlIHZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBjb250aWVudCBkZXMgY2FyYWN0w6hyZXMgaW50ZXJkaXRzLicsXG4gICAgJ2Vycm9ycy40MDYnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIG5lIGNvcnJlc3BvbmQgcGFzIGF1IHR5cGUgZGUgY29udGVudSBhdXRvcmlzw6knLFxuICAgICdlcnJvcnMuNDEzJzpcbiAgICAgICAgJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBhIHVuZSB0YWlsbGUgc3Vww6lyaWV1cmUgb3Ugw6lnYWxlIMOgIGxhIGxpbWl0ZSBhdXRvcmlzw6llIDogJTIkcyBNbycsXG4gICAgJ2Vycm9ycy40MTUnOlxuICAgICAgICAnTGUgdHlwZSBkZSB2b3RyZSBwacOoY2Ugam9pbnRlICUxJHMgbmUgZmlndXJlIHBhcyBwYXJtaSBjZXV4IHF1aSBzb250IGF1dG9yaXPDqXMgOiBcIiUyJHNcIicsXG4gICAgJ2Vycm9ycy40MjInOiAnRWNoZWMgZGUgbGEgc2F1dmVnYXJkZSBkZSBsYSBwacOoY2Ugam9pbnRlICUxJHMnLFxuICAgICdlcnJvcnMuNTAwJzpcbiAgICAgICAgJ0VjaGVjIGRlIGxhIHNhdXZlZ2FyZGUgZGUgbGEgcGnDqGNlIGpvaW50ZSAlMSRzLiBWZXVpbGxleiByw6llc3NheWVyIGF2ZWMgdW4gYXV0cmUgZmljaGllci4nLFxuICAgICdlcnJvcnMuc3VtbWFyeS50aXRsZSc6ICdJbCB5IGEgdW4gcHJvYmzDqG1lJyxcbiAgICAnZm9laG4tdXBsb2FkZXIuY2hvb3NlLWJ1dHRvbi1sYWJlbCc6ICdDaG9pc2lzc2V6IHVuIGRvY3VtZW50JyxcbiAgICAnZm9laG4tdXBsb2FkZXIuY2hvb3NlLWJ1dHRvbi1sYWJlbC1tdWx0aXBsZSc6XG4gICAgICAgICdDaG9pc2lzc2V6IHVuIG91IHBsdXNpZXVycyBkb2N1bWVudHMnLFxuICAgICdmb2Vobi11cGxvYWRlci5kcm9wLXpvbmUtbGFiZWwnOiAnRMOpcG9zZXogdW4gZG9jdW1lbnQgb3UgY2xpcXVleiBpY2knLFxuICAgICdmb2Vobi11cGxvYWRlci5kcm9wLXpvbmUtbGFiZWwtbXVsdGlwbGUnOlxuICAgICAgICAnRMOpcG9zZXogdW4gb3UgcGx1c2lldXJzIGRvY3VtZW50cyBvdSBjbGlxdWV6IGljaScsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRlbGV0ZS1jb25maXJtYXRpb24tbWVzc2FnZSc6XG4gICAgICAgICfDinRlcy12b3VzIHPDu3IgZGUgdm91bG9pciBzdXBwcmltZXIgY2UgZmljaGllciA/JyxcbiAgICAnZm9laG4tdXBsb2FkZXIuYWJici1tZWdhb2N0ZXQnOiAnTW8nLFxuICAgICdmb2Vobi11cGxvYWRlci5hYmJyLW1lZ2FvY3RldC10aXRsZSc6ICdNZWdhb2N0ZXQnLFxuICAgICdmb2Vobi11cGxvYWRlci5kZWxldGUtaWNvbi10aXRsZSc6ICdTdXBwcmltZXIge2RvY05hbWV9JyxcbiAgICAndXNlLWxvZ2luLnRleHQuZGVjaXNpb24tZWxlY3Ryb25pcXVlLWF2YWlsYWJsZSc6XG4gICAgICAgICdQb3VyIG9idGVuaXIgbGEgbm90aWZpY2F0aW9uIGRlIGxhIGTDqWNpc2lvbiBzb3VzIGZvcm1lIMOpbGVjdHJvbmlxdWUgJyArXG4gICAgICAgICcoZmljaGllciBhdSBmb3JtYXQgcGRmKSwgdm91cyBkZXZleiBkZW1hbmRlciBsYSBwcmVzdGF0aW9uIGVuIMOpdGFudCBjb25uZWN0w6kgYXUgcG9ydGFpbCBzw6ljdXJpc8OpLicsXG4gICAgJ3VzZS1sb2dpbi50ZXh0JzpcbiAgICAgICAgJ0NldHRlIHByZXN0YXRpb24gZXN0IGF1c3NpIHV0aWxpc2FibGUgPHN0cm9uZz5lbiBzZSBjb25uZWN0YW50PC9zdHJvbmc+IGF1IHBvcnRhaWwgc8OpY3VyaXPDqS48L3N0cm9uZz48YnIvPiAgICAgICAgICcgK1xuICAgICAgICAnPGk+VG91dGVzIGxlcyBpbmZvcm1hdGlvbnMgc3VyIGxlIHBvcnRhaWwgc8OpY3VyaXPDqSBzb250IGRpc3BvbmlibGVzIMOgIGNldHRlIGFkcmVzc2UgOiAnICtcbiAgICAgICAgJzxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL3d3dy52ZC5jaC9jeWJlcmFkbWluaXN0cmF0aW9uL1wiPmh0dHBzOi8vd3d3LnZkLmNoL2N5YmVyYWRtaW5pc3RyYXRpb24vPC9hPi48L2k+JyxcbiAgICAndXNlLWxvZ2luLmJ1dHRvbi50ZXh0JzogJ1NlIGNvbm5lY3RlciBldCBjb250aW51ZXInLFxuICAgICd1c2UtbG9naW4uY29udGludWUtd2l0aG91dC1sb2dpbi5idXR0b24udGV4dCc6XG4gICAgICAgICdDb250aW51ZXIgc2FucyBzZSBjb25uZWN0ZXInLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5jaG9vc2UtYnV0dG9uLWxhYmVsJzogJ0Nob2lzaXNzZXogdW5lIHBob3RvJyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQubG9hZGluZy1sYWJlbCc6ICdDaGFyZ2VtZW50Li4uJyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQubG9hZGluZy1mYWlsdXJlLWxhYmVsJzpcbiAgICAgICAgJ0ltcG9zc2libGUgZGUgY2hhcmdlciBsYSBwaG90byBzw6lsZWN0aW9ubsOpZScsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLnZhbGlkYXRlLXNlbGVjdGlvbi1sYWJlbCc6ICdWYWxpZGVyIGxhIHPDqWxlY3Rpb24nLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5jYW5jZWwtc2VsZWN0aW9uLWxhYmVsJzogJ0FubnVsZXInLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5zZWxlY3Rpb24tbm90LXZhbGlkYXRlZC1sYWJlbCc6XG4gICAgICAgICdNZXJjaSBkZSB2YWxpZGVyIHZvdHJlIHPDqWxlY3Rpb24nLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5kZWxldGUtcGljdHVyZS1sYWJlbCc6ICdTdXBwcmltZXInLFxuICAgICdmb2Vobi10YWJsZS50b3RhbEVsZW1lbnRzJzogJ3t0b3RhbH0gw6lsw6ltZW50cyB0cm91dsOpcycsXG4gICAgJ2ZvZWhuLXRhYmxlLnRvdGFsRWxlbWVudHMuMSc6ICcxIMOpbMOpbWVudCB0cm91dsOpJyxcbiAgICAnZm9laG4tdGFibGUudG90YWxFbGVtZW50cy4wJzogJ0F1Y3VuIHLDqXN1bHRhdCcsXG4gICAgJ2ZvZWhuLXRhYmxlLmhlYWRlci5hY3Rpb25zJzogJ0FjdGlvbnMnLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAxJzogJ1NhaXNpZScsXG4gICAgJ2ZvZWhuLXN0YXR1cy1wcm9ncmVzcy1iYXIuc3RlcDEuc3JPbmx5JzogJ0V0YXBlIDEgc3VyIDMsIFNhaXNpZScsXG4gICAgJ2ZvZWhuLXN0YXR1cy1wcm9ncmVzcy1iYXIuc3RlcDInOiAnVsOpcmlmaWNhdGlvbicsXG4gICAgJ2ZvZWhuLXN0YXR1cy1wcm9ncmVzcy1iYXIuc3RlcDIuc3JPbmx5JzogJ0V0YXBlIDIgc3VyIDMsIFbDqXJpZmljYXRpb24nLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAzJzogJ1RyYW5zbWlzc2lvbicsXG4gICAgJ2ZvZWhuLXN0YXR1cy1wcm9ncmVzcy1iYXIuc3RlcDMuc3JPbmx5JzpcbiAgICAgICAgJ0V0YXBlIDMgc3VyIDMsIERlbWFuZGUgdHJhbnNtaXNlJyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLnNlbGVjdGVkLmRlbGV0ZSc6XG4gICAgICAgICdTdXBwcmltZXIge2VsZW1lbnRMYWJlbH0nLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc3ItYW5ub3VuY2VtZW50LmRlbGV0ZWQnOlxuICAgICAgICAne2VsZW1lbnRMYWJlbH0gYSDDqXTDqSBzdXBwcmltw6ksJyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLnNyLWFubm91bmNlbWVudC5hZGRlZCc6XG4gICAgICAgICd7ZWxlbWVudExhYmVsfSBhIMOpdMOpIGFqb3V0w6ksJyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLnNyLWRlZmF1bHQtZm9jdXMubm8tZWxlbWVudC10by1kZWxldGUnOlxuICAgICAgICAnQXVjdW4gw6lsw6ltZW50IGRhbnMgbGEgbGlzdGUuJyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLnNyLWRlZmF1bHQtc2VsZWN0ZWQtZWxlbWVudCc6XG4gICAgICAgICcoc8OpbGVjdGlvbiBwYXIgZMOpZmF1dCknLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuYXV0b2NvbXBsZXRlLmVtcHR5LW1lc3NhZ2UnOlxuICAgICAgICAnVG91cyBsZXMgw6lsw6ltZW50cyBkZSBsYSBsaXN0ZSBkZSBwcm9wb3NpdGlvbiBvbnQgZMOpasOgIMOpdMOpIGFqb3V0w6lzLicsXG4gICAgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5hdXRvY29tcGxldGUuc2NyZWVuLXJlYWRlci5sYWJlbCc6XG4gICAgICAgICdTw6lsZWN0aW9ubmVyIHVuIMOpbMOpbWVudCBkYW5zIGxhIGxpc3RlIGRlIHJlY2hlcmNoZScgK1xuICAgICAgICBcIiBjaS1kZXNzb3VzIHBvdXIgbCdham91dGVyIMOgIHZvdHJlIHPDqWxlY3Rpb24uXCIsXG4gICAgJ2ZvZWhuLWFnZW5kYS5jYWxlbmRhci1pbmRpc3BvbmlibGUnOlxuICAgICAgICAnTGUgY2FsZW5kcmllciBkZXMgcmVuZGV6LXZvdXMgZXN0IGFjdHVlbGxlbWVudCBpbmRpc3BvbmlibGUuJyxcbiAgICAnZm9laG4tYWdlbmRhLnBhZ2luYXRpb24tYW5jaG9yLmZpcnN0LXBhcnQnOlxuICAgICAgICAnVm91cyBwb3V2ZXogY2hhbmdlciBkZSBzZW1haW5lIGF1IG1veWVuIGRlJyxcbiAgICAnZm9laG4tYWdlbmRhLnBhZ2luYXRpb24tYW5jaG9yLnRvcC1uZXh0LXBhcnQnOiAnbGEgcGFnaW5hdGlvbiBjaS1kZXNzb3VzLicsXG4gICAgJ2ZvZWhuLWFnZW5kYS5wYWdpbmF0aW9uLWFuY2hvci5ib3R0b20tbmV4dC1wYXJ0JzpcbiAgICAgICAgJ2xhIHBhZ2luYXRpb24gY2ktZGVzc3VzLicsXG4gICAgJ2ZvZWhuLWFnZW5kYS50aW1lc2xvdC5zZWxlY3RlZCc6ICcgc8OpbGVjdGlvbm7DqScsXG4gICAgJ2ZvZWhuLWFnZW5kYS10aW1lc2xvdC1wYW5lbC5uby1kaXNwbyc6ICcoYXVjdW5lIGRpc3BvbmliaWxpdMOpKScsXG4gICAgJ2ZvZWhuLWFnZW5kYS10aW1lc2xvdC1wYW5lbC5uYnItZGlzcG8nOiAne25iRWxlbWVudHN9IGRpc3BvbmliaWxpdMOpcycsXG4gICAgJ2ZvZWhuLWFnZW5kYS10aW1lc2xvdC1wYW5lbC5zZWxlY3RlZC10aW1lJzpcbiAgICAgICAgJ3t0aW1lU2VsZWN0ZWRWYWx1ZX0gc8OpbGVjdGlvbm7DqScsXG4gICAgJ2ZvZWhuLWFnZW5kYS10aW1lc2xvdC1wYW5lbC5zaG93LW1vcmUtc3Itb25seSc6XG4gICAgICAgICdBZmZpY2hlciBsZXMge25ickVsZW1lbnRzSGlkZGVufSBkaXNwb25pYmlsaXTDqXMgbWFzcXXDqWVzJyxcbiAgICAnZm9laG4uYWdlbmRhLXRpbWVzbG90LXBhbmVsLnNob3ctbW9yZSc6XG4gICAgICAgICdBZmZpY2hlciBwbHVzICh7bmJyRWxlbWVudHNIaWRkZW59KScsXG4gICAgJ2ZvZWhuLWFnZW5kYS10aW1lc2xvdC1wYW5lbC5zaG93LWxlc3MnOiAnQWZmaWNoZXIgbW9pbnMnLFxuICAgICdmb2Vobi1hZ2VuZGEtbmF2aWdhdGlvbi5wcmV2aW91cy13ZWVrJzogJ1NlbWFpbmUgcHLDqWPDqWRlbnRlJyxcbiAgICAnZm9laG4tYWdlbmRhLW5hdmlnYXRpb24ucHJldmlvdXMtd2Vlay1zci1vbmx5JzpcbiAgICAgICAgJ1NlbWFpbmUgcHLDqWPDqWRlbnRlIDoge3ByZXZpb3VzV2Vla30nLFxuICAgICdmb2Vobi1hZ2VuZGEtbmF2aWdhdGlvbi5uZXh0LXdlZWsnOiAnU2VtYWluZSBzdWl2YW50ZScsXG4gICAgJ2ZvZWhuLWFnZW5kYS1uYXZpZ2F0aW9uLm5leHQtd2Vlay1zci1vbmx5JzpcbiAgICAgICAgJ1NlbWFpbmUgc3VpdmFudGUgOiB7bmV4dFdlZWt9JyxcbiAgICAnZm9laG4tYWdlbmRhLW5hdmlnYXRpb24ubmF2LmFyaWEtbGFiZWwnOiAnQ2hhbmdlciBkZSBzZW1haW5lJyxcbiAgICAnZm9laG4tYWdlbmRhLW5hdmlnYXRpb24uZGF0ZS1waWNrZXItYnV0dG9uLnNjcmVlbi1yZWFkZXIuc2VsZWN0ZWQtZGF0ZSc6XG4gICAgICAgICdTZW1haW5lIGR1IHtzZWxlY3RlZERhdGV9IHPDqWxlY3Rpb25uw6llJyxcbiAgICAnZ2VzZGVtLWVycm9yLnRleHQuaGFzLXJlZmVyZW5jZSc6XG4gICAgICAgICdWb3VzIHBvdXZleiBlc3NheWVyIGRlIHJlcHJlbmRyZSB2b3RyZSBkZW1hbmRlIGVuIGNsaXF1YW50IHN1ciBsZSBsaWVuIGNpLWRlc3NvdXMnLFxuICAgICdnZXNkZW0tZXJyb3IubGluay5oYXMtcmVmZXJlbmNlJzogJ1JlcHJlbmRyZSBtYSBkZW1hbmRlJyxcbiAgICAnZ2VzZGVtLWVycm9yLnRleHQuaGFzLW5vLXJlZmVyZW5jZSc6XG4gICAgICAgICdWb3VzIHBvdXZleiByZWNvbW1lbmNlciB1bmUgZGVtYW5kZSBlbiBjbGlxdWFudCBzdXIgbGUgbGllbiBjaS1kZXNzb3VzJyxcbiAgICAnZ2VzZGVtLWVycm9yLmxpbmsuaGFzLW5vLXJlZmVyZW5jZSc6ICdSZWNvbW1lbmNlcicsXG4gICAgJ2dlc2RlbS1lcnJvci50ZXh0LnBlbmRpbmctcGF5bWVudCc6XG4gICAgICAgICc8cD5VbiBwcm9ibMOobWUgZXN0IHN1cnZlbnUgbG9ycyBkZSBsYSB0cmFuc21pc3Npb24gZGUgdm90cmUgZGVtYW5kZS48L3A+JyArXG4gICAgICAgICc8cD48c3Ryb25nPk1lcmNpIGRlIG5lIHBhcyByZWZhaXJlIHVuZSBub3V2ZWxsZSBkZW1hbmRlIHRvdXQgZGUgc3VpdGUuPC9zdHJvbmc+PC9wPicgK1xuICAgICAgICBcIjxwPlNhbnMgY29uZmlybWF0aW9uIGRlIGxhIHRyYW5zbWlzc2lvbiBkZSB2b3RyZSBkZW1hbmRlIGRhbnMgdW4gZMOpbGFpIGQndW4gam91ciwgXCIgK1xuICAgICAgICAnbm91cyB2b3VzIHByaW9ucyBkZSA8YSBocmVmPVwie3N1cHBvcnRMaW5rfVwiIHRhcmdldD1cIl9ibGFua1wiPmNvbnRhY3RlciBsZSBzdXBwb3J0PC9hPi4nLFxuICAgICdmb2Vobi1tb2RhbC5idG4tY2xvc2UuYXJpYS1sYWJlbCc6ICdGZXJtZXIgbGEgYm9pdGUgZGUgZGlhbG9ndWUnLFxuICAgICdmb2Vobi1tb2RhbC5idG4tY2xvc2UudGl0bGUnOiAnRmVybWVyJyxcbiAgICAnZm9laG4tdGV4dGFyZWEuY2hhcnMtcmVtYWluaW5nLnBsdXJhbCc6XG4gICAgICAgICd7Y2hhckNvdW50TGVmdH0gY2FyYWN0w6hyZXMgcmVzdGFudHMnLFxuICAgICdmb2Vobi10ZXh0YXJlYS5jaGFycy1yZW1haW5pbmcuc2luZ3VsYXInOlxuICAgICAgICAne2NoYXJDb3VudExlZnR9IGNhcmFjdMOocmUgcmVzdGFudCcsXG4gICAgJ2ZvZWhuLXRleHRhcmVhLmNoYXJzLXJlbWFpbmluZy56ZXJvJzpcbiAgICAgICAgJ1ZvdXMgYXZleiBhdHRlaW50IGxlIG5vbWJyZSBkZSBjYXJhY3TDqHJlIGF1dG9yaXPDqSEnLFxuICAgICdmb2Vobi10ZXh0YXJlYS5jaGFycy1yZW1haW5pbmcuZXhjZWVkZWQnOlxuICAgICAgICAnVm91cyBhdmV6IGTDqXBhc3PDqSBsZSBub21icmUgZGUgY2FyYWN0w6hyZXMgYXV0b3Jpc8OpcyBkZSB7Y2hhckNvdW50TGVmdH0nXG59O1xuIl19
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1kaWN0aW9uYXJ5L2RlZmF1bHQtZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBbUI7SUFDOUMsc0JBQXNCLEVBQUUsY0FBYztJQUN0Qyw0QkFBNEIsRUFBRSxNQUFNO0lBQ3BDLDhCQUE4QixFQUFFLE1BQU07SUFDdEMsNkJBQTZCLEVBQUUsT0FBTztJQUN0QywrQkFBK0IsRUFBRSxNQUFNO0lBQ3ZDLGlDQUFpQyxFQUM3QixpREFBaUQ7UUFDakQsaUZBQWlGO0lBQ3JGLDhCQUE4QixFQUFFLE9BQU87SUFDdkMsZ0NBQWdDLEVBQUUsU0FBUztJQUMzQyw2Q0FBNkMsRUFDekMsaURBQWlEO0lBQ3JELG1DQUFtQyxFQUFFLE1BQU07SUFDM0Msb0NBQW9DLEVBQUUsZUFBZTtJQUNyRCxzQ0FBc0MsRUFBRSwrQkFBK0I7SUFDdkUsa0NBQWtDLEVBQUUsS0FBSztJQUN6Qyx1Q0FBdUMsRUFBRSxlQUFlO0lBQ3hELDJDQUEyQyxFQUN2QywwREFBMEQ7SUFDOUQsNkNBQTZDLEVBQUUsY0FBYztJQUM3RCxpREFBaUQsRUFDN0MsK0NBQStDO0lBQ25ELHdDQUF3QyxFQUFFLEtBQUs7SUFDL0Msd0NBQXdDLEVBQUUsc0JBQXNCO0lBQ2hFLDRDQUE0QyxFQUFFLGFBQWE7SUFDM0QsNkNBQTZDLEVBQUUsVUFBVTtJQUN6RCw2QkFBNkIsRUFBRSxTQUFTO0lBQ3hDLGlDQUFpQyxFQUFFLFdBQVc7SUFDOUMsaUNBQWlDLEVBQUUsYUFBYTtJQUNoRCx1Q0FBdUMsRUFBRSw0QkFBNEI7SUFDckUsd0NBQXdDLEVBQUUsS0FBSztJQUMvQywwQkFBMEIsRUFBRSxtQ0FBbUM7SUFDL0QsMkJBQTJCLEVBQUUsY0FBYztJQUMzQyxtQ0FBbUMsRUFB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QThEO0lBQ2xFLDJDQUEyQyxFQUN2Qyw0Q0FBNEM7SUFDaEQsOENBQThDLEVBQUUsMkJBQTJCO0lBQzNFLGlEQUFpRCxFQUM3QywwQkFBMEI7SUFDOUIsZ0NBQWdDLEVBQUUsY0FBYztJQUNoRCxzQ0FBc0MsRUFBRSx3QkFBd0I7SUFDaEUsdUNBQXVDLEVBQUUsNkJBQTZCO0lBQ3RFLDJDQUEyQyxFQUN2QyxpQ0FBaUM7SUFDckMsK0NBQStDLEVBQzNDLDBEQUEwRDtJQUM5RCx1Q0FBdUMsRUFDbkMscUNBQXFDO0lBQ3pDLHVDQUF1QyxFQUFFLGdCQUFnQjtJQUN6RCx1Q0FBdUMsRUFBRSxvQkFBb0I7SUFDN0QsK0NBQStDLEVBQzNDLHFDQUFxQztJQUN6QyxtQ0FBbUMsRUFBRSxrQkFBa0I7SUFDdkQsMkNBQTJDLEVBQ3ZDLCtCQUErQjtJQUNuQyx3Q0FBd0MsRUFBRSxvQkFBb0I7SUFDOUQsd0VBQXdFLEVBQ3BFLHdDQUF3QztJQUM1QyxpQ0FBaUMsRUFDN0IsbUZBQW1GO0lBQ3ZGLGlDQUFpQyxFQUFFLHNCQUFzQjtJQUN6RCxvQ0FBb0MsRUFDaEMsd0VBQXdFO0lBQzVFLG9DQUFvQyxFQUFFLGFBQWE7SUFDbkQsbUNBQW1DLEVBQy9CLDBFQUEwRTtRQUMxRSxxRkFBcUY7UUFDckYsb0ZBQW9GO1FBQ3BGLHVGQUF1RjtJQUMzRixrQ0FBa0MsRUFBRSw2QkFBNkI7SUFDakUsNkJBQTZCLEVBQUUsUUFBUTtJQUN2Qyx1Q0FBdUMsRUFDbkMscUNBQXFDO0lBQ3pDLHlDQUF5QyxFQUNyQyxtQ0FBbUM7SUFDdkMscUNBQXFDLEVBQ2pDLG9EQUFvRDtJQUN4RCx5Q0FBeUMsRUFDckMsd0VBQXdFO0NBQy9FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyBEaWN0aW9uYXJ5VHlwZSB9IGZyb20gJy4vc2RrLWRpY3Rpb25hcnkuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0RJQ1RJT05BUlk6IERpY3Rpb25hcnlUeXBlID0ge1xuICAgICdmb2Vobi1pbnB1dC5vcHRpb25hbCc6ICcoZmFjdWx0YXRpZiknLFxuICAgICdmb2Vobi1pbnB1dC1kYXRlLmRheS5sYWJlbCc6ICdKb3VyJyxcbiAgICAnZm9laG4taW5wdXQtZGF0ZS5tb250aC5sYWJlbCc6ICdNb2lzJyxcbiAgICAnZm9laG4taW5wdXQtZGF0ZS55ZWFyLmxhYmVsJzogJ0FubsOpZScsXG4gICAgJ2ZvZWhuLWlucHV0LWVtYWlsLm1vZGFsLnRpdGxlJzogJ0FpZGUnLFxuICAgICdmb2Vobi1pbnB1dC1lbWFpbC5tb2RhbC5jb250ZW50JzpcbiAgICAgICAgXCI8cD5Wb3VzIG4nYXJyaXZleiBwYXMgw6Agc2Fpc2lyIHZvdHJlIG1haWwgPzwvcD5cIiArXG4gICAgICAgICc8cD5NZXJjaSBkXFwnw6ljcmlyZSDDoCA8YSBocmVmPVwibWFpbHRvOmluZm8uY3liZXJAdmQuY2hcIj5pbmZvLmN5YmVyQHZkLmNoPC9hPjwvcD4nLFxuICAgICdmb2Vobi1pbnB1dC10aW1lLmhvdXJzLmxhYmVsJzogJ0hldXJlJyxcbiAgICAnZm9laG4taW5wdXQtdGltZS5taW51dGVzLmxhYmVsJzogJ01pbnV0ZXMnLFxuICAgICdmb2Vobi1pbnB1dC1udW1iZXIuc3RhbmRhcmQtaGVscC10ZXh0LmxhYmVsJzpcbiAgICAgICAgJ1NhaXNpciB1biBub21icmUgZW50cmUge21pblZhbHVlfSBldCB7bWF4VmFsdWV9JyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5jb3VudHJ5LmxhYmVsJzogJ1BheXMnLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmxvY2FsaXR5LmxhYmVsJzogJ05QQSwgTG9jYWxpdMOpJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5zdHJlZXQuaGVscC10ZXh0JzogJ0V4ZW1wbGUgOiBBdmVudWUgZGUgbGEgU2FsbGF6JyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5zdHJlZXQubGFiZWwnOiAnUnVlJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5ob3VzZU51bWJlci5sYWJlbCc6ICdOdW3DqXJvIGRlIHJ1ZScsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3MuaG91c2VOdW1iZXIuaGVscC10ZXh0JzpcbiAgICAgICAgXCJFeGVtcGxlIDogNDAgcG91ciB1bmUgYWRyZXNzZSDDoCBsJ0F2ZW51ZSBkZSBsYSBTYWxsYXogNDBcIixcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5wb3N0T2ZmaWNlQm94VGV4dC5sYWJlbCc6ICdDYXNlIHBvc3RhbGUnLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLnBvc3RPZmZpY2VCb3hUZXh0LmhlbHAtdGV4dCc6XG4gICAgICAgICdFeGVtcGxlIDogQ2FzZSBwb3N0YWxlIDEyMiBvdSBDUDEyMiBvdSBDUCAxMjInLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmFkZHJlc3NMaW5lMS5sYWJlbCc6ICdjL28nLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmFkZHJlc3NMaW5lMi5sYWJlbCc6IFwiQ29tcGzDqW1lbnQgZCdhZHJlc3NlXCIsXG4gICAgJ2ZvZWhuLWlucHV0LWZvcmVpZ24tbG9jYWxpdHkuemlwQ29kZS5sYWJlbCc6ICdDb2RlIHBvc3RhbCcsXG4gICAgJ2ZvZWhuLWlucHV0LWZvcmVpZ24tbG9jYWxpdHkubG9jYWxpdHkubGFiZWwnOiAnTG9jYWxpdMOpJyxcbiAgICAnZm9laG4tbmF2aWdhdGlvbi5uZXh0LmxhYmVsJzogJ1N1aXZhbnQnLFxuICAgICdmb2Vobi1uYXZpZ2F0aW9uLnByZXZpb3VzLmxhYmVsJzogJ1Byw6ljw6lkZW50JyxcbiAgICAnZm9laG4tbmF2aWdhdGlvbi50cmFuc21pdC5sYWJlbCc6ICdUcmFuc21ldHRyZScsXG4gICAgJ2ZvZWhuLW5hdmlnYXRpb24uY29udGludWUtbGF0ZXIubGFiZWwnOiAnRmluaXIgbGEgZGVtYW5kZSBwbHVzIHRhcmQnLFxuICAgICdmb2Vobi1uYXZpZ2F0aW9uLnJvdXRlLmluZGV4LnNlcGFyYXRvcic6ICdzdXInLFxuICAgICdmb2Vobi1wYWdlLWNvdW50ZXIubGFiZWwnOiAnUGFnZSB7Y3VycmVudFBhZ2V9IGRlIHtwYWdlQ291bnR9JyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi50aXRsZSc6ICdDb25maXJtYXRpb24nLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnN1Y2Nlc3MtbGFiZWwnOiAnRGVtYW5kZSB0cmFuc21pc2UnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLm5leHQtc3RlcC5zdWNjZXNzLWxhYmVsJzogJ1LDqXBvbnNlIHRyYW5zbWlzZScsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uYWJvcnQtbGFiZWwnOiAnRGVtYW5kZSBhYmFuZG9ubsOpZScsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24ucmVmZXJlbmNlLXRpdGxlLmxhYmVsJzpcbiAgICAgICAgJ0xlIG51bcOpcm8gZGUgcsOpZsOpcmVuY2UgZGUgdm90cmUgZGVtYW5kZSBlc3QnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLm1haWwtc2VudC5sYWJlbCc6XG4gICAgICAgICdWb3VzIHJlY2V2cmV6IHVuIGVtYWlsIGRlIGNvbmZpcm1hdGlvbiBkYW5zIHF1ZWxxdWVzIGluc3RhbnRzLicsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZG93bmxvYWQtcGRmLXJlY2FwLWJ1dHRvbic6XG4gICAgICAgICdUw6lsw6ljaGFyZ2VyIGxhIGRlbWFuZGUgKHBkZiknLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmV4aXQtYnV0dG9uJzogJ1Rlcm1pbmVyJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5sb2dvdXQtYnV0dG9uJzogJ1NlIGTDqWNvbm5lY3RlcicsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZXh0cmEtY29udGVudCc6ICcgJyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXItYnV0dG9uLmljb24tdGl0bGUnOiAnQWZmaWNoZXIgbGUgY2FsZW5kcmllcicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLWJ1dHRvbi5zY3JlZW4tcmVhZGVyLnNlbGVjdGVkLWRhdGUnOlxuICAgICAgICAnRGF0ZSBzw6lsZWN0aW9ubsOpZSA6IHtzZWxlY3RlZERhdGV9JyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIuY29udGFpbmVyLmFyaWEtbGFiZWwnOiAnQ2FsZW5kcmllcicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLmNsb3NlLWJ1dHRvbi5hcmlhLWxhYmVsJzogJ0Zlcm1lciBsZSBjYWxlbmRyaWVyJyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIucHJldmlvdXMtbW9udGgtYnV0dG9uLnRpdGxlJzogJ01vaXMgcHLDqWPDqWRlbnQnLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci5uZXh0LW1vbnRoLWJ1dHRvbi50aXRsZSc6ICdNb2lzIHN1aXZhbnQnLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci5zY3JlZW4tcmVhZGVyLmFjdHVhbC1tb250aC1kaXNwbGF5ZWQnOlxuICAgICAgICAnTW9pcyBhY3R1ZWxsZW1lbnQgYWZmaWNow6kgOicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnNjcmVlbi1yZWFkZXIubW9udGgtaW5wdXQubGFiZWwnOiAnU8OpbGVjdGlvbm5lciB1biBtb2lzJyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIuc2NyZWVuLXJlYWRlci55ZWFyLWlucHV0LmxhYmVsJzpcbiAgICAgICAgJ1PDqWxlY3Rpb25uZXIgdW5lIGFubsOpZScsXG4gICAgJ2Vycm9ycy5GSUxFTkFNRV9UT09fTE9ORyc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgYSB1biBub20gZHUgZmljaGllciBxdWkgZXhjw6hkZSBsZSBtYXhpbXVtIGF1dG9yaXPDqSA6ICUyJHMgY2FyYWN0w6hyZXMnLFxuICAgICdlcnJvcnMuRklMRV9UT09fU01BTEwnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGEgdW5lIHRhaWxsZSBpbmbDqXJpZXVyZSBhdSBtaW5pbXVtIGV4aWfDqSA6ICUyJHMgYnl0ZXMnLFxuICAgICdlcnJvcnMuUERGX1BBU1NXT1JEX0xPQ0tFRCc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IHZlcnJvdWlsbMOpZSBwYXIgdW4gbW90IGRlIHBhc3NlJyxcbiAgICAnZXJyb3JzLlBERl9DT05UQUlOU19TQ1JJUFQnOiAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGNvbnRpZW50IHVuIHNjcmlwdCcsXG4gICAgJ2Vycm9ycy5QREZfSEFTX0FUVEFDSE1FTlRTJzpcbiAgICAgICAgJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBjb250aWVudCB1biBmaWNoaWVyIGF0dGFjaMOpJyxcbiAgICAnZXJyb3JzLkVNUFRZX1BERic6ICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IHZpZGUnLFxuICAgICdlcnJvcnMuUERGX0dFTkVSQUxfUFJPQkxFTSc6ICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IGlsbGlzaWJsZScsXG4gICAgJ2Vycm9ycy5QREZfSEFTX1JFU1RSSUNUSU9OUyc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IHByb3TDqWfDqWUuIFZldWlsbGV6IGVubGV2ZXIgdG91dGVzIGxlcyBwcm90ZWN0aW9ucyBhdmFudCBkZSBqb2luZHJlIGNlIGZpY2hpZXIuJyxcbiAgICAnZXJyb3JzLkZJTEVOQU1FX1NIT1VMRF9OT1RfQ09OVEFJTic6XG4gICAgICAgICdMZSBub20gZGUgdm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGNvbnRpZW50IGRlcyBjYXJhY3TDqHJlcyBpbnRlcmRpdHMuJyxcbiAgICAnZXJyb3JzLjQwNic6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgbmUgY29ycmVzcG9uZCBwYXMgYXUgdHlwZSBkZSBjb250ZW51IGF1dG9yaXPDqScsXG4gICAgJ2Vycm9ycy40MTMnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGEgdW5lIHRhaWxsZSBzdXDDqXJpZXVyZSBvdSDDqWdhbGUgw6AgbGEgbGltaXRlIGF1dG9yaXPDqWUgOiAlMiRzIE1vJyxcbiAgICAnZXJyb3JzLjQxNSc6XG4gICAgICAgICdMZSB0eXBlIGRlIHZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBuZSBmaWd1cmUgcGFzIHBhcm1pIGNldXggcXVpIHNvbnQgYXV0b3Jpc8OpcyA6IFwiJTIkc1wiJyxcbiAgICAnZXJyb3JzLjQyMic6ICdFY2hlYyBkZSBsYSBzYXV2ZWdhcmRlIGRlIGxhIHBpw6hjZSBqb2ludGUgJTEkcycsXG4gICAgJ2Vycm9ycy41MDAnOlxuICAgICAgICAnRWNoZWMgZGUgbGEgc2F1dmVnYXJkZSBkZSBsYSBwacOoY2Ugam9pbnRlICUxJHMuIFZldWlsbGV6IHLDqWVzc2F5ZXIgYXZlYyB1biBhdXRyZSBmaWNoaWVyLicsXG4gICAgJ2Vycm9ycy5zdW1tYXJ5LnRpdGxlJzogJ0lsIHkgYSB1biBwcm9ibMOobWUnLFxuICAgICdmb2Vobi11cGxvYWRlci5jaG9vc2UtYnV0dG9uLWxhYmVsJzogJ0Nob2lzaXNzZXogdW4gZG9jdW1lbnQnLFxuICAgICdmb2Vobi11cGxvYWRlci5jaG9vc2UtYnV0dG9uLWxhYmVsLW11bHRpcGxlJzpcbiAgICAgICAgJ0Nob2lzaXNzZXogdW4gb3UgcGx1c2lldXJzIGRvY3VtZW50cycsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRyb3Atem9uZS1sYWJlbCc6ICdEw6lwb3NleiB1biBkb2N1bWVudCBvdSBjbGlxdWV6IGljaScsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRyb3Atem9uZS1sYWJlbC1tdWx0aXBsZSc6XG4gICAgICAgICdEw6lwb3NleiB1biBvdSBwbHVzaWV1cnMgZG9jdW1lbnRzIG91IGNsaXF1ZXogaWNpJyxcbiAgICAnZm9laG4tdXBsb2FkZXIuZGVsZXRlLWNvbmZpcm1hdGlvbi1tZXNzYWdlJzpcbiAgICAgICAgJ8OKdGVzLXZvdXMgc8O7ciBkZSB2b3Vsb2lyIHN1cHByaW1lciBjZSBmaWNoaWVyID8nLFxuICAgICdmb2Vobi11cGxvYWRlci5hYmJyLW1lZ2FvY3RldCc6ICdNbycsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmFiYnItbWVnYW9jdGV0LXRpdGxlJzogJ01lZ2FvY3RldCcsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRlbGV0ZS1pY29uLXRpdGxlJzogJ1N1cHByaW1lciB7ZG9jTmFtZX0nLFxuICAgICd1c2UtbG9naW4udGV4dC5kZWNpc2lvbi1lbGVjdHJvbmlxdWUtYXZhaWxhYmxlJzpcbiAgICAgICAgJ1BvdXIgb2J0ZW5pciBsYSBub3RpZmljYXRpb24gZGUgbGEgZMOpY2lzaW9uIHNvdXMgZm9ybWUgw6lsZWN0cm9uaXF1ZSAnICtcbiAgICAgICAgJyhmaWNoaWVyIGF1IGZvcm1hdCBwZGYpLCB2b3VzIGRldmV6IGRlbWFuZGVyIGxhIHByZXN0YXRpb24gZW4gw6l0YW50IGNvbm5lY3TDqSBhdSBwb3J0YWlsIHPDqWN1cmlzw6kuJyxcbiAgICAndXNlLWxvZ2luLnRleHQnOlxuICAgICAgICAnQ2V0dGUgcHJlc3RhdGlvbiBlc3QgYXVzc2kgdXRpbGlzYWJsZSA8c3Ryb25nPmVuIHNlIGNvbm5lY3RhbnQ8L3N0cm9uZz4gYXUgcG9ydGFpbCBzw6ljdXJpc8OpLjwvc3Ryb25nPjxici8+ICAgICAgICAgJyArXG4gICAgICAgICc8aT5Ub3V0ZXMgbGVzIGluZm9ybWF0aW9ucyBzdXIgbGUgcG9ydGFpbCBzw6ljdXJpc8OpIHNvbnQgZGlzcG9uaWJsZXMgw6AgY2V0dGUgYWRyZXNzZSA6ICcgK1xuICAgICAgICAnPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vd3d3LnZkLmNoL2N5YmVyYWRtaW5pc3RyYXRpb24vXCI+aHR0cHM6Ly93d3cudmQuY2gvY3liZXJhZG1pbmlzdHJhdGlvbi88L2E+LjwvaT4nLFxuICAgICd1c2UtbG9naW4uYnV0dG9uLnRleHQnOiAnU2UgY29ubmVjdGVyIGV0IGNvbnRpbnVlcicsXG4gICAgJ3VzZS1sb2dpbi5jb250aW51ZS13aXRob3V0LWxvZ2luLmJ1dHRvbi50ZXh0JzpcbiAgICAgICAgJ0NvbnRpbnVlciBzYW5zIHNlIGNvbm5lY3RlcicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmNob29zZS1idXR0b24tbGFiZWwnOiAnQ2hvaXNpc3NleiB1bmUgcGhvdG8nLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5sb2FkaW5nLWxhYmVsJzogJ0NoYXJnZW1lbnQuLi4nLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5pbnZhbGlkLWZpbGUtdHlwZSc6XG4gICAgICAgICdMZSB0eXBlIGRlIHZvdHJlIHBpw6hjZSBqb2ludGUge2ZpbGVuYW1lfSBuZSBmaWd1cmUgcGFzIHBhcm1pIGNldXggcXVpIHNvbnQgYXV0b3Jpc8OpcyA6IFwie2FjY2VwdEZvcm1hdHN9XCInLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5sb2FkaW5nLWZhaWx1cmUtbGFiZWwnOlxuICAgICAgICAnSW1wb3NzaWJsZSBkZSBjaGFyZ2VyIGxhIHBob3RvIHPDqWxlY3Rpb25uw6llJyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQudmFsaWRhdGUtc2VsZWN0aW9uLWxhYmVsJzogJ1ZhbGlkZXIgbGEgc8OpbGVjdGlvbicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmNhbmNlbC1zZWxlY3Rpb24tbGFiZWwnOiAnQW5udWxlcicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLnNlbGVjdGlvbi1ub3QtdmFsaWRhdGVkLWxhYmVsJzpcbiAgICAgICAgJ01lcmNpIGRlIHZhbGlkZXIgdm90cmUgc8OpbGVjdGlvbicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmRlbGV0ZS1waWN0dXJlLWxhYmVsJzogJ1N1cHByaW1lcicsXG4gICAgJ2ZvZWhuLXRhYmxlLnRvdGFsRWxlbWVudHMnOiAne3RvdGFsfSDDqWzDqW1lbnRzIHRyb3V2w6lzJyxcbiAgICAnZm9laG4tdGFibGUudG90YWxFbGVtZW50cy4xJzogJzEgw6lsw6ltZW50IHRyb3V2w6knLFxuICAgICdmb2Vobi10YWJsZS50b3RhbEVsZW1lbnRzLjAnOiAnQXVjdW4gcsOpc3VsdGF0JyxcbiAgICAnZm9laG4tdGFibGUuaGVhZGVyLmFjdGlvbnMnOiAnQWN0aW9ucycsXG4gICAgJ2ZvZWhuLXN0YXR1cy1wcm9ncmVzcy1iYXIuc3RlcDEnOiAnU2Fpc2llJyxcbiAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMS5zck9ubHknOiAnRXRhcGUgMSBzdXIgMywgU2Fpc2llJyxcbiAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMic6ICdWw6lyaWZpY2F0aW9uJyxcbiAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMi5zck9ubHknOiAnRXRhcGUgMiBzdXIgMywgVsOpcmlmaWNhdGlvbicsXG4gICAgJ2ZvZWhuLXN0YXR1cy1wcm9ncmVzcy1iYXIuc3RlcDMnOiAnVHJhbnNtaXNzaW9uJyxcbiAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMy5zck9ubHknOlxuICAgICAgICAnRXRhcGUgMyBzdXIgMywgRGVtYW5kZSB0cmFuc21pc2UnLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc2VsZWN0ZWQuZGVsZXRlJzpcbiAgICAgICAgJ1N1cHByaW1lciB7ZWxlbWVudExhYmVsfScsXG4gICAgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5zci1hbm5vdW5jZW1lbnQuZGVsZXRlZCc6XG4gICAgICAgICd7ZWxlbWVudExhYmVsfSBhIMOpdMOpIHN1cHByaW3DqSwnLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc3ItYW5ub3VuY2VtZW50LmFkZGVkJzpcbiAgICAgICAgJ3tlbGVtZW50TGFiZWx9IGEgw6l0w6kgYWpvdXTDqSwnLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc3ItZGVmYXVsdC1mb2N1cy5uby1lbGVtZW50LXRvLWRlbGV0ZSc6XG4gICAgICAgICdBdWN1biDDqWzDqW1lbnQgZGFucyBsYSBsaXN0ZS4nLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc3ItZGVmYXVsdC1zZWxlY3RlZC1lbGVtZW50JzpcbiAgICAgICAgJyhzw6lsZWN0aW9uIHBhciBkw6lmYXV0KScsXG4gICAgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5hdXRvY29tcGxldGUuZW1wdHktbWVzc2FnZSc6XG4gICAgICAgICdUb3VzIGxlcyDDqWzDqW1lbnRzIGRlIGxhIGxpc3RlIGRlIHByb3Bvc2l0aW9uIG9udCBkw6lqw6Agw6l0w6kgYWpvdXTDqXMuJyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmF1dG9jb21wbGV0ZS5zY3JlZW4tcmVhZGVyLmxhYmVsJzpcbiAgICAgICAgJ1PDqWxlY3Rpb25uZXIgdW4gw6lsw6ltZW50IGRhbnMgbGEgbGlzdGUgZGUgcmVjaGVyY2hlJyArXG4gICAgICAgIFwiIGNpLWRlc3NvdXMgcG91ciBsJ2Fqb3V0ZXIgw6Agdm90cmUgc8OpbGVjdGlvbi5cIixcbiAgICAnZm9laG4tYWdlbmRhLmNhbGVuZGFyLWluZGlzcG9uaWJsZSc6XG4gICAgICAgICdMZSBjYWxlbmRyaWVyIGRlcyByZW5kZXotdm91cyBlc3QgYWN0dWVsbGVtZW50IGluZGlzcG9uaWJsZS4nLFxuICAgICdmb2Vobi1hZ2VuZGEucGFnaW5hdGlvbi1hbmNob3IuZmlyc3QtcGFydCc6XG4gICAgICAgICdWb3VzIHBvdXZleiBjaGFuZ2VyIGRlIHNlbWFpbmUgYXUgbW95ZW4gZGUnLFxuICAgICdmb2Vobi1hZ2VuZGEucGFnaW5hdGlvbi1hbmNob3IudG9wLW5leHQtcGFydCc6ICdsYSBwYWdpbmF0aW9uIGNpLWRlc3NvdXMuJyxcbiAgICAnZm9laG4tYWdlbmRhLnBhZ2luYXRpb24tYW5jaG9yLmJvdHRvbS1uZXh0LXBhcnQnOlxuICAgICAgICAnbGEgcGFnaW5hdGlvbiBjaS1kZXNzdXMuJyxcbiAgICAnZm9laG4tYWdlbmRhLnRpbWVzbG90LnNlbGVjdGVkJzogJyBzw6lsZWN0aW9ubsOpJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLm5vLWRpc3BvJzogJyhhdWN1bmUgZGlzcG9uaWJpbGl0w6kpJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLm5ici1kaXNwbyc6ICd7bmJFbGVtZW50c30gZGlzcG9uaWJpbGl0w6lzJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLnNlbGVjdGVkLXRpbWUnOlxuICAgICAgICAne3RpbWVTZWxlY3RlZFZhbHVlfSBzw6lsZWN0aW9ubsOpJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLnNob3ctbW9yZS1zci1vbmx5JzpcbiAgICAgICAgJ0FmZmljaGVyIGxlcyB7bmJyRWxlbWVudHNIaWRkZW59IGRpc3BvbmliaWxpdMOpcyBtYXNxdcOpZXMnLFxuICAgICdmb2Vobi5hZ2VuZGEtdGltZXNsb3QtcGFuZWwuc2hvdy1tb3JlJzpcbiAgICAgICAgJ0FmZmljaGVyIHBsdXMgKHtuYnJFbGVtZW50c0hpZGRlbn0pJyxcbiAgICAnZm9laG4tYWdlbmRhLXRpbWVzbG90LXBhbmVsLnNob3ctbGVzcyc6ICdBZmZpY2hlciBtb2lucycsXG4gICAgJ2ZvZWhuLWFnZW5kYS1uYXZpZ2F0aW9uLnByZXZpb3VzLXdlZWsnOiAnU2VtYWluZSBwcsOpY8OpZGVudGUnLFxuICAgICdmb2Vobi1hZ2VuZGEtbmF2aWdhdGlvbi5wcmV2aW91cy13ZWVrLXNyLW9ubHknOlxuICAgICAgICAnU2VtYWluZSBwcsOpY8OpZGVudGUgOiB7cHJldmlvdXNXZWVrfScsXG4gICAgJ2ZvZWhuLWFnZW5kYS1uYXZpZ2F0aW9uLm5leHQtd2Vlayc6ICdTZW1haW5lIHN1aXZhbnRlJyxcbiAgICAnZm9laG4tYWdlbmRhLW5hdmlnYXRpb24ubmV4dC13ZWVrLXNyLW9ubHknOlxuICAgICAgICAnU2VtYWluZSBzdWl2YW50ZSA6IHtuZXh0V2Vla30nLFxuICAgICdmb2Vobi1hZ2VuZGEtbmF2aWdhdGlvbi5uYXYuYXJpYS1sYWJlbCc6ICdDaGFuZ2VyIGRlIHNlbWFpbmUnLFxuICAgICdmb2Vobi1hZ2VuZGEtbmF2aWdhdGlvbi5kYXRlLXBpY2tlci1idXR0b24uc2NyZWVuLXJlYWRlci5zZWxlY3RlZC1kYXRlJzpcbiAgICAgICAgJ1NlbWFpbmUgZHUge3NlbGVjdGVkRGF0ZX0gc8OpbGVjdGlvbm7DqWUnLFxuICAgICdnZXNkZW0tZXJyb3IudGV4dC5oYXMtcmVmZXJlbmNlJzpcbiAgICAgICAgJ1ZvdXMgcG91dmV6IGVzc2F5ZXIgZGUgcmVwcmVuZHJlIHZvdHJlIGRlbWFuZGUgZW4gY2xpcXVhbnQgc3VyIGxlIGxpZW4gY2ktZGVzc291cycsXG4gICAgJ2dlc2RlbS1lcnJvci5saW5rLmhhcy1yZWZlcmVuY2UnOiAnUmVwcmVuZHJlIG1hIGRlbWFuZGUnLFxuICAgICdnZXNkZW0tZXJyb3IudGV4dC5oYXMtbm8tcmVmZXJlbmNlJzpcbiAgICAgICAgJ1ZvdXMgcG91dmV6IHJlY29tbWVuY2VyIHVuZSBkZW1hbmRlIGVuIGNsaXF1YW50IHN1ciBsZSBsaWVuIGNpLWRlc3NvdXMnLFxuICAgICdnZXNkZW0tZXJyb3IubGluay5oYXMtbm8tcmVmZXJlbmNlJzogJ1JlY29tbWVuY2VyJyxcbiAgICAnZ2VzZGVtLWVycm9yLnRleHQucGVuZGluZy1wYXltZW50JzpcbiAgICAgICAgJzxwPlVuIHByb2Jsw6htZSBlc3Qgc3VydmVudSBsb3JzIGRlIGxhIHRyYW5zbWlzc2lvbiBkZSB2b3RyZSBkZW1hbmRlLjwvcD4nICtcbiAgICAgICAgJzxwPjxzdHJvbmc+TWVyY2kgZGUgbmUgcGFzIHJlZmFpcmUgdW5lIG5vdXZlbGxlIGRlbWFuZGUgdG91dCBkZSBzdWl0ZS48L3N0cm9uZz48L3A+JyArXG4gICAgICAgIFwiPHA+U2FucyBjb25maXJtYXRpb24gZGUgbGEgdHJhbnNtaXNzaW9uIGRlIHZvdHJlIGRlbWFuZGUgZGFucyB1biBkw6lsYWkgZCd1biBqb3VyLCBcIiArXG4gICAgICAgICdub3VzIHZvdXMgcHJpb25zIGRlIDxhIGhyZWY9XCJ7c3VwcG9ydExpbmt9XCIgdGFyZ2V0PVwiX2JsYW5rXCI+Y29udGFjdGVyIGxlIHN1cHBvcnQ8L2E+LicsXG4gICAgJ2ZvZWhuLW1vZGFsLmJ0bi1jbG9zZS5hcmlhLWxhYmVsJzogJ0Zlcm1lciBsYSBib2l0ZSBkZSBkaWFsb2d1ZScsXG4gICAgJ2ZvZWhuLW1vZGFsLmJ0bi1jbG9zZS50aXRsZSc6ICdGZXJtZXInLFxuICAgICdmb2Vobi10ZXh0YXJlYS5jaGFycy1yZW1haW5pbmcucGx1cmFsJzpcbiAgICAgICAgJ3tjaGFyQ291bnRMZWZ0fSBjYXJhY3TDqHJlcyByZXN0YW50cycsXG4gICAgJ2ZvZWhuLXRleHRhcmVhLmNoYXJzLXJlbWFpbmluZy5zaW5ndWxhcic6XG4gICAgICAgICd7Y2hhckNvdW50TGVmdH0gY2FyYWN0w6hyZSByZXN0YW50JyxcbiAgICAnZm9laG4tdGV4dGFyZWEuY2hhcnMtcmVtYWluaW5nLnplcm8nOlxuICAgICAgICAnVm91cyBhdmV6IGF0dGVpbnQgbGUgbm9tYnJlIGRlIGNhcmFjdMOocmUgYXV0b3Jpc8OpIScsXG4gICAgJ2ZvZWhuLXRleHRhcmVhLmNoYXJzLXJlbWFpbmluZy5leGNlZWRlZCc6XG4gICAgICAgICdWb3VzIGF2ZXogZMOpcGFzc8OpIGxlIG5vbWJyZSBkZSBjYXJhY3TDqHJlcyBhdXRvcmlzw6lzIGRlIHtjaGFyQ291bnRMZWZ0fSdcbn07XG4iXX0=
|
|
@@ -1483,6 +1483,7 @@ const DEFAULT_DICTIONARY = {
|
|
|
1483
1483
|
'use-login.continue-without-login.button.text': 'Continuer sans se connecter',
|
|
1484
1484
|
'foehn-picture-upload.choose-button-label': 'Choisissez une photo',
|
|
1485
1485
|
'foehn-picture-upload.loading-label': 'Chargement...',
|
|
1486
|
+
'foehn-picture-upload.invalid-file-type': 'Le type de votre pièce jointe {filename} ne figure pas parmi ceux qui sont autorisés : "{acceptFormats}"',
|
|
1486
1487
|
'foehn-picture-upload.loading-failure-label': 'Impossible de charger la photo sélectionnée',
|
|
1487
1488
|
'foehn-picture-upload.validate-selection-label': 'Valider la sélection',
|
|
1488
1489
|
'foehn-picture-upload.cancel-selection-label': 'Annuler',
|
|
@@ -11405,6 +11406,7 @@ class FoehnPictureUploadComponent extends FoehnInputComponent {
|
|
|
11405
11406
|
this.resizeToWidth = 300;
|
|
11406
11407
|
this.resizeToHeight = 0;
|
|
11407
11408
|
this.shouldDisplayFileSavedConfirmation = true;
|
|
11409
|
+
this.acceptFormats = '.jpeg,.jpg,.png';
|
|
11408
11410
|
this.loading = false;
|
|
11409
11411
|
}
|
|
11410
11412
|
get hasPicture() {
|
|
@@ -11420,9 +11422,31 @@ class FoehnPictureUploadComponent extends FoehnInputComponent {
|
|
|
11420
11422
|
});
|
|
11421
11423
|
}
|
|
11422
11424
|
onPictureSelection(imgEvent) {
|
|
11423
|
-
|
|
11424
|
-
|
|
11425
|
-
|
|
11425
|
+
var _a;
|
|
11426
|
+
const targetInput = imgEvent.target;
|
|
11427
|
+
if (!((_a = targetInput === null || targetInput === void 0 ? void 0 : targetInput.files) === null || _a === void 0 ? void 0 : _a.length) || !targetInput.files[0]) {
|
|
11428
|
+
return;
|
|
11429
|
+
}
|
|
11430
|
+
const file = targetInput.files[0];
|
|
11431
|
+
if (this.isValidFileType(file.name)) {
|
|
11432
|
+
this.refreshErrors([[], true]);
|
|
11433
|
+
this.pictureToCrop = imgEvent;
|
|
11434
|
+
this.loading = true;
|
|
11435
|
+
}
|
|
11436
|
+
else {
|
|
11437
|
+
const errors = [
|
|
11438
|
+
{
|
|
11439
|
+
name: this.name,
|
|
11440
|
+
code: 'InvalidFileType',
|
|
11441
|
+
message: this.dictionaryService.getKeySync('foehn-picture-upload.invalid-file-type', {
|
|
11442
|
+
filename: file.name,
|
|
11443
|
+
acceptFormats: this.acceptFormats
|
|
11444
|
+
})
|
|
11445
|
+
}
|
|
11446
|
+
];
|
|
11447
|
+
this.refreshErrors([errors, true]);
|
|
11448
|
+
this.resetPictureSelection();
|
|
11449
|
+
}
|
|
11426
11450
|
}
|
|
11427
11451
|
onPictureSelectionFailed() {
|
|
11428
11452
|
const errors = [
|
|
@@ -11485,6 +11509,13 @@ class FoehnPictureUploadComponent extends FoehnInputComponent {
|
|
|
11485
11509
|
}
|
|
11486
11510
|
super.refreshErrors(results);
|
|
11487
11511
|
}
|
|
11512
|
+
isValidFileType(filename) {
|
|
11513
|
+
const acceptedFormats = this.acceptFormats
|
|
11514
|
+
.split(',')
|
|
11515
|
+
.map(ext => ext.toLowerCase());
|
|
11516
|
+
const fileExtension = `.${filename.split('.').pop()}`.toLowerCase();
|
|
11517
|
+
return acceptedFormats.includes(fileExtension);
|
|
11518
|
+
}
|
|
11488
11519
|
}
|
|
11489
11520
|
FoehnPictureUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnPictureUploadComponent, deps: [{ token: GrowlBrokerService }, { token: MultiUploadService }, { token: SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11490
11521
|
FoehnPictureUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FoehnPictureUploadComponent, selector: "foehn-picture-upload", inputs: { name: "name", key: "key", label: "label", baseUrl: "baseUrl", croppedPictureFilename: "croppedPictureFilename", resizeToWidth: "resizeToWidth", resizeToHeight: "resizeToHeight", shouldDisplayFileSavedConfirmation: "shouldDisplayFileSavedConfirmation" }, providers: [
|
|
@@ -11493,7 +11524,7 @@ FoehnPictureUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.
|
|
|
11493
11524
|
useExisting: forwardRef(() => FoehnPictureUploadComponent),
|
|
11494
11525
|
multi: true
|
|
11495
11526
|
}
|
|
11496
|
-
], usesInheritance: true, ngImport: i0, template: "<div\n [attr.id]=\"buildId('Container')\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"form-group clearable-input-form-group\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div *ngIf=\"hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <img\n [id]=\"buildChildId('Picture')\"\n [attr.alt]=\"label\"\n [src]=\"getDownloadUrl()\"\n />\n </div>\n <div class=\"col-md-4\">\n <button\n type=\"button\"\n class=\"btn btn-danger w-100\"\n [attr.id]=\"buildChildId('DeleteButton')\"\n (click)=\"deleteFile()\"\n >\n {{\n 'foehn-picture-upload.delete-picture-label' | fromDictionary\n }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!hasPicture && !croppedPictureAsBase64Url\">\n <input\n #inputFile\n type=\"file\"\n class=\"form-control-file d-none\"\n [attr.id]=\"name\"\n [attr.accept]=\"
|
|
11527
|
+
], usesInheritance: true, ngImport: i0, template: "<div\n [attr.id]=\"buildId('Container')\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"form-group clearable-input-form-group\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div *ngIf=\"hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <img\n [id]=\"buildChildId('Picture')\"\n [attr.alt]=\"label\"\n [src]=\"getDownloadUrl()\"\n />\n </div>\n <div class=\"col-md-4\">\n <button\n type=\"button\"\n class=\"btn btn-danger w-100\"\n [attr.id]=\"buildChildId('DeleteButton')\"\n (click)=\"deleteFile()\"\n >\n {{\n 'foehn-picture-upload.delete-picture-label' | fromDictionary\n }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!hasPicture && !croppedPictureAsBase64Url\">\n <input\n #inputFile\n type=\"file\"\n class=\"form-control-file d-none\"\n [attr.id]=\"name\"\n [attr.accept]=\"acceptFormats\"\n [multiple]=\"false\"\n [name]=\"name\"\n (change)=\"onPictureSelection($event)\"\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary my-2\"\n [attr.id]=\"buildChildId('ChooseButton')\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n [attr.disabled]=\"loading ? 'disabled' : null\"\n >\n {{ 'foehn-picture-upload.choose-button-label' | fromDictionary }}\n </button>\n </div>\n\n <div *ngIf=\"loading\">\n {{ 'foehn-picture-upload.loading-label' | fromDictionary }}\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <image-cropper\n [id]=\"buildChildId('Cropper')\"\n (cropperReady)=\"loading = false\"\n (imageCropped)=\"onImageCropped($event)\"\n (loadImageFailed)=\"onPictureSelectionFailed()\"\n [aspectRatio]=\"3 / 4\"\n [imageChangedEvent]=\"pictureToCrop\"\n [maintainAspectRatio]=\"true\"\n [resizeToWidth]=\"resizeToWidth\"\n [resizeToHeight]=\"resizeToHeight\"\n [onlyScaleDown]=\"true\"\n format=\"png\"\n ></image-cropper>\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"col-md-4\">\n <div class=\"row mb-3\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-primary w-100\"\n [attr.id]=\"buildChildId('SaveButton')\"\n (click)=\"savePicture()\"\n >\n {{\n 'foehn-picture-upload.validate-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n <div class=\"row\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-secondary w-100\"\n [attr.id]=\"buildChildId('CancelButton')\"\n (click)=\"resetPictureSelection()\"\n >\n {{\n 'foehn-picture-upload.cancel-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </div>\n</div>\n", components: [{ type: FoehnValidationAlertsComponent, selector: "foehn-validation-alerts", inputs: ["component", "shouldErrorsBeLive"] }, { type: i5$1.ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "format", "transform", "maintainAspectRatio", "aspectRatio", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "autoCrop", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "cropper", "alignImage", "disabled"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
|
|
11497
11528
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FoehnPictureUploadComponent, decorators: [{
|
|
11498
11529
|
type: Component,
|
|
11499
11530
|
args: [{ selector: 'foehn-picture-upload', providers: [
|
|
@@ -11502,7 +11533,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
11502
11533
|
useExisting: forwardRef(() => FoehnPictureUploadComponent),
|
|
11503
11534
|
multi: true
|
|
11504
11535
|
}
|
|
11505
|
-
], template: "<div\n [attr.id]=\"buildId('Container')\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"form-group clearable-input-form-group\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div *ngIf=\"hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <img\n [id]=\"buildChildId('Picture')\"\n [attr.alt]=\"label\"\n [src]=\"getDownloadUrl()\"\n />\n </div>\n <div class=\"col-md-4\">\n <button\n type=\"button\"\n class=\"btn btn-danger w-100\"\n [attr.id]=\"buildChildId('DeleteButton')\"\n (click)=\"deleteFile()\"\n >\n {{\n 'foehn-picture-upload.delete-picture-label' | fromDictionary\n }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!hasPicture && !croppedPictureAsBase64Url\">\n <input\n #inputFile\n type=\"file\"\n class=\"form-control-file d-none\"\n [attr.id]=\"name\"\n [attr.accept]=\"
|
|
11536
|
+
], template: "<div\n [attr.id]=\"buildId('Container')\"\n [class.has-danger]=\"hasErrors()\"\n [class.vd-form-group-danger]=\"hasErrors()\"\n class=\"form-group clearable-input-form-group\"\n tabindex=\"-1\"\n>\n <label\n [attr.for]=\"buildChildId()\"\n *ngIf=\"!!label\"\n [ngClass]=\"isLabelSrOnly ? 'sr-only' : labelStyleModifier\"\n >\n <span [innerHTML]=\"label\"></span>\n <span\n *ngIf=\"!required && !hideNotRequiredExtraLabel\"\n aria-hidden=\"true\"\n >\n {{ 'foehn-input.optional' | fromDictionary }}\n </span>\n </label>\n\n <foehn-validation-alerts [component]=\"this\"></foehn-validation-alerts>\n\n <small\n *ngIf=\"helpText\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText\"\n ></small>\n\n <input type=\"hidden\" [name]=\"name || label\" [ngModel]=\"model\" />\n\n <ng-content></ng-content>\n\n <div *ngIf=\"hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <img\n [id]=\"buildChildId('Picture')\"\n [attr.alt]=\"label\"\n [src]=\"getDownloadUrl()\"\n />\n </div>\n <div class=\"col-md-4\">\n <button\n type=\"button\"\n class=\"btn btn-danger w-100\"\n [attr.id]=\"buildChildId('DeleteButton')\"\n (click)=\"deleteFile()\"\n >\n {{\n 'foehn-picture-upload.delete-picture-label' | fromDictionary\n }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"!hasPicture && !croppedPictureAsBase64Url\">\n <input\n #inputFile\n type=\"file\"\n class=\"form-control-file d-none\"\n [attr.id]=\"name\"\n [attr.accept]=\"acceptFormats\"\n [multiple]=\"false\"\n [name]=\"name\"\n (change)=\"onPictureSelection($event)\"\n />\n\n <button\n type=\"button\"\n class=\"btn btn-primary my-2\"\n [attr.id]=\"buildChildId('ChooseButton')\"\n [attr.aria-invalid]=\"hasErrorsToDisplay() || null\"\n [attr.aria-describedby]=\"buildId('ErrorsContainer')\"\n (click)=\"inputFile.click()\"\n [attr.disabled]=\"loading ? 'disabled' : null\"\n >\n {{ 'foehn-picture-upload.choose-button-label' | fromDictionary }}\n </button>\n </div>\n\n <div *ngIf=\"loading\">\n {{ 'foehn-picture-upload.loading-label' | fromDictionary }}\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"row\">\n <div class=\"col-md-6\">\n <image-cropper\n [id]=\"buildChildId('Cropper')\"\n (cropperReady)=\"loading = false\"\n (imageCropped)=\"onImageCropped($event)\"\n (loadImageFailed)=\"onPictureSelectionFailed()\"\n [aspectRatio]=\"3 / 4\"\n [imageChangedEvent]=\"pictureToCrop\"\n [maintainAspectRatio]=\"true\"\n [resizeToWidth]=\"resizeToWidth\"\n [resizeToHeight]=\"resizeToHeight\"\n [onlyScaleDown]=\"true\"\n format=\"png\"\n ></image-cropper>\n </div>\n\n <div *ngIf=\"!hasPicture\" class=\"col-md-4\">\n <div class=\"row mb-3\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-primary w-100\"\n [attr.id]=\"buildChildId('SaveButton')\"\n (click)=\"savePicture()\"\n >\n {{\n 'foehn-picture-upload.validate-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n <div class=\"row\">\n <button\n *ngIf=\"croppedPictureAsBase64Url\"\n type=\"button\"\n class=\"btn btn-secondary w-100\"\n [attr.id]=\"buildChildId('CancelButton')\"\n (click)=\"resetPictureSelection()\"\n >\n {{\n 'foehn-picture-upload.cancel-selection-label'\n | fromDictionary\n }}\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
11506
11537
|
}], ctorParameters: function () { return [{ type: GrowlBrokerService }, { type: MultiUploadService }, { type: SdkDictionaryService }]; }, propDecorators: { name: [{
|
|
11507
11538
|
type: Input
|
|
11508
11539
|
}], key: [{
|