@firestitch/content 12.2.2 → 12.2.3
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/app/interfaces/content-config.d.ts +5 -5
- package/app/interfaces/content-page.d.ts +1 -0
- package/app/interfaces/content-style.d.ts +4 -0
- package/app/interfaces/index.d.ts +2 -1
- package/app/modules/content/components/content/content.component.d.ts +7 -3
- package/app/modules/content/components/content-renderer/content-renderer.component.d.ts +11 -9
- package/app/modules/content-layouts/components/content-layouts/content-layouts.component.d.ts +2 -1
- package/app/modules/content-pages/components/content-pages/content-pages.component.d.ts +2 -0
- package/app/modules/content-style/components/content-style/content-style.component.d.ts +27 -0
- package/app/modules/content-style/components/content-style/index.d.ts +1 -0
- package/app/modules/content-style/fs-content-style.module.d.ts +14 -0
- package/app/modules/editor/components/editor/editor.component.d.ts +24 -22
- package/app/modules/editor/fs-content-editor.module.d.ts +8 -5
- package/bundles/firestitch-content.umd.js +620 -523
- package/bundles/firestitch-content.umd.js.map +1 -1
- package/esm2015/app/interfaces/content-config.js +1 -1
- package/esm2015/app/interfaces/content-page.js +1 -1
- package/esm2015/app/interfaces/content-style.js +2 -0
- package/esm2015/app/interfaces/index.js +3 -2
- package/esm2015/app/modules/content/components/content/content.component.js +35 -20
- package/esm2015/app/modules/content/components/content-renderer/content-renderer.component.js +21 -19
- package/esm2015/app/modules/content-layouts/components/content-layouts/content-layouts.component.js +11 -8
- package/esm2015/app/modules/content-pages/components/content-pages/content-pages.component.js +16 -11
- package/esm2015/app/modules/content-pages/fs-content-pages.module.js +1 -1
- package/esm2015/app/modules/content-style/components/content-style/content-style.component.js +71 -0
- package/esm2015/app/modules/content-style/components/content-style/index.js +2 -0
- package/esm2015/app/modules/content-style/fs-content-style.module.js +50 -0
- package/esm2015/app/modules/editor/components/editor/editor.component.js +76 -116
- package/esm2015/app/modules/editor/fs-content-editor.module.js +19 -7
- package/esm2015/public_api.js +5 -3
- package/fesm2015/firestitch-content.js +446 -353
- package/fesm2015/firestitch-content.js.map +1 -1
- package/package.json +6 -5
- package/public_api.d.ts +5 -3
@@ -1,137 +1,115 @@
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component,
|
2
|
-
import { MAT_DIALOG_DATA,
|
3
|
-
import { FsFormDirective } from '@firestitch/form';
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, } from '@angular/core';
|
2
|
+
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
4
3
|
import { FsMessage } from '@firestitch/message';
|
5
|
-
import {
|
6
|
-
import {
|
7
|
-
import { finalize, take, takeUntil, tap } from 'rxjs/operators';
|
8
|
-
import { ContentPageComponent } from '../../../content-pages/components/content-page';
|
4
|
+
import { Subject } from 'rxjs';
|
5
|
+
import { takeUntil, tap } from 'rxjs/operators';
|
9
6
|
import * as i0 from "@angular/core";
|
10
7
|
import * as i1 from "@angular/material/dialog";
|
11
8
|
import * as i2 from "@firestitch/message";
|
12
9
|
import * as i3 from "@firestitch/dialog";
|
13
10
|
import * as i4 from "@angular/material/button";
|
14
11
|
import * as i5 from "@angular/material/icon";
|
15
|
-
import * as i6 from "
|
16
|
-
import * as i7 from "@firestitch/
|
17
|
-
import * as i8 from "@firestitch/
|
18
|
-
import * as i9 from "@
|
19
|
-
import * as i10 from "@angular/
|
20
|
-
import * as i11 from "@angular/
|
12
|
+
import * as i6 from "angular-split";
|
13
|
+
import * as i7 from "@firestitch/label";
|
14
|
+
import * as i8 from "@firestitch/text-editor";
|
15
|
+
import * as i9 from "@firestitch/form";
|
16
|
+
import * as i10 from "@angular/material/button-toggle";
|
17
|
+
import * as i11 from "@angular/forms";
|
18
|
+
import * as i12 from "@firestitch/common";
|
19
|
+
import * as i13 from "@firestitch/skeleton";
|
21
20
|
export class EditorComponent {
|
22
|
-
constructor(_data, _dialogRef,
|
21
|
+
constructor(_data, _dialogRef, _message, _cdRef) {
|
23
22
|
this._data = _data;
|
24
23
|
this._dialogRef = _dialogRef;
|
25
|
-
this._dialog = _dialog;
|
26
24
|
this._message = _message;
|
27
25
|
this._cdRef = _cdRef;
|
28
26
|
this.resizing = false;
|
29
|
-
this.editors = {
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
styles: this.contentPage.styles,
|
35
|
-
content: this.contentPage.content,
|
36
|
-
})
|
37
|
-
.pipe(tap((contentPage) => {
|
38
|
-
this.contentPage = Object.assign(Object.assign({}, this.contentPage), contentPage);
|
39
|
-
this._cdRef.markForCheck();
|
40
|
-
this._message.success('Saved Changes');
|
41
|
-
}));
|
27
|
+
this.editors = {
|
28
|
+
html: true,
|
29
|
+
scss: true,
|
30
|
+
js: false,
|
31
|
+
globalScss: false,
|
42
32
|
};
|
33
|
+
this._destroy$ = new Subject();
|
43
34
|
}
|
44
35
|
ngOnInit() {
|
45
|
-
this.
|
46
|
-
tabSize: 2,
|
47
|
-
language: 'scss',
|
48
|
-
height: '100%',
|
49
|
-
};
|
50
|
-
this.contentConfig = {
|
51
|
-
tabSize: 2,
|
52
|
-
language: 'html',
|
53
|
-
height: '100%',
|
54
|
-
};
|
36
|
+
this._dialogRef.addPanelClass('fs-content-editor-overlay-pane');
|
55
37
|
this.title = this._data.title;
|
56
38
|
this.contentPage = this._data.contentPage;
|
39
|
+
this._config = this._data.contentConfig;
|
57
40
|
this._save = this._data.save;
|
58
|
-
this.
|
41
|
+
this.initTextEditors();
|
42
|
+
this.initGlobalContentStyle();
|
59
43
|
}
|
60
44
|
editorToggleChange(event) {
|
61
45
|
this.editors[event.value] = !this.editors[event.value];
|
62
|
-
this.updateEditorLayouts();
|
63
|
-
}
|
64
|
-
updateEditorLayouts() {
|
65
|
-
setTimeout(() => {
|
66
|
-
if (this.editors.content) {
|
67
|
-
this.contentEditor.updateLayout();
|
68
|
-
}
|
69
|
-
if (this.editors.styles) {
|
70
|
-
this.styleEditor.updateLayout();
|
71
|
-
}
|
72
|
-
});
|
73
46
|
}
|
74
47
|
ngOnDestroy() {
|
75
48
|
this._destroy$.next();
|
76
49
|
this._destroy$.complete();
|
77
50
|
}
|
78
|
-
|
79
|
-
this.
|
51
|
+
globalScssChange() {
|
52
|
+
this._config.saveContentStyle(this.contentStyle)
|
53
|
+
.subscribe((contentStyle) => {
|
54
|
+
this.contentStyle = contentStyle;
|
55
|
+
this._message.success('Saved Changes');
|
56
|
+
this._cdRef.markForCheck();
|
57
|
+
});
|
58
|
+
}
|
59
|
+
initTextEditors() {
|
60
|
+
this.scssConfig = {
|
61
|
+
tabSize: 2,
|
62
|
+
language: 'scss',
|
63
|
+
height: '100%',
|
64
|
+
};
|
65
|
+
this.jsConfig = {
|
66
|
+
tabSize: 2,
|
67
|
+
language: 'js',
|
68
|
+
height: '100%',
|
69
|
+
};
|
70
|
+
this.htmlConfig = {
|
71
|
+
tabSize: 2,
|
72
|
+
language: 'html',
|
73
|
+
height: '100%',
|
74
|
+
};
|
75
|
+
this.globalScssConfig = {
|
76
|
+
tabSize: 2,
|
77
|
+
language: 'scss',
|
78
|
+
height: '100%',
|
79
|
+
};
|
80
80
|
}
|
81
|
-
|
82
|
-
this.
|
81
|
+
initGlobalContentStyle() {
|
82
|
+
this._config.loadContentStyle()
|
83
|
+
.subscribe((contentStyle) => {
|
84
|
+
this.contentStyle = contentStyle;
|
85
|
+
this._cdRef.markForCheck();
|
86
|
+
});
|
83
87
|
}
|
84
|
-
|
85
|
-
this.
|
86
|
-
|
87
|
-
|
88
|
-
|
88
|
+
saveContentPage() {
|
89
|
+
this._save({
|
90
|
+
id: this.contentPage.id,
|
91
|
+
styles: this.contentPage.styles,
|
92
|
+
content: this.contentPage.content,
|
93
|
+
js: this.contentPage.js,
|
89
94
|
})
|
90
|
-
.
|
91
|
-
.pipe(takeUntil(this._destroy$))
|
92
|
-
.subscribe((contentPage) => {
|
95
|
+
.pipe(tap((contentPage) => {
|
93
96
|
this.contentPage = Object.assign(Object.assign({}, this.contentPage), contentPage);
|
94
97
|
this._cdRef.markForCheck();
|
95
|
-
|
98
|
+
this._message.success('Saved Changes');
|
99
|
+
}))
|
100
|
+
.subscribe();
|
96
101
|
}
|
97
|
-
|
98
|
-
|
102
|
+
openSettings() {
|
103
|
+
this._data.openSettings(this.contentPage)
|
99
104
|
.pipe(takeUntil(this._destroy$))
|
100
|
-
.subscribe((
|
101
|
-
this.
|
102
|
-
});
|
103
|
-
}
|
104
|
-
_moveSeparator(separatorEvent) {
|
105
|
-
let mouseDown = {
|
106
|
-
clientX: separatorEvent.clientX,
|
107
|
-
clientY: separatorEvent.clientY,
|
108
|
-
offsetLeft: Number(this.separator.nativeElement.offsetLeft),
|
109
|
-
offsetTop: Number(this.separator.nativeElement.offsetTop),
|
110
|
-
firstWidth: Number(this.contentContainer.nativeElement.offsetWidth),
|
111
|
-
secondWidth: Number(this.styleContainer.nativeElement.offsetWidth),
|
112
|
-
};
|
113
|
-
this.resizing = true;
|
114
|
-
this._cdRef.markForCheck();
|
115
|
-
fromEvent(document, 'mousemove')
|
116
|
-
.pipe(finalize(() => {
|
117
|
-
mouseDown = null;
|
118
|
-
this.resizing = false;
|
105
|
+
.subscribe((contentPage) => {
|
106
|
+
this.contentPage = Object.assign(Object.assign({}, this.contentPage), contentPage);
|
119
107
|
this._cdRef.markForCheck();
|
120
|
-
this.updateEditorLayouts();
|
121
|
-
}), takeUntil(fromEvent(this.separator.nativeElement, 'mouseup')
|
122
|
-
.pipe(take(1), takeUntil(this._destroy$))), takeUntil(this._destroy$))
|
123
|
-
.subscribe((e) => {
|
124
|
-
const delta = { x: e.clientX - mouseDown.clientX,
|
125
|
-
y: e.clientY - mouseDown.clientY };
|
126
|
-
delta.x = Math.min(Math.max(delta.x, -mouseDown.firstWidth), mouseDown.secondWidth);
|
127
|
-
this.separator.nativeElement.style.left = `${mouseDown.offsetLeft + delta.x}px`;
|
128
|
-
this.contentContainer.nativeElement.style.width = `${mouseDown.firstWidth + delta.x}px`;
|
129
|
-
this.styleContainer.nativeElement.style.width = `${mouseDown.secondWidth - delta.x}px`;
|
130
108
|
});
|
131
109
|
}
|
132
110
|
}
|
133
|
-
EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EditorComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token:
|
134
|
-
EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EditorComponent, selector: "ng-component",
|
111
|
+
EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EditorComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i2.FsMessage }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
112
|
+
EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: EditorComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog>\n <h1 mat-dialog-title>\n <div class=\"title-container\">\n <div class=\"title\">\n {{title}}\n <div class=\"small\">{{contentPage.name}}</div> \n </div>\n <a\n (click)=\"openSettings()\"\n mat-icon-button>\n <mat-icon>settings</mat-icon>\n </a> \n </div>\n </h1>\n <div mat-dialog-content>\n <div class=\"container\">\n <as-split [unit]=\"'percent'\" [gutterSize]=\"25\"> \n <as-split-area [size]=\"70\" [visible]=\"editors.html\" [order]=\"1\">\n <div class=\"editor-container\">\n <fs-label>HTML</fs-label>\n <fs-text-editor \n [(ngModel)]=\"contentPage.content\" \n name=\"html\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"saveContentPage()\"\n [config]=\"htmlConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"editors.scss\" [order]=\"2\">\n <div class=\"editor-container\">\n <fs-label>SCSS</fs-label>\n <fs-text-editor \n [(ngModel)]=\"contentPage.styles\" \n name=\"scss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"saveContentPage()\"\n [config]=\"scssConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"editors.js\" [order]=\"3\">\n <div class=\"editor-container\">\n <fs-label>JS</fs-label>\n <fs-text-editor \n [(ngModel)]=\"contentPage.js\" \n name=\"js\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"saveContentPage()\"\n [config]=\"jsConfig\">\n </fs-text-editor> \n </div>\n </as-split-area>\n <as-split-area [size]=\"30\" [visible]=\"editors.globalScss\" [order]=\"4\">\n <div class=\"editor-container\">\n <fs-label>Global SCSS</fs-label>\n <ng-container *fsSkeleton=\"contentStyle\">\n <fs-text-editor \n [(ngModel)]=\"contentStyle.scss\" \n name=\"globalScss\"\n [fsModelChangeOptions]=\"{ debounce: 300 }\"\n (fsModelChange)=\"globalScssChange()\"\n [config]=\"globalScssConfig\">\n </fs-text-editor> \n </ng-container> \n </div>\n </as-split-area>\n </as-split>\n </div>\n </div>\n\n <div mat-dialog-actions>\n <fs-form-dialog-actions\n [save]=\"false\"\n [done]=\"true\">\n </fs-form-dialog-actions>\n <div class=\"toggles\">\n <mat-button-toggle-group multiple>\n <mat-button-toggle value=\"html\" [checked]=\"editors.html\" (change)=\"editorToggleChange($event)\">HTML</mat-button-toggle>\n <mat-button-toggle value=\"scss\" [checked]=\"editors.scss\" (change)=\"editorToggleChange($event)\">SCSS</mat-button-toggle>\n <mat-button-toggle value=\"js\" [checked]=\"editors.js\" (change)=\"editorToggleChange($event)\">JS</mat-button-toggle>\n <mat-button-toggle value=\"globalScss\" [checked]=\"editors.globalScss\" (change)=\"editorToggleChange($event)\">Global SCSS</mat-button-toggle>\n </mat-button-toggle-group> \n </div>\n </div>\n</fs-dialog>\n\n", styles: ["::ng-deep .fs-content-editor-overlay-pane .mat-dialog-container{border-radius:0}:host ::ng-deep .as-split-gutter{background-color:unset!important}fs-dialog{display:flex;height:100%;flex-direction:column}fs-dialog ::ng-deep .mat-dialog-content{max-height:none;flex:1;overflow:hidden}.mat-dialog-actions fs-form-dialog-actions{width:auto}.mat-dialog-actions .toggles{display:flex;justify-content:flex-end;justify-self:baseline;flex:1}.container{height:100%;display:flex;flex-direction:column}.editor-container{height:100%;border-radius:5px;display:flex;flex-direction:column}.editor-container fs-text-editor{flex:1}.title-container{display:flex;align-items:center}.title-container .title{flex:1}.title-container .title .small{line-height:normal}\n"], components: [{ type: i3.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileActionPlacement", "mobileWidth", "mode"] }, { type: i4.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i6.SplitComponent, selector: "as-split", inputs: ["direction", "unit", "gutterSize", "gutterStep", "restrictMove", "useTransition", "disabled", "dir", "gutterDblClickDuration", "gutterClickDeltaPx", "gutterAriaLabel"], outputs: ["transitionEnd", "dragStart", "dragEnd", "gutterClick", "gutterDblClick"], exportAs: ["asSplit"] }, { type: i7.FsLabelComponent, selector: "fs-label" }, { type: i8.FsTextEditorComponent, selector: "fs-text-editor", inputs: ["config", "scrollable"], outputs: ["ready", "blur"] }, { type: i9.FsFormDialogActionsComponent, selector: "fs-form-dialog-actions", inputs: ["save", "create", "close", "done", "closeData", "name"] }, { type: i10.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-labelledby", "tabIndex", "appearance", "checked", "disabled", "id", "name", "aria-label", "value"], outputs: ["change"], exportAs: ["matButtonToggle"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6.SplitAreaDirective, selector: "as-split-area, [as-split-area]", inputs: ["order", "size", "minSize", "maxSize", "lockSize", "visible"], exportAs: ["asSplitArea"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i9.FsFormNoFsValidatorsDirective, selector: "[ngModel]:not([required]):not([fsFormRequired]):not([fsFormCompare]):not([fsFormDateRange]):not([fsFormEmail]):not([fsFormEmails]):not([fsFormFunction]):not([fsFormGreater]):not([fsFormInteger]):not([fsFormLesser]):not([fsFormMax]):not([fsFormMaxLength]):not([fsFormMin]):not([fsFormMinLength]):not([fsFormNumeric]):not([fsFormPattern]):not([fsFormPhone]):not([fsFormUrl]):not([validate])" }, { type: i12.FsModelChangeDirective, selector: "[fsModelChange]", inputs: ["fsModelChangeOptions"], outputs: ["fsModelChange"] }, { type: i13.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i10.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
135
113
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EditorComponent, decorators: [{
|
136
114
|
type: Component,
|
137
115
|
args: [{
|
@@ -142,23 +120,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
142
120
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
143
121
|
type: Inject,
|
144
122
|
args: [MAT_DIALOG_DATA]
|
145
|
-
}] }, { type: i1.MatDialogRef }, { type:
|
146
|
-
type: ViewChild,
|
147
|
-
args: [FsFormDirective]
|
148
|
-
}], styleEditor: [{
|
149
|
-
type: ViewChild,
|
150
|
-
args: ['styleEditor']
|
151
|
-
}], contentEditor: [{
|
152
|
-
type: ViewChild,
|
153
|
-
args: ['contentEditor']
|
154
|
-
}], separator: [{
|
155
|
-
type: ViewChild,
|
156
|
-
args: ['separator', { static: true, read: ElementRef }]
|
157
|
-
}], contentContainer: [{
|
158
|
-
type: ViewChild,
|
159
|
-
args: ['contentContainer', { static: true, read: ElementRef }]
|
160
|
-
}], styleContainer: [{
|
161
|
-
type: ViewChild,
|
162
|
-
args: ['styleContainer', { static: true, read: ElementRef }]
|
163
|
-
}] } });
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUdOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBc0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVwRixPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRdEYsTUFBTSxPQUFPLGVBQWU7SUFvQzFCLFlBQ21DLEtBSWhDLEVBQ08sVUFBeUMsRUFDekMsT0FBa0IsRUFDbEIsUUFBbUIsRUFDbkIsTUFBeUI7UUFSQSxVQUFLLEdBQUwsS0FBSyxDQUlyQztRQUNPLGVBQVUsR0FBVixVQUFVLENBQStCO1FBQ3pDLFlBQU8sR0FBUCxPQUFPLENBQVc7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R0FBRyxHQUFHLFNBQVMsQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3hGLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxTQUFTLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN6RixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OzZHQXhMVSxlQUFlLGtCQXFDaEIsZUFBZTtpR0FyQ2QsZUFBZSwwRkFFZixlQUFlLGtUQVNvQixVQUFVLDZIQUdILFVBQVUseUhBR1osVUFBVSwyQ0MvQy9ELGcrRUFzRUE7NEZEeENhLGVBQWU7a0JBTDNCLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLHlCQUF5QjtvQkFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs7MEJBc0NJLE1BQU07MkJBQUMsZUFBZTt1SkFsQ2xCLElBQUk7c0JBRFYsU0FBUzt1QkFBQyxlQUFlO2dCQUluQixXQUFXO3NCQURqQixTQUFTO3VCQUFDLGFBQWE7Z0JBSWpCLGFBQWE7c0JBRG5CLFNBQVM7dUJBQUMsZUFBZTtnQkFJbkIsU0FBUztzQkFEZixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJbkQsZ0JBQWdCO3NCQUR0QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUkxRCxjQUFjO3NCQURwQixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEZzRm9ybURpcmVjdGl2ZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2Zvcm0nO1xuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc1RleHRFZGl0b3JDb21wb25lbnQsIEZzVGV4dEVkaXRvckNvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL3RleHQtZWRpdG9yJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgdGFrZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuaW1wb3J0IHsgQ29udGVudFBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb250ZW50LXBhZ2VzL2NvbXBvbmVudHMvY29udGVudC1wYWdlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoRnNGb3JtRGlyZWN0aXZlKVxuICBwdWJsaWMgZm9ybTogRnNGb3JtRGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGQoJ3N0eWxlRWRpdG9yJylcbiAgcHVibGljIHN0eWxlRWRpdG9yOiBGc1RleHRFZGl0b3JDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudEVkaXRvcicpXG4gIHB1YmxpYyBjb250ZW50RWRpdG9yOiBGc1RleHRFZGl0b3JDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnc2VwYXJhdG9yJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIHNlcGFyYXRvcjogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdjb250ZW50Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIGNvbnRlbnRDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnc3R5bGVDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwdWJsaWMgc3R5bGVDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgcHVibGljIGNvbnRlbnRQYWdlOiB7XG4gICAgaWQ/OiBudW1iZXI7XG4gICAgc3R5bGVzPzogc3RyaW5nO1xuICAgIGNvbnRlbnQ/OiBzdHJpbmc7XG4gICAgbmFtZT86IHN0cmluZztcbiAgfTtcblxuICBwdWJsaWMgcmVzaXppbmcgPSBmYWxzZTtcbiAgcHVibGljIHRpdGxlO1xuICBwdWJsaWMgZWRpdG9ycyA9IHsgY29udGVudDogdHJ1ZSwgc3R5bGVzOiB0cnVlIH07XG4gIHB1YmxpYyBzdHlsZXNDb25maWc6IEZzVGV4dEVkaXRvckNvbmZpZztcbiAgcHVibGljIGNvbnRlbnRDb25maWc6IEZzVGV4dEVkaXRvckNvbmZpZztcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX3NhdmU6IChkYXRhKSA9PiBPYnNlcnZhYmxlPGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgX2RhdGE6IHtcbiAgICAgIGNvbnRlbnRQYWdlOiBhbnk7XG4gICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgc2F2ZTogKGRhdGEpID0+IE9ic2VydmFibGU8YW55PjtcbiAgICB9LFxuICAgIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEVkaXRvckNvbXBvbmVudD4sXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0eWxlc0NvbmZpZyA9IHtcbiAgICAgIHRhYlNpemU6IDIsXG4gICAgICBsYW5ndWFnZTogJ3Njc3MnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgfTtcbiAgICB0aGlzLmNvbnRlbnRDb25maWcgPSB7XG4gICAgICB0YWJTaXplOiAyLFxuICAgICAgbGFuZ3VhZ2U6ICdodG1sJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgIH07XG4gICAgdGhpcy50aXRsZSA9IHRoaXMuX2RhdGEudGl0bGU7XG4gICAgdGhpcy5jb250ZW50UGFnZSA9IHRoaXMuX2RhdGEuY29udGVudFBhZ2U7XG4gICAgdGhpcy5fc2F2ZSA9IHRoaXMuX2RhdGEuc2F2ZTtcbiAgICB0aGlzLl9pbml0U2VwYXJhdG9yKCk7XG4gIH1cblxuICBwdWJsaWMgZWRpdG9yVG9nZ2xlQ2hhbmdlKGV2ZW50OiBNYXRCdXR0b25Ub2dnbGVDaGFuZ2UpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRvcnNbZXZlbnQudmFsdWVdID0gIXRoaXMuZWRpdG9yc1tldmVudC52YWx1ZV07XG4gICAgdGhpcy51cGRhdGVFZGl0b3JMYXlvdXRzKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRWRpdG9yTGF5b3V0cygpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmKHRoaXMuZWRpdG9ycy5jb250ZW50KSB7XG4gICAgICAgIHRoaXMuY29udGVudEVkaXRvci51cGRhdGVMYXlvdXQoKTtcbiAgICAgIH1cblxuICAgICAgaWYodGhpcy5lZGl0b3JzLnN0eWxlcykge1xuICAgICAgICB0aGlzLnN0eWxlRWRpdG9yLnVwZGF0ZUxheW91dCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHN0eWxlc0NoYW5nZWQoKSB7XG4gICAgdGhpcy5mb3JtLnRyaWdnZXJTdWJtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb250ZW50Q2hhbmdlZCgpIHtcbiAgICB0aGlzLmZvcm0udHJpZ2dlclN1Ym1pdCgpO1xuICB9XG5cbiAgcHVibGljIHNhdmUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX3NhdmUoe1xuICAgICAgaWQ6IHRoaXMuY29udGVudFBhZ2UuaWQsXG4gICAgICBzdHlsZXM6IHRoaXMuY29udGVudFBhZ2Uuc3R5bGVzLFxuICAgICAgY29udGVudDogdGhpcy5jb250ZW50UGFnZS5jb250ZW50LFxuICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChjb250ZW50UGFnZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY29udGVudFBhZ2UgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmNvbnRlbnRQYWdlLFxuICAgICAgICAgICAgLi4uY29udGVudFBhZ2UsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1NhdmVkIENoYW5nZXMnKTtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9O1xuXG4gIHB1YmxpYyBvcGVuU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oQ29udGVudFBhZ2VDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgY29udGVudFBhZ2U6IHRoaXMuY29udGVudFBhZ2UsXG4gICAgICB9LFxuICAgIH0pXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjb250ZW50UGFnZSkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRlbnRQYWdlID0ge1xuICAgICAgICAgIC4uLnRoaXMuY29udGVudFBhZ2UsXG4gICAgICAgICAgLi4uY29udGVudFBhZ2UsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuXG4gIHByaXZhdGUgX2luaXRTZXBhcmF0b3IoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50KHRoaXMuc2VwYXJhdG9yLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWRvd24nKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgIHRoaXMuX21vdmVTZXBhcmF0b3IoZSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX21vdmVTZXBhcmF0b3Ioc2VwYXJhdG9yRXZlbnQpOiB2b2lkIHtcbiAgICBsZXQgbW91c2VEb3duID0ge1xuICAgICAgY2xpZW50WDogc2VwYXJhdG9yRXZlbnQuY2xpZW50WCxcbiAgICAgIGNsaWVudFk6IHNlcGFyYXRvckV2ZW50LmNsaWVudFksXG4gICAgICBvZmZzZXRMZWZ0OiAgTnVtYmVyKHRoaXMuc2VwYXJhdG9yLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCksXG4gICAgICBvZmZzZXRUb3A6ICAgTnVtYmVyKHRoaXMuc2VwYXJhdG9yLm5hdGl2ZUVsZW1lbnQub2Zmc2V0VG9wKSxcbiAgICAgIGZpcnN0V2lkdGg6ICBOdW1iZXIodGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpLFxuICAgICAgc2Vjb25kV2lkdGg6IE51bWJlcih0aGlzLnN0eWxlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpLFxuICAgIH07XG5cbiAgICB0aGlzLnJlc2l6aW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgIGZyb21FdmVudChkb2N1bWVudCwgJ21vdXNlbW92ZScpXG4gICAgICAucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIG1vdXNlRG93biA9IG51bGw7XG4gICAgICAgICAgdGhpcy5yZXNpemluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIHRoaXMudXBkYXRlRWRpdG9yTGF5b3V0cygpO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKFxuICAgICAgICAgIGZyb21FdmVudCh0aGlzLnNlcGFyYXRvci5uYXRpdmVFbGVtZW50LCAnbW91c2V1cCcpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChlOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgZGVsdGEgPSB7IHg6IGUuY2xpZW50WCAtIG1vdXNlRG93bi5jbGllbnRYLFxuICAgICAgICAgIHk6IGUuY2xpZW50WSAtIG1vdXNlRG93bi5jbGllbnRZIH07XG5cbiAgICAgICAgZGVsdGEueCA9IE1hdGgubWluKE1hdGgubWF4KGRlbHRhLngsIC1tb3VzZURvd24uZmlyc3RXaWR0aCksXG4gICAgICAgICAgbW91c2VEb3duLnNlY29uZFdpZHRoKTtcblxuICAgICAgICB0aGlzLnNlcGFyYXRvci5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSBgJHttb3VzZURvd24ub2Zmc2V0TGVmdCArIGRlbHRhLnh9cHhgO1xuICAgICAgICB0aGlzLmNvbnRlbnRDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IGAke21vdXNlRG93bi5maXJzdFdpZHRoICsgZGVsdGEueH1weGA7XG4gICAgICAgIHRoaXMuc3R5bGVDb250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IGAke21vdXNlRG93bi5zZWNvbmRXaWR0aCAtIGRlbHRhLnh9cHhgO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxmb3JtIGZzRm9ybSBbc3VibWl0XT1cInNhdmVcIj5cbiAgPGZzLWRpYWxvZz5cbiAgICA8aDEgbWF0LWRpYWxvZy10aXRsZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgICAge3t0aXRsZX19XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+e3tjb250ZW50UGFnZS5uYW1lfX08L2Rpdj4gICBcbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlblNldHRpbmdzKClcIlxuICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uPlxuICAgICAgICAgIDxtYXQtaWNvbj5zZXR0aW5nczwvbWF0LWljb24+XG4gICAgICAgIDwvYT4gICBcbiAgICAgIDwvZGl2PlxuICAgIDwvaDE+XG4gICAgPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlZGl0b3JzXCIgW25nQ2xhc3NdPVwieyByZXNpemluZzogcmVzaXppbmcsICdzZXBhcmF0b3ItZW5hYmxlZCc6IGVkaXRvcnMuc3R5bGVzICYmIGVkaXRvcnMuY29udGVudCB9XCI+XG4gICAgICAgICAgPGRpdiAjY29udGVudENvbnRhaW5lciBjbGFzcz1cImVkaXRvciBlZGl0b3ItY29udGVudFwiIFtuZ0NsYXNzXT1cInsgJ2NvbnRlbnQtZW5hYmxlZCc6IGVkaXRvcnMuY29udGVudCB9XCI+XG4gICAgICAgICAgICA8ZnMtbGFiZWw+SFRNTDwvZnMtbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8ZnMtdGV4dC1lZGl0b3IgXG4gICAgICAgICAgICAgICAgI2NvbnRlbnRFZGl0b3JcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRlbnRQYWdlLmNvbnRlbnRcIiBcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJjb250ZW50Q2hhbmdlZCgpXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiY29udGVudFwiXG4gICAgICAgICAgICAgICAgW2NvbmZpZ109XCJjb250ZW50Q29uZmlnXCI+XG4gICAgICAgICAgICAgIDwvZnMtdGV4dC1lZGl0b3I+ICAgICAgICAgICAgICBcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgIFxuICAgICAgICAgICAgI3NlcGFyYXRvclxuICAgICAgICAgICAgY2xhc3M9XCJzZXBhcmF0b3JcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgICAgI3N0eWxlQ29udGFpbmVyIFxuICAgICAgICAgICAgICBjbGFzcz1cImVkaXRvciBlZGl0b3Itc3R5bGVzXCIgXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3N0eWxlcy1lbmFibGVkJzogZWRpdG9ycy5zdHlsZXMgfVwiXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCInNjAwcHgnXCI+XG4gICAgICAgICAgICA8ZnMtbGFiZWw+U0NTUzwvZnMtbGFiZWw+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8ZnMtdGV4dC1lZGl0b3IgXG4gICAgICAgICAgICAgICAgI3N0eWxlRWRpdG9yXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb250ZW50UGFnZS5zdHlsZXNcIiBcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJzdHlsZXNDaGFuZ2VkKClcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJzdHlsZXNcIlxuICAgICAgICAgICAgICAgIFtjb25maWddPVwic3R5bGVzQ29uZmlnXCI+XG4gICAgICAgICAgICAgIDwvZnMtdGV4dC1lZGl0b3I+ICAgIFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+ICAgIFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgICA8ZnMtZm9ybS1kaWFsb2ctYWN0aW9uc1xuICAgICAgICBbc2F2ZV09XCJmYWxzZVwiXG4gICAgICAgIFtkb25lXT1cInRydWVcIj5cbiAgICAgIDwvZnMtZm9ybS1kaWFsb2ctYWN0aW9ucz5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0b2dnbGVzXCI+XG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBtdWx0aXBsZT5cbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJjb250ZW50XCIgW2NoZWNrZWRdPVwiZWRpdG9ycy5jb250ZW50XCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPkNvbnRlbnQ8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cInN0eWxlc1wiIFtjaGVja2VkXT1cImVkaXRvcnMuc3R5bGVzXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPlN0eWxlczwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+ICAgICAgXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mcy1kaWFsb2c+XG48L2Zvcm0+XG5cbiJdfQ==
|
123
|
+
}] }, { type: i1.MatDialogRef }, { type: i2.FsMessage }, { type: i0.ChangeDetectorRef }]; } });
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJaEQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFVaEQsTUFBTSxPQUFPLGVBQWU7SUFnQzFCLFlBQ21DLEtBTWhDLEVBQ08sVUFBeUMsRUFDekMsUUFBbUIsRUFDbkIsTUFBeUI7UUFUQSxVQUFLLEdBQUwsS0FBSyxDQU1yQztRQUNPLGVBQVUsR0FBVixVQUFVLENBQStCO1FBQ3pDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUE1QjVCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsWUFBTyxHQUFHO1lBQ2YsSUFBSSxFQUFFLElBQUk7WUFDVixJQUFJLEVBQUUsSUFBSTtZQUNWLEVBQUUsRUFBRSxLQUFLO1lBQ1QsVUFBVSxFQUFFLEtBQUs7U0FDbEIsQ0FBQztRQVFNLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBY3JDLENB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QUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUN0QyxJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsV0FBVyxtQ0FDWCxJQUFJLENBQUMsV0FBVyxHQUNoQixXQUFXLENBQ2YsQ0FBQztZQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs2R0F4SVUsZUFBZSxrQkFpQ2hCLGVBQWU7aUdBakNkLGVBQWUsb0RDM0I1Qix1NkdBdUZBOzRGRDVEYSxlQUFlO2tCQUwzQixTQUFTO21CQUFDO29CQUNULFdBQVcsRUFBRSx5QkFBeUI7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN0QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7OzBCQWtDSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbi10b2dnbGUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBGc01lc3NhZ2UgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcbmltcG9ydCB7IEZzVGV4dEVkaXRvckNvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL3RleHQtZWRpdG9yJztcblxuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRnNDb250ZW50Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwdWJsaWMgY29udGVudFBhZ2U6IHtcbiAgICBpZD86IG51bWJlcjtcbiAgICBzdHlsZXM/OiBzdHJpbmc7XG4gICAgY29udGVudD86IHN0cmluZztcbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIGpzPzogc3RyaW5nO1xuICB9O1xuXG4gIHB1YmxpYyBjb250ZW50U3R5bGU6IHtcbiAgICBzY3NzPzogc3RyaW5nO1xuICB9O1xuXG4gIHB1YmxpYyByZXNpemluZyA9IGZhbHNlO1xuICBwdWJsaWMgdGl0bGU7XG4gIHB1YmxpYyBlZGl0b3JzID0ge1xuICAgIGh0bWw6IHRydWUsXG4gICAgc2NzczogdHJ1ZSxcbiAgICBqczogZmFsc2UsXG4gICAgZ2xvYmFsU2NzczogZmFsc2UsXG4gIH07XG5cbiAgcHVibGljIHNjc3NDb25maWc6IEZzVGV4dEVkaXRvckNvbmZpZztcbiAgcHVibGljIGdsb2JhbFNjc3NDb25maWc6IEZzVGV4dEVkaXRvckNvbmZpZztcbiAgcHVibGljIGh0bWxDb25maWc6IEZzVGV4dEVkaXRvckNvbmZpZztcbiAgcHVibGljIGpzQ29uZmlnOiBGc1RleHRFZGl0b3JDb25maWc7XG5cbiAgcHJpdmF0ZSBfY29uZmlnOiBGc0NvbnRlbnRDb25maWc7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfc2F2ZTogKGRhdGEpID0+IE9ic2VydmFibGU8YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YToge1xuICAgICAgY29udGVudFBhZ2U6IGFueTtcbiAgICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgICBzYXZlOiAoZGF0YSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICAgICAgb3BlblNldHRpbmdzOiAoZGF0YSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICAgICAgY29udGVudENvbmZpZzogRnNDb250ZW50Q29uZmlnO1xuICAgIH0sXG4gICAgcHJpdmF0ZSBfZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RWRpdG9yQ29tcG9uZW50PixcbiAgICBwcml2YXRlIF9tZXNzYWdlOiBGc01lc3NhZ2UsXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2RpYWxvZ1JlZi5hZGRQYW5lbENsYXNzKCdmcy1jb250ZW50LWVkaXRvci1vdmVybGF5LXBhbmUnKTtcbiAgICB0aGlzLnRpdGxlID0gdGhpcy5fZGF0YS50aXRsZTtcbiAgICB0aGlzLmNvbnRlbnRQYWdlID0gdGhpcy5fZGF0YS5jb250ZW50UGFnZTtcbiAgICB0aGlzLl9jb25maWcgPSB0aGlzLl9kYXRhLmNvbnRlbnRDb25maWc7XG4gICAgdGhpcy5fc2F2ZSA9IHRoaXMuX2RhdGEuc2F2ZTtcbiAgICB0aGlzLmluaXRUZXh0RWRpdG9ycygpO1xuICAgIHRoaXMuaW5pdEdsb2JhbENvbnRlbnRTdHlsZSgpO1xuICB9XG5cbiAgcHVibGljIGVkaXRvclRvZ2dsZUNoYW5nZShldmVudDogTWF0QnV0dG9uVG9nZ2xlQ2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3JzW2V2ZW50LnZhbHVlXSA9ICF0aGlzLmVkaXRvcnNbZXZlbnQudmFsdWVdO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdsb2JhbFNjc3NDaGFuZ2UoKSB7XG4gICAgdGhpcy5fY29uZmlnLnNhdmVDb250ZW50U3R5bGUodGhpcy5jb250ZW50U3R5bGUpXG4gICAgICAuc3Vic2NyaWJlKChjb250ZW50U3R5bGUpID0+IHtcbiAgICAgICAgdGhpcy5jb250ZW50U3R5bGUgPSBjb250ZW50U3R5bGU7XG4gICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnU2F2ZWQgQ2hhbmdlcycpO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGluaXRUZXh0RWRpdG9ycygpIHtcbiAgICB0aGlzLnNjc3NDb25maWcgPSB7XG4gICAgICB0YWJTaXplOiAyLFxuICAgICAgbGFuZ3VhZ2U6ICdzY3NzJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgIH07XG4gICAgdGhpcy5qc0NvbmZpZyA9IHtcbiAgICAgIHRhYlNpemU6IDIsXG4gICAgICBsYW5ndWFnZTogJ2pzJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgIH07XG4gICAgdGhpcy5odG1sQ29uZmlnID0ge1xuICAgICAgdGFiU2l6ZTogMixcbiAgICAgIGxhbmd1YWdlOiAnaHRtbCcsXG4gICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICB9O1xuICAgIHRoaXMuZ2xvYmFsU2Nzc0NvbmZpZyA9IHtcbiAgICAgIHRhYlNpemU6IDIsXG4gICAgICBsYW5ndWFnZTogJ3Njc3MnLFxuICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0R2xvYmFsQ29udGVudFN0eWxlKCkge1xuICAgIHRoaXMuX2NvbmZpZy5sb2FkQ29udGVudFN0eWxlKClcbiAgICAgIC5zdWJzY3JpYmUoKGNvbnRlbnRTdHlsZSkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRlbnRTdHlsZSA9IGNvbnRlbnRTdHlsZTtcbiAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ29udGVudFBhZ2UoKSB7XG4gICAgdGhpcy5fc2F2ZSh7XG4gICAgICBpZDogdGhpcy5jb250ZW50UGFnZS5pZCxcbiAgICAgIHN0eWxlczogdGhpcy5jb250ZW50UGFnZS5zdHlsZXMsXG4gICAgICBjb250ZW50OiB0aGlzLmNvbnRlbnRQYWdlLmNvbnRlbnQsXG4gICAgICBqczogdGhpcy5jb250ZW50UGFnZS5qcyxcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoY29udGVudFBhZ2UpID0+IHtcbiAgICAgICAgICB0aGlzLmNvbnRlbnRQYWdlID0ge1xuICAgICAgICAgICAgLi4udGhpcy5jb250ZW50UGFnZSxcbiAgICAgICAgICAgIC4uLmNvbnRlbnRQYWdlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTYXZlZCBDaGFuZ2VzJyk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG9wZW5TZXR0aW5ncygpOiB2b2lkIHtcbiAgICB0aGlzLl9kYXRhLm9wZW5TZXR0aW5ncyh0aGlzLmNvbnRlbnRQYWdlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChjb250ZW50UGFnZSkgPT4ge1xuICAgICAgICB0aGlzLmNvbnRlbnRQYWdlID0ge1xuICAgICAgICAgIC4uLnRoaXMuY29udGVudFBhZ2UsXG4gICAgICAgICAgLi4uY29udGVudFBhZ2UsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxufVxuIiwiPGZzLWRpYWxvZz5cbiAgPGgxIG1hdC1kaWFsb2ctdGl0bGU+XG4gICAgPGRpdiBjbGFzcz1cInRpdGxlLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XG4gICAgICAgIHt7dGl0bGV9fVxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj57e2NvbnRlbnRQYWdlLm5hbWV9fTwvZGl2PiAgIFxuICAgICAgPC9kaXY+XG4gICAgICA8YVxuICAgICAgICAgIChjbGljayk9XCJvcGVuU2V0dGluZ3MoKVwiXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uPlxuICAgICAgICA8bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPlxuICAgICAgPC9hPiAgIFxuICAgIDwvZGl2PlxuICA8L2gxPlxuICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICA8YXMtc3BsaXQgW3VuaXRdPVwiJ3BlcmNlbnQnXCIgW2d1dHRlclNpemVdPVwiMjVcIj4gXG4gICAgICAgIDxhcy1zcGxpdC1hcmVhIFtzaXplXT1cIjcwXCIgW3Zpc2libGVdPVwiZWRpdG9ycy5odG1sXCIgW29yZGVyXT1cIjFcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGZzLWxhYmVsPkhUTUw8L2ZzLWxhYmVsPlxuICAgICAgICAgICAgPGZzLXRleHQtZWRpdG9yIFxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRlbnRQYWdlLmNvbnRlbnRcIiBcbiAgICAgICAgICAgICAgbmFtZT1cImh0bWxcIlxuICAgICAgICAgICAgICBbZnNNb2RlbENoYW5nZU9wdGlvbnNdPVwieyBkZWJvdW5jZTogMzAwIH1cIlxuICAgICAgICAgICAgICAoZnNNb2RlbENoYW5nZSk9XCJzYXZlQ29udGVudFBhZ2UoKVwiXG4gICAgICAgICAgICAgIFtjb25maWddPVwiaHRtbENvbmZpZ1wiPlxuICAgICAgICAgICAgPC9mcy10ZXh0LWVkaXRvcj4gICAgICAgICAgICAgIFxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2FzLXNwbGl0LWFyZWE+XG4gICAgICAgIDxhcy1zcGxpdC1hcmVhIFtzaXplXT1cIjMwXCIgW3Zpc2libGVdPVwiZWRpdG9ycy5zY3NzXCIgW29yZGVyXT1cIjJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGZzLWxhYmVsPlNDU1M8L2ZzLWxhYmVsPlxuICAgICAgICAgICAgPGZzLXRleHQtZWRpdG9yIFxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNvbnRlbnRQYWdlLnN0eWxlc1wiIFxuICAgICAgICAgICAgICBuYW1lPVwic2Nzc1wiXG4gICAgICAgICAgICAgIFtmc01vZGVsQ2hhbmdlT3B0aW9uc109XCJ7IGRlYm91bmNlOiAzMDAgfVwiXG4gICAgICAgICAgICAgIChmc01vZGVsQ2hhbmdlKT1cInNhdmVDb250ZW50UGFnZSgpXCJcbiAgICAgICAgICAgICAgW2NvbmZpZ109XCJzY3NzQ29uZmlnXCI+XG4gICAgICAgICAgICA8L2ZzLXRleHQtZWRpdG9yPiAgICBcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9hcy1zcGxpdC1hcmVhPlxuICAgICAgICA8YXMtc3BsaXQtYXJlYSBbc2l6ZV09XCIzMFwiICBbdmlzaWJsZV09XCJlZGl0b3JzLmpzXCIgW29yZGVyXT1cIjNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGZzLWxhYmVsPkpTPC9mcy1sYWJlbD5cbiAgICAgICAgICAgIDxmcy10ZXh0LWVkaXRvciBcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjb250ZW50UGFnZS5qc1wiIFxuICAgICAgICAgICAgICBuYW1lPVwianNcIlxuICAgICAgICAgICAgICBbZnNNb2RlbENoYW5nZU9wdGlvbnNdPVwieyBkZWJvdW5jZTogMzAwIH1cIlxuICAgICAgICAgICAgICAoZnNNb2RlbENoYW5nZSk9XCJzYXZlQ29udGVudFBhZ2UoKVwiXG4gICAgICAgICAgICAgIFtjb25maWddPVwianNDb25maWdcIj5cbiAgICAgICAgICAgIDwvZnMtdGV4dC1lZGl0b3I+ICAgIFxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2FzLXNwbGl0LWFyZWE+XG4gICAgICAgIDxhcy1zcGxpdC1hcmVhIFtzaXplXT1cIjMwXCIgW3Zpc2libGVdPVwiZWRpdG9ycy5nbG9iYWxTY3NzXCIgW29yZGVyXT1cIjRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWRpdG9yLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGZzLWxhYmVsPkdsb2JhbCBTQ1NTPC9mcy1sYWJlbD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmZzU2tlbGV0b249XCJjb250ZW50U3R5bGVcIj5cbiAgICAgICAgICAgICAgPGZzLXRleHQtZWRpdG9yIFxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY29udGVudFN0eWxlLnNjc3NcIiBcbiAgICAgICAgICAgICAgICBuYW1lPVwiZ2xvYmFsU2Nzc1wiXG4gICAgICAgICAgICAgICAgW2ZzTW9kZWxDaGFuZ2VPcHRpb25zXT1cInsgZGVib3VuY2U6IDMwMCB9XCJcbiAgICAgICAgICAgICAgICAoZnNNb2RlbENoYW5nZSk9XCJnbG9iYWxTY3NzQ2hhbmdlKClcIlxuICAgICAgICAgICAgICAgIFtjb25maWddPVwiZ2xvYmFsU2Nzc0NvbmZpZ1wiPlxuICAgICAgICAgICAgICA8L2ZzLXRleHQtZWRpdG9yPiBcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPiAgIFxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2FzLXNwbGl0LWFyZWE+XG4gICAgICA8L2FzLXNwbGl0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8ZnMtZm9ybS1kaWFsb2ctYWN0aW9uc1xuICAgICAgW3NhdmVdPVwiZmFsc2VcIlxuICAgICAgW2RvbmVdPVwidHJ1ZVwiPlxuICAgIDwvZnMtZm9ybS1kaWFsb2ctYWN0aW9ucz5cbiAgICA8ZGl2IGNsYXNzPVwidG9nZ2xlc1wiPlxuICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIG11bHRpcGxlPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJodG1sXCIgW2NoZWNrZWRdPVwiZWRpdG9ycy5odG1sXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPkhUTUw8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJzY3NzXCIgW2NoZWNrZWRdPVwiZWRpdG9ycy5zY3NzXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPlNDU1M8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJqc1wiIFtjaGVja2VkXT1cImVkaXRvcnMuanNcIiAoY2hhbmdlKT1cImVkaXRvclRvZ2dsZUNoYW5nZSgkZXZlbnQpXCI+SlM8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJnbG9iYWxTY3NzXCIgW2NoZWNrZWRdPVwiZWRpdG9ycy5nbG9iYWxTY3NzXCIgKGNoYW5nZSk9XCJlZGl0b3JUb2dnbGVDaGFuZ2UoJGV2ZW50KVwiPkdsb2JhbCBTQ1NTPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+ICAgICAgXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9mcy1kaWFsb2c+XG5cbiJdfQ==
|
@@ -1,17 +1,20 @@
|
|
1
|
-
import { NgModule } from '@angular/core';
|
2
1
|
import { CommonModule } from '@angular/common';
|
2
|
+
import { NgModule } from '@angular/core';
|
3
|
+
import { FormsModule } from '@angular/forms';
|
3
4
|
import { MatButtonModule } from '@angular/material/button';
|
4
|
-
import { MatTabsModule } from '@angular/material/tabs';
|
5
5
|
import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
6
6
|
import { MatDialogModule } from '@angular/material/dialog';
|
7
7
|
import { MatIconModule } from '@angular/material/icon';
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
import { FsLabelModule } from '@firestitch/label';
|
8
|
+
import { MatTabsModule } from '@angular/material/tabs';
|
9
|
+
import { FsCommonModule } from '@firestitch/common';
|
11
10
|
import { FsDialogModule } from '@firestitch/dialog';
|
12
11
|
import { FsFormModule } from '@firestitch/form';
|
13
12
|
import { FsHtmlEditorModule } from '@firestitch/html-editor';
|
13
|
+
import { FsLabelModule } from '@firestitch/label';
|
14
|
+
import { FsListModule } from '@firestitch/list';
|
15
|
+
import { FsSkeletonModule } from '@firestitch/skeleton';
|
14
16
|
import { FsTextEditorModule } from '@firestitch/text-editor';
|
17
|
+
import { AngularSplitModule } from 'angular-split';
|
15
18
|
import { EditorComponent } from './components/editor';
|
16
19
|
import * as i0 from "@angular/core";
|
17
20
|
export class FsContentEditorModule {
|
@@ -26,10 +29,13 @@ FsContentEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", v
|
|
26
29
|
MatButtonToggleModule,
|
27
30
|
FsListModule,
|
28
31
|
FsFormModule,
|
32
|
+
FsSkeletonModule,
|
29
33
|
FsLabelModule,
|
30
34
|
FsHtmlEditorModule,
|
35
|
+
FsCommonModule,
|
31
36
|
FsDialogModule,
|
32
|
-
FsTextEditorModule
|
37
|
+
FsTextEditorModule,
|
38
|
+
AngularSplitModule], exports: [EditorComponent] });
|
33
39
|
FsContentEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentEditorModule, imports: [[
|
34
40
|
CommonModule,
|
35
41
|
FormsModule,
|
@@ -40,10 +46,13 @@ FsContentEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", v
|
|
40
46
|
MatButtonToggleModule,
|
41
47
|
FsListModule,
|
42
48
|
FsFormModule,
|
49
|
+
FsSkeletonModule,
|
43
50
|
FsLabelModule,
|
44
51
|
FsHtmlEditorModule,
|
52
|
+
FsCommonModule,
|
45
53
|
FsDialogModule,
|
46
54
|
FsTextEditorModule,
|
55
|
+
AngularSplitModule,
|
47
56
|
]] });
|
48
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FsContentEditorModule, decorators: [{
|
49
58
|
type: NgModule,
|
@@ -58,10 +67,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
58
67
|
MatButtonToggleModule,
|
59
68
|
FsListModule,
|
60
69
|
FsFormModule,
|
70
|
+
FsSkeletonModule,
|
61
71
|
FsLabelModule,
|
62
72
|
FsHtmlEditorModule,
|
73
|
+
FsCommonModule,
|
63
74
|
FsDialogModule,
|
64
75
|
FsTextEditorModule,
|
76
|
+
AngularSplitModule,
|
65
77
|
],
|
66
78
|
exports: [
|
67
79
|
EditorComponent,
|
@@ -71,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
71
83
|
],
|
72
84
|
}]
|
73
85
|
}] });
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnMtY29udGVudC1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2VkaXRvci9mcy1jb250ZW50LWVkaXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBZ0N0RCxNQUFNLE9BQU8scUJBQXFCOzttSEFBckIscUJBQXFCO29IQUFyQixxQkFBcUIsaUJBSDlCLGVBQWUsYUF4QmYsWUFBWTtRQUNaLFdBQVc7UUFFWCxlQUFlO1FBQ2YsZUFBZTtRQUNmLGFBQWE7UUFDYixhQUFhO1FBQ2IscUJBQXFCO1FBRXJCLFlBQVk7UUFDWixZQUFZO1FBQ1osZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGNBQWM7UUFDZCxrQkFBa0I7UUFFbEIsa0JBQWtCLGFBR2xCLGVBQWU7b0hBTU4scUJBQXFCLFlBNUJ2QjtZQUNQLFlBQVk7WUFDWixXQUFXO1lBRVgsZUFBZTtZQUNmLGVBQWU7WUFDZixhQUFhO1lBQ2IsYUFBYTtZQUNiLHFCQUFxQjtZQUVyQixZQUFZO1lBQ1osWUFBWTtZQUNaLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2Isa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxjQUFjO1lBQ2Qsa0JBQWtCO1lBRWxCLGtCQUFrQjtTQUNuQjs0RkFRVSxxQkFBcUI7a0JBN0JqQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBRVgsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixxQkFBcUI7d0JBRXJCLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUVsQixrQkFBa0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3FCQUNoQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osZUFBZTtxQkFDaEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuXG5pbXBvcnQgeyBGc0NvbW1vbk1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5pbXBvcnQgeyBGc0RpYWxvZ01vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RpYWxvZyc7XG5pbXBvcnQgeyBGc0Zvcm1Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcbmltcG9ydCB7IEZzSHRtbEVkaXRvck1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2h0bWwtZWRpdG9yJztcbmltcG9ydCB7IEZzTGFiZWxNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9sYWJlbCc7XG5pbXBvcnQgeyBGc0xpc3RNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcbmltcG9ydCB7IEZzU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9za2VsZXRvbic7XG5pbXBvcnQgeyBGc1RleHRFZGl0b3JNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC90ZXh0LWVkaXRvcic7XG5cbmltcG9ydCB7IEFuZ3VsYXJTcGxpdE1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItc3BsaXQnO1xuXG5pbXBvcnQgeyBFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWRpdG9yJztcblxuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRUYWJzTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlLFxuXG4gICAgRnNMaXN0TW9kdWxlLFxuICAgIEZzRm9ybU1vZHVsZSxcbiAgICBGc1NrZWxldG9uTW9kdWxlLFxuICAgIEZzTGFiZWxNb2R1bGUsXG4gICAgRnNIdG1sRWRpdG9yTW9kdWxlLFxuICAgIEZzQ29tbW9uTW9kdWxlLFxuICAgIEZzRGlhbG9nTW9kdWxlLFxuICAgIEZzVGV4dEVkaXRvck1vZHVsZSxcblxuICAgIEFuZ3VsYXJTcGxpdE1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEVkaXRvckNvbXBvbmVudCxcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgRWRpdG9yQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGc0NvbnRlbnRFZGl0b3JNb2R1bGUge1xufVxuIl19
|
package/esm2015/public_api.js
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
-
export { FsContentPagesModule } from './app/modules/content-pages/fs-content-pages.module';
|
2
1
|
export { FsContentLayoutsModule } from './app/modules/content-layouts/fs-content-layouts.module';
|
2
|
+
export { FsContentPagesModule } from './app/modules/content-pages/fs-content-pages.module';
|
3
|
+
export { FsContentStyleModule } from './app/modules/content-style/fs-content-style.module';
|
3
4
|
export { FsContentModule } from './app/modules/content/fs-content.module';
|
4
|
-
export { FsContentPagesComponent } from './app/modules/content-pages/components/content-pages/content-pages.component';
|
5
5
|
export { FsContentLayoutsComponent } from './app/modules/content-layouts/components/content-layouts/content-layouts.component';
|
6
|
+
export { FsContentPagesComponent } from './app/modules/content-pages/components/content-pages/content-pages.component';
|
7
|
+
export { ContentStyleComponent } from './app/modules/content-style/components/content-style';
|
6
8
|
export { FsContentComponent } from './app/modules/content/components/content/content.component';
|
7
9
|
export { FS_CONTENT_CONFIG } from './app/injectors/content-config.injector';
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUUxRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvRkFBb0YsQ0FBQztBQUMvSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUN2SCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUM3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUVoRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEZzQ29udGVudExheW91dHNNb2R1bGUgfSBmcm9tICcuL2FwcC9tb2R1bGVzL2NvbnRlbnQtbGF5b3V0cy9mcy1jb250ZW50LWxheW91dHMubW9kdWxlJztcbmV4cG9ydCB7IEZzQ29udGVudFBhZ2VzTW9kdWxlIH0gZnJvbSAnLi9hcHAvbW9kdWxlcy9jb250ZW50LXBhZ2VzL2ZzLWNvbnRlbnQtcGFnZXMubW9kdWxlJztcbmV4cG9ydCB7IEZzQ29udGVudFN0eWxlTW9kdWxlIH0gZnJvbSAnLi9hcHAvbW9kdWxlcy9jb250ZW50LXN0eWxlL2ZzLWNvbnRlbnQtc3R5bGUubW9kdWxlJztcbmV4cG9ydCB7IEZzQ29udGVudE1vZHVsZSB9IGZyb20gJy4vYXBwL21vZHVsZXMvY29udGVudC9mcy1jb250ZW50Lm1vZHVsZSc7XG5cbmV4cG9ydCB7IEZzQ29udGVudExheW91dHNDb21wb25lbnQgfSBmcm9tICcuL2FwcC9tb2R1bGVzL2NvbnRlbnQtbGF5b3V0cy9jb21wb25lbnRzL2NvbnRlbnQtbGF5b3V0cy9jb250ZW50LWxheW91dHMuY29tcG9uZW50JztcbmV4cG9ydCB7IEZzQ29udGVudFBhZ2VzQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAvbW9kdWxlcy9jb250ZW50LXBhZ2VzL2NvbXBvbmVudHMvY29udGVudC1wYWdlcy9jb250ZW50LXBhZ2VzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDb250ZW50U3R5bGVDb21wb25lbnQgfSBmcm9tICcuL2FwcC9tb2R1bGVzL2NvbnRlbnQtc3R5bGUvY29tcG9uZW50cy9jb250ZW50LXN0eWxlJztcbmV4cG9ydCB7IEZzQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vYXBwL21vZHVsZXMvY29udGVudC9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQnO1xuXG5leHBvcnQgeyBGU19DT05URU5UX0NPTkZJRyB9IGZyb20gJy4vYXBwL2luamVjdG9ycy9jb250ZW50LWNvbmZpZy5pbmplY3Rvcic7XG5cbmV4cG9ydCB7IEZzQ29udGVudENvbmZpZyB9IGZyb20gJy4vYXBwL2ludGVyZmFjZXMvY29udGVudC1jb25maWcnO1xuZXhwb3J0IHsgRnNDb250ZW50TGF5b3V0IH0gZnJvbSAnLi9hcHAvaW50ZXJmYWNlcy9jb250ZW50LWxheW91dCc7XG5leHBvcnQgeyBGc0NvbnRlbnRQYWdlIH0gZnJvbSAnLi9hcHAvaW50ZXJmYWNlcy9jb250ZW50LXBhZ2UnO1xuXG4iXX0=
|