ngx-scandoc 1.2.1 → 1.2.2

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.
@@ -19,7 +19,7 @@ export class ScanFieldsProvider {
19
19
  class: 'checkbox ',
20
20
  defaultValue: true,
21
21
  templateOptions: {
22
- label: 'form.scan.document.update.profile',
22
+ label: 'scandoc.form.scan.document.update.profile',
23
23
  },
24
24
  },
25
25
  {
@@ -29,7 +29,7 @@ export class ScanFieldsProvider {
29
29
  key: 'document',
30
30
  defaultValue: true,
31
31
  templateOptions: {
32
- label: 'form.scan.document.update.document',
32
+ label: 'scandoc.form.scan.document.update.document',
33
33
  },
34
34
  },
35
35
  {
@@ -39,7 +39,7 @@ export class ScanFieldsProvider {
39
39
  key: 'attachment',
40
40
  defaultValue: true,
41
41
  templateOptions: {
42
- label: 'form.scan.document.update.attachment',
42
+ label: 'scandoc.form.scan.document.update.attachment',
43
43
  },
44
44
  },
45
45
  ].map((item) => this.translate.forms(item)),
@@ -59,14 +59,14 @@ export class ScanFieldsProvider {
59
59
  {
60
60
  type: 'title',
61
61
  templateOptions: {
62
- label: 'form.scan.document.guestDetailsTitle',
62
+ label: 'scandoc.form.scan.document.guestDetailsTitle',
63
63
  },
64
64
  },
65
65
  // {
66
66
  // type: 'profile-image',
67
67
  // key: '_avatar',
68
68
  // templateOptions: {
69
- // label: 'form.scan.document.firstName',
69
+ // label: 'scandoc.form.scan.document.firstName',
70
70
  // },
71
71
  // },
72
72
  {
@@ -74,7 +74,7 @@ export class ScanFieldsProvider {
74
74
  key: 'firstName',
75
75
  className: 'small',
76
76
  templateOptions: {
77
- label: 'form.scan.document.firstName',
77
+ label: 'scandoc.form.scan.document.firstName',
78
78
  required: true,
79
79
  },
80
80
  },
@@ -83,7 +83,7 @@ export class ScanFieldsProvider {
83
83
  key: 'lastName',
84
84
  className: 'small',
85
85
  templateOptions: {
86
- label: 'form.scan.document.lastName',
86
+ label: 'scandoc.form.scan.document.lastName',
87
87
  required: true,
88
88
  },
89
89
  },
@@ -93,7 +93,7 @@ export class ScanFieldsProvider {
93
93
  type: 'input',
94
94
  templateOptions: {
95
95
  color: 'accent',
96
- label: 'form.scan.document.secondLastName',
96
+ label: 'scandoc.form.scan.document.secondLastName',
97
97
  },
98
98
  hideExpression: 'model.hideSecondLastName',
99
99
  },
@@ -102,7 +102,7 @@ export class ScanFieldsProvider {
102
102
  key: 'middleName',
103
103
  className: 'small',
104
104
  templateOptions: {
105
- label: 'form.scan.document.middleName',
105
+ label: 'scandoc.form.scan.document.middleName',
106
106
  },
107
107
  },
108
108
  {
@@ -114,7 +114,7 @@ export class ScanFieldsProvider {
114
114
  key: 'birthDate',
115
115
  className: 'w-100-p small mr-8',
116
116
  templateOptions: {
117
- label: 'form.scan.document.birthDate',
117
+ label: 'scandoc.form.scan.document.birthDate',
118
118
  },
119
119
  },
120
120
  {
@@ -122,7 +122,7 @@ export class ScanFieldsProvider {
122
122
  key: 'gender',
123
123
  className: 'w-100-p small ml-8',
124
124
  templateOptions: {
125
- label: 'form.scan.document.gender',
125
+ label: 'scandoc.form.scan.document.gender',
126
126
  options: [
127
127
  { value: 'MALE', label: 'MALE' },
128
128
  { value: 'FEMALE', label: 'FEMALE' },
@@ -137,7 +137,7 @@ export class ScanFieldsProvider {
137
137
  key: 'birthPlace',
138
138
  className: 'small',
139
139
  templateOptions: {
140
- label: 'form.scan.document.birthPlace',
140
+ label: 'scandoc.form.scan.document.birthPlace',
141
141
  },
142
142
  },
143
143
  {
@@ -145,7 +145,7 @@ export class ScanFieldsProvider {
145
145
  key: 'birthCountry',
146
146
  className: 'small',
147
147
  templateOptions: {
148
- label: 'form.scan.document.birthCountry',
148
+ label: 'scandoc.form.scan.document.birthCountry',
149
149
  options: this.provider.countries(),
150
150
  },
151
151
  },
@@ -154,7 +154,7 @@ export class ScanFieldsProvider {
154
154
  key: 'nationality',
155
155
  type: 'select',
156
156
  templateOptions: {
157
- label: 'form.scan.document.nationality',
157
+ label: 'scandoc.form.scan.document.nationality',
158
158
  // appearance: 'outline',
159
159
  // options: this.profileProvider.nationalities(),
160
160
  options: this.provider.countries(),
@@ -169,14 +169,14 @@ export class ScanFieldsProvider {
169
169
  {
170
170
  type: 'title',
171
171
  templateOptions: {
172
- label: 'form.scan.document.documentTitle',
172
+ label: 'scandoc.form.scan.document.documentTitle',
173
173
  },
174
174
  },
175
175
  {
176
176
  type: 'select',
177
177
  key: 'documentType',
178
178
  templateOptions: {
179
- label: 'form.scan.document.documentType',
179
+ label: 'scandoc.form.scan.document.documentType',
180
180
  options: [
181
181
  { value: 'ID', label: 'Identity Document' },
182
182
  { value: 'PASS', label: 'Passport' },
@@ -191,7 +191,7 @@ export class ScanFieldsProvider {
191
191
  type: 'input',
192
192
  key: 'documentNumber',
193
193
  templateOptions: {
194
- label: 'form.scan.document.documentNumber',
194
+ label: 'scandoc.form.scan.document.documentNumber',
195
195
  required: true,
196
196
  },
197
197
  },
@@ -204,7 +204,7 @@ export class ScanFieldsProvider {
204
204
  key: 'issueDate',
205
205
  className: 'small mr-8',
206
206
  templateOptions: {
207
- label: 'form.scan.document.issueDate',
207
+ label: 'scandoc.form.scan.document.issueDate',
208
208
  },
209
209
  },
210
210
  {
@@ -212,7 +212,7 @@ export class ScanFieldsProvider {
212
212
  key: 'expirationDate',
213
213
  className: 'small ml-8',
214
214
  templateOptions: {
215
- label: 'form.scan.document.expirationDate',
215
+ label: 'scandoc.form.scan.document.expirationDate',
216
216
  },
217
217
  },
218
218
  ],
@@ -221,7 +221,7 @@ export class ScanFieldsProvider {
221
221
  type: 'select',
222
222
  key: 'issueStateCode',
223
223
  templateOptions: {
224
- label: 'form.scan.document.issuingStateCode',
224
+ label: 'scandoc.form.scan.document.issuingStateCode',
225
225
  options: this.provider.countries(),
226
226
  },
227
227
  },
@@ -229,7 +229,7 @@ export class ScanFieldsProvider {
229
229
  type: 'input',
230
230
  key: 'issuingPlace',
231
231
  templateOptions: {
232
- label: 'form.scan.document.issuingPlace',
232
+ label: 'scandoc.form.scan.document.issuingPlace',
233
233
  required: false,
234
234
  },
235
235
  },
@@ -240,7 +240,7 @@ export class ScanFieldsProvider {
240
240
  {
241
241
  type: 'title',
242
242
  templateOptions: {
243
- label: 'form.scan.document.addressTitle',
243
+ label: 'scandoc.form.scan.document.addressTitle',
244
244
  badge: 'communications',
245
245
  },
246
246
  },
@@ -251,7 +251,7 @@ export class ScanFieldsProvider {
251
251
  // key: 'typeID',
252
252
  // type: 'select',
253
253
  // templateOptions: {
254
- // label: 'form.profile.address.type',
254
+ // label: 'scandoc.form.profile.address.type',
255
255
  // required: true,
256
256
  // // options: this.profileProvider.addressTypes(),
257
257
  // expressionProperties: {
@@ -277,7 +277,7 @@ export class ScanFieldsProvider {
277
277
  type: 'select',
278
278
  templateOptions: {
279
279
  required: true,
280
- label: 'form.profile.address.country',
280
+ label: 'scandoc.form.profile.address.country',
281
281
  options: this.provider.countries(),
282
282
  },
283
283
  // expressionProperties: {
@@ -298,7 +298,7 @@ export class ScanFieldsProvider {
298
298
  key: 'zip',
299
299
  type: 'input',
300
300
  templateOptions: {
301
- label: 'form.profile.address.zip',
301
+ label: 'scandoc.form.profile.address.zip',
302
302
  labelProp: (item) => {
303
303
  return `${item.zip} (${item.city})`;
304
304
  },
@@ -325,7 +325,7 @@ export class ScanFieldsProvider {
325
325
  key: 'city',
326
326
  type: 'input',
327
327
  templateOptions: {
328
- label: 'form.profile.address.city',
328
+ label: 'scandoc.form.profile.address.city',
329
329
  },
330
330
  // expressionProperties: {
331
331
  // 'templateOptions.disabled': (model: any) =>
@@ -339,7 +339,7 @@ export class ScanFieldsProvider {
339
339
  // key: 'state',
340
340
  // type: 'input',
341
341
  // templateOptions: {
342
- // label: 'form.profile.address.state',
342
+ // label: 'scandoc.form.profile.address.state',
343
343
  // },
344
344
  // // expressionProperties: {
345
345
  // // 'templateOptions.disabled': (model: any) => !model.newAddress,
@@ -350,7 +350,7 @@ export class ScanFieldsProvider {
350
350
  // key: 'countryStateID',
351
351
  // type: 'select',
352
352
  // templateOptions: {
353
- // label: 'form.profile.address.regionalStatistics',
353
+ // label: 'scandoc.form.profile.address.regionalStatistics',
354
354
  // options: this.provider.countries(),
355
355
  // },
356
356
  // // expressionProperties: {
@@ -362,7 +362,7 @@ export class ScanFieldsProvider {
362
362
  key: 'street1',
363
363
  type: 'input',
364
364
  templateOptions: {
365
- label: 'form.profile.address.street',
365
+ label: 'scandoc.form.profile.address.street',
366
366
  },
367
367
  // expressionProperties: {
368
368
  // 'templateOptions.disabled': (model: any) => !model.newAddress,
@@ -375,12 +375,12 @@ export class ScanFieldsProvider {
375
375
  ].map((item) => this.translate.forms(item));
376
376
  }
377
377
  }
378
- ScanFieldsProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScanFieldsProvider, deps: [{ token: i1.TranslationProvider }, { token: i2.ScanProvider }], target: i0.ɵɵFactoryTarget.Injectable });
378
+ ScanFieldsProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScanFieldsProvider, deps: [{ token: i1.NgxScanDocTranslationProvider }, { token: i2.ScanProvider }], target: i0.ɵɵFactoryTarget.Injectable });
379
379
  ScanFieldsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScanFieldsProvider, providedIn: 'root' });
380
380
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScanFieldsProvider, decorators: [{
381
381
  type: Injectable,
382
382
  args: [{
383
383
  providedIn: 'root',
384
384
  }]
385
- }], ctorParameters: function () { return [{ type: i1.TranslationProvider }, { type: i2.ScanProvider }]; } });
386
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjYW5kb2Mvc3JjL3Byb3ZpZGVycy9zY2FuLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVUzQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1UsU0FBOEIsRUFDOUIsUUFBc0I7UUFEdEIsY0FBUyxHQUFULFNBQVMsQ0FBcUI7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBYztJQUM3QixDQUFDO0lBRUosTUFBTTtRQUNKLE9BQU87WUFDTDtnQkFDRSxtQkFBbUIsRUFBRSxPQUFPO2dCQUM1QixVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsUUFBUSxFQUFFLEVBQUU7d0JBQ1osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLEdBQUcsRUFBRSxTQUFTO3dCQUNkLEtBQUssRUFBRSxXQUFXO3dCQUNsQixZQUFZLEVBQUUsSUFBSTt3QkFDbEIsZUFBZSxFQUFFOzRCQUNmLEtBQUssRUFBRSxtQ0FBbUM7eUJBQzNDO3FCQUNGO29CQUNEO3dCQUNFLFFBQVEsRUFBRSxFQUFFO3dCQUNaLElBQUksRUFBRSxVQUFVO3dCQUNoQixLQUFLLEVBQUUsV0FBVzt3QkFDbEIsR0FBRyxFQUFFLFVBQVU7d0JBQ2YsWUFBWSxFQUFFLElBQUk7d0JBQ2xCLGVBQWUsRUFBRTs0QkFDZixLQUFLLEVBQUUsb0NBQW9DO3lCQUM1QztxQkFDRjtvQkFDRDt3QkFDRSxRQUFRLEVBQUUsRUFBRTt3QkFDWixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsS0FBSyxFQUFFLFdBQVc7d0JBQ2xCLEdBQUcsRUFBRSxZQUFZO3dCQUNqQixZQUFZLEVBQUUsSUFBSTt3QkFDbEIsZUFBZSxFQUFFOzRCQUNmLEtBQUssRUFBRSxzQ0FBc0M7eUJBQzlDO3FCQUNGO2lCQUNGLENBQUMsR0FBRyxDQUFDLENBQUMsSUFB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QkFDL0Isd0VBQXdFOzRCQUN4RSxVQUFVOzRCQUNWLEtBQUs7NEJBQ0w7Z0NBQ0UsU0FBUyxFQUFFLGVBQWU7Z0NBQzFCLEdBQUcsRUFBRSxTQUFTO2dDQUNkLElBQUksRUFBRSxPQUFPO2dDQUNiLGVBQWUsRUFBRTtvQ0FDZixLQUFLLEVBQUUsNkJBQTZCO2lDQUNyQztnQ0FDRCwwQkFBMEI7Z0NBQzFCLG1FQUFtRTtnQ0FDbkUsS0FBSzs2QkFDTjt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7K0dBMVhVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2NhblByb3ZpZGVyIH0gZnJvbSAnLi9zY2FuLnByb3ZpZGVyJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uUHJvdmlkZXIgfSBmcm9tICcuL3RyYW5zbGF0aW9uLnByb3ZpZGVyJztcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTY2FuRmllbGRzUHJvdmlkZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRpb25Qcm92aWRlcixcbiAgICBwcml2YXRlIHByb3ZpZGVyOiBTY2FuUHJvdmlkZXJcbiAgKSB7fVxuXG4gIHVwZGF0ZSgpOiBGb3JtbHlGaWVsZENvbmZpZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOiAncHgtMTYnLFxuICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgd3JhcHBlcnM6IFtdLFxuICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICAgIGtleTogJ3Byb2ZpbGUnLFxuICAgICAgICAgICAgY2xhc3M6ICdjaGVja2JveCAnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnZm9ybS5zY2FuLmRvY3VtZW50LnVwZGF0ZS5wcm9maWxlJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3cmFwcGVyczogW10sXG4gICAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgICAgY2xhc3M6ICdjaGVja2JveCAnLFxuICAgICAgICAgICAga2V5OiAnZG9jdW1lbnQnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnZm9ybS5zY2FuLmRvY3VtZW50LnVwZGF0ZS5kb2N1bWVudCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgd3JhcHBlcnM6IFtdLFxuICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICAgIGNsYXNzOiAnY2hlY2tib3ggJyxcbiAgICAgICAgICAgIGtleTogJ2F0dGFjaG1lbnQnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnZm9ybS5zY2FuLmRvY3VtZW50LnVwZGF0ZS5hdHRhY2htZW50JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXS5tYXAoKGl0ZW0pID0+IHRoaXMudHJhbnNsYXRlLmZvcm1zKGl0ZW0pKSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuICBkb2N1bWVudCgpOiBGb3JtbHlGaWVsZENvbmZpZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBjbGFzc05hbWU6ICd3LTIwMC1wJyxcbiAgICAgICAgZmllbGRHcm91cENsYXNzTmFtZTogJ2Zvcm0tZmxleC1yb3cgYm9yZGVyLWNhcmQgcHJvZmlsZS1kZXRhaWxzJyxcbiAgICAgICAgZmllbGRHcm91cDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGNsYXNzTmFtZTogJ2NhcmQtZ3JvdXAnLFxuICAgICAgICAgICAgZmllbGRHcm91cENsYXNzTmFtZTogJ3dyYXBlcicsXG4gICAgICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAndGl0bGUnLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdmb3JtLnNjYW4uZG9jdW1lbnQuZ3Vlc3REZXRhaWxzVGl0bGUnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC8vIHtcbiAgICAgICAgICAgICAgLy8gICB0eXBlOiAncHJvZmlsZS1pbWFnZScsXG4gICAgICAgICAgICAgIC8vICAga2V5OiAnX2F2YXRhcicsXG4gICAgICAgICAgICAgIC8vICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgIC8vICAgICBsYWJlbDogJ2Zvcm0uc2Nhbi5kb2N1bWVudC5maXJzdE5hbWUnLFxuICAgICAgICAgICAgICAvLyAgIH0sXG4gICAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIGtleTogJ2ZpcnN0TmFtZScsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdmb3JtLnNjYW4uZG9jdW1lbnQuZmlyc3ROYW1lJyxcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIGtleTogJ2xhc3ROYW1lJyxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ2Zvcm0uc2Nhbi5kb2N1bWVudC5sYXN0TmFtZScsXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIGtleTogJ3NlY29uZE5hbWUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBjb2xvcjogJ2FjY2VudCcsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ2Zvcm0uc2Nhbi5kb2N1bWVudC5zZWNvbmRMYXN0TmFtZScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBoaWRlRXhwcmVzc2lvbjogJ21vZGVsLmhpZGVTZWNvbmRMYXN0TmFtZScsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIGtleTogJ21pZGRsZU5hbWUnLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZm9ybS5zY2FuLmRvY3VtZW50Lm1pZGRsZU5hbWUnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICcnLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdmb3JtLWZsZXgtcm93IHNwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2RhdGVwaWNrZXInLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdiaXJ0aERhdGUnLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICd3LTEwMC1wIHNtYWxsIG1yLTgnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ2Zvcm0uc2Nhbi5kb2N1bWVudC5iaXJ0aERhdGUnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgICAgICAgIGtleTogJ2dlbmRlcicsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3ctMTAwLXAgc21hbGwgbWwtOCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZm9ybS5zY2FuLmRvY3VtZW50LmdlbmRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ01BTEUnLCBsYWJlbDogJ01BTEUnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnRkVNQUxFJywgbGFiZWw6ICdGRU1BTEUnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnTkEnLCBsYWJlbDogJ04vQScgfSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIGtleTogJ2JpcnRoUGxhY2UnLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZm9ybS5zY2FuLmRvY3VtZW50LmJpcnRoUGxhY2UnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdiaXJ0aENvdW50cnknLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZm9ybS5zY2FuLmRvY3VtZW50LmJpcnRoQ291bnRyeScsXG5cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMucHJvdmlkZXIuY291bnRyaWVzKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBrZXk6ICduYXRpb25hbGl0eScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ2Zvcm0uc2Nhbi5kb2N1bWVudC5uYXRpb25hbGl0eScsXG4gICAgICAgICAgICAgICAgICAvLyAgIGFwcGVhcmFuY2U6ICdvdXRsaW5lJyxcbiAgICAgICAgICAgICAgICAgIC8vICBvcHRpb25zOiB0aGlzLnByb2ZpbGVQcm92aWRlci5uYXRpb25hbGl0aWVzKCksXG4gICAgICAgICAgICAgICAgICBvcHRpb25zOiB0aGlzLnByb3ZpZGVyLmNvdW50cmllcygpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnY2FyZC1ncm91cCcsXG4gICAgICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOiAnd3JhcGVyJyxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICd0aXRsZScsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ2Zvcm0uc2Nhbi5kb2N1bWVudC5kb2N1bWVudFRpdGxlJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgICAga2V5OiAnZG9jdW1lbnRUeXBlJyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZm9ybS5zY2FuLmRvY3VtZW50LmRvY3VtZW50VHlwZScsXG4gICAgICAgICAgICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdJRCcsIGxhYmVsOiAnSWRlbnRpdHkgRG9jdW1lbnQnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdQQVNTJywgbGFiZWw6ICdQYXNzcG9ydCcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ0RMJywgbGFiZWw6ICdEcml2ZXIgTGljZW5jZScgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgLy8gIHZhbHVlUHJvcDogJ2lkJyxcbiAgICAgICAgICAgICAgICAvLyAgbGFiZWxQcm9wOiAndmFsdWUnLFxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAga2V5OiAnZG9jdW1lbnROdW1iZXInLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdmb3JtLnNjYW4uZG9jdW1lbnQuZG9jdW1lbnROdW1iZXInLFxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJycsXG4gICAgICAgICAgICAgICAgZmllbGRHcm91cENsYXNzTmFtZTogJ2Zvcm0tZmxleC1yb3cgc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgICAgICAgZmllbGRHcm91cDogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZGF0ZXBpY2tlcicsXG4gICAgICAgICAgICAgICAgICAgIGtleTogJ2lzc3VlRGF0ZScsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsIG1yLTgnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ2Zvcm0uc2Nhbi5kb2N1bWVudC5pc3N1ZURhdGUnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2RhdGVwaWNrZXInLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdleHBpcmF0aW9uRGF0ZScsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsIG1sLTgnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ2Zvcm0uc2Nhbi5kb2N1bWVudC5leHBpcmF0aW9uRGF0ZScsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdpc3N1ZVN0YXRlQ29kZScsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ2Zvcm0uc2Nhbi5kb2N1bWVudC5pc3N1aW5nU3RhdGVDb2RlJyxcblxuICAgICAgICAgICAgICAgICAgb3B0aW9uczogdGhpcy5wcm92aWRlci5jb3VudHJpZXMoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdpc3N1aW5nUGxhY2UnLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdmb3JtLnNjYW4uZG9jdW1lbnQuaXNzdWluZ1BsYWNlJyxcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnJyxcbiAgICAgICAgICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOiAnZm9ybS1mbGV4LXJvdyBzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0aXRsZScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZm9ybS5zY2FuLmRvY3VtZW50LmFkZHJlc3NUaXRsZScsXG4gICAgICAgICAgICAgICAgICAgICAgYmFkZ2U6ICdjb21tdW5pY2F0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgXS5tYXAoKGl0ZW0pID0+IHRoaXMudHJhbnNsYXRlLmZvcm1zKGl0ZW0pKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgICAvLyAgIGNsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgLy8gICBrZXk6ICd0eXBlSUQnLFxuICAgICAgICAgICAgICAvLyAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAvLyAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAvLyAgICAgbGFiZWw6ICdmb3JtLnByb2ZpbGUuYWRkcmVzcy50eXBlJyxcbiAgICAgICAgICAgICAgLy8gICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAvLyAgICAgLy8gIG9wdGlvbnM6IHRoaXMucHJvZmlsZVByb3ZpZGVyLmFkZHJlc3NUeXBlcygpLFxuICAgICAgICAgICAgICAvLyAgICAgZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgLy8gICAgICAgJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCc6IChtb2RlbDogYW55KSA9PlxuICAgICAgICAgICAgICAvLyAgICAgICAgIG1vZGVsLm5ld0FkZHJlc3MsXG4gICAgICAgICAgICAgIC8vICAgICB9LFxuICAgICAgICAgICAgICAvLyAgICAgb25DbGVhclZhbHVlOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnKSA9PiB7XG4gICAgICAgICAgICAgIC8vICAgICAgIGZpZWxkLmZvcm1Db250cm9sPy5zZXRWYWx1ZSgnJyk7XG4gICAgICAgICAgICAgIC8vICAgICAgIGZpZWxkLm1vZGVsLnR5cGVJRCA9IDA7XG4gICAgICAgICAgICAgIC8vICAgICB9LFxuICAgICAgICAgICAgICAvLyAgICAgb25TZXROZXdWYWx1ZTogKGZpZWxkOiBGb3JtbHlGaWVsZENvbmZpZywgb3B0T2JqOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgLy8gICAgICAgZmllbGQuZm9ybUNvbnRyb2w/LnNldFZhbHVlKG9wdE9iai52YWx1ZSk7XG4gICAgICAgICAgICAgIC8vICAgICAgIGZpZWxkLm1vZGVsLnR5cGVJRCA9IG9wdE9iai52YWx1ZTtcbiAgICAgICAgICAgICAgLy8gICAgIH0sXG4gICAgICAgICAgICAgIC8vICAgfSxcbiAgICAgICAgICAgICAgLy8gICBleHByZXNzaW9uUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAvLyAgICAgJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCc6IChtb2RlbDogYW55KSA9PiAhbW9kZWwubmV3QWRkcmVzcyxcbiAgICAgICAgICAgICAgLy8gICB9LFxuICAgICAgICAgICAgICAvLyB9LFxuXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAga2V5OiAnY291bnRyeScsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZm9ybS5wcm9maWxlLmFkZHJlc3MuY291bnRyeScsXG4gICAgICAgICAgICAgICAgICBvcHRpb25zOiB0aGlzLnByb3ZpZGVyLmNvdW50cmllcygpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgLy8gZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAvLyAgICd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnOiAobW9kZWw6IGFueSkgPT4gIW1vZGVsLm5ld0FkZHJlc3MsXG4gICAgICAgICAgICAgICAgLy8gfSxcbiAgICAgICAgICAgICAgICBob29rczoge1xuICAgICAgICAgICAgICAgICAgb25Jbml0OiAobW9kZWw6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhtb2RlbCk7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICcnLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdmb3JtLWZsZXgtcm93IHNwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnbXItOCB3LTEwMC1wJyxcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnemlwJyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdmb3JtLnByb2ZpbGUuYWRkcmVzcy56aXAnLFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsUHJvcDogKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2l0ZW0uemlwfSAoJHtpdGVtLmNpdHl9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgICAgICAgIHNldDogKGZpZWxkOiBhbnksIG9wdGlvbjogTWF0T3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhvcHRpb24sIGZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmZvcm1Db250cm9sLnNldFZhbHVlKG9wdGlvbi52YWx1ZS56aXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IENJVFlcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmZvcm0uZ2V0KCdjaXR5Jykuc2V0VmFsdWUob3B0aW9uLnZhbHVlLmNpdHkpO1xuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiAoa2V5OiBzdHJpbmcsIGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLnByb2ZpbGVQcm92aWRlci56aXBDb2Rlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGNvdW50cnlDb2RlOiBmaWVsZC5mb3JtLmdldCgnY291bnRyeScpLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICB6aXA6IGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH0pO1xuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC8vIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIC8vICAgJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCc6IChtb2RlbDogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgIW1vZGVsLm5ld0FkZHJlc3MsXG4gICAgICAgICAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzbWFsbCBtbC04JyxcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnY2l0eScsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnZm9ybS5wcm9maWxlLmFkZHJlc3MuY2l0eScsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC8vIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIC8vICAgJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCc6IChtb2RlbDogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgIW1vZGVsLm5ld0FkZHJlc3MsXG4gICAgICAgICAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0ubWFwKChpdGVtKSA9PiB0aGlzLnRyYW5zbGF0ZS5mb3JtcyhpdGVtKSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC8vIHtcbiAgICAgICAgICAgICAgLy8gICBjbGFzc05hbWU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgIC8vICAga2V5OiAnc3RhdGUnLFxuICAgICAgICAgICAgICAvLyAgIHR5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgIC8vICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgIC8vICAgICBsYWJlbDogJ2Zvcm0ucHJvZmlsZS5hZGRyZXNzLnN0YXRlJyxcbiAgICAgICAgICAgICAgLy8gICB9LFxuICAgICAgICAgICAgICAvLyAgIC8vIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIC8vICAgLy8gICAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJzogKG1vZGVsOiBhbnkpID0+ICFtb2RlbC5uZXdBZGRyZXNzLFxuICAgICAgICAgICAgICAvLyAgIC8vIH0sXG4gICAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAgIC8vIHtcbiAgICAgICAgICAgICAgLy8gICBjbGFzc05hbWU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgIC8vICAga2V5OiAnY291bnRyeVN0YXRlSUQnLFxuICAgICAgICAgICAgICAvLyAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAvLyAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAvLyAgICAgbGFiZWw6ICdmb3JtLnByb2ZpbGUuYWRkcmVzcy5yZWdpb25hbFN0YXRpc3RpY3MnLFxuICAgICAgICAgICAgICAvLyAgICAgb3B0aW9uczogdGhpcy5wcm92aWRlci5jb3VudHJpZXMoKSxcbiAgICAgICAgICAgICAgLy8gICB9LFxuICAgICAgICAgICAgICAvLyAgIC8vIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIC8vICAgLy8gICAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJzogKG1vZGVsOiBhbnkpID0+ICFtb2RlbC5uZXdBZGRyZXNzLFxuICAgICAgICAgICAgICAvLyAgIC8vIH0sXG4gICAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzbWFsbCB3LTEwMC1wJyxcbiAgICAgICAgICAgICAgICBrZXk6ICdzdHJlZXQxJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdmb3JtLnByb2ZpbGUuYWRkcmVzcy5zdHJlZXQnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgLy8gZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAvLyAgICd0ZW1wbGF0ZU9wdGlvbnMuZGlzYWJsZWQnOiAobW9kZWw6IGFueSkgPT4gIW1vZGVsLm5ld0FkZHJlc3MsXG4gICAgICAgICAgICAgICAgLy8gfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXS5tYXAoKGl0ZW0pID0+IHRoaXMudHJhbnNsYXRlLmZvcm1zKGl0ZW0pKTtcbiAgfVxufVxuIl19
385
+ }], ctorParameters: function () { return [{ type: i1.NgxScanDocTranslationProvider }, { type: i2.ScanProvider }]; } });
386
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nhbi5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNjYW5kb2Mvc3JjL3Byb3ZpZGVycy9zY2FuLmZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVUzQyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1UsU0FBd0MsRUFDeEMsUUFBc0I7UUFEdEIsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDeEMsYUFBUSxHQUFSLFFBQVEsQ0FBYztJQUM3QixDQUFDO0lBRUosTUFBTTtRQUNKLE9BQU87WUFDTDtnQkFDRSxtQkFBbUIsRUFBRSxPQUFPO2dCQUM1QixVQUFVLEVBQUU7b0JBQ1Y7d0JBQ0UsUUFBUSxFQUFFLEVBQUU7d0JBQ1osSUFBSSxFQUFFLFVBQVU7d0JBQ2hCLEdBQUcsRUFBRSxTQUFTO3dCQUNkLEtBQUssRUFBRSxXQUFXO3dCQUNsQixZQUFZLEVBQUUsSUFBSTt3QkFDbEIsZUFBZSxFQUFFOzRCQUNmLEtBQUssRUFBRSwyQ0FBMkM7eUJBQ25EO3FCQUNGO29CQUNEO3dCQUNFLFFBQVEsRUFBRSxFQUFFO3dCQUNaLElBQUksRUFBRSxVQUFVO3dCQUNoQixLQUFLLEVBQUUsV0FBVzt3QkFDbEIsR0FBRyxFQUFFLFVBQVU7d0JBQ2YsWUFBWSxFQUFFLElBQUk7d0JBQ2xCLGVBQWUsRUFBRTs0QkFDZixLQUFLLEVBQUUsNENBQTRDO3lCQUNwRDtxQkFDRjtvQkFDRDt3QkFDRSxRQUFRLEVBQUUsRUFBRTt3QkFDWixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsS0FBSyxFQUFFLFdBQVc7d0JBQ2xCLEdBQUcsRUFBRSxZQUFZO3dCQUNqQixZQUFZLEVBQUUsSUFBSTt3QkFDbEIsZUFBZSxFQUFFOzRCQUNmLEtBQUssRUFBRSw4Q0FBOEM7eUJBQ3REO3FCQUNGO2lCQUNGLENBQUMsR0FBRyxDQUFDLENBQUMsSUFB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QkFDL0Isd0VBQXdFOzRCQUN4RSxVQUFVOzRCQUNWLEtBQUs7NEJBQ0w7Z0NBQ0UsU0FBUyxFQUFFLGVBQWU7Z0NBQzFCLEdBQUcsRUFBRSxTQUFTO2dDQUNkLElBQUksRUFBRSxPQUFPO2dDQUNiLGVBQWUsRUFBRTtvQ0FDZixLQUFLLEVBQUUscUNBQXFDO2lDQUM3QztnQ0FDRCwwQkFBMEI7Z0NBQzFCLG1FQUFtRTtnQ0FDbkUsS0FBSzs2QkFDTjt5QkFDRjtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7K0dBelhVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2NhblByb3ZpZGVyIH0gZnJvbSAnLi9zY2FuLnByb3ZpZGVyJztcbmltcG9ydCB7IE5neFNjYW5Eb2NUcmFuc2xhdGlvblByb3ZpZGVyIH0gZnJvbSAnLi90cmFuc2xhdGlvbi5wcm92aWRlcic7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2NhbkZpZWxkc1Byb3ZpZGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IE5neFNjYW5Eb2NUcmFuc2xhdGlvblByb3ZpZGVyLFxuICAgIHByaXZhdGUgcHJvdmlkZXI6IFNjYW5Qcm92aWRlclxuICApIHt9XG5cbiAgdXBkYXRlKCk6IEZvcm1seUZpZWxkQ29uZmlnW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdweC0xNicsXG4gICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB3cmFwcGVyczogW10sXG4gICAgICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICAgICAga2V5OiAncHJvZmlsZScsXG4gICAgICAgICAgICBjbGFzczogJ2NoZWNrYm94ICcsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC51cGRhdGUucHJvZmlsZScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgd3JhcHBlcnM6IFtdLFxuICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICAgIGNsYXNzOiAnY2hlY2tib3ggJyxcbiAgICAgICAgICAgIGtleTogJ2RvY3VtZW50JyxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50LnVwZGF0ZS5kb2N1bWVudCcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgd3JhcHBlcnM6IFtdLFxuICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICAgIGNsYXNzOiAnY2hlY2tib3ggJyxcbiAgICAgICAgICAgIGtleTogJ2F0dGFjaG1lbnQnLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQudXBkYXRlLmF0dGFjaG1lbnQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLm1hcCgoaXRlbSkgPT4gdGhpcy50cmFuc2xhdGUuZm9ybXMoaXRlbSkpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG4gIGRvY3VtZW50KCk6IEZvcm1seUZpZWxkQ29uZmlnW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGNsYXNzTmFtZTogJ3ctMjAwLXAnLFxuICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOiAnZm9ybS1mbGV4LXJvdyBib3JkZXItY2FyZCBwcm9maWxlLWRldGFpbHMnLFxuICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnY2FyZC1ncm91cCcsXG4gICAgICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOiAnd3JhcGVyJyxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICd0aXRsZScsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50Lmd1ZXN0RGV0YWlsc1RpdGxlJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAvLyB7XG4gICAgICAgICAgICAgIC8vICAgdHlwZTogJ3Byb2ZpbGUtaW1hZ2UnLFxuICAgICAgICAgICAgICAvLyAgIGtleTogJ19hdmF0YXInLFxuICAgICAgICAgICAgICAvLyAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAvLyAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5maXJzdE5hbWUnLFxuICAgICAgICAgICAgICAvLyAgIH0sXG4gICAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIGtleTogJ2ZpcnN0TmFtZScsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5maXJzdE5hbWUnLFxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAga2V5OiAnbGFzdE5hbWUnLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQubGFzdE5hbWUnLFxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBrZXk6ICdzZWNvbmROYW1lJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgY29sb3I6ICdhY2NlbnQnLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5zZWNvbmRMYXN0TmFtZScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBoaWRlRXhwcmVzc2lvbjogJ21vZGVsLmhpZGVTZWNvbmRMYXN0TmFtZScsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIGtleTogJ21pZGRsZU5hbWUnLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQubWlkZGxlTmFtZScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJycsXG4gICAgICAgICAgICAgICAgZmllbGRHcm91cENsYXNzTmFtZTogJ2Zvcm0tZmxleC1yb3cgc3BhY2UtYmV0d2VlbicsXG4gICAgICAgICAgICAgICAgZmllbGRHcm91cDogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZGF0ZXBpY2tlcicsXG4gICAgICAgICAgICAgICAgICAgIGtleTogJ2JpcnRoRGF0ZScsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3ctMTAwLXAgc21hbGwgbXItOCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQuYmlydGhEYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdnZW5kZXInLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICd3LTEwMC1wIHNtYWxsIG1sLTgnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50LmdlbmRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ01BTEUnLCBsYWJlbDogJ01BTEUnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnRkVNQUxFJywgbGFiZWw6ICdGRU1BTEUnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnTkEnLCBsYWJlbDogJ04vQScgfSxcbiAgICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIGtleTogJ2JpcnRoUGxhY2UnLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQuYmlydGhQbGFjZScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgIGtleTogJ2JpcnRoQ291bnRyeScsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnc21hbGwnLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5iaXJ0aENvdW50cnknLFxuXG4gICAgICAgICAgICAgICAgICBvcHRpb25zOiB0aGlzLnByb3ZpZGVyLmNvdW50cmllcygpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAga2V5OiAnbmF0aW9uYWxpdHknLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5uYXRpb25hbGl0eScsXG4gICAgICAgICAgICAgICAgICAvLyAgIGFwcGVhcmFuY2U6ICdvdXRsaW5lJyxcbiAgICAgICAgICAgICAgICAgIC8vICBvcHRpb25zOiB0aGlzLnByb2ZpbGVQcm92aWRlci5uYXRpb25hbGl0aWVzKCksXG4gICAgICAgICAgICAgICAgICBvcHRpb25zOiB0aGlzLnByb3ZpZGVyLmNvdW50cmllcygpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgY2xhc3NOYW1lOiAnY2FyZC1ncm91cCcsXG4gICAgICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOiAnd3JhcGVyJyxcbiAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICd0aXRsZScsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50LmRvY3VtZW50VGl0bGUnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdkb2N1bWVudFR5cGUnLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5kb2N1bWVudFR5cGUnLFxuICAgICAgICAgICAgICAgICAgb3B0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnSUQnLCBsYWJlbDogJ0lkZW50aXR5IERvY3VtZW50JyB9LFxuICAgICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnUEFTUycsIGxhYmVsOiAnUGFzc3BvcnQnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdETCcsIGxhYmVsOiAnRHJpdmVyIExpY2VuY2UnIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgLy8gIHZhbHVlUHJvcDogJ2lkJyxcbiAgICAgICAgICAgICAgICAgIC8vICBsYWJlbFByb3A6ICd2YWx1ZScsXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICBrZXk6ICdkb2N1bWVudE51bWJlcicsXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50LmRvY3VtZW50TnVtYmVyJyxcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICcnLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXBDbGFzc05hbWU6ICdmb3JtLWZsZXgtcm93IHNwYWNlLWJldHdlZW4nLFxuICAgICAgICAgICAgICAgIGZpZWxkR3JvdXA6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2RhdGVwaWNrZXInLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdpc3N1ZURhdGUnLFxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzbWFsbCBtci04JyxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0uc2Nhbi5kb2N1bWVudC5pc3N1ZURhdGUnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2RhdGVwaWNrZXInLFxuICAgICAgICAgICAgICAgICAgICBrZXk6ICdleHBpcmF0aW9uRGF0ZScsXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsIG1sLTgnLFxuICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ3NjYW5kb2MuZm9ybS5zY2FuLmRvY3VtZW50LmV4cGlyYXRpb25EYXRlJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAgIGtleTogJ2lzc3VlU3RhdGVDb2RlJyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQuaXNzdWluZ1N0YXRlQ29kZScsXG5cbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMucHJvdmlkZXIuY291bnRyaWVzKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHR5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAga2V5OiAnaXNzdWluZ1BsYWNlJyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQuaXNzdWluZ1BsYWNlJyxcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnJyxcbiAgICAgICAgICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOiAnZm9ybS1mbGV4LXJvdyBzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0aXRsZScsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnNjYW4uZG9jdW1lbnQuYWRkcmVzc1RpdGxlJyxcbiAgICAgICAgICAgICAgICAgICAgICBiYWRnZTogJ2NvbW11bmljYXRpb25zJyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXS5tYXAoKGl0ZW0pID0+IHRoaXMudHJhbnNsYXRlLmZvcm1zKGl0ZW0pKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgICAvLyAgIGNsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgLy8gICBrZXk6ICd0eXBlSUQnLFxuICAgICAgICAgICAgICAvLyAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgICAgICAgICAvLyAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAvLyAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0ucHJvZmlsZS5hZGRyZXNzLnR5cGUnLFxuICAgICAgICAgICAgICAvLyAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgIC8vICAgICAvLyAgb3B0aW9uczogdGhpcy5wcm9maWxlUHJvdmlkZXIuYWRkcmVzc1R5cGVzKCksXG4gICAgICAgICAgICAgIC8vICAgICBleHByZXNzaW9uUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAvLyAgICAgICAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJzogKG1vZGVsOiBhbnkpID0+XG4gICAgICAgICAgICAgIC8vICAgICAgICAgbW9kZWwubmV3QWRkcmVzcyxcbiAgICAgICAgICAgICAgLy8gICAgIH0sXG4gICAgICAgICAgICAgIC8vICAgICBvbkNsZWFyVmFsdWU6IChmaWVsZDogRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICAgICAgICAgICAgLy8gICAgICAgZmllbGQuZm9ybUNvbnRyb2w/LnNldFZhbHVlKCcnKTtcbiAgICAgICAgICAgICAgLy8gICAgICAgZmllbGQubW9kZWwudHlwZUlEID0gMDtcbiAgICAgICAgICAgICAgLy8gICAgIH0sXG4gICAgICAgICAgICAgIC8vICAgICBvblNldE5ld1ZhbHVlOiAoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBvcHRPYmo6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAvLyAgICAgICBmaWVsZC5mb3JtQ29udHJvbD8uc2V0VmFsdWUob3B0T2JqLnZhbHVlKTtcbiAgICAgICAgICAgICAgLy8gICAgICAgZmllbGQubW9kZWwudHlwZUlEID0gb3B0T2JqLnZhbHVlO1xuICAgICAgICAgICAgICAvLyAgICAgfSxcbiAgICAgICAgICAgICAgLy8gICB9LFxuICAgICAgICAgICAgICAvLyAgIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIC8vICAgICAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJzogKG1vZGVsOiBhbnkpID0+ICFtb2RlbC5uZXdBZGRyZXNzLFxuICAgICAgICAgICAgICAvLyAgIH0sXG4gICAgICAgICAgICAgIC8vIH0sXG5cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBrZXk6ICdjb3VudHJ5JyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0ucHJvZmlsZS5hZGRyZXNzLmNvdW50cnknLFxuICAgICAgICAgICAgICAgICAgb3B0aW9uczogdGhpcy5wcm92aWRlci5jb3VudHJpZXMoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIC8vIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgLy8gICAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJzogKG1vZGVsOiBhbnkpID0+ICFtb2RlbC5uZXdBZGRyZXNzLFxuICAgICAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAgICAgaG9va3M6IHtcbiAgICAgICAgICAgICAgICAgIG9uSW5pdDogKG1vZGVsOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobW9kZWwpO1xuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiAnJyxcbiAgICAgICAgICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOiAnZm9ybS1mbGV4LXJvdyBzcGFjZS1iZXR3ZWVuJyxcbiAgICAgICAgICAgICAgICBmaWVsZEdyb3VwOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogJ21yLTggdy0xMDAtcCcsXG4gICAgICAgICAgICAgICAgICAgIGtleTogJ3ppcCcsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnByb2ZpbGUuYWRkcmVzcy56aXAnLFxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsUHJvcDogKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke2l0ZW0uemlwfSAoJHtpdGVtLmNpdHl9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgICAgICAgIHNldDogKGZpZWxkOiBhbnksIG9wdGlvbjogTWF0T3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhvcHRpb24sIGZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmZvcm1Db250cm9sLnNldFZhbHVlKG9wdGlvbi52YWx1ZS56aXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0IENJVFlcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmZvcm0uZ2V0KCdjaXR5Jykuc2V0VmFsdWUob3B0aW9uLnZhbHVlLmNpdHkpO1xuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiAoa2V5OiBzdHJpbmcsIGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGlzLnByb2ZpbGVQcm92aWRlci56aXBDb2Rlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGNvdW50cnlDb2RlOiBmaWVsZC5mb3JtLmdldCgnY291bnRyeScpLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICB6aXA6IGtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH0pO1xuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC8vIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgIC8vICAgJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCc6IChtb2RlbDogYW55KSA9PlxuICAgICAgICAgICAgICAgICAgICAvLyAgICAgIW1vZGVsLm5ld0FkZHJlc3MsXG4gICAgICAgICAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzbWFsbCBtbC04JyxcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnY2l0eScsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpbnB1dCcsXG4gICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnByb2ZpbGUuYWRkcmVzcy5jaXR5JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgLy8gZXhwcmVzc2lvblByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJzogKG1vZGVsOiBhbnkpID0+XG4gICAgICAgICAgICAgICAgICAgIC8vICAgICAhbW9kZWwubmV3QWRkcmVzcyxcbiAgICAgICAgICAgICAgICAgICAgLy8gfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXS5tYXAoKGl0ZW0pID0+IHRoaXMudHJhbnNsYXRlLmZvcm1zKGl0ZW0pKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgLy8ge1xuICAgICAgICAgICAgICAvLyAgIGNsYXNzTmFtZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgLy8gICBrZXk6ICdzdGF0ZScsXG4gICAgICAgICAgICAgIC8vICAgdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgLy8gICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgLy8gICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnByb2ZpbGUuYWRkcmVzcy5zdGF0ZScsXG4gICAgICAgICAgICAgIC8vICAgfSxcbiAgICAgICAgICAgICAgLy8gICAvLyBleHByZXNzaW9uUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAvLyAgIC8vICAgJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCc6IChtb2RlbDogYW55KSA9PiAhbW9kZWwubmV3QWRkcmVzcyxcbiAgICAgICAgICAgICAgLy8gICAvLyB9LFxuICAgICAgICAgICAgICAvLyB9LFxuICAgICAgICAgICAgICAvLyB7XG4gICAgICAgICAgICAgIC8vICAgY2xhc3NOYW1lOiAnc21hbGwnLFxuICAgICAgICAgICAgICAvLyAgIGtleTogJ2NvdW50cnlTdGF0ZUlEJyxcbiAgICAgICAgICAgICAgLy8gICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgICAgICAgLy8gICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgLy8gICAgIGxhYmVsOiAnc2NhbmRvYy5mb3JtLnByb2ZpbGUuYWRkcmVzcy5yZWdpb25hbFN0YXRpc3RpY3MnLFxuICAgICAgICAgICAgICAvLyAgICAgb3B0aW9uczogdGhpcy5wcm92aWRlci5jb3VudHJpZXMoKSxcbiAgICAgICAgICAgICAgLy8gICB9LFxuICAgICAgICAgICAgICAvLyAgIC8vIGV4cHJlc3Npb25Qcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgIC8vICAgLy8gICAndGVtcGxhdGVPcHRpb25zLmRpc2FibGVkJzogKG1vZGVsOiBhbnkpID0+ICFtb2RlbC5uZXdBZGRyZXNzLFxuICAgICAgICAgICAgICAvLyAgIC8vIH0sXG4gICAgICAgICAgICAgIC8vIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6ICdzbWFsbCB3LTEwMC1wJyxcbiAgICAgICAgICAgICAgICBrZXk6ICdzdHJlZXQxJyxcbiAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdzY2FuZG9jLmZvcm0ucHJvZmlsZS5hZGRyZXNzLnN0cmVldCcsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAvLyBleHByZXNzaW9uUHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgIC8vICAgJ3RlbXBsYXRlT3B0aW9ucy5kaXNhYmxlZCc6IChtb2RlbDogYW55KSA9PiAhbW9kZWwubmV3QWRkcmVzcyxcbiAgICAgICAgICAgICAgICAvLyB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdLm1hcCgoaXRlbSkgPT4gdGhpcy50cmFuc2xhdGUuZm9ybXMoaXRlbSkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,126 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { forkJoin, Observable, of, throwError } from 'rxjs';
3
+ import { catchError, map, retry } from 'rxjs/operators';
4
+ import { ObjectUtils } from '../core/helpers/object-utils';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ export class ComponentTranslationModel {
8
+ constructor(obj) {
9
+ this.name = obj && obj.name;
10
+ this.path = obj && obj.path;
11
+ this.json = (obj && obj.json) || [];
12
+ }
13
+ }
14
+ export class TranslateLoaderProvider {
15
+ constructor(http) {
16
+ this.http = http;
17
+ // private prefix = null;
18
+ this.suffix = '.json';
19
+ this.providers = [];
20
+ this.queue = [];
21
+ }
22
+ ngOnDestroy() {
23
+ console.log('TRANSLATE DESTROY');
24
+ }
25
+ registerProvider(name, path) {
26
+ const registered = this.providers.find((provider) => provider.name === name);
27
+ if (registered) {
28
+ registered.path = path;
29
+ }
30
+ else {
31
+ this.providers.push(new ComponentTranslationModel({ name: name, path: path }));
32
+ }
33
+ }
34
+ providerRegistered(name) {
35
+ return this.providers.find((x) => x.name === name) ? true : false;
36
+ }
37
+ getComponentToFetch(lang) {
38
+ const observableBatch = [];
39
+ if (!this.queue[lang]) {
40
+ this.queue[lang] = [];
41
+ }
42
+ this.providers.forEach((component) => {
43
+ if (!this.isComponentInQueue(lang, component.name)) {
44
+ this.queue[lang].push(component.name);
45
+ const translationUrl = `${component.path}/${lang}${this.suffix}?v=${Date.now()}`;
46
+ observableBatch.push(this.http.get(translationUrl).pipe(map((res) => {
47
+ component.json[lang] = res;
48
+ }), retry(3), catchError(() => throwError(`Failed to load ${translationUrl}`))));
49
+ }
50
+ });
51
+ return observableBatch;
52
+ }
53
+ init(lang) {
54
+ if (this.queue[lang] === undefined) {
55
+ this.queue[lang] = [];
56
+ }
57
+ }
58
+ isComponentInQueue(lang, name) {
59
+ return (this.queue[lang] || []).find((x) => x === name) ? true : false;
60
+ }
61
+ getFullTranslationJSON(lang) {
62
+ let result = {};
63
+ this.providers
64
+ .slice(0)
65
+ .sort((a, b) => {
66
+ if (a.name === 'app') {
67
+ return 1;
68
+ }
69
+ if (b.name === 'app') {
70
+ return -1;
71
+ }
72
+ return a.name.localeCompare(b.name);
73
+ })
74
+ .forEach((model) => {
75
+ if (model.json && model.json[lang]) {
76
+ result = ObjectUtils.merge(result, model.json[lang]);
77
+ }
78
+ });
79
+ return result;
80
+ }
81
+ getTranslation(lang) {
82
+ let hasFailures = false;
83
+ const batch = [
84
+ ...this.getComponentToFetch(lang).map((observable) => {
85
+ return observable.pipe(catchError((error) => {
86
+ hasFailures = true;
87
+ return of(error);
88
+ }));
89
+ }),
90
+ ];
91
+ return new Observable((observer) => {
92
+ if (batch.length > 0) {
93
+ forkJoin(batch).subscribe(() => {
94
+ const fullTranslation = this.getFullTranslationJSON(lang);
95
+ if (fullTranslation) {
96
+ observer.next(fullTranslation);
97
+ }
98
+ if (hasFailures) {
99
+ observer.error('Failed to load some resources');
100
+ }
101
+ else {
102
+ observer.complete();
103
+ }
104
+ }, (err) => {
105
+ observer.error('Failed to load some resources');
106
+ });
107
+ }
108
+ else {
109
+ const fullTranslation = this.getFullTranslationJSON(lang);
110
+ if (fullTranslation) {
111
+ observer.next(fullTranslation);
112
+ observer.complete();
113
+ }
114
+ }
115
+ });
116
+ }
117
+ }
118
+ TranslateLoaderProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TranslateLoaderProvider, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
119
+ TranslateLoaderProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TranslateLoaderProvider, providedIn: 'root' });
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TranslateLoaderProvider, decorators: [{
121
+ type: Injectable,
122
+ args: [{
123
+ providedIn: 'root',
124
+ }]
125
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLWxvYWRlci5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zY2FuZG9jL3NyYy9wcm92aWRlcnMvdHJhbnNsYXRlLWxvYWRlci5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7QUFDM0QsTUFBTSxPQUFPLHlCQUF5QjtJQUtwQyxZQUFZLEdBQVM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFLRCxNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFMcEMseUJBQXlCO1FBQ2pCLFdBQU0sR0FBRyxPQUFPLENBQUM7UUFDakIsY0FBUyxHQUFnQyxFQUFFLENBQUM7UUFDNUMsVUFBSyxHQUFZLEVBQUUsQ0FBQztJQUVXLENBQUM7SUFFeEMsV0FBVztRQUNULE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBWSxFQUFF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QUFLLENBQUMsQ0FBQyxTQUFTLENBQ3ZCLEdBQUcsRUFBRTtvQkFDSCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRTFELElBQUksZUFBZSxFQUFFO3dCQUNuQixRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO3FCQUNoQztvQkFFRCxJQUFJLFdBQVcsRUFBRTt3QkFDZixRQUFRLENBQUMsS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7cUJBQ2pEO3lCQUFNO3dCQUNMLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztxQkFDckI7Z0JBQ0gsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ04sUUFBUSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2dCQUNsRCxDQUFDLENBQ0YsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFMUQsSUFBSSxlQUFlLEVBQUU7b0JBQ25CLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQy9CLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDckI7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBMUlVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCLGNBRnRCLE1BQU07MkZBRVAsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZUxvYWRlciB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHJldHJ5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICcuLi9jb3JlL2hlbHBlcnMvb2JqZWN0LXV0aWxzJztcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRUcmFuc2xhdGlvbk1vZGVsIHtcbiAgbmFtZTogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIGpzb246IHN0cmluZ1tdO1xuXG4gIGNvbnN0cnVjdG9yKG9iaj86IGFueSkge1xuICAgIHRoaXMubmFtZSA9IG9iaiAmJiBvYmoubmFtZTtcbiAgICB0aGlzLnBhdGggPSBvYmogJiYgb2JqLnBhdGg7XG4gICAgdGhpcy5qc29uID0gKG9iaiAmJiBvYmouanNvbikgfHwgW107XG4gIH1cbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZUxvYWRlclByb3ZpZGVyIGltcGxlbWVudHMgVHJhbnNsYXRlTG9hZGVyLCBPbkRlc3Ryb3kge1xuICAvLyBwcml2YXRlIHByZWZpeCA9IG51bGw7XG4gIHByaXZhdGUgc3VmZml4ID0gJy5qc29uJztcbiAgcHJpdmF0ZSBwcm92aWRlcnM6IENvbXBvbmVudFRyYW5zbGF0aW9uTW9kZWxbXSA9IFtdO1xuICBwcml2YXRlIHF1ZXVlOiBhbnlbXVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdUUkFOU0xBVEUgREVTVFJPWScpO1xuICB9XG5cbiAgcmVnaXN0ZXJQcm92aWRlcihuYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IHJlZ2lzdGVyZWQgPSB0aGlzLnByb3ZpZGVycy5maW5kKFxuICAgICAgKHByb3ZpZGVyKSA9PiBwcm92aWRlci5uYW1lID09PSBuYW1lXG4gICAgKTtcblxuICAgIGlmIChyZWdpc3RlcmVkKSB7XG4gICAgICByZWdpc3RlcmVkLnBhdGggPSBwYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnByb3ZpZGVycy5wdXNoKFxuICAgICAgICBuZXcgQ29tcG9uZW50VHJhbnNsYXRpb25Nb2RlbCh7IG5hbWU6IG5hbWUsIHBhdGg6IHBhdGggfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJvdmlkZXJSZWdpc3RlcmVkKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnByb3ZpZGVycy5maW5kKCh4KSA9PiB4Lm5hbWUgPT09IG5hbWUpID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG5cbiAgZ2V0Q29tcG9uZW50VG9GZXRjaChsYW5nOiBhbnkpOiBBcnJheTxPYnNlcnZhYmxlPGFueT4+IHtcbiAgICBjb25zdCBvYnNlcnZhYmxlQmF0Y2g6IGFueSA9IFtdO1xuXG4gICAgaWYgKCF0aGlzLnF1ZXVlW2xhbmddKSB7XG4gICAgICB0aGlzLnF1ZXVlW2xhbmddID0gW107XG4gICAgfVxuXG4gICAgdGhpcy5wcm92aWRlcnMuZm9yRWFjaCgoY29tcG9uZW50OmFueSkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlzQ29tcG9uZW50SW5RdWV1ZShsYW5nLCBjb21wb25lbnQubmFtZSkpIHtcbiAgICAgICAgdGhpcy5xdWV1ZVtsYW5nXS5wdXNoKGNvbXBvbmVudC5uYW1lKTtcblxuICAgICAgICBjb25zdCB0cmFuc2xhdGlvblVybCA9IGAke2NvbXBvbmVudC5wYXRofS8ke2xhbmd9JHtcbiAgICAgICAgICB0aGlzLnN1ZmZpeFxuICAgICAgICB9P3Y9JHtEYXRlLm5vdygpfWA7XG5cbiAgICAgICAgb2JzZXJ2YWJsZUJhdGNoLnB1c2goXG4gICAgICAgICAgdGhpcy5odHRwLmdldCh0cmFuc2xhdGlvblVybCkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgICAgIGNvbXBvbmVudC5qc29uW2xhbmddID0gcmVzO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICByZXRyeSgzKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gdGhyb3dFcnJvcihgRmFpbGVkIHRvIGxvYWQgJHt0cmFuc2xhdGlvblVybH1gKSlcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gb2JzZXJ2YWJsZUJhdGNoO1xuICB9XG5cbiAgaW5pdChsYW5nOiBhbnkpIHtcbiAgICBpZiAodGhpcy5xdWV1ZVtsYW5nXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnF1ZXVlW2xhbmddID0gW107XG4gICAgfVxuICB9XG5cbiAgaXNDb21wb25lbnRJblF1ZXVlKGxhbmc6IGFueSwgbmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuICh0aGlzLnF1ZXVlW2xhbmddIHx8IFtdKS5maW5kKCh4KSA9PiB4ID09PSBuYW1lKSA/IHRydWUgOiBmYWxzZTtcbiAgfVxuXG4gIGdldEZ1bGxUcmFuc2xhdGlvbkpTT04obGFuZzogYW55KTogYW55IHtcbiAgICBsZXQgcmVzdWx0ID0ge307XG5cbiAgICB0aGlzLnByb3ZpZGVyc1xuICAgICAgLnNsaWNlKDApXG4gICAgICAuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICBpZiAoYS5uYW1lID09PSAnYXBwJykge1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGIubmFtZSA9PT0gJ2FwcCcpIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYS5uYW1lLmxvY2FsZUNvbXBhcmUoYi5uYW1lKTtcbiAgICAgIH0pXG4gICAgICAuZm9yRWFjaCgobW9kZWwpID0+IHtcbiAgICAgICAgaWYgKG1vZGVsLmpzb24gJiYgbW9kZWwuanNvbltsYW5nXSkge1xuICAgICAgICAgIHJlc3VsdCA9IE9iamVjdFV0aWxzLm1lcmdlKHJlc3VsdCwgbW9kZWwuanNvbltsYW5nXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldFRyYW5zbGF0aW9uKGxhbmc6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IGhhc0ZhaWx1cmVzID0gZmFsc2U7XG4gICAgY29uc3QgYmF0Y2ggPSBbXG4gICAgICAuLi50aGlzLmdldENvbXBvbmVudFRvRmV0Y2gobGFuZykubWFwKChvYnNlcnZhYmxlKSA9PiB7XG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGhhc0ZhaWx1cmVzID0gdHJ1ZTtcblxuICAgICAgICAgICAgcmV0dXJuIG9mKGVycm9yKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgXTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXIpID0+IHtcbiAgICAgIGlmIChiYXRjaC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvcmtKb2luKGJhdGNoKS5zdWJzY3JpYmUoXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZnVsbFRyYW5zbGF0aW9uID0gdGhpcy5nZXRGdWxsVHJhbnNsYXRpb25KU09OKGxhbmcpO1xuXG4gICAgICAgICAgICBpZiAoZnVsbFRyYW5zbGF0aW9uKSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZnVsbFRyYW5zbGF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGhhc0ZhaWx1cmVzKSB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBzb21lIHJlc291cmNlcycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBzb21lIHJlc291cmNlcycpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGZ1bGxUcmFuc2xhdGlvbiA9IHRoaXMuZ2V0RnVsbFRyYW5zbGF0aW9uSlNPTihsYW5nKTtcblxuICAgICAgICBpZiAoZnVsbFRyYW5zbGF0aW9uKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dChmdWxsVHJhbnNsYXRpb24pO1xuICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19