kwikid-agent-dashboard 0.0.12 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,21 +1,24 @@
1
- import { Component, EventEmitter, Inject, Input, Output, ViewChild } from '@angular/core';
1
+ import { Component, EventEmitter, HostListener, Inject, Input, Output, ViewChild } from '@angular/core';
2
2
  import { MapInfoWindow } from '@angular/google-maps';
3
3
  import { TuiDialogService } from '@taiga-ui/core';
4
4
  import { of } from 'rxjs';
5
5
  import { catchError, map } from 'rxjs/operators';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "./services/map.service";
8
- import * as i2 from "@angular/common/http";
9
- import * as i3 from "kwikui";
10
- import * as i4 from "@angular/google-maps";
11
- import * as i5 from "./components/customer-list/customer-list.component";
12
- import * as i6 from "kwikid-forms";
13
- import * as i7 from "@angular/common";
14
- import * as i8 from "@taiga-ui/cdk";
15
- import * as i9 from "@taiga-ui/core";
8
+ import * as i2 from "./services/user.service";
9
+ import * as i3 from "@angular/common/http";
10
+ import * as i4 from "kwikui";
11
+ import * as i5 from "@angular/google-maps";
12
+ import * as i6 from "./components/customer-details/customer-details.component";
13
+ import * as i7 from "./components/customer-list/customer-list.component";
14
+ import * as i8 from "kwikid-forms";
15
+ import * as i9 from "@angular/common";
16
+ import * as i10 from "@taiga-ui/cdk";
17
+ import * as i11 from "@taiga-ui/core";
16
18
  export class KwikIDAgentDashboardComponent {
17
- constructor(mapService, httpClient, hostElement, dialogService) {
19
+ constructor(mapService, userService, httpClient, hostElement, dialogService) {
18
20
  this.mapService = mapService;
21
+ this.userService = userService;
19
22
  this.httpClient = httpClient;
20
23
  this.hostElement = hostElement;
21
24
  this.dialogService = dialogService;
@@ -26,441 +29,9 @@ export class KwikIDAgentDashboardComponent {
26
29
  this.removeTask = new EventEmitter();
27
30
  this.filterTaskList = new EventEmitter();
28
31
  this.loading = true;
29
- this.showMapview = true;
30
- this.isMobileView = false;
31
- this.listOpen = true;
32
32
  this.options = {
33
33
  stops: ['calc(5rem + 74vw)', 'calc(9rem + 74vw)']
34
34
  };
35
- this.addTaskFormConfig = {
36
- key: 'ADD_TASK',
37
- title: 'Add Task',
38
- fields: [
39
- {
40
- key: 'name',
41
- label: 'Customer Name',
42
- disabled: false,
43
- messages: [],
44
- default: {
45
- value: {
46
- is_found: false,
47
- value: '',
48
- sources: [
49
- {
50
- key: 'OBJECT',
51
- props: {
52
- object: {
53
- key: 'ALL_FORMS_DATA',
54
- path: '$.ADD_TASK.name'
55
- }
56
- },
57
- value: '',
58
- validation: {
59
- is_valid: false,
60
- triggers: ['ON_INIT'],
61
- rules: [
62
- {
63
- id: '1',
64
- key: 'VALUE_CHECK',
65
- props: {
66
- value: {
67
- source: {
68
- key: 'OBJECT',
69
- props: {
70
- object: {
71
- key: 'ALL_FORMS_DATA',
72
- path: '$.ADD_TASK.name'
73
- }
74
- }
75
- }
76
- },
77
- pattern: {
78
- key: 'IS_NOT_EMPTY'
79
- }
80
- }
81
- }
82
- ],
83
- actions: [
84
- {
85
- id: '1',
86
- key: 'SET_FIELD_DEFAULT_VALUE',
87
- condition: '1',
88
- props: {
89
- fieldKey: 'name',
90
- value: {
91
- source: {
92
- key: 'OBJECT',
93
- props: {
94
- object: {
95
- key: 'ALL_FORMS_DATA',
96
- path: '$.ADD_TASK.name'
97
- }
98
- }
99
- }
100
- }
101
- }
102
- }
103
- ]
104
- }
105
- }
106
- ]
107
- }
108
- },
109
- validators: {
110
- required: true
111
- },
112
- properties: {
113
- placeholder: 'Please enter the Customer Name',
114
- readOnly: false,
115
- case: 'default'
116
- },
117
- type: 'text'
118
- },
119
- {
120
- key: 'phone',
121
- label: 'Phone Number',
122
- disabled: false,
123
- messages: [],
124
- default: {
125
- value: {
126
- is_found: false,
127
- value: '',
128
- sources: [
129
- {
130
- key: 'OBJECT',
131
- props: {
132
- object: {
133
- key: 'ALL_FORMS_DATA',
134
- path: '$.ADD_TASK.phone'
135
- }
136
- },
137
- value: '',
138
- validation: {
139
- is_valid: false,
140
- triggers: ['ON_INIT'],
141
- rules: [
142
- {
143
- id: '1',
144
- key: 'VALUE_CHECK',
145
- props: {
146
- value: {
147
- source: {
148
- key: 'OBJECT',
149
- props: {
150
- object: {
151
- key: 'ALL_FORMS_DATA',
152
- path: '$.ADD_TASK.phone'
153
- }
154
- }
155
- }
156
- },
157
- pattern: {
158
- key: 'IS_NOT_EMPTY'
159
- }
160
- }
161
- }
162
- ],
163
- actions: [
164
- {
165
- id: '1',
166
- key: 'SET_FIELD_DEFAULT_VALUE',
167
- condition: '1',
168
- props: {
169
- fieldKey: 'phone',
170
- value: {
171
- source: {
172
- key: 'OBJECT',
173
- props: {
174
- object: {
175
- key: 'ALL_FORMS_DATA',
176
- path: '$.ADD_TASK.phone'
177
- }
178
- }
179
- }
180
- }
181
- }
182
- }
183
- ]
184
- }
185
- }
186
- ]
187
- }
188
- },
189
- validators: {
190
- required: true
191
- },
192
- properties: {
193
- countryCode: '+91',
194
- removeCountryCodeFromValue: true,
195
- phoneMaskAfterCountryCode: '##########',
196
- placeholder: 'Please enter your Mobile Number',
197
- readOnly: false
198
- },
199
- type: 'phone'
200
- },
201
- {
202
- key: 'address',
203
- label: 'Address',
204
- disabled: false,
205
- messages: [],
206
- default: {
207
- value: {
208
- is_found: false,
209
- value: '',
210
- sources: [
211
- {
212
- key: 'OBJECT',
213
- props: {
214
- object: {
215
- key: 'ALL_FORMS_DATA',
216
- path: '$.ADD_TASK.address'
217
- }
218
- },
219
- value: '',
220
- validation: {
221
- is_valid: false,
222
- triggers: ['ON_INIT'],
223
- rules: [
224
- {
225
- id: '1',
226
- key: 'VALUE_CHECK',
227
- props: {
228
- value: {
229
- source: {
230
- key: 'OBJECT',
231
- props: {
232
- object: {
233
- key: 'ALL_FORMS_DATA',
234
- path: '$.ADD_TASK.address'
235
- }
236
- }
237
- }
238
- },
239
- pattern: {
240
- key: 'IS_NOT_EMPTY'
241
- }
242
- }
243
- }
244
- ],
245
- actions: [
246
- {
247
- id: '1',
248
- key: 'SET_FIELD_DEFAULT_VALUE',
249
- condition: '1',
250
- props: {
251
- fieldKey: 'address',
252
- value: {
253
- source: {
254
- key: 'OBJECT',
255
- props: {
256
- object: {
257
- key: 'ALL_FORMS_DATA',
258
- path: '$.ADD_TASK.address'
259
- }
260
- }
261
- }
262
- }
263
- }
264
- }
265
- ]
266
- }
267
- }
268
- ]
269
- }
270
- },
271
- validators: {
272
- required: true
273
- },
274
- properties: {
275
- placeholder: 'Please enter the Address',
276
- readOnly: false,
277
- case: 'default'
278
- },
279
- type: 'text'
280
- },
281
- {
282
- key: 'city',
283
- label: 'City',
284
- disabled: false,
285
- messages: [],
286
- default: {
287
- value: {
288
- is_found: false,
289
- value: '',
290
- sources: [
291
- {
292
- key: 'OBJECT',
293
- props: {
294
- object: {
295
- key: 'ALL_FORMS_DATA',
296
- path: '$.ADD_TASK.city'
297
- }
298
- },
299
- value: '',
300
- validation: {
301
- is_valid: false,
302
- triggers: ['ON_INIT'],
303
- rules: [
304
- {
305
- id: '1',
306
- key: 'VALUE_CHECK',
307
- props: {
308
- value: {
309
- source: {
310
- key: 'OBJECT',
311
- props: {
312
- object: {
313
- key: 'ALL_FORMS_DATA',
314
- path: '$.ADD_TASK.city'
315
- }
316
- }
317
- }
318
- },
319
- pattern: {
320
- key: 'IS_NOT_EMPTY'
321
- }
322
- }
323
- }
324
- ],
325
- actions: [
326
- {
327
- id: '1',
328
- key: 'SET_FIELD_DEFAULT_VALUE',
329
- condition: '1',
330
- props: {
331
- fieldKey: 'city',
332
- value: {
333
- source: {
334
- key: 'OBJECT',
335
- props: {
336
- object: {
337
- key: 'ALL_FORMS_DATA',
338
- path: '$.ADD_TASK.city'
339
- }
340
- }
341
- }
342
- }
343
- }
344
- }
345
- ]
346
- }
347
- }
348
- ]
349
- }
350
- },
351
- validators: {
352
- required: true
353
- },
354
- properties: {
355
- placeholder: 'Please enter the City',
356
- readOnly: false,
357
- case: 'default'
358
- },
359
- type: 'text'
360
- },
361
- {
362
- key: 'location',
363
- label: 'Location URL',
364
- disabled: false,
365
- messages: [],
366
- default: {
367
- value: {
368
- is_found: false,
369
- value: '',
370
- sources: [
371
- {
372
- key: 'OBJECT',
373
- props: {
374
- object: {
375
- key: 'ALL_FORMS_DATA',
376
- path: '$.ADD_TASK.location'
377
- }
378
- },
379
- value: '',
380
- validation: {
381
- is_valid: false,
382
- triggers: ['ON_INIT'],
383
- rules: [
384
- {
385
- id: '1',
386
- key: 'VALUE_CHECK',
387
- props: {
388
- value: {
389
- source: {
390
- key: 'OBJECT',
391
- props: {
392
- object: {
393
- key: 'ALL_FORMS_DATA',
394
- path: '$.ADD_TASK.location'
395
- }
396
- }
397
- }
398
- },
399
- pattern: {
400
- key: 'IS_NOT_EMPTY'
401
- }
402
- }
403
- }
404
- ],
405
- actions: [
406
- {
407
- id: '1',
408
- key: 'SET_FIELD_DEFAULT_VALUE',
409
- condition: '1',
410
- props: {
411
- fieldKey: 'location',
412
- value: {
413
- source: {
414
- key: 'OBJECT',
415
- props: {
416
- object: {
417
- key: 'ALL_FORMS_DATA',
418
- path: '$.ADD_TASK.location'
419
- }
420
- }
421
- }
422
- }
423
- }
424
- }
425
- ]
426
- }
427
- }
428
- ]
429
- }
430
- },
431
- validators: {
432
- required: true
433
- },
434
- properties: {
435
- placeholder: 'Please enter the Location URL',
436
- readOnly: false,
437
- case: 'default'
438
- },
439
- type: 'text'
440
- }
441
- ],
442
- properties: {
443
- header: {
444
- title: {
445
- hidden: true,
446
- label: 'Add Task'
447
- },
448
- steps: {
449
- hidden: true
450
- }
451
- },
452
- footer: {
453
- viewFormsButton: {
454
- hidden: true,
455
- label: 'View Forms'
456
- },
457
- saveButton: {
458
- hidden: false,
459
- label: 'Submit'
460
- }
461
- }
462
- }
463
- };
464
35
  this.open = false;
465
36
  this.allFormsData = {};
466
37
  this.String = String;
@@ -468,12 +39,27 @@ export class KwikIDAgentDashboardComponent {
468
39
  .jsonp('https://maps.googleapis.com/maps/api/js?key=AIzaSyA63JY0ja6ZGIR796vJqZARc0c2j8Vgpik&v=3.exp&libraries=geometry,drawing,places', 'callback')
469
40
  .pipe(map(() => true), catchError(() => of(false)));
470
41
  }
42
+ windowResizeWatcher() {
43
+ if (this.hostElement.nativeElement.offsetWidth < 600) {
44
+ this.isMobileView = true;
45
+ this.userService.isMobileView = true;
46
+ }
47
+ else {
48
+ this.isMobileView = false;
49
+ this.userService.isMobileView = false;
50
+ }
51
+ }
471
52
  ngOnInit() {
472
53
  var _a, _b, _c, _d, _e, _f;
473
- this.showMapview = (_c = (_b = (_a = this.agentConfig) === null || _a === void 0 ? void 0 : _a.dashboardConfig) === null || _b === void 0 ? void 0 : _b.showMaps) !== null && _c !== void 0 ? _c : false;
474
- this.addTaskFormConfig =
475
- (_f = (_e = (_d = this.agentConfig) === null || _d === void 0 ? void 0 : _d.dashboardConfig) === null || _e === void 0 ? void 0 : _e.addTaskFormConfig) !== null && _f !== void 0 ? _f : this.addTaskFormConfig;
54
+ this.userService.agentConfig = this.agentConfig;
55
+ this.userService.showMapview =
56
+ (_c = (_b = (_a = this.agentConfig) === null || _a === void 0 ? void 0 : _a.dashboardConfig) === null || _b === void 0 ? void 0 : _b.showMaps) !== null && _c !== void 0 ? _c : false;
57
+ this.userService.addTaskFormConfig =
58
+ (_f = (_e = (_d = this.agentConfig) === null || _d === void 0 ? void 0 : _d.dashboardConfig) === null || _e === void 0 ? void 0 : _e.addTaskFormConfig) !== null && _f !== void 0 ? _f : this.userService.addTaskFormConfig;
476
59
  this.loading = false;
60
+ setTimeout(() => {
61
+ this.windowResizeWatcher();
62
+ }, 1000);
477
63
  }
478
64
  goToNextStep(e) {
479
65
  this.nextStep.emit(e);
@@ -490,9 +76,6 @@ export class KwikIDAgentDashboardComponent {
490
76
  refresh() {
491
77
  window.location.reload();
492
78
  }
493
- toggleMapview() {
494
- this.showMapview = !this.showMapview;
495
- }
496
79
  onClick() {
497
80
  this.open = !this.open;
498
81
  }
@@ -517,8 +100,8 @@ export class KwikIDAgentDashboardComponent {
517
100
  }
518
101
  handleOnClickViewForms(e) { }
519
102
  }
520
- /** @nocollapse */ KwikIDAgentDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDAgentDashboardComponent, deps: [{ token: i1.MapService }, { token: i2.HttpClient }, { token: i0.ElementRef }, { token: TuiDialogService }], target: i0.ɵɵFactoryTarget.Component });
521
- /** @nocollapse */ KwikIDAgentDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDAgentDashboardComponent, selector: "kwikid-agent-dashboard", inputs: { agentConfig: "agentConfig", taskList: "taskList" }, outputs: { nextStep: "nextStep", addTask: "addTask", removeTask: "removeTask", filterTaskList: "filterTaskList" }, viewQueries: [{ propertyName: "infoWindow", first: true, predicate: MapInfoWindow, descendants: true }], ngImport: i0, template: "<div class=\"kwikid-agent-dashboard\" *ngIf=\"!loading\">\n <div class=\"wrapper\">\n <div class=\"dashboard-header\">\n <div class=\"dashboard-header-client-name\">\n <kwikui-button-icon\n [icon]=\"'tuiIconLink'\"\n appearance=\"mono\"\n size=\"m\"\n ></kwikui-button-icon>\n\n {{ agentConfig.clientName }}\n </div>\n <span (tuiActiveZoneChange)=\"onActiveZone($event)\">\n <kwikui-button-icon\n [icon]=\"'tuiIconSettingsLarge'\"\n (onClick)=\"onClick()\"\n appearance=\"mono\"\n size=\"m\"\n [tuiDropdown]=\"dropdownContent\"\n [tuiDropdownManual]=\"open\"\n (tuiObscured)=\"onObscured($event)\"\n ></kwikui-button-icon>\n <ng-template #dropdownContent>\n <div class=\"menu-dropdown\">\n <div class=\"menu-dropdown-header\">\n <div class=\"menu-dropdown-header-agent-name\">\n {{ agentConfig.agentName }}\n </div>\n <div class=\"menu-dropdown-header-agent-id\">\n Agent ID: {{ agentConfig.agentId }}\n </div>\n </div>\n <hr />\n <div\n class=\"menu-dropdown-body\"\n tuiGroup\n [collapsed]=\"true\"\n [rounded]=\"false\"\n [orientation]=\"'vertical'\"\n [size]=\"'m'\"\n >\n <kwikui-button\n *ngIf=\"this.agentConfig.dashboardConfig.showMaps\"\n id=\"\"\n label=\"{{ showMapview ? 'Hide Maps' : 'Show Maps' }}\"\n styles=\"\"\n class=\"menu-dropdown-buttons\"\n type=\"button\"\n appearance=\"mono\"\n icon=\"{{ showMapview ? 'tuiIconEyeOff' : 'tuiIconEye' }}\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"padding: 0rem !important\"\n (onClick)=\"toggleMapview()\"\n ></kwikui-button>\n <kwikui-button\n *ngIf=\"this.agentConfig?.dashboardConfig?.allowAddTask\"\n id=\"\"\n label=\"Add Task\"\n styles=\"\"\n class=\"menu-dropdown-buttons\"\n type=\"button\"\n appearance=\"mono\"\n [icon]=\"'tuiIconAddRowLarge'\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n (onClick)=\"showDialog(template)\"\n ></kwikui-button>\n <kwikui-button\n id=\"\"\n label=\"Refresh\"\n styles=\"\"\n class=\"menu-dropdown-buttons\"\n type=\"button\"\n appearance=\"mono\"\n [icon]=\"'tuiIconRefreshCw'\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n (onClick)=\"refresh()\"\n ></kwikui-button>\n </div>\n <hr />\n <div class=\"menu-dropdown-footer\">\n <kwikui-button\n id=\"\"\n label=\"Logout\"\n styles=\"\"\n class=\"menu-dropdown-buttons\"\n type=\"button\"\n appearance=\"mono\"\n [icon]=\"'tuiIconLogOut'\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n (onClick)=\"goToNextStep({ stepType: 'LOGOUT' })\"\n ></kwikui-button>\n </div>\n </div>\n </ng-template>\n </span>\n </div>\n\n <div class=\"dashboard-body\">\n <div\n *ngIf=\"apiLoaded | async\"\n [class]=\"showMapview ? 'map' : 'map-hidden'\"\n >\n <google-map height=\"100%\" width=\"100%\" [options]=\"this.mapService.map\">\n <map-marker\n #marker=\"mapMarker\"\n *ngFor=\"\n let markerPosition of this.mapService.markers;\n let index = index\n \"\n [position]=\"markerPosition\"\n [label]=\"{ text: String(index), color: '#FFF' }\"\n (mapClick)=\"openInfoWindow(marker)\"\n ></map-marker>\n <map-directions-renderer\n *ngIf=\"\n this.mapService.directionsResults$ | async as directionsResults\n \"\n [directions]=\"directionsResults\"\n [options]=\"this.mapService.directionsRenderOption\"\n ></map-directions-renderer>\n <map-info-window>Info Window content</map-info-window>\n </google-map>\n </div>\n <div class=\"customer-list\">\n <customer-list\n [customers]=\"taskList\"\n [agentConfig]=\"agentConfig\"\n (nextStep)=\"goToNextStep($event)\"\n (removeTask)=\"handleOnClickRemoveTask($event)\"\n (filterTaskList)=\"handleOnFilterTaskList($event)\"\n ></customer-list>\n </div>\n </div>\n </div>\n</div>\n<div class=\"kwikid-agent-dashboard-loader\" *ngIf=\"loading\">\n <span class=\"loader\"></span>\n</div>\n\n<ng-template #template let-observer>\n <div class=\"add-task-header\">\n <h2>Add Task</h2>\n <kwikui-button-icon\n icon=\"tuiIconX\"\n id=\"\"\n label=\"Close\"\n styles=\"\"\n type=\"button\"\n appearance=\"mono\"\n [shape]=\"null\"\n size=\"m\"\n (onClick)=\"observer.complete()\"\n ></kwikui-button-icon>\n </div>\n <kwikid-form-view\n [formConfig]=\"addTaskFormConfig\"\n [allFormsData]=\"allFormsData\"\n [isMobileView]=\"true\"\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\n (onClickSaveForm)=\"this.handleOnClickSaveForm($event)\"\n ></kwikid-form-view>\n</ng-template>\n", styles: [".kwikid-agent-dashboard{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;width:100%;height:100%;position:relative}.kwikid-agent-dashboard .wrapper{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:space-between;align-items:stretch}.kwikid-agent-dashboard .wrapper .dashboard-header{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:1rem;column-gap:1rem;padding:.2rem;max-height:max-content;border:1px solid #fafafa;box-shadow:0 2px 10px -6px #000}.kwikid-agent-dashboard .wrapper .dashboard-header .dashboard-header-client-name{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;font-size:1rem;font-weight:600}.kwikid-agent-dashboard .wrapper .dashboard-body{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:stretch;flex:1;overflow:auto}.kwikid-agent-dashboard .wrapper .dashboard-body .map{width:100%;height:100%;position:relative;overflow:hidden}.kwikid-agent-dashboard .wrapper .dashboard-body .map-hidden{visibility:collapse}.kwikid-agent-dashboard .wrapper .dashboard-body .customer-list{width:100%;height:100%;background-color:#fafafa;overflow:hidden}@media screen and (min-width: 600px){.kwikid-agent-dashboard{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;width:100%;height:100%}.kwikid-agent-dashboard .wrapper{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:space-between;align-items:stretch}.kwikid-agent-dashboard .wrapper .dashboard-header{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:1rem;column-gap:1rem;padding:.2rem;max-height:max-content;border:1px solid #fafafa;box-shadow:0 2px 10px -6px #000}.kwikid-agent-dashboard .wrapper .dashboard-header .dashboard-header-client-name{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;font-size:1rem;font-weight:600}.kwikid-agent-dashboard .wrapper .dashboard-body{display:flex;flex-direction:row-reverse;align-content:center;justify-content:center;align-items:stretch;padding:1.5rem;grid-gap:1.5rem;gap:1.5rem;overflow:auto;background-color:#fafafa}.kwikid-agent-dashboard .wrapper .dashboard-body .map{width:100%;height:100%;position:relative;overflow:hidden;box-shadow:#0000001a 0 4px 6px -1px,#0000000f 0 2px 4px -1px;border-radius:.5rem}.kwikid-agent-dashboard .wrapper .dashboard-body .map-hidden{visibility:collapse}.kwikid-agent-dashboard .wrapper .dashboard-body .customer-list{min-width:300px;max-width:400px;width:100%;height:100%;overflow:hidden;box-shadow:#0000001a 0 4px 6px -1px,#0000000f 0 2px 4px -1px;border-radius:.5rem}}.menu{position:absolute;transition:\"0.15s linear 0s\"}.kwikid-agent-dashboard-loader{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.75);display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;z-index:100}.kwikid-agent-dashboard-loader .loader{width:48px;height:48px;border-radius:50%;display:inline-block;position:relative;border:3px solid;border-color:#fff #fff transparent;box-sizing:border-box;animation:rotation 1s linear infinite}.kwikid-agent-dashboard-loader .loader:after{content:\"\";box-sizing:border-box;position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;border:3px solid;border-color:transparent var(--tui-primary) var(--tui-primary);width:24px;height:24px;border-radius:50%;animation:rotationBack .5s linear infinite;transform-origin:center center}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotationBack{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.kwikid-agent-dashboard-loader .t-loader{display:none!important}.add-task-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:.5rem 0 1rem 1rem}:host{width:100%;height:100%}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}.menu-dropdown{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;grid-gap:.5rem;gap:.5rem;padding:1rem 1.5rem}.menu-dropdown .menu-dropdown-header{display:flex;flex-direction:column;align-content:flex-start;justify-content:space-between;align-items:flex-start;grid-gap:1rem;gap:1rem}.menu-dropdown .menu-dropdown-header .menu-dropdown-header-agent-name{font-size:1.2rem;font-weight:600}.menu-dropdown .menu-dropdown-header .menu-dropdown-header-agent-id{font-size:.8rem;font-weight:600}.menu-dropdown .menu-dropdown-buttons ::ng-deep .t-wrapper{padding:0!important}\n"], components: [{ type: i3.KwikUIButtonIconComponent, selector: "kwikui-button-icon", inputs: ["disabled", "id", "showLoader", "styles", "class", "type", "appearance", "icon", "shape", "size"], outputs: ["onClick"] }, { type: i3.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i4.GoogleMap, selector: "google-map", inputs: ["height", "width", "center", "zoom", "options", "mapTypeId"], outputs: ["authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { type: i5.CustomerListComponent, selector: "customer-list", inputs: ["customers", "agentConfig"], outputs: ["nextStep", "removeTask", "filterTaskList"] }, { type: i6.KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: ["formConfig", "formData", "isMobileView", "allFormsData"], outputs: ["onClickViewForms", "onClickSaveForm", "onClickApiCall"] }], directives: [{ type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i8.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i9.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { type: i9.TuiDropdownDriverDirective, selector: "[tuiDropdown]" }, { type: i9.TuiDropdownPositionDirective, selector: "[tuiDropdown]:not([tuiDropdownCustomPosition]):not([tuiDropdownSided])" }, { type: i9.TuiDropdownManualDirective, selector: "[tuiDropdown][tuiDropdownManual]", inputs: ["tuiDropdownManual"] }, { type: i9.TuiGroupDirective, selector: "[tuiGroup]:not(ng-container)", inputs: ["orientation", "adaptive", "collapsed", "rounded", "size"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.MapMarker, selector: "map-marker", inputs: ["title", "position", "label", "clickable", "options", "icon", "visible"], outputs: ["animationChanged", "mapClick", "clickableChanged", "cursorChanged", "mapDblclick", "mapDrag", "mapDragend", "draggableChanged", "mapDragstart", "flatChanged", "iconChanged", "mapMousedown", "mapMouseout", "mapMouseover", "mapMouseup", "positionChanged", "mapRightclick", "shapeChanged", "titleChanged", "visibleChanged", "zindexChanged"], exportAs: ["mapMarker"] }, { type: i4.MapDirectionsRenderer, selector: "map-directions-renderer", inputs: ["directions", "options"], outputs: ["directionsChanged"], exportAs: ["mapDirectionsRenderer"] }, { type: i4.MapInfoWindow, selector: "map-info-window", inputs: ["options", "position"], outputs: ["closeclick", "contentChanged", "domready", "positionChanged", "zindexChanged"], exportAs: ["mapInfoWindow"] }], pipes: { "async": i7.AsyncPipe } });
103
+ /** @nocollapse */ KwikIDAgentDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDAgentDashboardComponent, deps: [{ token: i1.MapService }, { token: i2.UserService }, { token: i3.HttpClient }, { token: i0.ElementRef }, { token: TuiDialogService }], target: i0.ɵɵFactoryTarget.Component });
104
+ /** @nocollapse */ KwikIDAgentDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDAgentDashboardComponent, selector: "kwikid-agent-dashboard", inputs: { agentConfig: "agentConfig", taskList: "taskList" }, outputs: { nextStep: "nextStep", addTask: "addTask", removeTask: "removeTask", filterTaskList: "filterTaskList" }, host: { listeners: { "window:resize": "windowResizeWatcher($event)" } }, viewQueries: [{ propertyName: "infoWindow", first: true, predicate: MapInfoWindow, descendants: true }], ngImport: i0, template: "<div class=\"kwikid-agent-dashboard\" *ngIf=\"!loading\">\n <div class=\"wrapper\">\n <div class=\"dashboard-header\">\n <img\n *ngIf=\"userService.agentConfig.clientLogo && userService.agentConfig?.dashboardConfig?.showClientLogo\"\n [src]=\"userService.agentConfig.clientLogo\"\n class=\"dashboard-header-client-logo\"\n />\n <div\n *ngIf=\"!userService.agentConfig.clientLogo || !userService.agentConfig?.dashboardConfig?.showClientLogo\"\n class=\"dashboard-header-client-name\"\n >\n <kwikui-button-icon\n [icon]=\"'tuiIconLink'\"\n appearance=\"mono\"\n size=\"m\"\n ></kwikui-button-icon>\n\n {{ userService.agentConfig.clientName }}\n </div>\n <div>\n <kwikui-button-icon\n *ngIf=\"userService.agentConfig?.dashboardConfig?.allowAddTask\"\n class=\"menu-dropdown-buttons\"\n type=\"button\"\n appearance=\"mono\"\n [icon]=\"'tuiIconAddRowLarge'\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n (onClick)=\"showDialog(template)\"\n ></kwikui-button-icon>\n <span (tuiActiveZoneChange)=\"onActiveZone($event)\">\n <kwikui-button-icon\n [icon]=\"'tuiIconSettingsLarge'\"\n (onClick)=\"onClick()\"\n appearance=\"mono\"\n size=\"m\"\n [tuiDropdown]=\"dropdownContent\"\n [tuiDropdownManual]=\"open\"\n (tuiObscured)=\"onObscured($event)\"\n ></kwikui-button-icon>\n <ng-template #dropdownContent>\n <div class=\"menu-dropdown\">\n <div class=\"menu-dropdown-header\">\n <div class=\"menu-dropdown-header-agent-name\">\n {{ userService.agentConfig.agentName }}\n </div>\n <div class=\"menu-dropdown-header-agent-id\">\n Agent ID: {{ userService.agentConfig.agentId }}\n </div>\n </div>\n <hr />\n <div\n class=\"menu-dropdown-body\"\n tuiGroup\n [collapsed]=\"true\"\n [rounded]=\"false\"\n [orientation]=\"'vertical'\"\n [size]=\"'m'\"\n >\n <kwikui-button\n *ngIf=\"this.agentConfig.dashboardConfig.showMaps\"\n id=\"\"\n label=\"{{\n userService.showMapview ? 'Hide Maps' : 'Show Maps'\n }}\"\n styles=\"\"\n class=\"menu-dropdown-buttons\"\n type=\"button\"\n appearance=\"mono\"\n icon=\"{{\n userService.showMapview ? 'tuiIconEyeOff' : 'tuiIconEye'\n }}\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n styles=\"padding: 0rem !important\"\n (onClick)=\"userService.toggleMapview()\"\n ></kwikui-button>\n <kwikui-button\n id=\"\"\n label=\"Refresh\"\n styles=\"\"\n class=\"menu-dropdown-buttons\"\n type=\"button\"\n appearance=\"mono\"\n [icon]=\"'tuiIconRefreshCw'\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n (onClick)=\"refresh()\"\n ></kwikui-button>\n </div>\n <div class=\"menu-dropdown-footer\">\n <kwikui-button\n id=\"\"\n label=\"Logout\"\n styles=\"\"\n class=\"menu-dropdown-buttons\"\n type=\"button\"\n appearance=\"mono\"\n [icon]=\"'tuiIconLogOut'\"\n iconRight=\"\"\n [shape]=\"null\"\n size=\"m\"\n (onClick)=\"goToNextStep({ stepType: 'LOGOUT' })\"\n ></kwikui-button>\n </div>\n </div>\n </ng-template>\n </span>\n </div>\n </div>\n\n <div class=\"dashboard-body\">\n <div\n *ngIf=\"apiLoaded | async\"\n [class]=\"userService.showMapview ? 'map' : 'map-hidden'\"\n >\n <google-map height=\"100%\" width=\"100%\" [options]=\"this.mapService.map\">\n <map-marker\n #marker=\"mapMarker\"\n *ngFor=\"\n let markerPosition of this.mapService.markers;\n let index = index\n \"\n [position]=\"markerPosition\"\n [label]=\"{ text: String(index), color: '#FFF' }\"\n (mapClick)=\"openInfoWindow(marker)\"\n ></map-marker>\n <map-directions-renderer\n *ngIf=\"\n this.mapService.directionsResults$ | async as directionsResults\n \"\n [directions]=\"directionsResults\"\n [options]=\"this.mapService.directionsRenderOption\"\n ></map-directions-renderer>\n <map-info-window>Info Window content</map-info-window>\n </google-map>\n </div>\n <div\n class=\"task-details\"\n *ngIf=\"\n !userService.isMobileView && userService.showTaskDetails != undefined\n \"\n >\n <customer-details\n [customer]=\"taskList[userService.showTaskDetails]\"\n [agentConfig]=\"agentConfig\"\n (nextStep)=\"goToNextStep($event)\"\n (removeTask)=\"handleOnClickRemoveTask($event)\"\n ></customer-details>\n </div>\n <div class=\"customer-list\">\n <customer-list\n [customers]=\"taskList\"\n [agentConfig]=\"agentConfig\"\n (nextStep)=\"goToNextStep($event)\"\n (removeTask)=\"handleOnClickRemoveTask($event)\"\n (filterTaskList)=\"handleOnFilterTaskList($event)\"\n ></customer-list>\n </div>\n </div>\n </div>\n</div>\n<div class=\"kwikid-agent-dashboard-loader\" *ngIf=\"loading\">\n <span class=\"loader\"></span>\n</div>\n\n<ng-template #template let-observer>\n <div class=\"add-task-header\">\n <h2>Add Task</h2>\n <kwikui-button-icon\n icon=\"tuiIconX\"\n id=\"\"\n label=\"Close\"\n styles=\"\"\n type=\"button\"\n appearance=\"mono\"\n [shape]=\"null\"\n size=\"m\"\n (onClick)=\"observer.complete()\"\n ></kwikui-button-icon>\n </div>\n <kwikid-form-view\n [formConfig]=\"userService.addTaskFormConfig\"\n [allFormsData]=\"allFormsData\"\n [isMobileView]=\"true\"\n (onClickViewForms)=\"this.handleOnClickViewForms($event)\"\n (onClickSaveForm)=\"this.handleOnClickSaveForm($event)\"\n ></kwikid-form-view>\n</ng-template>\n", styles: [".kwikid-agent-dashboard{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;width:100%;height:100%;position:relative}.kwikid-agent-dashboard .wrapper{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:space-between;align-items:stretch}.kwikid-agent-dashboard .wrapper .dashboard-header{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:1rem;column-gap:1rem;padding:.2rem;max-height:max-content;border:1px solid #fafafa;box-shadow:0 2px 10px -6px #000}.kwikid-agent-dashboard .wrapper .dashboard-header .dashboard-header-client-logo{max-height:50px;padding-left:1rem}.kwikid-agent-dashboard .wrapper .dashboard-header .dashboard-header-client-name{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;font-size:1rem;font-weight:600}.kwikid-agent-dashboard .wrapper .dashboard-body{display:flex;flex-direction:column;align-content:center;justify-content:center;align-items:stretch;flex:1;overflow:auto}.kwikid-agent-dashboard .wrapper .dashboard-body .map{width:100%;height:100%;position:relative;overflow:hidden}.kwikid-agent-dashboard .wrapper .dashboard-body .map-hidden{visibility:collapse}.kwikid-agent-dashboard .wrapper .dashboard-body .customer-list{width:100%;height:100%;background-color:#fafafa;overflow:hidden}@media screen and (min-width: 600px){.kwikid-agent-dashboard{display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:center;width:100%;height:100%}.kwikid-agent-dashboard .wrapper{width:100%;height:100%;display:flex;flex-direction:column;align-content:center;justify-content:space-between;align-items:stretch}.kwikid-agent-dashboard .wrapper .dashboard-header{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;grid-column-gap:1rem;column-gap:1rem;padding:.2rem;max-height:max-content;border:1px solid #fafafa;box-shadow:0 2px 10px -6px #000}.kwikid-agent-dashboard .wrapper .dashboard-header .dashboard-header-client-name{display:flex;flex-direction:row;align-content:center;justify-content:space-between;align-items:center;font-size:1rem;font-weight:600}.kwikid-agent-dashboard .wrapper .dashboard-body{display:flex;flex-direction:row-reverse;align-content:center;justify-content:flex-end;align-items:stretch;padding:1.5rem;grid-gap:1.5rem;gap:1.5rem;overflow:auto;background-color:#fafafa}.kwikid-agent-dashboard .wrapper .dashboard-body .map{width:100%;height:100%;position:relative;overflow:hidden;box-shadow:#0000001a 0 4px 6px -1px,#0000000f 0 2px 4px -1px;border-radius:.5rem}.kwikid-agent-dashboard .wrapper .dashboard-body .map-hidden{visibility:collapse}.kwikid-agent-dashboard .wrapper .dashboard-body .task-details{width:100%;height:100%;position:relative;overflow:hidden;box-shadow:#0000001a 0 4px 6px -1px,#0000000f 0 2px 4px -1px;border-radius:.5rem}.kwikid-agent-dashboard .wrapper .dashboard-body .customer-list{min-width:300px;max-width:400px;width:100%;height:100%;overflow:hidden;box-shadow:#0000001a 0 4px 6px -1px,#0000000f 0 2px 4px -1px;border-radius:.5rem}}.menu{position:absolute;transition:\"0.15s linear 0s\"}.kwikid-agent-dashboard-loader{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.75);display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;z-index:100}.kwikid-agent-dashboard-loader .loader{width:48px;height:48px;border-radius:50%;display:inline-block;position:relative;border:3px solid;border-color:#fff #fff transparent;box-sizing:border-box;animation:rotation 1s linear infinite}.kwikid-agent-dashboard-loader .loader:after{content:\"\";box-sizing:border-box;position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;border:3px solid;border-color:transparent var(--tui-primary) var(--tui-primary);width:24px;height:24px;border-radius:50%;animation:rotationBack .5s linear infinite;transform-origin:center center}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotationBack{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}.kwikid-agent-dashboard-loader .t-loader{display:none!important}.add-task-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:.5rem 0 1rem 1rem}:host{width:100%;height:100%}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}.menu-dropdown{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch;grid-gap:.5rem;gap:.5rem;padding:1rem 1.5rem}.menu-dropdown .menu-dropdown-header{display:flex;flex-direction:column;align-content:flex-start;justify-content:space-between;align-items:flex-start;grid-gap:1rem;gap:1rem}.menu-dropdown .menu-dropdown-header .menu-dropdown-header-agent-name{font-size:1.2rem;font-weight:600}.menu-dropdown .menu-dropdown-header .menu-dropdown-header-agent-id{font-size:.8rem;font-weight:600}.menu-dropdown .menu-dropdown-buttons ::ng-deep .t-wrapper{padding:0!important}\n"], components: [{ type: i4.KwikUIButtonIconComponent, selector: "kwikui-button-icon", inputs: ["disabled", "id", "showLoader", "styles", "class", "type", "appearance", "icon", "shape", "size"], outputs: ["onClick"] }, { type: i4.KwikUIButtonComponent, selector: "kwikui-button", inputs: ["disabled", "id", "label", "showLoader", "styles", "class", "type", "appearance", "icon", "iconRight", "shape", "size"], outputs: ["onClick"] }, { type: i5.GoogleMap, selector: "google-map", inputs: ["height", "width", "center", "zoom", "options", "mapTypeId"], outputs: ["authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { type: i6.CustomerDetailsComponent, selector: "customer-details", inputs: ["customer", "agentConfig"], outputs: ["nextStep", "removeTask"] }, { type: i7.CustomerListComponent, selector: "customer-list", inputs: ["customers", "agentConfig"], outputs: ["nextStep", "removeTask", "filterTaskList"] }, { type: i8.KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: ["formConfig", "formData", "isMobileView", "allFormsData", "userConfig", "popupFormCallback"], outputs: ["onClickGoBack", "onClickViewForms", "onClickSaveForm", "onClickApiCall", "onActionShowPopupForm"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.TuiActiveZoneDirective, selector: "[tuiActiveZone]:not(ng-container), [tuiActiveZoneChange]:not(ng-container), [tuiActiveZoneParent]:not(ng-container)", inputs: ["tuiActiveZoneParent"], outputs: ["tuiActiveZoneChange"], exportAs: ["tuiActiveZone"] }, { type: i11.TuiDropdownDirective, selector: "[tuiDropdown]:not(ng-container)", inputs: ["tuiDropdown"], exportAs: ["tuiDropdown"] }, { type: i11.TuiDropdownDriverDirective, selector: "[tuiDropdown]" }, { type: i11.TuiDropdownPositionDirective, selector: "[tuiDropdown]:not([tuiDropdownCustomPosition]):not([tuiDropdownSided])" }, { type: i11.TuiDropdownManualDirective, selector: "[tuiDropdown][tuiDropdownManual]", inputs: ["tuiDropdownManual"] }, { type: i11.TuiGroupDirective, selector: "[tuiGroup]:not(ng-container)", inputs: ["orientation", "adaptive", "collapsed", "rounded", "size"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.MapMarker, selector: "map-marker", inputs: ["title", "position", "label", "clickable", "options", "icon", "visible"], outputs: ["animationChanged", "mapClick", "clickableChanged", "cursorChanged", "mapDblclick", "mapDrag", "mapDragend", "draggableChanged", "mapDragstart", "flatChanged", "iconChanged", "mapMousedown", "mapMouseout", "mapMouseover", "mapMouseup", "positionChanged", "mapRightclick", "shapeChanged", "titleChanged", "visibleChanged", "zindexChanged"], exportAs: ["mapMarker"] }, { type: i5.MapDirectionsRenderer, selector: "map-directions-renderer", inputs: ["directions", "options"], outputs: ["directionsChanged"], exportAs: ["mapDirectionsRenderer"] }, { type: i5.MapInfoWindow, selector: "map-info-window", inputs: ["options", "position"], outputs: ["closeclick", "contentChanged", "domready", "positionChanged", "zindexChanged"], exportAs: ["mapInfoWindow"] }], pipes: { "async": i9.AsyncPipe } });
522
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDAgentDashboardComponent, decorators: [{
523
106
  type: Component,
524
107
  args: [{
@@ -526,10 +109,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
526
109
  templateUrl: './kwikid-agent-dashboard.component.html',
527
110
  styleUrls: ['./kwikid-agent-dashboard.component.scss']
528
111
  }]
529
- }], ctorParameters: function () { return [{ type: i1.MapService }, { type: i2.HttpClient }, { type: i0.ElementRef }, { type: i9.TuiDialogService, decorators: [{
112
+ }], ctorParameters: function () { return [{ type: i1.MapService }, { type: i2.UserService }, { type: i3.HttpClient }, { type: i0.ElementRef }, { type: i11.TuiDialogService, decorators: [{
530
113
  type: Inject,
531
114
  args: [TuiDialogService]
532
- }] }]; }, propDecorators: { agentConfig: [{
115
+ }] }]; }, propDecorators: { windowResizeWatcher: [{
116
+ type: HostListener,
117
+ args: ['window:resize', ['$event']]
118
+ }], agentConfig: [{
533
119
  type: Input
534
120
  }], taskList: [{
535
121
  type: Input
@@ -545,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
545
131
  type: ViewChild,
546
132
  args: [MapInfoWindow, { static: false }]
547
133
  }] } });
548
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3dpa2lkLWFnZW50LWRhc2hib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIva3dpa2lkLWFnZW50LWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIva3dpa2lkLWFnZW50LWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFFWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBYSxNQUFNLHNCQUFzQixDQUFDO0FBRWhFLE9BQU8sRUFBb0IsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7O0FBUWpELE1BQU0sT0FBTyw2QkFBNkI7SUFpZHhDLFlBQ1MsVUFBc0IsRUFDdEIsVUFBc0IsRUFDckIsV0FBdUIsRUFDWSxhQUErQjtRQUhuRSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDWSxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFuZDVFLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBR3RCLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFHMUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHOUIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHN0IsZUFBVSxHQUFHLElB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QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsc0JBQXNCLENBQUMsQ0FBQyxJQUFHLENBQUM7OzhJQXJpQmpCLDZCQUE2QixnR0FxZDlCLGdCQUFnQjtrSUFyZGYsNkJBQTZCLDJSQStjN0IsYUFBYSxnREN4ZTFCLDJ5TEEwS0E7NEZEakphLDZCQUE2QjtrQkFMekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxXQUFXLEVBQUUseUNBQXlDO29CQUN0RCxTQUFTLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQztpQkFDdkQ7OzBCQXNkSSxNQUFNOzJCQUFDLGdCQUFnQjs0Q0FuZDFCLFdBQVc7c0JBRFYsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxNQUFNO2dCQUlQLE9BQU87c0JBRE4sTUFBTTtnQkFJUCxVQUFVO3NCQURULE1BQU07Z0JBSVAsY0FBYztzQkFEYixNQUFNO2dCQStic0MsVUFBVTtzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXBJbmZvV2luZG93LCBNYXBNYXJrZXIgfSBmcm9tICdAYW5ndWxhci9nb29nbGUtbWFwcyc7XG5pbXBvcnQgeyBUdWlTaGVldE9wdGlvbnMgfSBmcm9tICdAdGFpZ2EtdWkvYWRkb24tbW9iaWxlJztcbmltcG9ydCB7IFR1aURpYWxvZ0NvbnRleHQsIFR1aURpYWxvZ1NlcnZpY2UgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBQb2x5bW9ycGhldXNDb250ZW50IH0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNYXBTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9tYXAuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2t3aWtpZC1hZ2VudC1kYXNoYm9hcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4va3dpa2lkLWFnZW50LWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2t3aWtpZC1hZ2VudC1kYXNoYm9hcmQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBLd2lrSURBZ2VudERhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGFnZW50Q29uZmlnOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICB0YXNrTGlzdDogQXJyYXk8YW55PiA9IFtdO1xuXG4gIEBPdXRwdXQoKVxuICBuZXh0U3RlcCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgYWRkVGFzayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcmVtb3ZlVGFzayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgZmlsdGVyVGFza0xpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XG5cbiAgYXBpTG9hZGVkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHNob3dNYXB2aWV3ID0gdHJ1ZTtcblxuICBpc01vYmlsZVZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBsaXN0T3BlbiA9IHRydWU7XG5cbiAgcmVhZG9ubHkgb3B0aW9uczogUGFydGlhbDxUdWlTaGVldE9wdGlvbnM+ID0ge1xuICAgIHN0b3BzOiBbJ2NhbGMoNXJlbSArIDc0dncpJywgJ2NhbGMoOXJlbSArIDc0dncpJ11cbiAgfTtcblxuICBhZGRUYXNrRm9ybUNvbmZpZyA9IHtcbiAgICBrZXk6ICdBRERfVEFTSycsXG4gICAgdGl0bGU6ICdBZGQgVGFzaycsXG4gICAgZmllbGRzOiBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ25hbWUnLFxuICAgICAgICBsYWJlbDogJ0N1c3RvbWVyIE5hbWUnLFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIG1lc3NhZ2VzOiBbXSxcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBpc19mb3VuZDogZmFsc2UsXG4gICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICBzb3VyY2VzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdPQkpFQ1QnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBvYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnQUxMX0ZPUk1TX0RBVEEnLFxuICAgICAgICAgICAgICAgICAgICBwYXRoOiAnJC5BRERfVEFTSy5uYW1lJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IHtcbiAgICAgICAgICAgICAgICAgIGlzX3ZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJzOiBbJ09OX0lOSVQnXSxcbiAgICAgICAgICAgICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogJzEnLFxuICAgICAgICAgICAgICAgICAgICAgIGtleTogJ1ZBTFVFX0NIRUNLJyxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnT0JKRUNUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJ0FMTF9GT1JNU19EQVRBJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJyQuQUREX1RBU0submFtZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJ0lTX05PVF9FTVBUWSdcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogJzEnLFxuICAgICAgICAgICAgICAgICAgICAgIGtleTogJ1NFVF9GSUVMRF9ERUZBVUxUX1ZBTFVFJyxcbiAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb246ICcxJyxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRLZXk6ICduYW1lJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJ09CSkVDVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdBTExfRk9STVNfREFUQScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICckLkFERF9UQVNLLm5hbWUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnUGxlYXNlIGVudGVyIHRoZSBDdXN0b21lciBOYW1lJyxcbiAgICAgICAgICByZWFkT25seTogZmFsc2UsXG4gICAgICAgICAgY2FzZTogJ2RlZmF1bHQnXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6ICd0ZXh0J1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAncGhvbmUnLFxuICAgICAgICBsYWJlbDogJ1Bob25lIE51bWJlcicsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZXM6IFtdLFxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIHNvdXJjZXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ09CSkVDVCcsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIG9iamVjdDoge1xuICAgICAgICAgICAgICAgICAgICBrZXk6ICdBTExfRk9STVNfREFUQScsXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6ICckLkFERF9UQVNLLnBob25lJ1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb246IHtcbiAgICAgICAgICAgICAgICAgIGlzX3ZhbGlkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXJzOiBbJ09OX0lOSVQnXSxcbiAgICAgICAgICAgICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogJzEnLFxuICAgICAgICAgICAgICAgICAgICAgIGtleTogJ1ZBTFVFX0NIRUNLJyxcbiAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnT0JKRUNUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJ0FMTF9GT1JNU19EQVRBJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJyQuQUREX1RBU0sucGhvbmUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdJU19OT1RfRU1QVFknXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdTRVRfRklFTERfREVGQVVMVF9WQUxVRScsXG4gICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAnMScsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkS2V5OiAncGhvbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnT0JKRUNUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJ0FMTF9GT1JNU19EQVRBJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJyQuQUREX1RBU0sucGhvbmUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgIGNvdW50cnlDb2RlOiAnKzkxJyxcbiAgICAgICAgICByZW1vdmVDb3VudHJ5Q29kZUZyb21WYWx1ZTogdHJ1ZSxcbiAgICAgICAgICBwaG9uZU1hc2tBZnRlckNvdW50cnlDb2RlOiAnIyMjIyMjIyMjIycsXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICdQbGVhc2UgZW50ZXIgeW91ciBNb2JpbGUgTnVtYmVyJyxcbiAgICAgICAgICByZWFkT25seTogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogJ3Bob25lJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnYWRkcmVzcycsXG4gICAgICAgIGxhYmVsOiAnQWRkcmVzcycsXG4gICAgICAgIGRpc2FibGVkOiBmYWxzZSxcbiAgICAgICAgbWVzc2FnZXM6IFtdLFxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIGlzX2ZvdW5kOiBmYWxzZSxcbiAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgIHNvdXJjZXM6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ09CSkVDVCcsXG4gICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgIG9iamVjdDoge1xuICAgICAgICAgICAgICAgICAgICBrZXk6ICdBTExfRk9STVNfREFUQScsXG4gICAgICAgICAgICAgICAgICAgIHBhdGg6ICckLkFERF9UQVNLLmFkZHJlc3MnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbjoge1xuICAgICAgICAgICAgICAgICAgaXNfdmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgdHJpZ2dlcnM6IFsnT05fSU5JVCddLFxuICAgICAgICAgICAgICAgICAgcnVsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiAnMScsXG4gICAgICAgICAgICAgICAgICAgICAga2V5OiAnVkFMVUVfQ0hFQ0snLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdPQkpFQ1QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnQUxMX0ZPUk1TX0RBVEEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnJC5BRERfVEFTSy5hZGRyZXNzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnSVNfTk9UX0VNUFRZJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiAnMScsXG4gICAgICAgICAgICAgICAgICAgICAga2V5OiAnU0VUX0ZJRUxEX0RFRkFVTFRfVkFMVUUnLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogJzEnLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEtleTogJ2FkZHJlc3MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnT0JKRUNUJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJ0FMTF9GT1JNU19EQVRBJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogJyQuQUREX1RBU0suYWRkcmVzcydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICdQbGVhc2UgZW50ZXIgdGhlIEFkZHJlc3MnLFxuICAgICAgICAgIHJlYWRPbmx5OiBmYWxzZSxcbiAgICAgICAgICBjYXNlOiAnZGVmYXVsdCdcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogJ3RleHQnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdjaXR5JyxcbiAgICAgICAgbGFiZWw6ICdDaXR5JyxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBtZXNzYWdlczogW10sXG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgaXNfZm91bmQ6IGZhbHNlLFxuICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgc291cmNlczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnT0JKRUNUJyxcbiAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgIGtleTogJ0FMTF9GT1JNU19EQVRBJyxcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogJyQuQUREX1RBU0suY2l0eSdcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICBpc192YWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyczogWydPTl9JTklUJ10sXG4gICAgICAgICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdWQUxVRV9DSEVDSycsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJ09CSkVDVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdBTExfRk9STVNfREFUQScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICckLkFERF9UQVNLLmNpdHknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdJU19OT1RfRU1QVFknXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdTRVRfRklFTERfREVGQVVMVF9WQUxVRScsXG4gICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAnMScsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkS2V5OiAnY2l0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdPQkpFQ1QnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnQUxMX0ZPUk1TX0RBVEEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnJC5BRERfVEFTSy5jaXR5J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJ1BsZWFzZSBlbnRlciB0aGUgQ2l0eScsXG4gICAgICAgICAgcmVhZE9ubHk6IGZhbHNlLFxuICAgICAgICAgIGNhc2U6ICdkZWZhdWx0J1xuICAgICAgICB9LFxuICAgICAgICB0eXBlOiAndGV4dCdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2xvY2F0aW9uJyxcbiAgICAgICAgbGFiZWw6ICdMb2NhdGlvbiBVUkwnLFxuICAgICAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIG1lc3NhZ2VzOiBbXSxcbiAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICBpc19mb3VuZDogZmFsc2UsXG4gICAgICAgICAgICB2YWx1ZTogJycsXG4gICAgICAgICAgICBzb3VyY2VzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBrZXk6ICdPQkpFQ1QnLFxuICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICBvYmplY3Q6IHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiAnQUxMX0ZPUk1TX0RBVEEnLFxuICAgICAgICAgICAgICAgICAgICBwYXRoOiAnJC5BRERfVEFTSy5sb2NhdGlvbidcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICBpc192YWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyczogWydPTl9JTklUJ10sXG4gICAgICAgICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6ICcxJyxcbiAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdWQUxVRV9DSEVDSycsXG4gICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJ09CSkVDVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdBTExfRk9STVNfREFUQScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICckLkFERF9UQVNLLmxvY2F0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiAnSVNfTk9UX0VNUFRZJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiAnMScsXG4gICAgICAgICAgICAgICAgICAgICAga2V5OiAnU0VUX0ZJRUxEX0RFRkFVTFRfVkFMVUUnLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogJzEnLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZEtleTogJ2xvY2F0aW9uJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTogJ09CSkVDVCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6ICdBTExfRk9STVNfREFUQScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6ICckLkFERF9UQVNLLmxvY2F0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJ1BsZWFzZSBlbnRlciB0aGUgTG9jYXRpb24gVVJMJyxcbiAgICAgICAgICByZWFkT25seTogZmFsc2UsXG4gICAgICAgICAgY2FzZTogJ2RlZmF1bHQnXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6ICd0ZXh0J1xuICAgICAgfVxuICAgIF0sXG4gICAgcHJvcGVydGllczoge1xuICAgICAgaGVhZGVyOiB7XG4gICAgICAgIHRpdGxlOiB7XG4gICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIGxhYmVsOiAnQWRkIFRhc2snXG4gICAgICAgIH0sXG4gICAgICAgIHN0ZXBzOiB7XG4gICAgICAgICAgaGlkZGVuOiB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBmb290ZXI6IHtcbiAgICAgICAgdmlld0Zvcm1zQnV0dG9uOiB7XG4gICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIGxhYmVsOiAnVmlldyBGb3JtcydcbiAgICAgICAgfSxcbiAgICAgICAgc2F2ZUJ1dHRvbjoge1xuICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgbGFiZWw6ICdTdWJtaXQnXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgQFZpZXdDaGlsZChNYXBJbmZvV2luZG93LCB7IHN0YXRpYzogZmFsc2UgfSkgaW5mb1dpbmRvdzogTWFwSW5mb1dpbmRvdztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbWFwU2VydmljZTogTWFwU2VydmljZSxcbiAgICBwdWJsaWMgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoVHVpRGlhbG9nU2VydmljZSkgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBUdWlEaWFsb2dTZXJ2aWNlXG4gICkge1xuICAgICAgdGhpcy5hcGlMb2FkZWQgPSBodHRwQ2xpZW50XG4gICAgICAuanNvbnAoXG4gICAgICAgICdodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvanM/a2V5PUFJemFTeUE2M0pZMGphNlpHSVI3OTZ2SnFaQVJjMGMyajhWZ3BpayZ2PTMuZXhwJmxpYnJhcmllcz1nZW9tZXRyeSxkcmF3aW5nLHBsYWNlcycsXG4gICAgICAgICdjYWxsYmFjaydcbiAgICAgIClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4gdHJ1ZSksXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoZmFsc2UpKVxuICAgICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2hvd01hcHZpZXcgPSB0aGlzLmFnZW50Q29uZmlnPy5kYXNoYm9hcmRDb25maWc/LnNob3dNYXBzID8/IGZhbHNlO1xuICAgIHRoaXMuYWRkVGFza0Zvcm1Db25maWcgPVxuICAgICAgdGhpcy5hZ2VudENvbmZpZz8uZGFzaGJvYXJkQ29uZmlnPy5hZGRUYXNrRm9ybUNvbmZpZyA/P1xuICAgICAgdGhpcy5hZGRUYXNrRm9ybUNvbmZpZztcblxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgZ29Ub05leHRTdGVwKGUpIHtcbiAgICB0aGlzLm5leHRTdGVwLmVtaXQoZSk7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrQWRkVGFzayh0YXNrKSB7XG4gICAgdGhpcy5hZGRUYXNrLmVtaXQodGFzayk7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrUmVtb3ZlVGFzayh0YXNrKSB7XG4gICAgdGhpcy5yZW1vdmVUYXNrLmVtaXQodGFzayk7XG4gIH1cblxuICBoYW5kbGVPbkZpbHRlclRhc2tMaXN0KGZpbHRlcikge1xuICAgIHRoaXMuZmlsdGVyVGFza0xpc3QuZW1pdChmaWx0ZXIpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gIH1cblxuICB0b2dnbGVNYXB2aWV3KCkge1xuICAgIHRoaXMuc2hvd01hcHZpZXcgPSAhdGhpcy5zaG93TWFwdmlldztcbiAgfVxuXG4gIG9wZW4gPSBmYWxzZTtcblxuICBvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gIH1cblxuICBhbGxGb3Jtc0RhdGEgPSB7fTtcblxuICBTdHJpbmcgPSBTdHJpbmc7XG5cbiAgb25PYnNjdXJlZChvYnNjdXJlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChvYnNjdXJlZCkge1xuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9IGFjdGl2ZSAmJiB0aGlzLm9wZW47XG4gIH1cblxuICBzaG93RGlhbG9nKGNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpRGlhbG9nQ29udGV4dD4pOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgIC5vcGVuKGNvbnRlbnQsIHsgY2xvc2VhYmxlOiBmYWxzZSwgZGlzbWlzc2libGU6IGZhbHNlIH0pXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvcGVuSW5mb1dpbmRvdyhtYXJrZXI6IE1hcE1hcmtlcikge1xuICAgIHRoaXMuaW5mb1dpbmRvdy5vcGVuKG1hcmtlcik7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrU2F2ZUZvcm0oZSkge1xuICAgIHRoaXMuaGFuZGxlT25DbGlja0FkZFRhc2soZS5kYXRhKTtcbiAgfVxuXG4gIGhhbmRsZU9uQ2xpY2tWaWV3Rm9ybXMoZSkge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJrd2lraWQtYWdlbnQtZGFzaGJvYXJkXCIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmQtaGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLWhlYWRlci1jbGllbnQtbmFtZVwiPlxuICAgICAgICA8a3dpa3VpLWJ1dHRvbi1pY29uXG4gICAgICAgICAgW2ljb25dPVwiJ3R1aUljb25MaW5rJ1wiXG4gICAgICAgICAgYXBwZWFyYW5jZT1cIm1vbm9cIlxuICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgPjwva3dpa3VpLWJ1dHRvbi1pY29uPlxuXG4gICAgICAgIHt7IGFnZW50Q29uZmlnLmNsaWVudE5hbWUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gKHR1aUFjdGl2ZVpvbmVDaGFuZ2UpPVwib25BY3RpdmVab25lKCRldmVudClcIj5cbiAgICAgICAgPGt3aWt1aS1idXR0b24taWNvblxuICAgICAgICAgIFtpY29uXT1cIid0dWlJY29uU2V0dGluZ3NMYXJnZSdcIlxuICAgICAgICAgIChvbkNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAgICAgYXBwZWFyYW5jZT1cIm1vbm9cIlxuICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd25Db250ZW50XCJcbiAgICAgICAgICBbdHVpRHJvcGRvd25NYW51YWxdPVwib3BlblwiXG4gICAgICAgICAgKHR1aU9ic2N1cmVkKT1cIm9uT2JzY3VyZWQoJGV2ZW50KVwiXG4gICAgICAgID48L2t3aWt1aS1idXR0b24taWNvbj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkcm9wZG93bkNvbnRlbnQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtZHJvcGRvd25cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWRyb3Bkb3duLWhlYWRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1kcm9wZG93bi1oZWFkZXItYWdlbnQtbmFtZVwiPlxuICAgICAgICAgICAgICAgIHt7IGFnZW50Q29uZmlnLmFnZW50TmFtZSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtZHJvcGRvd24taGVhZGVyLWFnZW50LWlkXCI+XG4gICAgICAgICAgICAgICAgQWdlbnQgSUQ6IHt7IGFnZW50Q29uZmlnLmFnZW50SWQgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtZHJvcGRvd24tYm9keVwiXG4gICAgICAgICAgICAgIHR1aUdyb3VwXG4gICAgICAgICAgICAgIFtjb2xsYXBzZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtyb3VuZGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW29yaWVudGF0aW9uXT1cIid2ZXJ0aWNhbCdcIlxuICAgICAgICAgICAgICBbc2l6ZV09XCInbSdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5hZ2VudENvbmZpZy5kYXNoYm9hcmRDb25maWcuc2hvd01hcHNcIlxuICAgICAgICAgICAgICAgIGlkPVwiXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cInt7IHNob3dNYXB2aWV3ID8gJ0hpZGUgTWFwcycgOiAnU2hvdyBNYXBzJyB9fVwiXG4gICAgICAgICAgICAgICAgc3R5bGVzPVwiXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtZHJvcGRvd24tYnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cIm1vbm9cIlxuICAgICAgICAgICAgICAgIGljb249XCJ7eyBzaG93TWFwdmlldyA/ICd0dWlJY29uRXllT2ZmJyA6ICd0dWlJY29uRXllJyB9fVwiXG4gICAgICAgICAgICAgICAgaWNvblJpZ2h0PVwiXCJcbiAgICAgICAgICAgICAgICBbc2hhcGVdPVwibnVsbFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgIHN0eWxlcz1cInBhZGRpbmc6IDByZW0gIWltcG9ydGFudFwiXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwidG9nZ2xlTWFwdmlldygpXCJcbiAgICAgICAgICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPGt3aWt1aS1idXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cInRoaXMuYWdlbnRDb25maWc/LmRhc2hib2FyZENvbmZpZz8uYWxsb3dBZGRUYXNrXCJcbiAgICAgICAgICAgICAgICBpZD1cIlwiXG4gICAgICAgICAgICAgICAgbGFiZWw9XCJBZGQgVGFza1wiXG4gICAgICAgICAgICAgICAgc3R5bGVzPVwiXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtZHJvcGRvd24tYnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cIm1vbm9cIlxuICAgICAgICAgICAgICAgIFtpY29uXT1cIid0dWlJY29uQWRkUm93TGFyZ2UnXCJcbiAgICAgICAgICAgICAgICBpY29uUmlnaHQ9XCJcIlxuICAgICAgICAgICAgICAgIFtzaGFwZV09XCJudWxsXCJcbiAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwic2hvd0RpYWxvZyh0ZW1wbGF0ZSlcIlxuICAgICAgICAgICAgICA+PC9rd2lrdWktYnV0dG9uPlxuICAgICAgICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIlJlZnJlc2hcIlxuICAgICAgICAgICAgICAgIHN0eWxlcz1cIlwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtZW51LWRyb3Bkb3duLWJ1dHRvbnNcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJtb25vXCJcbiAgICAgICAgICAgICAgICBbaWNvbl09XCIndHVpSWNvblJlZnJlc2hDdydcIlxuICAgICAgICAgICAgICAgIGljb25SaWdodD1cIlwiXG4gICAgICAgICAgICAgICAgW3NoYXBlXT1cIm51bGxcIlxuICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJyZWZyZXNoKClcIlxuICAgICAgICAgICAgICA+PC9rd2lrdWktYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWRyb3Bkb3duLWZvb3RlclwiPlxuICAgICAgICAgICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiXCJcbiAgICAgICAgICAgICAgICBsYWJlbD1cIkxvZ291dFwiXG4gICAgICAgICAgICAgICAgc3R5bGVzPVwiXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtZHJvcGRvd24tYnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cIm1vbm9cIlxuICAgICAgICAgICAgICAgIFtpY29uXT1cIid0dWlJY29uTG9nT3V0J1wiXG4gICAgICAgICAgICAgICAgaWNvblJpZ2h0PVwiXCJcbiAgICAgICAgICAgICAgICBbc2hhcGVdPVwibnVsbFwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImdvVG9OZXh0U3RlcCh7IHN0ZXBUeXBlOiAnTE9HT1VUJyB9KVwiXG4gICAgICAgICAgICAgID48L2t3aWt1aS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmQtYm9keVwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImFwaUxvYWRlZCB8IGFzeW5jXCJcbiAgICAgICAgW2NsYXNzXT1cInNob3dNYXB2aWV3ID8gJ21hcCcgOiAnbWFwLWhpZGRlbidcIlxuICAgICAgPlxuICAgICAgICA8Z29vZ2xlLW1hcCBoZWlnaHQ9XCIxMDAlXCIgd2lkdGg9XCIxMDAlXCIgW29wdGlvbnNdPVwidGhpcy5tYXBTZXJ2aWNlLm1hcFwiPlxuICAgICAgICAgIDxtYXAtbWFya2VyXG4gICAgICAgICAgICAjbWFya2VyPVwibWFwTWFya2VyXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICBsZXQgbWFya2VyUG9zaXRpb24gb2YgdGhpcy5tYXBTZXJ2aWNlLm1hcmtlcnM7XG4gICAgICAgICAgICAgIGxldCBpbmRleCA9IGluZGV4XG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3Bvc2l0aW9uXT1cIm1hcmtlclBvc2l0aW9uXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJ7IHRleHQ6IFN0cmluZyhpbmRleCksIGNvbG9yOiAnI0ZGRicgfVwiXG4gICAgICAgICAgICAobWFwQ2xpY2spPVwib3BlbkluZm9XaW5kb3cobWFya2VyKVwiXG4gICAgICAgICAgPjwvbWFwLW1hcmtlcj5cbiAgICAgICAgICA8bWFwLWRpcmVjdGlvbnMtcmVuZGVyZXJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIHRoaXMubWFwU2VydmljZS5kaXJlY3Rpb25zUmVzdWx0cyQgfCBhc3luYyBhcyBkaXJlY3Rpb25zUmVzdWx0c1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtkaXJlY3Rpb25zXT1cImRpcmVjdGlvbnNSZXN1bHRzXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cInRoaXMubWFwU2VydmljZS5kaXJlY3Rpb25zUmVuZGVyT3B0aW9uXCJcbiAgICAgICAgICA+PC9tYXAtZGlyZWN0aW9ucy1yZW5kZXJlcj5cbiAgICAgICAgICA8bWFwLWluZm8td2luZG93PkluZm8gV2luZG93IGNvbnRlbnQ8L21hcC1pbmZvLXdpbmRvdz5cbiAgICAgICAgPC9nb29nbGUtbWFwPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItbGlzdFwiPlxuICAgICAgICA8Y3VzdG9tZXItbGlzdFxuICAgICAgICAgIFtjdXN0b21lcnNdPVwidGFza0xpc3RcIlxuICAgICAgICAgIFthZ2VudENvbmZpZ109XCJhZ2VudENvbmZpZ1wiXG4gICAgICAgICAgKG5leHRTdGVwKT1cImdvVG9OZXh0U3RlcCgkZXZlbnQpXCJcbiAgICAgICAgICAocmVtb3ZlVGFzayk9XCJoYW5kbGVPbkNsaWNrUmVtb3ZlVGFzaygkZXZlbnQpXCJcbiAgICAgICAgICAoZmlsdGVyVGFza0xpc3QpPVwiaGFuZGxlT25GaWx0ZXJUYXNrTGlzdCgkZXZlbnQpXCJcbiAgICAgICAgPjwvY3VzdG9tZXItbGlzdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImt3aWtpZC1hZ2VudC1kYXNoYm9hcmQtbG9hZGVyXCIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gIDxzcGFuIGNsYXNzPVwibG9hZGVyXCI+PC9zcGFuPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LW9ic2VydmVyPlxuICA8ZGl2IGNsYXNzPVwiYWRkLXRhc2staGVhZGVyXCI+XG4gICAgPGgyPkFkZCBUYXNrPC9oMj5cbiAgICA8a3dpa3VpLWJ1dHRvbi1pY29uXG4gICAgICBpY29uPVwidHVpSWNvblhcIlxuICAgICAgaWQ9XCJcIlxuICAgICAgbGFiZWw9XCJDbG9zZVwiXG4gICAgICBzdHlsZXM9XCJcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBhcHBlYXJhbmNlPVwibW9ub1wiXG4gICAgICBbc2hhcGVdPVwibnVsbFwiXG4gICAgICBzaXplPVwibVwiXG4gICAgICAob25DbGljayk9XCJvYnNlcnZlci5jb21wbGV0ZSgpXCJcbiAgICA+PC9rd2lrdWktYnV0dG9uLWljb24+XG4gIDwvZGl2PlxuICA8a3dpa2lkLWZvcm0tdmlld1xuICAgIFtmb3JtQ29uZmlnXT1cImFkZFRhc2tGb3JtQ29uZmlnXCJcbiAgICBbYWxsRm9ybXNEYXRhXT1cImFsbEZvcm1zRGF0YVwiXG4gICAgW2lzTW9iaWxlVmlld109XCJ0cnVlXCJcbiAgICAob25DbGlja1ZpZXdGb3Jtcyk9XCJ0aGlzLmhhbmRsZU9uQ2xpY2tWaWV3Rm9ybXMoJGV2ZW50KVwiXG4gICAgKG9uQ2xpY2tTYXZlRm9ybSk9XCJ0aGlzLmhhbmRsZU9uQ2xpY2tTYXZlRm9ybSgkZXZlbnQpXCJcbiAgPjwva3dpa2lkLWZvcm0tdmlldz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3dpa2lkLWFnZW50LWRhc2hib2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIva3dpa2lkLWFnZW50LWRhc2hib2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtYWdlbnQtZGFzaGJvYXJkL3NyYy9saWIva3dpa2lkLWFnZW50LWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQWEsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRSxPQUFPLEVBQW9CLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEUsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBU2pELE1BQU0sT0FBTyw2QkFBNkI7SUEwQ3hDLFlBQ1MsVUFBc0IsRUFDdEIsV0FBd0IsRUFDeEIsVUFBc0IsRUFDckIsV0FBdUIsRUFDWSxhQUErQjtRQUpuRSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDWSxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFoQzVFLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBR3RCLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFHMUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFH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QGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hcEluZm9XaW5kb3csIE1hcE1hcmtlciB9IGZyb20gJ0Bhbmd1bGFyL2dvb2dsZS1tYXBzJztcbmltcG9ydCB7IFR1aVNoZWV0T3B0aW9ucyB9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1tb2JpbGUnO1xuaW1wb3J0IHsgVHVpRGlhbG9nQ29udGV4dCwgVHVpRGlhbG9nU2VydmljZSB9IGZyb20gJ0B0YWlnYS11aS9jb3JlJztcbmltcG9ydCB7IFBvbHltb3JwaGV1c0NvbnRlbnQgfSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE1hcFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL21hcC5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdrd2lraWQtYWdlbnQtZGFzaGJvYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2t3aWtpZC1hZ2VudC1kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9rd2lraWQtYWdlbnQtZGFzaGJvYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgS3dpa0lEQWdlbnREYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgd2luZG93UmVzaXplV2F0Y2hlcigpIHtcbiAgICBpZiAodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIDwgNjAwKSB7XG4gICAgICB0aGlzLmlzTW9iaWxlVmlldyA9IHRydWU7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLmlzTW9iaWxlVmlldyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNNb2JpbGVWaWV3ID0gZmFsc2U7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLmlzTW9iaWxlVmlldyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGlzTW9iaWxlVmlldztcblxuICBASW5wdXQoKVxuICBhZ2VudENvbmZpZzogYW55ID0ge307XG5cbiAgQElucHV0KClcbiAgdGFza0xpc3Q6IEFycmF5PGFueT4gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgbmV4dFN0ZXAgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIGFkZFRhc2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlbW92ZVRhc2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIGZpbHRlclRhc2tMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGFwaUxvYWRlZDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICByZWFkb25seSBvcHRpb25zOiBQYXJ0aWFsPFR1aVNoZWV0T3B0aW9ucz4gPSB7XG4gICAgc3RvcHM6IFsnY2FsYyg1cmVtICsgNzR2dyknLCAnY2FsYyg5cmVtICsgNzR2dyknXVxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoTWFwSW5mb1dpbmRvdywgeyBzdGF0aWM6IGZhbHNlIH0pIGluZm9XaW5kb3c6IE1hcEluZm9XaW5kb3c7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1hcFNlcnZpY2U6IE1hcFNlcnZpY2UsXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwdWJsaWMgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoVHVpRGlhbG9nU2VydmljZSkgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBUdWlEaWFsb2dTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYXBpTG9hZGVkID0gaHR0cENsaWVudFxuICAgICAgLmpzb25wKFxuICAgICAgICAnaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL2pzP2tleT1BSXphU3lBNjNKWTBqYTZaR0lSNzk2dkpxWkFSYzBjMmo4VmdwaWsmdj0zLmV4cCZsaWJyYXJpZXM9Z2VvbWV0cnksZHJhd2luZyxwbGFjZXMnLFxuICAgICAgICAnY2FsbGJhY2snXG4gICAgICApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHRydWUpLFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKGZhbHNlKSlcbiAgICAgICk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLmFnZW50Q29uZmlnID0gdGhpcy5hZ2VudENvbmZpZztcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnNob3dNYXB2aWV3ID1cbiAgICAgIHRoaXMuYWdlbnRDb25maWc/LmRhc2hib2FyZENvbmZpZz8uc2hvd01hcHMgPz8gZmFsc2U7XG4gICAgdGhpcy51c2VyU2VydmljZS5hZGRUYXNrRm9ybUNvbmZpZyA9XG4gICAgICB0aGlzLmFnZW50Q29uZmlnPy5kYXNoYm9hcmRDb25maWc/LmFkZFRhc2tGb3JtQ29uZmlnID8/XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLmFkZFRhc2tGb3JtQ29uZmlnO1xuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy53aW5kb3dSZXNpemVXYXRjaGVyKCk7XG4gICAgfSwgMTAwMCk7XG4gIH1cblxuICBnb1RvTmV4dFN0ZXAoZSkge1xuICAgIHRoaXMubmV4dFN0ZXAuZW1pdChlKTtcbiAgfVxuXG4gIGhhbmRsZU9uQ2xpY2tBZGRUYXNrKHRhc2spIHtcbiAgICB0aGlzLmFkZFRhc2suZW1pdCh0YXNrKTtcbiAgfVxuXG4gIGhhbmRsZU9uQ2xpY2tSZW1vdmVUYXNrKHRhc2spIHtcbiAgICB0aGlzLnJlbW92ZVRhc2suZW1pdCh0YXNrKTtcbiAgfVxuXG4gIGhhbmRsZU9uRmlsdGVyVGFza0xpc3QoZmlsdGVyKSB7XG4gICAgdGhpcy5maWx0ZXJUYXNrTGlzdC5lbWl0KGZpbHRlcik7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgfVxuXG4gIG9wZW4gPSBmYWxzZTtcblxuICBvbkNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gIH1cblxuICBhbGxGb3Jtc0RhdGEgPSB7fTtcblxuICBTdHJpbmcgPSBTdHJpbmc7XG5cbiAgb25PYnNjdXJlZChvYnNjdXJlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChvYnNjdXJlZCkge1xuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgb25BY3RpdmVab25lKGFjdGl2ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9IGFjdGl2ZSAmJiB0aGlzLm9wZW47XG4gIH1cblxuICBzaG93RGlhbG9nKGNvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpRGlhbG9nQ29udGV4dD4pOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgIC5vcGVuKGNvbnRlbnQsIHsgY2xvc2VhYmxlOiBmYWxzZSwgZGlzbWlzc2libGU6IGZhbHNlIH0pXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvcGVuSW5mb1dpbmRvdyhtYXJrZXI6IE1hcE1hcmtlcikge1xuICAgIHRoaXMuaW5mb1dpbmRvdy5vcGVuKG1hcmtlcik7XG4gIH1cblxuICBoYW5kbGVPbkNsaWNrU2F2ZUZvcm0oZSkge1xuICAgIHRoaXMuaGFuZGxlT25DbGlja0FkZFRhc2soZS5kYXRhKTtcbiAgfVxuXG4gIGhhbmRsZU9uQ2xpY2tWaWV3Rm9ybXMoZSkge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJrd2lraWQtYWdlbnQtZGFzaGJvYXJkXCIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmQtaGVhZGVyXCI+XG4gICAgICA8aW1nXG4gICAgICAgICpuZ0lmPVwidXNlclNlcnZpY2UuYWdlbnRDb25maWcuY2xpZW50TG9nbyAmJiB1c2VyU2VydmljZS5hZ2VudENvbmZpZz8uZGFzaGJvYXJkQ29uZmlnPy5zaG93Q2xpZW50TG9nb1wiXG4gICAgICAgIFtzcmNdPVwidXNlclNlcnZpY2UuYWdlbnRDb25maWcuY2xpZW50TG9nb1wiXG4gICAgICAgIGNsYXNzPVwiZGFzaGJvYXJkLWhlYWRlci1jbGllbnQtbG9nb1wiXG4gICAgICAvPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIiF1c2VyU2VydmljZS5hZ2VudENvbmZpZy5jbGllbnRMb2dvIHx8ICF1c2VyU2VydmljZS5hZ2VudENvbmZpZz8uZGFzaGJvYXJkQ29uZmlnPy5zaG93Q2xpZW50TG9nb1wiXG4gICAgICAgIGNsYXNzPVwiZGFzaGJvYXJkLWhlYWRlci1jbGllbnQtbmFtZVwiXG4gICAgICA+XG4gICAgICAgIDxrd2lrdWktYnV0dG9uLWljb25cbiAgICAgICAgICBbaWNvbl09XCIndHVpSWNvbkxpbmsnXCJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwibW9ub1wiXG4gICAgICAgICAgc2l6ZT1cIm1cIlxuICAgICAgICA+PC9rd2lrdWktYnV0dG9uLWljb24+XG5cbiAgICAgICAge3sgdXNlclNlcnZpY2UuYWdlbnRDb25maWcuY2xpZW50TmFtZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8a3dpa3VpLWJ1dHRvbi1pY29uXG4gICAgICAgICAgKm5nSWY9XCJ1c2VyU2VydmljZS5hZ2VudENvbmZpZz8uZGFzaGJvYXJkQ29uZmlnPy5hbGxvd0FkZFRhc2tcIlxuICAgICAgICAgIGNsYXNzPVwibWVudS1kcm9wZG93bi1idXR0b25zXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBhcHBlYXJhbmNlPVwibW9ub1wiXG4gICAgICAgICAgW2ljb25dPVwiJ3R1aUljb25BZGRSb3dMYXJnZSdcIlxuICAgICAgICAgIGljb25SaWdodD1cIlwiXG4gICAgICAgICAgW3NoYXBlXT1cIm51bGxcIlxuICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAob25DbGljayk9XCJzaG93RGlhbG9nKHRlbXBsYXRlKVwiXG4gICAgICAgID48L2t3aWt1aS1idXR0b24taWNvbj5cbiAgICAgICAgPHNwYW4gKHR1aUFjdGl2ZVpvbmVDaGFuZ2UpPVwib25BY3RpdmVab25lKCRldmVudClcIj5cbiAgICAgICAgICA8a3dpa3VpLWJ1dHRvbi1pY29uXG4gICAgICAgICAgICBbaWNvbl09XCIndHVpSWNvblNldHRpbmdzTGFyZ2UnXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwibW9ub1wiXG4gICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICBbdHVpRHJvcGRvd25dPVwiZHJvcGRvd25Db250ZW50XCJcbiAgICAgICAgICAgIFt0dWlEcm9wZG93bk1hbnVhbF09XCJvcGVuXCJcbiAgICAgICAgICAgICh0dWlPYnNjdXJlZCk9XCJvbk9ic2N1cmVkKCRldmVudClcIlxuICAgICAgICAgID48L2t3aWt1aS1idXR0b24taWNvbj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2Ryb3Bkb3duQ29udGVudD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWRyb3Bkb3duLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWRyb3Bkb3duLWhlYWRlci1hZ2VudC1uYW1lXCI+XG4gICAgICAgICAgICAgICAgICB7eyB1c2VyU2VydmljZS5hZ2VudENvbmZpZy5hZ2VudE5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1kcm9wZG93bi1oZWFkZXItYWdlbnQtaWRcIj5cbiAgICAgICAgICAgICAgICAgIEFnZW50IElEOiB7eyB1c2VyU2VydmljZS5hZ2VudENvbmZpZy5hZ2VudElkIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWVudS1kcm9wZG93bi1ib2R5XCJcbiAgICAgICAgICAgICAgICB0dWlHcm91cFxuICAgICAgICAgICAgICAgIFtjb2xsYXBzZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3JvdW5kZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtvcmllbnRhdGlvbl09XCIndmVydGljYWwnXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCInbSdcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGt3aWt1aS1idXR0b25cbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwidGhpcy5hZ2VudENvbmZpZy5kYXNoYm9hcmRDb25maWcuc2hvd01hcHNcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJcIlxuICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7e1xuICAgICAgICAgICAgICAgICAgICB1c2VyU2VydmljZS5zaG93TWFwdmlldyA/ICdIaWRlIE1hcHMnIDogJ1Nob3cgTWFwcydcbiAgICAgICAgICAgICAgICAgIH19XCJcbiAgICAgICAgICAgICAgICAgIHN0eWxlcz1cIlwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtZHJvcGRvd24tYnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJtb25vXCJcbiAgICAgICAgICAgICAgICAgIGljb249XCJ7e1xuICAgICAgICAgICAgICAgICAgICB1c2VyU2VydmljZS5zaG93TWFwdmlldyA/ICd0dWlJY29uRXllT2ZmJyA6ICd0dWlJY29uRXllJ1xuICAgICAgICAgICAgICAgICAgfX1cIlxuICAgICAgICAgICAgICAgICAgaWNvblJpZ2h0PVwiXCJcbiAgICAgICAgICAgICAgICAgIFtzaGFwZV09XCJudWxsXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAgIHN0eWxlcz1cInBhZGRpbmc6IDByZW0gIWltcG9ydGFudFwiXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJ1c2VyU2VydmljZS50b2dnbGVNYXB2aWV3KClcIlxuICAgICAgICAgICAgICAgID48L2t3aWt1aS1idXR0b24+XG4gICAgICAgICAgICAgICAgPGt3aWt1aS1idXR0b25cbiAgICAgICAgICAgICAgICAgIGlkPVwiXCJcbiAgICAgICAgICAgICAgICAgIGxhYmVsPVwiUmVmcmVzaFwiXG4gICAgICAgICAgICAgICAgICBzdHlsZXM9XCJcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZW51LWRyb3Bkb3duLWJ1dHRvbnNcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwibW9ub1wiXG4gICAgICAgICAgICAgICAgICBbaWNvbl09XCIndHVpSWNvblJlZnJlc2hDdydcIlxuICAgICAgICAgICAgICAgICAgaWNvblJpZ2h0PVwiXCJcbiAgICAgICAgICAgICAgICAgIFtzaGFwZV09XCJudWxsXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cInJlZnJlc2goKVwiXG4gICAgICAgICAgICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWRyb3Bkb3duLWZvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxrd2lrdWktYnV0dG9uXG4gICAgICAgICAgICAgICAgICBpZD1cIlwiXG4gICAgICAgICAgICAgICAgICBsYWJlbD1cIkxvZ291dFwiXG4gICAgICAgICAgICAgICAgICBzdHlsZXM9XCJcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtZW51LWRyb3Bkb3duLWJ1dHRvbnNcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwibW9ub1wiXG4gICAgICAgICAgICAgICAgICBbaWNvbl09XCIndHVpSWNvbkxvZ091dCdcIlxuICAgICAgICAgICAgICAgICAgaWNvblJpZ2h0PVwiXCJcbiAgICAgICAgICAgICAgICAgIFtzaGFwZV09XCJudWxsXCJcbiAgICAgICAgICAgICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImdvVG9OZXh0U3RlcCh7IHN0ZXBUeXBlOiAnTE9HT1VUJyB9KVwiXG4gICAgICAgICAgICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmQtYm9keVwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImFwaUxvYWRlZCB8IGFzeW5jXCJcbiAgICAgICAgW2NsYXNzXT1cInVzZXJTZXJ2aWNlLnNob3dNYXB2aWV3ID8gJ21hcCcgOiAnbWFwLWhpZGRlbidcIlxuICAgICAgPlxuICAgICAgICA8Z29vZ2xlLW1hcCBoZWlnaHQ9XCIxMDAlXCIgd2lkdGg9XCIxMDAlXCIgW29wdGlvbnNdPVwidGhpcy5tYXBTZXJ2aWNlLm1hcFwiPlxuICAgICAgICAgIDxtYXAtbWFya2VyXG4gICAgICAgICAgICAjbWFya2VyPVwibWFwTWFya2VyXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICBsZXQgbWFya2VyUG9zaXRpb24gb2YgdGhpcy5tYXBTZXJ2aWNlLm1hcmtlcnM7XG4gICAgICAgICAgICAgIGxldCBpbmRleCA9IGluZGV4XG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW3Bvc2l0aW9uXT1cIm1hcmtlclBvc2l0aW9uXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJ7IHRleHQ6IFN0cmluZyhpbmRleCksIGNvbG9yOiAnI0ZGRicgfVwiXG4gICAgICAgICAgICAobWFwQ2xpY2spPVwib3BlbkluZm9XaW5kb3cobWFya2VyKVwiXG4gICAgICAgICAgPjwvbWFwLW1hcmtlcj5cbiAgICAgICAgICA8bWFwLWRpcmVjdGlvbnMtcmVuZGVyZXJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIHRoaXMubWFwU2VydmljZS5kaXJlY3Rpb25zUmVzdWx0cyQgfCBhc3luYyBhcyBkaXJlY3Rpb25zUmVzdWx0c1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFtkaXJlY3Rpb25zXT1cImRpcmVjdGlvbnNSZXN1bHRzXCJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cInRoaXMubWFwU2VydmljZS5kaXJlY3Rpb25zUmVuZGVyT3B0aW9uXCJcbiAgICAgICAgICA+PC9tYXAtZGlyZWN0aW9ucy1yZW5kZXJlcj5cbiAgICAgICAgICA8bWFwLWluZm8td2luZG93PkluZm8gV2luZG93IGNvbnRlbnQ8L21hcC1pbmZvLXdpbmRvdz5cbiAgICAgICAgPC9nb29nbGUtbWFwPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidGFzay1kZXRhaWxzXCJcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAhdXNlclNlcnZpY2UuaXNNb2JpbGVWaWV3ICYmIHVzZXJTZXJ2aWNlLnNob3dUYXNrRGV0YWlscyAhPSB1bmRlZmluZWRcbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgICAgPGN1c3RvbWVyLWRldGFpbHNcbiAgICAgICAgICBbY3VzdG9tZXJdPVwidGFza0xpc3RbdXNlclNlcnZpY2Uuc2hvd1Rhc2tEZXRhaWxzXVwiXG4gICAgICAgICAgW2FnZW50Q29uZmlnXT1cImFnZW50Q29uZmlnXCJcbiAgICAgICAgICAobmV4dFN0ZXApPVwiZ29Ub05leHRTdGVwKCRldmVudClcIlxuICAgICAgICAgIChyZW1vdmVUYXNrKT1cImhhbmRsZU9uQ2xpY2tSZW1vdmVUYXNrKCRldmVudClcIlxuICAgICAgICA+PC9jdXN0b21lci1kZXRhaWxzPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tZXItbGlzdFwiPlxuICAgICAgICA8Y3VzdG9tZXItbGlzdFxuICAgICAgICAgIFtjdXN0b21lcnNdPVwidGFza0xpc3RcIlxuICAgICAgICAgIFthZ2VudENvbmZpZ109XCJhZ2VudENvbmZpZ1wiXG4gICAgICAgICAgKG5leHRTdGVwKT1cImdvVG9OZXh0U3RlcCgkZXZlbnQpXCJcbiAgICAgICAgICAocmVtb3ZlVGFzayk9XCJoYW5kbGVPbkNsaWNrUmVtb3ZlVGFzaygkZXZlbnQpXCJcbiAgICAgICAgICAoZmlsdGVyVGFza0xpc3QpPVwiaGFuZGxlT25GaWx0ZXJUYXNrTGlzdCgkZXZlbnQpXCJcbiAgICAgICAgPjwvY3VzdG9tZXItbGlzdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImt3aWtpZC1hZ2VudC1kYXNoYm9hcmQtbG9hZGVyXCIgKm5nSWY9XCJsb2FkaW5nXCI+XG4gIDxzcGFuIGNsYXNzPVwibG9hZGVyXCI+PC9zcGFuPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGUgbGV0LW9ic2VydmVyPlxuICA8ZGl2IGNsYXNzPVwiYWRkLXRhc2staGVhZGVyXCI+XG4gICAgPGgyPkFkZCBUYXNrPC9oMj5cbiAgICA8a3dpa3VpLWJ1dHRvbi1pY29uXG4gICAgICBpY29uPVwidHVpSWNvblhcIlxuICAgICAgaWQ9XCJcIlxuICAgICAgbGFiZWw9XCJDbG9zZVwiXG4gICAgICBzdHlsZXM9XCJcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBhcHBlYXJhbmNlPVwibW9ub1wiXG4gICAgICBbc2hhcGVdPVwibnVsbFwiXG4gICAgICBzaXplPVwibVwiXG4gICAgICAob25DbGljayk9XCJvYnNlcnZlci5jb21wbGV0ZSgpXCJcbiAgICA+PC9rd2lrdWktYnV0dG9uLWljb24+XG4gIDwvZGl2PlxuICA8a3dpa2lkLWZvcm0tdmlld1xuICAgIFtmb3JtQ29uZmlnXT1cInVzZXJTZXJ2aWNlLmFkZFRhc2tGb3JtQ29uZmlnXCJcbiAgICBbYWxsRm9ybXNEYXRhXT1cImFsbEZvcm1zRGF0YVwiXG4gICAgW2lzTW9iaWxlVmlld109XCJ0cnVlXCJcbiAgICAob25DbGlja1ZpZXdGb3Jtcyk9XCJ0aGlzLmhhbmRsZU9uQ2xpY2tWaWV3Rm9ybXMoJGV2ZW50KVwiXG4gICAgKG9uQ2xpY2tTYXZlRm9ybSk9XCJ0aGlzLmhhbmRsZU9uQ2xpY2tTYXZlRm9ybSgkZXZlbnQpXCJcbiAgPjwva3dpa2lkLWZvcm0tdmlldz5cbjwvbmctdGVtcGxhdGU+XG4iXX0=