@dignite-ng/expand.ck-editor 0.0.7 → 0.0.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.
Files changed (34) hide show
  1. package/config/ck-editor-config.module.d.ts +8 -0
  2. package/config/enums/index.d.ts +1 -0
  3. package/config/enums/route-names.d.ts +3 -0
  4. package/config/index.d.ts +5 -0
  5. package/config/providers/index.d.ts +1 -0
  6. package/config/providers/route.provider.d.ts +8 -0
  7. package/config/public-api.d.ts +3 -0
  8. package/esm2022/config/ck-editor-config.module.mjs +18 -0
  9. package/esm2022/config/dignite-ng-expand.ck-editor-config.mjs +5 -0
  10. package/esm2022/config/enums/index.mjs +2 -0
  11. package/esm2022/config/enums/route-names.mjs +2 -0
  12. package/esm2022/config/providers/index.mjs +2 -0
  13. package/esm2022/config/providers/route.provider.mjs +24 -0
  14. package/esm2022/config/public-api.mjs +4 -0
  15. package/esm2022/lib/ck-editor-routing.module.mjs +11 -8
  16. package/esm2022/lib/ck-editor.module.mjs +12 -10
  17. package/esm2022/lib/components/dome/ck-editor-dome.component.mjs +75 -0
  18. package/esm2022/lib/dynamic-form/ck-editor/ck-editor-config.component.mjs +14 -7
  19. package/esm2022/lib/dynamic-form/ck-editor/ck-editor-config.mjs +7 -7
  20. package/esm2022/lib/dynamic-form/ck-editor/ck-editor-control.component.mjs +113 -96
  21. package/esm2022/lib/dynamic-form/ck-editor/ckEditorUpload.mjs +12 -9
  22. package/esm2022/lib/object/ck-editor-object.mjs +909 -0
  23. package/esm2022/public-api.mjs +2 -1
  24. package/fesm2022/dignite-ng-expand.ck-editor-config.mjs +47 -0
  25. package/fesm2022/dignite-ng-expand.ck-editor-config.mjs.map +1 -0
  26. package/fesm2022/dignite-ng-expand.ck-editor.mjs +1119 -152
  27. package/fesm2022/dignite-ng-expand.ck-editor.mjs.map +1 -1
  28. package/lib/ck-editor.module.d.ts +7 -6
  29. package/lib/components/dome/ck-editor-dome.component.d.ts +23 -0
  30. package/lib/dynamic-form/ck-editor/ck-editor-config.component.d.ts +1 -1
  31. package/lib/dynamic-form/ck-editor/ck-editor-control.component.d.ts +2 -19
  32. package/lib/object/ck-editor-object.d.ts +29 -0
  33. package/package.json +11 -5
  34. package/public-api.d.ts +1 -0
@@ -1,100 +1,99 @@
1
1
  import { ConfigStateService, RestService } from '@abp/ng.core';
2
- import { Component, Input, ViewChild, inject, } from '@angular/core';
2
+ import { Component, Input, ViewChild, inject } from '@angular/core';
3
3
  import { FormBuilder, Validators } from '@angular/forms';
4
- import "@ckeditor/ckeditor5-build-classic/build/translations/zh-cn";
5
- import "@ckeditor/ckeditor5-build-classic/build/translations/de-ch";
6
- import "@ckeditor/ckeditor5-build-classic/build/translations/en-gb";
7
- import "@ckeditor/ckeditor5-build-classic/build/translations/pt-br";
8
- import "@ckeditor/ckeditor5-build-classic/build/translations/zh";
9
- import "@ckeditor/ckeditor5-build-classic/build/translations/de";
10
- import "@ckeditor/ckeditor5-build-classic/build/translations/ar";
11
- import "@ckeditor/ckeditor5-build-classic/build/translations/cs";
12
- import "@ckeditor/ckeditor5-build-classic/build/translations/hi";
13
- import "@ckeditor/ckeditor5-build-classic/build/translations/fi";
14
- import "@ckeditor/ckeditor5-build-classic/build/translations/hu";
15
- import "@ckeditor/ckeditor5-build-classic/build/translations/fr";
16
- import "@ckeditor/ckeditor5-build-classic/build/translations/it";
17
- import "@ckeditor/ckeditor5-build-classic/build/translations/sk";
18
- import "@ckeditor/ckeditor5-build-classic/build/translations/ja";
19
- import "@ckeditor/ckeditor5-build-classic/build/translations/es";
20
- import "@ckeditor/ckeditor5-build-classic/build/translations/vi";
4
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/zh-cn';
5
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/de-ch';
6
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/en-gb';
7
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/pt-br';
8
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/zh';
9
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/de';
10
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/ar';
11
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/cs';
12
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/hi';
13
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/fi';
14
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/hu';
15
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/fr';
16
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/it';
17
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/sk';
18
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/ja';
19
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/es';
20
+ // import '@ckeditor/ckeditor5-build-classic/build/translations/vi';
21
21
  import { LanguagesMap } from '../../enums/languages-map';
22
22
  import { isBase64UploadAdapter } from './ckEditorUpload';
23
+ import { ClassicEditor } from 'ckeditor5';
24
+ import { CkEditorTypesObject } from '../../object/ck-editor-object';
23
25
  import * as i0 from "@angular/core";
24
26
  import * as i1 from "@angular/forms";
25
27
  import * as i2 from "@angular/common";
26
28
  import * as i3 from "@ngx-validate/core";
27
29
  import * as i4 from "@ckeditor/ckeditor5-angular";
28
30
  import * as i5 from "@abp/ng.core";
29
- class CkEditorControlComponent {
31
+ export class CkEditorControlComponent {
32
+ config = inject(ConfigStateService);
33
+ _restService = inject(RestService);
34
+ /**ck-Editor的值 */
35
+ ckEditorValue = '';
36
+ /**系统语言 */
37
+ currentCulture = this.config.getOne('localization')?.currentCulture?.name;
38
+ /** 语言目录,匹配系统语言,设置ckeditor的语言 */
39
+ languagesMap = LanguagesMap;
40
+ Editor = ClassicEditor;
30
41
  constructor() {
31
- this.config = inject(ConfigStateService);
32
- this._restService = inject(RestService);
33
- /**ck-Editor的值 */
34
- this.ckEditorValue = '<p>aubznahsj</p>';
35
- /**系统语言 */
36
- this.currentCulture = this.config.getOne("localization")?.currentCulture?.name;
37
- /** 语言目录,匹配系统语言,设置ckeditor的语言 */
38
- this.languagesMap = LanguagesMap;
39
- this.fb = inject(FormBuilder);
40
- /**字段配置列表 */
41
- this._fields = '';
42
- this.invalidfeedback = false;
43
- /**图片容器名称 */
44
- this.imagesContainerName = '';
45
- import('@ckeditor/ckeditor5-build-classic').then(res => {
46
- // import('ckeditor5/build/ckeditor').then(res => {
47
- this.Editor = res.default;
48
- this.ckOptions = {
49
- language: this.languagesMap[this.currentCulture],
50
- toolbar: {
51
- items: [
52
- 'heading', '|',
53
- 'bold', 'italic',
54
- 'link', '|',
55
- 'bulletedList', 'numberedList',
56
- 'insertTable', '|',
57
- 'uploadImage', '|',
58
- 'undo', 'redo'
59
- ],
60
- viewportTopOffset: 30,
61
- shouldNotGroupWhenFull: true
62
- },
63
- image: {
64
- toolbar: [
65
- 'imageStyle:alignLeft', 'imageStyle:alignCenter', 'imageStyle:alignRight',
66
- '|',
67
- 'resizeImage',
68
- '|',
69
- 'imageTextAlternative'
70
- ],
71
- styles: [
72
- 'alignLeft', 'alignCenter', 'alignRight'
73
- ],
74
- resizeOptions: [{
75
- name: 'resizeImage:original',
76
- label: 'Original',
77
- value: null
78
- },
79
- {
80
- name: 'resizeImage:25',
81
- label: '25%',
82
- value: '25'
83
- },
84
- {
85
- name: 'resizeImage:50',
86
- label: '50%',
87
- value: '50'
88
- },
89
- {
90
- name: 'resizeImage:75',
91
- label: '75%',
92
- value: '75'
93
- }
94
- ],
95
- },
96
- };
97
- });
42
+ let configs = CkEditorTypesObject['default'];
43
+ configs.language = this.languagesMap[this.currentCulture],
44
+ this.ckOptions = configs;
45
+ // import('@ckeditor/ckeditor5-build-classic').then(res => {
46
+ // this.Editor = res.default
47
+ // this.ckOptions = {
48
+ // language: this.languagesMap[this.currentCulture],
49
+ // toolbar: {
50
+ // items: [
51
+ // 'heading', '|',
52
+ // 'bold', 'italic',
53
+ // 'link', '|',
54
+ // 'bulletedList', 'numberedList',
55
+ // 'insertTable', '|',
56
+ // 'uploadImage', '|',
57
+ // 'undo', 'redo'
58
+ // ],
59
+ // viewportTopOffset: 30,
60
+ // shouldNotGroupWhenFull: true
61
+ // },
62
+ // image: {
63
+ // toolbar: [
64
+ // 'imageStyle:alignLeft', 'imageStyle:alignCenter', 'imageStyle:alignRight',
65
+ // '|',
66
+ // 'resizeImage',
67
+ // '|',
68
+ // 'imageTextAlternative'
69
+ // ],
70
+ // styles: [
71
+ // 'alignLeft', 'alignCenter', 'alignRight'
72
+ // ],
73
+ // resizeOptions: [{
74
+ // name: 'resizeImage:original',
75
+ // label: 'Original',
76
+ // value: null
77
+ // },
78
+ // {
79
+ // name: 'resizeImage:25',
80
+ // label: '25%',
81
+ // value: '25'
82
+ // },
83
+ // {
84
+ // name: 'resizeImage:50',
85
+ // label: '50%',
86
+ // value: '50'
87
+ // },
88
+ // {
89
+ // name: 'resizeImage:75',
90
+ // label: '75%',
91
+ // value: '75'
92
+ // }
93
+ // ],
94
+ // },
95
+ // }
96
+ // })
98
97
  }
99
98
  onReady(editor) {
100
99
  let _this = this;
@@ -102,26 +101,38 @@ class CkEditorControlComponent {
102
101
  return new isBase64UploadAdapter(loader, _this.imagesContainerName, _this._restService);
103
102
  };
104
103
  }
104
+ /**ck-editor配置 */
105
+ ckOptions;
105
106
  /**富文本内容改变 */
106
107
  ckEditorChange(event) {
107
108
  this.setckeditorInput(event);
108
109
  }
110
+ fb = inject(FormBuilder);
111
+ /**表单实体 */
112
+ _entity;
109
113
  set entity(v) {
110
114
  this._entity = v;
111
115
  this.dataLoaded();
112
116
  }
117
+ /**字段配置列表 */
118
+ _fields = '';
113
119
  set fields(v) {
114
120
  this._fields = v;
115
121
  this.dataLoaded();
116
122
  }
123
+ /**父级字段名称,用于为表单设置控件赋值 */
124
+ _parentFiledName;
117
125
  set parentFiledName(v) {
118
126
  this._parentFiledName = v;
119
127
  this.dataLoaded();
120
128
  }
129
+ /**父级字段名称,用于为表单设置控件赋值 */
130
+ _selected;
121
131
  set selected(v) {
122
132
  this._selected = v;
123
133
  this.dataLoaded();
124
134
  }
135
+ submitclick;
125
136
  get extraProperties() {
126
137
  return this._entity.get('extraProperties');
127
138
  }
@@ -134,36 +145,42 @@ class CkEditorControlComponent {
134
145
  await this.AfterInit();
135
146
  // let fillingIn=this._selected||this._fields.field.formConfiguration['Ckeditor.InitialContent']
136
147
  // this.Editor.setData(fillingIn);
137
- this.ckEditorValue = this._selected || this._fields.field.formConfiguration['Ckeditor.InitialContent'];
148
+ this.ckEditorValue =
149
+ this._selected || this._fields.field.formConfiguration['Ckeditor.InitialContent'];
138
150
  this.setckeditorInput(this.ckEditorValue);
139
151
  this.submitclick.nativeElement.click();
140
152
  }
141
153
  }
154
+ invalidfeedback = false;
142
155
  //设置值
143
156
  setckeditorInput(val) {
144
157
  this.invalidfeedback = true;
145
158
  this.ckeditorInput.patchValue(val);
146
159
  }
160
+ /**图片容器名称 */
161
+ imagesContainerName = '';
147
162
  AfterInit() {
148
- return new Promise((resolve) => {
163
+ return new Promise(resolve => {
149
164
  let ValidatorsArray = [];
150
165
  if (this._fields.required) {
151
166
  ValidatorsArray.push(Validators.required);
152
167
  }
153
- let newControl = this.fb.control(this._selected ? this._selected : this._fields.field.formConfiguration['Ckeditor.InitialContent'], ValidatorsArray);
168
+ let newControl = this.fb.control(this._selected
169
+ ? this._selected
170
+ : this._fields.field.formConfiguration['Ckeditor.InitialContent'], ValidatorsArray);
154
171
  this.extraProperties.setControl(this._fields.field.name, newControl);
155
- this.imagesContainerName = this._fields.field.formConfiguration['Ckeditor.ImagesContainerName'];
172
+ this.imagesContainerName =
173
+ this._fields.field.formConfiguration['Ckeditor.ImagesContainerName'];
156
174
  resolve(true);
157
175
  });
158
176
  }
159
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CkEditorControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
160
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CkEditorControlComponent, selector: "ck-editor-control", inputs: { entity: "entity", fields: "fields", parentFiledName: "parentFiledName", selected: "selected" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <ckeditor [editor]=\"Editor\" *ngIf=\"Editor\" [config]=\"ckOptions\" (ready)=\"onReady($event)\" [formControlName]=\"_fields.field.name\">\n </ckeditor>\n <ng-container *ngIf=\"ckeditorInput?.errors?.required&&invalidfeedback\">\n <div class=\"text-danger \">\n {{'DigniteAbpForms::Validate:Required' | abpLocalization:' '}}\n </div>\n </ng-container>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i3.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i4.CKEditorComponent, selector: "ckeditor", inputs: ["editor", "config", "data", "tagName", "watchdog", "editorWatchdogConfig", "disableTwoWayDataBinding", "disabled"], outputs: ["ready", "change", "blur", "focus", "error"] }, { kind: "pipe", type: i5.LocalizationPipe, name: "abpLocalization" }] }); }
177
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CkEditorControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
178
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: CkEditorControlComponent, selector: "ck-editor-control", inputs: { entity: "entity", fields: "fields", parentFiledName: "parentFiledName", selected: "selected" }, viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <ckeditor [editor]=\"Editor\" *ngIf=\"Editor\" [config]=\"ckOptions\" (ready)=\"onReady($event)\" [formControlName]=\"_fields.field.name\">\n </ckeditor>\n <ng-container *ngIf=\"ckeditorInput?.errors?.required&&invalidfeedback\">\n <div class=\"text-danger \">\n {{'DigniteAbpForms::Validate:Required' | abpLocalization:' '}}\n </div>\n </ng-container>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>", styles: [""], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i3.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i3.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "component", type: i4.CKEditorComponent, selector: "ckeditor", inputs: ["editor", "config", "data", "tagName", "watchdog", "editorWatchdogConfig", "disableTwoWayDataBinding", "disabled"], outputs: ["ready", "change", "blur", "focus", "error"] }, { kind: "pipe", type: i5.LocalizationPipe, name: "abpLocalization" }] });
161
179
  }
162
- export { CkEditorControlComponent };
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CkEditorControlComponent, decorators: [{
180
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CkEditorControlComponent, decorators: [{
164
181
  type: Component,
165
182
  args: [{ selector: 'ck-editor-control', template: "<form [formGroup]=\"_entity\">\n <div formGroupName=\"extraProperties\">\n <div class=\"mb-2\">\n <label class=\"form-label\" *ngIf=\"_fields.displayName\">{{ _fields.displayName }}</label>\n <ckeditor [editor]=\"Editor\" *ngIf=\"Editor\" [config]=\"ckOptions\" (ready)=\"onReady($event)\" [formControlName]=\"_fields.field.name\">\n </ckeditor>\n <ng-container *ngIf=\"ckeditorInput?.errors?.required&&invalidfeedback\">\n <div class=\"text-danger \">\n {{'DigniteAbpForms::Validate:Required' | abpLocalization:' '}}\n </div>\n </ng-container>\n <div class=\"form-text\" *ngIf=\"_fields.field.description\">{{_fields.field.description}}</div>\n </div>\n </div>\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n</form>" }]
166
- }], ctorParameters: function () { return []; }, propDecorators: { entity: [{
183
+ }], ctorParameters: () => [], propDecorators: { entity: [{
167
184
  type: Input
168
185
  }], fields: [{
169
186
  type: Input
@@ -175,4 +192,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
175
192
  type: ViewChild,
176
193
  args: ['submitclick', { static: true }]
177
194
  }] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2stZWRpdG9yLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2stZWRpdG9yL3NyYy9saWIvZHluYW1pYy1mb3JtL2NrLWVkaXRvci9jay1lZGl0b3ItY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jay1lZGl0b3Ivc3JjL2xpYi9keW5hbWljLWZvcm0vY2stZWRpdG9yL2NrLWVkaXRvci1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBZSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sNERBQTRELENBQUM7QUFDcEUsT0FBTyw0REFBNEQsQ0FBQztBQUNwRSxPQUFPLDREQUE0RCxDQUFDO0FBQ3BFLE9BQU8sNERBQTRELENBQUM7QUFDcEUsT0FBTyx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLHlEQUF5RCxDQUFDO0FBQ2pFLE9BQU8seURBQXlELENBQUM7QUFDakUsT0FBTyx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLHlEQUF5RCxDQUFDO0FBQ2pFLE9BQU8seURBQXlELENBQUM7QUFDakUsT0FBTyx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLHlEQUF5RCxDQUFDO0FBQ2pFLE9BQU8seURBQXlELENBQUM7QUFDakUsT0FBTyx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLHlEQUF5RCxDQUFDO0FBQ2pFLE9BQU8seURBQXlELENBQUM7QUFDakUsT0FBTyx5REFBeUQsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFF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QjtrQkFMcEMsU0FBUzsrQkFDRSxtQkFBbUI7MEVBNEZsQixNQUFNO3NCQURoQixLQUFLO2dCQVNLLE1BQU07c0JBRGhCLEtBQUs7Z0JBU0ssZUFBZTtzQkFEekIsS0FBSztnQkFRSyxRQUFRO3NCQURsQixLQUFLO2dCQUtzQyxXQUFXO3NCQUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgIElucHV0LCBWaWV3Q2hpbGQsIGluamVjdCwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvemgtY25cIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvZGUtY2hcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvZW4tZ2JcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvcHQtYnJcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvemhcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvZGVcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvYXJcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvY3NcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvaGlcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvZmlcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvaHVcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvZnJcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvaXRcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvc2tcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvamFcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvZXNcIjtcbmltcG9ydCBcIkBja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvdmlcIjtcbmltcG9ydCB7IExhbmd1YWdlc01hcCB9IGZyb20gJy4uLy4uL2VudW1zL2xhbmd1YWdlcy1tYXAnO1xuaW1wb3J0IHsgaXNCYXNlNjRVcGxvYWRBZGFwdGVyIH0gZnJvbSAnLi9ja0VkaXRvclVwbG9hZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NrLWVkaXRvci1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NrLWVkaXRvci1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2stZWRpdG9yLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2tFZGl0b3JDb250cm9sQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1N0YXRlU2VydmljZSA9IGluamVjdChDb25maWdTdGF0ZVNlcnZpY2UpXG4gIHByaXZhdGUgX3Jlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSA9IGluamVjdChSZXN0U2VydmljZSlcbiAgLyoqY2stRWRpdG9y55qE5YC8ICovIFxuICBja0VkaXRvclZhbHVlOiBhbnkgPSAnPHA+YXViem5haHNqPC9wPidcbiAgLyoq57O757uf6K+t6KiAICovXG4gIGN1cnJlbnRDdWx0dXJlID0gdGhpcy5jb25maWcuZ2V0T25lKFwibG9jYWxpemF0aW9uXCIpPy5jdXJyZW50Q3VsdHVyZT8ubmFtZTtcblxuICAgIC8qKiDor63oqIDnm67lvZXvvIzljLnphY3ns7vnu5/or63oqIDvvIzorr7nva5ja2VkaXRvcueahOivreiogCAqL1xuICAgIGxhbmd1YWdlc01hcD1MYW5ndWFnZXNNYXBcblxuICBwdWJsaWMgRWRpdG9yOiBhbnk7XG4gIGNvbnN0cnVjdG9yKCkge1xuXG5cbiAgICBpbXBvcnQoJ0Bja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYycpLnRoZW4ocmVzID0+IHtcbiAgICAvLyBpbXBvcnQoJ2NrZWRpdG9yNS9idWlsZC9ja2VkaXRvcicpLnRoZW4ocmVzID0+IHtcbiAgICAgIHRoaXMuRWRpdG9yID0gcmVzLmRlZmF1bHRcbiAgICAgIHRoaXMuY2tPcHRpb25zID0ge1xuICAgICAgICBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZXNNYXBbdGhpcy5jdXJyZW50Q3VsdHVyZV0sXG4gICAgICAgIHRvb2xiYXI6IHtcbiAgICAgICAgICBpdGVtczogW1xuICAgICAgICAgICAgJ2hlYWRpbmcnLCAnfCcsXG4gICAgICAgICAgICAnYm9sZCcsICdpdGFsaWMnLFxuICAgICAgICAgICAgJ2xpbmsnLCAnfCcsXG4gICAgICAgICAgICAnYnVsbGV0ZWRMaXN0JywgJ251bWJlcmVkTGlzdCcsXG4gICAgICAgICAgICAnaW5zZXJ0VGFibGUnLCAnfCcsXG4gICAgICAgICAgICAndXBsb2FkSW1hZ2UnLCAnfCcsXG4gICAgICAgICAgICAndW5kbycsICdyZWRvJ1xuICAgICAgICAgIF0sXG4gICAgICAgICAgdmlld3BvcnRUb3BPZmZzZXQ6IDMwLFxuICAgICAgICAgIHNob3VsZE5vdEdyb3VwV2hlbkZ1bGw6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgaW1hZ2U6IHtcbiAgICAgICAgICB0b29sYmFyOiBbXG4gICAgICAgICAgICAnaW1hZ2VTdHlsZTphbGlnbkxlZnQnLCAnaW1hZ2VTdHlsZTphbGlnbkNlbnRlcicsICdpbWFnZVN0eWxlOmFsaWduUmlnaHQnLFxuICAgICAgICAgICAgJ3wnLFxuICAgICAgICAgICAgJ3Jlc2l6ZUltYWdlJyxcbiAgICAgICAgICAgICd8JyxcbiAgICAgICAgICAgICdpbWFnZVRleHRBbHRlcm5hdGl2ZSdcbiAgICAgICAgICBdLFxuICAgICAgICAgIHN0eWxlczogW1xuICAgICAgICAgICAgJ2FsaWduTGVmdCcsICdhbGlnbkNlbnRlcicsICdhbGlnblJpZ2h0J1xuICAgICAgICAgIF0sXG4gICAgICAgICAgcmVzaXplT3B0aW9uczogW3tcbiAgICAgICAgICAgIG5hbWU6ICdyZXNpemVJbWFnZTpvcmlnaW5hbCcsXG4gICAgICAgICAgICBsYWJlbDogJ09yaWdpbmFsJyxcbiAgICAgICAgICAgIHZhbHVlOiBudWxsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAncmVzaXplSW1hZ2U6MjUnLFxuICAgICAgICAgICAgbGFiZWw6ICcyNSUnLFxuICAgICAgICAgICAgdmFsdWU6ICcyNSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdyZXNpemVJbWFnZTo1MCcsXG4gICAgICAgICAgICBsYWJlbDogJzUwJScsXG4gICAgICAgICAgICB2YWx1ZTogJzUwJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ3Jlc2l6ZUltYWdlOjc1JyxcbiAgICAgICAgICAgIGxhYmVsOiAnNzUlJyxcbiAgICAgICAgICAgIHZhbHVlOiAnNzUnXG4gICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfSlcbiAgfVxuICBwdWJsaWMgb25SZWFkeShlZGl0b3Ipe1xuICAgIGxldCBfdGhpcz10aGlzXG4gICAgZWRpdG9yLnBsdWdpbnMuZ2V0KCdGaWxlUmVwb3NpdG9yeScpLmNyZWF0ZVVwbG9hZEFkYXB0ZXIgPSBmdW5jdGlvbiAobG9hZGVyOiBhbnkpIHtcbiAgICAgIHJldHVybiBuZXcgaXNCYXNlNjRVcGxvYWRBZGFwdGVyKGxvYWRlciwgX3RoaXMuaW1hZ2VzQ29udGFpbmVyTmFtZSwgX3RoaXMuX3Jlc3RTZXJ2aWNlKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqY2stZWRpdG9y6YWN572uICovXG4gIGNrT3B0aW9uczogYW55IFxuICAvKirlr4zmlofmnKzlhoXlrrnmlLnlj5ggKi9cbiAgY2tFZGl0b3JDaGFuZ2UoZXZlbnQpIHtcbiAgICB0aGlzLnNldGNrZWRpdG9ySW5wdXQoZXZlbnQpXG4gIH1cblxuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKVxuXG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfZW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdHkodjogYW55KSB7XG4gICAgdGhpcy5fZW50aXR5ID0gdjtcbiAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICB9XG5cbiAgLyoq5a2X5q616YWN572u5YiX6KGoICovXG4gIF9maWVsZHM6IGFueSA9ICcnXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZmllbGRzKHY6IGFueSkge1xuICAgIHRoaXMuX2ZpZWxkcyA9IHY7XG4gICAgdGhpcy5kYXRhTG9hZGVkKClcbiAgfVxuXG4gIC8qKueItue6p+Wtl+auteWQjeensO+8jOeUqOS6juS4uuihqOWNleiuvue9ruaOp+S7tui1i+WAvCAqL1xuICBfcGFyZW50RmlsZWROYW1lOiBhbnlcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJlbnRGaWxlZE5hbWUodjogYW55KSB7XG4gICAgdGhpcy5fcGFyZW50RmlsZWROYW1lID0gdjtcbiAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICB9XG4gIC8qKueItue6p+Wtl+auteWQjeensO+8jOeUqOS6juS4uuihqOWNleiuvue9ruaOp+S7tui1i+WAvCAqL1xuICBfc2VsZWN0ZWQ6IGFueVxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHY6IGFueSkge1xuICAgIHRoaXMuX3NlbGVjdGVkID0gdjtcbiAgICB0aGlzLmRhdGFMb2FkZWQoKVxuICB9XG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgZ2V0IGV4dHJhUHJvcGVydGllcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5LmdldCgnZXh0cmFQcm9wZXJ0aWVzJykgYXMgRm9ybUdyb3VwXG4gIH1cbiAgZ2V0IGNrZWRpdG9ySW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0cmFQcm9wZXJ0aWVzLmdldCh0aGlzLl9maWVsZHMuZmllbGQubmFtZSkgYXMgRm9ybUdyb3VwXG4gIH1cbiAgLyoq5pWw5o2u5Yqg6L295a6M5oiQICovXG4gIGFzeW5jIGRhdGFMb2FkZWQoKSB7XG4gICAgaWYgKHRoaXMuX2ZpZWxkcyAmJiB0aGlzLl9lbnRpdHkgKSB7XG4gICAgICBhd2FpdCB0aGlzLkFmdGVySW5pdCgpXG4gICAgICAvLyBsZXQgZmlsbGluZ0luPXRoaXMuX3NlbGVjdGVkfHx0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0NrZWRpdG9yLkluaXRpYWxDb250ZW50J11cbiAgICAgIC8vIHRoaXMuRWRpdG9yLnNldERhdGEoZmlsbGluZ0luKTtcbiAgICAgIHRoaXMuY2tFZGl0b3JWYWx1ZT10aGlzLl9zZWxlY3RlZHx8dGhpcy5fZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydDa2VkaXRvci5Jbml0aWFsQ29udGVudCddXG4gICAgICB0aGlzLnNldGNrZWRpdG9ySW5wdXQodGhpcy5ja0VkaXRvclZhbHVlKVxuICAgICAgdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgaW52YWxpZGZlZWRiYWNrID0gZmFsc2VcbiAgLy/orr7nva7lgLxcbiAgc2V0Y2tlZGl0b3JJbnB1dCh2YWwpIHtcbiAgICB0aGlzLmludmFsaWRmZWVkYmFjayA9IHRydWVcbiAgICB0aGlzLmNrZWRpdG9ySW5wdXQucGF0Y2hWYWx1ZSh2YWwpXG4gIH1cblxuICAvKirlm77niYflrrnlmajlkI3np7AgKi9cbiAgaW1hZ2VzQ29udGFpbmVyTmFtZTogYW55ID0gJydcbiAgQWZ0ZXJJbml0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgbGV0IFZhbGlkYXRvcnNBcnJheSA9IFtdXG4gICAgICBpZiAodGhpcy5fZmllbGRzLnJlcXVpcmVkKSB7XG4gICAgICAgIFZhbGlkYXRvcnNBcnJheS5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpXG4gICAgICB9XG4gICAgICBsZXQgbmV3Q29udHJvbCA9IHRoaXMuZmIuY29udHJvbCh0aGlzLl9zZWxlY3RlZCA/IHRoaXMuX3NlbGVjdGVkIDogdGhpcy5fZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydDa2VkaXRvci5Jbml0aWFsQ29udGVudCddLCBWYWxpZGF0b3JzQXJyYXkpXG4gICAgICB0aGlzLmV4dHJhUHJvcGVydGllcy5zZXRDb250cm9sKHRoaXMuX2ZpZWxkcy5maWVsZC5uYW1lLCBuZXdDb250cm9sKVxuICAgICAgdGhpcy5pbWFnZXNDb250YWluZXJOYW1lID0gdGhpcy5fZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydDa2VkaXRvci5JbWFnZXNDb250YWluZXJOYW1lJ11cbiAgICAgIHJlc29sdmUodHJ1ZSlcbiAgICB9KVxuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIl9lbnRpdHlcIj5cbiAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJleHRyYVByb3BlcnRpZXNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiAqbmdJZj1cIl9maWVsZHMuZGlzcGxheU5hbWVcIj57eyBfZmllbGRzLmRpc3BsYXlOYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxja2VkaXRvciBbZWRpdG9yXT1cIkVkaXRvclwiICpuZ0lmPVwiRWRpdG9yXCIgW2NvbmZpZ109XCJja09wdGlvbnNcIiAocmVhZHkpPVwib25SZWFkeSgkZXZlbnQpXCIgW2Zvcm1Db250cm9sTmFtZV09XCJfZmllbGRzLmZpZWxkLm5hbWVcIj5cbiAgICAgICAgICAgIDwvY2tlZGl0b3I+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2tlZGl0b3JJbnB1dD8uZXJyb3JzPy5yZXF1aXJlZCYmaW52YWxpZGZlZWRiYWNrXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIFwiPlxuICAgICAgICAgICAgICAgICAgICB7eydEaWduaXRlQWJwRm9ybXM6OlZhbGlkYXRlOlJlcXVpcmVkJyB8IGFicExvY2FsaXphdGlvbjonICd9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS10ZXh0XCIgKm5nSWY9XCJfZmllbGRzLmZpZWxkLmRlc2NyaXB0aW9uXCI+e3tfZmllbGRzLmZpZWxkLmRlc2NyaXB0aW9ufX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiICNzdWJtaXRjbGljaz48L2J1dHRvbj5cbjwvZm9ybT4iXX0=
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2stZWRpdG9yLWNvbnRyb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2stZWRpdG9yL3NyYy9saWIvZHluYW1pYy1mb3JtL2NrLWVkaXRvci9jay1lZGl0b3ItY29udHJvbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jay1lZGl0b3Ivc3JjL2xpYi9keW5hbWljLWZvcm0vY2stZWRpdG9yL2NrLWVkaXRvci1jb250cm9sLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLHVFQUF1RTtBQUN2RSx1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLHVFQUF1RTtBQUN2RSxvRUFBb0U7QUFDcEUsb0VBQW9FO0FBQ3BFLG9FQUFvRTtBQUNwRSxvRUFBb0U7QUFDcEUsb0VBQW9FO0FBQ3BFLG9FQUFvRTtBQUNwRSxvRUFBb0U7QUFDcEUsb0VBQW9FO0FBQ3BFLG9FQUFvRTtBQUNwRSxvRUFBb0U7QUFDcEUsb0VBQW9FO0FBQ3BFLG9FQUFvRTtBQUNwRSxvRUFBb0U7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7QUFPcEUsTUFBTSxPQUFP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QUF0RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vLyBpbXBvcnQgJ0Bja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvemgtY24nO1xuLy8gaW1wb3J0ICdAY2tlZGl0b3IvY2tlZGl0b3I1LWJ1aWxkLWNsYXNzaWMvYnVpbGQvdHJhbnNsYXRpb25zL2RlLWNoJztcbi8vIGltcG9ydCAnQGNrZWRpdG9yL2NrZWRpdG9yNS1idWlsZC1jbGFzc2ljL2J1aWxkL3RyYW5zbGF0aW9ucy9lbi1nYic7XG4vLyBpbXBvcnQgJ0Bja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvcHQtYnInO1xuLy8gaW1wb3J0ICdAY2tlZGl0b3IvY2tlZGl0b3I1LWJ1aWxkLWNsYXNzaWMvYnVpbGQvdHJhbnNsYXRpb25zL3poJztcbi8vIGltcG9ydCAnQGNrZWRpdG9yL2NrZWRpdG9yNS1idWlsZC1jbGFzc2ljL2J1aWxkL3RyYW5zbGF0aW9ucy9kZSc7XG4vLyBpbXBvcnQgJ0Bja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvYXInO1xuLy8gaW1wb3J0ICdAY2tlZGl0b3IvY2tlZGl0b3I1LWJ1aWxkLWNsYXNzaWMvYnVpbGQvdHJhbnNsYXRpb25zL2NzJztcbi8vIGltcG9ydCAnQGNrZWRpdG9yL2NrZWRpdG9yNS1idWlsZC1jbGFzc2ljL2J1aWxkL3RyYW5zbGF0aW9ucy9oaSc7XG4vLyBpbXBvcnQgJ0Bja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvZmknO1xuLy8gaW1wb3J0ICdAY2tlZGl0b3IvY2tlZGl0b3I1LWJ1aWxkLWNsYXNzaWMvYnVpbGQvdHJhbnNsYXRpb25zL2h1Jztcbi8vIGltcG9ydCAnQGNrZWRpdG9yL2NrZWRpdG9yNS1idWlsZC1jbGFzc2ljL2J1aWxkL3RyYW5zbGF0aW9ucy9mcic7XG4vLyBpbXBvcnQgJ0Bja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvaXQnO1xuLy8gaW1wb3J0ICdAY2tlZGl0b3IvY2tlZGl0b3I1LWJ1aWxkLWNsYXNzaWMvYnVpbGQvdHJhbnNsYXRpb25zL3NrJztcbi8vIGltcG9ydCAnQGNrZWRpdG9yL2NrZWRpdG9yNS1idWlsZC1jbGFzc2ljL2J1aWxkL3RyYW5zbGF0aW9ucy9qYSc7XG4vLyBpbXBvcnQgJ0Bja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYy9idWlsZC90cmFuc2xhdGlvbnMvZXMnO1xuLy8gaW1wb3J0ICdAY2tlZGl0b3IvY2tlZGl0b3I1LWJ1aWxkLWNsYXNzaWMvYnVpbGQvdHJhbnNsYXRpb25zL3ZpJztcbmltcG9ydCB7IExhbmd1YWdlc01hcCB9IGZyb20gJy4uLy4uL2VudW1zL2xhbmd1YWdlcy1tYXAnO1xuaW1wb3J0IHsgaXNCYXNlNjRVcGxvYWRBZGFwdGVyIH0gZnJvbSAnLi9ja0VkaXRvclVwbG9hZCc7XG5pbXBvcnQgeyBDbGFzc2ljRWRpdG9yIH0gZnJvbSAnY2tlZGl0b3I1JztcbmltcG9ydCB7IENrRWRpdG9yVHlwZXNPYmplY3QgfSBmcm9tICcuLi8uLi9vYmplY3QvY2stZWRpdG9yLW9iamVjdCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NrLWVkaXRvci1jb250cm9sJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NrLWVkaXRvci1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2stZWRpdG9yLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2tFZGl0b3JDb250cm9sQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1N0YXRlU2VydmljZSA9IGluamVjdChDb25maWdTdGF0ZVNlcnZpY2UpO1xuICBwcml2YXRlIF9yZXN0U2VydmljZTogUmVzdFNlcnZpY2UgPSBpbmplY3QoUmVzdFNlcnZpY2UpO1xuICAvKipjay1FZGl0b3LnmoTlgLwgKi9cbiAgY2tFZGl0b3JWYWx1ZTogYW55ID0gJyc7XG4gIC8qKuezu+e7n+ivreiogCAqL1xuICBjdXJyZW50Q3VsdHVyZSA9IHRoaXMuY29uZmlnLmdldE9uZSgnbG9jYWxpemF0aW9uJyk/LmN1cnJlbnRDdWx0dXJlPy5uYW1lO1xuICAvKiog6K+t6KiA55uu5b2V77yM5Yy56YWN57O757uf6K+t6KiA77yM6K6+572uY2tlZGl0b3LnmoTor63oqIAgKi9cbiAgbGFuZ3VhZ2VzTWFwID0gTGFuZ3VhZ2VzTWFwO1xuXG4gIHB1YmxpYyBFZGl0b3I6IGFueSA9IENsYXNzaWNFZGl0b3I7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGxldCBjb25maWdzPSBDa0VkaXRvclR5cGVzT2JqZWN0WydkZWZhdWx0J11cbiAgICBjb25maWdzLmxhbmd1YWdlPSB0aGlzLmxhbmd1YWdlc01hcFt0aGlzLmN1cnJlbnRDdWx0dXJlXSxcbiAgICB0aGlzLmNrT3B0aW9ucyA9Y29uZmlncztcbiAgICAvLyBpbXBvcnQoJ0Bja2VkaXRvci9ja2VkaXRvcjUtYnVpbGQtY2xhc3NpYycpLnRoZW4ocmVzID0+IHtcbiAgICAvLyAgIHRoaXMuRWRpdG9yID0gcmVzLmRlZmF1bHRcbiAgICAvLyAgIHRoaXMuY2tPcHRpb25zID0ge1xuICAgIC8vICAgICBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZXNNYXBbdGhpcy5jdXJyZW50Q3VsdHVyZV0sXG4gICAgLy8gICAgIHRvb2xiYXI6IHtcbiAgICAvLyAgICAgICBpdGVtczogW1xuICAgIC8vICAgICAgICAgJ2hlYWRpbmcnLCAnfCcsXG4gICAgLy8gICAgICAgICAnYm9sZCcsICdpdGFsaWMnLFxuICAgIC8vICAgICAgICAgJ2xpbmsnLCAnfCcsXG4gICAgLy8gICAgICAgICAnYnVsbGV0ZWRMaXN0JywgJ251bWJlcmVkTGlzdCcsXG4gICAgLy8gICAgICAgICAnaW5zZXJ0VGFibGUnLCAnfCcsXG4gICAgLy8gICAgICAgICAndXBsb2FkSW1hZ2UnLCAnfCcsXG4gICAgLy8gICAgICAgICAndW5kbycsICdyZWRvJ1xuICAgIC8vICAgICAgIF0sXG4gICAgLy8gICAgICAgdmlld3BvcnRUb3BPZmZzZXQ6IDMwLFxuICAgIC8vICAgICAgIHNob3VsZE5vdEdyb3VwV2hlbkZ1bGw6IHRydWVcbiAgICAvLyAgICAgfSxcbiAgICAvLyAgICAgaW1hZ2U6IHtcbiAgICAvLyAgICAgICB0b29sYmFyOiBbXG4gICAgLy8gICAgICAgICAnaW1hZ2VTdHlsZTphbGlnbkxlZnQnLCAnaW1hZ2VTdHlsZTphbGlnbkNlbnRlcicsICdpbWFnZVN0eWxlOmFsaWduUmlnaHQnLFxuICAgIC8vICAgICAgICAgJ3wnLFxuICAgIC8vICAgICAgICAgJ3Jlc2l6ZUltYWdlJyxcbiAgICAvLyAgICAgICAgICd8JyxcbiAgICAvLyAgICAgICAgICdpbWFnZVRleHRBbHRlcm5hdGl2ZSdcbiAgICAvLyAgICAgICBdLFxuICAgIC8vICAgICAgIHN0eWxlczogW1xuICAgIC8vICAgICAgICAgJ2FsaWduTGVmdCcsICdhbGlnbkNlbnRlcicsICdhbGlnblJpZ2h0J1xuICAgIC8vICAgICAgIF0sXG4gICAgLy8gICAgICAgcmVzaXplT3B0aW9uczogW3tcbiAgICAvLyAgICAgICAgIG5hbWU6ICdyZXNpemVJbWFnZTpvcmlnaW5hbCcsXG4gICAgLy8gICAgICAgICBsYWJlbDogJ09yaWdpbmFsJyxcbiAgICAvLyAgICAgICAgIHZhbHVlOiBudWxsXG4gICAgLy8gICAgICAgfSxcbiAgICAvLyAgICAgICB7XG4gICAgLy8gICAgICAgICBuYW1lOiAncmVzaXplSW1hZ2U6MjUnLFxuICAgIC8vICAgICAgICAgbGFiZWw6ICcyNSUnLFxuICAgIC8vICAgICAgICAgdmFsdWU6ICcyNSdcbiAgICAvLyAgICAgICB9LFxuICAgIC8vICAgICAgIHtcbiAgICAvLyAgICAgICAgIG5hbWU6ICdyZXNpemVJbWFnZTo1MCcsXG4gICAgLy8gICAgICAgICBsYWJlbDogJzUwJScsXG4gICAgLy8gICAgICAgICB2YWx1ZTogJzUwJ1xuICAgIC8vICAgICAgIH0sXG4gICAgLy8gICAgICAge1xuICAgIC8vICAgICAgICAgbmFtZTogJ3Jlc2l6ZUltYWdlOjc1JyxcbiAgICAvLyAgICAgICAgIGxhYmVsOiAnNzUlJyxcbiAgICAvLyAgICAgICAgIHZhbHVlOiAnNzUnXG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICAgIF0sXG4gICAgLy8gICAgIH0sXG4gICAgLy8gICB9XG4gICAgLy8gfSlcbiAgfVxuICBwdWJsaWMgb25SZWFkeShlZGl0b3IpIHtcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xuICAgIGVkaXRvci5wbHVnaW5zLmdldCgnRmlsZVJlcG9zaXRvcnknKS5jcmVhdGVVcGxvYWRBZGFwdGVyID0gZnVuY3Rpb24gKGxvYWRlcjogYW55KSB7XG4gICAgICByZXR1cm4gbmV3IGlzQmFzZTY0VXBsb2FkQWRhcHRlcihsb2FkZXIsIF90aGlzLmltYWdlc0NvbnRhaW5lck5hbWUsIF90aGlzLl9yZXN0U2VydmljZSk7XG4gICAgfTtcbiAgfVxuXG4gIC8qKmNrLWVkaXRvcumFjee9riAqL1xuICBja09wdGlvbnM6IGFueTtcbiAgLyoq5a+M5paH5pys5YaF5a655pS55Y+YICovXG4gIGNrRWRpdG9yQ2hhbmdlKGV2ZW50KSB7XG4gICAgdGhpcy5zZXRja2VkaXRvcklucHV0KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuXG4gIC8qKuihqOWNleWunuS9kyAqL1xuICBfZW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXR5KHY6IGFueSkge1xuICAgIHRoaXMuX2VudGl0eSA9IHY7XG4gICAgdGhpcy5kYXRhTG9hZGVkKCk7XG4gIH1cblxuICAvKirlrZfmrrXphY3nva7liJfooaggKi9cbiAgX2ZpZWxkczogYW55ID0gJyc7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZmllbGRzKHY6IGFueSkge1xuICAgIHRoaXMuX2ZpZWxkcyA9IHY7XG4gICAgdGhpcy5kYXRhTG9hZGVkKCk7XG4gIH1cblxuICAvKirniLbnuqflrZfmrrXlkI3np7DvvIznlKjkuo7kuLrooajljZXorr7nva7mjqfku7botYvlgLwgKi9cbiAgX3BhcmVudEZpbGVkTmFtZTogYW55O1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhcmVudEZpbGVkTmFtZSh2OiBhbnkpIHtcbiAgICB0aGlzLl9wYXJlbnRGaWxlZE5hbWUgPSB2O1xuICAgIHRoaXMuZGF0YUxvYWRlZCgpO1xuICB9XG4gIC8qKueItue6p+Wtl+auteWQjeensO+8jOeUqOS6juS4uuihqOWNleiuvue9ruaOp+S7tui1i+WAvCAqL1xuICBfc2VsZWN0ZWQ6IGFueTtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3RlZCh2OiBhbnkpIHtcbiAgICB0aGlzLl9zZWxlY3RlZCA9IHY7XG4gICAgdGhpcy5kYXRhTG9hZGVkKCk7XG4gIH1cbiAgQFZpZXdDaGlsZCgnc3VibWl0Y2xpY2snLCB7IHN0YXRpYzogdHJ1ZSB9KSBzdWJtaXRjbGljazogRWxlbWVudFJlZjtcblxuICBnZXQgZXh0cmFQcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHkuZ2V0KCdleHRyYVByb3BlcnRpZXMnKSBhcyBGb3JtR3JvdXA7XG4gIH1cbiAgZ2V0IGNrZWRpdG9ySW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXh0cmFQcm9wZXJ0aWVzLmdldCh0aGlzLl9maWVsZHMuZmllbGQubmFtZSkgYXMgRm9ybUdyb3VwO1xuICB9XG4gIC8qKuaVsOaNruWKoOi9veWujOaIkCAqL1xuICBhc3luYyBkYXRhTG9hZGVkKCkge1xuICAgIGlmICh0aGlzLl9maWVsZHMgJiYgdGhpcy5fZW50aXR5KSB7XG4gICAgICBhd2FpdCB0aGlzLkFmdGVySW5pdCgpO1xuICAgICAgLy8gbGV0IGZpbGxpbmdJbj10aGlzLl9zZWxlY3RlZHx8dGhpcy5fZmllbGRzLmZpZWxkLmZvcm1Db25maWd1cmF0aW9uWydDa2VkaXRvci5Jbml0aWFsQ29udGVudCddXG4gICAgICAvLyB0aGlzLkVkaXRvci5zZXREYXRhKGZpbGxpbmdJbik7XG4gICAgICB0aGlzLmNrRWRpdG9yVmFsdWUgPVxuICAgICAgICB0aGlzLl9zZWxlY3RlZCB8fCB0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0NrZWRpdG9yLkluaXRpYWxDb250ZW50J107XG4gICAgICB0aGlzLnNldGNrZWRpdG9ySW5wdXQodGhpcy5ja0VkaXRvclZhbHVlKTtcbiAgICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIGludmFsaWRmZWVkYmFjayA9IGZhbHNlO1xuICAvL+iuvue9ruWAvFxuICBzZXRja2VkaXRvcklucHV0KHZhbCkge1xuICAgIHRoaXMuaW52YWxpZGZlZWRiYWNrID0gdHJ1ZTtcbiAgICB0aGlzLmNrZWRpdG9ySW5wdXQucGF0Y2hWYWx1ZSh2YWwpO1xuICB9XG5cbiAgLyoq5Zu+54mH5a655Zmo5ZCN56ewICovXG4gIGltYWdlc0NvbnRhaW5lck5hbWU6IGFueSA9ICcnO1xuICBBZnRlckluaXQoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgbGV0IFZhbGlkYXRvcnNBcnJheSA9IFtdO1xuICAgICAgaWYgKHRoaXMuX2ZpZWxkcy5yZXF1aXJlZCkge1xuICAgICAgICBWYWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgIH1cbiAgICAgIGxldCBuZXdDb250cm9sID0gdGhpcy5mYi5jb250cm9sKFxuICAgICAgICB0aGlzLl9zZWxlY3RlZFxuICAgICAgICAgID8gdGhpcy5fc2VsZWN0ZWRcbiAgICAgICAgICA6IHRoaXMuX2ZpZWxkcy5maWVsZC5mb3JtQ29uZmlndXJhdGlvblsnQ2tlZGl0b3IuSW5pdGlhbENvbnRlbnQnXSxcbiAgICAgICAgVmFsaWRhdG9yc0FycmF5XG4gICAgICApO1xuICAgICAgdGhpcy5leHRyYVByb3BlcnRpZXMuc2V0Q29udHJvbCh0aGlzLl9maWVsZHMuZmllbGQubmFtZSwgbmV3Q29udHJvbCk7XG4gICAgICB0aGlzLmltYWdlc0NvbnRhaW5lck5hbWUgPVxuICAgICAgICB0aGlzLl9maWVsZHMuZmllbGQuZm9ybUNvbmZpZ3VyYXRpb25bJ0NrZWRpdG9yLkltYWdlc0NvbnRhaW5lck5hbWUnXTtcbiAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiX2VudGl0eVwiPlxuICAgIDxkaXYgZm9ybUdyb3VwTmFtZT1cImV4dHJhUHJvcGVydGllc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiICpuZ0lmPVwiX2ZpZWxkcy5kaXNwbGF5TmFtZVwiPnt7IF9maWVsZHMuZGlzcGxheU5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgPGNrZWRpdG9yIFtlZGl0b3JdPVwiRWRpdG9yXCIgKm5nSWY9XCJFZGl0b3JcIiBbY29uZmlnXT1cImNrT3B0aW9uc1wiIChyZWFkeSk9XCJvblJlYWR5KCRldmVudClcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIl9maWVsZHMuZmllbGQubmFtZVwiPlxuICAgICAgICAgICAgPC9ja2VkaXRvcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJja2VkaXRvcklucHV0Py5lcnJvcnM/LnJlcXVpcmVkJiZpbnZhbGlkZmVlZGJhY2tcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXIgXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7J0RpZ25pdGVBYnBGb3Jtczo6VmFsaWRhdGU6UmVxdWlyZWQnIHwgYWJwTG9jYWxpemF0aW9uOicgJ319XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXRleHRcIiAqbmdJZj1cIl9maWVsZHMuZmllbGQuZGVzY3JpcHRpb25cIj57e19maWVsZHMuZmllbGQuZGVzY3JpcHRpb259fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI3N1Ym1pdGNsaWNrPjwvYnV0dG9uPlxuPC9mb3JtPiJdfQ==
@@ -1,13 +1,10 @@
1
1
  export class isBase64UploadAdapter {
2
+ reader = new FileReader();
3
+ restService;
4
+ loader;
5
+ ImagesContainerName;
6
+ Base64 = false;
2
7
  constructor(loader, ImagesContainerName, restService) {
3
- this.reader = new FileReader();
4
- this.Base64 = false;
5
- this.createFile = (input, config) => this.restService.request({
6
- method: 'POST',
7
- url: '/api/file-explorer/files',
8
- params: { containerName: input.containerName, cellName: input.cellName, directoryId: input.directoryId, entityId: input.entityId },
9
- body: input.file,
10
- }, { apiName: 'FileExplorer', ...config });
11
8
  this.loader = loader;
12
9
  this.ImagesContainerName = ImagesContainerName;
13
10
  this.restService = restService;
@@ -47,5 +44,11 @@ export class isBase64UploadAdapter {
47
44
  }
48
45
  });
49
46
  }
47
+ createFile = (input, config) => this.restService.request({
48
+ method: 'POST',
49
+ url: '/api/file-explorer/files',
50
+ params: { containerName: input.containerName, cellName: input.cellName, directoryId: input.directoryId, entityId: input.entityId },
51
+ body: input.file,
52
+ }, { apiName: 'FileExplorer', ...config });
50
53
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2tFZGl0b3JVcGxvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jay1lZGl0b3Ivc3JjL2xpYi9keW5hbWljLWZvcm0vY2stZWRpdG9yL2NrRWRpdG9yVXBsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxxQkFBcUI7SUFNaEMsWUFDRSxNQUFXLEVBQ1gsbUJBQXdCLEVBQ3hCLFdBQXdCO1FBUm5CLFdBQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBSWpDLFdBQU0sR0FBWSxLQUFLLENBQUE7UUFrRHZCLGVBQVUsR0FBRyxDQUFDLEtBQVUsRUFBRSxNQUE2QixFQUFFLEVBQUUsQ0FDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQVc7WUFDakMsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsMEJBQTBCO1lBQy9CLE1BQU0sRUFBRSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ2xJLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtTQUNqQixFQUNDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFuRDFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQTtRQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFDLFdBQVcsQ0FBQTtJQUM5QixDQUFDO0lBQ00sTUFBTTtRQUNYLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUUzQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ2YsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7b0JBQ25DLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDdEMsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRTtvQkFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLENBQUMsQ0FBQyxDQUFDO2dCQUVILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNwQyxNQUFNLEVBQUUsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRTtvQkFDbkMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRTtvQkFDbkMsSUFBSSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztvQkFDOUIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQzt3QkFDZCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxhQUFhLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjt3QkFDdkMsV0FBVyxFQUFFLEVBQUU7d0JBQ2YsUUFBUSxFQUFFLEVBQUU7cUJBQ2IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVksRUFBQyxFQUFFO3dCQUMzQixPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7b0JBQ3BDLENBQUMsRUFBQyxDQUFDLEtBQUssRUFBQyxFQUFFO3dCQUNULE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDaEIsQ0FBQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUVILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQVdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzdCwgUmVzdFNlcnZpY2UgfSBmcm9tIFwiQGFicC9uZy5jb3JlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgaXNCYXNlNjRVcGxvYWRBZGFwdGVyIHtcclxuICBwdWJsaWMgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICByZXN0U2VydmljZTpSZXN0U2VydmljZVxyXG4gIGxvYWRlcjogYW55O1xyXG4gIEltYWdlc0NvbnRhaW5lck5hbWU6IGFueTtcclxuICBCYXNlNjQ6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgbG9hZGVyOiBhbnksXHJcbiAgICBJbWFnZXNDb250YWluZXJOYW1lOiBhbnksXHJcbiAgICByZXN0U2VydmljZTogUmVzdFNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMubG9hZGVyID0gbG9hZGVyO1xyXG4gICAgdGhpcy5JbWFnZXNDb250YWluZXJOYW1lID0gSW1hZ2VzQ29udGFpbmVyTmFtZVxyXG4gICAgdGhpcy5yZXN0U2VydmljZT1yZXN0U2VydmljZVxyXG4gIH1cclxuICBwdWJsaWMgdXBsb2FkKCkge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgY29uc3QgcmVhZGVyID0gdGhpcy5yZWFkZXI7XHJcblxyXG4gICAgICBpZiAodGhpcy5CYXNlNjQpIHtcclxuICAgICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcclxuICAgICAgICAgIHJlc29sdmUoeyBkZWZhdWx0OiByZWFkZXIucmVzdWx0IH0pO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignZXJyb3InLCBlcnIgPT4ge1xyXG4gICAgICAgICAgcmVqZWN0KGVycik7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdhYm9ydCcsICgpID0+IHtcclxuICAgICAgICAgIHJlamVjdCgpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRlci5maWxlLnRoZW4oKGZpbGU6IEJsb2IpID0+IHtcclxuICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9hZGVyLmZpbGUudGhlbigoZmlsZTogRmlsZSkgPT4ge1xyXG4gICAgICAgICAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlLCBmaWxlLm5hbWUpO1xyXG4gICAgICAgICAgdGhpcy5jcmVhdGVGaWxlKHtcclxuICAgICAgICAgICAgZmlsZTogZm9ybURhdGEsXHJcbiAgICAgICAgICAgIGNvbnRhaW5lck5hbWU6IHRoaXMuSW1hZ2VzQ29udGFpbmVyTmFtZSxcclxuICAgICAgICAgICAgZGlyZWN0b3J5SWQ6ICcnLFxyXG4gICAgICAgICAgICBlbnRpdHlJZDogJydcclxuICAgICAgICAgIH0pLnN1YnNjcmliZSgocmVzcG9uc2U6YW55KT0+e1xyXG4gICAgICAgICAgICByZXNvbHZlKHsgZGVmYXVsdDogcmVzcG9uc2UudXJsIH0pXHJcbiAgICAgICAgICB9LChlcnJvcik9PntcclxuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUZpbGUgPSAoaW5wdXQ6IGFueSwgY29uZmlnPzogUGFydGlhbDxSZXN0LkNvbmZpZz4pID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgIHVybDogJy9hcGkvZmlsZS1leHBsb3Jlci9maWxlcycsXHJcbiAgICAgIHBhcmFtczogeyBjb250YWluZXJOYW1lOiBpbnB1dC5jb250YWluZXJOYW1lLCBjZWxsTmFtZTogaW5wdXQuY2VsbE5hbWUsIGRpcmVjdG9yeUlkOiBpbnB1dC5kaXJlY3RvcnlJZCwgZW50aXR5SWQ6IGlucHV0LmVudGl0eUlkIH0sXHJcbiAgICAgIGJvZHk6IGlucHV0LmZpbGUsXHJcbiAgICB9LFxyXG4gICAgICB7IGFwaU5hbWU6ICdGaWxlRXhwbG9yZXInLCAuLi5jb25maWcgfSk7XHJcblxyXG59Il19
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2tFZGl0b3JVcGxvYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jay1lZGl0b3Ivc3JjL2xpYi9keW5hbWljLWZvcm0vY2stZWRpdG9yL2NrRWRpdG9yVXBsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxxQkFBcUI7SUFDekIsTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7SUFDakMsV0FBVyxDQUFZO0lBQ3ZCLE1BQU0sQ0FBTTtJQUNaLG1CQUFtQixDQUFNO0lBQ3pCLE1BQU0sR0FBWSxLQUFLLENBQUE7SUFDdkIsWUFDRSxNQUFXLEVBQ1gsbUJBQXdCLEVBQ3hCLFdBQXdCO1FBRXhCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQTtRQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFDLFdBQVcsQ0FBQTtJQUM5QixDQUFDO0lBQ00sTUFBTTtRQUNYLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUUzQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDaEIsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7b0JBQ25DLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDdEMsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRTtvQkFDckMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNkLENBQUMsQ0FBQyxDQUFDO2dCQUVILE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFO29CQUNwQyxNQUFNLEVBQUUsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRTtvQkFDbkMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUU7b0JBQ25DLElBQUksUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7b0JBQzlCLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUM7d0JBQ2QsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsYUFBYSxFQUFFLElBQUksQ0FBQyxtQkFBbUI7d0JBQ3ZDLFdBQVcsRUFBRSxFQUFFO3dCQUNmLFFBQVEsRUFBRSxFQUFFO3FCQUNiLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFZLEVBQUMsRUFBRTt3QkFDM0IsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO29CQUNwQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLEVBQUMsRUFBRTt3QkFDVCxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ2hCLENBQUMsQ0FBQyxDQUFBO2dCQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUVILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVUsR0FBRyxDQUFDLEtBQVUsRUFBRSxNQUE2QixFQUFFLEVBQUUsQ0FDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQVc7UUFDakMsTUFBTSxFQUFFLE1BQU07UUFDZCxHQUFHLEVBQUUsMEJBQTBCO1FBQy9CLE1BQU0sRUFBRSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO1FBQ2xJLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtLQUNqQixFQUNDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7Q0FFN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXN0LCBSZXN0U2VydmljZSB9IGZyb20gXCJAYWJwL25nLmNvcmVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBpc0Jhc2U2NFVwbG9hZEFkYXB0ZXIge1xyXG4gIHB1YmxpYyByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gIHJlc3RTZXJ2aWNlOlJlc3RTZXJ2aWNlXHJcbiAgbG9hZGVyOiBhbnk7XHJcbiAgSW1hZ2VzQ29udGFpbmVyTmFtZTogYW55O1xyXG4gIEJhc2U2NDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBsb2FkZXI6IGFueSxcclxuICAgIEltYWdlc0NvbnRhaW5lck5hbWU6IGFueSxcclxuICAgIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5sb2FkZXIgPSBsb2FkZXI7XHJcbiAgICB0aGlzLkltYWdlc0NvbnRhaW5lck5hbWUgPSBJbWFnZXNDb250YWluZXJOYW1lXHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlPXJlc3RTZXJ2aWNlXHJcbiAgfVxyXG4gIHB1YmxpYyB1cGxvYWQoKSB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBjb25zdCByZWFkZXIgPSB0aGlzLnJlYWRlcjtcclxuXHJcbiAgICAgIGlmICh0aGlzLkJhc2U2NCkge1xyXG4gICAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4ge1xyXG4gICAgICAgICAgcmVzb2x2ZSh7IGRlZmF1bHQ6IHJlYWRlci5yZXN1bHQgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGVyciA9PiB7XHJcbiAgICAgICAgICByZWplY3QoZXJyKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2Fib3J0JywgKCkgPT4ge1xyXG4gICAgICAgICAgcmVqZWN0KCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMubG9hZGVyLmZpbGUudGhlbigoZmlsZTogQmxvYikgPT4ge1xyXG4gICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5sb2FkZXIuZmlsZS50aGVuKChmaWxlOiBGaWxlKSA9PiB7XHJcbiAgICAgICAgICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUsIGZpbGUubmFtZSk7XHJcbiAgICAgICAgICB0aGlzLmNyZWF0ZUZpbGUoe1xyXG4gICAgICAgICAgICBmaWxlOiBmb3JtRGF0YSxcclxuICAgICAgICAgICAgY29udGFpbmVyTmFtZTogdGhpcy5JbWFnZXNDb250YWluZXJOYW1lLFxyXG4gICAgICAgICAgICBkaXJlY3RvcnlJZDogJycsXHJcbiAgICAgICAgICAgIGVudGl0eUlkOiAnJ1xyXG4gICAgICAgICAgfSkuc3Vic2NyaWJlKChyZXNwb25zZTphbnkpPT57XHJcbiAgICAgICAgICAgIHJlc29sdmUoeyBkZWZhdWx0OiByZXNwb25zZS51cmwgfSlcclxuICAgICAgICAgIH0sKGVycm9yKT0+e1xyXG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlRmlsZSA9IChpbnB1dDogYW55LCBjb25maWc/OiBQYXJ0aWFsPFJlc3QuQ29uZmlnPikgPT5cclxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xyXG4gICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgdXJsOiAnL2FwaS9maWxlLWV4cGxvcmVyL2ZpbGVzJyxcclxuICAgICAgcGFyYW1zOiB7IGNvbnRhaW5lck5hbWU6IGlucHV0LmNvbnRhaW5lck5hbWUsIGNlbGxOYW1lOiBpbnB1dC5jZWxsTmFtZSwgZGlyZWN0b3J5SWQ6IGlucHV0LmRpcmVjdG9yeUlkLCBlbnRpdHlJZDogaW5wdXQuZW50aXR5SWQgfSxcclxuICAgICAgYm9keTogaW5wdXQuZmlsZSxcclxuICAgIH0sXHJcbiAgICAgIHsgYXBpTmFtZTogJ0ZpbGVFeHBsb3JlcicsIC4uLmNvbmZpZyB9KTtcclxuXHJcbn0iXX0=