@firestitch/system 18.0.43 → 18.0.45
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/modules/system/components/dashboard/dashboard.component.d.ts +19 -3
- package/app/modules/system/components/setting-instructions/index.d.ts +1 -0
- package/app/modules/system/components/setting-instructions/setting-instructions.component.d.ts +7 -0
- package/app/modules/system/components/settings/settings.component.d.ts +7 -0
- package/app/modules/system/fs-system.module.d.ts +2 -1
- package/esm2022/app/modules/system/components/dashboard/dashboard.component.mjs +32 -5
- package/esm2022/app/modules/system/components/setting-instructions/index.mjs +2 -0
- package/esm2022/app/modules/system/components/setting-instructions/setting-instructions.component.mjs +23 -0
- package/esm2022/app/modules/system/components/settings/settings.component.mjs +23 -4
- package/esm2022/app/modules/system/fs-system.module.mjs +7 -3
- package/esm2022/public_api.mjs +2 -1
- package/fesm2022/firestitch-system.mjs +73 -9
- package/fesm2022/firestitch-system.mjs.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
2
|
import { BuildData } from '@firestitch/build';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
3
4
|
import { DashboardAction } from './../../interfaces/dashboard-action';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class DashboardComponent implements OnInit, OnDestroy {
|
|
@@ -7,9 +8,15 @@ export declare class DashboardComponent implements OnInit, OnDestroy {
|
|
|
7
8
|
private _cdRef;
|
|
8
9
|
private _buildService;
|
|
9
10
|
private _process;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
private _api;
|
|
12
|
+
/**
|
|
13
|
+
* All three are optional. Left unset, the component reads the standard system
|
|
14
|
+
* endpoints itself — the paths every application using this library already
|
|
15
|
+
* serves. One is supplied only to point the component somewhere else.
|
|
16
|
+
*/
|
|
17
|
+
init: () => Observable<any>;
|
|
18
|
+
upgrade: () => Observable<any>;
|
|
19
|
+
load: () => Observable<any>;
|
|
13
20
|
actions: DashboardAction[];
|
|
14
21
|
dashboard: any;
|
|
15
22
|
buttonActions: DashboardAction[];
|
|
@@ -48,6 +55,15 @@ export declare class DashboardComponent implements OnInit, OnDestroy {
|
|
|
48
55
|
* would bury the events worth reading.
|
|
49
56
|
*/
|
|
50
57
|
private _upgradeLine;
|
|
58
|
+
private _dashboardGet;
|
|
59
|
+
private _init;
|
|
60
|
+
/**
|
|
61
|
+
* The upgrade endpoint is read as a stream by default, which is what fills the
|
|
62
|
+
* process log line by line while the run is still going. An application that
|
|
63
|
+
* supplies its own `upgrade` decides for itself — a plain request emits once,
|
|
64
|
+
* produces no lines, and the process is a labelled spinner.
|
|
65
|
+
*/
|
|
66
|
+
private _upgrade;
|
|
51
67
|
private _load;
|
|
52
68
|
static ɵfac: i0.ɵɵFactoryDeclaration<DashboardComponent, never>;
|
|
53
69
|
static ɵcmp: i0.ɵɵComponentDeclaration<DashboardComponent, "fs-system-dashboard", never, { "init": { "alias": "init"; "required": false; }; "upgrade": { "alias": "upgrade"; "required": false; }; "load": { "alias": "load"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; }, {}, never, never, true, never>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './setting-instructions.component';
|
package/app/modules/system/components/setting-instructions/setting-instructions.component.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class SettingInstructionsComponent {
|
|
3
|
+
private _data;
|
|
4
|
+
setting: any;
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SettingInstructionsComponent, never>;
|
|
6
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SettingInstructionsComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
7
|
+
}
|
|
@@ -6,6 +6,7 @@ export declare class SettingsComponent implements OnInit {
|
|
|
6
6
|
private _message;
|
|
7
7
|
private _clipboard;
|
|
8
8
|
private _prompt;
|
|
9
|
+
private _dialog;
|
|
9
10
|
private _cdRef;
|
|
10
11
|
loadSettings: (query: any) => Observable<any[]>;
|
|
11
12
|
save: (data: any, group: string) => Observable<any>;
|
|
@@ -20,6 +21,12 @@ export declare class SettingsComponent implements OnInit {
|
|
|
20
21
|
ngOnInit(): void;
|
|
21
22
|
export(event: UIEvent, settings: any): void;
|
|
22
23
|
import(event: UIEvent, group: any): void;
|
|
24
|
+
/**
|
|
25
|
+
* Opens the long-form setup steps for settings that carry them. The inline hint
|
|
26
|
+
* covers what the field is; this covers work that has to happen elsewhere before
|
|
27
|
+
* a value can even be obtained.
|
|
28
|
+
*/
|
|
29
|
+
openInstructions(setting: any): void;
|
|
23
30
|
saveGroup(group: any): void;
|
|
24
31
|
static ɵfac: i0.ɵɵFactoryDeclaration<SettingsComponent, never>;
|
|
25
32
|
static ɵcmp: i0.ɵɵComponentDeclaration<SettingsComponent, "fs-system-settings", never, { "loadSettings": { "alias": "loadSettings"; "required": false; }; "save": { "alias": "save"; "required": false; }; }, { "fileRemove": "fileRemove"; "fileSelect": "fileSelect"; }, never, never, true, never>;
|
|
@@ -40,9 +40,10 @@ import * as i36 from "./components/info/info.component";
|
|
|
40
40
|
import * as i37 from "./components/process/process.component";
|
|
41
41
|
import * as i38 from "./components/cron/cron.component";
|
|
42
42
|
import * as i39 from "./components/cron-log/cron-log.component";
|
|
43
|
+
import * as i40 from "./components/setting-instructions/setting-instructions.component";
|
|
43
44
|
export declare class FsSystemModule {
|
|
44
45
|
static forRoot(config: FsSystemConfig): ModuleWithProviders<FsSystemModule>;
|
|
45
46
|
static ɵfac: i0.ɵɵFactoryDeclaration<FsSystemModule, never>;
|
|
46
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<FsSystemModule, never, [typeof i1.CommonModule, typeof i2.FormsModule, typeof i3.MatButtonModule, typeof i4.MatExpansionModule, typeof i5.MatTooltipModule, typeof i6.MatIconModule, typeof i7.MatFormFieldModule, typeof i8.MatInputModule, typeof i9.MatSelectModule, typeof i10.MatDialogModule, typeof i11.MatProgressSpinnerModule, typeof i12.MatTabsModule, typeof i13.FsDateModule, typeof i14.FsSkeletonModule, typeof i15.FsListModule, typeof i16.FsFileModule, typeof i17.FsFileManagerModule, typeof i18.FsLabelModule, typeof i19.FsDialogModule, typeof i20.FsDatePickerModule, typeof i21.FsMenuModule, typeof i22.FsBadgeModule, typeof i23.FsPopoverModule, typeof i24.FsColorPickerModule, typeof i25.CronLogsComponent, typeof i26.DashboardComponent, typeof i27.CronNextRunComponent, typeof i28.CronsComponent, typeof i29.SettingsComponent, typeof i30.KeyNameValuePipe, typeof i31.ProcessesComponent, typeof i32.ServerLogsComponent, typeof i33.UpgradeLogsComponent, typeof i34.ApiLogsComponent, typeof i35.ApiLogComponent, typeof i36.InfoComponent, typeof i37.ProcessComponent, typeof i38.CronComponent, typeof i39.CronLogComponent], [typeof i26.DashboardComponent, typeof i28.CronsComponent, typeof i29.SettingsComponent, typeof i31.ProcessesComponent, typeof i32.ServerLogsComponent, typeof i33.UpgradeLogsComponent, typeof i34.ApiLogsComponent, typeof i36.InfoComponent]>;
|
|
47
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<FsSystemModule, never, [typeof i1.CommonModule, typeof i2.FormsModule, typeof i3.MatButtonModule, typeof i4.MatExpansionModule, typeof i5.MatTooltipModule, typeof i6.MatIconModule, typeof i7.MatFormFieldModule, typeof i8.MatInputModule, typeof i9.MatSelectModule, typeof i10.MatDialogModule, typeof i11.MatProgressSpinnerModule, typeof i12.MatTabsModule, typeof i13.FsDateModule, typeof i14.FsSkeletonModule, typeof i15.FsListModule, typeof i16.FsFileModule, typeof i17.FsFileManagerModule, typeof i18.FsLabelModule, typeof i19.FsDialogModule, typeof i20.FsDatePickerModule, typeof i21.FsMenuModule, typeof i22.FsBadgeModule, typeof i23.FsPopoverModule, typeof i24.FsColorPickerModule, typeof i25.CronLogsComponent, typeof i26.DashboardComponent, typeof i27.CronNextRunComponent, typeof i28.CronsComponent, typeof i29.SettingsComponent, typeof i30.KeyNameValuePipe, typeof i31.ProcessesComponent, typeof i32.ServerLogsComponent, typeof i33.UpgradeLogsComponent, typeof i34.ApiLogsComponent, typeof i35.ApiLogComponent, typeof i36.InfoComponent, typeof i37.ProcessComponent, typeof i38.CronComponent, typeof i39.CronLogComponent, typeof i40.SettingInstructionsComponent], [typeof i26.DashboardComponent, typeof i28.CronsComponent, typeof i29.SettingsComponent, typeof i31.ProcessesComponent, typeof i32.ServerLogsComponent, typeof i33.UpgradeLogsComponent, typeof i34.ApiLogsComponent, typeof i36.InfoComponent]>;
|
|
47
48
|
static ɵinj: i0.ɵɵInjectorDeclaration<FsSystemModule>;
|
|
48
49
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, inject } from '@angular/core';
|
|
2
|
-
import { StreamEventData } from '@firestitch/api';
|
|
2
|
+
import { FsApi, StreamEventData } from '@firestitch/api';
|
|
3
3
|
import { FsBuildService } from '@firestitch/build';
|
|
4
4
|
import { FsMessage } from '@firestitch/message';
|
|
5
5
|
import { FsProcess, ProcessState } from '@firestitch/process';
|
|
@@ -24,6 +24,12 @@ export class DashboardComponent {
|
|
|
24
24
|
_cdRef = inject(ChangeDetectorRef);
|
|
25
25
|
_buildService = inject(FsBuildService);
|
|
26
26
|
_process = inject(FsProcess);
|
|
27
|
+
_api = inject(FsApi);
|
|
28
|
+
/**
|
|
29
|
+
* All three are optional. Left unset, the component reads the standard system
|
|
30
|
+
* endpoints itself — the paths every application using this library already
|
|
31
|
+
* serves. One is supplied only to point the component somewhere else.
|
|
32
|
+
*/
|
|
27
33
|
init;
|
|
28
34
|
upgrade;
|
|
29
35
|
load;
|
|
@@ -57,7 +63,7 @@ export class DashboardComponent {
|
|
|
57
63
|
action.click();
|
|
58
64
|
}
|
|
59
65
|
initClick() {
|
|
60
|
-
this.
|
|
66
|
+
this._init()
|
|
61
67
|
.subscribe(() => {
|
|
62
68
|
this._message.success('Successfully initialized the system');
|
|
63
69
|
});
|
|
@@ -77,7 +83,7 @@ export class DashboardComponent {
|
|
|
77
83
|
* is what every application had before this.
|
|
78
84
|
*/
|
|
79
85
|
upgradeClick() {
|
|
80
|
-
const process = this._process.run('System upgrade', this.
|
|
86
|
+
const process = this._process.run('System upgrade', this._upgrade()
|
|
81
87
|
.pipe(map((event) => this._upgradeLine(event)), filter((line) => line !== null)));
|
|
82
88
|
// The pending-upgrade count on this screen is the thing the button was
|
|
83
89
|
// pressed to change, so it is re-read when the run settles — including when
|
|
@@ -133,8 +139,29 @@ export class DashboardComponent {
|
|
|
133
139
|
return data.message || null;
|
|
134
140
|
}
|
|
135
141
|
}
|
|
142
|
+
_dashboardGet() {
|
|
143
|
+
return this.load
|
|
144
|
+
? this.load()
|
|
145
|
+
: this._api.get('system/dashboard', {}, { key: 'dashboard' });
|
|
146
|
+
}
|
|
147
|
+
_init() {
|
|
148
|
+
return this.init
|
|
149
|
+
? this.init()
|
|
150
|
+
: this._api.get('system/init', {}, { key: '' });
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* The upgrade endpoint is read as a stream by default, which is what fills the
|
|
154
|
+
* process log line by line while the run is still going. An application that
|
|
155
|
+
* supplies its own `upgrade` decides for itself — a plain request emits once,
|
|
156
|
+
* produces no lines, and the process is a labelled spinner.
|
|
157
|
+
*/
|
|
158
|
+
_upgrade() {
|
|
159
|
+
return this.upgrade
|
|
160
|
+
? this.upgrade()
|
|
161
|
+
: this._api.stream('GET', 'system/upgrade', { stream: true }, { key: '' });
|
|
162
|
+
}
|
|
136
163
|
_load() {
|
|
137
|
-
this.
|
|
164
|
+
this._dashboardGet()
|
|
138
165
|
.subscribe((dashboard) => {
|
|
139
166
|
this.dashboard = dashboard;
|
|
140
167
|
this.dashboard.cronRanAttention = !dashboard.cronRan ||
|
|
@@ -166,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
166
193
|
}], actions: [{
|
|
167
194
|
type: Input
|
|
168
195
|
}] } });
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBYSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFB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T0FBTywySUFDUCxVQUFVLGlSQUNWLFNBQVMsZ0xBQ1QsWUFBWSxpU0FDWixZQUFZOzsyRkFHUCxrQkFBa0I7a0JBakI5QixTQUFTOytCQUNJLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDTCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLFVBQVU7d0JBQ1YsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLFlBQVk7cUJBQ2Y7OEJBU2EsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBRVUsT0FBTztzQkFBdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdHJlYW1FdmVudERhdGEgfSBmcm9tICdAZmlyZXN0aXRjaC9hcGknO1xuaW1wb3J0IHsgQnVpbGREYXRhLCBGc0J1aWxkU2VydmljZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2J1aWxkJztcbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgRnNQcm9jZXNzLCBQcm9jZXNzU3RhdGUgfSBmcm9tICdAZmlyZXN0aXRjaC9wcm9jZXNzJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgZGlmZmVyZW5jZUluTWludXRlcyB9IGZyb20gJ2RhdGUtZm5zJztcblxuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9uIH0gZnJvbSAnLi8uLi8uLi9pbnRlcmZhY2VzL2Rhc2hib2FyZC1hY3Rpb24nO1xuaW1wb3J0IHsgRnNTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3NrZWxldG9uJztcbmltcG9ydCB7IEZzTGFiZWxNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9sYWJlbCc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBGc01lbnVNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9tZW51JztcbmltcG9ydCB7IEZzRGF0ZU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RhdGUnO1xuaW1wb3J0IHsgVXBncmFkZUV2ZW50IH0gZnJvbSAnLi8uLi8uLi9pbnRlcmZhY2VzL3VwZ3JhZGUtZXZlbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZnMtc3lzdGVtLWRhc2hib2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZzU2tlbGV0b25Nb2R1bGUsXG4gICAgICAgIEZzTGFiZWxNb2R1bGUsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIE1hdEljb24sXG4gICAgICAgIE1hdFRvb2x0aXAsXG4gICAgICAgIE1hdEJ1dHRvbixcbiAgICAgICAgRnNNZW51TW9kdWxlLFxuICAgICAgICBGc0RhdGVNb2R1bGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9tZXNzYWdlID0gaW5qZWN0KEZzTWVzc2FnZSk7XG4gIHByaXZhdGUgX2NkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBfYnVpbGRTZXJ2aWNlID0gaW5qZWN0KEZzQnVpbGRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfcHJvY2VzcyA9IGluamVjdChGc1Byb2Nlc3MpO1xuXG5cbiAgQElucHV0KCkgcHVibGljIGluaXQ6ICgpID0+IGFueTtcbiAgQElucHV0KCkgcHVibGljIHVwZ3JhZGU6ICgpID0+IGFueTtcbiAgQElucHV0KCkgcHVibGljIGxvYWQ6ICgpID0+IGFueTtcblxuICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uczogRGFzaGJvYXJkQWN0aW9uW10gPSBbXTtcblxuICBwdWJsaWMgZGFzaGJvYXJkO1xuICBwdWJsaWMgYnV0dG9uQWN0aW9uczogRGFzaGJvYXJkQWN0aW9uW10gPSBbXTtcbiAgcHVibGljIGJ1aWxkOiBCdWlsZERhdGE7XG4gIHB1YmxpYyBtZW51QWN0aW9uczogRGFzaGJvYXJkQWN0aW9uW10gPSBbXTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2xvYWQoKTtcbiAgICB0aGlzLmJ1dHRvbkFjdGlvbnMgPSB0aGlzLmFjdGlvbnMuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICByZXR1cm4gIWl0ZW0ubWVudTsgXG4gICAgfSk7XG4gICAgdGhpcy5tZW51QWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBpdGVtLm1lbnU7IFxuICAgIH0pO1xuXG4gICAgdGhpcy5idWlsZCA9IHRoaXMuX2J1aWxkU2VydmljZS5idWlsZDtcbiAgICB0aGlzLl9idWlsZFNlcnZpY2UuYnVpbGQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGJ1aWxkOiBCdWlsZERhdGEpID0+IHtcbiAgICAgICAgdGhpcy5idWlsZCA9IGJ1aWxkO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3Rpb25DbGljayhhY3Rpb24pIHtcbiAgICBhY3Rpb24uY2xpY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0Q2xpY2soKSB7XG4gICAgdGhpcy5pbml0KClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1N1Y2Nlc3NmdWxseSBpbml0aWFsaXplZCB0aGUgc3lzdGVtJyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gdGhlIHBlbmRpbmcgdXBncmFkZXMgYXMgYSBwcm9jZXNzIHJhdGhlciB0aGFuIGJlaGluZCBhIHNwaW5uZXIuXG4gICAqXG4gICAqIEEgc3Bpbm5lciBzYXlzIHRoZSBzYW1lIHRoaW5nIGZvciB0ZW4gc2Vjb25kcyBhbmQgZm9yIHRlbiBtaW51dGVzLCB3aGljaCBpc1xuICAgKiB0aGUgd2hvbGUgcHJvYmxlbTogYW4gdXBncmFkZSB0aGF0IHJlYnVpbGRzIHRoZSBsYXJnZXN0IHRhYmxlIGluIGEgc2NoZW1hXG4gICAqIGxvb2tzIGV4YWN0bHkgbGlrZSBvbmUgdGhhdCBoYXMgaHVuZywgYW5kIHRoZSBvbmx5IHdheSBhbnlib2R5IGZvdW5kIG91dFxuICAgKiB3aGljaCB3YXMgdG8gd2FpdCBmb3IgYSBwcm94eSB0byBnaXZlIHVwLlxuICAgKlxuICAgKiBXb3JrcyB3aGV0aGVyIG9yIG5vdCB0aGUgYXBwbGljYXRpb24ncyBlbmRwb2ludCBzdHJlYW1zLiBXaGVyZSBpdCBkb2VzLCBlYWNoXG4gICAqIE5ESlNPTiBldmVudCBiZWNvbWVzIGEgbGluZSBpbiB0aGUgcHJvY2VzcyBsb2cg4oCUIHdoaWNoIGZ1bmN0aW9uIGlzIHJ1bm5pbmcsXG4gICAqIGhvdyBmYXIgdGhyb3VnaCBpdCBpcywgd2hhdCBlYWNoIG9uZSBjb3N0LiBXaGVyZSBpdCBkb2VzIG5vdCwgdGhlIHNpbmdsZVxuICAgKiByZXBseSBwcm9kdWNlcyBubyBsaW5lcyBhbmQgdGhlIHByb2Nlc3MgaXMgc2ltcGx5IGEgbGFiZWxsZWQgc3Bpbm5lciwgd2hpY2hcbiAgICogaXMgd2hhdCBldmVyeSBhcHBsaWNhdGlvbiBoYWQgYmVmb3JlIHRoaXMuXG4gICAqL1xuICBwdWJsaWMgdXBncmFkZUNsaWNrKCkge1xuICAgIGNvbnN0IHByb2Nlc3MgPSB0aGlzLl9wcm9jZXNzLnJ1bihcbiAgICAgICdTeXN0ZW0gdXBncmFkZScsXG4gICAgICB0aGlzLnVwZ3JhZGUoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGV2ZW50KSA9PiB0aGlzLl91cGdyYWRlTGluZShldmVudCkpLFxuICAgICAgICAgIGZpbHRlcigobGluZSk6IGxpbmUgaXMgc3RyaW5nID0+IGxpbmUgIT09IG51bGwpLFxuICAgICAgICApLFxuICAgICk7XG5cbiAgICAvLyBUaGUgcGVuZGluZy11cGdyYWRlIGNvdW50IG9uIHRoaXMgc2NyZWVuIGlzIHRoZSB0aGluZyB0aGUgYnV0dG9uIHdhc1xuICAgIC8vIHByZXNzZWQgdG8gY2hhbmdlLCBzbyBpdCBpcyByZS1yZWFkIHdoZW4gdGhlIHJ1biBzZXR0bGVzIOKAlCBpbmNsdWRpbmcgd2hlblxuICAgIC8vIGl0IEZBSUxTLCBiZWNhdXNlIGEgcnVuIHRoYXQgc3RvcHBlZCBoYWxmd2F5IHN0aWxsIGNvbXBsZXRlZCBldmVyeXRoaW5nXG4gICAgLy8gYmVmb3JlIHRoZSBvbmUgdGhhdCBicm9rZS5cbiAgICBwcm9jZXNzLmNvbXBsZXRlZCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdGU6IFByb2Nlc3NTdGF0ZSkgPT4ge1xuICAgICAgICB0aGlzLl9sb2FkKCk7XG5cbiAgICAgICAgaWYgKHN0YXRlID09PSBQcm9jZXNzU3RhdGUuU3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnU3VjY2Vzc2Z1bGx5IHVwZ3JhZGVkIHRoZSBzeXN0ZW0nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT25lIGVtaXNzaW9uIG9mZiB0aGUgdXBncmFkZSBlbmRwb2ludCwgYXMgYSBsaW5lIGZvciB0aGUgcHJvY2VzcyBsb2cg4oCUIG9yXG4gICAqIG51bGwgZm9yIGFueXRoaW5nIHdpdGggbm90aGluZyB0byBzYXksIHdoaWNoIGlzIGRyb3BwZWQgcmF0aGVyIHRoYW4gbG9nZ2VkLlxuICAgKlxuICAgKiBgRnNBcGkuc3RyZWFtKClgIHdyYXBzIGV2ZXJ5IE5ESlNPTiBsaW5lIGluIGEgYFN0cmVhbUV2ZW50RGF0YWAsIGFuZFxuICAgKiBgRnNQcm9jZXNzYCBsb2dzIGEgc3RyaW5nIGVtaXNzaW9uIHZlcmJhdGltLiBTbyB0aGUgbWFwcGluZyBoYXBwZW5zIGhlcmU6IGFuXG4gICAqIG9iamVjdCBoYW5kZWQgdG8gdGhlIGxvZyByZW5kZXJzIGFzIGBbb2JqZWN0IE9iamVjdF1gLlxuICAgKlxuICAgKiBgcGluZ2AgaXMgZGVsaWJlcmF0ZWx5IHNpbGVudC4gSXQgaXMgdGhlIGhlYXJ0YmVhdCB0aGF0IHN0b3BzIGEgcHJveHlcbiAgICogY2xvc2luZyBhIHJ1biB0aGF0IGlzIHN0aWxsIHdvcmtpbmcsIGl0IGZpcmVzIGFmdGVyIGV2ZXJ5IHN0YXRlbWVudCwgYW5kIGl0XG4gICAqIHdvdWxkIGJ1cnkgdGhlIGV2ZW50cyB3b3J0aCByZWFkaW5nLlxuICAgKi9cbiAgcHJpdmF0ZSBfdXBncmFkZUxpbmUoZXZlbnQ6IHVua25vd24pOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBkYXRhOiBVcGdyYWRlRXZlbnQgPSAoZXZlbnQgaW5zdGFuY2VvZiBTdHJlYW1FdmVudERhdGEgPyBldmVudC5kYXRhIDogZXZlbnQpIGFzIFVwZ3JhZGVFdmVudDtcblxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIGlmICghZGF0YSB8fCAhZGF0YS50eXBlIHx8IGRhdGEudHlwZSA9PT0gJ3BpbmcnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzdGVwID0gYCR7ZGF0YS5pbmRleH0gb2YgJHtkYXRhLnRvdGFsfWA7XG5cbiAgICBzd2l0Y2ggKGRhdGEudHlwZSkge1xuICAgICAgY2FzZSAnc3RhcnQnOlxuICAgICAgICByZXR1cm4gZGF0YS50b3RhbFxuICAgICAgICAgID8gYCR7ZGF0YS50b3RhbH0gdXBncmFkZShzKSB0byBydW46ICR7KGRhdGEuZnVuY3Rpb25zIHx8IFtdKS5qb2luKCcsICcpfWBcbiAgICAgICAgICA6ICdOb3RoaW5nIHRvIHVwZ3JhZGUnO1xuXG4gICAgICBjYXNlICd1cGdyYWRlJzpcbiAgICAgICAgaWYgKGRhdGEuc3RhdGUgPT09ICdzdGFydGVkJykge1xuICAgICAgICAgIHJldHVybiBgJHtzdGVwfSAke2RhdGEubmFtZX3igKZgO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGEuc3RhdGUgPT09ICdjb21wbGV0ZWQnXG4gICAgICAgICAgPyBgJHtzdGVwfSAke2RhdGEubmFtZX0g4oCUICR7ZGF0YS5kdXJhdGlvbn1gXG4gICAgICAgICAgOiBgJHtzdGVwfSAke2RhdGEubmFtZX0gRkFJTEVEIOKAlCAke2RhdGEubWVzc2FnZX1gO1xuXG4gICAgICBjYXNlICdkb25lJzpcbiAgICAgICAgcmV0dXJuIGRhdGEuY29tcGxldGVkXG4gICAgICAgICAgPyBgQ29tcGxldGVkICR7ZGF0YS5jb21wbGV0ZWR9IHVwZ3JhZGUocylgXG4gICAgICAgICAgOiAnTm90aGluZyB0byB1cGdyYWRlJztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGRhdGEubWVzc2FnZSB8fCBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xvYWQoKSB7XG4gICAgdGhpcy5sb2FkKClcbiAgICAgIC5zdWJzY3JpYmUoKGRhc2hib2FyZCkgPT4ge1xuICAgICAgICB0aGlzLmRhc2hib2FyZCA9IGRhc2hib2FyZDtcbiAgICAgICAgdGhpcy5kYXNoYm9hcmQuY3JvblJhbkF0dGVudGlvbiA9ICFkYXNoYm9hcmQuY3JvblJhbiB8fFxuICAgICAgICAgZGlmZmVyZW5jZUluTWludXRlcyhuZXcgRGF0ZSgpLCBuZXcgRGF0ZShkYXNoYm9hcmQuY3JvblJhbikpID4gMTU7XG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgKmZzU2tlbGV0b249XCJkYXNoYm9hcmRcIj5cbiAgPGRpdiBjbGFzcz1cImZzLXJvdy5nYXAtbGcud3JhcC5hbGlnbi1zdGFydFwiPlxuICAgIDxkaXY+XG4gICAgICA8aDI+XG4gICAgICAgIFNlcnZlclxuICAgICAgPC9oMj5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIERhdGUvVGltZVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7eyBkYXNoYm9hcmQuc2VydmVyVGltZSB8IGZzRGF0ZUZvcm1hdDogJ2RhdGUtdGltZScgfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICBUaW1lem9uZVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7eyBkYXNoYm9hcmQuc2VydmVyVGltZXpvbmUgfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICBIb3N0bmFtZVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7eyBkYXNoYm9hcmQuc2VydmVySG9zdG5hbWUgfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICBEaXJlY3RvcnlcbiAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAge3sgZGFzaGJvYXJkLmFwcERpcmVjdG9yeSB9fVxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGgyPlxuICAgICAgICBTeXN0ZW1cbiAgICAgIDwvaDI+XG4gICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICBNb2RlXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIHt7IGRhc2hib2FyZC5hcHBNb2RlIH19XG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgTm90aWZpY2F0aW9uIFJlY2lwaWVudHNcbiAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAge3sgZGFzaGJvYXJkLm5vdGlmeVJlY2lwaWVudHMuam9pbignLCAnKSB9fVxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGgyPlxuICAgICAgICBEYXRhYmFzZVxuICAgICAgPC9oMj5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIE5hbWVcbiAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAge3sgZGFzaGJvYXJkLmRhdGFiYXNlTmFtZSB9fVxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIERhdGUvVGltZVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7eyBkYXNoYm9hcmQuZGF0YWJhc2VUaW1lIHwgZnNEYXRlRm9ybWF0OiAnZGF0ZS10aW1lJyB9fVxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIFRpbWV6b25lXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIHt7IGRhc2hib2FyZC5kYXRhYmFzZVRpbWV6b25lIH19XG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIEBpZiAoYnVpbGQgfHwgZGFzaGJvYXJkLnVwZ3JhZGVzLmxlbmd0aCkge1xuICAgICAgPGRpdj5cbiAgICAgICAgQGlmIChidWlsZCkge1xuICAgICAgICAgIDxoMj5cbiAgICAgICAgICAgIEJ1aWxkXG4gICAgICAgICAgPC9oMj5cbiAgICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICAgIFZlcnNpb25cbiAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICB7eyBidWlsZC52ZXJzaW9uIHx8ICdVbmtub3duJyB9fVxuICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgICBEYXRlXG4gICAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgICAge3sgKGJ1aWxkLmRhdGUgfCBmc0RhdGVGb3JtYXQ6ICdkYXRlLXRpbWUnKSB8fCAnVW5rbm93bicgfX1cbiAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoZGFzaGJvYXJkLnVwZ3JhZGVzLmxlbmd0aCkge1xuICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgUGVuZGluZyBVcGdyYWRlc1xuICAgICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXR0ZW50aW9uXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnbmVlZHMtYXR0ZW50aW9uJzogISFkYXNoYm9hcmQudXBncmFkZXMubGVuZ3RoIH1cIj5cbiAgICAgICAgICAgICAge3sgZGFzaGJvYXJkLnVwZ3JhZGVzLmxlbmd0aCB9fVxuICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJkYXNoYm9hcmQudXBncmFkZXMuam9pbignXFxuJylcIlxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cInRvb2x0aXAtcGVuZGluZy11cGdyYWRlc1wiPlxuICAgICAgICAgICAgICAgIHdhcm5pbmdcbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gICAgPGRpdj5cbiAgICAgIDxoMj5cbiAgICAgICAgQ3JvblxuICAgICAgPC9oMj5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIExhc3QgUmFuXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJhdHRlbnRpb25cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ25lZWRzLWF0dGVudGlvbic6IGRhc2hib2FyZC5jcm9uUmFuQXR0ZW50aW9uIH1cIj5cbiAgICAgICAgICBAaWYgKCFkYXNoYm9hcmQuY3JvblJhbikge1xuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIE5ldmVyXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoZGFzaGJvYXJkLmNyb25SYW4pIHtcbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICB7eyBkYXNoYm9hcmQuY3JvblJhbiB8IGZzRGF0ZUZvcm1hdDogJ2RhdGUtdGltZScgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPG1hdC1pY29uPlxuICAgICAgICAgICAgd2FybmluZ1xuICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAoY2xpY2spPVwidXBncmFkZUNsaWNrKClcIj5cbiAgICAgICAgUnVuIFVwZ3JhZGVzXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJpbml0Q2xpY2soKVwiPlxuICAgICAgICBJbml0IFN5c3RlbVxuICAgICAgPC9idXR0b24+XG4gICAgICBAZm9yIChhY3Rpb24gb2YgYnV0dG9uQWN0aW9uczsgdHJhY2sgYWN0aW9uKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxuICAgICAgICAgIHt7IGFjdGlvbi5sYWJlbCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAobWVudUFjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgIDxmcy1tZW51IGJ1dHRvbkNsYXNzPVwibWF0LXN0cm9rZWQtYnV0dG9uIG1lbnUtYnV0dG9uXCI+XG4gICAgICAgICAgQGZvciAoYWN0aW9uIG9mIG1lbnVBY3Rpb25zOyB0cmFjayBhY3Rpb24pIHtcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBmcy1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGlvbkNsaWNrKGFjdGlvbilcIj5cbiAgICAgICAgICAgICAge3sgYWN0aW9uLmxhYmVsIH19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9mcy1tZW51PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQWEsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFOUQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFB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QUFuQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFFVSxPQUFPO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZzQXBpLCBTdHJlYW1FdmVudERhdGEgfSBmcm9tICdAZmlyZXN0aXRjaC9hcGknO1xuaW1wb3J0IHsgQnVpbGREYXRhLCBGc0J1aWxkU2VydmljZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2J1aWxkJztcbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgRnNQcm9jZXNzLCBQcm9jZXNzU3RhdGUgfSBmcm9tICdAZmlyZXN0aXRjaC9wcm9jZXNzJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgZGlmZmVyZW5jZUluTWludXRlcyB9IGZyb20gJ2RhdGUtZm5zJztcblxuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9uIH0gZnJvbSAnLi8uLi8uLi9pbnRlcmZhY2VzL2Rhc2hib2FyZC1hY3Rpb24nO1xuaW1wb3J0IHsgRnNTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3NrZWxldG9uJztcbmltcG9ydCB7IEZzTGFiZWxNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9sYWJlbCc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBGc01lbnVNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9tZW51JztcbmltcG9ydCB7IEZzRGF0ZU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RhdGUnO1xuaW1wb3J0IHsgVXBncmFkZUV2ZW50IH0gZnJvbSAnLi8uLi8uLi9pbnRlcmZhY2VzL3VwZ3JhZGUtZXZlbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZnMtc3lzdGVtLWRhc2hib2FyZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Rhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZzU2tlbGV0b25Nb2R1bGUsXG4gICAgICAgIEZzTGFiZWxNb2R1bGUsXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIE1hdEljb24sXG4gICAgICAgIE1hdFRvb2x0aXAsXG4gICAgICAgIE1hdEJ1dHRvbixcbiAgICAgICAgRnNNZW51TW9kdWxlLFxuICAgICAgICBGc0RhdGVNb2R1bGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9tZXNzYWdlID0gaW5qZWN0KEZzTWVzc2FnZSk7XG4gIHByaXZhdGUgX2NkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBfYnVpbGRTZXJ2aWNlID0gaW5qZWN0KEZzQnVpbGRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfcHJvY2VzcyA9IGluamVjdChGc1Byb2Nlc3MpO1xuICBwcml2YXRlIF9hcGkgPSBpbmplY3QoRnNBcGkpO1xuXG5cbiAgLyoqXG4gICAqIEFsbCB0aHJlZSBhcmUgb3B0aW9uYWwuIExlZnQgdW5zZXQsIHRoZSBjb21wb25lbnQgcmVhZHMgdGhlIHN0YW5kYXJkIHN5c3RlbVxuICAgKiBlbmRwb2ludHMgaXRzZWxmIOKAlCB0aGUgcGF0aHMgZXZlcnkgYXBwbGljYXRpb24gdXNpbmcgdGhpcyBsaWJyYXJ5IGFscmVhZHlcbiAgICogc2VydmVzLiBPbmUgaXMgc3VwcGxpZWQgb25seSB0byBwb2ludCB0aGUgY29tcG9uZW50IHNvbWV3aGVyZSBlbHNlLlxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGluaXQ6ICgpID0+IE9ic2VydmFibGU8YW55PjtcbiAgQElucHV0KCkgcHVibGljIHVwZ3JhZGU6ICgpID0+IE9ic2VydmFibGU8YW55PjtcbiAgQElucHV0KCkgcHVibGljIGxvYWQ6ICgpID0+IE9ic2VydmFibGU8YW55PjtcblxuICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uczogRGFzaGJvYXJkQWN0aW9uW10gPSBbXTtcblxuICBwdWJsaWMgZGFzaGJvYXJkO1xuICBwdWJsaWMgYnV0dG9uQWN0aW9uczogRGFzaGJvYXJkQWN0aW9uW10gPSBbXTtcbiAgcHVibGljIGJ1aWxkOiBCdWlsZERhdGE7XG4gIHB1YmxpYyBtZW51QWN0aW9uczogRGFzaGJvYXJkQWN0aW9uW10gPSBbXTtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2xvYWQoKTtcbiAgICB0aGlzLmJ1dHRvbkFjdGlvbnMgPSB0aGlzLmFjdGlvbnMuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICByZXR1cm4gIWl0ZW0ubWVudTsgXG4gICAgfSk7XG4gICAgdGhpcy5tZW51QWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5maWx0ZXIoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBpdGVtLm1lbnU7IFxuICAgIH0pO1xuXG4gICAgdGhpcy5idWlsZCA9IHRoaXMuX2J1aWxkU2VydmljZS5idWlsZDtcbiAgICB0aGlzLl9idWlsZFNlcnZpY2UuYnVpbGQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGJ1aWxkOiBCdWlsZERhdGEpID0+IHtcbiAgICAgICAgdGhpcy5idWlsZCA9IGJ1aWxkO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhY3Rpb25DbGljayhhY3Rpb24pIHtcbiAgICBhY3Rpb24uY2xpY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0Q2xpY2soKSB7XG4gICAgdGhpcy5faW5pdCgpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQgdGhlIHN5c3RlbScpO1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUnVuIHRoZSBwZW5kaW5nIHVwZ3JhZGVzIGFzIGEgcHJvY2VzcyByYXRoZXIgdGhhbiBiZWhpbmQgYSBzcGlubmVyLlxuICAgKlxuICAgKiBBIHNwaW5uZXIgc2F5cyB0aGUgc2FtZSB0aGluZyBmb3IgdGVuIHNlY29uZHMgYW5kIGZvciB0ZW4gbWludXRlcywgd2hpY2ggaXNcbiAgICogdGhlIHdob2xlIHByb2JsZW06IGFuIHVwZ3JhZGUgdGhhdCByZWJ1aWxkcyB0aGUgbGFyZ2VzdCB0YWJsZSBpbiBhIHNjaGVtYVxuICAgKiBsb29rcyBleGFjdGx5IGxpa2Ugb25lIHRoYXQgaGFzIGh1bmcsIGFuZCB0aGUgb25seSB3YXkgYW55Ym9keSBmb3VuZCBvdXRcbiAgICogd2hpY2ggd2FzIHRvIHdhaXQgZm9yIGEgcHJveHkgdG8gZ2l2ZSB1cC5cbiAgICpcbiAgICogV29ya3Mgd2hldGhlciBvciBub3QgdGhlIGFwcGxpY2F0aW9uJ3MgZW5kcG9pbnQgc3RyZWFtcy4gV2hlcmUgaXQgZG9lcywgZWFjaFxuICAgKiBOREpTT04gZXZlbnQgYmVjb21lcyBhIGxpbmUgaW4gdGhlIHByb2Nlc3MgbG9nIOKAlCB3aGljaCBmdW5jdGlvbiBpcyBydW5uaW5nLFxuICAgKiBob3cgZmFyIHRocm91Z2ggaXQgaXMsIHdoYXQgZWFjaCBvbmUgY29zdC4gV2hlcmUgaXQgZG9lcyBub3QsIHRoZSBzaW5nbGVcbiAgICogcmVwbHkgcHJvZHVjZXMgbm8gbGluZXMgYW5kIHRoZSBwcm9jZXNzIGlzIHNpbXBseSBhIGxhYmVsbGVkIHNwaW5uZXIsIHdoaWNoXG4gICAqIGlzIHdoYXQgZXZlcnkgYXBwbGljYXRpb24gaGFkIGJlZm9yZSB0aGlzLlxuICAgKi9cbiAgcHVibGljIHVwZ3JhZGVDbGljaygpIHtcbiAgICBjb25zdCBwcm9jZXNzID0gdGhpcy5fcHJvY2Vzcy5ydW4oXG4gICAgICAnU3lzdGVtIHVwZ3JhZGUnLFxuICAgICAgdGhpcy5fdXBncmFkZSgpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoZXZlbnQpID0+IHRoaXMuX3VwZ3JhZGVMaW5lKGV2ZW50KSksXG4gICAgICAgICAgZmlsdGVyKChsaW5lKTogbGluZSBpcyBzdHJpbmcgPT4gbGluZSAhPT0gbnVsbCksXG4gICAgICAgICksXG4gICAgKTtcblxuICAgIC8vIFRoZSBwZW5kaW5nLXVwZ3JhZGUgY291bnQgb24gdGhpcyBzY3JlZW4gaXMgdGhlIHRoaW5nIHRoZSBidXR0b24gd2FzXG4gICAgLy8gcHJlc3NlZCB0byBjaGFuZ2UsIHNvIGl0IGlzIHJlLXJlYWQgd2hlbiB0aGUgcnVuIHNldHRsZXMg4oCUIGluY2x1ZGluZyB3aGVuXG4gICAgLy8gaXQgRkFJTFMsIGJlY2F1c2UgYSBydW4gdGhhdCBzdG9wcGVkIGhhbGZ3YXkgc3RpbGwgY29tcGxldGVkIGV2ZXJ5dGhpbmdcbiAgICAvLyBiZWZvcmUgdGhlIG9uZSB0aGF0IGJyb2tlLlxuICAgIHByb2Nlc3MuY29tcGxldGVkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZTogUHJvY2Vzc1N0YXRlKSA9PiB7XG4gICAgICAgIHRoaXMuX2xvYWQoKTtcblxuICAgICAgICBpZiAoc3RhdGUgPT09IFByb2Nlc3NTdGF0ZS5TdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTdWNjZXNzZnVsbHkgdXBncmFkZWQgdGhlIHN5c3RlbScpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPbmUgZW1pc3Npb24gb2ZmIHRoZSB1cGdyYWRlIGVuZHBvaW50LCBhcyBhIGxpbmUgZm9yIHRoZSBwcm9jZXNzIGxvZyDigJQgb3JcbiAgICogbnVsbCBmb3IgYW55dGhpbmcgd2l0aCBub3RoaW5nIHRvIHNheSwgd2hpY2ggaXMgZHJvcHBlZCByYXRoZXIgdGhhbiBsb2dnZWQuXG4gICAqXG4gICAqIGBGc0FwaS5zdHJlYW0oKWAgd3JhcHMgZXZlcnkgTkRKU09OIGxpbmUgaW4gYSBgU3RyZWFtRXZlbnREYXRhYCwgYW5kXG4gICAqIGBGc1Byb2Nlc3NgIGxvZ3MgYSBzdHJpbmcgZW1pc3Npb24gdmVyYmF0aW0uIFNvIHRoZSBtYXBwaW5nIGhhcHBlbnMgaGVyZTogYW5cbiAgICogb2JqZWN0IGhhbmRlZCB0byB0aGUgbG9nIHJlbmRlcnMgYXMgYFtvYmplY3QgT2JqZWN0XWAuXG4gICAqXG4gICAqIGBwaW5nYCBpcyBkZWxpYmVyYXRlbHkgc2lsZW50LiBJdCBpcyB0aGUgaGVhcnRiZWF0IHRoYXQgc3RvcHMgYSBwcm94eVxuICAgKiBjbG9zaW5nIGEgcnVuIHRoYXQgaXMgc3RpbGwgd29ya2luZywgaXQgZmlyZXMgYWZ0ZXIgZXZlcnkgc3RhdGVtZW50LCBhbmQgaXRcbiAgICogd291bGQgYnVyeSB0aGUgZXZlbnRzIHdvcnRoIHJlYWRpbmcuXG4gICAqL1xuICBwcml2YXRlIF91cGdyYWRlTGluZShldmVudDogdW5rbm93bik6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGRhdGE6IFVwZ3JhZGVFdmVudCA9IChldmVudCBpbnN0YW5jZW9mIFN0cmVhbUV2ZW50RGF0YSA/IGV2ZW50LmRhdGEgOiBldmVudCkgYXMgVXBncmFkZUV2ZW50O1xuXG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgaWYgKCFkYXRhIHx8ICFkYXRhLnR5cGUgfHwgZGF0YS50eXBlID09PSAncGluZycpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHN0ZXAgPSBgJHtkYXRhLmluZGV4fSBvZiAke2RhdGEudG90YWx9YDtcblxuICAgIHN3aXRjaCAoZGF0YS50eXBlKSB7XG4gICAgICBjYXNlICdzdGFydCc6XG4gICAgICAgIHJldHVybiBkYXRhLnRvdGFsXG4gICAgICAgICAgPyBgJHtkYXRhLnRvdGFsfSB1cGdyYWRlKHMpIHRvIHJ1bjogJHsoZGF0YS5mdW5jdGlvbnMgfHwgW10pLmpvaW4oJywgJyl9YFxuICAgICAgICAgIDogJ05vdGhpbmcgdG8gdXBncmFkZSc7XG5cbiAgICAgIGNhc2UgJ3VwZ3JhZGUnOlxuICAgICAgICBpZiAoZGF0YS5zdGF0ZSA9PT0gJ3N0YXJ0ZWQnKSB7XG4gICAgICAgICAgcmV0dXJuIGAke3N0ZXB9ICR7ZGF0YS5uYW1lfeKApmA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0YS5zdGF0ZSA9PT0gJ2NvbXBsZXRlZCdcbiAgICAgICAgICA/IGAke3N0ZXB9ICR7ZGF0YS5uYW1lfSDigJQgJHtkYXRhLmR1cmF0aW9ufWBcbiAgICAgICAgICA6IGAke3N0ZXB9ICR7ZGF0YS5uYW1lfSBGQUlMRUQg4oCUICR7ZGF0YS5tZXNzYWdlfWA7XG5cbiAgICAgIGNhc2UgJ2RvbmUnOlxuICAgICAgICByZXR1cm4gZGF0YS5jb21wbGV0ZWRcbiAgICAgICAgICA/IGBDb21wbGV0ZWQgJHtkYXRhLmNvbXBsZXRlZH0gdXBncmFkZShzKWBcbiAgICAgICAgICA6ICdOb3RoaW5nIHRvIHVwZ3JhZGUnO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZGF0YS5tZXNzYWdlIHx8IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGFzaGJvYXJkR2V0KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMubG9hZFxuICAgICAgPyB0aGlzLmxvYWQoKVxuICAgICAgOiB0aGlzLl9hcGkuZ2V0KCdzeXN0ZW0vZGFzaGJvYXJkJywge30sIHsga2V5OiAnZGFzaGJvYXJkJyB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5pbml0XG4gICAgICA/IHRoaXMuaW5pdCgpXG4gICAgICA6IHRoaXMuX2FwaS5nZXQoJ3N5c3RlbS9pbml0Jywge30sIHsga2V5OiAnJyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdXBncmFkZSBlbmRwb2ludCBpcyByZWFkIGFzIGEgc3RyZWFtIGJ5IGRlZmF1bHQsIHdoaWNoIGlzIHdoYXQgZmlsbHMgdGhlXG4gICAqIHByb2Nlc3MgbG9nIGxpbmUgYnkgbGluZSB3aGlsZSB0aGUgcnVuIGlzIHN0aWxsIGdvaW5nLiBBbiBhcHBsaWNhdGlvbiB0aGF0XG4gICAqIHN1cHBsaWVzIGl0cyBvd24gYHVwZ3JhZGVgIGRlY2lkZXMgZm9yIGl0c2VsZiDigJQgYSBwbGFpbiByZXF1ZXN0IGVtaXRzIG9uY2UsXG4gICAqIHByb2R1Y2VzIG5vIGxpbmVzLCBhbmQgdGhlIHByb2Nlc3MgaXMgYSBsYWJlbGxlZCBzcGlubmVyLlxuICAgKi9cbiAgcHJpdmF0ZSBfdXBncmFkZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnVwZ3JhZGVcbiAgICAgID8gdGhpcy51cGdyYWRlKClcbiAgICAgIDogdGhpcy5fYXBpLnN0cmVhbSgnR0VUJywgJ3N5c3RlbS91cGdyYWRlJywgeyBzdHJlYW06IHRydWUgfSwgeyBrZXk6ICcnIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZCgpIHtcbiAgICB0aGlzLl9kYXNoYm9hcmRHZXQoKVxuICAgICAgLnN1YnNjcmliZSgoZGFzaGJvYXJkKSA9PiB7XG4gICAgICAgIHRoaXMuZGFzaGJvYXJkID0gZGFzaGJvYXJkO1xuICAgICAgICB0aGlzLmRhc2hib2FyZC5jcm9uUmFuQXR0ZW50aW9uID0gIWRhc2hib2FyZC5jcm9uUmFuIHx8XG4gICAgICAgICBkaWZmZXJlbmNlSW5NaW51dGVzKG5ldyBEYXRlKCksIG5ldyBEYXRlKGRhc2hib2FyZC5jcm9uUmFuKSkgPiAxNTtcbiAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiAqZnNTa2VsZXRvbj1cImRhc2hib2FyZFwiPlxuICA8ZGl2IGNsYXNzPVwiZnMtcm93LmdhcC1sZy53cmFwLmFsaWduLXN0YXJ0XCI+XG4gICAgPGRpdj5cbiAgICAgIDxoMj5cbiAgICAgICAgU2VydmVyXG4gICAgICA8L2gyPlxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgRGF0ZS9UaW1lXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIHt7IGRhc2hib2FyZC5zZXJ2ZXJUaW1lIHwgZnNEYXRlRm9ybWF0OiAnZGF0ZS10aW1lJyB9fVxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIFRpbWV6b25lXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIHt7IGRhc2hib2FyZC5zZXJ2ZXJUaW1lem9uZSB9fVxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIEhvc3RuYW1lXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIHt7IGRhc2hib2FyZC5zZXJ2ZXJIb3N0bmFtZSB9fVxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIERpcmVjdG9yeVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7eyBkYXNoYm9hcmQuYXBwRGlyZWN0b3J5IH19XG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8aDI+XG4gICAgICAgIFN5c3RlbVxuICAgICAgPC9oMj5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIE1vZGVcbiAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAge3sgZGFzaGJvYXJkLmFwcE1vZGUgfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICBOb3RpZmljYXRpb24gUmVjaXBpZW50c1xuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7eyBkYXNoYm9hcmQubm90aWZ5UmVjaXBpZW50cy5qb2luKCcsICcpIH19XG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8aDI+XG4gICAgICAgIERhdGFiYXNlXG4gICAgICA8L2gyPlxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgTmFtZVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7eyBkYXNoYm9hcmQuZGF0YWJhc2VOYW1lIH19XG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgRGF0ZS9UaW1lXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIHt7IGRhc2hib2FyZC5kYXRhYmFzZVRpbWUgfCBmc0RhdGVGb3JtYXQ6ICdkYXRlLXRpbWUnIH19XG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgVGltZXpvbmVcbiAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAge3sgZGFzaGJvYXJkLmRhdGFiYXNlVGltZXpvbmUgfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgPC9kaXY+XG4gICAgQGlmIChidWlsZCB8fCBkYXNoYm9hcmQudXBncmFkZXMubGVuZ3RoKSB7XG4gICAgICA8ZGl2PlxuICAgICAgICBAaWYgKGJ1aWxkKSB7XG4gICAgICAgICAgPGgyPlxuICAgICAgICAgICAgQnVpbGRcbiAgICAgICAgICA8L2gyPlxuICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgVmVyc2lvblxuICAgICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICAgIHt7IGJ1aWxkLnZlcnNpb24gfHwgJ1Vua25vd24nIH19XG4gICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICAgIERhdGVcbiAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICB7eyAoYnVpbGQuZGF0ZSB8IGZzRGF0ZUZvcm1hdDogJ2RhdGUtdGltZScpIHx8ICdVbmtub3duJyB9fVxuICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChkYXNoYm9hcmQudXBncmFkZXMubGVuZ3RoKSB7XG4gICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgICBQZW5kaW5nIFVwZ3JhZGVzXG4gICAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJhdHRlbnRpb25cIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICduZWVkcy1hdHRlbnRpb24nOiAhIWRhc2hib2FyZC51cGdyYWRlcy5sZW5ndGggfVwiPlxuICAgICAgICAgICAgICB7eyBkYXNoYm9hcmQudXBncmFkZXMubGVuZ3RoIH19XG4gICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImRhc2hib2FyZC51cGdyYWRlcy5qb2luKCdcXG4nKVwiXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwidG9vbHRpcC1wZW5kaW5nLXVwZ3JhZGVzXCI+XG4gICAgICAgICAgICAgICAgd2FybmluZ1xuICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2PlxuICAgICAgPGgyPlxuICAgICAgICBDcm9uXG4gICAgICA8L2gyPlxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgTGFzdCBSYW5cbiAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImF0dGVudGlvblwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnbmVlZHMtYXR0ZW50aW9uJzogZGFzaGJvYXJkLmNyb25SYW5BdHRlbnRpb24gfVwiPlxuICAgICAgICAgIEBpZiAoIWRhc2hib2FyZC5jcm9uUmFuKSB7XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgTmV2ZXJcbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChkYXNoYm9hcmQuY3JvblJhbikge1xuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIHt7IGRhc2hib2FyZC5jcm9uUmFuIHwgZnNEYXRlRm9ybWF0OiAnZGF0ZS10aW1lJyB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8bWF0LWljb24+XG4gICAgICAgICAgICB3YXJuaW5nXG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXY+XG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgIChjbGljayk9XCJ1cGdyYWRlQ2xpY2soKVwiPlxuICAgICAgICBSdW4gVXBncmFkZXNcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImluaXRDbGljaygpXCI+XG4gICAgICAgIEluaXQgU3lzdGVtXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIEBmb3IgKGFjdGlvbiBvZiBidXR0b25BY3Rpb25zOyB0cmFjayBhY3Rpb24pIHtcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgIChjbGljayk9XCJhY3Rpb25DbGljayhhY3Rpb24pXCI+XG4gICAgICAgICAge3sgYWN0aW9uLmxhYmVsIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChtZW51QWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgPGZzLW1lbnUgYnV0dG9uQ2xhc3M9XCJtYXQtc3Ryb2tlZC1idXR0b24gbWVudS1idXR0b25cIj5cbiAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgbWVudUFjdGlvbnM7IHRyYWNrIGFjdGlvbikge1xuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgIGZzLW1lbnUtaXRlbVxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxuICAgICAgICAgICAgICB7eyBhY3Rpb24ubGFiZWwgfX1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgfVxuICAgICAgICA8L2ZzLW1lbnU+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './setting-instructions.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvc2V0dGluZy1pbnN0cnVjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQ0FBa0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2V0dGluZy1pbnN0cnVjdGlvbnMuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA, MatDialogContent } from '@angular/material/dialog';
|
|
3
|
+
import { FsDialogModule } from '@firestitch/dialog';
|
|
4
|
+
import { FsMarkdownRendererComponent } from '@firestitch/markdown-editor';
|
|
5
|
+
import { CdkScrollable } from '@angular/cdk/scrolling';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@firestitch/dialog";
|
|
8
|
+
export class SettingInstructionsComponent {
|
|
9
|
+
_data = inject(MAT_DIALOG_DATA);
|
|
10
|
+
setting = this._data.setting;
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SettingInstructionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: SettingInstructionsComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: "<fs-dialog>\n <fs-dialog-title [close]=\"true\">\n {{ setting.label }}\n </fs-dialog-title>\n <mat-dialog-content>\n <fs-markdown-renderer [markdown]=\"setting.instructions\"></fs-markdown-renderer>\n </mat-dialog-content>\n</fs-dialog>\n", styles: ["fs-markdown-renderer{display:block;max-width:700px}:host ::ng-deep fs-markdown-renderer .markdown-renderer-container{overflow-x:auto;overflow-y:hidden}\n"], dependencies: [{ kind: "ngmodule", type: FsDialogModule }, { kind: "component", type: i1.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }, { kind: "component", type: i1.FsDialogTitleComponent, selector: "fs-dialog-title", inputs: ["close", "dockToggle", "back"] }, { kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: FsMarkdownRendererComponent, selector: "fs-markdown-renderer", inputs: ["config", "markdown"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SettingInstructionsComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
17
|
+
FsDialogModule,
|
|
18
|
+
CdkScrollable,
|
|
19
|
+
MatDialogContent,
|
|
20
|
+
FsMarkdownRendererComponent,
|
|
21
|
+
], template: "<fs-dialog>\n <fs-dialog-title [close]=\"true\">\n {{ setting.label }}\n </fs-dialog-title>\n <mat-dialog-content>\n <fs-markdown-renderer [markdown]=\"setting.instructions\"></fs-markdown-renderer>\n </mat-dialog-content>\n</fs-dialog>\n", styles: ["fs-markdown-renderer{display:block;max-width:700px}:host ::ng-deep fs-markdown-renderer .markdown-renderer-container{overflow-x:auto;overflow-y:hidden}\n"] }]
|
|
22
|
+
}] });
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZy1pbnN0cnVjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9jb21wb25lbnRzL3NldHRpbmctaW5zdHJ1Y3Rpb25zL3NldHRpbmctaW5zdHJ1Y3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9zZXR0aW5nLWluc3RydWN0aW9ucy9zZXR0aW5nLWluc3RydWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBZXZELE1BQU0sT0FBTyw0QkFBNEI7SUFDL0IsS0FBSyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUVqQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7dUdBSHpCLDRCQUE0QjsyRkFBNUIsNEJBQTRCLHdFQ3JCekMsMFBBUUEsa05ET0ksY0FBYywrVEFFZCxnQkFBZ0IseUdBQ2hCLDJCQUEyQjs7MkZBR2xCLDRCQUE0QjtrQkFaeEMsU0FBUztzQ0FHUyx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQiwyQkFBMkI7cUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQ29udGVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEZzRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZGlhbG9nJztcbmltcG9ydCB7IEZzTWFya2Rvd25SZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJ0BmaXJlc3RpdGNoL21hcmtkb3duLWVkaXRvcic7XG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9zZXR0aW5nLWluc3RydWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NldHRpbmctaW5zdHJ1Y3Rpb25zLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRnNEaWFsb2dNb2R1bGUsXG4gICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICBNYXREaWFsb2dDb250ZW50LFxuICAgIEZzTWFya2Rvd25SZW5kZXJlckNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ0luc3RydWN0aW9uc0NvbXBvbmVudCB7XG4gIHByaXZhdGUgX2RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcblxuICBwdWJsaWMgc2V0dGluZyA9IHRoaXMuX2RhdGEuc2V0dGluZztcbn1cbiIsIjxmcy1kaWFsb2c+XG4gIDxmcy1kaWFsb2ctdGl0bGUgW2Nsb3NlXT1cInRydWVcIj5cbiAgICB7eyBzZXR0aW5nLmxhYmVsIH19XG4gIDwvZnMtZGlhbG9nLXRpdGxlPlxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxmcy1tYXJrZG93bi1yZW5kZXJlciBbbWFya2Rvd25dPVwic2V0dGluZy5pbnN0cnVjdGlvbnNcIj48L2ZzLW1hcmtkb3duLXJlbmRlcmVyPlxuICA8L21hdC1kaWFsb2ctY29udGVudD5cbjwvZnMtZGlhbG9nPlxuIl19
|