ngx-material-entity 15.1.4 → 15.1.5

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.
@@ -0,0 +1,21 @@
1
+ import { BaseEntityType } from '../../public-api';
2
+ /**
3
+ * A multi select action that exports the data as a json file.
4
+ *
5
+ * @param selectedEntities - The selected entities to export.
6
+ */
7
+ export declare function exportAsJsonMultiAction<EntityType extends BaseEntityType<EntityType>>(selectedEntities: EntityType[]): void;
8
+ /**
9
+ * A multi select action that exports the data as a csv file.
10
+ * Object values get stringified.
11
+ *
12
+ * @param selectedEntities - The selected entities to export.
13
+ */
14
+ export declare function exportAsCsvMultiAction<EntityType extends BaseEntityType<EntityType>>(selectedEntities: EntityType[]): void;
15
+ /**
16
+ * A multi select action that exports the data as a xml file.
17
+ * Object values get stringified.
18
+ *
19
+ * @param selectedEntities - The selected entities to export.
20
+ */
21
+ export declare function exportAsXmlMultiAction<EntityType extends BaseEntityType<EntityType>>(selectedEntities: EntityType[]): void;
@@ -39,10 +39,12 @@ export declare class BaseDataInternal<EntityType extends BaseEntityType<EntityTy
39
39
  multiSelectActions: MultiSelectAction<EntityType>[];
40
40
  multiSelectLabel: string;
41
41
  displayLoadingSpinner: boolean;
42
+ allowJsonImport: boolean;
43
+ importActionData: Omit<MultiSelectAction<EntityType>, 'action' | 'requireConfirmDialog'>;
42
44
  EntityClass?: EntityClassNewable<EntityType>;
43
45
  edit?: (entity: EntityType) => unknown;
44
46
  create?: (entity: EntityType) => unknown;
45
- constructor(title: string, displayColumns: DisplayColumn<EntityType>[], EntityServiceClass: new (httpClient: HttpClient) => EntityService<EntityType>, searchLabel: string, createButtonLabel: string, defaultEdit: 'dialog' | 'page', searchString: (entity: EntityType) => string, allowCreate: () => boolean, allowRead: (entity: EntityType) => boolean, allowUpdate: (entity: EntityType) => boolean, allowDelete: (entity: EntityType) => boolean, multiSelectActions: MultiSelectAction<EntityType>[], multiSelectLabel: string, displayLoadingSpinner: boolean, EntityClass?: EntityClassNewable<EntityType>, edit?: (entity: EntityType) => unknown, create?: (entity: EntityType) => unknown);
47
+ constructor(title: string, displayColumns: DisplayColumn<EntityType>[], EntityServiceClass: new (httpClient: HttpClient) => EntityService<EntityType>, searchLabel: string, createButtonLabel: string, defaultEdit: 'dialog' | 'page', searchString: (entity: EntityType) => string, allowCreate: () => boolean, allowRead: (entity: EntityType) => boolean, allowUpdate: (entity: EntityType) => boolean, allowDelete: (entity: EntityType) => boolean, multiSelectActions: MultiSelectAction<EntityType>[], multiSelectLabel: string, displayLoadingSpinner: boolean, allowJsonImport: boolean, importActionData: Omit<MultiSelectAction<EntityType>, 'action' | 'requireConfirmDialog'>, EntityClass?: EntityClassNewable<EntityType>, edit?: (entity: EntityType) => unknown, create?: (entity: EntityType) => unknown);
46
48
  }
47
49
  /**
48
50
  * The Builder for the complete TableData. Sets default values and validates user input.
@@ -133,6 +133,17 @@ export interface BaseData<EntityType extends BaseEntityType<EntityType>> {
133
133
  * @default true
134
134
  */
135
135
  displayLoadingSpinner?: boolean;
136
+ /**
137
+ * Whether or not JSON imports are allowed.
138
+ * This adds an multi select action.
139
+ *
140
+ * @default false
141
+ */
142
+ allowJsonImport?: boolean;
143
+ /**
144
+ * Data to customize the json import action.
145
+ */
146
+ importActionData?: Omit<MultiSelectAction<EntityType>, 'action' | 'requireConfirmDialog'>;
136
147
  }
137
148
  /**
138
149
  * The data of the default create-dialog.
@@ -35,11 +35,14 @@ export declare class NgxMatEntityTableComponent<EntityType extends BaseEntityTyp
35
35
  dataSource: MatTableDataSource<EntityType>;
36
36
  selection: SelectionModel<EntityType>;
37
37
  SelectionUtilities: typeof SelectionUtilities;
38
+ importAction: Omit<MultiSelectAction<EntityType>, 'confirmationDialog'>;
38
39
  constructor(dialog: MatDialog, injector: Injector, router: Router);
39
40
  /**
40
41
  * Sets up all the configuration for the table and the EntityService.
41
42
  */
42
43
  ngOnInit(): void;
44
+ private startImportJson;
45
+ private importJson;
43
46
  /**
44
47
  * Edits an entity. This either calls the edit-Method provided by the user or uses a default edit-dialog.
45
48
  *
@@ -0,0 +1,15 @@
1
+ import * as js2xml from 'js2xmlparser';
2
+ /**
3
+ * Encapsulates functionality of the js2xml package.
4
+ */
5
+ export declare abstract class Js2XmlUtilities {
6
+ /**
7
+ * Returns a XML string representation of the specified object using the specified options.
8
+ *
9
+ * @param root - Name of the xml root element.
10
+ * @param value - The json value to convert. Will be a child of root.
11
+ * @param options - Additional options for the conversion.
12
+ * @returns The converted xml string.
13
+ */
14
+ static parse(root: string, value: unknown, options?: js2xml.IOptions): string;
15
+ }
@@ -1,4 +1,5 @@
1
- import * as JSZipType from 'jszip';
1
+ import JSZip from 'jszip';
2
+ export declare type Zip = JSZip;
2
3
  /**
3
4
  * Encapsulates JSZip functionality.
4
5
  */
@@ -8,5 +9,5 @@ export declare abstract class JSZipUtilities {
8
9
  *
9
10
  * @returns A new JSZip object.
10
11
  */
11
- static new(): JSZipType;
12
+ static new(): Zip;
12
13
  }
@@ -59,4 +59,11 @@ export declare abstract class LodashUtilities {
59
59
  * @returns Returns true if value is correctly classified, else false.
60
60
  */
61
61
  static isArray(value?: unknown): value is unknown[];
62
+ /**
63
+ * Checks if value is classified as an object that is not an array.
64
+ *
65
+ * @param value - The value to check.
66
+ * @returns Returns true if value is correctly classified, else false.
67
+ */
68
+ static isObject(value?: unknown): value is object;
62
69
  }
@@ -0,0 +1,65 @@
1
+ import { Js2XmlUtilities } from '../../encapsulation/js-2-xml.utilities';
2
+ import { LodashUtilities } from '../../encapsulation/lodash.utilities';
3
+ import { ReflectUtilities } from '../../encapsulation/reflect.utilities';
4
+ import { FileUtilities } from '../../utilities/file.utilities';
5
+ const CSV_SEPARATOR = ';';
6
+ /**
7
+ * A multi select action that exports the data as a json file.
8
+ *
9
+ * @param selectedEntities - The selected entities to export.
10
+ */
11
+ export function exportAsJsonMultiAction(selectedEntities) {
12
+ const blob = new Blob([JSON.stringify(selectedEntities, null, '\t')], { type: '.json' });
13
+ FileUtilities.downLoadBlob(blob, 'export.json');
14
+ }
15
+ /**
16
+ * A multi select action that exports the data as a csv file.
17
+ * Object values get stringified.
18
+ *
19
+ * @param selectedEntities - The selected entities to export.
20
+ */
21
+ export function exportAsCsvMultiAction(selectedEntities) {
22
+ const blob = new Blob([convertToCsv(selectedEntities, ReflectUtilities.ownKeys(selectedEntities[0]))], { type: '.csv' });
23
+ FileUtilities.downLoadBlob(blob, 'export.csv');
24
+ }
25
+ /**
26
+ * A multi select action that exports the data as a xml file.
27
+ * Object values get stringified.
28
+ *
29
+ * @param selectedEntities - The selected entities to export.
30
+ */
31
+ export function exportAsXmlMultiAction(selectedEntities) {
32
+ const xmlString = Js2XmlUtilities.parse('values', selectedEntities);
33
+ const blob = new Blob([xmlString], { type: '.xml' });
34
+ FileUtilities.downLoadBlob(blob, 'export.xml');
35
+ }
36
+ // eslint-disable-next-line jsdoc/require-jsdoc
37
+ function convertToCsv(array, headerList) {
38
+ const headerRow = headerList.join(CSV_SEPARATOR);
39
+ let result = headerRow + '\r\n';
40
+ for (const entity of array) {
41
+ result += getLineForEntity(headerList, entity) + '\r\n';
42
+ }
43
+ return result;
44
+ }
45
+ // eslint-disable-next-line jsdoc/require-jsdoc
46
+ function getLineForEntity(headerList, entity) {
47
+ let line = '';
48
+ for (const head of headerList) {
49
+ line = line += getLineForHeader(entity, head);
50
+ }
51
+ line.slice(0, line.length - 1);
52
+ return line;
53
+ }
54
+ // eslint-disable-next-line jsdoc/require-jsdoc
55
+ function getLineForHeader(entity, head) {
56
+ const value = entity[head];
57
+ if (LodashUtilities.isObject(value)) {
58
+ return `${JSON.stringify(value)}${CSV_SEPARATOR}`;
59
+ }
60
+ if (LodashUtilities.isArray(value) && LodashUtilities.isObject(value[0])) {
61
+ return `${value.map(v => JSON.stringify(v))}${CSV_SEPARATOR}`;
62
+ }
63
+ return `${entity[head]}${CSV_SEPARATOR}`;
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy90YWJsZS9kZWZhdWx0LmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0QsTUFBTSxhQUFhLEdBQVcsR0FBRyxDQUFDO0FBRWxDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQWdELGdCQUE4QjtJQUNqSCxNQUFNLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMvRixhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQWdELGdCQUE4QjtJQUNoSCxNQUFNLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMvSCxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQWdELGdCQUE4QjtJQUNoSCxNQUFNLFNBQVMsR0FBVyxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVFLE1BQU0sSUFBSSxHQUFTLElBQUksSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMzRCxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsK0NBQStDO0FBQy9DLFNBQVMsWUFBWSxDQUFnRCxLQUFtQixFQUFFLFVBQWdDO0lBQ3RILE1BQU0sU0FBUyxHQUFXLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekQsSUFBSSxNQUFNLEdBQVcsU0FBUyxHQUFHLE1BQU0sQ0FBQztJQUN4QyxLQUFLLE1BQU0sTUFBTSxJQUFJLEtBQUssRUFBRTtRQUN4QixNQUFNLElBQUksZ0JBQWdCLENBQWEsVUFBVSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQztLQUN2RTtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFHRCwrQ0FBK0M7QUFDL0MsU0FBUyxnQkFBZ0IsQ0FBZ0QsVUFBZ0MsRUFBRSxNQUFrQjtJQUN6SCxJQUFJLElBQUksR0FBVyxFQUFFLENBQUM7SUFDdEIsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLEVBQUU7UUFDM0IsSUFBSSxHQUFHLElBQUksSUFBSSxnQkFBZ0IsQ0FBYSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDN0Q7SUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9CLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCwrQ0FBK0M7QUFDL0MsU0FBUyxnQkFBZ0IsQ0FBZ0QsTUFBa0IsRUFBRSxJQUFzQjtJQUMvRyxNQUFNLEtBQUssR0FBWSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ2pDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLGFBQWEsRUFBRSxDQUFDO0tBQ3JEO0lBQ0QsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDdEUsT0FBTyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsYUFBYSxFQUFFLENBQUM7S0FDakU7SUFDRCxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLGFBQWEsRUFBRSxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKczJYbWxVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi9lbmNhcHN1bGF0aW9uL2pzLTIteG1sLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBMb2Rhc2hVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi9lbmNhcHN1bGF0aW9uL2xvZGFzaC51dGlsaXRpZXMnO1xuaW1wb3J0IHsgUmVmbGVjdFV0aWxpdGllcyB9IGZyb20gJy4uLy4uL2VuY2Fwc3VsYXRpb24vcmVmbGVjdC51dGlsaXRpZXMnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IEZpbGVVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZmlsZS51dGlsaXRpZXMnO1xuXG5jb25zdCBDU1ZfU0VQQVJBVE9SOiBzdHJpbmcgPSAnOyc7XG5cbi8qKlxuICogQSBtdWx0aSBzZWxlY3QgYWN0aW9uIHRoYXQgZXhwb3J0cyB0aGUgZGF0YSBhcyBhIGpzb24gZmlsZS5cbiAqXG4gKiBAcGFyYW0gc2VsZWN0ZWRFbnRpdGllcyAtIFRoZSBzZWxlY3RlZCBlbnRpdGllcyB0byBleHBvcnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRBc0pzb25NdWx0aUFjdGlvbjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+KHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSk6IHZvaWQge1xuICAgIGNvbnN0IGJsb2I6IEJsb2IgPSBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoc2VsZWN0ZWRFbnRpdGllcywgbnVsbCwgJ1xcdCcpXSwgeyB0eXBlOiAnLmpzb24nIH0pO1xuICAgIEZpbGVVdGlsaXRpZXMuZG93bkxvYWRCbG9iKGJsb2IsICdleHBvcnQuanNvbicpO1xufVxuXG4vKipcbiAqIEEgbXVsdGkgc2VsZWN0IGFjdGlvbiB0aGF0IGV4cG9ydHMgdGhlIGRhdGEgYXMgYSBjc3YgZmlsZS5cbiAqIE9iamVjdCB2YWx1ZXMgZ2V0IHN0cmluZ2lmaWVkLlxuICpcbiAqIEBwYXJhbSBzZWxlY3RlZEVudGl0aWVzIC0gVGhlIHNlbGVjdGVkIGVudGl0aWVzIHRvIGV4cG9ydC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cG9ydEFzQ3N2TXVsdGlBY3Rpb248RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PihzZWxlY3RlZEVudGl0aWVzOiBFbnRpdHlUeXBlW10pOiB2b2lkIHtcbiAgICBjb25zdCBibG9iOiBCbG9iID0gbmV3IEJsb2IoW2NvbnZlcnRUb0NzdihzZWxlY3RlZEVudGl0aWVzLCBSZWZsZWN0VXRpbGl0aWVzLm93bktleXMoc2VsZWN0ZWRFbnRpdGllc1swXSkpXSwgeyB0eXBlOiAnLmNzdicgfSk7XG4gICAgRmlsZVV0aWxpdGllcy5kb3duTG9hZEJsb2IoYmxvYiwgJ2V4cG9ydC5jc3YnKTtcbn1cblxuLyoqXG4gKiBBIG11bHRpIHNlbGVjdCBhY3Rpb24gdGhhdCBleHBvcnRzIHRoZSBkYXRhIGFzIGEgeG1sIGZpbGUuXG4gKiBPYmplY3QgdmFsdWVzIGdldCBzdHJpbmdpZmllZC5cbiAqXG4gKiBAcGFyYW0gc2VsZWN0ZWRFbnRpdGllcyAtIFRoZSBzZWxlY3RlZCBlbnRpdGllcyB0byBleHBvcnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBvcnRBc1htbE11bHRpQWN0aW9uPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4oc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKTogdm9pZCB7XG4gICAgY29uc3QgeG1sU3RyaW5nOiBzdHJpbmcgPSBKczJYbWxVdGlsaXRpZXMucGFyc2UoJ3ZhbHVlcycsIHNlbGVjdGVkRW50aXRpZXMpO1xuICAgIGNvbnN0IGJsb2I6IEJsb2IgPSBuZXcgQmxvYihbeG1sU3RyaW5nXSwgeyB0eXBlOiAnLnhtbCcgfSk7XG4gICAgRmlsZVV0aWxpdGllcy5kb3duTG9hZEJsb2IoYmxvYiwgJ2V4cG9ydC54bWwnKTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIGNvbnZlcnRUb0NzdjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+KGFycmF5OiBFbnRpdHlUeXBlW10sIGhlYWRlckxpc3Q6IChrZXlvZiBFbnRpdHlUeXBlKVtdKTogc3RyaW5nIHtcbiAgICBjb25zdCBoZWFkZXJSb3c6IHN0cmluZyA9IGhlYWRlckxpc3Quam9pbihDU1ZfU0VQQVJBVE9SKTtcbiAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSBoZWFkZXJSb3cgKyAnXFxyXFxuJztcbiAgICBmb3IgKGNvbnN0IGVudGl0eSBvZiBhcnJheSkge1xuICAgICAgICByZXN1bHQgKz0gZ2V0TGluZUZvckVudGl0eTxFbnRpdHlUeXBlPihoZWFkZXJMaXN0LCBlbnRpdHkpICsgJ1xcclxcbic7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbmZ1bmN0aW9uIGdldExpbmVGb3JFbnRpdHk8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PihoZWFkZXJMaXN0OiAoa2V5b2YgRW50aXR5VHlwZSlbXSwgZW50aXR5OiBFbnRpdHlUeXBlKTogc3RyaW5nIHtcbiAgICBsZXQgbGluZTogc3RyaW5nID0gJyc7XG4gICAgZm9yIChjb25zdCBoZWFkIG9mIGhlYWRlckxpc3QpIHtcbiAgICAgICAgbGluZSA9IGxpbmUgKz0gZ2V0TGluZUZvckhlYWRlcjxFbnRpdHlUeXBlPihlbnRpdHksIGhlYWQpO1xuICAgIH1cbiAgICBsaW5lLnNsaWNlKDAsIGxpbmUubGVuZ3RoIC0gMSk7XG4gICAgcmV0dXJuIGxpbmU7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG5mdW5jdGlvbiBnZXRMaW5lRm9ySGVhZGVyPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4oZW50aXR5OiBFbnRpdHlUeXBlLCBoZWFkOiBrZXlvZiBFbnRpdHlUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCB2YWx1ZTogdW5rbm93biA9IGVudGl0eVtoZWFkXTtcbiAgICBpZiAoTG9kYXNoVXRpbGl0aWVzLmlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gYCR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfSR7Q1NWX1NFUEFSQVRPUn1gO1xuICAgIH1cbiAgICBpZiAoTG9kYXNoVXRpbGl0aWVzLmlzQXJyYXkodmFsdWUpICYmIExvZGFzaFV0aWxpdGllcy5pc09iamVjdCh2YWx1ZVswXSkpIHtcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlLm1hcCh2ID0+IEpTT04uc3RyaW5naWZ5KHYpKX0ke0NTVl9TRVBBUkFUT1J9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2VudGl0eVtoZWFkXX0ke0NTVl9TRVBBUkFUT1J9YDtcbn0iXX0=
@@ -1,4 +1,5 @@
1
1
  import { BaseBuilder } from '../../classes/base.builder';
2
+ import { ConfirmDialogDataBuilder } from '../confirm-dialog/confirm-dialog-data.builder';
2
3
  import { CreateDialogDataBuilder } from './create-dialog/create-dialog-data.builder';
3
4
  import { EditDialogDataBuilder } from './edit-dialog/edit-data.builder';
4
5
  /**
@@ -20,14 +21,19 @@ export class BaseDataBuilder extends BaseBuilder {
20
21
  }
21
22
  // eslint-disable-next-line jsdoc/require-jsdoc
22
23
  generateBaseData(data) {
23
- return new BaseDataInternal(data.title, data.displayColumns, data.EntityServiceClass, data.searchLabel ?? 'Search', data.createButtonLabel ?? 'Create', data.defaultEdit ?? 'dialog', data.searchString ?? defaultSearchFunction, data.allowCreate ?? (() => true), data.allowRead ?? (() => true), data.allowUpdate ?? (() => true), data.allowDelete ?? (() => true), data.multiSelectActions ?? [], data.multiSelectLabel ?? 'Actions', data.displayLoadingSpinner ?? true, data.EntityClass, data.edit, data.create);
24
+ return new BaseDataInternal(data.title, data.displayColumns, data.EntityServiceClass, data.searchLabel ?? 'Search', data.createButtonLabel ?? 'Create', data.defaultEdit ?? 'dialog', data.searchString ?? defaultSearchFunction, data.allowCreate ?? (() => true), data.allowRead ?? (() => true), data.allowUpdate ?? (() => true), data.allowDelete ?? (() => true), data.multiSelectActions ?? [], data.multiSelectLabel ?? 'Actions', data.displayLoadingSpinner ?? true, data.allowJsonImport ?? false, data.importActionData ?? {
25
+ displayName: 'Import (JSON)',
26
+ confirmDialogData: new ConfirmDialogDataBuilder()
27
+ .withDefault('text', ['Do you really want to import entities from the provided file?'])
28
+ .getResult()
29
+ }, data.EntityClass, data.edit, data.create);
24
30
  }
25
31
  }
26
32
  /**
27
33
  * The internal TableData. Requires all default values the user can leave out.
28
34
  */
29
35
  export class BaseDataInternal {
30
- constructor(title, displayColumns, EntityServiceClass, searchLabel, createButtonLabel, defaultEdit, searchString, allowCreate, allowRead, allowUpdate, allowDelete, multiSelectActions, multiSelectLabel, displayLoadingSpinner, EntityClass, edit, create) {
36
+ constructor(title, displayColumns, EntityServiceClass, searchLabel, createButtonLabel, defaultEdit, searchString, allowCreate, allowRead, allowUpdate, allowDelete, multiSelectActions, multiSelectLabel, displayLoadingSpinner, allowJsonImport, importActionData, EntityClass, edit, create) {
31
37
  this.title = title;
32
38
  this.displayColumns = displayColumns;
33
39
  this.EntityServiceClass = EntityServiceClass;
@@ -43,6 +49,8 @@ export class BaseDataInternal {
43
49
  this.multiSelectActions = multiSelectActions;
44
50
  this.multiSelectLabel = multiSelectLabel;
45
51
  this.displayLoadingSpinner = displayLoadingSpinner;
52
+ this.allowJsonImport = allowJsonImport;
53
+ this.importActionData = importActionData;
46
54
  this.edit = edit;
47
55
  this.create = create;
48
56
  }
@@ -108,4 +116,4 @@ function defaultSearchFunction(entity) {
108
116
  .toLowerCase();
109
117
  return searchString;
110
118
  }
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy90YWJsZS90YWJsZS1kYXRhLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBNEIsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRyxPQUFPLEVBQW9CLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHMUY7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBUTFCLFlBQ0ksUUFBc0MsRUFDdEMsZ0JBQTBDLEVBQzFDLGNBQTRDO1FBRTVDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQztJQUNuQyxDQUFDO0NBQ0o7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUNULFNBQVEsV0FBK0Q7SUFFdkUsWUFBWSxJQUEwQjtRQUNsQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELCtDQUErQztJQUNyQyxnQkFBZ0IsQ0FBQyxJQUEwQjtRQUNqRCxPQUFPLElBQUksZ0JBQWdCLENBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLGtCQUFrQixFQUN2QixJQUFJLENBQUMsV0FBVyxJQUFJLFFBQVEsRUFDNUIsSUFBSSxDQUFDLGlCQUFpQixJQUFJLFFBQVEsRUFDbEMsSUFBSSxDQUFDLFdBQVcsSUFBSSxRQUFRLEVBQzVCLElBQUksQ0FBQyxZQUFZLElBQUkscUJBQXFCLEVBQzFDLElBQUksQ0FBQyxXQUFXLElBQUks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LEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUNqRDtlQUNFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO2VBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLFFBQVE7ZUFDckMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUNuQjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQ1g7aUlBQ2lILENBQ3BILENBQUM7U0FDTDtJQUNMLENBQUM7Q0FDSjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FBZ0QsTUFBa0I7SUFDNUYsTUFBTSxZQUFZLEdBQVcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDM0MsTUFBTSxDQUFDLENBQUMsV0FBbUIsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUN6QyxPQUFPLEdBQUcsV0FBVyxHQUFJLE1BQWtDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUN4RSxDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ0wsV0FBVyxFQUFFLENBQUM7SUFDbkIsT0FBTyxZQUFZLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBCYXNlQnVpbGRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvYmFzZS5idWlsZGVyJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlLCBFbnRpdHlDbGFzc05ld2FibGUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50aXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3JlYXRlRGlhbG9nRGF0YUJ1aWxkZXIsIENyZWF0ZURpYWxvZ0RhdGFJbnRlcm5hbCB9IGZyb20gJy4vY3JlYXRlLWRpYWxvZy9jcmVhdGUtZGlhbG9nLWRhdGEuYnVpbGRlcic7XG5pbXBvcnQgeyBFZGl0RGF0YUludGVybmFsLCBFZGl0RGlhbG9nRGF0YUJ1aWxkZXIgfSBmcm9tICcuL2VkaXQtZGlhbG9nL2VkaXQtZGF0YS5idWlsZGVyJztcbmltcG9ydCB7IEJhc2VEYXRhLCBEaXNwbGF5Q29sdW1uLCBNdWx0aVNlbGVjdEFjdGlvbiwgVGFibGVEYXRhIH0gZnJvbSAnLi90YWJsZS1kYXRhJztcblxuLyoqXG4gKiBUaGUgaW50ZXJuYWwgVGFibGVEYXRhLiBSZXF1aXJlcyBhbGwgZGVmYXVsdCB2YWx1ZXMgdGhlIHVzZXIgY2FuIGxlYXZlIG91dC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRhYmxlRGF0YUludGVybmFsPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gaW1wbGVtZW50cyBUYWJsZURhdGE8RW50aXR5VHlwZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgYmFzZURhdGE6IEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBjcmVhdGVEaWFsb2dEYXRhOiBDcmVhdGVEaWFsb2dEYXRhSW50ZXJuYWw7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBlZGl0RGF0YTogRWRpdERhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBiYXNlRGF0YTogQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPixcbiAgICAgICAgY3JlYXRlRGlhbG9nRGF0YTogQ3JlYXRlRGlhbG9nRGF0YUludGVybmFsLFxuICAgICAgICBlZGl0RGlhbG9nRGF0YTogRWRpdERhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPlxuICAgICkge1xuICAgICAgICB0aGlzLmJhc2VEYXRhID0gYmFzZURhdGE7XG4gICAgICAgIHRoaXMuY3JlYXRlRGlhbG9nRGF0YSA9IGNyZWF0ZURpYWxvZ0RhdGE7XG4gICAgICAgIHRoaXMuZWRpdERhdGEgPSBlZGl0RGlhbG9nRGF0YTtcbiAgICB9XG59XG5cbi8qKlxuICogVGhlIEJ1aWxkZXIgZm9yIHRoZSB0YWJsZSBCYXNlRGF0YS4gU2V0cyBkZWZhdWx0IHZhbHVlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VEYXRhQnVpbGRlcjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBCYXNlQnVpbGRlcjxCYXNlRGF0YUludGVybmFsPEVudGl0eVR5cGU+LCBCYXNlRGF0YTxFbnRpdHlUeXBlPj4ge1xuXG4gICAgY29uc3RydWN0b3IoZGF0YTogQmFzZURhdGE8RW50aXR5VHlwZT4pIHtcbiAgICAgICAgc3VwZXIoZGF0YSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBwcm90ZWN0ZWQgZ2VuZXJhdGVCYXNlRGF0YShkYXRhOiBCYXNlRGF0YTxFbnRpdHlUeXBlPik6IEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4ge1xuICAgICAgICByZXR1cm4gbmV3IEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4oXG4gICAgICAgICAgICBkYXRhLnRpdGxlLFxuICAgICAgICAgICAgZGF0YS5kaXNwbGF5Q29sdW1ucyxcbiAgICAgICAgICAgIGRhdGEuRW50aXR5U2VydmljZUNsYXNzLFxuICAgICAgICAgICAgZGF0YS5zZWFyY2hMYWJlbCA/PyAnU2VhcmNoJyxcbiAgICAgICAgICAgIGRhdGEuY3JlYXRlQnV0dG9uTGFiZWwgPz8gJ0NyZWF0ZScsXG4gICAgICAgICAgICBkYXRhLmRlZmF1bHRFZGl0ID8/ICdkaWFsb2cnLFxuICAgICAgICAgICAgZGF0YS5zZWFyY2hTdHJpbmcgPz8gZGVmYXVsdFNlYXJjaEZ1bmN0aW9uLFxuICAgICAgICAgICAgZGF0YS5hbGxvd0NyZWF0ZSA/PyAoKCkgPT4gdHJ1ZSksXG4gICAgICAgICAgICBkYXRhLmFsbG93UmVhZCA/PyAoKCkgPT4gdHJ1ZSksXG4gICAgICAgICAgICBkYXRhLmFsbG93VXBkYXRlID8/ICgoKSA9PiB0cnVlKSxcbiAgICAgICAgICAgIGRhdGEuYWxsb3dEZWxldGUgPz8gKCgpID0+IHRydWUpLFxuICAgICAgICAgICAgZGF0YS5tdWx0aVNlbGVjdEFjdGlvbnMgPz8gW10sXG4gICAgICAgICAgICBkYXRhLm11bHRpU2VsZWN0TGFiZWwgPz8gJ0FjdGlvbnMnLFxuICAgICAgICAgICAgZGF0YS5kaXNwbGF5TG9hZGluZ1NwaW5uZXIgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGRhdGEuRW50aXR5Q2xhc3MsXG4gICAgICAgICAgICBkYXRhLmVkaXQsXG4gICAgICAgICAgICBkYXRhLmNyZWF0ZVxuICAgICAgICApO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUaGUgaW50ZXJuYWwgVGFibGVEYXRhLiBSZXF1aXJlcyBhbGwgZGVmYXVsdCB2YWx1ZXMgdGhlIHVzZXIgY2FuIGxlYXZlIG91dC5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiBpbXBsZW1lbnRzIEJhc2VEYXRhPEVudGl0eVR5cGU+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBkaXNwbGF5Q29sdW1uczogRGlzcGxheUNvbHVtbjxFbnRpdHlUeXBlPltdO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgRW50aXR5U2VydmljZUNsYXNzOiBuZXcgKGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpID0+IEVudGl0eVNlcnZpY2U8RW50aXR5VHlwZT47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBzZWFyY2hMYWJlbDogc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgY3JlYXRlQnV0dG9uTGFiZWw6IHN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGRlZmF1bHRFZGl0OiAnZGlhbG9nJyB8ICdwYWdlJztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHNlYXJjaFN0cmluZzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgYWxsb3dDcmVhdGU6ICgpID0+IGJvb2xlYW47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBhbGxvd1JlYWQ6IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IGJvb2xlYW47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBhbGxvd1VwZGF0ZTogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gYm9vbGVhbjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGFsbG93RGVsZXRlOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgbXVsdGlTZWxlY3RBY3Rpb25zOiBNdWx0aVNlbGVjdEFjdGlvbjxFbnRpdHlUeXBlPltdO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgbXVsdGlTZWxlY3RMYWJlbDogc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZGlzcGxheUxvYWRpbmdTcGlubmVyOiBib29sZWFuO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBFbnRpdHlDbGFzcz86IEVudGl0eUNsYXNzTmV3YWJsZTxFbnRpdHlUeXBlPjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGVkaXQ/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiB1bmtub3duO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgY3JlYXRlPzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gdW5rbm93bjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICB0aXRsZTogc3RyaW5nLFxuICAgICAgICBkaXNwbGF5Q29sdW1uczogRGlzcGxheUNvbHVtbjxFbnRpdHlUeXBlPltdLFxuICAgICAgICBFbnRpdHlTZXJ2aWNlQ2xhc3M6IG5ldyAoaHR0cENsaWVudDogSHR0cENsaWVudCkgPT4gRW50aXR5U2VydmljZTxFbnRpdHlUeXBlPixcbiAgICAgICAgc2VhcmNoTGFiZWw6IHN0cmluZyxcbiAgICAgICAgY3JlYXRlQnV0dG9uTGFiZWw6IHN0cmluZyxcbiAgICAgICAgZGVmYXVsdEVkaXQ6ICdkaWFsb2cnIHwgJ3BhZ2UnLFxuICAgICAgICBzZWFyY2hTdHJpbmc6IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHN0cmluZyxcbiAgICAgICAgYWxsb3dDcmVhdGU6ICgpID0+IGJvb2xlYW4sXG4gICAgICAgIGFsbG93UmVhZDogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gYm9vbGVhbixcbiAgICAgICAgYWxsb3dVcGRhdGU6IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IGJvb2xlYW4sXG4gICAgICAgIGFsbG93RGVsZXRlOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuLFxuICAgICAgICBtdWx0aVNlbGVjdEFjdGlvbnM6IE11bHRpU2VsZWN0QWN0aW9uPEVudGl0eVR5cGU+W10sXG4gICAgICAgIG11bHRpU2VsZWN0TGFiZWw6IHN0cmluZyxcbiAgICAgICAgZGlzcGxheUxvYWRpbmdTcGlubmVyOiBib29sZWFuLFxuICAgICAgICBFbnRpdHlDbGFzcz86IEVudGl0eUNsYXNzTmV3YWJsZTxFbnRpdHlUeXBlPixcbiAgICAgICAgZWRpdD86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHVua25vd24sXG4gICAgICAgIGNyZWF0ZT86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHVua25vd25cbiAgICApIHtcbiAgICAgICAgdGhpcy50aXRsZSA9IHRpdGxlO1xuICAgICAgICB0aGlzLmRpc3BsYXlDb2x1bW5zID0gZGlzcGxheUNvbHVtbnM7XG4gICAgICAgIHRoaXMuRW50aXR5U2VydmljZUNsYXNzID0gRW50aXR5U2VydmljZUNsYXNzO1xuICAgICAgICB0aGlzLkVudGl0eUNsYXNzID0gRW50aXR5Q2xhc3M7XG4gICAgICAgIHRoaXMuc2VhcmNoTGFiZWwgPSBzZWFyY2hMYWJlbDtcbiAgICAgICAgdGhpcy5jcmVhdGVCdXR0b25MYWJlbCA9IGNyZWF0ZUJ1dHRvbkxhYmVsO1xuICAgICAgICB0aGlzLmRlZmF1bHRFZGl0ID0gZGVmYXVsdEVkaXQ7XG4gICAgICAgIHRoaXMuc2VhcmNoU3RyaW5nID0gc2VhcmNoU3RyaW5nO1xuICAgICAgICB0aGlzLmFsbG93Q3JlYXRlID0gYWxsb3dDcmVhdGU7XG4gICAgICAgIHRoaXMuYWxsb3dSZWFkID0gYWxsb3dSZWFkO1xuICAgICAgICB0aGlzLmFsbG93VXBkYXRlID0gYWxsb3dVcGRhdGU7XG4gICAgICAgIHRoaXMuYWxsb3dEZWxldGUgPSBhbGxvd0RlbGV0ZTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdEFjdGlvbnMgPSBtdWx0aVNlbGVjdEFjdGlvbnM7XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RMYWJlbCA9IG11bHRpU2VsZWN0TGFiZWw7XG4gICAgICAgIHRoaXMuZGlzcGxheUxvYWRpbmdTcGlubmVyID0gZGlzcGxheUxvYWRpbmdTcGlubmVyO1xuICAgICAgICB0aGlzLmVkaXQgPSBlZGl0O1xuICAgICAgICB0aGlzLmNyZWF0ZSA9IGNyZWF0ZTtcbiAgICB9XG59XG5cbi8qKlxuICogVGhlIEJ1aWxkZXIgZm9yIHRoZSBjb21wbGV0ZSBUYWJsZURhdGEuIFNldHMgZGVmYXVsdCB2YWx1ZXMgYW5kIHZhbGlkYXRlcyB1c2VyIGlucHV0LlxuICovXG5leHBvcnQgY2xhc3MgVGFibGVEYXRhQnVpbGRlcjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBCYXNlQnVpbGRlcjxUYWJsZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiwgVGFibGVEYXRhPEVudGl0eVR5cGU+PiB7XG5cbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBUYWJsZURhdGE8RW50aXR5VHlwZT4pIHtcbiAgICAgICAgc3VwZXIoZGF0YSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBwcm90ZWN0ZWQgZ2VuZXJhdGVCYXNlRGF0YShkYXRhOiBUYWJsZURhdGE8RW50aXR5VHlwZT4pOiBUYWJsZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiB7XG4gICAgICAgIGNvbnN0IGNyZWF0ZURpYWxvZ0RhdGE6IENyZWF0ZURpYWxvZ0RhdGFJbnRlcm5hbCA9IG5ldyBDcmVhdGVEaWFsb2dEYXRhQnVpbGRlcihkYXRhLmNyZWF0ZURpYWxvZ0RhdGEpLmdldFJlc3VsdCgpO1xuICAgICAgICBjb25zdCBlZGl0RGlhbG9nRGF0YTogRWRpdERhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiA9IG5ldyBFZGl0RGlhbG9nRGF0YUJ1aWxkZXIoZGF0YS5lZGl0RGF0YSkuZ2V0UmVzdWx0KCk7XG4gICAgICAgIGNvbnN0IGJhc2VEYXRhOiBCYXNlRGF0YUludGVybmFsPEVudGl0eVR5cGU+ID0gbmV3IEJhc2VEYXRhQnVpbGRlcihkYXRhLmJhc2VEYXRhKS5nZXRSZXN1bHQoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPihcbiAgICAgICAgICAgIGJhc2VEYXRhLFxuICAgICAgICAgICAgY3JlYXRlRGlhbG9nRGF0YSxcbiAgICAgICAgICAgIGVkaXREaWFsb2dEYXRhXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGVJbnB1dChkYXRhOiBUYWJsZURhdGE8RW50aXR5VHlwZT4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGRhdGEuYmFzZURhdGEubXVsdGlTZWxlY3RBY3Rpb25zPy5sZW5ndGggJiYgZGF0YS5iYXNlRGF0YS5kaXNwbGF5Q29sdW1ucy5maW5kKGRwID0+IGRwLmRpc3BsYXlOYW1lID09PSAnc2VsZWN0JykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgVGhlIG5hbWUgXCJzZWxlY3RcIiBmb3IgYSBkaXNwbGF5IGNvbHVtbiBpcyByZXNlcnZlZCBmb3IgdGhlIG11bHRpLXNlbGVjdCBhY3Rpb24gZnVuY3Rpb25hbGl0eS5cbiAgICAgICAgICAgICAgICBQbGVhc2UgY2hvb3NlIGEgZGlmZmVyZW50IG5hbWUuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgZGF0YS5iYXNlRGF0YS5hbGxvd0NyZWF0ZSAhPT0gKCgpID0+IGZhbHNlKVxuICAgICAgICAgICAgICAgIHx8IGRhdGEuYmFzZURhdGEuYWxsb3dSZWFkICE9PSAoKCkgPT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgfHwgZGF0YS5iYXNlRGF0YS5hbGxvd1VwZGF0ZSAhPT0gKCgpID0+IGZhbHNlKVxuICAgICAgICAgICAgICAgIHx8IGRhdGEuYmFzZURhdGEuYWxsb3dEZWxldGUgIT09ICgoKSA9PiBmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICYmICFkYXRhLmJhc2VEYXRhLkVudGl0eUNsYXNzXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcbiAgICAgICAgICAgICAgICBNaXNzaW5nIHJlcXVpcmVkIElucHV0IGRhdGEgXCJFbnRpdHlDbGFzc1wiLlxuICAgICAgICAgICAgICAgIFlvdSBjYW4gb25seSBvbWl0IHRoaXMgdmFsdWUgaWYgeW91IGNhbiBuZWl0aGVyIGNyZWF0ZSBvciB1cGRhdGUgZW50aXRpZXMuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5iYXNlRGF0YS5hbGxvd0NyZWF0ZSAhPT0gKCgpID0+IGZhbHNlKSAmJiAhZGF0YS5iYXNlRGF0YS5jcmVhdGUgJiYgIWRhdGEuY3JlYXRlRGlhbG9nRGF0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBNaXNzaW5nIHJlcXVpcmVkIElucHV0IGRhdGEgXCJjcmVhdGVEaWFsb2dEYXRhXCIuXG4gICAgICAgICAgICAgICAgWW91IGNhbiBvbmx5IG9taXQgdGhpcyB2YWx1ZSB3aGVuIGNyZWF0aW9uIGlzIGRpc2FsbG93ZWQgb3IgZG9uZSB3aXRoIGEgY3VzdG9tIGNyZWF0ZSBtZXRob2QuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgZGF0YS5iYXNlRGF0YS5hbGxvd1JlYWQgIT09ICgoKSA9PiBmYWxzZSlcbiAgICAgICAgICAgICAgICB8fCBkYXRhLmJhc2VEYXRhLmFsbG93VXBkYXRlICE9PSAoKCkgPT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgfHwgZGF0YS5iYXNlRGF0YS5hbGxvd0RlbGV0ZSAhPT0gKCgpID0+IGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgJiYgIWRhdGEuYmFzZURhdGEuZWRpdFxuICAgICAgICAgICAgJiYgZGF0YS5iYXNlRGF0YS5kZWZhdWx0RWRpdCA9PSAnZGlhbG9nJ1xuICAgICAgICAgICAgJiYgIWRhdGEuZWRpdERhdGFcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYE1pc3NpbmcgcmVxdWlyZWQgSW5wdXQgZGF0YSBcImVkaXREaWFsb2dEYXRhXCIuXG4gICAgICAgICAgICAgICAgWW91IGNhbiBvbmx5IG9taXQgdGhpcyB2YWx1ZSB3aGVuIHZpZXdpbmcsIGVkaXRpbmcgYW5kIGRlbGV0aW5nIGlzIGRpc2FsbG93ZWQgb3IgZG9uZSB3aXRoIGEgY3VzdG9tIGVkaXQgbWV0aG9kLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgc2VhcmNoIGZ1bmN0aW9uIHRha2VuIGZyb20gZ29vZ2xlcyBtYXQgdGFibGUuXG4gKiBUaGlzIHdpbGwgYmUgdXNlZCBpZiBubyBjdXN0b20gc2VhcmNoIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGJ5IHRoZSBjb25maWd1cmF0aW9uLlxuICpcbiAqIEl0IGdlbmVyYXRlcyBhIHN0cmluZyBmcm9tIGFuIGVudGl0eSB3aGljaCBpcyB0aGVuIHVzZWQgdG8gY29tcGFyZSBpdCB0byB0aGUgc2VhcmNoIGlucHV0LlxuICpcbiAqIEBwYXJhbSBlbnRpdHkgLSBBbiBlbnRpdHkgdGhhdCBpcyBpbiB0aGUgc2VhcmNoLlxuICogQHJldHVybnMgVGhlIGdlbmVyYXRlZCBzdHJpbmcgb2YgdGhlIGdpdmVuIGVudGl0eSB1c2VkIGZvciBjb21wYXJpc29uIHdpdGggdGhlIHNlYXJjaCBpbnB1dC5cbiAqL1xuZnVuY3Rpb24gZGVmYXVsdFNlYXJjaEZ1bmN0aW9uPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4oZW50aXR5OiBFbnRpdHlUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWFyY2hTdHJpbmc6IHN0cmluZyA9IE9iamVjdC5rZXlzKGVudGl0eSlcbiAgICAgICAgLnJlZHVjZSgoY3VycmVudFRlcm06IHN0cmluZywga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgJHtjdXJyZW50VGVybX0keyhlbnRpdHkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tleV194pesYDtcbiAgICAgICAgfSwgJycpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBzZWFyY2hTdHJpbmc7XG59Il19
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy90YWJsZS90YWJsZS1kYXRhLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBNEIsTUFBTSw0Q0FBNEMsQ0FBQztBQUMvRyxPQUFPLEVBQW9CLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHMUY7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBUTFCLFlBQ0ksUUFBc0MsRUFDdEMsZ0JBQTBDLEVBQzFDLGNBQTRDO1FBRTVDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQztJQUNuQyxDQUFDO0NBQ0o7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUNULFNBQVEsV0FBK0Q7SUFFdkUsWUFBWSxJQUEwQjtRQUNsQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELCtDQUErQztJQUNyQyxnQkFBZ0IsQ0FBQyxJQUEwQjtRQUNqRCxPQUFPLElBQUksZ0JBQWdCLENBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLGtCQUFrQixFQUN2QixJQUFJLENBQUMsV0FBVyxJQUFJLFFBQVEsRUFDNUIsSUFBSSxDQUFDLGlCQUFpQixJQUFJLFFBQVEsRUFDbEMsSUFBSSxDQUFDLFdBQVcsSUFBSSxRQUFRLEVBQzVCLElBQUksQ0FB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S0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDaEcsTUFBTSxJQUFJLEtBQUssQ0FDWDs4R0FDOEYsQ0FDakcsQ0FBQztTQUNMO1FBQ0QsSUFDSSxDQUNJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO2VBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO2VBQzNDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQ2pEO2VBQ0UsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUk7ZUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksUUFBUTtlQUNyQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQ25CO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FDWDtpSUFDaUgsQ0FDcEgsQ0FBQztTQUNMO0lBQ0wsQ0FBQztDQUNKO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHFCQUFxQixDQUFnRCxNQUFrQjtJQUM1RixNQUFNLFlBQVksR0FBVyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUMzQyxNQUFNLENBQUMsQ0FBQyxXQUFtQixFQUFFLEdBQVcsRUFBRSxFQUFFO1FBQ3pDLE9BQU8sR0FBRyxXQUFXLEdBQUksTUFBa0MsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ3hFLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDTCxXQUFXLEVBQUUsQ0FBQztJQUNuQixPQUFPLFlBQVksQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJhc2VCdWlsZGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9iYXNlLmJ1aWxkZXInO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUsIEVudGl0eUNsYXNzTmV3YWJsZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IEVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbnRpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nRGF0YUJ1aWxkZXIgfSBmcm9tICcuLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhLmJ1aWxkZXInO1xuaW1wb3J0IHsgQ3JlYXRlRGlhbG9nRGF0YUJ1aWxkZXIsIENyZWF0ZURpYWxvZ0RhdGFJbnRlcm5hbCB9IGZyb20gJy4vY3JlYXRlLWRpYWxvZy9jcmVhdGUtZGlhbG9nLWRhdGEuYnVpbGRlcic7XG5pbXBvcnQgeyBFZGl0RGF0YUludGVybmFsLCBFZGl0RGlhbG9nRGF0YUJ1aWxkZXIgfSBmcm9tICcuL2VkaXQtZGlhbG9nL2VkaXQtZGF0YS5idWlsZGVyJztcbmltcG9ydCB7IEJhc2VEYXRhLCBEaXNwbGF5Q29sdW1uLCBNdWx0aVNlbGVjdEFjdGlvbiwgVGFibGVEYXRhIH0gZnJvbSAnLi90YWJsZS1kYXRhJztcblxuLyoqXG4gKiBUaGUgaW50ZXJuYWwgVGFibGVEYXRhLiBSZXF1aXJlcyBhbGwgZGVmYXVsdCB2YWx1ZXMgdGhlIHVzZXIgY2FuIGxlYXZlIG91dC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRhYmxlRGF0YUludGVybmFsPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gaW1wbGVtZW50cyBUYWJsZURhdGE8RW50aXR5VHlwZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgYmFzZURhdGE6IEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBjcmVhdGVEaWFsb2dEYXRhOiBDcmVhdGVEaWFsb2dEYXRhSW50ZXJuYWw7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBlZGl0RGF0YTogRWRpdERhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBiYXNlRGF0YTogQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPixcbiAgICAgICAgY3JlYXRlRGlhbG9nRGF0YTogQ3JlYXRlRGlhbG9nRGF0YUludGVybmFsLFxuICAgICAgICBlZGl0RGlhbG9nRGF0YTogRWRpdERhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPlxuICAgICkge1xuICAgICAgICB0aGlzLmJhc2VEYXRhID0gYmFzZURhdGE7XG4gICAgICAgIHRoaXMuY3JlYXRlRGlhbG9nRGF0YSA9IGNyZWF0ZURpYWxvZ0RhdGE7XG4gICAgICAgIHRoaXMuZWRpdERhdGEgPSBlZGl0RGlhbG9nRGF0YTtcbiAgICB9XG59XG5cbi8qKlxuICogVGhlIEJ1aWxkZXIgZm9yIHRoZSB0YWJsZSBCYXNlRGF0YS4gU2V0cyBkZWZhdWx0IHZhbHVlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VEYXRhQnVpbGRlcjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBCYXNlQnVpbGRlcjxCYXNlRGF0YUludGVybmFsPEVudGl0eVR5cGU+LCBCYXNlRGF0YTxFbnRpdHlUeXBlPj4ge1xuXG4gICAgY29uc3RydWN0b3IoZGF0YTogQmFzZURhdGE8RW50aXR5VHlwZT4pIHtcbiAgICAgICAgc3VwZXIoZGF0YSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBwcm90ZWN0ZWQgZ2VuZXJhdGVCYXNlRGF0YShkYXRhOiBCYXNlRGF0YTxFbnRpdHlUeXBlPik6IEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4ge1xuICAgICAgICByZXR1cm4gbmV3IEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4oXG4gICAgICAgICAgICBkYXRhLnRpdGxlLFxuICAgICAgICAgICAgZGF0YS5kaXNwbGF5Q29sdW1ucyxcbiAgICAgICAgICAgIGRhdGEuRW50aXR5U2VydmljZUNsYXNzLFxuICAgICAgICAgICAgZGF0YS5zZWFyY2hMYWJlbCA/PyAnU2VhcmNoJyxcbiAgICAgICAgICAgIGRhdGEuY3JlYXRlQnV0dG9uTGFiZWwgPz8gJ0NyZWF0ZScsXG4gICAgICAgICAgICBkYXRhLmRlZmF1bHRFZGl0ID8/ICdkaWFsb2cnLFxuICAgICAgICAgICAgZGF0YS5zZWFyY2hTdHJpbmcgPz8gZGVmYXVsdFNlYXJjaEZ1bmN0aW9uLFxuICAgICAgICAgICAgZGF0YS5hbGxvd0NyZWF0ZSA/PyAoKCkgPT4gdHJ1ZSksXG4gICAgICAgICAgICBkYXRhLmFsbG93UmVhZCA/PyAoKCkgPT4gdHJ1ZSksXG4gICAgICAgICAgICBkYXRhLmFsbG93VXBkYXRlID8/ICgoKSA9PiB0cnVlKSxcbiAgICAgICAgICAgIGRhdGEuYWxsb3dEZWxldGUgPz8gKCgpID0+IHRydWUpLFxuICAgICAgICAgICAgZGF0YS5tdWx0aVNlbGVjdEFjdGlvbnMgPz8gW10sXG4gICAgICAgICAgICBkYXRhLm11bHRpU2VsZWN0TGFiZWwgPz8gJ0FjdGlvbnMnLFxuICAgICAgICAgICAgZGF0YS5kaXNwbGF5TG9hZGluZ1NwaW5uZXIgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGRhdGEuYWxsb3dKc29uSW1wb3J0ID8/IGZhbHNlLFxuICAgICAgICAgICAgZGF0YS5pbXBvcnRBY3Rpb25EYXRhID8/IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogJ0ltcG9ydCAoSlNPTiknLFxuICAgICAgICAgICAgICAgIGNvbmZpcm1EaWFsb2dEYXRhOiBuZXcgQ29uZmlybURpYWxvZ0RhdGFCdWlsZGVyKClcbiAgICAgICAgICAgICAgICAgICAgLndpdGhEZWZhdWx0KCd0ZXh0JywgWydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gaW1wb3J0IGVudGl0aWVzIGZyb20gdGhlIHByb3ZpZGVkIGZpbGU/J10pXG4gICAgICAgICAgICAgICAgICAgIC5nZXRSZXN1bHQoKVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRhdGEuRW50aXR5Q2xhc3MsXG4gICAgICAgICAgICBkYXRhLmVkaXQsXG4gICAgICAgICAgICBkYXRhLmNyZWF0ZVxuICAgICAgICApO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUaGUgaW50ZXJuYWwgVGFibGVEYXRhLiBSZXF1aXJlcyBhbGwgZGVmYXVsdCB2YWx1ZXMgdGhlIHVzZXIgY2FuIGxlYXZlIG91dC5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiBpbXBsZW1lbnRzIEJhc2VEYXRhPEVudGl0eVR5cGU+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBkaXNwbGF5Q29sdW1uczogRGlzcGxheUNvbHVtbjxFbnRpdHlUeXBlPltdO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgRW50aXR5U2VydmljZUNsYXNzOiBuZXcgKGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpID0+IEVudGl0eVNlcnZpY2U8RW50aXR5VHlwZT47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBzZWFyY2hMYWJlbDogc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgY3JlYXRlQnV0dG9uTGFiZWw6IHN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGRlZmF1bHRFZGl0OiAnZGlhbG9nJyB8ICdwYWdlJztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHNlYXJjaFN0cmluZzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgYWxsb3dDcmVhdGU6ICgpID0+IGJvb2xlYW47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBhbGxvd1JlYWQ6IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IGJvb2xlYW47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBhbGxvd1VwZGF0ZTogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gYm9vbGVhbjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGFsbG93RGVsZXRlOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgbXVsdGlTZWxlY3RBY3Rpb25zOiBNdWx0aVNlbGVjdEFjdGlvbjxFbnRpdHlUeXBlPltdO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgbXVsdGlTZWxlY3RMYWJlbDogc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZGlzcGxheUxvYWRpbmdTcGlubmVyOiBib29sZWFuO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgYWxsb3dKc29uSW1wb3J0OiBib29sZWFuO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgaW1wb3J0QWN0aW9uRGF0YTogT21pdDxNdWx0aVNlbGVjdEFjdGlvbjxFbnRpdHlUeXBlPiwgJ2FjdGlvbicgfCAncmVxdWlyZUNvbmZpcm1EaWFsb2cnPjtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgRW50aXR5Q2xhc3M/OiBFbnRpdHlDbGFzc05ld2FibGU8RW50aXR5VHlwZT47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBlZGl0PzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gdW5rbm93bjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGNyZWF0ZT86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHVua25vd247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgdGl0bGU6IHN0cmluZyxcbiAgICAgICAgZGlzcGxheUNvbHVtbnM6IERpc3BsYXlDb2x1bW48RW50aXR5VHlwZT5bXSxcbiAgICAgICAgRW50aXR5U2VydmljZUNsYXNzOiBuZXcgKGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpID0+IEVudGl0eVNlcnZpY2U8RW50aXR5VHlwZT4sXG4gICAgICAgIHNlYXJjaExhYmVsOiBzdHJpbmcsXG4gICAgICAgIGNyZWF0ZUJ1dHRvbkxhYmVsOiBzdHJpbmcsXG4gICAgICAgIGRlZmF1bHRFZGl0OiAnZGlhbG9nJyB8ICdwYWdlJyxcbiAgICAgICAgc2VhcmNoU3RyaW5nOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmcsXG4gICAgICAgIGFsbG93Q3JlYXRlOiAoKSA9PiBib29sZWFuLFxuICAgICAgICBhbGxvd1JlYWQ6IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IGJvb2xlYW4sXG4gICAgICAgIGFsbG93VXBkYXRlOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuLFxuICAgICAgICBhbGxvd0RlbGV0ZTogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gYm9vbGVhbixcbiAgICAgICAgbXVsdGlTZWxlY3RBY3Rpb25zOiBNdWx0aVNlbGVjdEFjdGlvbjxFbnRpdHlUeXBlPltdLFxuICAgICAgICBtdWx0aVNlbGVjdExhYmVsOiBzdHJpbmcsXG4gICAgICAgIGRpc3BsYXlMb2FkaW5nU3Bpbm5lcjogYm9vbGVhbixcbiAgICAgICAgYWxsb3dKc29uSW1wb3J0OiBib29sZWFuLFxuICAgICAgICBpbXBvcnRBY3Rpb25EYXRhOiBPbWl0PE11bHRpU2VsZWN0QWN0aW9uPEVudGl0eVR5cGU+LCAnYWN0aW9uJyB8ICdyZXF1aXJlQ29uZmlybURpYWxvZyc+LFxuICAgICAgICBFbnRpdHlDbGFzcz86IEVudGl0eUNsYXNzTmV3YWJsZTxFbnRpdHlUeXBlPixcbiAgICAgICAgZWRpdD86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHVua25vd24sXG4gICAgICAgIGNyZWF0ZT86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHVua25vd25cbiAgICApIHtcbiAgICAgICAgdGhpcy50aXRsZSA9IHRpdGxlO1xuICAgICAgICB0aGlzLmRpc3BsYXlDb2x1bW5zID0gZGlzcGxheUNvbHVtbnM7XG4gICAgICAgIHRoaXMuRW50aXR5U2VydmljZUNsYXNzID0gRW50aXR5U2VydmljZUNsYXNzO1xuICAgICAgICB0aGlzLkVudGl0eUNsYXNzID0gRW50aXR5Q2xhc3M7XG4gICAgICAgIHRoaXMuc2VhcmNoTGFiZWwgPSBzZWFyY2hMYWJlbDtcbiAgICAgICAgdGhpcy5jcmVhdGVCdXR0b25MYWJlbCA9IGNyZWF0ZUJ1dHRvbkxhYmVsO1xuICAgICAgICB0aGlzLmRlZmF1bHRFZGl0ID0gZGVmYXVsdEVkaXQ7XG4gICAgICAgIHRoaXMuc2VhcmNoU3RyaW5nID0gc2VhcmNoU3RyaW5nO1xuICAgICAgICB0aGlzLmFsbG93Q3JlYXRlID0gYWxsb3dDcmVhdGU7XG4gICAgICAgIHRoaXMuYWxsb3dSZWFkID0gYWxsb3dSZWFkO1xuICAgICAgICB0aGlzLmFsbG93VXBkYXRlID0gYWxsb3dVcGRhdGU7XG4gICAgICAgIHRoaXMuYWxsb3dEZWxldGUgPSBhbGxvd0RlbGV0ZTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdEFjdGlvbnMgPSBtdWx0aVNlbGVjdEFjdGlvbnM7XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RMYWJlbCA9IG11bHRpU2VsZWN0TGFiZWw7XG4gICAgICAgIHRoaXMuZGlzcGxheUxvYWRpbmdTcGlubmVyID0gZGlzcGxheUxvYWRpbmdTcGlubmVyO1xuICAgICAgICB0aGlzLmFsbG93SnNvbkltcG9ydCA9IGFsbG93SnNvbkltcG9ydDtcbiAgICAgICAgdGhpcy5pbXBvcnRBY3Rpb25EYXRhID0gaW1wb3J0QWN0aW9uRGF0YTtcbiAgICAgICAgdGhpcy5lZGl0ID0gZWRpdDtcbiAgICAgICAgdGhpcy5jcmVhdGUgPSBjcmVhdGU7XG4gICAgfVxufVxuXG4vKipcbiAqIFRoZSBCdWlsZGVyIGZvciB0aGUgY29tcGxldGUgVGFibGVEYXRhLiBTZXRzIGRlZmF1bHQgdmFsdWVzIGFuZCB2YWxpZGF0ZXMgdXNlciBpbnB1dC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRhYmxlRGF0YUJ1aWxkZXI8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PlxuICAgIGV4dGVuZHMgQmFzZUJ1aWxkZXI8VGFibGVEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4sIFRhYmxlRGF0YTxFbnRpdHlUeXBlPj4ge1xuXG4gICAgY29uc3RydWN0b3IoZGF0YTogVGFibGVEYXRhPEVudGl0eVR5cGU+KSB7XG4gICAgICAgIHN1cGVyKGRhdGEpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgcHJvdGVjdGVkIGdlbmVyYXRlQmFzZURhdGEoZGF0YTogVGFibGVEYXRhPEVudGl0eVR5cGU+KTogVGFibGVEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4ge1xuICAgICAgICBjb25zdCBjcmVhdGVEaWFsb2dEYXRhOiBDcmVhdGVEaWFsb2dEYXRhSW50ZXJuYWwgPSBuZXcgQ3JlYXRlRGlhbG9nRGF0YUJ1aWxkZXIoZGF0YS5jcmVhdGVEaWFsb2dEYXRhKS5nZXRSZXN1bHQoKTtcbiAgICAgICAgY29uc3QgZWRpdERpYWxvZ0RhdGE6IEVkaXREYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4gPSBuZXcgRWRpdERpYWxvZ0RhdGFCdWlsZGVyKGRhdGEuZWRpdERhdGEpLmdldFJlc3VsdCgpO1xuICAgICAgICBjb25zdCBiYXNlRGF0YTogQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiA9IG5ldyBCYXNlRGF0YUJ1aWxkZXIoZGF0YS5iYXNlRGF0YSkuZ2V0UmVzdWx0KCk7XG4gICAgICAgIHJldHVybiBuZXcgVGFibGVEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4oXG4gICAgICAgICAgICBiYXNlRGF0YSxcbiAgICAgICAgICAgIGNyZWF0ZURpYWxvZ0RhdGEsXG4gICAgICAgICAgICBlZGl0RGlhbG9nRGF0YVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlSW5wdXQoZGF0YTogVGFibGVEYXRhPEVudGl0eVR5cGU+KTogdm9pZCB7XG4gICAgICAgIGlmIChkYXRhLmJhc2VEYXRhLm11bHRpU2VsZWN0QWN0aW9ucz8ubGVuZ3RoICYmIGRhdGEuYmFzZURhdGEuZGlzcGxheUNvbHVtbnMuZmluZChkcCA9PiBkcC5kaXNwbGF5TmFtZSA9PT0gJ3NlbGVjdCcpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYFRoZSBuYW1lIFwic2VsZWN0XCIgZm9yIGEgZGlzcGxheSBjb2x1bW4gaXMgcmVzZXJ2ZWQgZm9yIHRoZSBtdWx0aS1zZWxlY3QgYWN0aW9uIGZ1bmN0aW9uYWxpdHkuXG4gICAgICAgICAgICAgICAgUGxlYXNlIGNob29zZSBhIGRpZmZlcmVudCBuYW1lLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgIGRhdGEuYmFzZURhdGEuYWxsb3dDcmVhdGUgIT09ICgoKSA9PiBmYWxzZSlcbiAgICAgICAgICAgICAgICB8fCBkYXRhLmJhc2VEYXRhLmFsbG93UmVhZCAhPT0gKCgpID0+IGZhbHNlKVxuICAgICAgICAgICAgICAgIHx8IGRhdGEuYmFzZURhdGEuYWxsb3dVcGRhdGUgIT09ICgoKSA9PiBmYWxzZSlcbiAgICAgICAgICAgICAgICB8fCBkYXRhLmJhc2VEYXRhLmFsbG93RGVsZXRlICE9PSAoKCkgPT4gZmFsc2UpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAmJiAhZGF0YS5iYXNlRGF0YS5FbnRpdHlDbGFzc1xuICAgICAgICApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgXG4gICAgICAgICAgICAgICAgTWlzc2luZyByZXF1aXJlZCBJbnB1dCBkYXRhIFwiRW50aXR5Q2xhc3NcIi5cbiAgICAgICAgICAgICAgICBZb3UgY2FuIG9ubHkgb21pdCB0aGlzIHZhbHVlIGlmIHlvdSBjYW4gbmVpdGhlciBjcmVhdGUgb3IgdXBkYXRlIGVudGl0aWVzLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuYmFzZURhdGEuYWxsb3dDcmVhdGUgIT09ICgoKSA9PiBmYWxzZSkgJiYgIWRhdGEuYmFzZURhdGEuY3JlYXRlICYmICFkYXRhLmNyZWF0ZURpYWxvZ0RhdGEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgTWlzc2luZyByZXF1aXJlZCBJbnB1dCBkYXRhIFwiY3JlYXRlRGlhbG9nRGF0YVwiLlxuICAgICAgICAgICAgICAgIFlvdSBjYW4gb25seSBvbWl0IHRoaXMgdmFsdWUgd2hlbiBjcmVhdGlvbiBpcyBkaXNhbGxvd2VkIG9yIGRvbmUgd2l0aCBhIGN1c3RvbSBjcmVhdGUgbWV0aG9kLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgIGRhdGEuYmFzZURhdGEuYWxsb3dSZWFkICE9PSAoKCkgPT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgfHwgZGF0YS5iYXNlRGF0YS5hbGxvd1VwZGF0ZSAhPT0gKCgpID0+IGZhbHNlKVxuICAgICAgICAgICAgICAgIHx8IGRhdGEuYmFzZURhdGEuYWxsb3dEZWxldGUgIT09ICgoKSA9PiBmYWxzZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICYmICFkYXRhLmJhc2VEYXRhLmVkaXRcbiAgICAgICAgICAgICYmIGRhdGEuYmFzZURhdGEuZGVmYXVsdEVkaXQgPT0gJ2RpYWxvZydcbiAgICAgICAgICAgICYmICFkYXRhLmVkaXREYXRhXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBNaXNzaW5nIHJlcXVpcmVkIElucHV0IGRhdGEgXCJlZGl0RGlhbG9nRGF0YVwiLlxuICAgICAgICAgICAgICAgIFlvdSBjYW4gb25seSBvbWl0IHRoaXMgdmFsdWUgd2hlbiB2aWV3aW5nLCBlZGl0aW5nIGFuZCBkZWxldGluZyBpcyBkaXNhbGxvd2VkIG9yIGRvbmUgd2l0aCBhIGN1c3RvbSBlZGl0IG1ldGhvZC5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIFRoZSBkZWZhdWx0IHNlYXJjaCBmdW5jdGlvbiB0YWtlbiBmcm9tIGdvb2dsZXMgbWF0IHRhYmxlLlxuICogVGhpcyB3aWxsIGJlIHVzZWQgaWYgbm8gY3VzdG9tIHNlYXJjaCBmdW5jdGlvbiBpcyBwcm92aWRlZCBieSB0aGUgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBJdCBnZW5lcmF0ZXMgYSBzdHJpbmcgZnJvbSBhbiBlbnRpdHkgd2hpY2ggaXMgdGhlbiB1c2VkIHRvIGNvbXBhcmUgaXQgdG8gdGhlIHNlYXJjaCBpbnB1dC5cbiAqXG4gKiBAcGFyYW0gZW50aXR5IC0gQW4gZW50aXR5IHRoYXQgaXMgaW4gdGhlIHNlYXJjaC5cbiAqIEByZXR1cm5zIFRoZSBnZW5lcmF0ZWQgc3RyaW5nIG9mIHRoZSBnaXZlbiBlbnRpdHkgdXNlZCBmb3IgY29tcGFyaXNvbiB3aXRoIHRoZSBzZWFyY2ggaW5wdXQuXG4gKi9cbmZ1bmN0aW9uIGRlZmF1bHRTZWFyY2hGdW5jdGlvbjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+KGVudGl0eTogRW50aXR5VHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VhcmNoU3RyaW5nOiBzdHJpbmcgPSBPYmplY3Qua2V5cyhlbnRpdHkpXG4gICAgICAgIC5yZWR1Y2UoKGN1cnJlbnRUZXJtOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7Y3VycmVudFRlcm19JHsoZW50aXR5IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldfeKXrGA7XG4gICAgICAgIH0sICcnKVxuICAgICAgICAudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gc2VhcmNoU3RyaW5nO1xufSJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlLCBFbnRpdHlDbGFzc05ld2FibGUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50aXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0RhdGEgfSBmcm9tICcuLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhJztcblxuLyoqXG4gKiBUaGUgRGVmaW5pdGlvbiBvZiBhIENvbHVtbiBpbnNpZGUgdGhlIHRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpc3BsYXlDb2x1bW48RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgaW5zaWRlIHRoZSBoZWFkZXIuXG4gICAgICovXG4gICAgZGlzcGxheU5hbWU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBBIG1ldGhvZCB0byBnZXQgdGhlIHZhbHVlIGluc2lkZSBhbiByb3cuXG4gICAgICovXG4gICAgdmFsdWU6IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHN0cmluZ1xufVxuXG4vKipcbiAqIFRoZSBEZWZpbml0aW9uIG9mIGFuIEFjdGlvbiB0aGF0IGNhbiBiZSBydW4gb24gbXVsdGlwbGUgc2VsZWN0ZWQgZW50aXRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlTZWxlY3RBY3Rpb248RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGFjdGlvbi5cbiAgICAgKi9cbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBhY3Rpb24gaXRzZWxmLlxuICAgICAqL1xuICAgIGFjdGlvbjogKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gdW5rbm93bixcbiAgICAvKipcbiAgICAgKiBBIG1ldGhvZCB0aGF0IGRlZmluZXMgd2hldGhlciBvciBub3QgdGhlIGFjdGlvbiBjYW4gYmUgdXNlZC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBlbmFibGVkPzogKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBBIG1ldGhvZCB0aGF0IGRlZmluZXMgd2hldGhlciBvciBub3QgYSBjb25maXJtIGRpYWxvZyBpcyBuZWVkZWQgdG8gcnVuIHRoZSBhY3Rpb24uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlcXVpcmVDb25maXJtRGlhbG9nPzogKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSB1c2VkIHRvIGdlbmVyYXRlIGEgY29uZmlybWF0aW9uIGRpYWxvZyBmb3IgdGhlIG11bHRpU2VsZWN0IGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtRGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhXG59XG5cbi8qKlxuICogVGhlIGJhc2UgZGF0YSBvZiB0aGUgbmd4LW1hdC1lbnRpdHktdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZURhdGE8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIHRpdGxlIG9mIHRoZSB0YWJsZS5cbiAgICAgKi9cbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBkZWZpbml0aW9uIG9mIHRoZSBjb2x1bW5zIHRvIGRpc3BsYXkuIENvbnNpc3RzIG9mIHRoZSBkaXNwbGF5TmFtZSB0byBzaG93IGluIHRoZSBoZWFkZXIgb2YgdGhlIHJvd1xuICAgICAqIGFuZCB0aGUgdmFsdWUsIHdoaWNoIGlzIGEgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIHZhbHVlIHRvIGRpc3BsYXkgaW5zaWRlIGEgY29sdW1uLlxuICAgICAqL1xuICAgIGRpc3BsYXlDb2x1bW5zOiBEaXNwbGF5Q29sdW1uPEVudGl0eVR5cGU+W10sXG4gICAgLyoqXG4gICAgICogVGhlIENsYXNzIG9mIHRoZSBzZXJ2aWNlIHRoYXQgaGFuZGxlcyB0aGUgZW50aXRpZXMuXG4gICAgICogTmVlZHMgdG8gYmUgaW5qZWN0YWJsZSBhbmQgYW4gZXh0ZW5zaW9uIG9mIHRoZSBcIkVudGl0eVNlcnZpY2VcIi1DbGFzcy5cbiAgICAgKi9cbiAgICBFbnRpdHlTZXJ2aWNlQ2xhc3M6IG5ldyAoaHR0cENsaWVudDogSHR0cENsaWVudCkgPT4gRW50aXR5U2VydmljZTxFbnRpdHlUeXBlPixcbiAgICAvKipcbiAgICAgKiBUaGUgQ2xhc3Mgb2YgdGhlIGVudGl0aWVzIHRvIG1hbmFnZS5cbiAgICAgKi9cbiAgICBFbnRpdHlDbGFzcz86IEVudGl0eUNsYXNzTmV3YWJsZTxFbnRpdHlUeXBlPixcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIHNlYXJjaCBiYXIuIERlZmF1bHRzIHRvIFwiU2VhcmNoXCIuXG4gICAgICovXG4gICAgc2VhcmNoTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBidXR0b24gZm9yIGFkZGluZyBuZXcgZW50aXRpZXMuIERlZmF1bHRzIHRvIFwiQ3JlYXRlXCIuXG4gICAgICovXG4gICAgY3JlYXRlQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogV2hldGhlciBlZGl0aW5nIGhhcHBlbnMgaW4gYSBkaWFsb2cgb3IgYSBzZXBhcmF0ZSBwYWdlLlxuICAgICAqL1xuICAgIGRlZmF1bHRFZGl0PzogJ2RpYWxvZycgfCAncGFnZScsXG4gICAgLyoqXG4gICAgICogVGFrZXMgYSBjdXN0b20gZWRpdCBtZXRob2Qgd2hpY2ggcnVucyB3aGVuIHlvdSBjbGljayBvbiBhIGVudGl0eS5cbiAgICAgKiBJZiB5b3UgZG9uJ3QgbmVlZCBhbnkgc3BlY2lhbCBlZGl0aW5nIG9mIGVudHJpZXMgeW91IGNhbiBhbHNvIG9taXQgdGhpcy5cbiAgICAgKiBJbiB0aGF0IGNhc2UgYSBkZWZhdWx0IGVkaXQgZGlhbG9nIGlzIGdlbmVyYXRlZC5cbiAgICAgKi9cbiAgICBlZGl0PzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gdW5rbm93bixcbiAgICAvKipcbiAgICAgKiBUYWtlcyBhIG1ldGhvZCB0byBydW4gd2hlbiB5b3UgY2xpY2sgb24gdGhlIG5ldyBidXR0b24uXG4gICAgICogSWYgeW91IGRvbid0IG5lZWQgYW55dGhpbmcgc3BlY2lhbCB5b3UgY2FuIGFsc28gb21pdCB0aGlzLlxuICAgICAqIEluIHRoYXQgY2FzZSBhIGRlZmF1bHQgY3JlYXRlIGRpYWxvZyBpcyBnZW5lcmF0ZWQuXG4gICAgICovXG4gICAgY3JlYXRlPzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gdW5rbm93bixcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGhvdyB0aGUgc2VhcmNoIHN0cmluZyBvZiBlbnRpdGllcyBpcyBnZW5lcmF0ZWQuXG4gICAgICovXG4gICAgc2VhcmNoU3RyaW5nPzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciBvciBub3QgdGhlIHVzZXIgY2FuIGFkZCBuZXcgZW50aXRpZXMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAoKSA9PiB0cnVlXG4gICAgICovXG4gICAgYWxsb3dDcmVhdGU/OiAoKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciBvciBub3QgdGhlIHVzZXIgY2FuIHZpZXcgdGhlIHNwZWNpZmljIGVudGl0eS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICgpID0+IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd1JlYWQ/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciBvciBub3QgdGhlIHVzZXIgY2FuIGVkaXQgdGhlIHNwZWNpZmljIGVudGl0eS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICgpID0+IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd1VwZGF0ZT86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIHVzZXIgY2FuIGRlbGV0ZSB0aGlzIHNwZWNpZmljIGVudGl0eS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICgpID0+IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd0RlbGV0ZT86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogQWxsIEFjdGlvbnMgdGhhdCB5b3Ugd2FudCB0byBydW4gb24gbXVsdGlwbGUgZW50aXRpZXMgY2FuIGJlIGRlZmluZWQgaGVyZS5cbiAgICAgKiAoZS5nLiBEb3dubG9hZCBhcyB6aXAtZmlsZSBvciBtYXNzIGRlbGV0ZSkuXG4gICAgICovXG4gICAgbXVsdGlTZWxlY3RBY3Rpb25zPzogTXVsdGlTZWxlY3RBY3Rpb248RW50aXR5VHlwZT5bXSxcbiAgICAvKipcbiAgICAgKiBUaGUgTGFiZWwgZm9yIHRoZSBidXR0b24gdGhhdCBvcGVucyBhbGwgbXVsdGktYWN0aW9ucy5cbiAgICAgKi9cbiAgICBtdWx0aVNlbGVjdExhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc3BsYXkgYSBsb2FkaW5nIHNwaW5uZXIgd2hpbGUgdGhlIGVudGl0aWVzIG9mIHRoZSB0YWJsZSBhcmUgbG9hZGVkLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGRpc3BsYXlMb2FkaW5nU3Bpbm5lcj86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGUgZGF0YSBvZiB0aGUgZGVmYXVsdCBjcmVhdGUtZGlhbG9nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZURpYWxvZ0RhdGEge1xuICAgIC8qKlxuICAgICAqIFRoZSB0aXRsZSBvZiB0aGUgZGVmYXVsdCBjcmVhdGUtZGlhbG9nLlxuICAgICAqL1xuICAgIHRpdGxlPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBvbiB0aGUgY3JlYXRlLWJ1dHRvbiBvZiB0aGUgZGVmYXVsdCBjcmVhdGUtZGlhbG9nLiBEZWZhdWx0cyB0byBcIkNyZWF0ZVwiLlxuICAgICAqL1xuICAgIGNyZWF0ZUJ1dHRvbkxhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBvbiB0aGUgY2FuY2VsLWJ1dHRvbiBmb3IgdGhlIGRlZmF1bHQgY3JlYXRlLWRpYWxvZy4gRGVmYXVsdHMgdG8gXCJDYW5jZWxcIi5cbiAgICAgKi9cbiAgICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgY3JlYXRpb24gb2YgYW4gZW50cnkgc2hvdWxkIHJlcXVpcmUgYSBjb25maXJtIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjcmVhdGVSZXF1aXJlc0NvbmZpcm1EaWFsb2c/OiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGUgYSBjb25maXJtYXRpb24gZGlhbG9nIGZvciB0aGUgY3JlYXRlIGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtQ3JlYXRlRGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhXG59XG5cbi8qKlxuICogVGhlIGRhdGEgb2YgdGhlIGRlZmF1bHQgZWRpdC1kaWFsb2cgb3IgcGFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0RGF0YTxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgdGl0bGUgb2YgdGhlIGRlZmF1bHQgZWRpdC1kaWFsb2cuXG4gICAgICovXG4gICAgdGl0bGU/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBjb25maXJtLWJ1dHRvbiBvZiB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZyBvciBwYWdlLiBEZWZhdWx0cyB0byBcIlNhdmVcIi5cbiAgICAgKi9cbiAgICBjb25maXJtQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBkZWxldGUtYnV0dG9uIG9mIHRoZSBkZWZhdWx0IGVkaXQtZGlhbG9nIG9yIHBhZ2UuIERlZmF1bHRzIHRvIFwiRGVsZXRlXCIuXG4gICAgICovXG4gICAgZGVsZXRlQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBjYW5jZWwtYnV0dG9uIGZvciB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZyBvciBwYWdlLiBEZWZhdWx0cyB0byBcIkNhbmNlbFwiLlxuICAgICAqL1xuICAgIGNhbmNlbEJ1dHRvbkxhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBkZWxldGlvbiBvZiBhbiBlbnRyeSBzaG91bGQgcmVxdWlyZSBhIGNvbmZpcm0gZGlhbG9nLlxuICAgICAqL1xuICAgIGRlbGV0ZVJlcXVpcmVzQ29uZmlybURpYWxvZz86IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGVkaXRpbmcgb2YgYW4gZW50cnkgc2hvdWxkIHJlcXVpcmUgYSBjb25maXJtIGRpYWxvZy5cbiAgICAgKi9cbiAgICBlZGl0UmVxdWlyZXNDb25maXJtRGlhbG9nPzogYm9vbGVhbixcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGUgYSBjb25maXJtYXRpb24gZGlhbG9nIGZvciB0aGUgZGVsZXRlIGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtRGVsZXRlRGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhLFxuXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgdXNlZCB0byBnZW5lcmF0ZSBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgZm9yIHRoZSBlZGl0IGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtRWRpdERpYWxvZ0RhdGE/OiBDb25maXJtRGlhbG9nRGF0YVxufVxuXG4vKipcbiAqIEFsbCB0aGUgY29uZmlndXJhdGlvbiBkYXRhIHJlcXVpcmVkIHRvIGRpc3BsYXkgYSBuZ3gtbWF0LWVudGl0eS10YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZURhdGE8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgZGF0YSBmb3IgdGhlIHRhYmxlLWNvbXBvbmVudC5cbiAgICAgKiBJbmNsdWRlcyBzdHVmZiBsaWtlIHRoZSB0aXRsZSBmb3IgdGhlIHRhYmxlLCB3aGF0IHRvIGRpc3BsYXkgaW5zaWRlIHRoZSByb3dzIGV0Yy5cbiAgICAgKi9cbiAgICBiYXNlRGF0YTogQmFzZURhdGE8RW50aXR5VHlwZT4sXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgZm9yIHRoZSBkZWZhdWx0IGNyZWF0ZS1kaWFsb2cuXG4gICAgICogQ2FuIGJlIG9taXR0ZWQgd2hlbiBzcGVjaWZ5aW5nIGEgY3VzdG9tIFwiY3JlYXRlXCIgbWV0aG9kIGluc2lkZSB0aGUgYmFzZURhdGEuXG4gICAgICovXG4gICAgY3JlYXRlRGlhbG9nRGF0YT86IENyZWF0ZURpYWxvZ0RhdGEsXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgZm9yIHRoZSBkZWZhdWx0IGVkaXQtZGlhbG9nLlxuICAgICAqIENhbiBiZSBvbWl0dGVkIHdoZW4gc3BlY2lmeWluZyBhIGN1c3RvbSBcImVkaXRcIiBtZXRob2QgaW5zaWRlIHRoZSBiYXNlRGF0YS5cbiAgICAgKi9cbiAgICBlZGl0RGF0YT86IEVkaXREYXRhPEVudGl0eVR5cGU+XG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlLCBFbnRpdHlDbGFzc05ld2FibGUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50aXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0RhdGEgfSBmcm9tICcuLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhJztcblxuLyoqXG4gKiBUaGUgRGVmaW5pdGlvbiBvZiBhIENvbHVtbiBpbnNpZGUgdGhlIHRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpc3BsYXlDb2x1bW48RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgaW5zaWRlIHRoZSBoZWFkZXIuXG4gICAgICovXG4gICAgZGlzcGxheU5hbWU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBBIG1ldGhvZCB0byBnZXQgdGhlIHZhbHVlIGluc2lkZSBhbiByb3cuXG4gICAgICovXG4gICAgdmFsdWU6IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHN0cmluZ1xufVxuXG4vKipcbiAqIFRoZSBEZWZpbml0aW9uIG9mIGFuIEFjdGlvbiB0aGF0IGNhbiBiZSBydW4gb24gbXVsdGlwbGUgc2VsZWN0ZWQgZW50aXRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlTZWxlY3RBY3Rpb248RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGFjdGlvbi5cbiAgICAgKi9cbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBhY3Rpb24gaXRzZWxmLlxuICAgICAqL1xuICAgIGFjdGlvbjogKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gdW5rbm93bixcbiAgICAvKipcbiAgICAgKiBBIG1ldGhvZCB0aGF0IGRlZmluZXMgd2hldGhlciBvciBub3QgdGhlIGFjdGlvbiBjYW4gYmUgdXNlZC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBlbmFibGVkPzogKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBBIG1ldGhvZCB0aGF0IGRlZmluZXMgd2hldGhlciBvciBub3QgYSBjb25maXJtIGRpYWxvZyBpcyBuZWVkZWQgdG8gcnVuIHRoZSBhY3Rpb24uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlcXVpcmVDb25maXJtRGlhbG9nPzogKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSB1c2VkIHRvIGdlbmVyYXRlIGEgY29uZmlybWF0aW9uIGRpYWxvZyBmb3IgdGhlIG11bHRpU2VsZWN0IGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtRGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhXG59XG5cbi8qKlxuICogVGhlIGJhc2UgZGF0YSBvZiB0aGUgbmd4LW1hdC1lbnRpdHktdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZURhdGE8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIHRpdGxlIG9mIHRoZSB0YWJsZS5cbiAgICAgKi9cbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBkZWZpbml0aW9uIG9mIHRoZSBjb2x1bW5zIHRvIGRpc3BsYXkuIENvbnNpc3RzIG9mIHRoZSBkaXNwbGF5TmFtZSB0byBzaG93IGluIHRoZSBoZWFkZXIgb2YgdGhlIHJvd1xuICAgICAqIGFuZCB0aGUgdmFsdWUsIHdoaWNoIGlzIGEgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIHZhbHVlIHRvIGRpc3BsYXkgaW5zaWRlIGEgY29sdW1uLlxuICAgICAqL1xuICAgIGRpc3BsYXlDb2x1bW5zOiBEaXNwbGF5Q29sdW1uPEVudGl0eVR5cGU+W10sXG4gICAgLyoqXG4gICAgICogVGhlIENsYXNzIG9mIHRoZSBzZXJ2aWNlIHRoYXQgaGFuZGxlcyB0aGUgZW50aXRpZXMuXG4gICAgICogTmVlZHMgdG8gYmUgaW5qZWN0YWJsZSBhbmQgYW4gZXh0ZW5zaW9uIG9mIHRoZSBcIkVudGl0eVNlcnZpY2VcIi1DbGFzcy5cbiAgICAgKi9cbiAgICBFbnRpdHlTZXJ2aWNlQ2xhc3M6IG5ldyAoaHR0cENsaWVudDogSHR0cENsaWVudCkgPT4gRW50aXR5U2VydmljZTxFbnRpdHlUeXBlPixcbiAgICAvKipcbiAgICAgKiBUaGUgQ2xhc3Mgb2YgdGhlIGVudGl0aWVzIHRvIG1hbmFnZS5cbiAgICAgKi9cbiAgICBFbnRpdHlDbGFzcz86IEVudGl0eUNsYXNzTmV3YWJsZTxFbnRpdHlUeXBlPixcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIHNlYXJjaCBiYXIuIERlZmF1bHRzIHRvIFwiU2VhcmNoXCIuXG4gICAgICovXG4gICAgc2VhcmNoTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBidXR0b24gZm9yIGFkZGluZyBuZXcgZW50aXRpZXMuIERlZmF1bHRzIHRvIFwiQ3JlYXRlXCIuXG4gICAgICovXG4gICAgY3JlYXRlQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogV2hldGhlciBlZGl0aW5nIGhhcHBlbnMgaW4gYSBkaWFsb2cgb3IgYSBzZXBhcmF0ZSBwYWdlLlxuICAgICAqL1xuICAgIGRlZmF1bHRFZGl0PzogJ2RpYWxvZycgfCAncGFnZScsXG4gICAgLyoqXG4gICAgICogVGFrZXMgYSBjdXN0b20gZWRpdCBtZXRob2Qgd2hpY2ggcnVucyB3aGVuIHlvdSBjbGljayBvbiBhIGVudGl0eS5cbiAgICAgKiBJZiB5b3UgZG9uJ3QgbmVlZCBhbnkgc3BlY2lhbCBlZGl0aW5nIG9mIGVudHJpZXMgeW91IGNhbiBhbHNvIG9taXQgdGhpcy5cbiAgICAgKiBJbiB0aGF0IGNhc2UgYSBkZWZhdWx0IGVkaXQgZGlhbG9nIGlzIGdlbmVyYXRlZC5cbiAgICAgKi9cbiAgICBlZGl0PzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gdW5rbm93bixcbiAgICAvKipcbiAgICAgKiBUYWtlcyBhIG1ldGhvZCB0byBydW4gd2hlbiB5b3UgY2xpY2sgb24gdGhlIG5ldyBidXR0b24uXG4gICAgICogSWYgeW91IGRvbid0IG5lZWQgYW55dGhpbmcgc3BlY2lhbCB5b3UgY2FuIGFsc28gb21pdCB0aGlzLlxuICAgICAqIEluIHRoYXQgY2FzZSBhIGRlZmF1bHQgY3JlYXRlIGRpYWxvZyBpcyBnZW5lcmF0ZWQuXG4gICAgICovXG4gICAgY3JlYXRlPzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gdW5rbm93bixcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGhvdyB0aGUgc2VhcmNoIHN0cmluZyBvZiBlbnRpdGllcyBpcyBnZW5lcmF0ZWQuXG4gICAgICovXG4gICAgc2VhcmNoU3RyaW5nPzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciBvciBub3QgdGhlIHVzZXIgY2FuIGFkZCBuZXcgZW50aXRpZXMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAoKSA9PiB0cnVlXG4gICAgICovXG4gICAgYWxsb3dDcmVhdGU/OiAoKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciBvciBub3QgdGhlIHVzZXIgY2FuIHZpZXcgdGhlIHNwZWNpZmljIGVudGl0eS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICgpID0+IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd1JlYWQ/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciBvciBub3QgdGhlIHVzZXIgY2FuIGVkaXQgdGhlIHNwZWNpZmljIGVudGl0eS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICgpID0+IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd1VwZGF0ZT86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIHVzZXIgY2FuIGRlbGV0ZSB0aGlzIHNwZWNpZmljIGVudGl0eS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICgpID0+IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd0RlbGV0ZT86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogQWxsIEFjdGlvbnMgdGhhdCB5b3Ugd2FudCB0byBydW4gb24gbXVsdGlwbGUgZW50aXRpZXMgY2FuIGJlIGRlZmluZWQgaGVyZS5cbiAgICAgKiAoZS5nLiBEb3dubG9hZCBhcyB6aXAtZmlsZSBvciBtYXNzIGRlbGV0ZSkuXG4gICAgICovXG4gICAgbXVsdGlTZWxlY3RBY3Rpb25zPzogTXVsdGlTZWxlY3RBY3Rpb248RW50aXR5VHlwZT5bXSxcbiAgICAvKipcbiAgICAgKiBUaGUgTGFiZWwgZm9yIHRoZSBidXR0b24gdGhhdCBvcGVucyBhbGwgbXVsdGktYWN0aW9ucy5cbiAgICAgKi9cbiAgICBtdWx0aVNlbGVjdExhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc3BsYXkgYSBsb2FkaW5nIHNwaW5uZXIgd2hpbGUgdGhlIGVudGl0aWVzIG9mIHRoZSB0YWJsZSBhcmUgbG9hZGVkLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGRpc3BsYXlMb2FkaW5nU3Bpbm5lcj86IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgSlNPTiBpbXBvcnRzIGFyZSBhbGxvd2VkLlxuICAgICAqIFRoaXMgYWRkcyBhbiBtdWx0aSBzZWxlY3QgYWN0aW9uLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBhbGxvd0pzb25JbXBvcnQ/OiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIERhdGEgdG8gY3VzdG9taXplIHRoZSBqc29uIGltcG9ydCBhY3Rpb24uXG4gICAgICovXG4gICAgaW1wb3J0QWN0aW9uRGF0YT86IE9taXQ8TXVsdGlTZWxlY3RBY3Rpb248RW50aXR5VHlwZT4sICdhY3Rpb24nIHwgJ3JlcXVpcmVDb25maXJtRGlhbG9nJz5cbn1cblxuLyoqXG4gKiBUaGUgZGF0YSBvZiB0aGUgZGVmYXVsdCBjcmVhdGUtZGlhbG9nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZURpYWxvZ0RhdGEge1xuICAgIC8qKlxuICAgICAqIFRoZSB0aXRsZSBvZiB0aGUgZGVmYXVsdCBjcmVhdGUtZGlhbG9nLlxuICAgICAqL1xuICAgIHRpdGxlPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBvbiB0aGUgY3JlYXRlLWJ1dHRvbiBvZiB0aGUgZGVmYXVsdCBjcmVhdGUtZGlhbG9nLiBEZWZhdWx0cyB0byBcIkNyZWF0ZVwiLlxuICAgICAqL1xuICAgIGNyZWF0ZUJ1dHRvbkxhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBvbiB0aGUgY2FuY2VsLWJ1dHRvbiBmb3IgdGhlIGRlZmF1bHQgY3JlYXRlLWRpYWxvZy4gRGVmYXVsdHMgdG8gXCJDYW5jZWxcIi5cbiAgICAgKi9cbiAgICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgY3JlYXRpb24gb2YgYW4gZW50cnkgc2hvdWxkIHJlcXVpcmUgYSBjb25maXJtIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjcmVhdGVSZXF1aXJlc0NvbmZpcm1EaWFsb2c/OiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGUgYSBjb25maXJtYXRpb24gZGlhbG9nIGZvciB0aGUgY3JlYXRlIGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtQ3JlYXRlRGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhXG59XG5cbi8qKlxuICogVGhlIGRhdGEgb2YgdGhlIGRlZmF1bHQgZWRpdC1kaWFsb2cgb3IgcGFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0RGF0YTxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgdGl0bGUgb2YgdGhlIGRlZmF1bHQgZWRpdC1kaWFsb2cuXG4gICAgICovXG4gICAgdGl0bGU/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBjb25maXJtLWJ1dHRvbiBvZiB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZyBvciBwYWdlLiBEZWZhdWx0cyB0byBcIlNhdmVcIi5cbiAgICAgKi9cbiAgICBjb25maXJtQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBkZWxldGUtYnV0dG9uIG9mIHRoZSBkZWZhdWx0IGVkaXQtZGlhbG9nIG9yIHBhZ2UuIERlZmF1bHRzIHRvIFwiRGVsZXRlXCIuXG4gICAgICovXG4gICAgZGVsZXRlQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBjYW5jZWwtYnV0dG9uIGZvciB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZyBvciBwYWdlLiBEZWZhdWx0cyB0byBcIkNhbmNlbFwiLlxuICAgICAqL1xuICAgIGNhbmNlbEJ1dHRvbkxhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBkZWxldGlvbiBvZiBhbiBlbnRyeSBzaG91bGQgcmVxdWlyZSBhIGNvbmZpcm0gZGlhbG9nLlxuICAgICAqL1xuICAgIGRlbGV0ZVJlcXVpcmVzQ29uZmlybURpYWxvZz86IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGVkaXRpbmcgb2YgYW4gZW50cnkgc2hvdWxkIHJlcXVpcmUgYSBjb25maXJtIGRpYWxvZy5cbiAgICAgKi9cbiAgICBlZGl0UmVxdWlyZXNDb25maXJtRGlhbG9nPzogYm9vbGVhbixcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGUgYSBjb25maXJtYXRpb24gZGlhbG9nIGZvciB0aGUgZGVsZXRlIGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtRGVsZXRlRGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhLFxuXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgdXNlZCB0byBnZW5lcmF0ZSBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgZm9yIHRoZSBlZGl0IGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtRWRpdERpYWxvZ0RhdGE/OiBDb25maXJtRGlhbG9nRGF0YVxufVxuXG4vKipcbiAqIEFsbCB0aGUgY29uZmlndXJhdGlvbiBkYXRhIHJlcXVpcmVkIHRvIGRpc3BsYXkgYSBuZ3gtbWF0LWVudGl0eS10YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZURhdGE8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgZGF0YSBmb3IgdGhlIHRhYmxlLWNvbXBvbmVudC5cbiAgICAgKiBJbmNsdWRlcyBzdHVmZiBsaWtlIHRoZSB0aXRsZSBmb3IgdGhlIHRhYmxlLCB3aGF0IHRvIGRpc3BsYXkgaW5zaWRlIHRoZSByb3dzIGV0Yy5cbiAgICAgKi9cbiAgICBiYXNlRGF0YTogQmFzZURhdGE8RW50aXR5VHlwZT4sXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgZm9yIHRoZSBkZWZhdWx0IGNyZWF0ZS1kaWFsb2cuXG4gICAgICogQ2FuIGJlIG9taXR0ZWQgd2hlbiBzcGVjaWZ5aW5nIGEgY3VzdG9tIFwiY3JlYXRlXCIgbWV0aG9kIGluc2lkZSB0aGUgYmFzZURhdGEuXG4gICAgICovXG4gICAgY3JlYXRlRGlhbG9nRGF0YT86IENyZWF0ZURpYWxvZ0RhdGEsXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgZm9yIHRoZSBkZWZhdWx0IGVkaXQtZGlhbG9nLlxuICAgICAqIENhbiBiZSBvbWl0dGVkIHdoZW4gc3BlY2lmeWluZyBhIGN1c3RvbSBcImVkaXRcIiBtZXRob2QgaW5zaWRlIHRoZSBiYXNlRGF0YS5cbiAgICAgKi9cbiAgICBlZGl0RGF0YT86IEVkaXREYXRhPEVudGl0eVR5cGU+XG59Il19