nuxeo-development-framework 5.5.7 → 5.5.9

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 { BaseService } from './base.service';
2
2
  import { AppConfigService } from '../../../configuration/app-config.service';
3
- import { map, switchMap } from 'rxjs/operators';
3
+ import { catchError, map, switchMap } from 'rxjs/operators';
4
4
  import { of } from 'rxjs';
5
5
  import _, { cloneDeep } from 'lodash';
6
6
  import { Injectable } from '@angular/core';
@@ -11,15 +11,22 @@ export class BaseEditorConfigService extends BaseService {
11
11
  this.injector = injector;
12
12
  this.appConfigService = this.injector.get(AppConfigService);
13
13
  }
14
- fetchData({ key, type, app, localPath }) {
14
+ fetchData({ key, type, app, localPath, }) {
15
15
  return this.request({
16
16
  type: 'get',
17
17
  endpoint: `/search/pp/PP_NDF_UI_Configurations/execute`,
18
18
  queryParams: Object.assign({ ndfuiconfig_type: type, ndfuiconfig_key: key }, (app ? { ndfuiconfig_app: app } : {})),
19
19
  headers: {
20
- properties: 'ndfuiconfig,note'
21
- }
22
- }).pipe(map((response) => { var _a; return (_a = response.entries) === null || _a === void 0 ? void 0 : _a[0]; }), switchMap((entry) => {
20
+ properties: 'ndfuiconfig,note',
21
+ },
22
+ }).pipe(map((response) => { var _a; return (_a = response.entries) === null || _a === void 0 ? void 0 : _a[0]; }), catchError((error) => {
23
+ return this._getDataFromLocal({
24
+ key,
25
+ type,
26
+ app,
27
+ localPath,
28
+ });
29
+ }), switchMap((entry) => {
23
30
  var _a;
24
31
  const content = this._parseData((_a = entry === null || entry === void 0 ? void 0 : entry.properties) === null || _a === void 0 ? void 0 : _a['note:note']);
25
32
  if (content) {
@@ -30,24 +37,32 @@ export class BaseEditorConfigService extends BaseService {
30
37
  key: key,
31
38
  type: type,
32
39
  app: entry.properties['ndfuiconfig:app'],
33
- config: content
34
- }
40
+ config: content,
41
+ },
35
42
  });
36
43
  }
37
- const config = this.appConfigService.myConfiguration || {};
38
- const base = localPath ? _.get(config, localPath) : config;
39
- const data = cloneDeep(_.get(base, key));
40
- return of({
41
- submitted: false,
42
- data: {
43
- key: key,
44
- type: type,
45
- app: app,
46
- config: data
47
- }
44
+ return this._getDataFromLocal({
45
+ key,
46
+ type,
47
+ app,
48
+ localPath,
48
49
  });
49
50
  }));
50
51
  }
52
+ _getDataFromLocal({ key, type, app, localPath }) {
53
+ const config = this.appConfigService.myConfiguration || {};
54
+ const base = localPath ? _.get(config, localPath) : config;
55
+ const data = cloneDeep(_.get(base, key));
56
+ return of({
57
+ submitted: false,
58
+ data: {
59
+ key: key,
60
+ type: type,
61
+ app: app,
62
+ config: data,
63
+ },
64
+ });
65
+ }
51
66
  _parseData(data) {
52
67
  if (!data) {
53
68
  return null;
@@ -67,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
67
82
  type: Injectable,
68
83
  args: [{ providedIn: 'root' }]
69
84
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lZGl0b3ItY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvYmFzZS9iYXNlLWVkaXRvci1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFN0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7O0FBd0JyRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsV0FBVztJQUV2RCxZQUFtQixRQUFrQjtRQUNwQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFERSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRDNCLHFCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFHakUsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBc0I7UUFDMUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUF3QjtZQUMxQyxJQUFJLEVBQUUsS0FBSztZQUNYLFFBQVEsRUFBRSw2Q0FBNkM7WUFDdkQsV0FBVyxrQkFBSSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsSUFBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFFO1lBQ3ZHLE9BQU8sRUFBRTtnQkFDUixVQUFVLEVBQUUsa0JBQWtCO2FBQzlCO1NBQ0QsQ0FBQyxDQUFDLElBQUksQ0FDTixHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxXQUFDLE9BQUEsTUFBQSxRQUFRLENBQUMsT0FBTywwQ0FBRyxDQUFDLENBQUMsQ0FBQSxFQUFBLENBQUMsRUFDeEMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7O1lBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsVUFBVSwwQ0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBRWxFLElBQUksT0FBTyxFQUFFO2dCQUNaLE9BQU8sRUFBRSxDQUFDO29CQUNULFNBQVMsRUFBRSxJQUFJO29CQUNmLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztvQkFDZCxJQUFJLEVBQUU7d0JBQ0wsR0FBRyxFQUFFLEdBQUc7d0JBQ1IsSUFBSSxFQUFFLElBQUk7d0JBQ1YsR0FBRyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7d0JBQ3hDLE1BQU0sRUFBRSxPQUFPO3FCQUNmO2lCQUNELENBQUMsQ0FBQzthQUNIO1lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7WUFDM0QsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzNELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRXpDLE9BQU8sRUFBRSxDQUFDO2dCQUNULFNBQVMsRUFBRSxLQUFLO2dCQUNoQixJQUFJLEVBQUU7b0JBQ0wsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsSUFBSSxFQUFFLElBQUk7b0JBQ1YsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsTUFBTSxFQUFFLElBQUk7aUJBQ1o7YUFDRCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFZO1FBQzlCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNaO1FBQ0QsSUFBSTtZQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzQyxPQUFPLElBQUksQ0FBQztTQUNaO0lBQ0YsQ0FBQzs7cUhBM0RXLHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRFYsTUFBTTs0RkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IF8sIHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOREZfRURJVE9SX1RZUEUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ29uZmlnVHlwZSA9ICh0eXBlb2YgTkRGX0VESVRPUl9UWVBFKVtrZXlvZiB0eXBlb2YgTkRGX0VESVRPUl9UWVBFXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnUmVzcG9uc2VNb2RlbCB7XHJcblx0c3VibWl0dGVkOiBib29sZWFuO1xyXG5cdHVpZD86IHN0cmluZztcclxuXHRkYXRhOiB7XHJcblx0XHRrZXk6IHN0cmluZztcclxuXHRcdHR5cGU6IHN0cmluZztcclxuXHRcdGFwcD86IHN0cmluZztcclxuXHRcdGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHR9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ1JlcXVlc3RNb2RlbCB7XHJcblx0a2V5OiBzdHJpbmc7XHJcblx0dHlwZTogQ29uZmlnVHlwZTtcclxuXHRhcHA/OiBzdHJpbmc7XHJcblx0bG9jYWxQYXRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQmFzZUVkaXRvckNvbmZpZ1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcblx0cHJvdGVjdGVkIGFwcENvbmZpZ1NlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBcHBDb25maWdTZXJ2aWNlKTtcclxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcblx0XHRzdXBlcihpbmplY3Rvcik7XHJcblx0fVxyXG5cclxuXHRmZXRjaERhdGEoeyBrZXksIHR5cGUsIGFwcCwgbG9jYWxQYXRoIH06IENvbmZpZ1JlcXVlc3RNb2RlbCk6IE9ic2VydmFibGU8Q29uZmlnUmVzcG9uc2VNb2RlbD4ge1xyXG5cdFx0cmV0dXJuIHRoaXMucmVxdWVzdDxBcGlSZXNwb25zZU1vZGVsPGFueT4+KHtcclxuXHRcdFx0dHlwZTogJ2dldCcsXHJcblx0XHRcdGVuZHBvaW50OiBgL3NlYXJjaC9wcC9QUF9OREZfVUlfQ29uZmlndXJhdGlvbnMvZXhlY3V0ZWAsXHJcblx0XHRcdHF1ZXJ5UGFyYW1zOiB7IG5kZnVpY29uZmlnX3R5cGU6IHR5cGUsIG5kZnVpY29uZmlnX2tleToga2V5LCAuLi4oYXBwID8geyBuZGZ1aWNvbmZpZ19hcHA6IGFwcCB9IDoge30pIH0sXHJcblx0XHRcdGhlYWRlcnM6IHtcclxuXHRcdFx0XHRwcm9wZXJ0aWVzOiAnbmRmdWljb25maWcsbm90ZSdcclxuXHRcdFx0fVxyXG5cdFx0fSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuZW50cmllcz8uWzBdKSxcclxuXHRcdFx0c3dpdGNoTWFwKChlbnRyeSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9wYXJzZURhdGEoZW50cnk/LnByb3BlcnRpZXM/Llsnbm90ZTpub3RlJ10pO1xyXG5cclxuXHRcdFx0XHRpZiAoY29udGVudCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG9mKHtcclxuXHRcdFx0XHRcdFx0c3VibWl0dGVkOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHR1aWQ6IGVudHJ5LnVpZCxcclxuXHRcdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRcdGtleToga2V5LFxyXG5cdFx0XHRcdFx0XHRcdHR5cGU6IHR5cGUsXHJcblx0XHRcdFx0XHRcdFx0YXBwOiBlbnRyeS5wcm9wZXJ0aWVzWyduZGZ1aWNvbmZpZzphcHAnXSxcclxuXHRcdFx0XHRcdFx0XHRjb25maWc6IGNvbnRlbnRcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRjb25zdCBjb25maWcgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UubXlDb25maWd1cmF0aW9uIHx8IHt9O1xyXG5cdFx0XHRcdGNvbnN0IGJhc2UgPSBsb2NhbFBhdGggPyBfLmdldChjb25maWcsIGxvY2FsUGF0aCkgOiBjb25maWc7XHJcblx0XHRcdFx0Y29uc3QgZGF0YSA9IGNsb25lRGVlcChfLmdldChiYXNlLCBrZXkpKTtcclxuXHJcblx0XHRcdFx0cmV0dXJuIG9mKHtcclxuXHRcdFx0XHRcdHN1Ym1pdHRlZDogZmFsc2UsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdGtleToga2V5LFxyXG5cdFx0XHRcdFx0XHR0eXBlOiB0eXBlLFxyXG5cdFx0XHRcdFx0XHRhcHA6IGFwcCxcclxuXHRcdFx0XHRcdFx0Y29uZmlnOiBkYXRhXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcGFyc2VEYXRhKGRhdGE6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xyXG5cdFx0aWYgKCFkYXRhKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XHJcblx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRjb25zb2xlLndhcm4oJ0Vycm9yIHBhcnNpbmcgZGF0YTonLCBlcnJvcik7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXX0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lZGl0b3ItY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvYmFzZS9iYXNlLWVkaXRvci1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUV0QyxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQXdCckQsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFdBQVc7SUFFdEQsWUFBbUIsUUFBa0I7UUFDbkMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBREMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUQzQixxQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBR2pFLENBQUM7SUFFRCxTQUFTLENBQUMsRUFDUixHQUFHLEVBQ0gsSUFBSSxFQUNKLEdBQUcsRUFDSCxTQUFTLEdBQ1U7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUF3QjtZQUN6QyxJQUFJLEVBQUUsS0FBSztZQUNYLFFBQVEsRUFBRSw2Q0FBNkM7WUFDdkQsV0FBVyxrQkFDVCxnQkFBZ0IsRUFBRSxJQUFJLEVBQ3RCLGVBQWUsRUFBRSxHQUFHLElBQ2pCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ3pDO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLFVBQVUsRUFBRSxrQkFBa0I7YUFDL0I7U0FDRixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLFdBQUMsT0FBQSxNQUFBLFFBQVEsQ0FBQyxPQUFPLDBDQUFHLENBQUMsQ0FBQyxDQUFBLEVBQUEsQ0FBQyxFQUN4QyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztnQkFDNUIsR0FBRztnQkFDSCxJQUFJO2dCQUNKLEdBQUc7Z0JBQ0gsU0FBUzthQUNWLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFOztZQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFVBQVUsMENBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUVsRSxJQUFJLE9BQU8sRUFBRTtnQkFDWCxPQUFPLEVBQUUsQ0FBQztvQkFDUixTQUFTLEVBQUUsSUFBSTtvQkFDZixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7b0JBQ2QsSUFBSSxFQUFFO3dCQUNKLEdBQUcsRUFBRSxHQUFHO3dCQUNSLElBQUksRUFBRSxJQUFJO3dCQUNWLEdBQUcsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDO3dCQUN4QyxNQUFNLEVBQUUsT0FBTztxQkFDaEI7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7WUFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztnQkFDNUIsR0FBRztnQkFDSCxJQUFJO2dCQUNKLEdBQUc7Z0JBQ0gsU0FBUzthQUNWLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8saUJBQWlCLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQXNCO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO1FBQzNELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMzRCxNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QyxPQUFPLEVBQUUsQ0FBQztZQUNSLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLElBQUksRUFBRTtnQkFDSixHQUFHLEVBQUUsR0FBRztnQkFDUixJQUFJLEVBQUUsSUFBSTtnQkFDVixHQUFHLEVBQUUsR0FBRztnQkFDUixNQUFNLEVBQUUsSUFBSTthQUNiO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFZO1FBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSTtZQUNGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzQyxPQUFPLElBQUksQ0FBQztTQUNiO0lBQ0gsQ0FBQzs7cUhBcEZVLHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRFYsTUFBTTs0RkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IF8sIHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOREZfRURJVE9SX1RZUEUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ29uZmlnVHlwZSA9ICh0eXBlb2YgTkRGX0VESVRPUl9UWVBFKVtrZXlvZiB0eXBlb2YgTkRGX0VESVRPUl9UWVBFXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnUmVzcG9uc2VNb2RlbCB7XHJcbiAgc3VibWl0dGVkOiBib29sZWFuO1xyXG4gIHVpZD86IHN0cmluZztcclxuICBkYXRhOiB7XHJcbiAgICBrZXk6IHN0cmluZztcclxuICAgIHR5cGU6IHN0cmluZztcclxuICAgIGFwcD86IHN0cmluZztcclxuICAgIGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ1JlcXVlc3RNb2RlbCB7XHJcbiAga2V5OiBzdHJpbmc7XHJcbiAgdHlwZTogQ29uZmlnVHlwZTtcclxuICBhcHA/OiBzdHJpbmc7XHJcbiAgbG9jYWxQYXRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQmFzZUVkaXRvckNvbmZpZ1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcbiAgcHJvdGVjdGVkIGFwcENvbmZpZ1NlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBcHBDb25maWdTZXJ2aWNlKTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgfVxyXG5cclxuICBmZXRjaERhdGEoe1xyXG4gICAga2V5LFxyXG4gICAgdHlwZSxcclxuICAgIGFwcCxcclxuICAgIGxvY2FsUGF0aCxcclxuICB9OiBDb25maWdSZXF1ZXN0TW9kZWwpOiBPYnNlcnZhYmxlPENvbmZpZ1Jlc3BvbnNlTW9kZWw+IHtcclxuICAgIHJldHVybiB0aGlzLnJlcXVlc3Q8QXBpUmVzcG9uc2VNb2RlbDxhbnk+Pih7XHJcbiAgICAgIHR5cGU6ICdnZXQnLFxyXG4gICAgICBlbmRwb2ludDogYC9zZWFyY2gvcHAvUFBfTkRGX1VJX0NvbmZpZ3VyYXRpb25zL2V4ZWN1dGVgLFxyXG4gICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgIG5kZnVpY29uZmlnX3R5cGU6IHR5cGUsXHJcbiAgICAgICAgbmRmdWljb25maWdfa2V5OiBrZXksXHJcbiAgICAgICAgLi4uKGFwcCA/IHsgbmRmdWljb25maWdfYXBwOiBhcHAgfSA6IHt9KSxcclxuICAgICAgfSxcclxuICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgIHByb3BlcnRpZXM6ICduZGZ1aWNvbmZpZyxub3RlJyxcclxuICAgICAgfSxcclxuICAgIH0pLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlLmVudHJpZXM/LlswXSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldERhdGFGcm9tTG9jYWwoe1xyXG4gICAgICAgICAga2V5LFxyXG4gICAgICAgICAgdHlwZSxcclxuICAgICAgICAgIGFwcCxcclxuICAgICAgICAgIGxvY2FsUGF0aCxcclxuICAgICAgICB9KTtcclxuICAgICAgfSksXHJcbiAgICAgIHN3aXRjaE1hcCgoZW50cnkpID0+IHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5fcGFyc2VEYXRhKGVudHJ5Py5wcm9wZXJ0aWVzPy5bJ25vdGU6bm90ZSddKTtcclxuXHJcbiAgICAgICAgaWYgKGNvbnRlbnQpIHtcclxuICAgICAgICAgIHJldHVybiBvZih7XHJcbiAgICAgICAgICAgIHN1Ym1pdHRlZDogdHJ1ZSxcclxuICAgICAgICAgICAgdWlkOiBlbnRyeS51aWQsXHJcbiAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICBrZXk6IGtleSxcclxuICAgICAgICAgICAgICB0eXBlOiB0eXBlLFxyXG4gICAgICAgICAgICAgIGFwcDogZW50cnkucHJvcGVydGllc1snbmRmdWljb25maWc6YXBwJ10sXHJcbiAgICAgICAgICAgICAgY29uZmlnOiBjb250ZW50LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0RGF0YUZyb21Mb2NhbCh7XHJcbiAgICAgICAgICBrZXksXHJcbiAgICAgICAgICB0eXBlLFxyXG4gICAgICAgICAgYXBwLFxyXG4gICAgICAgICAgbG9jYWxQYXRoLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXREYXRhRnJvbUxvY2FsKHsga2V5LCB0eXBlLCBhcHAsIGxvY2FsUGF0aCB9OiBDb25maWdSZXF1ZXN0TW9kZWwpIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuYXBwQ29uZmlnU2VydmljZS5teUNvbmZpZ3VyYXRpb24gfHwge307XHJcbiAgICBjb25zdCBiYXNlID0gbG9jYWxQYXRoID8gXy5nZXQoY29uZmlnLCBsb2NhbFBhdGgpIDogY29uZmlnO1xyXG4gICAgY29uc3QgZGF0YSA9IGNsb25lRGVlcChfLmdldChiYXNlLCBrZXkpKTtcclxuICAgIHJldHVybiBvZih7XHJcbiAgICAgIHN1Ym1pdHRlZDogZmFsc2UsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBrZXk6IGtleSxcclxuICAgICAgICB0eXBlOiB0eXBlLFxyXG4gICAgICAgIGFwcDogYXBwLFxyXG4gICAgICAgIGNvbmZpZzogZGF0YSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcGFyc2VEYXRhKGRhdGE6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xyXG4gICAgaWYgKCFkYXRhKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgdHJ5IHtcclxuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ0Vycm9yIHBhcnNpbmcgZGF0YTonLCBlcnJvcik7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=