nuxeo-development-framework 5.3.8 → 5.4.1

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.
@@ -1,6 +1,6 @@
1
1
  import { __rest } from "tslib";
2
2
  import { Component, ContentChild, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
3
- import { BehaviorSubject, combineLatest, of } from 'rxjs';
3
+ import { BehaviorSubject, combineLatest, forkJoin, of } from 'rxjs';
4
4
  import { catchError, filter, map, startWith, switchMap, takeUntil } from 'rxjs/operators';
5
5
  import { ACTIONS_TABLE_TEMPLATE, FILTER_CUSTOM_TEMPLATE, SEARCH_TABLE_TEMPLATE } from '../../directives';
6
6
  import { COMPARISON_OPERATOR, HtmlDialogComponent } from '../../../../ndf-filters';
@@ -220,7 +220,7 @@ export class NdfTableComponent extends DestroySubject {
220
220
  this.onSort.emit(sort);
221
221
  }
222
222
  exportTable(type) {
223
- var _a, _b, _c, _d;
223
+ var _a, _b, _c, _d, _e;
224
224
  const request = _.cloneDeep((_a = this.exportTableConfig) === null || _a === void 0 ? void 0 : _a.request);
225
225
  if (!request) {
226
226
  return;
@@ -230,20 +230,27 @@ export class NdfTableComponent extends DestroySubject {
230
230
  const headers = columns.map((col) => (this.tableConfig.prefix || '') + col.name);
231
231
  const criteria = this._customCriteriaSub.getValue();
232
232
  request.params = Object.assign({}, criteria.params, this._sortValue || {}, ((_b = this.tableConfig) === null || _b === void 0 ? void 0 : _b.quickFilters) ? { quickFilters: this.tableConfig.quickFilters } : {}, request.params);
233
+ const blobNameKey = (_c = this.exportTableConfig) === null || _c === void 0 ? void 0 : _c.blobName;
233
234
  const payload = {
234
235
  predicateList: criteria.payload.predicateList || [],
235
236
  reportMetaData: {
237
+ blobName: '',
236
238
  docTypeName: this.exportTableConfig.docTypeName,
237
239
  fileType: type,
238
- locale: ((_c = this.exportTableConfig) === null || _c === void 0 ? void 0 : _c.locale) || this._translateService.currentLang,
239
- fields: ((_d = this.exportTableConfig) === null || _d === void 0 ? void 0 : _d.fields) || fields,
240
+ locale: ((_d = this.exportTableConfig) === null || _d === void 0 ? void 0 : _d.locale) || this._translateService.currentLang,
241
+ fields: ((_e = this.exportTableConfig) === null || _e === void 0 ? void 0 : _e.fields) || fields,
240
242
  headers: []
241
243
  }
242
244
  };
243
- this._translateService
244
- .get(headers)
245
+ forkJoin({
246
+ ar: this._translateService.getTranslation('ar'),
247
+ en: this._translateService.getTranslation('en')
248
+ })
245
249
  .pipe(switchMap((translations) => {
246
- payload.reportMetaData.headers = headers.map((col) => translations[col]);
250
+ const currentTranslations = translations[this._translateService.currentLang];
251
+ payload.reportMetaData.headers = headers.map((col) => _.get(currentTranslations, col));
252
+ payload.reportMetaData.blobName = _.get(translations['ar'], blobNameKey);
253
+ payload.reportMetaData.blobNameEn = _.get(translations['en'], blobNameKey);
247
254
  return this._ngTableService.exportTable(request, payload);
248
255
  }), catchError((_) => {
249
256
  this._toastrService.error('TABLE.EXPORT.RequestError');
@@ -456,4 +463,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
456
463
  type: ContentChild,
457
464
  args: [FILTER_CUSTOM_TEMPLATE, { read: TemplateRef }]
458
465
  }] } });
459
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9jb250YWluZXJzL25kZi10YWJsZS9uZGYtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2NvbnRhaW5lcnMvbmRmLXRhYmxlL25kZi10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sV0FBVyxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFtQixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekcsT0FBTyxFQUVOLG1CQUFtQixFQUVuQixtQkFBbUIsRUFFbkIsTUFBTSx5QkFBeUIsQ0FBQztBQVlqQyxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUlsRSxPQUFPLEVBQUUsZUFB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Q3BCO2lCQUNEOytTQThCUyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdPLE1BQU07c0JBQWxCLEtBQUs7Z0JBUU8sY0FBYztzQkFBMUIsS0FBSztnQkFNTyxVQUFVO3NCQUF0QixLQUFLO2dCQU1JLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFFRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUVHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUVzRCxvQkFBb0I7c0JBQWhGLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNDLG1CQUFtQjtzQkFBOUUsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ0csb0JBQW9CO3NCQUFoRixZQUFZO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0Q29udGVudENoaWxkLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHRPbkNoYW5nZXMsXHJcblx0T3V0cHV0LFxyXG5cdFNpbXBsZUNoYW5nZXMsXHJcblx0VGVtcGxhdGVSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBpaWYsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBQ1RJT05TX1RBQkxFX1RFTVBMQVRFLCBGSUxURVJfQ1VTVE9NX1RFTVBMQVRFLCBTRUFSQ0hfVEFCTEVfVEVNUExBVEUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHtcclxuXHRBZ2dyZWdhdGlvblJlc3BvbnNlLFxyXG5cdENPTVBBUklTT05fT1BFUkFUT1IsXHJcblx0Rm9ybVF1ZXJ5TW9kZWwsXHJcblx0SHRtbERpYWxvZ0NvbXBvbmVudCxcclxuXHRIdG1sRGlhbG9nQ29uZmlnXHJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vbmRmLWZpbHRlcnMnO1xyXG5pbXBvcnQge1xyXG5cdEN1c3RvbUNyaXRlcmlhTW9kZWwsXHJcblx0RXhwb3J0VHlwZSxcclxuXHROZGZFeHBvcnRQYXlsb2FkLFxyXG5cdE5kZlRhYmxlQ29uZmlnLFxyXG5cdFNvcnRUYWJsZUl0ZW0sXHJcblx0VGFibGVDb2x1bW5Db25maWcsXHJcblx0VGFibGVTb3J0T3B0aW9ucyxcclxuXHRUYWJsZVZpZXdNb2RlXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgIE5kZlRhYmxlQ29uZmlndXJhdGlvblNlcnZpY2UsIE5kZlRhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgUEFHRV9TSVpFIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IERlc3Ryb3lTdWJqZWN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBOdXhlb1BhZ2luYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQvbW9kZWxzJztcclxuaW1wb3J0IHsgRHluYW1pY1RhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2R5bmFtaWMtdGFibGUnO1xyXG5pbXBvcnQgeyBDdXN0b21Ub2FzdHJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY3VzdG9tLXRvYXN0ci9zZXJ2aWNlcy9jdXN0b20tdG9hc3RyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOREZfRURJVE9SX1RZUEUgfSBmcm9tICcuLi8uLi8uLi8uLi9uZGYtY29uZmlnLWVkaXRvci9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJzTWFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL25kZi1maWx0ZXJzL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnYXBwLW5kZi10YWJsZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL25kZi10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vbmRmLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0aG9zdDoge1xyXG5cdFx0Y2xhc3M6ICduZGYtdGFibGUnLFxyXG5cdFx0J1tkaXJdJzogJ2RpcmVjdGlvbidcclxuXHR9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZGZUYWJsZUNvbXBvbmVudCBleHRlbmRzIERlc3Ryb3lTdWJqZWN0IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF9hZ2dyZWdhdGlvbnNTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIEFnZ3JlZ2F0aW9uUmVzcG9uc2U+PihudWxsKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5ZWRDb2x1bW5zU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZUNvbHVtbkNvbmZpZ1tdPihbXSk7XHJcblx0cHJpdmF0ZSByZWFkb25seSBfc29ydE9wdGlvblN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVTb3J0T3B0aW9ucz4obnVsbCk7XHJcblx0cHJpdmF0ZSByZWFkb25seSBfdmlld01vZGVTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhYmxlVmlld01vZGU+KCdsaXN0Jyk7XHJcblx0cHJpdmF0ZSByZWFkb25seSBfdGV4dFNlYXJjaFN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihudWxsKTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfYWN0aXZhdGVkQ3JpdGVyaWFTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcclxuXHRcdHByZXZpb3VzVmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0XHRjdXJyZW50VmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0fT4obnVsbCk7XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgX2N1c3RvbUNyaXRlcmlhU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDdXN0b21Dcml0ZXJpYU1vZGVsPih7XHJcblx0XHRwYXJhbXM6IHt9LFxyXG5cdFx0cGF5bG9hZDoge1xyXG5cdFx0XHRwcmVkaWNhdGVMaXN0OiBbXVxyXG5cdFx0fVxyXG5cdH0pO1xyXG5cclxuXHRyZWFkb25seSBhZ2dyZWdhdGlvbnMkID0gdGhpcy5fYWdncmVnYXRpb25zU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHJlYWRvbmx5IGRpc3BsYXllZENvbHVtbnMkID0gdGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi5hc09ic2VydmFibGUoKTtcclxuXHRyZWFkb25seSBzb3J0T3B0aW9uJCA9IHRoaXMuX3NvcnRPcHRpb25TdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cmVhZG9ubHkgdmlld01vZGUkID0gdGhpcy5fdmlld01vZGVTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cmVhZG9ubHkgY3VzdG9tRmlsdGVycyQgPSB0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5hc09ic2VydmFibGUoKTtcclxuXHRyZWFkb25seSB0ZXh0U2VhcmNoJCA9IHRoaXMuX3RleHRTZWFyY2hTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cdHJlYWRvbmx5IHNlYXJjaEFuZEZpbHRlcnMkID0gY29tYmluZUxhdGVzdChbdGhpcy50ZXh0U2VhcmNoJCwgdGhpcy5jdXN0b21GaWx0ZXJzJF0pLnBpcGUoXHJcblx0XHRtYXAoKHJlcykgPT4gdGhpcy5fcHJlcGFyZVNlYXJjaChyZXMpKVxyXG5cdCk7XHJcblx0QElucHV0KCkgcm93czogQXJyYXk8dW5rbm93bj47XHJcblx0QElucHV0KCkgdG90YWxSZWNvcmRzOiBudW1iZXI7XHJcblx0QElucHV0KCkgYXV0b0NhbGN1bGF0ZUhlaWdodCA9IHRydWU7XHJcblx0QElucHV0KCkgZW1wdHlNZXNzYWdlID0gJ3RhYmxlX25vRGF0YSc7XHJcblx0QElucHV0KCkgYWN0aXZlUXVlcnk6IEZvcm1RdWVyeU1vZGVsO1xyXG5cdEBJbnB1dCgpIGNvbmZpZ1BhdGg6IHN0cmluZyA9ICd0YWJsZXMnO1xyXG5cdEBJbnB1dCgpIGNvbmZpZ1RyYW5zZm9ybWVyOiAoY29uZmlnOiBOZGZUYWJsZUNvbmZpZykgPT4gT2JzZXJ2YWJsZTxOZGZUYWJsZUNvbmZpZz47XHJcblx0QElucHV0KCkgdGFibGVLZXk6IHN0cmluZztcclxuXHJcblx0QElucHV0KCkganNvbkVkaXRvckVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0cHJpdmF0ZSBfY29uZmlnOiBOZGZUYWJsZUNvbmZpZztcclxuXHRASW5wdXQoKSBzZXQgY29uZmlnKGNvbmZpZzogTmRmVGFibGVDb25maWcpIHtcclxuXHRcdHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcclxuXHR9XHJcblxyXG5cdGdldCB0YWJsZUNvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLl90YWJsZUNvbmZpZ1N1Yi5nZXRWYWx1ZSgpO1xyXG5cdH1cclxuXHJcblx0QElucHV0KCkgc2V0IGN1c3RvbUNyaXRlcmlhKGNyaXRlcmlhOiBDdXN0b21Dcml0ZXJpYU1vZGVsKSB7XHJcblx0XHRpZiAoY3JpdGVyaWEpIHtcclxuXHRcdFx0dGhpcy5fY3VzdG9tQ3JpdGVyaWFTdWIubmV4dChjcml0ZXJpYSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRASW5wdXQoKSBzZXQgc2VhcmNoVGVybSh2YWx1ZTogc3RyaW5nKSB7XHJcblx0XHRpZiAodmFsdWUpIHtcclxuXHRcdFx0dGhpcy5fdGV4dFNlYXJjaFN1Yi5uZXh0KHZhbHVlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBPdXRwdXQoKSBvblJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvblJvd0luZGV4U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIGFjdGlvbk9uUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvbkdldHRpbmdEYXRhID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvbk11bHRpUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uTG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcblx0QE91dHB1dCgpIG9uUGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZUV2ZW50PigpO1xyXG5cdEBPdXRwdXQoKSBvbkluaXRpYWxpemVkID0gbmV3IEV2ZW50RW1pdHRlcjxOdXhlb1BhZ2luYXRpb248YW55Pj4oKTtcclxuXHRAT3V0cHV0KCkgb25Mb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE51eGVvUGFnaW5hdGlvbjxhbnk+PigpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25RdWVyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgb25Tb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZVNvcnRPcHRpb25zPigpO1xyXG5cclxuXHRAQ29udGVudENoaWxkKEFDVElPTlNfVEFCTEVfVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgYWN0aW9uc1RhYmxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblx0QENvbnRlbnRDaGlsZChTRUFSQ0hfVEFCTEVfVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgc2VhcmNoVGFibGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRAQ29udGVudENoaWxkKEZJTFRFUl9DVVNUT01fVEVNUExBVEUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgZmlsdGVyQ3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG5cdHByaXZhdGUgX3RhYmxlQ29uZmlnU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxOZGZUYWJsZUNvbmZpZz4obnVsbCk7XHJcblxyXG5cdGdldCBvcHRpb25zKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMudGFibGVDb25maWc/Lm9wdGlvbnM7XHJcblx0fVxyXG5cclxuXHRnZXQgZmlsdGVyc0NvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LmZpbHRlcnM7XHJcblx0fVxyXG5cclxuXHRnZXQgc29ydExpc3QoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5zb3J0TGlzdCB8fCBbXTtcclxuXHR9XHJcblxyXG5cdGdldCBjb2x1bW5zT3B0aW9ucygpIHtcclxuXHRcdHJldHVybiB0aGlzLnRhYmxlQ29uZmlnPy5vcHRpb25zPy5jb2x1bW5zO1xyXG5cdH1cclxuXHJcblx0Z2V0IGNvbHVtblRvZ2dsZSgpIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbHVtbnNPcHRpb25zPy50b2dnbGUgPz8gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGdldCB0YWJsZU1vZGUoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy50YWJsZU1vZGU7XHJcblx0fVxyXG5cclxuXHRnZXQgcGFuZWxDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5maWx0ZXJzPy5wYW5lbDtcclxuXHR9XHJcblxyXG5cdGdldCBpc1BhbmVsVG9nZ2xlQXZhaWxhYmxlKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMucGFuZWxDb25maWc/LnRvZ2dsZUJ1dHRvbiA/PyB0cnVlO1xyXG5cdH1cclxuXHJcblx0Z2V0IHRleHRTZWFyY2hDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5zZWFyY2g7XHJcblx0fVxyXG5cclxuXHRnZXQgZmlsdGVyUmVsb2FkQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8uZmlsdGVycz8ucmVsb2FkO1xyXG5cdH1cclxuXHJcblx0Z2V0IGV4cG9ydFRhYmxlQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8uZXhwb3J0O1xyXG5cdH1cclxuXHJcblx0cmVhZG9ubHkgZGVmYXVsdFNvcnQgPSBbeyBwcm9wOiAncHJvcGVydGllcy5jcmVhdGVkQXQnLCBkaXI6ICdkZXNjJyB9XTtcclxuXHJcblx0ZGlyZWN0aW9uOiBEaXJlY3Rpb24gPSAncnRsJztcclxuXHRpc1BhbmVsT3BlbmVkID0gZmFsc2U7XHJcblx0cmVhZG9ubHkgZGVmYXVsdFBhZ2VTaXplcyA9IFBBR0VfU0laRTtcclxuXHJcblx0cHJpdmF0ZSBfaXNDb25maWdDaGFuZ2VkID0gZmFsc2U7XHJcblx0cHJpdmF0ZSBfdGFibGVJbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cdHByaXZhdGUgX3BhZ2VDaGFuZ2VkID0gZmFsc2U7XHJcblx0cHJpdmF0ZSBfYWN0aXZlUGFnZTogUGFnZUV2ZW50ID0ge1xyXG5cdFx0cGFnZUluZGV4OiAxLFxyXG5cdFx0cGFnZVNpemU6IDEwLFxyXG5cdFx0bGVuZ3RoOiAwXHJcblx0fTtcclxuXHJcblx0cHJpdmF0ZSBfc29ydFZhbHVlOiBUYWJsZVNvcnRPcHRpb25zO1xyXG5cclxuXHRlZGl0b3JUeXBlID0gTkRGX0VESVRPUl9UWVBFLlRBQkxFUztcclxuXHQvKipcclxuXHQgKlxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJpdmF0ZSBfZmlsdGVyc01hcHBlcjogRmlsdGVyc01hcHBlclNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9keW5hbWljVGFibGVTZXJ2aWNlOiBEeW5hbWljVGFibGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcclxuXHRcdHByaXZhdGUgX25nVGFibGVTZXJ2aWNlOiBOZGZUYWJsZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF90b2FzdHJTZXJ2aWNlOiBDdXN0b21Ub2FzdHJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfbmRmVGFibGVDb25maWd1cmF0aW9uU2VydmljZTogTmRmVGFibGVDb25maWd1cmF0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nXHJcblx0KSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0dGhpcy5fdHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2VcclxuXHRcdFx0LnBpcGUoc3RhcnRXaXRoKHsgbGFuZzogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyB9KSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuXHRcdFx0XHR0aGlzLmRpcmVjdGlvbiA9IHJlcy5sYW5nID09PSAnYXInID8gJ3J0bCcgOiAnbHRyJztcclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRjb25zdCB0YWJsZUtleSA9IGNoYW5nZXMudGFibGVLZXk/LmN1cnJlbnRWYWx1ZTtcclxuXHRcdGNvbnN0IGNvbmZpZyA9IGNoYW5nZXMuY29uZmlnPy5jdXJyZW50VmFsdWU7XHJcblxyXG5cdFx0aWYgKHRhYmxlS2V5ICYmIGNvbmZpZykge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW5ub3Qgc2V0IGJvdGggdGFibGVLZXkgYW5kIHRhYmxlQ29uZmlnIGF0IHRoZSBzYW1lIHRpbWUuJyk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGNvbmZpZykge1xyXG5cdFx0XHR0aGlzLl9hcHBseVRhYmxlQ29uZmlnKGNvbmZpZyk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRhYmxlS2V5KSB7XHJcblx0XHRcdHRoaXMuX2xvYWRUYWJsZUNvbmZpZyh0YWJsZUtleSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR0b2dnbGVQYW5lbCgpIHtcclxuXHRcdHRoaXMuaXNQYW5lbE9wZW5lZCA9ICF0aGlzLmlzUGFuZWxPcGVuZWQ7XHJcblx0fVxyXG5cclxuXHRvbkxvYWQoZGF0YTogTnV4ZW9QYWdpbmF0aW9uPGFueT4pOiB2b2lkIHtcclxuXHRcdHRoaXMub25Mb2FkZWQuZW1pdChkYXRhKTtcclxuXHRcdGlmICghdGhpcy5fdGFibGVJbml0aWFsaXplZCB8fCB0aGlzLmZpbHRlclJlbG9hZENvbmZpZz8uc3RyYXRlZ3kgPT09ICduZXZlcicgfHwgdGhpcy5fcGFnZUNoYW5nZWQpIHtcclxuXHRcdFx0dGhpcy5fcGFnZUNoYW5nZWQgPSBmYWxzZTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgfHwgdGhpcy5maWx0ZXJSZWxvYWRDb25maWc/LnN0cmF0ZWd5ID09PSAnYWx3YXlzJykge1xyXG5cdFx0XHR0aGlzLl9hZ2dyZWdhdGlvbnNTdWIubmV4dChkYXRhPy5hZ2dyZWdhdGlvbnMpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuZmlsdGVyUmVsb2FkQ29uZmlnPy5zdHJhdGVneSA9PT0gJ29uQ2hhbmdlJykge1xyXG5cdFx0XHRjb25zdCBhY3RpdmF0ZWRRdWVyeSA9IHRoaXMuX2FjdGl2YXRlZENyaXRlcmlhU3ViLmdldFZhbHVlKCk7XHJcblx0XHRcdGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGFjdGl2YXRlZFF1ZXJ5Py5jdXJyZW50VmFsdWUgfHwge307XHJcblx0XHRcdGNvbnN0IHByZXZpb3VzVmFsdWUgPSBhY3RpdmF0ZWRRdWVyeT8ucHJldmlvdXNWYWx1ZSB8fCB7fTtcclxuXHJcblx0XHRcdGNvbnN0IHVwZGF0ZWRLZXlzID0gXy51bmlvbihfLmtleXMocHJldmlvdXNWYWx1ZSksIF8ua2V5cyhjdXJyZW50VmFsdWUpKS5maWx0ZXIoXHJcblx0XHRcdFx0KGtleSkgPT4gIV8uaXNFcXVhbChwcmV2aW91c1ZhbHVlW2tleV0sIGN1cnJlbnRWYWx1ZVtrZXldKVxyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0Y29uc3QgdHJpZ2dlcktleXMgPSB0aGlzLmZpbHRlclJlbG9hZENvbmZpZy50cmlnZ2VyRmllbGRzIHx8IFtdO1xyXG5cdFx0XHRjb25zdCBzaG91bGRSZWxvYWQgPSB0cmlnZ2VyS2V5cy5zb21lKChrZXkpID0+IHVwZGF0ZWRLZXlzLmluY2x1ZGVzKGtleSkpO1xyXG5cdFx0XHRpZiAoc2hvdWxkUmVsb2FkKSB7XHJcblx0XHRcdFx0dGhpcy5fYWdncmVnYXRpb25zU3ViLm5leHQoZGF0YT8uYWdncmVnYXRpb25zKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25Jbml0aWFsaXplKGRhdGE6IE51eGVvUGFnaW5hdGlvbjxhbnk+KTogdm9pZCB7XHJcblx0XHR0aGlzLl9hZ2dyZWdhdGlvbnNTdWIubmV4dChkYXRhPy5hZ2dyZWdhdGlvbnMpO1xyXG5cdFx0dGhpcy5fdGFibGVJbml0aWFsaXplZCA9IHRydWU7XHJcblx0XHR0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSBmYWxzZTtcclxuXHRcdHRoaXMub25Jbml0aWFsaXplZC5lbWl0KGRhdGEpO1xyXG5cdH1cclxuXHJcblx0Y29sdW1uc0NoYW5nZWQoY29sdW1uczogVGFibGVDb2x1bW5Db25maWdbXSkge1xyXG5cdFx0dGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi5uZXh0KGNvbHVtbnMpO1xyXG5cdH1cclxuXHJcblx0c29ydENoYW5nZWQoc29ydDogU29ydFRhYmxlSXRlbSkge1xyXG5cdFx0dGhpcy5fc29ydFZhbHVlID0geyBzb3J0Qnk6IHNvcnQudmFsdWUsIHNvcnRPcmRlcjogc29ydC5kaXJlY3Rpb24gfTtcclxuXHRcdHRoaXMuX3NvcnRPcHRpb25TdWIubmV4dCh0aGlzLl9zb3J0VmFsdWUpO1xyXG5cdH1cclxuXHJcblx0bW9kZUNoYW5nZWQobW9kZTogVGFibGVWaWV3TW9kZSkge1xyXG5cdFx0dGhpcy5fdmlld01vZGVTdWIubmV4dChtb2RlKTtcclxuXHR9XHJcblxyXG5cdG9uU29ydENoYW5nZWQoc29ydDogVGFibGVTb3J0T3B0aW9ucykge1xyXG5cdFx0dGhpcy5fc29ydFZhbHVlID0gc29ydDtcclxuXHRcdHRoaXMub25Tb3J0LmVtaXQoc29ydCk7XHJcblx0fVxyXG5cclxuXHRleHBvcnRUYWJsZSh0eXBlOiBFeHBvcnRUeXBlKSB7XHJcblx0XHRjb25zdCByZXF1ZXN0ID0gXy5jbG9uZURlZXAodGhpcy5leHBvcnRUYWJsZUNvbmZpZz8ucmVxdWVzdCk7XHJcblx0XHRpZiAoIXJlcXVlc3QpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgY29sdW1ucyA9IHRoaXMuX2Rpc3BsYXllZENvbHVtbnNTdWIuZ2V0VmFsdWUoKTtcclxuXHRcdGNvbnN0IGZpZWxkcyA9IGNvbHVtbnMubWFwKChjb2wpID0+IGNvbC5oZWFkZXJDbGFzcyk7XHJcblx0XHRjb25zdCBoZWFkZXJzID0gY29sdW1ucy5tYXAoKGNvbCkgPT4gKHRoaXMudGFibGVDb25maWcucHJlZml4IHx8ICcnKSArIGNvbC5uYW1lKTtcclxuXHJcblx0XHRjb25zdCBjcml0ZXJpYSA9IHRoaXMuX2N1c3RvbUNyaXRlcmlhU3ViLmdldFZhbHVlKCk7XHJcblxyXG5cdFx0cmVxdWVzdC5wYXJhbXMgPSBPYmplY3QuYXNzaWduKFxyXG5cdFx0XHR7fSxcclxuXHRcdFx0Y3JpdGVyaWEucGFyYW1zLFxyXG5cdFx0XHR0aGlzLl9zb3J0VmFsdWUgfHwge30sXHJcblx0XHRcdHRoaXMudGFibGVDb25maWc/LnF1aWNrRmlsdGVycyA/IHsgcXVpY2tGaWx0ZXJzOiB0aGlzLnRhYmxlQ29uZmlnLnF1aWNrRmlsdGVycyB9IDoge30sXHJcblx0XHRcdHJlcXVlc3QucGFyYW1zXHJcblx0XHQpO1xyXG5cclxuXHRcdGNvbnN0IHBheWxvYWQ6IE5kZkV4cG9ydFBheWxvYWQgPSB7XHJcblx0XHRcdHByZWRpY2F0ZUxpc3Q6IGNyaXRlcmlhLnBheWxvYWQucHJlZGljYXRlTGlzdCB8fCBbXSxcclxuXHRcdFx0cmVwb3J0TWV0YURhdGE6IHtcclxuXHRcdFx0XHRkb2NUeXBlTmFtZTogdGhpcy5leHBvcnRUYWJsZUNvbmZpZy5kb2NUeXBlTmFtZSxcclxuXHRcdFx0XHRmaWxlVHlwZTogdHlwZSxcclxuXHRcdFx0XHRsb2NhbGU6IHRoaXMuZXhwb3J0VGFibGVDb25maWc/LmxvY2FsZSB8fCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nLFxyXG5cdFx0XHRcdGZpZWxkczogdGhpcy5leHBvcnRUYWJsZUNvbmZpZz8uZmllbGRzIHx8IGZpZWxkcyxcclxuXHRcdFx0XHRoZWFkZXJzOiBbXVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2VcclxuXHRcdFx0LmdldChoZWFkZXJzKVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKHRyYW5zbGF0aW9ucykgPT4ge1xyXG5cdFx0XHRcdFx0cGF5bG9hZC5yZXBvcnRNZXRhRGF0YS5oZWFkZXJzID0gaGVhZGVycy5tYXAoKGNvbCkgPT4gdHJhbnNsYXRpb25zW2NvbF0pO1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuX25nVGFibGVTZXJ2aWNlLmV4cG9ydFRhYmxlKHJlcXVlc3QsIHBheWxvYWQpO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHRcdGNhdGNoRXJyb3IoKF8pID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2UuZXJyb3IoJ1RBQkxFLkVYUE9SVC5SZXF1ZXN0RXJyb3InKTtcclxuXHRcdFx0XHRcdHJldHVybiBvZihmYWxzZSk7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0ZmlsdGVyKEJvb2xlYW4pLFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlczogYm9vbGVhbikgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXMpIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2Uuc3VjY2VzcygnVEFCTEUuRVhQT1JULnJlcXVlc3RTdWNjZXNzJyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2UuZXJyb3IoJ1RBQkxFLkVYUE9SVC5yZXF1ZXN0RXJyb3InKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZmlsdGVyQ2hhbmdlZChjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0dGhpcy5fdHJpZ2dlckNyaXRlcmlhQ2hhbmdlcyhjcml0ZXJpYSk7XHJcblx0XHRpZiAodGhpcy5maWx0ZXJzQ29uZmlnPy5tb2RlICE9PSAncGF5bG9hZCcpIHtcclxuXHRcdFx0Y29uc3QgaXNTdHJpbmdpZnlQYXJhbXMgPSB0aGlzLmZpbHRlcnNDb25maWc/LnN0cmluZ2lmeVBhcmFtcztcclxuXHRcdFx0Y29uc3QgdmFsdWUgPSAhaXNTdHJpbmdpZnlQYXJhbXMgPyBjcml0ZXJpYSA6IHRoaXMuX3N0cmluZ2lmeVZhbHVlcyhjcml0ZXJpYSk7XHJcblx0XHRcdHRoaXMuX2R5bmFtaWNUYWJsZVNlcnZpY2UucmVmcmVzaERhdGEubmV4dCh2YWx1ZSk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBwYXlsb2FkID0gdGhpcy5fZmlsdGVyc01hcHBlci5wcmVwYXJlUGF5bG9hZCh0aGlzLmZpbHRlcnNDb25maWcuZmllbGRzLCBjcml0ZXJpYSk7XHJcblx0XHR0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5uZXh0KHBheWxvYWQpO1xyXG5cdH1cclxuXHJcblx0b25UZXh0U2VhcmNoKHRleHQ6IHN0cmluZykge1xyXG5cdFx0aWYgKCF0aGlzLnRleHRTZWFyY2hDb25maWc/LmZpZWxkS2V5IHx8IHR5cGVvZiB0ZXh0ICE9PSAnc3RyaW5nJykge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0ZXh0KSB7XHJcblx0XHRcdHRoaXMub25DbGVhclNlYXJjaCgpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLl90ZXh0U2VhcmNoU3ViLm5leHQodGV4dCk7XHJcblx0fVxyXG5cclxuXHRvbkNsZWFyU2VhcmNoKCkge1xyXG5cdFx0dGhpcy5fdGV4dFNlYXJjaFN1Yi5uZXh0KG51bGwpO1xyXG5cdH1cclxuXHJcblx0b3BlblNlYXJjaE1vZGFsKCkge1xyXG5cdFx0Y29uc3QgX2RpYWxvZ0NvbmZpZyA9IHRoaXMudGV4dFNlYXJjaENvbmZpZz8uc3VmZml4Py5kaWFsb2c7XHJcblx0XHRpZiAoIV9kaWFsb2dDb25maWcpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgeyBvcHRpb25zLCAuLi5kYXRhIH0gPSBfZGlhbG9nQ29uZmlnO1xyXG5cdFx0dGhpcy5fZGlhbG9nLm9wZW48SHRtbERpYWxvZ0NvbXBvbmVudCwgSHRtbERpYWxvZ0NvbmZpZz4oSHRtbERpYWxvZ0NvbXBvbmVudCwge1xyXG5cdFx0XHRwYW5lbENsYXNzOiAncC0wJyxcclxuXHRcdFx0bWluV2lkdGg6ICdtaW4oNTAwcHgsNjB2dyknLFxyXG5cdFx0XHRkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uLFxyXG5cdFx0XHQuLi5vcHRpb25zLFxyXG5cdFx0XHRkYXRhXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG9uUGFnZUNoYW5nZWQocGFnZTogUGFnZUV2ZW50KSB7XHJcblx0XHR0aGlzLl9wYWdlQ2hhbmdlZCA9IHRoaXMuX2FjdGl2ZVBhZ2UucGFnZUluZGV4ICE9PSBwYWdlLnBhZ2VJbmRleCB8fCB0aGlzLl9hY3RpdmVQYWdlLnBhZ2VTaXplICE9PSBwYWdlLnBhZ2VTaXplO1xyXG5cdFx0aWYgKHRoaXMuX3BhZ2VDaGFuZ2VkKSB7XHJcblx0XHRcdHRoaXMub25QYWdlLmVtaXQocGFnZSk7XHJcblx0XHRcdHRoaXMuX2FjdGl2ZVBhZ2UgPSBwYWdlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfZmlsdGVyQnlWaXNpYmlsaXR5KGNvbHVtbnM6IFRhYmxlQ29sdW1uQ29uZmlnW10pOiBUYWJsZUNvbHVtbkNvbmZpZ1tdIHtcclxuXHRcdHJldHVybiBjb2x1bW5zLmZpbHRlcigoY29sKSA9PiBjb2wuZGVmYXVsdFZpc2libGUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcHJlcGFyZVNlYXJjaChbc2VhcmNoLCBmaWx0ZXJzXTogW1xyXG5cdFx0c3RyaW5nLFxyXG5cdFx0e1xyXG5cdFx0XHRwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdFx0XHRwYXlsb2FkPzogeyBwcmVkaWNhdGVMaXN0OiBhbnlbXSB9ICYgUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRcdH1cclxuXHRdKTogYW55IHtcclxuXHRcdHtcclxuXHRcdFx0Y29uc3QgeyBwcmVkaWNhdGVMaXN0IH0gPSBmaWx0ZXJzLnBheWxvYWQ7XHJcblx0XHRcdGNvbnN0IF9rZXkgPSB0aGlzLnRleHRTZWFyY2hDb25maWc/LmZpZWxkS2V5O1xyXG5cdFx0XHRjb25zdCBzZWFyY2hJbmRleCA9IHByZWRpY2F0ZUxpc3QuZmluZEluZGV4KChpdG0pID0+IGl0bS5uYW1lID09PSBfa2V5KTtcclxuXHRcdFx0aWYgKHNlYXJjaCAmJiBfa2V5KSB7XHJcblx0XHRcdFx0aWYgKHNlYXJjaEluZGV4ID49IDApIHtcclxuXHRcdFx0XHRcdHByZWRpY2F0ZUxpc3Rbc2VhcmNoSW5kZXhdLnZhbHVlID0gYCcke3NlYXJjaH0nYDtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cHJlZGljYXRlTGlzdC5wdXNoKHtcclxuXHRcdFx0XHRcdFx0bmFtZTogX2tleSxcclxuXHRcdFx0XHRcdFx0b3BlcmF0b3I6IHRoaXMudGV4dFNlYXJjaENvbmZpZz8ub3BlcmF0b3IgfHwgQ09NUEFSSVNPTl9PUEVSQVRPUi5lcXVhbHMsXHJcblx0XHRcdFx0XHRcdHZhbHVlOiBgJyR7c2VhcmNofSdgXHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSBpZiAoc2VhcmNoSW5kZXggPj0gMCkge1xyXG5cdFx0XHRcdHByZWRpY2F0ZUxpc3Quc3BsaWNlKHNlYXJjaEluZGV4KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gXy5jbG9uZURlZXAoeyAuLi5maWx0ZXJzIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmVudHJpZXMoY3JpdGVyaWEpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcclxuXHRcdFx0YWNjW2tleV0gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IHZhbHVlO1xyXG5cdFx0XHRyZXR1cm4gYWNjO1xyXG5cdFx0fSwge30pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfdHJpZ2dlckNyaXRlcmlhQ2hhbmdlcyhjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0aWYgKHRoaXMuX3RhYmxlSW5pdGlhbGl6ZWQpIHtcclxuXHRcdFx0dGhpcy5vblF1ZXJ5Q2hhbmdlLmVtaXQoY3JpdGVyaWEpO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgYWN0aXZhdGVkUXVlcnkgPSB7IC4uLnRoaXMuX2FjdGl2YXRlZENyaXRlcmlhU3ViLmdldFZhbHVlKCkgfTtcclxuXHRcdGNvbnN0IHByZXZpb3VzVmFsdWUgPSBhY3RpdmF0ZWRRdWVyeT8uY3VycmVudFZhbHVlO1xyXG5cdFx0dGhpcy5fYWN0aXZhdGVkQ3JpdGVyaWFTdWIubmV4dCh7XHJcblx0XHRcdHByZXZpb3VzVmFsdWU6IHByZXZpb3VzVmFsdWUsXHJcblx0XHRcdGN1cnJlbnRWYWx1ZTogY3JpdGVyaWFcclxuXHRcdH0pO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb25cclxuXHQgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHNldCB0aGUgdGFibGUgY29uZmlndXJhdGlvbi5cclxuXHQgKiBAcGFyYW0gY29uZmlnIE5kZlRhYmxlQ29uZmlnXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfYXBwbHlUYWJsZUNvbmZpZyhjb25maWc6IE5kZlRhYmxlQ29uZmlnKTogdm9pZCB7XHJcblx0XHR0aGlzLl90YWJsZUNvbmZpZ1N1Yi5uZXh0KGNvbmZpZyk7XHJcblx0XHR0aGlzLmlzUGFuZWxPcGVuZWQgPSBjb25maWc/Lm9wdGlvbnM/LmZpbHRlcnM/LnBhbmVsPy52aXNpYmxlID8/IHRydWU7XHJcblx0XHR0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSAhIWNvbmZpZztcclxuXHRcdGlmIChjb25maWcuY29sdW1ucykge1xyXG5cdFx0XHR0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zU3ViLm5leHQodGhpcy5fZmlsdGVyQnlWaXNpYmlsaXR5KGNvbmZpZy5jb2x1bW5zKSk7XHJcblx0XHR9XHJcblx0XHRpZiAoY29uZmlnLnNvcnRpbmdCeSkge1xyXG5cdFx0XHR0aGlzLl9zb3J0VmFsdWUgPSBjb25maWcuc29ydGluZ0J5O1xyXG5cdFx0XHR0aGlzLl9zb3J0T3B0aW9uU3ViLm5leHQoY29uZmlnLnNvcnRpbmdCeSk7XHJcblx0XHR9XHJcblx0XHRpZiAoY29uZmlnPy5vcHRpb25zPy50YWJsZU1vZGU/Lm1vZGUpIHtcclxuXHRcdFx0dGhpcy5fdmlld01vZGVTdWIubmV4dChjb25maWcub3B0aW9ucy50YWJsZU1vZGUubW9kZSk7XHJcblx0XHR9XHJcblx0XHRpZiAoY29uZmlnLnBhZ2VTaXplKSB7XHJcblx0XHRcdHRoaXMuX2FjdGl2ZVBhZ2UucGFnZVNpemUgPSBjb25maWcucGFnZVNpemU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqIEBkZXNjcmlwdGlvbiBMb2FkcyB0aGUgdGFibGUgY29uZmlndXJhdGlvbiBiYXNlZCBvbiB0aGUgcHJvdmlkZWQga2V5IGFuZCBhcHBsaWVzIGl0LlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IHVzZWQgdG8gZmV0Y2ggdGhlIHRhYmxlIGNvbmZpZ3VyYXRpb24uXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfbG9hZFRhYmxlQ29uZmlnKGtleTogc3RyaW5nKSB7XHJcblx0XHR0aGlzLl9uZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlXHJcblx0XHRcdC5nZXRUYWJsZUNvbmZpZ3VyYXRpb24oa2V5LCB0aGlzLmNvbmZpZ1BhdGgpXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgoY29uZmlnKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5jb25maWdUcmFuc2Zvcm1lciAmJiBfLmlzRnVuY3Rpb24odGhpcy5jb25maWdUcmFuc2Zvcm1lcikpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuY29uZmlnVHJhbnNmb3JtZXIoY29uZmlnKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHJldHVybiBvZihjb25maWcpO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xyXG5cdFx0XHRcdHRoaXMuX2FwcGx5VGFibGVDb25maWcoY29uZmlnKTtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXZcclxuXHQqbmdJZj1cInRhYmxlQ29uZmlnXCJcclxuXHRjbGFzcz1cIm5kZi10YWJsZV9fY29udGFpbmVyXCJcclxuXHRbY2xhc3MucGFuZWwtb3BlbmVkXT1cImlzUGFuZWxPcGVuZWQgJiYgZmlsdGVyc0NvbmZpZ1wiXHJcblx0W2Rpcl09XCJkaXJlY3Rpb25cIlxyXG5cdG5kZkZsdWlkSGVpZ2h0XHJcblx0Y3NzVmFyPVwiLS1uZGYtdGFibGUtaGVpZ2h0XCJcclxuXHRbY2FsY3VsYXRlXT1cImF1dG9DYWxjdWxhdGVIZWlnaHRcIlxyXG4+XHJcblx0PGRpdiBjbGFzcz1cIm5kZi10YWJsZV9fcGFuZWxcIiAqbmdJZj1cImZpbHRlcnNDb25maWc/LmZpZWxkc1wiPlxyXG5cdFx0PGFwcC1maWx0ZXJzLXBhbmVsXHJcblx0XHRcdFtmaWVsZHNdPVwiZmlsdGVyc0NvbmZpZy5maWVsZHNcIlxyXG5cdFx0XHRbYWdncmVnYXRpb25zXT1cImFnZ3JlZ2F0aW9ucyQgfCBhc3luY1wiXHJcblx0XHRcdChmaWx0ZXJDaGFuZ2VkKT1cImZpbHRlckNoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHRcdFthY3RpdmVRdWVyeV09XCJhY3RpdmVRdWVyeVwiXHJcblx0XHRcdGNsYXNzPVwibmRmLXRhYmxlX19maWx0ZXJzXCJcclxuXHRcdFx0W2N1c3RvbVRlbXBsYXRlUmVmXT1cImZpbHRlckN1c3RvbVRlbXBsYXRlXCJcclxuXHRcdD48L2FwcC1maWx0ZXJzLXBhbmVsPlxyXG5cdDwvZGl2PlxyXG5cdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2NvbnRlbnRcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2hlYWRlciBmbGV4XCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2hlYWRlcl9fY3VzdG9tLWFjdGlvbnMgZmxleCBnYXAteC00IGl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdDxuZy1jb250YWluZXJcclxuXHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlYXJjaFRhYmxlVGVtcGxhdGUgfHwgZGVmYXVsdEFjdGlvblRlbXBsYXRlXCJcclxuXHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XHJcblx0XHRcdFx0XHRcdCRpbXBsaWNpdDogdGFibGVDb25maWcsXHJcblx0XHRcdFx0XHRcdHBhbmVsT3BlbmVkOiBpc1BhbmVsT3BlbmVkLFxyXG5cdFx0XHRcdFx0XHR0b2dnbGVQYW5lbDogdG9nZ2xlUGFuZWwsXHJcblx0XHRcdFx0XHRcdG9wZW5Nb2RhbDogb3BlblNlYXJjaE1vZGFsLFxyXG5cdFx0XHRcdFx0XHRzZWFyY2g6IG9uVGV4dFNlYXJjaCxcclxuXHRcdFx0XHRcdFx0Y2xlYXI6IG9uQ2xlYXJTZWFyY2hcclxuXHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdD48L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlICNkZWZhdWx0QWN0aW9uVGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAqbmdJZj1cImlzUGFuZWxUb2dnbGVBdmFpbGFibGVcIiBjbGFzcz1cInRvZ2dsZS1idXR0b25cIiAoY2xpY2spPVwidG9nZ2xlUGFuZWwoKVwiPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWljb24+IGZpbHRlcl9hbHQ8L21hdC1pY29uPlxyXG5cdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHQ8YXBwLXRleHQtc2VhcmNoXHJcblx0XHRcdFx0XHRcdCpuZ0lmPVwidGV4dFNlYXJjaENvbmZpZ1wiXHJcblx0XHRcdFx0XHRcdFtzZWFyY2hDb25maWddPVwidGV4dFNlYXJjaENvbmZpZ1wiXHJcblx0XHRcdFx0XHRcdChvcGVuTW9kYWwpPVwib3BlblNlYXJjaE1vZGFsKClcIlxyXG5cdFx0XHRcdFx0XHRbc2VhcmNoXT1cInRleHRTZWFyY2gkIHwgYXN5bmNcIlxyXG5cdFx0XHRcdFx0XHQoc2VhcmNoQ2hhbmdlKT1cIm9uVGV4dFNlYXJjaCgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0KGNsZWFyKT1cIm9uQ2xlYXJTZWFyY2goKVwiXHJcblx0XHRcdFx0XHQ+PC9hcHAtdGV4dC1zZWFyY2g+XHJcblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2hlYWRlcl9fYWN0aW9ucyBmbGV4IGdhcC14LTQgaXRlbXMtY2VudGVyXCI+XHJcblx0XHRcdFx0PGFwcC1lZGl0b3ItYnV0dG9uXHJcblx0XHRcdFx0XHQqbmdJZj1cImpzb25FZGl0b3JFbmFibGVkICYmICh0YWJsZUtleSB8fCB0YWJsZUNvbmZpZz8ua2V5KVwiXHJcblx0XHRcdFx0XHRba2V5XT1cInRhYmxlS2V5IHx8IHRhYmxlQ29uZmlnPy5rZXlcIlxyXG4gICAgICAgICAgW3R5cGVdPVwiZWRpdG9yVHlwZVwiXHJcblx0XHRcdFx0PjwvYXBwLWVkaXRvci1idXR0b24+XHJcblx0XHRcdFx0PG5kZi10YWJsZS1leHBvcnRcclxuXHRcdFx0XHRcdCpuZ0lmPVwiZXhwb3J0VGFibGVDb25maWc/LmVuYWJsZWRcIlxyXG5cdFx0XHRcdFx0W2NvbmZpZ109XCJleHBvcnRUYWJsZUNvbmZpZ1wiXHJcblx0XHRcdFx0XHQob25FeHBvcnQpPVwiZXhwb3J0VGFibGUoJGV2ZW50KVwiXHJcblx0XHRcdFx0PjwvbmRmLXRhYmxlLWV4cG9ydD5cclxuXHJcblx0XHRcdFx0PHRhYmxlLXNvcnRpbmctbGlzdFxyXG5cdFx0XHRcdFx0Km5nSWY9XCIhIXNvcnRMaXN0Py5sZW5ndGhcIlxyXG5cdFx0XHRcdFx0W3NvcnRMaXN0XT1cInNvcnRMaXN0XCJcclxuXHRcdFx0XHRcdChzb3J0Q2hhbmdlZCk9XCJzb3J0Q2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0XHQ+PC90YWJsZS1zb3J0aW5nLWxpc3Q+XHJcblx0XHRcdFx0PHRhYmxlLWNvbHVtbnMtdG9nZ2xlclxyXG5cdFx0XHRcdFx0Km5nSWY9XCJjb2x1bW5Ub2dnbGVcIlxyXG5cdFx0XHRcdFx0W2NvbHVtbnNdPVwidGFibGVDb25maWcuY29sdW1uc1wiXHJcblx0XHRcdFx0XHRbcHJlZml4XT1cInRhYmxlQ29uZmlnLnByZWZpeFwiXHJcblx0XHRcdFx0XHRbc29ydGFibGVdPVwiY29sdW1uc09wdGlvbnM/LnNvcnRhYmxlXCJcclxuXHRcdFx0XHRcdChjb2x1bW5zQ2hhbmdlZCk9XCJjb2x1bW5zQ2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0XHQ+PC90YWJsZS1jb2x1bW5zLXRvZ2dsZXI+XHJcblx0XHRcdFx0PG1vZGUtdG9nZ2xlclxyXG5cdFx0XHRcdFx0Km5nSWY9XCJ0YWJsZU1vZGU/LnRvZ2dsZU1vZGVcIlxyXG5cdFx0XHRcdFx0W21vZGVdPVwidGFibGVNb2RlLm1vZGUgfHwgJ2xpc3QnXCJcclxuXHRcdFx0XHRcdFttb2Rlc0xpc3RdPVwidGFibGVNb2RlPy5hdmFpbGFibGVNb2RlXCJcclxuXHRcdFx0XHRcdChtb2RlQ2hhbmdlZCk9XCJtb2RlQ2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0XHQ+PC9tb2RlLXRvZ2dsZXI+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uc1RhYmxlVGVtcGxhdGVcIlxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcclxuXHRcdFx0XHRcdFx0JGltcGxpY2l0OiB0YWJsZUNvbmZpZyxcclxuXHRcdFx0XHRcdFx0cGFuZWxPcGVuZWQ6IGlzUGFuZWxPcGVuZWQsXHJcblx0XHRcdFx0XHRcdHRvZ2dsZVBhbmVsOiB0b2dnbGVQYW5lbCxcclxuXHRcdFx0XHRcdFx0b3Blbk1vZGFsOiBvcGVuU2VhcmNoTW9kYWwsXHJcblx0XHRcdFx0XHRcdHNlYXJjaDogb25UZXh0U2VhcmNoLFxyXG5cdFx0XHRcdFx0XHRjbGVhcjogb25DbGVhclNlYXJjaFxyXG5cdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0PjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cclxuXHRcdDxjdHMtZHluYW1pYy10YWJsZVxyXG5cdFx0XHQqbmdJZj1cIiF0YWJsZUNvbmZpZy5pc0RhdGFQcm92aWRlZFwiXHJcblx0XHRcdGNsYXNzPVwibmRmLXRhYmxlX190YWJsZSB0YWJsZS1zdHlsZVwiXHJcblx0XHRcdFtjb2x1bW5zXT1cImRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmNcIlxyXG5cdFx0XHRbcmVzcG9uc2l2ZUNvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luY1wiXHJcblx0XHRcdFtmdWxsV2lkdGhdPVwidGFibGVDb25maWcuZnVsbFdpZHRoIHx8ICdhdXRvJ1wiXHJcblx0XHRcdFtwYWdlU2l6ZV09XCJ0YWJsZUNvbmZpZy5wYWdlU2l6ZSB8fCAxMFwiXHJcblx0XHRcdFtwYWdlTnVtYmVyXT1cInRhYmxlQ29uZmlnLnBhZ2VOdW1iZXIgfHwgMVwiXHJcblx0XHRcdFtwYWdlUHJvdmlkZXJdPVwidGFibGVDb25maWcucGFnZVByb3ZpZGVyXCJcclxuXHRcdFx0W2N1c3RvbVVybF09XCJ0YWJsZUNvbmZpZy5jdXN0b21VcmxcIlxyXG5cdFx0XHRbcXVpY2tGaWx0ZXJdPVwidGFibGVDb25maWcucXVpY2tGaWx0ZXJzID8geyBxdWlja0ZpbHRlcnM6IHRhYmxlQ29uZmlnLnF1aWNrRmlsdGVycyB9IDogdW5kZWZpbmVkXCJcclxuXHRcdFx0W2RlZnVsdFNvcnRdPVwidGFibGVDb25maWcuZGVmYXVsdFNvcnQgfHwgZGVmYXVsdFNvcnRcIlxyXG5cdFx0XHRbc29ydGluZ0J5XT1cInNvcnRPcHRpb24kIHwgYXN5bmNcIlxyXG5cdFx0XHRbZW50aXR5VHlwZV09XCInYWxsJ1wiXHJcblx0XHRcdFtmaWVsZHNdPVwidGFibGVDb25maWcuZmllbGRzXCJcclxuXHRcdFx0W3RhYmxlTW9kZV09XCJ2aWV3TW9kZSQgfCBhc3luY1wiXHJcblx0XHRcdFtjb21wb25lbnROYW1lXT1cInRhYmxlTW9kZT8uWydjb21wb25lbnROYW1lJ11cIlxyXG5cdFx0XHRbcmFuZ2VdPVwidGFibGVDb25maWc/LnJhbmdlXCJcclxuXHRcdFx0W2lzU2VhcmNoUGFnZV09XCJ0YWJsZUNvbmZpZz8uaXNTZWFyY2hQYWdlXCJcclxuXHRcdFx0W211bHRpU2VsZWN0Um93c109XCJ0YWJsZUNvbmZpZz8ubXVsdGlTZWxlY3RSb3dzXCJcclxuXHRcdFx0W2N1c3RvbUZpcnN0Um93XT1cInRhYmxlQ29uZmlnPy5jdXN0b21GaXJzdFJvd1wiXHJcblx0XHRcdFtoaWdobGlnaHRTZWxlY3RlZENhcmRdPVwidGFibGVDb25maWc/LmhpZ2hsaWdodFNlbGVjdGVkQ2FyZFwiXHJcblx0XHRcdFtzaG93QWN0aW9uc0FzTWVudV09XCJ0YWJsZUNvbmZpZz8uc2hvd0FjdGlvbnNBc01lbnVcIlxyXG5cdFx0XHRbZmlsdGVyUGFyYW1zXT1cInRhYmxlQ29uZmlnPy5maWx0ZXJQYXJhbXNcIlxyXG5cdFx0XHRbZm9ybWF0XT1cInRhYmxlQ29uZmlnPy5mb3JtYXQgfHwgJ01NTU0gZCwgeSdcIlxyXG5cdFx0XHRbcGFnZVNpemVzXT1cInRhYmxlQ29uZmlnPy5wYWdlU2l6ZXMgfHwgZGVmYXVsdFBhZ2VTaXplc1wiXHJcblx0XHRcdFtwcmVmaXhdPVwidGFibGVDb25maWcucHJlZml4IHx8ICcnXCJcclxuXHRcdFx0W3Jvd0N1cnNvcl09XCJ0cnVlXCJcclxuXHRcdFx0W3F1ZXJ5UGFyYW1dPVwidGFibGVDb25maWcucXVlcnlQYXJhbVwiXHJcblx0XHRcdFtjdXN0b21GaWx0ZXJzXT1cInNlYXJjaEFuZEZpbHRlcnMkIHwgYXN5bmNcIlxyXG5cdFx0XHRbdGFibGVBY3Rpb25zXT1cInRhYmxlQ29uZmlnLnRhYmxlQWN0aW9uc1wiXHJcblx0XHRcdFtoZWFkZXJzXT1cInRhYmxlQ29uZmlnLmhlYWRlcnNcIlxyXG5cdFx0XHQob25Sb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvblJvd0luZGV4U2VsZWN0ZWQpPVwib25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChhY3Rpb25PblJvdyk9XCJhY3Rpb25PblJvdy5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25HZXR0aW5nRGF0YSk9XCJvbkdldHRpbmdEYXRhLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvbkxvYWQpPVwib25Mb2FkKCRldmVudClcIlxyXG5cdFx0XHQob25Jbml0aWFsaXplKT1cIm9uSW5pdGlhbGl6ZSgkZXZlbnQpXCJcclxuXHRcdFx0KG9uTXVsdGlSb3dTZWxlY3RlZCk9XCJvbk11bHRpUm93U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uTG9hZGluZyk9XCJvbkxvYWRpbmcuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uUGFnZSk9XCJvblBhZ2VDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0XHRbaXNMZWdhY3lNb2RlXT1cImZhbHNlXCJcclxuXHRcdFx0W3Nob3dUb3RhbFJlY29yZF09XCJ0cnVlXCJcclxuXHRcdFx0KHNvcnRDaGFuZ2VkKT1cIm9uU29ydENoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHQ+XHJcblx0XHRcdDxuZy10ZW1wbGF0ZSBlbXB0eVRlbXBsYXRlIGxldC1pc0xvYWRpbmcgbGV0LXJvd3M9XCJyb3dzXCIgbGV0LWluaXRpYWxpemVkPVwiaW5pdGlhbGl6ZWRcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibG9hZGluZy1kYXRhXCIgKm5nSWY9XCJpc0xvYWRpbmcgJiYgaW5pdGlhbGl6ZWRcIj5cclxuXHRcdFx0XHRcdDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgaC01LzZcIiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIXJvd3MubGVuZ3RoXCI+XHJcblx0XHRcdFx0XHQ8YXBwLW5vLWRhdGEtZm91bmQgY2xhc3M9XCJtdC00XCIgW21lc3NhZ2VdPVwiZW1wdHlNZXNzYWdlXCI+PC9hcHAtbm8tZGF0YS1mb3VuZD5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdDwvY3RzLWR5bmFtaWMtdGFibGU+XHJcblxyXG5cdFx0PGN0cy10YWJsZVxyXG5cdFx0XHQqbmdJZj1cInRhYmxlQ29uZmlnLmlzRGF0YVByb3ZpZGVkXCJcclxuXHRcdFx0W3Jvd3NdPVwicm93c1wiXHJcblx0XHRcdFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuXHRcdFx0W2NvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luY1wiXHJcblx0XHRcdFtyZXNwb25zaXZlQ29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zJCB8IGFzeW5jXCJcclxuXHRcdFx0W3Jvd0N1cnNvcl09XCJ0cnVlXCJcclxuXHRcdFx0W2Z1bGxXaWR0aF09XCJ0YWJsZUNvbmZpZy5mdWxsV2lkdGggfHwgJ2F1dG8nXCJcclxuXHRcdFx0W2VudGl0eVR5cGVdPVwiJ2FsbCdcIlxyXG5cdFx0XHRbcHJlZml4XT1cInRhYmxlQ29uZmlnLnByZWZpeCB8fCAnJ1wiXHJcblx0XHRcdFt0YWJsZU1vZGVdPVwidmlld01vZGUkIHwgYXN5bmNcIlxyXG5cdFx0XHRbY29tcG9uZW50TmFtZV09XCJ0YWJsZU1vZGU/LlsnY29tcG9uZW50TmFtZSddXCJcclxuXHRcdFx0W211bHRpU2VsZWN0Um93c109XCJ0YWJsZUNvbmZpZz8ubXVsdGlTZWxlY3RSb3dzXCJcclxuXHRcdFx0W2N1c3RvbUZpcnN0Um93XT1cInRhYmxlQ29uZmlnPy5jdXN0b21GaXJzdFJvd1wiXHJcblx0XHRcdFt0YWJsZUFjdGlvbnNdPVwidGFibGVDb25maWcudGFibGVBY3Rpb25zXCJcclxuXHRcdFx0W3Nob3dBY3Rpb25zQXNNZW51XT1cInRhYmxlQ29uZmlnPy5zaG93QWN0aW9uc0FzTWVudVwiXHJcblx0XHRcdFtkZWZ1bHRTb3J0XT1cInRhYmxlQ29uZmlnLmRlZmF1bHRTb3J0IHx8IGRlZmF1bHRTb3J0XCJcclxuXHRcdFx0W2Zvcm1hdF09XCJ0YWJsZUNvbmZpZz8uZm9ybWF0IHx8ICdNTU1NIGQsIHknXCJcclxuXHRcdFx0W2hpZ2hsaWdodFNlbGVjdGVkQ2FyZF09XCJ0YWJsZUNvbmZpZz8uaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXCJcclxuXHRcdFx0KG9uUm93U2VsZWN0ZWQpPVwib25Sb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25Sb3dJbmRleFNlbGVjdGVkKT1cIm9uUm93SW5kZXhTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25NdWx0aVJvd1NlbGVjdGVkKT1cIm9uTXVsdGlSb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQoYWN0aW9uT25Sb3cpPVwiYWN0aW9uT25Sb3cuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uU29ydGluZyk9XCJvblNvcnRDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0PjwvY3RzLXRhYmxlPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
466
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9jb250YWluZXJzL25kZi10YWJsZS9uZGYtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2NvbnRhaW5lcnMvbmRmLXRhYmxlL25kZi10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sV0FBVyxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBbUIsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFRLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pHLE9BQU8sRUFFTixtQkFBbUIsRUFFbkIsbUJBQW1CLEVBRW5CLE1BQU0seUJBQXlCLENBQUM7QUFZakMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJbEUsT0FB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O2dCQUVHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBRXNELG9CQUFvQjtzQkFBaEYsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ0MsbUJBQW1CO3NCQUE5RSxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDRyxvQkFBb0I7c0JBQWhGLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRDb250ZW50Q2hpbGQsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdElucHV0LFxyXG5cdE9uQ2hhbmdlcyxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRUZW1wbGF0ZVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZvcmtKb2luLCBpaWYsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBQ1RJT05TX1RBQkxFX1RFTVBMQVRFLCBGSUxURVJfQ1VTVE9NX1RFTVBMQVRFLCBTRUFSQ0hfVEFCTEVfVEVNUExBVEUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHtcclxuXHRBZ2dyZWdhdGlvblJlc3BvbnNlLFxyXG5cdENPTVBBUklTT05fT1BFUkFUT1IsXHJcblx0Rm9ybVF1ZXJ5TW9kZWwsXHJcblx0SHRtbERpYWxvZ0NvbXBvbmVudCxcclxuXHRIdG1sRGlhbG9nQ29uZmlnXHJcbn0gZnJvbSAnLi4vLi4vLi4vLi4vbmRmLWZpbHRlcnMnO1xyXG5pbXBvcnQge1xyXG5cdEN1c3RvbUNyaXRlcmlhTW9kZWwsXHJcblx0RXhwb3J0VHlwZSxcclxuXHROZGZFeHBvcnRQYXlsb2FkLFxyXG5cdE5kZlRhYmxlQ29uZmlnLFxyXG5cdFNvcnRUYWJsZUl0ZW0sXHJcblx0VGFibGVDb2x1bW5Db25maWcsXHJcblx0VGFibGVTb3J0T3B0aW9ucyxcclxuXHRUYWJsZVZpZXdNb2RlXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgTmRmVGFibGVDb25maWd1cmF0aW9uU2VydmljZSwgTmRmVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBQQUdFX1NJWkUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3IvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgRGVzdHJveVN1YmplY3QgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IE51eGVvUGFnaW5hdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBEeW5hbWljVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZHluYW1pYy10YWJsZSc7XHJcbmltcG9ydCB7IEN1c3RvbVRvYXN0clNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jdXN0b20tdG9hc3RyL3NlcnZpY2VzL2N1c3RvbS10b2FzdHIuc2VydmljZSc7XHJcbmltcG9ydCB7IE5ERl9FRElUT1JfVFlQRSB9IGZyb20gJy4uLy4uLy4uLy4uL25kZi1jb25maWctZWRpdG9yL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEZpbHRlcnNNYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmRmLWZpbHRlcnMvc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtbmRmLXRhYmxlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vbmRmLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9uZGYtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuXHRob3N0OiB7XHJcblx0XHRjbGFzczogJ25kZi10YWJsZScsXHJcblx0XHQnW2Rpcl0nOiAnZGlyZWN0aW9uJ1xyXG5cdH1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5kZlRhYmxlQ29tcG9uZW50IGV4dGVuZHMgRGVzdHJveVN1YmplY3QgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgX2FnZ3JlZ2F0aW9uc1N1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgQWdncmVnYXRpb25SZXNwb25zZT4+KG51bGwpO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgX2Rpc3BsYXllZENvbHVtbnNTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhYmxlQ29sdW1uQ29uZmlnW10+KFtdKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF9zb3J0T3B0aW9uU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZVNvcnRPcHRpb25zPihudWxsKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF92aWV3TW9kZVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVWaWV3TW9kZT4oJ2xpc3QnKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF90ZXh0U2VhcmNoU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmF0ZWRDcml0ZXJpYVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8e1xyXG5cdFx0cHJldmlvdXNWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRcdGN1cnJlbnRWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHR9PihudWxsKTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfY3VzdG9tQ3JpdGVyaWFTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEN1c3RvbUNyaXRlcmlhTW9kZWw+KHtcclxuXHRcdHBhcmFtczoge30sXHJcblx0XHRwYXlsb2FkOiB7XHJcblx0XHRcdHByZWRpY2F0ZUxpc3Q6IFtdXHJcblx0XHR9XHJcblx0fSk7XHJcblxyXG5cdHJlYWRvbmx5IGFnZ3JlZ2F0aW9ucyQgPSB0aGlzLl9hZ2dyZWdhdGlvbnNTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cmVhZG9ubHkgZGlzcGxheWVkQ29sdW1ucyQgPSB0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHJlYWRvbmx5IHNvcnRPcHRpb24kID0gdGhpcy5fc29ydE9wdGlvblN1Yi5hc09ic2VydmFibGUoKTtcclxuXHRyZWFkb25seSB2aWV3TW9kZSQgPSB0aGlzLl92aWV3TW9kZVN1Yi5hc09ic2VydmFibGUoKTtcclxuXHRyZWFkb25seSBjdXN0b21GaWx0ZXJzJCA9IHRoaXMuX2N1c3RvbUNyaXRlcmlhU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHJlYWRvbmx5IHRleHRTZWFyY2gkID0gdGhpcy5fdGV4dFNlYXJjaFN1Yi5hc09ic2VydmFibGUoKTtcclxuXHJcblx0cmVhZG9ubHkgc2VhcmNoQW5kRmlsdGVycyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnRleHRTZWFyY2gkLCB0aGlzLmN1c3RvbUZpbHRlcnMkXSkucGlwZShcclxuXHRcdG1hcCgocmVzKSA9PiB0aGlzLl9wcmVwYXJlU2VhcmNoKHJlcykpXHJcblx0KTtcclxuXHRASW5wdXQoKSByb3dzOiBBcnJheTx1bmtub3duPjtcclxuXHRASW5wdXQoKSB0b3RhbFJlY29yZHM6IG51bWJlcjtcclxuXHRASW5wdXQoKSBhdXRvQ2FsY3VsYXRlSGVpZ2h0ID0gdHJ1ZTtcclxuXHRASW5wdXQoKSBlbXB0eU1lc3NhZ2UgPSAndGFibGVfbm9EYXRhJztcclxuXHRASW5wdXQoKSBhY3RpdmVRdWVyeTogRm9ybVF1ZXJ5TW9kZWw7XHJcblx0QElucHV0KCkgY29uZmlnUGF0aDogc3RyaW5nID0gJ3RhYmxlcyc7XHJcblx0QElucHV0KCkgY29uZmlnVHJhbnNmb3JtZXI6IChjb25maWc6IE5kZlRhYmxlQ29uZmlnKSA9PiBPYnNlcnZhYmxlPE5kZlRhYmxlQ29uZmlnPjtcclxuXHRASW5wdXQoKSB0YWJsZUtleTogc3RyaW5nO1xyXG5cclxuXHRASW5wdXQoKSBqc29uRWRpdG9yRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRwcml2YXRlIF9jb25maWc6IE5kZlRhYmxlQ29uZmlnO1xyXG5cdEBJbnB1dCgpIHNldCBjb25maWcoY29uZmlnOiBOZGZUYWJsZUNvbmZpZykge1xyXG5cdFx0dGhpcy5fY29uZmlnID0gY29uZmlnO1xyXG5cdH1cclxuXHJcblx0Z2V0IHRhYmxlQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3RhYmxlQ29uZmlnU3ViLmdldFZhbHVlKCk7XHJcblx0fVxyXG5cclxuXHRASW5wdXQoKSBzZXQgY3VzdG9tQ3JpdGVyaWEoY3JpdGVyaWE6IEN1c3RvbUNyaXRlcmlhTW9kZWwpIHtcclxuXHRcdGlmIChjcml0ZXJpYSkge1xyXG5cdFx0XHR0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5uZXh0KGNyaXRlcmlhKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpIHNldCBzZWFyY2hUZXJtKHZhbHVlOiBzdHJpbmcpIHtcclxuXHRcdGlmICh2YWx1ZSkge1xyXG5cdFx0XHR0aGlzLl90ZXh0U2VhcmNoU3ViLm5leHQodmFsdWUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QE91dHB1dCgpIG9uUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uUm93SW5kZXhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgYWN0aW9uT25Sb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uR2V0dGluZ0RhdGEgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uTXVsdGlSb3dTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgb25Mb2FkaW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25QYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+KCk7XHJcblx0QE91dHB1dCgpIG9uSW5pdGlhbGl6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE51eGVvUGFnaW5hdGlvbjxhbnk+PigpO1xyXG5cdEBPdXRwdXQoKSBvbkxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TnV4ZW9QYWdpbmF0aW9uPGFueT4+KCk7XHJcblxyXG5cdEBPdXRwdXQoKSBvblF1ZXJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvblNvcnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlU29ydE9wdGlvbnM+KCk7XHJcblxyXG5cdEBDb250ZW50Q2hpbGQoQUNUSU9OU19UQUJMRV9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBhY3Rpb25zVGFibGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRAQ29udGVudENoaWxkKFNFQVJDSF9UQUJMRV9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBzZWFyY2hUYWJsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdEBDb250ZW50Q2hpbGQoRklMVEVSX0NVU1RPTV9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBmaWx0ZXJDdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcblx0cHJpdmF0ZSBfdGFibGVDb25maWdTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5kZlRhYmxlQ29uZmlnPihudWxsKTtcclxuXHJcblx0Z2V0IG9wdGlvbnMoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy50YWJsZUNvbmZpZz8ub3B0aW9ucztcclxuXHR9XHJcblxyXG5cdGdldCBmaWx0ZXJzQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8uZmlsdGVycztcclxuXHR9XHJcblxyXG5cdGdldCBzb3J0TGlzdCgpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LnNvcnRMaXN0IHx8IFtdO1xyXG5cdH1cclxuXHJcblx0Z2V0IGNvbHVtbnNPcHRpb25zKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMudGFibGVDb25maWc/Lm9wdGlvbnM/LmNvbHVtbnM7XHJcblx0fVxyXG5cclxuXHRnZXQgY29sdW1uVG9nZ2xlKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuY29sdW1uc09wdGlvbnM/LnRvZ2dsZSA/PyB0cnVlO1xyXG5cdH1cclxuXHJcblx0Z2V0IHRhYmxlTW9kZSgpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LnRhYmxlTW9kZTtcclxuXHR9XHJcblxyXG5cdGdldCBwYW5lbENvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LmZpbHRlcnM/LnBhbmVsO1xyXG5cdH1cclxuXHJcblx0Z2V0IGlzUGFuZWxUb2dnbGVBdmFpbGFibGUoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5wYW5lbENvbmZpZz8udG9nZ2xlQnV0dG9uID8/IHRydWU7XHJcblx0fVxyXG5cclxuXHRnZXQgdGV4dFNlYXJjaENvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LnNlYXJjaDtcclxuXHR9XHJcblxyXG5cdGdldCBmaWx0ZXJSZWxvYWRDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5maWx0ZXJzPy5yZWxvYWQ7XHJcblx0fVxyXG5cclxuXHRnZXQgZXhwb3J0VGFibGVDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5leHBvcnQ7XHJcblx0fVxyXG5cclxuXHRyZWFkb25seSBkZWZhdWx0U29ydCA9IFt7IHByb3A6ICdwcm9wZXJ0aWVzLmNyZWF0ZWRBdCcsIGRpcjogJ2Rlc2MnIH1dO1xyXG5cclxuXHRkaXJlY3Rpb246IERpcmVjdGlvbiA9ICdydGwnO1xyXG5cdGlzUGFuZWxPcGVuZWQgPSBmYWxzZTtcclxuXHRyZWFkb25seSBkZWZhdWx0UGFnZVNpemVzID0gUEFHRV9TSVpFO1xyXG5cclxuXHRwcml2YXRlIF9pc0NvbmZpZ0NoYW5nZWQgPSBmYWxzZTtcclxuXHRwcml2YXRlIF90YWJsZUluaXRpYWxpemVkID0gZmFsc2U7XHJcblx0cHJpdmF0ZSBfcGFnZUNoYW5nZWQgPSBmYWxzZTtcclxuXHRwcml2YXRlIF9hY3RpdmVQYWdlOiBQYWdlRXZlbnQgPSB7XHJcblx0XHRwYWdlSW5kZXg6IDEsXHJcblx0XHRwYWdlU2l6ZTogMTAsXHJcblx0XHRsZW5ndGg6IDBcclxuXHR9O1xyXG5cclxuXHRwcml2YXRlIF9zb3J0VmFsdWU6IFRhYmxlU29ydE9wdGlvbnM7XHJcblxyXG5cdGVkaXRvclR5cGUgPSBOREZfRURJVE9SX1RZUEUuVEFCTEVTO1xyXG5cdC8qKlxyXG5cdCAqXHJcblx0ICovXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIF9maWx0ZXJzTWFwcGVyOiBGaWx0ZXJzTWFwcGVyU2VydmljZSxcclxuXHRcdHByaXZhdGUgX2R5bmFtaWNUYWJsZVNlcnZpY2U6IER5bmFtaWNUYWJsZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfbmdUYWJsZVNlcnZpY2U6IE5kZlRhYmxlU2VydmljZSxcclxuXHRcdHByaXZhdGUgX3RvYXN0clNlcnZpY2U6IEN1c3RvbVRvYXN0clNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9uZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBOZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2dcclxuXHQpIHtcclxuXHRcdHN1cGVyKCk7XHJcblx0XHR0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZVxyXG5cdFx0XHQucGlwZShzdGFydFdpdGgoeyBsYW5nOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nIH0pLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZGlyZWN0aW9uID0gcmVzLmxhbmcgPT09ICdhcicgPyAncnRsJyA6ICdsdHInO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHRcdGNvbnN0IHRhYmxlS2V5ID0gY2hhbmdlcy50YWJsZUtleT8uY3VycmVudFZhbHVlO1xyXG5cdFx0Y29uc3QgY29uZmlnID0gY2hhbmdlcy5jb25maWc/LmN1cnJlbnRWYWx1ZTtcclxuXHJcblx0XHRpZiAodGFibGVLZXkgJiYgY29uZmlnKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCBzZXQgYm90aCB0YWJsZUtleSBhbmQgdGFibGVDb25maWcgYXQgdGhlIHNhbWUgdGltZS4nKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoY29uZmlnKSB7XHJcblx0XHRcdHRoaXMuX2FwcGx5VGFibGVDb25maWcoY29uZmlnKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGFibGVLZXkpIHtcclxuXHRcdFx0dGhpcy5fbG9hZFRhYmxlQ29uZmlnKHRhYmxlS2V5KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHRvZ2dsZVBhbmVsKCkge1xyXG5cdFx0dGhpcy5pc1BhbmVsT3BlbmVkID0gIXRoaXMuaXNQYW5lbE9wZW5lZDtcclxuXHR9XHJcblxyXG5cdG9uTG9hZChkYXRhOiBOdXhlb1BhZ2luYXRpb248YW55Pik6IHZvaWQge1xyXG5cdFx0dGhpcy5vbkxvYWRlZC5lbWl0KGRhdGEpO1xyXG5cdFx0aWYgKCF0aGlzLl90YWJsZUluaXRpYWxpemVkIHx8IHRoaXMuZmlsdGVyUmVsb2FkQ29uZmlnPy5zdHJhdGVneSA9PT0gJ25ldmVyJyB8fCB0aGlzLl9wYWdlQ2hhbmdlZCkge1xyXG5cdFx0XHR0aGlzLl9wYWdlQ2hhbmdlZCA9IGZhbHNlO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuX2lzQ29uZmlnQ2hhbmdlZCB8fCB0aGlzLmZpbHRlclJlbG9hZENvbmZpZz8uc3RyYXRlZ3kgPT09ICdhbHdheXMnKSB7XHJcblx0XHRcdHRoaXMuX2FnZ3JlZ2F0aW9uc1N1Yi5uZXh0KGRhdGE/LmFnZ3JlZ2F0aW9ucyk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5maWx0ZXJSZWxvYWRDb25maWc/LnN0cmF0ZWd5ID09PSAnb25DaGFuZ2UnKSB7XHJcblx0XHRcdGNvbnN0IGFjdGl2YXRlZFF1ZXJ5ID0gdGhpcy5fYWN0aXZhdGVkQ3JpdGVyaWFTdWIuZ2V0VmFsdWUoKTtcclxuXHRcdFx0Y29uc3QgY3VycmVudFZhbHVlID0gYWN0aXZhdGVkUXVlcnk/LmN1cnJlbnRWYWx1ZSB8fCB7fTtcclxuXHRcdFx0Y29uc3QgcHJldmlvdXNWYWx1ZSA9IGFjdGl2YXRlZFF1ZXJ5Py5wcmV2aW91c1ZhbHVlIHx8IHt9O1xyXG5cclxuXHRcdFx0Y29uc3QgdXBkYXRlZEtleXMgPSBfLnVuaW9uKF8ua2V5cyhwcmV2aW91c1ZhbHVlKSwgXy5rZXlzKGN1cnJlbnRWYWx1ZSkpLmZpbHRlcihcclxuXHRcdFx0XHQoa2V5KSA9PiAhXy5pc0VxdWFsKHByZXZpb3VzVmFsdWVba2V5XSwgY3VycmVudFZhbHVlW2tleV0pXHJcblx0XHRcdCk7XHJcblxyXG5cdFx0XHRjb25zdCB0cmlnZ2VyS2V5cyA9IHRoaXMuZmlsdGVyUmVsb2FkQ29uZmlnLnRyaWdnZXJGaWVsZHMgfHwgW107XHJcblx0XHRcdGNvbnN0IHNob3VsZFJlbG9hZCA9IHRyaWdnZXJLZXlzLnNvbWUoKGtleSkgPT4gdXBkYXRlZEtleXMuaW5jbHVkZXMoa2V5KSk7XHJcblx0XHRcdGlmIChzaG91bGRSZWxvYWQpIHtcclxuXHRcdFx0XHR0aGlzLl9hZ2dyZWdhdGlvbnNTdWIubmV4dChkYXRhPy5hZ2dyZWdhdGlvbnMpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvbkluaXRpYWxpemUoZGF0YTogTnV4ZW9QYWdpbmF0aW9uPGFueT4pOiB2b2lkIHtcclxuXHRcdHRoaXMuX2FnZ3JlZ2F0aW9uc1N1Yi5uZXh0KGRhdGE/LmFnZ3JlZ2F0aW9ucyk7XHJcblx0XHR0aGlzLl90YWJsZUluaXRpYWxpemVkID0gdHJ1ZTtcclxuXHRcdHRoaXMuX2lzQ29uZmlnQ2hhbmdlZCA9IGZhbHNlO1xyXG5cdFx0dGhpcy5vbkluaXRpYWxpemVkLmVtaXQoZGF0YSk7XHJcblx0fVxyXG5cclxuXHRjb2x1bW5zQ2hhbmdlZChjb2x1bW5zOiBUYWJsZUNvbHVtbkNvbmZpZ1tdKSB7XHJcblx0XHR0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zU3ViLm5leHQoY29sdW1ucyk7XHJcblx0fVxyXG5cclxuXHRzb3J0Q2hhbmdlZChzb3J0OiBTb3J0VGFibGVJdGVtKSB7XHJcblx0XHR0aGlzLl9zb3J0VmFsdWUgPSB7IHNvcnRCeTogc29ydC52YWx1ZSwgc29ydE9yZGVyOiBzb3J0LmRpcmVjdGlvbiB9O1xyXG5cdFx0dGhpcy5fc29ydE9wdGlvblN1Yi5uZXh0KHRoaXMuX3NvcnRWYWx1ZSk7XHJcblx0fVxyXG5cclxuXHRtb2RlQ2hhbmdlZChtb2RlOiBUYWJsZVZpZXdNb2RlKSB7XHJcblx0XHR0aGlzLl92aWV3TW9kZVN1Yi5uZXh0KG1vZGUpO1xyXG5cdH1cclxuXHJcblx0b25Tb3J0Q2hhbmdlZChzb3J0OiBUYWJsZVNvcnRPcHRpb25zKSB7XHJcblx0XHR0aGlzLl9zb3J0VmFsdWUgPSBzb3J0O1xyXG5cdFx0dGhpcy5vblNvcnQuZW1pdChzb3J0KTtcclxuXHR9XHJcblxyXG5cdGV4cG9ydFRhYmxlKHR5cGU6IEV4cG9ydFR5cGUpIHtcclxuXHRcdGNvbnN0IHJlcXVlc3QgPSBfLmNsb25lRGVlcCh0aGlzLmV4cG9ydFRhYmxlQ29uZmlnPy5yZXF1ZXN0KTtcclxuXHRcdGlmICghcmVxdWVzdCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRjb25zdCBjb2x1bW5zID0gdGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi5nZXRWYWx1ZSgpO1xyXG5cdFx0Y29uc3QgZmllbGRzID0gY29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLmhlYWRlckNsYXNzKTtcclxuXHRcdGNvbnN0IGhlYWRlcnMgPSBjb2x1bW5zLm1hcCgoY29sKSA9PiAodGhpcy50YWJsZUNvbmZpZy5wcmVmaXggfHwgJycpICsgY29sLm5hbWUpO1xyXG5cclxuXHRcdGNvbnN0IGNyaXRlcmlhID0gdGhpcy5fY3VzdG9tQ3JpdGVyaWFTdWIuZ2V0VmFsdWUoKTtcclxuXHJcblx0XHRyZXF1ZXN0LnBhcmFtcyA9IE9iamVjdC5hc3NpZ24oXHJcblx0XHRcdHt9LFxyXG5cdFx0XHRjcml0ZXJpYS5wYXJhbXMsXHJcblx0XHRcdHRoaXMuX3NvcnRWYWx1ZSB8fCB7fSxcclxuXHRcdFx0dGhpcy50YWJsZUNvbmZpZz8ucXVpY2tGaWx0ZXJzID8geyBxdWlja0ZpbHRlcnM6IHRoaXMudGFibGVDb25maWcucXVpY2tGaWx0ZXJzIH0gOiB7fSxcclxuXHRcdFx0cmVxdWVzdC5wYXJhbXNcclxuXHRcdCk7XHJcblxyXG5cdFx0Y29uc3QgYmxvYk5hbWVLZXkgPSB0aGlzLmV4cG9ydFRhYmxlQ29uZmlnPy5ibG9iTmFtZTtcclxuXHRcdGNvbnN0IHBheWxvYWQ6IE5kZkV4cG9ydFBheWxvYWQgPSB7XHJcblx0XHRcdHByZWRpY2F0ZUxpc3Q6IGNyaXRlcmlhLnBheWxvYWQucHJlZGljYXRlTGlzdCB8fCBbXSxcclxuXHRcdFx0cmVwb3J0TWV0YURhdGE6IHtcclxuXHRcdFx0XHRibG9iTmFtZTogJycsXHJcblx0XHRcdFx0ZG9jVHlwZU5hbWU6IHRoaXMuZXhwb3J0VGFibGVDb25maWcuZG9jVHlwZU5hbWUsXHJcblx0XHRcdFx0ZmlsZVR5cGU6IHR5cGUsXHJcblx0XHRcdFx0bG9jYWxlOiB0aGlzLmV4cG9ydFRhYmxlQ29uZmlnPy5sb2NhbGUgfHwgdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyxcclxuXHRcdFx0XHRmaWVsZHM6IHRoaXMuZXhwb3J0VGFibGVDb25maWc/LmZpZWxkcyB8fCBmaWVsZHMsXHJcblx0XHRcdFx0aGVhZGVyczogW11cclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHJcblx0XHRmb3JrSm9pbih7XHJcblx0XHRcdGFyOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldFRyYW5zbGF0aW9uKCdhcicpLFxyXG5cdFx0XHRlbjogdGhpcy5fdHJhbnNsYXRlU2VydmljZS5nZXRUcmFuc2xhdGlvbignZW4nKVxyXG5cdFx0fSlcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0c3dpdGNoTWFwKCh0cmFuc2xhdGlvbnMpID0+IHtcclxuXHRcdFx0XHRcdGNvbnN0IGN1cnJlbnRUcmFuc2xhdGlvbnMgPSB0cmFuc2xhdGlvbnNbdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZ107XHJcblx0XHRcdFx0XHRwYXlsb2FkLnJlcG9ydE1ldGFEYXRhLmhlYWRlcnMgPSBoZWFkZXJzLm1hcCgoY29sKSA9PiBfLmdldChjdXJyZW50VHJhbnNsYXRpb25zLCBjb2wpKTtcclxuXHRcdFx0XHRcdHBheWxvYWQucmVwb3J0TWV0YURhdGEuYmxvYk5hbWUgPSBfLmdldCh0cmFuc2xhdGlvbnNbJ2FyJ10sIGJsb2JOYW1lS2V5KTtcclxuXHRcdFx0XHRcdHBheWxvYWQucmVwb3J0TWV0YURhdGEuYmxvYk5hbWVFbiA9IF8uZ2V0KHRyYW5zbGF0aW9uc1snZW4nXSwgYmxvYk5hbWVLZXkpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuX25nVGFibGVTZXJ2aWNlLmV4cG9ydFRhYmxlKHJlcXVlc3QsIHBheWxvYWQpO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHRcdGNhdGNoRXJyb3IoKF8pID0+IHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2UuZXJyb3IoJ1RBQkxFLkVYUE9SVC5SZXF1ZXN0RXJyb3InKTtcclxuXHRcdFx0XHRcdHJldHVybiBvZihmYWxzZSk7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0ZmlsdGVyKEJvb2xlYW4pLFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlczogYm9vbGVhbikgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXMpIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2Uuc3VjY2VzcygnVEFCTEUuRVhQT1JULnJlcXVlc3RTdWNjZXNzJyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2UuZXJyb3IoJ1RBQkxFLkVYUE9SVC5yZXF1ZXN0RXJyb3InKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZmlsdGVyQ2hhbmdlZChjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0dGhpcy5fdHJpZ2dlckNyaXRlcmlhQ2hhbmdlcyhjcml0ZXJpYSk7XHJcblx0XHRpZiAodGhpcy5maWx0ZXJzQ29uZmlnPy5tb2RlICE9PSAncGF5bG9hZCcpIHtcclxuXHRcdFx0Y29uc3QgaXNTdHJpbmdpZnlQYXJhbXMgPSB0aGlzLmZpbHRlcnNDb25maWc/LnN0cmluZ2lmeVBhcmFtcztcclxuXHRcdFx0Y29uc3QgdmFsdWUgPSAhaXNTdHJpbmdpZnlQYXJhbXMgPyBjcml0ZXJpYSA6IHRoaXMuX3N0cmluZ2lmeVZhbHVlcyhjcml0ZXJpYSk7XHJcblx0XHRcdHRoaXMuX2R5bmFtaWNUYWJsZVNlcnZpY2UucmVmcmVzaERhdGEubmV4dCh2YWx1ZSk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBwYXlsb2FkID0gdGhpcy5fZmlsdGVyc01hcHBlci5wcmVwYXJlUGF5bG9hZCh0aGlzLmZpbHRlcnNDb25maWcuZmllbGRzLCBjcml0ZXJpYSk7XHJcblx0XHR0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5uZXh0KHBheWxvYWQpO1xyXG5cdH1cclxuXHJcblx0b25UZXh0U2VhcmNoKHRleHQ6IHN0cmluZykge1xyXG5cdFx0aWYgKCF0aGlzLnRleHRTZWFyY2hDb25maWc/LmZpZWxkS2V5IHx8IHR5cGVvZiB0ZXh0ICE9PSAnc3RyaW5nJykge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0ZXh0KSB7XHJcblx0XHRcdHRoaXMub25DbGVhclNlYXJjaCgpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLl90ZXh0U2VhcmNoU3ViLm5leHQodGV4dCk7XHJcblx0fVxyXG5cclxuXHRvbkNsZWFyU2VhcmNoKCkge1xyXG5cdFx0dGhpcy5fdGV4dFNlYXJjaFN1Yi5uZXh0KG51bGwpO1xyXG5cdH1cclxuXHJcblx0b3BlblNlYXJjaE1vZGFsKCkge1xyXG5cdFx0Y29uc3QgX2RpYWxvZ0NvbmZpZyA9IHRoaXMudGV4dFNlYXJjaENvbmZpZz8uc3VmZml4Py5kaWFsb2c7XHJcblx0XHRpZiAoIV9kaWFsb2dDb25maWcpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgeyBvcHRpb25zLCAuLi5kYXRhIH0gPSBfZGlhbG9nQ29uZmlnO1xyXG5cdFx0dGhpcy5fZGlhbG9nLm9wZW48SHRtbERpYWxvZ0NvbXBvbmVudCwgSHRtbERpYWxvZ0NvbmZpZz4oSHRtbERpYWxvZ0NvbXBvbmVudCwge1xyXG5cdFx0XHRwYW5lbENsYXNzOiAncC0wJyxcclxuXHRcdFx0bWluV2lkdGg6ICdtaW4oNTAwcHgsNjB2dyknLFxyXG5cdFx0XHRkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uLFxyXG5cdFx0XHQuLi5vcHRpb25zLFxyXG5cdFx0XHRkYXRhXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG9uUGFnZUNoYW5nZWQocGFnZTogUGFnZUV2ZW50KSB7XHJcblx0XHR0aGlzLl9wYWdlQ2hhbmdlZCA9IHRoaXMuX2FjdGl2ZVBhZ2UucGFnZUluZGV4ICE9PSBwYWdlLnBhZ2VJbmRleCB8fCB0aGlzLl9hY3RpdmVQYWdlLnBhZ2VTaXplICE9PSBwYWdlLnBhZ2VTaXplO1xyXG5cdFx0aWYgKHRoaXMuX3BhZ2VDaGFuZ2VkKSB7XHJcblx0XHRcdHRoaXMub25QYWdlLmVtaXQocGFnZSk7XHJcblx0XHRcdHRoaXMuX2FjdGl2ZVBhZ2UgPSBwYWdlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfZmlsdGVyQnlWaXNpYmlsaXR5KGNvbHVtbnM6IFRhYmxlQ29sdW1uQ29uZmlnW10pOiBUYWJsZUNvbHVtbkNvbmZpZ1tdIHtcclxuXHRcdHJldHVybiBjb2x1bW5zLmZpbHRlcigoY29sKSA9PiBjb2wuZGVmYXVsdFZpc2libGUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcHJlcGFyZVNlYXJjaChbc2VhcmNoLCBmaWx0ZXJzXTogW1xyXG5cdFx0c3RyaW5nLFxyXG5cdFx0e1xyXG5cdFx0XHRwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdFx0XHRwYXlsb2FkPzogeyBwcmVkaWNhdGVMaXN0OiBhbnlbXSB9ICYgUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRcdH1cclxuXHRdKTogYW55IHtcclxuXHRcdHtcclxuXHRcdFx0Y29uc3QgeyBwcmVkaWNhdGVMaXN0IH0gPSBmaWx0ZXJzLnBheWxvYWQ7XHJcblx0XHRcdGNvbnN0IF9rZXkgPSB0aGlzLnRleHRTZWFyY2hDb25maWc/LmZpZWxkS2V5O1xyXG5cdFx0XHRjb25zdCBzZWFyY2hJbmRleCA9IHByZWRpY2F0ZUxpc3QuZmluZEluZGV4KChpdG0pID0+IGl0bS5uYW1lID09PSBfa2V5KTtcclxuXHRcdFx0aWYgKHNlYXJjaCAmJiBfa2V5KSB7XHJcblx0XHRcdFx0aWYgKHNlYXJjaEluZGV4ID49IDApIHtcclxuXHRcdFx0XHRcdHByZWRpY2F0ZUxpc3Rbc2VhcmNoSW5kZXhdLnZhbHVlID0gYCcke3NlYXJjaH0nYDtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cHJlZGljYXRlTGlzdC5wdXNoKHtcclxuXHRcdFx0XHRcdFx0bmFtZTogX2tleSxcclxuXHRcdFx0XHRcdFx0b3BlcmF0b3I6IHRoaXMudGV4dFNlYXJjaENvbmZpZz8ub3BlcmF0b3IgfHwgQ09NUEFSSVNPTl9PUEVSQVRPUi5lcXVhbHMsXHJcblx0XHRcdFx0XHRcdHZhbHVlOiBgJyR7c2VhcmNofSdgXHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gZWxzZSBpZiAoc2VhcmNoSW5kZXggPj0gMCkge1xyXG5cdFx0XHRcdHByZWRpY2F0ZUxpc3Quc3BsaWNlKHNlYXJjaEluZGV4KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gXy5jbG9uZURlZXAoeyAuLi5maWx0ZXJzIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcblx0XHRyZXR1cm4gT2JqZWN0LmVudHJpZXMoY3JpdGVyaWEpLnJlZHVjZSgoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcclxuXHRcdFx0YWNjW2tleV0gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IHZhbHVlO1xyXG5cdFx0XHRyZXR1cm4gYWNjO1xyXG5cdFx0fSwge30pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfdHJpZ2dlckNyaXRlcmlhQ2hhbmdlcyhjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0aWYgKHRoaXMuX3RhYmxlSW5pdGlhbGl6ZWQpIHtcclxuXHRcdFx0dGhpcy5vblF1ZXJ5Q2hhbmdlLmVtaXQoY3JpdGVyaWEpO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgYWN0aXZhdGVkUXVlcnkgPSB7IC4uLnRoaXMuX2FjdGl2YXRlZENyaXRlcmlhU3ViLmdldFZhbHVlKCkgfTtcclxuXHRcdGNvbnN0IHByZXZpb3VzVmFsdWUgPSBhY3RpdmF0ZWRRdWVyeT8uY3VycmVudFZhbHVlO1xyXG5cdFx0dGhpcy5fYWN0aXZhdGVkQ3JpdGVyaWFTdWIubmV4dCh7XHJcblx0XHRcdHByZXZpb3VzVmFsdWU6IHByZXZpb3VzVmFsdWUsXHJcblx0XHRcdGN1cnJlbnRWYWx1ZTogY3JpdGVyaWFcclxuXHRcdH0pO1xyXG5cdH1cclxuXHQvKipcclxuXHQgKiBAZGVzY3JpcHRpb25cclxuXHQgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHNldCB0aGUgdGFibGUgY29uZmlndXJhdGlvbi5cclxuXHQgKiBAcGFyYW0gY29uZmlnIE5kZlRhYmxlQ29uZmlnXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfYXBwbHlUYWJsZUNvbmZpZyhjb25maWc6IE5kZlRhYmxlQ29uZmlnKTogdm9pZCB7XHJcblx0XHR0aGlzLl90YWJsZUNvbmZpZ1N1Yi5uZXh0KGNvbmZpZyk7XHJcblx0XHR0aGlzLmlzUGFuZWxPcGVuZWQgPSBjb25maWc/Lm9wdGlvbnM/LmZpbHRlcnM/LnBhbmVsPy52aXNpYmxlID8/IHRydWU7XHJcblx0XHR0aGlzLl9pc0NvbmZpZ0NoYW5nZWQgPSAhIWNvbmZpZztcclxuXHRcdGlmIChjb25maWcuY29sdW1ucykge1xyXG5cdFx0XHR0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zU3ViLm5leHQodGhpcy5fZmlsdGVyQnlWaXNpYmlsaXR5KGNvbmZpZy5jb2x1bW5zKSk7XHJcblx0XHR9XHJcblx0XHRpZiAoY29uZmlnLnNvcnRpbmdCeSkge1xyXG5cdFx0XHR0aGlzLl9zb3J0VmFsdWUgPSBjb25maWcuc29ydGluZ0J5O1xyXG5cdFx0XHR0aGlzLl9zb3J0T3B0aW9uU3ViLm5leHQoY29uZmlnLnNvcnRpbmdCeSk7XHJcblx0XHR9XHJcblx0XHRpZiAoY29uZmlnPy5vcHRpb25zPy50YWJsZU1vZGU/Lm1vZGUpIHtcclxuXHRcdFx0dGhpcy5fdmlld01vZGVTdWIubmV4dChjb25maWcub3B0aW9ucy50YWJsZU1vZGUubW9kZSk7XHJcblx0XHR9XHJcblx0XHRpZiAoY29uZmlnLnBhZ2VTaXplKSB7XHJcblx0XHRcdHRoaXMuX2FjdGl2ZVBhZ2UucGFnZVNpemUgPSBjb25maWcucGFnZVNpemU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAcHJpdmF0ZVxyXG5cdCAqIEBkZXNjcmlwdGlvbiBMb2FkcyB0aGUgdGFibGUgY29uZmlndXJhdGlvbiBiYXNlZCBvbiB0aGUgcHJvdmlkZWQga2V5IGFuZCBhcHBsaWVzIGl0LlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IHVzZWQgdG8gZmV0Y2ggdGhlIHRhYmxlIGNvbmZpZ3VyYXRpb24uXHJcblx0ICovXHJcblx0cHJpdmF0ZSBfbG9hZFRhYmxlQ29uZmlnKGtleTogc3RyaW5nKSB7XHJcblx0XHR0aGlzLl9uZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlXHJcblx0XHRcdC5nZXRUYWJsZUNvbmZpZ3VyYXRpb24oa2V5LCB0aGlzLmNvbmZpZ1BhdGgpXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgoY29uZmlnKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5jb25maWdUcmFuc2Zvcm1lciAmJiBfLmlzRnVuY3Rpb24odGhpcy5jb25maWdUcmFuc2Zvcm1lcikpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMuY29uZmlnVHJhbnNmb3JtZXIoY29uZmlnKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHJldHVybiBvZihjb25maWcpO1xyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKGNvbmZpZykgPT4ge1xyXG5cdFx0XHRcdHRoaXMuX2FwcGx5VGFibGVDb25maWcoY29uZmlnKTtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG59XHJcbiIsIjxkaXZcclxuXHQqbmdJZj1cInRhYmxlQ29uZmlnXCJcclxuXHRjbGFzcz1cIm5kZi10YWJsZV9fY29udGFpbmVyXCJcclxuXHRbY2xhc3MucGFuZWwtb3BlbmVkXT1cImlzUGFuZWxPcGVuZWQgJiYgZmlsdGVyc0NvbmZpZ1wiXHJcblx0W2Rpcl09XCJkaXJlY3Rpb25cIlxyXG5cdG5kZkZsdWlkSGVpZ2h0XHJcblx0Y3NzVmFyPVwiLS1uZGYtdGFibGUtaGVpZ2h0XCJcclxuXHRbY2FsY3VsYXRlXT1cImF1dG9DYWxjdWxhdGVIZWlnaHRcIlxyXG4+XHJcblx0PGRpdiBjbGFzcz1cIm5kZi10YWJsZV9fcGFuZWxcIiAqbmdJZj1cImZpbHRlcnNDb25maWc/LmZpZWxkc1wiPlxyXG5cdFx0PGFwcC1maWx0ZXJzLXBhbmVsXHJcblx0XHRcdFtmaWVsZHNdPVwiZmlsdGVyc0NvbmZpZy5maWVsZHNcIlxyXG5cdFx0XHRbYWdncmVnYXRpb25zXT1cImFnZ3JlZ2F0aW9ucyQgfCBhc3luY1wiXHJcblx0XHRcdChmaWx0ZXJDaGFuZ2VkKT1cImZpbHRlckNoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHRcdFthY3RpdmVRdWVyeV09XCJhY3RpdmVRdWVyeVwiXHJcblx0XHRcdGNsYXNzPVwibmRmLXRhYmxlX19maWx0ZXJzXCJcclxuXHRcdFx0W2N1c3RvbVRlbXBsYXRlUmVmXT1cImZpbHRlckN1c3RvbVRlbXBsYXRlXCJcclxuXHRcdD48L2FwcC1maWx0ZXJzLXBhbmVsPlxyXG5cdDwvZGl2PlxyXG5cdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2NvbnRlbnRcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2hlYWRlciBmbGV4XCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2hlYWRlcl9fY3VzdG9tLWFjdGlvbnMgZmxleCBnYXAteC00IGl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdDxuZy1jb250YWluZXJcclxuXHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlYXJjaFRhYmxlVGVtcGxhdGUgfHwgZGVmYXVsdEFjdGlvblRlbXBsYXRlXCJcclxuXHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XHJcblx0XHRcdFx0XHRcdCRpbXBsaWNpdDogdGFibGVDb25maWcsXHJcblx0XHRcdFx0XHRcdHBhbmVsT3BlbmVkOiBpc1BhbmVsT3BlbmVkLFxyXG5cdFx0XHRcdFx0XHR0b2dnbGVQYW5lbDogdG9nZ2xlUGFuZWwsXHJcblx0XHRcdFx0XHRcdG9wZW5Nb2RhbDogb3BlblNlYXJjaE1vZGFsLFxyXG5cdFx0XHRcdFx0XHRzZWFyY2g6IG9uVGV4dFNlYXJjaCxcclxuXHRcdFx0XHRcdFx0Y2xlYXI6IG9uQ2xlYXJTZWFyY2hcclxuXHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdD48L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlICNkZWZhdWx0QWN0aW9uVGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAqbmdJZj1cImlzUGFuZWxUb2dnbGVBdmFpbGFibGVcIiBjbGFzcz1cInRvZ2dsZS1idXR0b25cIiAoY2xpY2spPVwidG9nZ2xlUGFuZWwoKVwiPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWljb24+IGZpbHRlcl9hbHQ8L21hdC1pY29uPlxyXG5cdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHQ8YXBwLXRleHQtc2VhcmNoXHJcblx0XHRcdFx0XHRcdCpuZ0lmPVwidGV4dFNlYXJjaENvbmZpZ1wiXHJcblx0XHRcdFx0XHRcdFtzZWFyY2hDb25maWddPVwidGV4dFNlYXJjaENvbmZpZ1wiXHJcblx0XHRcdFx0XHRcdChvcGVuTW9kYWwpPVwib3BlblNlYXJjaE1vZGFsKClcIlxyXG5cdFx0XHRcdFx0XHRbc2VhcmNoXT1cInRleHRTZWFyY2gkIHwgYXN5bmNcIlxyXG5cdFx0XHRcdFx0XHQoc2VhcmNoQ2hhbmdlKT1cIm9uVGV4dFNlYXJjaCgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0KGNsZWFyKT1cIm9uQ2xlYXJTZWFyY2goKVwiXHJcblx0XHRcdFx0XHQ+PC9hcHAtdGV4dC1zZWFyY2g+XHJcblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX2hlYWRlcl9fYWN0aW9ucyBmbGV4IGdhcC14LTQgaXRlbXMtY2VudGVyXCI+XHJcblx0XHRcdFx0PGFwcC1lZGl0b3ItYnV0dG9uXHJcblx0XHRcdFx0XHQqbmdJZj1cImpzb25FZGl0b3JFbmFibGVkICYmICh0YWJsZUtleSB8fCB0YWJsZUNvbmZpZz8ua2V5KVwiXHJcblx0XHRcdFx0XHRba2V5XT1cInRhYmxlS2V5IHx8IHRhYmxlQ29uZmlnPy5rZXlcIlxyXG4gICAgICAgICAgW3R5cGVdPVwiZWRpdG9yVHlwZVwiXHJcblx0XHRcdFx0PjwvYXBwLWVkaXRvci1idXR0b24+XHJcblx0XHRcdFx0PG5kZi10YWJsZS1leHBvcnRcclxuXHRcdFx0XHRcdCpuZ0lmPVwiZXhwb3J0VGFibGVDb25maWc/LmVuYWJsZWRcIlxyXG5cdFx0XHRcdFx0W2NvbmZpZ109XCJleHBvcnRUYWJsZUNvbmZpZ1wiXHJcblx0XHRcdFx0XHQob25FeHBvcnQpPVwiZXhwb3J0VGFibGUoJGV2ZW50KVwiXHJcblx0XHRcdFx0PjwvbmRmLXRhYmxlLWV4cG9ydD5cclxuXHJcblx0XHRcdFx0PHRhYmxlLXNvcnRpbmctbGlzdFxyXG5cdFx0XHRcdFx0Km5nSWY9XCIhIXNvcnRMaXN0Py5sZW5ndGhcIlxyXG5cdFx0XHRcdFx0W3NvcnRMaXN0XT1cInNvcnRMaXN0XCJcclxuXHRcdFx0XHRcdChzb3J0Q2hhbmdlZCk9XCJzb3J0Q2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0XHQ+PC90YWJsZS1zb3J0aW5nLWxpc3Q+XHJcblx0XHRcdFx0PHRhYmxlLWNvbHVtbnMtdG9nZ2xlclxyXG5cdFx0XHRcdFx0Km5nSWY9XCJjb2x1bW5Ub2dnbGVcIlxyXG5cdFx0XHRcdFx0W2NvbHVtbnNdPVwidGFibGVDb25maWcuY29sdW1uc1wiXHJcblx0XHRcdFx0XHRbcHJlZml4XT1cInRhYmxlQ29uZmlnLnByZWZpeFwiXHJcblx0XHRcdFx0XHRbc29ydGFibGVdPVwiY29sdW1uc09wdGlvbnM/LnNvcnRhYmxlXCJcclxuXHRcdFx0XHRcdChjb2x1bW5zQ2hhbmdlZCk9XCJjb2x1bW5zQ2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0XHQ+PC90YWJsZS1jb2x1bW5zLXRvZ2dsZXI+XHJcblx0XHRcdFx0PG1vZGUtdG9nZ2xlclxyXG5cdFx0XHRcdFx0Km5nSWY9XCJ0YWJsZU1vZGU/LnRvZ2dsZU1vZGVcIlxyXG5cdFx0XHRcdFx0W21vZGVdPVwidGFibGVNb2RlLm1vZGUgfHwgJ2xpc3QnXCJcclxuXHRcdFx0XHRcdFttb2Rlc0xpc3RdPVwidGFibGVNb2RlPy5hdmFpbGFibGVNb2RlXCJcclxuXHRcdFx0XHRcdChtb2RlQ2hhbmdlZCk9XCJtb2RlQ2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0XHQ+PC9tb2RlLXRvZ2dsZXI+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwiYWN0aW9uc1RhYmxlVGVtcGxhdGVcIlxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcclxuXHRcdFx0XHRcdFx0JGltcGxpY2l0OiB0YWJsZUNvbmZpZyxcclxuXHRcdFx0XHRcdFx0cGFuZWxPcGVuZWQ6IGlzUGFuZWxPcGVuZWQsXHJcblx0XHRcdFx0XHRcdHRvZ2dsZVBhbmVsOiB0b2dnbGVQYW5lbCxcclxuXHRcdFx0XHRcdFx0b3Blbk1vZGFsOiBvcGVuU2VhcmNoTW9kYWwsXHJcblx0XHRcdFx0XHRcdHNlYXJjaDogb25UZXh0U2VhcmNoLFxyXG5cdFx0XHRcdFx0XHRjbGVhcjogb25DbGVhclNlYXJjaFxyXG5cdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0PjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cclxuXHRcdDxjdHMtZHluYW1pYy10YWJsZVxyXG5cdFx0XHQqbmdJZj1cIiF0YWJsZUNvbmZpZy5pc0RhdGFQcm92aWRlZFwiXHJcblx0XHRcdGNsYXNzPVwibmRmLXRhYmxlX190YWJsZSB0YWJsZS1zdHlsZVwiXHJcblx0XHRcdFtjb2x1bW5zXT1cImRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmNcIlxyXG5cdFx0XHRbcmVzcG9uc2l2ZUNvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luY1wiXHJcblx0XHRcdFtmdWxsV2lkdGhdPVwidGFibGVDb25maWcuZnVsbFdpZHRoIHx8ICdhdXRvJ1wiXHJcblx0XHRcdFtwYWdlU2l6ZV09XCJ0YWJsZUNvbmZpZy5wYWdlU2l6ZSB8fCAxMFwiXHJcblx0XHRcdFtwYWdlTnVtYmVyXT1cInRhYmxlQ29uZmlnLnBhZ2VOdW1iZXIgfHwgMVwiXHJcblx0XHRcdFtwYWdlUHJvdmlkZXJdPVwidGFibGVDb25maWcucGFnZVByb3ZpZGVyXCJcclxuXHRcdFx0W2N1c3RvbVVybF09XCJ0YWJsZUNvbmZpZy5jdXN0b21VcmxcIlxyXG5cdFx0XHRbcXVpY2tGaWx0ZXJdPVwidGFibGVDb25maWcucXVpY2tGaWx0ZXJzID8geyBxdWlja0ZpbHRlcnM6IHRhYmxlQ29uZmlnLnF1aWNrRmlsdGVycyB9IDogdW5kZWZpbmVkXCJcclxuXHRcdFx0W2RlZnVsdFNvcnRdPVwidGFibGVDb25maWcuZGVmYXVsdFNvcnQgfHwgZGVmYXVsdFNvcnRcIlxyXG5cdFx0XHRbc29ydGluZ0J5XT1cInNvcnRPcHRpb24kIHwgYXN5bmNcIlxyXG5cdFx0XHRbZW50aXR5VHlwZV09XCInYWxsJ1wiXHJcblx0XHRcdFtmaWVsZHNdPVwidGFibGVDb25maWcuZmllbGRzXCJcclxuXHRcdFx0W3RhYmxlTW9kZV09XCJ2aWV3TW9kZSQgfCBhc3luY1wiXHJcblx0XHRcdFtjb21wb25lbnROYW1lXT1cInRhYmxlTW9kZT8uWydjb21wb25lbnROYW1lJ11cIlxyXG5cdFx0XHRbcmFuZ2VdPVwidGFibGVDb25maWc/LnJhbmdlXCJcclxuXHRcdFx0W2lzU2VhcmNoUGFnZV09XCJ0YWJsZUNvbmZpZz8uaXNTZWFyY2hQYWdlXCJcclxuXHRcdFx0W211bHRpU2VsZWN0Um93c109XCJ0YWJsZUNvbmZpZz8ubXVsdGlTZWxlY3RSb3dzXCJcclxuXHRcdFx0W2N1c3RvbUZpcnN0Um93XT1cInRhYmxlQ29uZmlnPy5jdXN0b21GaXJzdFJvd1wiXHJcblx0XHRcdFtoaWdobGlnaHRTZWxlY3RlZENhcmRdPVwidGFibGVDb25maWc/LmhpZ2hsaWdodFNlbGVjdGVkQ2FyZFwiXHJcblx0XHRcdFtzaG93QWN0aW9uc0FzTWVudV09XCJ0YWJsZUNvbmZpZz8uc2hvd0FjdGlvbnNBc01lbnVcIlxyXG5cdFx0XHRbZmlsdGVyUGFyYW1zXT1cInRhYmxlQ29uZmlnPy5maWx0ZXJQYXJhbXNcIlxyXG5cdFx0XHRbZm9ybWF0XT1cInRhYmxlQ29uZmlnPy5mb3JtYXQgfHwgJ01NTU0gZCwgeSdcIlxyXG5cdFx0XHRbcGFnZVNpemVzXT1cInRhYmxlQ29uZmlnPy5wYWdlU2l6ZXMgfHwgZGVmYXVsdFBhZ2VTaXplc1wiXHJcblx0XHRcdFtwcmVmaXhdPVwidGFibGVDb25maWcucHJlZml4IHx8ICcnXCJcclxuXHRcdFx0W3Jvd0N1cnNvcl09XCJ0cnVlXCJcclxuXHRcdFx0W3F1ZXJ5UGFyYW1dPVwidGFibGVDb25maWcucXVlcnlQYXJhbVwiXHJcblx0XHRcdFtjdXN0b21GaWx0ZXJzXT1cInNlYXJjaEFuZEZpbHRlcnMkIHwgYXN5bmNcIlxyXG5cdFx0XHRbdGFibGVBY3Rpb25zXT1cInRhYmxlQ29uZmlnLnRhYmxlQWN0aW9uc1wiXHJcblx0XHRcdFtoZWFkZXJzXT1cInRhYmxlQ29uZmlnLmhlYWRlcnNcIlxyXG5cdFx0XHQob25Sb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvblJvd0luZGV4U2VsZWN0ZWQpPVwib25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChhY3Rpb25PblJvdyk9XCJhY3Rpb25PblJvdy5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25HZXR0aW5nRGF0YSk9XCJvbkdldHRpbmdEYXRhLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvbkxvYWQpPVwib25Mb2FkKCRldmVudClcIlxyXG5cdFx0XHQob25Jbml0aWFsaXplKT1cIm9uSW5pdGlhbGl6ZSgkZXZlbnQpXCJcclxuXHRcdFx0KG9uTXVsdGlSb3dTZWxlY3RlZCk9XCJvbk11bHRpUm93U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uTG9hZGluZyk9XCJvbkxvYWRpbmcuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uUGFnZSk9XCJvblBhZ2VDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0XHRbaXNMZWdhY3lNb2RlXT1cImZhbHNlXCJcclxuXHRcdFx0W3Nob3dUb3RhbFJlY29yZF09XCJ0cnVlXCJcclxuXHRcdFx0KHNvcnRDaGFuZ2VkKT1cIm9uU29ydENoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHQ+XHJcblx0XHRcdDxuZy10ZW1wbGF0ZSBlbXB0eVRlbXBsYXRlIGxldC1pc0xvYWRpbmcgbGV0LXJvd3M9XCJyb3dzXCIgbGV0LWluaXRpYWxpemVkPVwiaW5pdGlhbGl6ZWRcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibG9hZGluZy1kYXRhXCIgKm5nSWY9XCJpc0xvYWRpbmcgJiYgaW5pdGlhbGl6ZWRcIj5cclxuXHRcdFx0XHRcdDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgaC01LzZcIiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIXJvd3MubGVuZ3RoXCI+XHJcblx0XHRcdFx0XHQ8YXBwLW5vLWRhdGEtZm91bmQgY2xhc3M9XCJtdC00XCIgW21lc3NhZ2VdPVwiZW1wdHlNZXNzYWdlXCI+PC9hcHAtbm8tZGF0YS1mb3VuZD5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdDwvY3RzLWR5bmFtaWMtdGFibGU+XHJcblxyXG5cdFx0PGN0cy10YWJsZVxyXG5cdFx0XHQqbmdJZj1cInRhYmxlQ29uZmlnLmlzRGF0YVByb3ZpZGVkXCJcclxuXHRcdFx0W3Jvd3NdPVwicm93c1wiXHJcblx0XHRcdFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuXHRcdFx0W2NvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luY1wiXHJcblx0XHRcdFtyZXNwb25zaXZlQ29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zJCB8IGFzeW5jXCJcclxuXHRcdFx0W3Jvd0N1cnNvcl09XCJ0cnVlXCJcclxuXHRcdFx0W2Z1bGxXaWR0aF09XCJ0YWJsZUNvbmZpZy5mdWxsV2lkdGggfHwgJ2F1dG8nXCJcclxuXHRcdFx0W2VudGl0eVR5cGVdPVwiJ2FsbCdcIlxyXG5cdFx0XHRbcHJlZml4XT1cInRhYmxlQ29uZmlnLnByZWZpeCB8fCAnJ1wiXHJcblx0XHRcdFt0YWJsZU1vZGVdPVwidmlld01vZGUkIHwgYXN5bmNcIlxyXG5cdFx0XHRbY29tcG9uZW50TmFtZV09XCJ0YWJsZU1vZGU/LlsnY29tcG9uZW50TmFtZSddXCJcclxuXHRcdFx0W211bHRpU2VsZWN0Um93c109XCJ0YWJsZUNvbmZpZz8ubXVsdGlTZWxlY3RSb3dzXCJcclxuXHRcdFx0W2N1c3RvbUZpcnN0Um93XT1cInRhYmxlQ29uZmlnPy5jdXN0b21GaXJzdFJvd1wiXHJcblx0XHRcdFt0YWJsZUFjdGlvbnNdPVwidGFibGVDb25maWcudGFibGVBY3Rpb25zXCJcclxuXHRcdFx0W3Nob3dBY3Rpb25zQXNNZW51XT1cInRhYmxlQ29uZmlnPy5zaG93QWN0aW9uc0FzTWVudVwiXHJcblx0XHRcdFtkZWZ1bHRTb3J0XT1cInRhYmxlQ29uZmlnLmRlZmF1bHRTb3J0IHx8IGRlZmF1bHRTb3J0XCJcclxuXHRcdFx0W2Zvcm1hdF09XCJ0YWJsZUNvbmZpZz8uZm9ybWF0IHx8ICdNTU1NIGQsIHknXCJcclxuXHRcdFx0W2hpZ2hsaWdodFNlbGVjdGVkQ2FyZF09XCJ0YWJsZUNvbmZpZz8uaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXCJcclxuXHRcdFx0KG9uUm93U2VsZWN0ZWQpPVwib25Sb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25Sb3dJbmRleFNlbGVjdGVkKT1cIm9uUm93SW5kZXhTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25NdWx0aVJvd1NlbGVjdGVkKT1cIm9uTXVsdGlSb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQoYWN0aW9uT25Sb3cpPVwiYWN0aW9uT25Sb3cuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uU29ydGluZyk9XCJvblNvcnRDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0PjwvY3RzLXRhYmxlPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9tb2RlbHMvcGF5bG9hZC10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXHJcblxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IHR5cGUgTmRmUmVxdWVzdENvbmZpZyA9IHtcclxuXHRtZXRob2Q6ICdwb3N0JyB8ICdnZXQnO1xyXG5cdHVybDogc3RyaW5nO1xyXG5cdHBheWxvYWQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0aGVhZGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBOZGZFeHBvcnRQYXlsb2FkID0ge1xyXG5cdHByZWRpY2F0ZUxpc3Q6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyBvcGVyYXRvcjogc3RyaW5nIH1bXTtcclxuXHRyZXBvcnRNZXRhRGF0YToge1xyXG5cdFx0ZG9jVHlwZU5hbWU6IHN0cmluZztcclxuXHRcdGZpbGVUeXBlOiBzdHJpbmc7XHJcblx0XHRyZXBvcnRUaXRsZT86IHN0cmluZztcclxuXHRcdGxvY2FsZTogc3RyaW5nO1xyXG5cdFx0ZmllbGRzOiBzdHJpbmdbXTtcclxuXHRcdGhlYWRlcnM/OiBzdHJpbmdbXTtcclxuXHR9O1xyXG59O1xyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bG9hZC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9tb2RlbHMvcGF5bG9hZC10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgTmRmUmVxdWVzdENvbmZpZyA9IHtcclxuXHRtZXRob2Q6ICdwb3N0JyB8ICdnZXQnO1xyXG5cdHVybDogc3RyaW5nO1xyXG5cdHBheWxvYWQ/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0aGVhZGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBOZGZFeHBvcnRQYXlsb2FkID0ge1xyXG5cdHByZWRpY2F0ZUxpc3Q6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyBvcGVyYXRvcjogc3RyaW5nIH1bXTtcclxuXHRyZXBvcnRNZXRhRGF0YToge1xyXG5cdFx0YmxvYk5hbWU6IHN0cmluZztcclxuXHRcdGJsb2JOYW1lRW4/OiBzdHJpbmc7XHJcblx0XHRkb2NUeXBlTmFtZTogc3RyaW5nO1xyXG5cdFx0ZmlsZVR5cGU6IHN0cmluZztcclxuXHRcdHJlcG9ydFRpdGxlPzogc3RyaW5nO1xyXG5cdFx0bG9jYWxlOiBzdHJpbmc7XHJcblx0XHRmaWVsZHM6IHN0cmluZ1tdO1xyXG5cdFx0aGVhZGVycz86IHN0cmluZ1tdO1xyXG5cdH07XHJcbn07XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9tb2RlbHMvdGFibGUtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRDb25maWdNb2RlbCB9IGZyb20gXCIuLi8uLi8uLi9uZGYtZmlsdGVyc1wiO1xyXG5pbXBvcnQgeyBHbG9iYWxTZWFyY2hDb25maWcgfSBmcm9tICcuL3NlYXJjaC5jb25maWcnO1xyXG5pbXBvcnQgeyBUYWJsZU1vZGVDb25maWcsIFRhYmxlU29ydENvbmZpZyB9IGZyb20gJy4vdGFibGUtbW9kZSc7XHJcbmltcG9ydCB7IExhYmVsVmFsdWUsIFNvcnRUYWJsZUl0ZW0gfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgTmRmUmVxdWVzdENvbmZpZyB9IGZyb20gJy4vcGF5bG9hZC10eXBlcyc7XHJcblxyXG5leHBvcnQgdHlwZSBOZGZUYWJsZU9wdGlvbnMgPSB7XHJcblx0c2VhcmNoPzogR2xvYmFsU2VhcmNoQ29uZmlnO1xyXG5cdGZpbHRlcnM6IEZpbHRlcnNDb25maWc7XHJcblx0c29ydExpc3Q/OiBTb3J0VGFibGVJdGVtW107XHJcblx0dGFibGVNb2RlPzogVGFibGVNb2RlQ29uZmlnO1xyXG5cdGV4cG9ydD86IFRhYmxlRXhwb3J0Q29uZmlnO1xyXG5cdGNvbHVtbnM/OiB7XHJcblx0XHR0b2dnbGU/OiBib29sZWFuO1xyXG5cdFx0c29ydGFibGU/OiBUYWJsZVNvcnRDb25maWc7XHJcblx0fTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEZpbHRlck1vZGUgPVxyXG5cdHwgeyBtb2RlOiAncGF5bG9hZCcgfVxyXG5cdHwge1xyXG5cdFx0XHRtb2RlOiAncGFyYW1zJztcclxuXHRcdFx0c3RyaW5naWZ5UGFyYW1zOiBib29sZWFuO1xyXG5cdCAgfTtcclxuXHJcbmV4cG9ydCB0eXBlIEZpbHRlclJlbG9hZENvbmZpZyA9XHJcblx0fCB7IHN0cmF0ZWd5OiAnYWx3YXlzJyB9XHJcblx0fCB7IHN0cmF0ZWd5OiAnbmV2ZXInIH1cclxuXHR8IHsgc3RyYXRlZ3k6ICdvbkNoYW5nZSc7IHRyaWdnZXJGaWVsZHM6IHN0cmluZ1tdIH07XHJcblxyXG5leHBvcnQgdHlwZSBGaWx0ZXJzQ29uZmlnID0gRmlsdGVyTW9kZSAmIHtcclxuXHRyZWxvYWQ/OiBGaWx0ZXJSZWxvYWRDb25maWc7XHJcblx0ZmllbGRzOiBGaWVsZENvbmZpZ01vZGVsW107XHJcblx0cGFuZWw/OiB7XHJcblx0XHR2aXNpYmxlPzogYm9vbGVhbjtcclxuXHRcdHRvZ2dsZUJ1dHRvbj86IGJvb2xlYW47XHJcblx0fTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIEN1c3RvbUNyaXRlcmlhTW9kZWwgPSB7XHJcblx0cGFyYW1zPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRwYXlsb2FkPzogeyBwcmVkaWNhdGVMaXN0OiBhbnlbXSB9ICYgUmVjb3JkPHN0cmluZywgYW55PjtcclxufSB8IG51bGw7XHJcblxyXG5leHBvcnQgdHlwZSBUYWJsZUV4cG9ydENvbmZpZyA9IHtcclxuXHRlbmFibGVkOiBib29sZWFuO1xyXG5cdHJlcXVlc3Q6IE5kZlJlcXVlc3RDb25maWc7XHJcblx0ZG9jVHlwZU5hbWU6ICd0YXNrJyB8ICdyZXF1ZXN0JyB8ICdyZWNvcmQnO1xyXG5cdGRlZmF1bHRUeXBlOiAnZXhjZWwnIHwgJ2RvY3gnIHwgJ3BkZic7XHJcblx0YWxsb3dlZFR5cGVzPzogTGFiZWxWYWx1ZTxzdHJpbmcsICdleGNlbCcgfCAnZG9jeCcgfCAncGRmJz5bXTtcclxuXHRmaWVsZHM/OiBzdHJpbmdbXTtcclxuXHRsb2NhbGU/OiBzdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBFeHBvcnRUeXBlID0gVGFibGVFeHBvcnRDb25maWdbJ2RlZmF1bHRUeXBlJ107XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9tb2RlbHMvdGFibGUtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL25kZi1maWx0ZXJzJztcclxuaW1wb3J0IHsgTmRmUmVxdWVzdENvbmZpZyB9IGZyb20gJy4vcGF5bG9hZC10eXBlcyc7XHJcbmltcG9ydCB7IEdsb2JhbFNlYXJjaENvbmZpZyB9IGZyb20gJy4vc2VhcmNoLmNvbmZpZyc7XHJcbmltcG9ydCB7IFRhYmxlTW9kZUNvbmZpZywgVGFibGVTb3J0Q29uZmlnIH0gZnJvbSAnLi90YWJsZS1tb2RlJztcclxuaW1wb3J0IHsgTGFiZWxWYWx1ZSwgU29ydFRhYmxlSXRlbSB9IGZyb20gJy4vdHlwZXMnO1xyXG5cclxuZXhwb3J0IHR5cGUgTmRmVGFibGVPcHRpb25zID0ge1xyXG5cdHNlYXJjaD86IEdsb2JhbFNlYXJjaENvbmZpZztcclxuXHRmaWx0ZXJzOiBGaWx0ZXJzQ29uZmlnO1xyXG5cdHNvcnRMaXN0PzogU29ydFRhYmxlSXRlbVtdO1xyXG5cdHRhYmxlTW9kZT86IFRhYmxlTW9kZUNvbmZpZztcclxuXHRleHBvcnQ/OiBUYWJsZUV4cG9ydENvbmZpZztcclxuXHRjb2x1bW5zPzoge1xyXG5cdFx0dG9nZ2xlPzogYm9vbGVhbjtcclxuXHRcdHNvcnRhYmxlPzogVGFibGVTb3J0Q29uZmlnO1xyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBGaWx0ZXJNb2RlID1cclxuXHR8IHsgbW9kZTogJ3BheWxvYWQnIH1cclxuXHR8IHtcclxuXHRcdFx0bW9kZTogJ3BhcmFtcyc7XHJcblx0XHRcdHN0cmluZ2lmeVBhcmFtczogYm9vbGVhbjtcclxuXHQgIH07XHJcblxyXG5leHBvcnQgdHlwZSBGaWx0ZXJSZWxvYWRDb25maWcgPVxyXG5cdHwgeyBzdHJhdGVneTogJ2Fsd2F5cycgfVxyXG5cdHwgeyBzdHJhdGVneTogJ25ldmVyJyB9XHJcblx0fCB7IHN0cmF0ZWd5OiAnb25DaGFuZ2UnOyB0cmlnZ2VyRmllbGRzOiBzdHJpbmdbXSB9O1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsdGVyc0NvbmZpZyA9IEZpbHRlck1vZGUgJiB7XHJcblx0cmVsb2FkPzogRmlsdGVyUmVsb2FkQ29uZmlnO1xyXG5cdGZpZWxkczogRmllbGRDb25maWdNb2RlbFtdO1xyXG5cdHBhbmVsPzoge1xyXG5cdFx0dmlzaWJsZT86IGJvb2xlYW47XHJcblx0XHR0b2dnbGVCdXR0b24/OiBib29sZWFuO1xyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBDdXN0b21Dcml0ZXJpYU1vZGVsID0ge1xyXG5cdHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0cGF5bG9hZD86IHsgcHJlZGljYXRlTGlzdDogYW55W10gfSAmIFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn0gfCBudWxsO1xyXG5cclxuZXhwb3J0IHR5cGUgVGFibGVFeHBvcnRDb25maWcgPSB7XHJcblx0ZW5hYmxlZDogYm9vbGVhbjtcclxuXHRyZXF1ZXN0OiBOZGZSZXF1ZXN0Q29uZmlnO1xyXG5cdGRvY1R5cGVOYW1lOiAndGFzaycgfCAncmVxdWVzdCcgfCAncmVjb3JkJztcclxuXHRibG9iTmFtZTogc3RyaW5nO1xyXG5cdGRlZmF1bHRUeXBlOiAnZXhjZWwnIHwgJ2RvY3gnIHwgJ3BkZic7XHJcblx0YWxsb3dlZFR5cGVzPzogTGFiZWxWYWx1ZTxzdHJpbmcsICdleGNlbCcgfCAnZG9jeCcgfCAncGRmJz5bXTtcclxuXHRmaWVsZHM/OiBzdHJpbmdbXTtcclxuXHRsb2NhbGU/OiBzdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBFeHBvcnRUeXBlID0gVGFibGVFeHBvcnRDb25maWdbJ2RlZmF1bHRUeXBlJ107XHJcbiJdfQ==
@@ -10047,7 +10047,7 @@ class DynamicFormHijriDateitemComponent {
10047
10047
  }
10048
10048
  }
10049
10049
  DynamicFormHijriDateitemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFormHijriDateitemComponent, deps: [{ token: DateFormatterService }, { token: i2$4.NgControl, optional: true, self: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
10050
- DynamicFormHijriDateitemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: { minHijri: "minHijri", maxHijri: "maxHijri", minGreg: "minGreg", maxGreg: "maxGreg", label: "label", isDisabled: "isDisabled", range: "range", vertical: "vertical", isReadOnly: "isReadOnly", placeholder: "placeholder", emitOnBlur: "emitOnBlur" }, outputs: { valueChanged: "valueChanged" }, viewQueries: [{ propertyName: "startDatePicker", first: true, predicate: ["datePicker"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"hijri-date-lable\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger mx-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<div class=\"hijri-date-container\">\r\n <hijri-gregorian-datepicker\r\n [placeHolder]=\"placeHolder | translate\"\r\n [(selectedDate)]=\"date\"\r\n [isRequired]=\"true\"\r\n [GregLabel]=\"'gregorian' | translate\"\r\n [hijriLabel]=\"'hijri' |translate\"\r\n [selectedDateType]=\"selectedDateType\"\r\n [disabled]=\"isDisabled\"\r\n [readonly]=\"isReadOnly\"\r\n [minHijri]=\"minHijri\"\r\n [maxHijri]=\"maxHijri\"\r\n [minGreg]=\"minGreg\"\r\n [maxGreg]=\"maxGreg\"\r\n [range]=\"range\"\r\n [emitOnBlur]=\"emitOnBlur\"\r\n [vertical]=\"vertical\"\r\n (selectedDateChange)=\"setValue($event)\"\r\n #datePicker\r\n >\r\n </hijri-gregorian-datepicker>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.hijri-date-lable{color:#646f85;font-size:13px;margin-bottom:5px}hijri-gregorian-datepicker .form-group .requiredInput{display:none}hijri-gregorian-datepicker .form-group .input-group{display:flex;flex-wrap:nowrap;align-items:stretch;width:100%}hijri-gregorian-datepicker .form-group .input-group hijri-date-picker{display:block}hijri-gregorian-datepicker .form-group .input-group .form-control{border:1px solid #ccc;border-start-start-radius:5px;border-end-start-radius:5px;border-start-end-radius:0;border-end-end-radius:0;background-color:#8f98aa1a;height:40px}hijri-gregorian-datepicker .form-group .input-group .input-group-append{margin:0}hijri-gregorian-datepicker .form-group .input-group .input-group-append .btn{border-start-end-radius:5px!important;border-end-end-radius:5px!important;border-start-start-radius:0!important;border-end-start-radius:0!important;display:block;margin:0;border:none;color:#fff;background-color:#b4bac6}hijri-gregorian-datepicker .form-group .input-group .input-group-append .btn:hover{background-color:#8f98aa}hijri-gregorian-datepicker .form-group .input-group .input-group-append .active{display:none}\n"], components: [{ type: HijriGregorianDatepickerComponent, selector: "hijri-gregorian-datepicker", inputs: ["selectedDateType", "selectedDate", "label", "showLabel", "readonly", "isRequired", "disabled", "disabledbtn", "minHijri", "maxHijri", "minGreg", "maxGreg", "hijriLabel", "GregLabel", "placeHolder", "range", "vertical", "emitOnBlur"], outputs: ["selectedDateChange"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
10050
+ DynamicFormHijriDateitemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: DynamicFormHijriDateitemComponent, selector: "cts-dynamic-form-hijri-dateitem", inputs: { minHijri: "minHijri", maxHijri: "maxHijri", minGreg: "minGreg", maxGreg: "maxGreg", label: "label", isDisabled: "isDisabled", range: "range", vertical: "vertical", isReadOnly: "isReadOnly", placeholder: "placeholder", emitOnBlur: "emitOnBlur" }, outputs: { valueChanged: "valueChanged" }, viewQueries: [{ propertyName: "startDatePicker", first: true, predicate: ["datePicker"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"label\">\r\n <div class=\"flex\">\r\n <label class=\"hijri-date-lable\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger mx-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<div class=\"hijri-date-container\">\r\n <hijri-gregorian-datepicker\r\n [placeHolder]=\"placeHolder | translate\"\r\n [(selectedDate)]=\"date\"\r\n [isRequired]=\"true\"\r\n [GregLabel]=\"'gregorian' | translate\"\r\n [hijriLabel]=\"'hijri' |translate\"\r\n [selectedDateType]=\"selectedDateType\"\r\n [disabled]=\"isDisabled\"\r\n [readonly]=\"isReadOnly\"\r\n [minHijri]=\"minHijri\"\r\n [maxHijri]=\"maxHijri\"\r\n [minGreg]=\"minGreg\"\r\n [maxGreg]=\"maxGreg\"\r\n [range]=\"range\"\r\n [emitOnBlur]=\"emitOnBlur\"\r\n [vertical]=\"vertical\"\r\n (selectedDateChange)=\"setValue($event)\"\r\n #datePicker\r\n >\r\n </hijri-gregorian-datepicker>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.hijri-date-lable{color:#646f85;font-size:13px;margin-bottom:5px}hijri-gregorian-datepicker .form-group .requiredInput{display:none}hijri-gregorian-datepicker .form-group .input-group{display:flex;flex-wrap:nowrap;align-items:stretch;width:100%}hijri-gregorian-datepicker .form-group .input-group hijri-date-picker{display:block}hijri-gregorian-datepicker .form-group .input-group .form-control{border:1px solid #ccc;border-start-start-radius:5px;border-end-start-radius:5px;border-start-end-radius:0;border-end-end-radius:0;background-color:#8f98aa1a;height:40px}hijri-gregorian-datepicker .form-group .input-group .input-group-append{margin:0}hijri-gregorian-datepicker .form-group .input-group .input-group-append .btn{border-start-end-radius:5px!important;border-end-end-radius:5px!important;border-start-start-radius:0!important;border-end-start-radius:0!important;display:block;margin:0;border:none;color:#fff;background-color:#b4bac6}hijri-gregorian-datepicker .form-group .input-group .input-group-append .btn:hover{background-color:#8f98aa}hijri-gregorian-datepicker .form-group .input-group .input-group-append .active{display:none}\n"], components: [{ type: HijriGregorianDatepickerComponent, selector: "hijri-gregorian-datepicker", inputs: ["selectedDateType", "selectedDate", "label", "showLabel", "readonly", "isRequired", "disabled", "disabledbtn", "minHijri", "maxHijri", "minGreg", "maxGreg", "hijriLabel", "GregLabel", "placeHolder", "range", "vertical", "emitOnBlur"], outputs: ["selectedDateChange"] }], directives: [{ type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
10051
10051
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicFormHijriDateitemComponent, decorators: [{
10052
10052
  type: Component,
10053
10053
  args: [{
@@ -20334,7 +20334,7 @@ class NdfTableComponent extends DestroySubject {
20334
20334
  this.onSort.emit(sort);
20335
20335
  }
20336
20336
  exportTable(type) {
20337
- var _a, _b, _c, _d;
20337
+ var _a, _b, _c, _d, _e;
20338
20338
  const request = ___default.cloneDeep((_a = this.exportTableConfig) === null || _a === void 0 ? void 0 : _a.request);
20339
20339
  if (!request) {
20340
20340
  return;
@@ -20344,20 +20344,27 @@ class NdfTableComponent extends DestroySubject {
20344
20344
  const headers = columns.map((col) => (this.tableConfig.prefix || '') + col.name);
20345
20345
  const criteria = this._customCriteriaSub.getValue();
20346
20346
  request.params = Object.assign({}, criteria.params, this._sortValue || {}, ((_b = this.tableConfig) === null || _b === void 0 ? void 0 : _b.quickFilters) ? { quickFilters: this.tableConfig.quickFilters } : {}, request.params);
20347
+ const blobNameKey = (_c = this.exportTableConfig) === null || _c === void 0 ? void 0 : _c.blobName;
20347
20348
  const payload = {
20348
20349
  predicateList: criteria.payload.predicateList || [],
20349
20350
  reportMetaData: {
20351
+ blobName: '',
20350
20352
  docTypeName: this.exportTableConfig.docTypeName,
20351
20353
  fileType: type,
20352
- locale: ((_c = this.exportTableConfig) === null || _c === void 0 ? void 0 : _c.locale) || this._translateService.currentLang,
20353
- fields: ((_d = this.exportTableConfig) === null || _d === void 0 ? void 0 : _d.fields) || fields,
20354
+ locale: ((_d = this.exportTableConfig) === null || _d === void 0 ? void 0 : _d.locale) || this._translateService.currentLang,
20355
+ fields: ((_e = this.exportTableConfig) === null || _e === void 0 ? void 0 : _e.fields) || fields,
20354
20356
  headers: []
20355
20357
  }
20356
20358
  };
20357
- this._translateService
20358
- .get(headers)
20359
+ forkJoin({
20360
+ ar: this._translateService.getTranslation('ar'),
20361
+ en: this._translateService.getTranslation('en')
20362
+ })
20359
20363
  .pipe(switchMap((translations) => {
20360
- payload.reportMetaData.headers = headers.map((col) => translations[col]);
20364
+ const currentTranslations = translations[this._translateService.currentLang];
20365
+ payload.reportMetaData.headers = headers.map((col) => ___default.get(currentTranslations, col));
20366
+ payload.reportMetaData.blobName = ___default.get(translations['ar'], blobNameKey);
20367
+ payload.reportMetaData.blobNameEn = ___default.get(translations['en'], blobNameKey);
20361
20368
  return this._ngTableService.exportTable(request, payload);
20362
20369
  }), catchError((_) => {
20363
20370
  this._toastrService.error('TABLE.EXPORT.RequestError');
@@ -23109,7 +23116,7 @@ class DocumentUploadComponent {
23109
23116
  this.allowedTypes = 'application/pdf,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation';
23110
23117
  /** Params to be sent with properties when creating a document */
23111
23118
  this.params = {};
23112
- /** Max allowed upload size */
23119
+ /** Max allowed upload size in Bytes*/
23113
23120
  this.maxSize = 1145728;
23114
23121
  /** min allowed upload size */
23115
23122
  this.minSize = 1000;
@@ -35418,7 +35425,7 @@ _PdftronComponent_docLoaded = new WeakMap(), _PdftronComponent_instances = new W
35418
35425
  this.pdftronService.instance = this.webViewerInstance = instance;
35419
35426
  if (this.correspondance.facets.indexOf('ctocr') > -1 && ((_b = (_a = this.correspondance) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b['ctocr:recognizedJson'])) {
35420
35427
  this.fileWithOcr = true;
35421
- this.pages = JSON.parse(this.correspondance.properties['ctocr:recognizedJson']);
35428
+ this.pages = this.ctocrFulltext ? JSON.stringify(this.ctocrFulltext) : JSON.parse(this.correspondance.properties['ctocr:recognizedJson']);
35422
35429
  // override search funtion to use our search in ocr not defult search
35423
35430
  instance.overrideSearchExecution(this.searchFn);
35424
35431
  }
@@ -35462,7 +35469,7 @@ _PdftronComponent_docLoaded = new WeakMap(), _PdftronComponent_instances = new W
35462
35469
  // maybe will need to reset signature & annotations
35463
35470
  };
35464
35471
  PdftronComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PdftronComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: PdftronService }, { token: NuxeoService }, { token: APP_BASE_HREF }, { token: TranslationService }, { token: SilentPdfTronService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Component });
35465
- PdftronComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PdftronComponent, selector: "app-pdftron", inputs: { editMode: "editMode", actionClicked: "actionClicked", fileTitle: "fileTitle", docId: "docId", DOCUMENT_TYPE: "DOCUMENT_TYPE", fileData: "fileData", fitMode: "fitMode", authHeader: "authHeader", fileURL: "fileURL", correspondance: "correspondance", secrecyProperty: "secrecyProperty", editingType: "editingType", userSignatures: "userSignatures", searchString: "searchString", trackSignature: "trackSignature", useOutsideAnotations: "useOutsideAnotations", importedAnotations: "importedAnotations", allowDownloadSecretFile: "allowDownloadSecretFile", allowPrintSecretFile: "allowPrintSecretFile", negelectAddingWaterMark: "negelectAddingWaterMark" }, outputs: { onSignatureTracking: "onSignatureTracking", onAddingAnotation: "onAddingAnotation", events: "events", SignatureEvent: "SignatureEvent" }, providers: [SecurePipe], viewQueries: [{ propertyName: "viewerRef", first: true, predicate: ["fileViewer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #fileViewer style=\"width: 100%; height: 100%;\"></div>\r\n", styles: [""] });
35472
+ PdftronComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PdftronComponent, selector: "app-pdftron", inputs: { editMode: "editMode", actionClicked: "actionClicked", fileTitle: "fileTitle", docId: "docId", DOCUMENT_TYPE: "DOCUMENT_TYPE", fileData: "fileData", fitMode: "fitMode", authHeader: "authHeader", fileURL: "fileURL", correspondance: "correspondance", secrecyProperty: "secrecyProperty", editingType: "editingType", userSignatures: "userSignatures", searchString: "searchString", trackSignature: "trackSignature", useOutsideAnotations: "useOutsideAnotations", importedAnotations: "importedAnotations", allowDownloadSecretFile: "allowDownloadSecretFile", allowPrintSecretFile: "allowPrintSecretFile", negelectAddingWaterMark: "negelectAddingWaterMark", ctocrFulltext: "ctocrFulltext" }, outputs: { onSignatureTracking: "onSignatureTracking", onAddingAnotation: "onAddingAnotation", events: "events", SignatureEvent: "SignatureEvent" }, providers: [SecurePipe], viewQueries: [{ propertyName: "viewerRef", first: true, predicate: ["fileViewer"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div #fileViewer style=\"width: 100%; height: 100%;\"></div>\r\n", styles: [""] });
35466
35473
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PdftronComponent, decorators: [{
35467
35474
  type: Component,
35468
35475
  args: [{
@@ -35522,6 +35529,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
35522
35529
  type: Input
35523
35530
  }], negelectAddingWaterMark: [{
35524
35531
  type: Input
35532
+ }], ctocrFulltext: [{
35533
+ type: Input
35525
35534
  }], onAddingAnotation: [{
35526
35535
  type: Output
35527
35536
  }], events: [{