@bnsights/bbsf-controls 1.0.81 → 1.0.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { Injector, Injectable } from '@angular/core';
2
- import { Title } from "@angular/platform-browser";
3
- import { UtilityService, AuthService, ConfigurationService } from '@bnsights/bbsf-utilities';
2
+ import { Title } from '@angular/platform-browser';
3
+ import { UtilityService, AuthService, ConfigurationService, } from '@bnsights/bbsf-utilities';
4
4
  import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
5
5
  import { ControlUtility } from '../services/ControlUtility';
6
6
  import { CustomValidation } from '../Models/CustomValidation';
@@ -8,16 +8,16 @@ import * as saveAs from 'file-saver';
8
8
  import { EnvironmentService } from '@bnsights/bbsf-utilities';
9
9
  export class AppBaseComponent {
10
10
  constructor(injector) {
11
- this.pageTitle = "";
11
+ this.pageTitle = '';
12
12
  this.PageCount = 12;
13
13
  this.onSuccessAddHandler = (success) => {
14
- this.utilityService.notifySuccessMessage(this.l("RecordAdded"), null, null, false);
14
+ this.utilityService.notifySuccessMessage(this.l('RecordAdded'), null, null, false);
15
15
  };
16
16
  this.onSuccessEditHandler = (success) => {
17
- this.utilityService.notifySuccessMessage(this.l("RecordUpdated"), null, null, false);
17
+ this.utilityService.notifySuccessMessage(this.l('RecordUpdated'), null, null, false);
18
18
  };
19
19
  this.onSuccessDeleteHandler = (success) => {
20
- this.utilityService.notifySuccessMessage(this.l("RecordDeleted"), null, null, false);
20
+ this.utilityService.notifySuccessMessage(this.l('RecordDeleted'), null, null, false);
21
21
  };
22
22
  this.utilityService = injector.get(UtilityService);
23
23
  this.controlUtility = injector.get(ControlUtility);
@@ -26,9 +26,9 @@ export class AppBaseComponent {
26
26
  this.modalService = injector.get(NgbModal);
27
27
  this.titleService = injector.get(Title);
28
28
  this.auhService = injector.get(AuthService);
29
- this.exportLabel = this.utilityService.getResourceValue("Export");
30
- this.filtersLabel = this.utilityService.getResourceValue("Filters");
31
- this.addLabel = this.utilityService.getResourceValue("Add");
29
+ this.exportLabel = this.utilityService.getResourceValue('Export');
30
+ this.filtersLabel = this.utilityService.getResourceValue('Filters');
31
+ this.addLabel = this.utilityService.getResourceValue('Add');
32
32
  this.userName = this.auhService.name();
33
33
  this.isEN = this.utilityService.isCurrentLanguageEnglish();
34
34
  }
@@ -42,7 +42,7 @@ export class AppBaseComponent {
42
42
  return this.configurationService.getConfigurationValue(key);
43
43
  }
44
44
  getLanguageModeValue() {
45
- return this.configurationService.getConfigurationValue("LanguageMode");
45
+ return this.configurationService.getConfigurationValue('LanguageMode');
46
46
  }
47
47
  stopBlockUI() {
48
48
  this.utilityService.stopBlockUI();
@@ -52,13 +52,19 @@ export class AppBaseComponent {
52
52
  }
53
53
  openModal(modal, size) {
54
54
  if (size)
55
- this.modalService.open(modal, { size: size, backdrop: 'static' });
55
+ this.modalService.open(modal, {
56
+ size: size,
57
+ backdrop: 'static',
58
+ keyboard: false,
59
+ });
56
60
  else
57
- this.modalService.open(modal, { backdrop: 'static' });
61
+ this.modalService.open(modal, { backdrop: 'static', keyboard: false });
58
62
  }
59
63
  download(fileDTO, fileName) {
60
64
  /*let blob = new Blob([file]);*/
61
- let file = new Blob([fileDTO], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
65
+ let file = new Blob([fileDTO], {
66
+ type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
67
+ });
62
68
  saveAs(file, fileName);
63
69
  }
64
70
  base64toBlob(base64Data, contentType) {
@@ -80,7 +86,9 @@ export class AppBaseComponent {
80
86
  return new Blob(byteArrays, { type: contentType });
81
87
  }
82
88
  calculatePageTitle(title) {
83
- return title ? title.substring(0, 100) + ` | ${this.l("ApplicationName")}` : `${this.l("ApplicationName")}`;
89
+ return title
90
+ ? title.substring(0, 100) + ` | ${this.l('ApplicationName')}`
91
+ : `${this.l('ApplicationName')}`;
84
92
  }
85
93
  getPagingFiltersValues(form, filters) {
86
94
  let model = new Object();
@@ -88,7 +96,10 @@ export class AppBaseComponent {
88
96
  let filterItem = filters[i];
89
97
  if (form.controls[filterItem.FormControlName].value == undefined)
90
98
  continue;
91
- model[filterItem.ActionParameterName] = form.controls[filterItem.FormControlName].value == undefined ? '' : form.controls[filterItem.FormControlName].value;
99
+ model[filterItem.ActionParameterName] =
100
+ form.controls[filterItem.FormControlName].value == undefined
101
+ ? ''
102
+ : form.controls[filterItem.FormControlName].value;
92
103
  // params = params.append(filterItem.ActionParameterName, form.controls[filterItem.FormControlName].value == undefined ? '' : form.controls[filterItem.FormControlName].value);
93
104
  }
94
105
  return model;
@@ -108,7 +119,7 @@ export class AppBaseComponent {
108
119
  selBox.select();
109
120
  document.execCommand('copy');
110
121
  document.body.removeChild(selBox);
111
- this.utilityService.notifySuccessMessage(this.l("CopiedSuccessfully"));
122
+ this.utilityService.notifySuccessMessage(this.l('CopiedSuccessfully'));
112
123
  }
113
124
  addRequiredRule(control, controlOptions) {
114
125
  this.controlUtility.addRequiredToControl(control, controlOptions);
@@ -122,39 +133,39 @@ export class AppBaseComponent {
122
133
  let fromDate = form.controls[fromDateControl].value;
123
134
  let toDate = form.controls[toDateControl].value;
124
135
  if (fromDate && toDate && toDate <= fromDate)
125
- return { 'customerError': true };
136
+ return { customerError: true };
126
137
  return null;
127
138
  };
128
139
  validator.massage = this.l(validationMessageKey);
129
140
  return validator;
130
141
  }
131
142
  recalculatePageTitle() {
132
- this.titleService.setTitle(this.calculatePageTitle(""));
143
+ this.titleService.setTitle(this.calculatePageTitle(''));
133
144
  }
134
145
  isEnglish() {
135
146
  return this.utilityService.isCurrentLanguageEnglish();
136
147
  }
137
148
  calculateInitials(name) {
138
- let language = localStorage.getItem("language");
149
+ let language = localStorage.getItem('language');
139
150
  let currentUser = this.auhService.user.profile;
140
151
  console.log(currentUser);
141
- let userName = language == "en" ? currentUser.given_nameEn : currentUser.given_nameAr;
152
+ let userName = language == 'en' ? currentUser.given_nameEn : currentUser.given_nameAr;
142
153
  if (currentUser) {
143
- let fullName = userName.split(" ");
154
+ let fullName = userName.split(' ');
144
155
  let initials;
145
156
  if (fullName.length > 1) {
146
157
  if (this.isEN)
147
158
  initials = fullName.shift().charAt(0) + fullName.pop().charAt(0);
148
159
  else
149
160
  initials =
150
- fullName.shift().charAt(0) + " " + fullName.pop().charAt(0);
161
+ fullName.shift().charAt(0) + ' ' + fullName.pop().charAt(0);
151
162
  }
152
163
  else {
153
164
  initials = fullName.pop().charAt(0);
154
165
  }
155
166
  return initials.toUpperCase();
156
167
  }
157
- return "";
168
+ return '';
158
169
  }
159
170
  getCurrentUserInitials() {
160
171
  return this.calculateInitials(this.auhService.name());
@@ -180,4 +191,4 @@ AppBaseComponent.decorators = [
180
191
  AppBaseComponent.ctorParameters = () => [
181
192
  { type: Injector }
182
193
  ];
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJhc2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL1NoYXJlZC9Db21wb25lbnRzL2FwcC1iYXNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRyxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTlELE9BQU8sS0FBSyxNQUFNLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzlELE1BQU0sT0FBZ0IsZ0JBQWdCO0lBZ0JwQyxZQUFZLFFBQWtCO1FBRnZCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQWdJOUIsd0JBQW1CLEdBQUcsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRixDQUFDLENBQUE7UUFFRCx5QkFBb0IsR0FBRyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENB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QUFHLENBQUMsT0FBTyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7O1lBMU1GLFVBQVU7OztZQVpGLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlLCAgQXV0aFNlcnZpY2UsIENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb250cm9sVXRpbGl0eSB9IGZyb20gJy4uL3NlcnZpY2VzL0NvbnRyb2xVdGlsaXR5JztcclxuaW1wb3J0IHsgRmlsdGVySXRlbSB9IGZyb20gJy4uL01vZGVscy9GaWx0ZXJJdGVtJztcclxuaW1wb3J0IHsgQ3VzdG9tVmFsaWRhdGlvbiB9IGZyb20gJy4uL01vZGVscy9DdXN0b21WYWxpZGF0aW9uJztcclxuaW1wb3J0IHsgRW5nbGlzaEFyYWJpY0RUTyB9IGZyb20gJy4uL01vZGVscy9FbmdsaXNoQXJhYmljRFRPJztcclxuaW1wb3J0ICogYXMgc2F2ZUFzIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwQmFzZUNvbXBvbmVudCB7XHJcbiAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZTtcclxuICBwdWJsaWMgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbDtcclxuICBwcml2YXRlIGNvbnRyb2xVdGlsaXR5OiBDb250cm9sVXRpbGl0eTtcclxuICBwcml2YXRlIHRpdGxlU2VydmljZTogVGl0bGU7XHJcbiAgcHJpdmF0ZSBhdWhTZXJ2aWNlOiBBdXRoU2VydmljZTtcclxuICBwcml2YXRlIGNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDb25maWd1cmF0aW9uU2VydmljZTtcclxuICBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlO1xyXG4gIHB1YmxpYyBpc0VOOiBib29sZWFuO1xyXG4gIC8vTGFiZWxzXHJcbiAgcHVibGljIGV4cG9ydExhYmVsOiBzdHJpbmc7XHJcbiAgcHVibGljIGZpbHRlcnNMYWJlbDogc3RyaW5nO1xyXG4gIHB1YmxpYyBhZGRMYWJlbDogc3RyaW5nO1xyXG4gIHB1YmxpYyB1c2VyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBwYWdlVGl0bGU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIFBhZ2VDb3VudDogbnVtYmVyID0gMTI7XHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yLCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZSA9IGluamVjdG9yLmdldChVdGlsaXR5U2VydmljZSk7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5ID0gaW5qZWN0b3IuZ2V0KENvbnRyb2xVdGlsaXR5KTtcclxuICAgIHRoaXMuY29uZmlndXJhdGlvblNlcnZpY2UgPSBpbmplY3Rvci5nZXQoQ29uZmlndXJhdGlvblNlcnZpY2UpO1xyXG4gICAgdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE5nYk1vZGFsKTtcclxuICAgIHRoaXMudGl0bGVTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFRpdGxlKTtcclxuICAgIHRoaXMuYXVoU2VydmljZSA9IGluamVjdG9yLmdldChBdXRoU2VydmljZSk7XHJcbiAgICB0aGlzLmV4cG9ydExhYmVsID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRXhwb3J0XCIpO1xyXG4gICAgdGhpcy5maWx0ZXJzTGFiZWwgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJGaWx0ZXJzXCIpO1xyXG4gICAgdGhpcy5hZGRMYWJlbCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkFkZFwiKTtcclxuICAgIHRoaXMudXNlck5hbWUgPSB0aGlzLmF1aFNlcnZpY2UubmFtZSgpO1xyXG4gICAgdGhpcy5pc0VOID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUVuZ2xpc2goKTtcclxuICB9XHJcbiAgdXBkYXRlUGFnZVRpdGxlKHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRoaXMuY2FsY3VsYXRlUGFnZVRpdGxlKHRpdGxlKSk7XHJcbiAgfVxyXG5cclxuICBsKGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoa2V5KTtcclxuICB9XHJcbiAgZ2V0Q29uZmlndXJhdGlvblZhbHVlKGtleTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5nZXRDb25maWd1cmF0aW9uVmFsdWUoa2V5KTtcclxuICB9XHJcbiAgZ2V0TGFuZ3VhZ2VNb2RlVmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5nZXRDb25maWd1cmF0aW9uVmFsdWUoXCJMYW5ndWFnZU1vZGVcIik7XHJcbiAgfVxyXG4gIHN0b3BCbG9ja1VJKCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRCbG9ja1VJKCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKTtcclxuICB9XHJcblxyXG4gIG9wZW5Nb2RhbChtb2RhbDogYW55LCBzaXplPzogc3RyaW5nKSB7XHJcbiAgICBpZiAoc2l6ZSlcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbihtb2RhbCwgeyBzaXplOiBzaXplLCBiYWNrZHJvcDogJ3N0YXRpYycgfSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4obW9kYWwsIHsgYmFja2Ryb3A6ICdzdGF0aWMnIH0pO1xyXG4gIH1cclxuXHJcbiAgZG93bmxvYWQoZmlsZURUTzogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAvKmxldCBibG9iID0gbmV3IEJsb2IoW2ZpbGVdKTsqL1xyXG4gICAgbGV0IGZpbGUgPSBuZXcgQmxvYihbZmlsZURUT10sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyB9KTtcclxuICAgIHNhdmVBcyhmaWxlLCBmaWxlTmFtZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJhc2U2NHRvQmxvYihiYXNlNjREYXRhLCBjb250ZW50VHlwZSkge1xyXG4gICAgY29udGVudFR5cGUgPSBjb250ZW50VHlwZSB8fCAnJztcclxuICAgIHZhciBzbGljZVNpemUgPSAxMDI0O1xyXG4gICAgdmFyIGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiYXNlNjREYXRhKTtcclxuICAgIHZhciBieXRlc0xlbmd0aCA9IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDtcclxuICAgIHZhciBzbGljZXNDb3VudCA9IE1hdGguY2VpbChieXRlc0xlbmd0aCAvIHNsaWNlU2l6ZSk7XHJcbiAgICB2YXIgYnl0ZUFycmF5cyA9IG5ldyBBcnJheShzbGljZXNDb3VudCk7XHJcblxyXG4gICAgZm9yICh2YXIgc2xpY2VJbmRleCA9IDA7IHNsaWNlSW5kZXggPCBzbGljZXNDb3VudDsgKytzbGljZUluZGV4KSB7XHJcbiAgICAgIHZhciBiZWdpbiA9IHNsaWNlSW5kZXggKiBzbGljZVNpemU7XHJcbiAgICAgIHZhciBlbmQgPSBNYXRoLm1pbihiZWdpbiArIHNsaWNlU2l6ZSwgYnl0ZXNMZW5ndGgpO1xyXG5cclxuICAgICAgdmFyIGJ5dGVzID0gbmV3IEFycmF5KGVuZCAtIGJlZ2luKTtcclxuICAgICAgZm9yICh2YXIgb2Zmc2V0ID0gYmVnaW4sIGkgPSAwOyBvZmZzZXQgPCBlbmQ7ICsraSwgKytvZmZzZXQpIHtcclxuICAgICAgICBieXRlc1tpXSA9IGJ5dGVDaGFyYWN0ZXJzW29mZnNldF0uY2hhckNvZGVBdCgwKTtcclxuICAgICAgfVxyXG4gICAgICBieXRlQXJyYXlzW3NsaWNlSW5kZXhdID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZXMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBCbG9iKGJ5dGVBcnJheXMsIHsgdHlwZTogY29udGVudFR5cGUgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGN1bGF0ZVBhZ2VUaXRsZSh0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aXRsZSA/IHRpdGxlLnN1YnN0cmluZygwLCAxMDApICsgYCB8ICR7dGhpcy5sKFwiQXBwbGljYXRpb25OYW1lXCIpfWAgOiBgJHt0aGlzLmwoXCJBcHBsaWNhdGlvbk5hbWVcIil9YDtcclxuICB9XHJcblxyXG4gIGdldFBhZ2luZ0ZpbHRlcnNWYWx1ZXMoZm9ybTogRm9ybUdyb3VwLCBmaWx0ZXJzOiBGaWx0ZXJJdGVtW10pOiBhbnkge1xyXG4gICAgbGV0IG1vZGVsID0gbmV3IE9iamVjdCgpO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWx0ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBmaWx0ZXJJdGVtID0gZmlsdGVyc1tpXTtcclxuICAgICAgaWYgKGZvcm0uY29udHJvbHNbZmlsdGVySXRlbS5Gb3JtQ29udHJvbE5hbWVdLnZhbHVlID09IHVuZGVmaW5lZClcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgbW9kZWxbZmlsdGVySXRlbS5BY3Rpb25QYXJhbWV0ZXJOYW1lXSA9IGZvcm0uY29udHJvbHNbZmlsdGVySXRlbS5Gb3JtQ29udHJvbE5hbWVdLnZhbHVlID09IHVuZGVmaW5lZCA/ICcnIDogZm9ybS5jb250cm9sc1tmaWx0ZXJJdGVtLkZvcm1Db250cm9sTmFtZV0udmFsdWVcclxuICAgICAgLy8gcGFyYW1zID0gcGFyYW1zLmFwcGVuZChmaWx0ZXJJdGVtLkFjdGlvblBhcmFtZXRlck5hbWUsIGZvcm0uY29udHJvbHNbZmlsdGVySXRlbS5Gb3JtQ29udHJvbE5hbWVdLnZhbHVlID09IHVuZGVmaW5lZCA/ICcnIDogZm9ybS5jb250cm9sc1tmaWx0ZXJJdGVtLkZvcm1Db250cm9sTmFtZV0udmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vZGVsO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlQ29udHJvbChjb250cm9sTmFtZTogc3RyaW5nLCBmb3JtOiBGb3JtR3JvdXApIHtcclxuICAgIGZvcm0ucmVtb3ZlQ29udHJvbChjb250cm9sTmFtZSk7XHJcbiAgfVxyXG5cclxuICBjb3B5VG9DbGlwYm9hcmQodmFsOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNlbEJveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RleHRhcmVhJyk7XHJcbiAgICBzZWxCb3guc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xyXG4gICAgc2VsQm94LnN0eWxlLmxlZnQgPSAnMCc7XHJcbiAgICBzZWxCb3guc3R5bGUudG9wID0gJzAnO1xyXG4gICAgc2VsQm94LnN0eWxlLm9wYWNpdHkgPSAnMCc7XHJcbiAgICBzZWxCb3gudmFsdWUgPSB2YWw7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNlbEJveCk7XHJcbiAgICBzZWxCb3guZm9jdXMoKTtcclxuICAgIHNlbEJveC5zZWxlY3QoKTtcclxuICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHNlbEJveCk7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMubChcIkNvcGllZFN1Y2Nlc3NmdWxseVwiKSk7XHJcbiAgfVxyXG5cclxuICBhZGRSZXF1aXJlZFJ1bGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBjb250cm9sT3B0aW9uczogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LmFkZFJlcXVpcmVkVG9Db250cm9sKGNvbnRyb2wsIGNvbnRyb2xPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVJlcXVpcmVkUnVsZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGNvbnRyb2xPcHRpb25zOiBhbnkpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkucmVtb3ZlUmVxdWlyZWRGcm9tQ29udHJvbChjb250cm9sLCBjb250cm9sT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZURhdGVzKGZvcm06IEZvcm1Hcm91cCwgZnJvbURhdGVDb250cm9sOiBzdHJpbmcsIHRvRGF0ZUNvbnRyb2w6IHN0cmluZywgdmFsaWRhdGlvbk1lc3NhZ2VLZXk6IHN0cmluZyk6IEN1c3RvbVZhbGlkYXRpb24ge1xyXG4gICAgdmFyIHZhbGlkYXRvciA9IG5ldyBDdXN0b21WYWxpZGF0aW9uKCk7XHJcbiAgICB2YWxpZGF0b3IuZnVuY3Rpb25Cb2R5ID0gKGNvbnRyb2wpID0+IHtcclxuICAgICAgbGV0IGZyb21EYXRlID0gZm9ybS5jb250cm9sc1tmcm9tRGF0ZUNvbnRyb2xdLnZhbHVlXHJcbiAgICAgIGxldCB0b0RhdGUgPSBmb3JtLmNvbnRyb2xzW3RvRGF0ZUNvbnRyb2xdLnZhbHVlO1xyXG5cclxuICAgICAgaWYgKGZyb21EYXRlICYmIHRvRGF0ZSAmJiB0b0RhdGUgPD0gZnJvbURhdGUpXHJcbiAgICAgICAgcmV0dXJuIHsgJ2N1c3RvbWVyRXJyb3InOiB0cnVlIH07XHJcblxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgICB2YWxpZGF0b3IubWFzc2FnZSA9IHRoaXMubCh2YWxpZGF0aW9uTWVzc2FnZUtleSk7XHJcbiAgICByZXR1cm4gdmFsaWRhdG9yO1xyXG4gIH1cclxuXHJcbiAgb25TdWNjZXNzQWRkSGFuZGxlciA9IChzdWNjZXNzOiBhbnkpID0+IHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKFwiUmVjb3JkQWRkZWRcIiksIG51bGwsIG51bGwsIGZhbHNlKTtcclxuICB9XHJcblxyXG4gIG9uU3VjY2Vzc0VkaXRIYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmRVcGRhdGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBvblN1Y2Nlc3NEZWxldGVIYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZSh0aGlzLmwoXCJSZWNvcmREZWxldGVkXCIpLCBudWxsLCBudWxsLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICByZWNhbGN1bGF0ZVBhZ2VUaXRsZSgpIHtcclxuICAgIHRoaXMudGl0bGVTZXJ2aWNlLnNldFRpdGxlKHRoaXMuY2FsY3VsYXRlUGFnZVRpdGxlKFwiXCIpKTtcclxuICB9XHJcblxyXG4gIGlzRW5nbGlzaCgpIHtcclxuICAgIHJldHVybiB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlRW5nbGlzaCgpO1xyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlSW5pdGlhbHMobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBsYW5ndWFnZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIik7XHJcbiAgICBsZXQgY3VycmVudFVzZXIgPSB0aGlzLmF1aFNlcnZpY2UudXNlci5wcm9maWxlO1xyXG4gICAgY29uc29sZS5sb2coY3VycmVudFVzZXIpO1xyXG4gICAgbGV0IHVzZXJOYW1lID1cclxuICAgICAgbGFuZ3VhZ2UgPT0gXCJlblwiID8gY3VycmVudFVzZXIuZ2l2ZW5fbmFtZUVuIDogY3VycmVudFVzZXIuZ2l2ZW5fbmFtZUFyO1xyXG4gICAgaWYgKGN1cnJlbnRVc2VyKSB7XHJcbiAgICAgIGxldCBmdWxsTmFtZSA9IHVzZXJOYW1lLnNwbGl0KFwiIFwiKTtcclxuICAgICAgbGV0IGluaXRpYWxzOiBzdHJpbmc7XHJcbiAgICAgIGlmIChmdWxsTmFtZS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaXNFTilcclxuICAgICAgICAgIGluaXRpYWxzID0gZnVsbE5hbWUuc2hpZnQoKS5jaGFyQXQoMCkgKyBmdWxsTmFtZS5wb3AoKS5jaGFyQXQoMCk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgaW5pdGlhbHMgPVxyXG4gICAgICAgICAgICBmdWxsTmFtZS5zaGlmdCgpLmNoYXJBdCgwKSArIFwiIFwiICsgZnVsbE5hbWUucG9wKCkuY2hhckF0KDApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGluaXRpYWxzID0gZnVsbE5hbWUucG9wKCkuY2hhckF0KDApO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpbml0aWFscy50b1VwcGVyQ2FzZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJyZW50VXNlckluaXRpYWxzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jYWxjdWxhdGVJbml0aWFscyh0aGlzLmF1aFNlcnZpY2UubmFtZSgpKTtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnRGYWlsT3Zlcih2YWw6IEVuZ2xpc2hBcmFiaWNEVE8pOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuaXNFbmdsaXNoKCkpIHtcclxuICAgICAgaWYgKHZhbC5FbmdsaXNoKVxyXG4gICAgICAgIHJldHVybiB2YWwuRW5nbGlzaDtcclxuICAgICAgZWxzZSByZXR1cm4gdmFsLkFyYWJpYztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAodmFsLkFyYWJpYylcclxuICAgICAgICByZXR1cm4gdmFsLkFyYWJpYztcclxuICAgICAgZWxzZSByZXR1cm4gdmFsLkVuZ2xpc2g7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJhc2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL1NoYXJlZC9Db21wb25lbnRzL2FwcC1iYXNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUNMLGNBQWMsRUFDZCxXQUFXLEVBQ1gsb0JBQW9CLEdBQ3JCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU5RCxPQUFPLEtBQUssTUFBTSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUc5RCxNQUFNLE9BQWdCLGdCQUFnQjtJQWdCcEMsWUFBWSxRQUFrQjtRQUZ2QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUErSTlCLHdCQUFtQixHQUFHLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FDdEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFDckIsSUFBSSxFQUNKLElBQUksRUFDSixLQUFLLENBQ04sQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLHlCQUFvQixHQUFHLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FDdEMsSUFBSSxDQUFD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R0FBRyxDQUFDLE1BQU07Z0JBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDOztnQkFDN0IsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQzs7O1lBck9GLFVBQVU7OztZQWhCRixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHtcclxuICBVdGlsaXR5U2VydmljZSxcclxuICBBdXRoU2VydmljZSxcclxuICBDb25maWd1cmF0aW9uU2VydmljZSxcclxufSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENvbnRyb2xVdGlsaXR5IH0gZnJvbSAnLi4vc2VydmljZXMvQ29udHJvbFV0aWxpdHknO1xyXG5pbXBvcnQgeyBGaWx0ZXJJdGVtIH0gZnJvbSAnLi4vTW9kZWxzL0ZpbHRlckl0ZW0nO1xyXG5pbXBvcnQgeyBDdXN0b21WYWxpZGF0aW9uIH0gZnJvbSAnLi4vTW9kZWxzL0N1c3RvbVZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBFbmdsaXNoQXJhYmljRFRPIH0gZnJvbSAnLi4vTW9kZWxzL0VuZ2xpc2hBcmFiaWNEVE8nO1xyXG5pbXBvcnQgKiBhcyBzYXZlQXMgZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBcHBCYXNlQ29tcG9uZW50IHtcclxuICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlO1xyXG4gIHB1YmxpYyBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsO1xyXG4gIHByaXZhdGUgY29udHJvbFV0aWxpdHk6IENvbnRyb2xVdGlsaXR5O1xyXG4gIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBUaXRsZTtcclxuICBwcml2YXRlIGF1aFNlcnZpY2U6IEF1dGhTZXJ2aWNlO1xyXG4gIHByaXZhdGUgY29uZmlndXJhdGlvblNlcnZpY2U6IENvbmZpZ3VyYXRpb25TZXJ2aWNlO1xyXG4gIHByaXZhdGUgZW52aXJvbm1lbnRTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2U7XHJcbiAgcHVibGljIGlzRU46IGJvb2xlYW47XHJcbiAgLy9MYWJlbHNcclxuICBwdWJsaWMgZXhwb3J0TGFiZWw6IHN0cmluZztcclxuICBwdWJsaWMgZmlsdGVyc0xhYmVsOiBzdHJpbmc7XHJcbiAgcHVibGljIGFkZExhYmVsOiBzdHJpbmc7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHBhZ2VUaXRsZTogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIFBhZ2VDb3VudDogbnVtYmVyID0gMTI7XHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFV0aWxpdHlTZXJ2aWNlKTtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkgPSBpbmplY3Rvci5nZXQoQ29udHJvbFV0aWxpdHkpO1xyXG4gICAgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZSA9IGluamVjdG9yLmdldChDb25maWd1cmF0aW9uU2VydmljZSk7XHJcbiAgICB0aGlzLmVudmlyb25tZW50U2VydmljZSA9IGluamVjdG9yLmdldChFbnZpcm9ubWVudFNlcnZpY2UpO1xyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoTmdiTW9kYWwpO1xyXG4gICAgdGhpcy50aXRsZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoVGl0bGUpO1xyXG4gICAgdGhpcy5hdWhTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEF1dGhTZXJ2aWNlKTtcclxuICAgIHRoaXMuZXhwb3J0TGFiZWwgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0V4cG9ydCcpO1xyXG4gICAgdGhpcy5maWx0ZXJzTGFiZWwgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0ZpbHRlcnMnKTtcclxuICAgIHRoaXMuYWRkTGFiZWwgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0FkZCcpO1xyXG4gICAgdGhpcy51c2VyTmFtZSA9IHRoaXMuYXVoU2VydmljZS5uYW1lKCk7XHJcbiAgICB0aGlzLmlzRU4gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlRW5nbGlzaCgpO1xyXG4gIH1cclxuICB1cGRhdGVQYWdlVGl0bGUodGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUodGhpcy5jYWxjdWxhdGVQYWdlVGl0bGUodGl0bGUpKTtcclxuICB9XHJcblxyXG4gIGwoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShrZXkpO1xyXG4gIH1cclxuICBnZXRDb25maWd1cmF0aW9uVmFsdWUoa2V5OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldENvbmZpZ3VyYXRpb25WYWx1ZShrZXkpO1xyXG4gIH1cclxuICBnZXRMYW5ndWFnZU1vZGVWYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldENvbmZpZ3VyYXRpb25WYWx1ZSgnTGFuZ3VhZ2VNb2RlJyk7XHJcbiAgfVxyXG4gIHN0b3BCbG9ja1VJKCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhcnRCbG9ja1VJKCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdGFydEJsb2NrVUkoKTtcclxuICB9XHJcblxyXG4gIG9wZW5Nb2RhbChtb2RhbDogYW55LCBzaXplPzogc3RyaW5nKSB7XHJcbiAgICBpZiAoc2l6ZSlcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2Uub3Blbihtb2RhbCwge1xyXG4gICAgICAgIHNpemU6IHNpemUsXHJcbiAgICAgICAgYmFja2Ryb3A6ICdzdGF0aWMnLFxyXG4gICAgICAgIGtleWJvYXJkOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICBlbHNlIHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4obW9kYWwsIHsgYmFja2Ryb3A6ICdzdGF0aWMnLCBrZXlib2FyZDogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZChmaWxlRFRPOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIC8qbGV0IGJsb2IgPSBuZXcgQmxvYihbZmlsZV0pOyovXHJcbiAgICBsZXQgZmlsZSA9IG5ldyBCbG9iKFtmaWxlRFRPXSwge1xyXG4gICAgICB0eXBlOiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxyXG4gICAgfSk7XHJcbiAgICBzYXZlQXMoZmlsZSwgZmlsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBiYXNlNjR0b0Jsb2IoYmFzZTY0RGF0YSwgY29udGVudFR5cGUpIHtcclxuICAgIGNvbnRlbnRUeXBlID0gY29udGVudFR5cGUgfHwgJyc7XHJcbiAgICB2YXIgc2xpY2VTaXplID0gMTAyNDtcclxuICAgIHZhciBieXRlQ2hhcmFjdGVycyA9IGF0b2IoYmFzZTY0RGF0YSk7XHJcbiAgICB2YXIgYnl0ZXNMZW5ndGggPSBieXRlQ2hhcmFjdGVycy5sZW5ndGg7XHJcbiAgICB2YXIgc2xpY2VzQ291bnQgPSBNYXRoLmNlaWwoYnl0ZXNMZW5ndGggLyBzbGljZVNpemUpO1xyXG4gICAgdmFyIGJ5dGVBcnJheXMgPSBuZXcgQXJyYXkoc2xpY2VzQ291bnQpO1xyXG5cclxuICAgIGZvciAodmFyIHNsaWNlSW5kZXggPSAwOyBzbGljZUluZGV4IDwgc2xpY2VzQ291bnQ7ICsrc2xpY2VJbmRleCkge1xyXG4gICAgICB2YXIgYmVnaW4gPSBzbGljZUluZGV4ICogc2xpY2VTaXplO1xyXG4gICAgICB2YXIgZW5kID0gTWF0aC5taW4oYmVnaW4gKyBzbGljZVNpemUsIGJ5dGVzTGVuZ3RoKTtcclxuXHJcbiAgICAgIHZhciBieXRlcyA9IG5ldyBBcnJheShlbmQgLSBiZWdpbik7XHJcbiAgICAgIGZvciAodmFyIG9mZnNldCA9IGJlZ2luLCBpID0gMDsgb2Zmc2V0IDwgZW5kOyArK2ksICsrb2Zmc2V0KSB7XHJcbiAgICAgICAgYnl0ZXNbaV0gPSBieXRlQ2hhcmFjdGVyc1tvZmZzZXRdLmNoYXJDb2RlQXQoMCk7XHJcbiAgICAgIH1cclxuICAgICAgYnl0ZUFycmF5c1tzbGljZUluZGV4XSA9IG5ldyBVaW50OEFycmF5KGJ5dGVzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgQmxvYihieXRlQXJyYXlzLCB7IHR5cGU6IGNvbnRlbnRUeXBlIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVQYWdlVGl0bGUodGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGl0bGVcclxuICAgICAgPyB0aXRsZS5zdWJzdHJpbmcoMCwgMTAwKSArIGAgfCAke3RoaXMubCgnQXBwbGljYXRpb25OYW1lJyl9YFxyXG4gICAgICA6IGAke3RoaXMubCgnQXBwbGljYXRpb25OYW1lJyl9YDtcclxuICB9XHJcblxyXG4gIGdldFBhZ2luZ0ZpbHRlcnNWYWx1ZXMoZm9ybTogRm9ybUdyb3VwLCBmaWx0ZXJzOiBGaWx0ZXJJdGVtW10pOiBhbnkge1xyXG4gICAgbGV0IG1vZGVsID0gbmV3IE9iamVjdCgpO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWx0ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBmaWx0ZXJJdGVtID0gZmlsdGVyc1tpXTtcclxuICAgICAgaWYgKGZvcm0uY29udHJvbHNbZmlsdGVySXRlbS5Gb3JtQ29udHJvbE5hbWVdLnZhbHVlID09IHVuZGVmaW5lZClcclxuICAgICAgICBjb250aW51ZTtcclxuICAgICAgbW9kZWxbZmlsdGVySXRlbS5BY3Rpb25QYXJhbWV0ZXJOYW1lXSA9XHJcbiAgICAgICAgZm9ybS5jb250cm9sc1tmaWx0ZXJJdGVtLkZvcm1Db250cm9sTmFtZV0udmFsdWUgPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICA/ICcnXHJcbiAgICAgICAgICA6IGZvcm0uY29udHJvbHNbZmlsdGVySXRlbS5Gb3JtQ29udHJvbE5hbWVdLnZhbHVlO1xyXG4gICAgICAvLyBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKGZpbHRlckl0ZW0uQWN0aW9uUGFyYW1ldGVyTmFtZSwgZm9ybS5jb250cm9sc1tmaWx0ZXJJdGVtLkZvcm1Db250cm9sTmFtZV0udmFsdWUgPT0gdW5kZWZpbmVkID8gJycgOiBmb3JtLmNvbnRyb2xzW2ZpbHRlckl0ZW0uRm9ybUNvbnRyb2xOYW1lXS52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbW9kZWw7XHJcbiAgfVxyXG5cclxuICByZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lOiBzdHJpbmcsIGZvcm06IEZvcm1Hcm91cCkge1xyXG4gICAgZm9ybS5yZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lKTtcclxuICB9XHJcblxyXG4gIGNvcHlUb0NsaXBib2FyZCh2YWw6IHN0cmluZykge1xyXG4gICAgY29uc3Qgc2VsQm94ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtcclxuICAgIHNlbEJveC5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCc7XHJcbiAgICBzZWxCb3guc3R5bGUubGVmdCA9ICcwJztcclxuICAgIHNlbEJveC5zdHlsZS50b3AgPSAnMCc7XHJcbiAgICBzZWxCb3guc3R5bGUub3BhY2l0eSA9ICcwJztcclxuICAgIHNlbEJveC52YWx1ZSA9IHZhbDtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2VsQm94KTtcclxuICAgIHNlbEJveC5mb2N1cygpO1xyXG4gICAgc2VsQm94LnNlbGVjdCgpO1xyXG4gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcclxuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoc2VsQm94KTtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5sKCdDb3BpZWRTdWNjZXNzZnVsbHknKSk7XHJcbiAgfVxyXG5cclxuICBhZGRSZXF1aXJlZFJ1bGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBjb250cm9sT3B0aW9uczogYW55KSB7XHJcbiAgICB0aGlzLmNvbnRyb2xVdGlsaXR5LmFkZFJlcXVpcmVkVG9Db250cm9sKGNvbnRyb2wsIGNvbnRyb2xPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVJlcXVpcmVkUnVsZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGNvbnRyb2xPcHRpb25zOiBhbnkpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkucmVtb3ZlUmVxdWlyZWRGcm9tQ29udHJvbChjb250cm9sLCBjb250cm9sT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZURhdGVzKFxyXG4gICAgZm9ybTogRm9ybUdyb3VwLFxyXG4gICAgZnJvbURhdGVDb250cm9sOiBzdHJpbmcsXHJcbiAgICB0b0RhdGVDb250cm9sOiBzdHJpbmcsXHJcbiAgICB2YWxpZGF0aW9uTWVzc2FnZUtleTogc3RyaW5nXHJcbiAgKTogQ3VzdG9tVmFsaWRhdGlvbiB7XHJcbiAgICB2YXIgdmFsaWRhdG9yID0gbmV3IEN1c3RvbVZhbGlkYXRpb24oKTtcclxuICAgIHZhbGlkYXRvci5mdW5jdGlvbkJvZHkgPSAoY29udHJvbCkgPT4ge1xyXG4gICAgICBsZXQgZnJvbURhdGUgPSBmb3JtLmNvbnRyb2xzW2Zyb21EYXRlQ29udHJvbF0udmFsdWU7XHJcbiAgICAgIGxldCB0b0RhdGUgPSBmb3JtLmNvbnRyb2xzW3RvRGF0ZUNvbnRyb2xdLnZhbHVlO1xyXG5cclxuICAgICAgaWYgKGZyb21EYXRlICYmIHRvRGF0ZSAmJiB0b0RhdGUgPD0gZnJvbURhdGUpXHJcbiAgICAgICAgcmV0dXJuIHsgY3VzdG9tZXJFcnJvcjogdHJ1ZSB9O1xyXG5cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gICAgdmFsaWRhdG9yLm1hc3NhZ2UgPSB0aGlzLmwodmFsaWRhdGlvbk1lc3NhZ2VLZXkpO1xyXG4gICAgcmV0dXJuIHZhbGlkYXRvcjtcclxuICB9XHJcblxyXG4gIG9uU3VjY2Vzc0FkZEhhbmRsZXIgPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKFxyXG4gICAgICB0aGlzLmwoJ1JlY29yZEFkZGVkJyksXHJcbiAgICAgIG51bGwsXHJcbiAgICAgIG51bGwsXHJcbiAgICAgIGZhbHNlXHJcbiAgICApO1xyXG4gIH07XHJcblxyXG4gIG9uU3VjY2Vzc0VkaXRIYW5kbGVyID0gKHN1Y2Nlc3M6IGFueSkgPT4ge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5ub3RpZnlTdWNjZXNzTWVzc2FnZShcclxuICAgICAgdGhpcy5sKCdSZWNvcmRVcGRhdGVkJyksXHJcbiAgICAgIG51bGwsXHJcbiAgICAgIG51bGwsXHJcbiAgICAgIGZhbHNlXHJcbiAgICApO1xyXG4gIH07XHJcblxyXG4gIG9uU3VjY2Vzc0RlbGV0ZUhhbmRsZXIgPSAoc3VjY2VzczogYW55KSA9PiB7XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKFxyXG4gICAgICB0aGlzLmwoJ1JlY29yZERlbGV0ZWQnKSxcclxuICAgICAgbnVsbCxcclxuICAgICAgbnVsbCxcclxuICAgICAgZmFsc2VcclxuICAgICk7XHJcbiAgfTtcclxuXHJcbiAgcmVjYWxjdWxhdGVQYWdlVGl0bGUoKSB7XHJcbiAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZSh0aGlzLmNhbGN1bGF0ZVBhZ2VUaXRsZSgnJykpO1xyXG4gIH1cclxuXHJcbiAgaXNFbmdsaXNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VFbmdsaXNoKCk7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVJbml0aWFscyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IGxhbmd1YWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJyk7XHJcbiAgICBsZXQgY3VycmVudFVzZXIgPSB0aGlzLmF1aFNlcnZpY2UudXNlci5wcm9maWxlO1xyXG4gICAgY29uc29sZS5sb2coY3VycmVudFVzZXIpO1xyXG4gICAgbGV0IHVzZXJOYW1lID1cclxuICAgICAgbGFuZ3VhZ2UgPT0gJ2VuJyA/IGN1cnJlbnRVc2VyLmdpdmVuX25hbWVFbiA6IGN1cnJlbnRVc2VyLmdpdmVuX25hbWVBcjtcclxuICAgIGlmIChjdXJyZW50VXNlcikge1xyXG4gICAgICBsZXQgZnVsbE5hbWUgPSB1c2VyTmFtZS5zcGxpdCgnICcpO1xyXG4gICAgICBsZXQgaW5pdGlhbHM6IHN0cmluZztcclxuICAgICAgaWYgKGZ1bGxOYW1lLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBpZiAodGhpcy5pc0VOKVxyXG4gICAgICAgICAgaW5pdGlhbHMgPSBmdWxsTmFtZS5zaGlmdCgpLmNoYXJBdCgwKSArIGZ1bGxOYW1lLnBvcCgpLmNoYXJBdCgwKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICBpbml0aWFscyA9XHJcbiAgICAgICAgICAgIGZ1bGxOYW1lLnNoaWZ0KCkuY2hhckF0KDApICsgJyAnICsgZnVsbE5hbWUucG9wKCkuY2hhckF0KDApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGluaXRpYWxzID0gZnVsbE5hbWUucG9wKCkuY2hhckF0KDApO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpbml0aWFscy50b1VwcGVyQ2FzZSgpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudFVzZXJJbml0aWFscygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2FsY3VsYXRlSW5pdGlhbHModGhpcy5hdWhTZXJ2aWNlLm5hbWUoKSk7XHJcbiAgfVxyXG5cclxuICBnZXRDdXJyZW50RmFpbE92ZXIodmFsOiBFbmdsaXNoQXJhYmljRFRPKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmlzRW5nbGlzaCgpKSB7XHJcbiAgICAgIGlmICh2YWwuRW5nbGlzaCkgcmV0dXJuIHZhbC5FbmdsaXNoO1xyXG4gICAgICBlbHNlIHJldHVybiB2YWwuQXJhYmljO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHZhbC5BcmFiaWMpIHJldHVybiB2YWwuQXJhYmljO1xyXG4gICAgICBlbHNlIHJldHVybiB2YWwuRW5nbGlzaDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -11,18 +11,18 @@ const TAGS_INPUT_TEMPLATE = `
11
11
  <span [ngSwitch]="ViewMode">
12
12
  <span *ngSwitchCase="tagInputViewEnum.WithImage">
13
13
  <img style="border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;"
14
- src="{{(tag.image?tag.image:defaultImageURL)}}" />
14
+ src="{{(tag.imageURL?tag.imageURL:defaultImageURL)}}" />
15
15
  </span>
16
16
 
17
17
  <span *ngSwitchCase="tagInputViewEnum.WithInitial">
18
- <div class="user-initials">{{calculateInitials(tag.value)}}</div>
18
+ <div class="user-initials">{{calculateInitials(tag.name)}}</div>
19
19
  </span>
20
20
 
21
21
  <span *ngSwitchDefault>
22
22
  </span>
23
23
 
24
24
  </span>
25
- {{tag.value}}
25
+ {{tag[displayField]}}
26
26
  <span *ngIf="isDeleteable(tag)" role="button" class="tags-input__tag-remove-btn" (click)="removeTag(tag)"
27
27
  (touch)="removeTag(tag)">
28
28
  <span aria-hidden="true">&times;</span>
@@ -95,9 +95,9 @@ src="{{(tag.image?tag.image:defaultImageURL)}}" />
95
95
  <ng-template #itemTemplateWithImage let-model="item" let-index="index">
96
96
  <img
97
97
  style="border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;"
98
- src="{{(model.image?model.image:defaultImageURL)}}" />
98
+ src="{{(model.imageURL?model.imageURL:defaultImageURL)}}" />
99
99
  <div>
100
- <a [innerHTML]="model.value"></a>
100
+ <a [innerHTML]="model.name"></a>
101
101
  <p *ngIf="showDescription">
102
102
  {{model.description}}
103
103
  </p>
@@ -106,7 +106,7 @@ src="{{(tag.image?tag.image:defaultImageURL)}}" />
106
106
 
107
107
  <ng-template #itemTemplateWithoutImage let-model="item" let-index="index">
108
108
  <div>
109
- <a [innerHTML]="model.value"></a>
109
+ <a [innerHTML]="model.name"></a>
110
110
  <p *ngIf="showDescription">
111
111
  {{model.description}}
112
112
  </p>
@@ -115,10 +115,10 @@ src="{{(tag.image?tag.image:defaultImageURL)}}" />
115
115
 
116
116
  <ng-template #itemTemplateWithoutInitial let-model="item" let-index="index">
117
117
  <div class="user-image">
118
- <div class="user-initials">{{calculateInitials(model.value)}}</div>
118
+ <div class="user-initials">{{calculateInitials(model.name)}}</div>
119
119
  </div>
120
120
  <div>
121
- <a [innerHTML]="model.value"></a>
121
+ <a [innerHTML]="model.name"></a>
122
122
  <p *ngIf="showDescription">
123
123
  {{model.description}}
124
124
  </p>
@@ -320,4 +320,4 @@ BTagsInputComponent.propDecorators = {
320
320
  onBlurInput: [{ type: Output }]
321
321
  };
322
322
  export { ɵ0 };
323
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdGFnLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL25nLXRhZy1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNkMsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7O0FBRXZCLE1BQU0sbUJBQW1CLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMEgzQixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUN4QixDQUFDO0FBRUYsTUFBTSxtQ0FBbUMsR0FBUTtJQUMvQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7SUFDbEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBYUYsTUFBTSxPQUFPLG1CQUFtQjtJQU5oQztRQVFFLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDZixTQUFJLEdBQWUsRUFBRSxDQUFDO1FBQ3JCLHNCQUFpQixHQUFlLElBQUksQ0FBQztRQUNyQyxxQkFBZ0IsR0FBcUIsSUFBSSxDQUFDO1FBQzNDLHFCQUFnQixHQUFHLFlBQVks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Q0wsS0FBSzt1QkFDTCxLQUFLOzBCQUNMLEtBQUs7OEJBQ0wsS0FBSztzQkFDTCxLQUFLOzhCQUNMLEtBQUs7cUNBRUwsS0FBSztnQ0FDTCxLQUFLO3NDQUNMLEtBQUs7NEJBQ0wsTUFBTTsrQkFDTixNQUFNOytCQUNOLE1BQU07MEJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIERvQ2hlY2ssIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFR5cGVhaGVhZE1hdGNoIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90eXBlYWhlYWQvcHVibGljX2FwaSc7XHJcbmltcG9ydCB7IFRhZ0lucHV0VmlldyB9IGZyb20gJy4uL0VudW1zL1RhZ0lucHV0Vmlldyc7XHJcblxyXG5jb25zdCBub29wID0gKCkgPT4geyB9O1xyXG5cclxuY29uc3QgVEFHU19JTlBVVF9URU1QTEFURSA9IGBcclxuXHJcbjxkaXYgY2xhc3M9XCJ0YWdzLWlucHV0XCI+XHJcbjxzcGFuIGNsYXNzPVwidGFncy1pbnB1dF9fdGFnIGxhYmVsIGxhYmVsLXByaW1hcnkgYmFkZ2UgYmFkZ2UtcHJpbWFyeVwiICpuZ0Zvcj1cImxldCB0YWcgb2YgdGFnc1wiPlxyXG5cclxuPHNwYW4gW25nU3dpdGNoXT1cIlZpZXdNb2RlXCI+XHJcbjxzcGFuICpuZ1N3aXRjaENhc2U9XCJ0YWdJbnB1dFZpZXdFbnVtLldpdGhJbWFnZVwiPlxyXG48aW1nIHN0eWxlPVwiYm9yZGVyLXJhZGl1czo1MCU7IGhlaWdodDo0MHB4OyB3aWR0aDogNDBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NXB4IDsgbWFyZ2luLXRvcDogNXB4O21hcmdpbi1yaWdodDogNXB4O1wiXHJcbnNyYz1cInt7KHRhZy5pbWFnZT90YWcuaW1hZ2U6ZGVmYXVsdEltYWdlVVJMKX19XCIgLz5cclxuPC9zcGFuPlxyXG5cclxuPHNwYW4gKm5nU3dpdGNoQ2FzZT1cInRhZ0lucHV0Vmlld0VudW0uV2l0aEluaXRpYWxcIj5cclxuPGRpdiBjbGFzcz1cInVzZXItaW5pdGlhbHNcIj57e2NhbGN1bGF0ZUluaXRpYWxzKHRhZy52YWx1ZSl9fTwvZGl2PlxyXG48L3NwYW4+XHJcblxyXG48c3BhbiAqbmdTd2l0Y2hEZWZhdWx0PlxyXG48L3NwYW4+XHJcblxyXG48L3NwYW4+XHJcbiAge3t0YWcudmFsdWV9fVxyXG4gIDxzcGFuICpuZ0lmPVwiaXNEZWxldGVhYmxlKHRhZylcIiByb2xlPVwiYnV0dG9uXCIgY2xhc3M9XCJ0YWdzLWlucHV0X190YWctcmVtb3ZlLWJ0blwiIChjbGljayk9XCJyZW1vdmVUYWcodGFnKVwiXHJcbiAgICAodG91Y2gpPVwicmVtb3ZlVGFnKHRhZylcIj5cclxuICAgIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5DbG9zZTwvc3Bhbj5cclxuICA8L3NwYW4+XHJcbjwvc3Bhbj5cclxuXHJcbjxpbnB1dCAqbmdJZj1cIm9wdGlvbnMgPT09IG51bGw7IGVsc2Ugd2l0aFR5cGVhaGVhZFwiIGNsYXNzPVwidGFncy1pbnB1dF9faW5wdXQtZmllbGRcIiB0eXBlPVwidGV4dFwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIiBuYW1lPVwidGFnc1wiIChrZXl1cC5lbnRlcik9XCJhZGRUYWcodGFnSW5wdXQpXCJcclxuICAoa2V5ZG93bi5iYWNrc3BhY2UpPVwicmVtb3ZlTGFzdFRhZyh0YWdJbnB1dClcIiBbZGlzYWJsZWRdPVwiIWNhbkFkZFRhZ3MgfHwgbWF4aW11bU9mVGFnc1JlYWNoZWQoKVwiXHJcbiAgW2hpZGRlbl09XCIhY2FuQWRkVGFncyB8fCBtYXhpbXVtT2ZUYWdzUmVhY2hlZCgpXCIgI3RhZ0lucHV0IC8+XHJcblxyXG48bmctdGVtcGxhdGUgI3dpdGhUeXBlYWhlYWQ+XHJcbiAgPHNwYW4gW25nU3dpdGNoXT1cIlZpZXdNb2RlXCI+XHJcbiAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwidGFnSW5wdXRWaWV3RW51bS5XaXRoSW1hZ2VcIj5cclxuICAgICAgPGlucHV0ICpuZ0lmPVwiKG9wdGlvbnMgIT09IG51bGwpXCIgY2xhc3M9XCJ0YWdzLWlucHV0X19pbnB1dC1maWVsZFwiIHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxyXG4gICAgICAgIG5hbWU9XCJ0YWdzXCIgKGtleWRvd24uYmFja3NwYWNlKT1cInJlbW92ZUxhc3RUYWcodGFnSW5wdXQpXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFwiIFt0eXBlYWhlYWRdPVwib3B0aW9uc1wiXHJcbiAgICAgICAgW3R5cGVhaGVhZE9wdGlvbkZpZWxkXT1cImRpc3BsYXlGaWVsZFwiICh0eXBlYWhlYWRPblNlbGVjdCk9XCJ0eXBlYWhlYWRPblNlbGVjdCgkZXZlbnQpXCJcclxuICAgICAgICAodHlwZWFoZWFkTm9SZXN1bHRzKT1cInR5cGVhaGVhZE9uTm9NYXRjaCgkZXZlbnQpXCIgW3R5cGVhaGVhZE1pbkxlbmd0aF09XCJtaW5MZW5ndGhCZWZvcmVPcHRpb25zXCJcclxuICAgICAgICBbdHlwZWFoZWFkU2Nyb2xsYWJsZV09XCJzY3JvbGxhYmxlT3B0aW9uc1wiIFt0eXBlYWhlYWRMYXRpbml6ZV09XCJ0cnVlXCJcclxuICAgICAgICBbdHlwZWFoZWFkSXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVdpdGhJbWFnZVwiIFt0eXBlYWhlYWRPcHRpb25zSW5TY3JvbGxhYmxlVmlld109XCJzY3JvbGxhYmxlT3B0aW9uc0luVmlld1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5BZGRUYWdzIHx8IG1heGltdW1PZlRhZ3NSZWFjaGVkKClcIiBbaGlkZGVuXT1cIiFjYW5BZGRUYWdzIHx8IG1heGltdW1PZlRhZ3NSZWFjaGVkKClcIlxyXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCIgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgI3RhZ0lucHV0IC8+XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cInRhZ0lucHV0Vmlld0VudW0uV2l0aG91dEltYWdlXCI+XHJcbiAgICAgIDxpbnB1dCAqbmdJZj1cIihvcHRpb25zICE9PSBudWxsKVwiIGNsYXNzPVwidGFncy1pbnB1dF9faW5wdXQtZmllbGRcIiB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCJcclxuICAgICAgICBuYW1lPVwidGFnc1wiIChrZXlkb3duLmJhY2tzcGFjZSk9XCJyZW1vdmVMYXN0VGFnKHRhZ0lucHV0KVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRcIiBbdHlwZWFoZWFkXT1cIm9wdGlvbnNcIlxyXG4gICAgICAgIFt0eXBlYWhlYWRPcHRpb25GaWVsZF09XCJkaXNwbGF5RmllbGRcIiAodHlwZWFoZWFkT25TZWxlY3QpPVwidHlwZWFoZWFkT25TZWxlY3QoJGV2ZW50KVwiXHJcbiAgICAgICAgKHR5cGVhaGVhZE5vUmVzdWx0cyk9XCJ0eXBlYWhlYWRPbk5vTWF0Y2goJGV2ZW50KVwiIFt0eXBlYWhlYWRNaW5MZW5ndGhdPVwibWluTGVuZ3RoQmVmb3JlT3B0aW9uc1wiXHJcbiAgICAgICAgW3R5cGVhaGVhZFNjcm9sbGFibGVdPVwic2Nyb2xsYWJsZU9wdGlvbnNcIiBbdHlwZWFoZWFkTGF0aW5pemVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3R5cGVhaGVhZEl0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVXaXRob3V0SW1hZ2VcIlxyXG4gICAgICAgIFt0eXBlYWhlYWRPcHRpb25zSW5TY3JvbGxhYmxlVmlld109XCJzY3JvbGxhYmxlT3B0aW9uc0luVmlld1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5BZGRUYWdzIHx8IG1heGltdW1PZlRhZ3NSZWFjaGVkKClcIiBbaGlkZGVuXT1cIiFjYW5BZGRUYWdzIHx8IG1heGltdW1PZlRhZ3NSZWFjaGVkKClcIlxyXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAjdGFnSW5wdXQgLz5cclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwidGFnSW5wdXRWaWV3RW51bS5XaXRoSW5pdGlhbFwiPlxyXG4gICAgICA8aW5wdXQgKm5nSWY9XCIob3B0aW9ucyAhPT0gbnVsbClcIiBjbGFzcz1cInRhZ3MtaW5wdXRfX2lucHV0LWZpZWxkXCIgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoKVwiXHJcbiAgICAgICAgbmFtZT1cInRhZ3NcIiAoa2V5ZG93bi5iYWNrc3BhY2UpPVwicmVtb3ZlTGFzdFRhZyh0YWdJbnB1dClcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkXCIgW3R5cGVhaGVhZF09XCJvcHRpb25zXCJcclxuICAgICAgICBbdHlwZWFoZWFkT3B0aW9uRmllbGRdPVwiZGlzcGxheUZpZWxkXCIgKHR5cGVhaGVhZE9uU2VsZWN0KT1cInR5cGVhaGVhZE9uU2VsZWN0KCRldmVudClcIlxyXG4gICAgICAgICh0eXBlYWhlYWROb1Jlc3VsdHMpPVwidHlwZWFoZWFkT25Ob01hdGNoKCRldmVudClcIiBbdHlwZWFoZWFkTWluTGVuZ3RoXT1cIm1pbkxlbmd0aEJlZm9yZU9wdGlvbnNcIlxyXG4gICAgICAgIFt0eXBlYWhlYWRTY3JvbGxhYmxlXT1cInNjcm9sbGFibGVPcHRpb25zXCIgW3R5cGVhaGVhZExhdGluaXplXT1cInRydWVcIlxyXG4gICAgICAgIFt0eXBlYWhlYWRJdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlV2l0aG91dEluaXRpYWxcIlxyXG4gICAgICAgIFt0eXBlYWhlYWRPcHRpb25zSW5TY3JvbGxhYmxlVmlld109XCJzY3JvbGxhYmxlT3B0aW9uc0luVmlld1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5BZGRUYWdzIHx8IG1heGltdW1PZlRhZ3NSZWFjaGVkKClcIiBbaGlkZGVuXT1cIiFjYW5BZGRUYWdzIHx8IG1heGltdW1PZlRhZ3NSZWFjaGVkKClcIlxyXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAjdGFnSW5wdXQgLz5cclxuICAgIDwvc3Bhbj5cclxuXHJcbiAgICA8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8aW5wdXQgKm5nSWY9XCIob3B0aW9ucyAhPT0gbnVsbClcIiBjbGFzcz1cInRhZ3MtaW5wdXRfX2lucHV0LWZpZWxkXCIgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoKVwiXHJcbiAgICAgICAgbmFtZT1cInRhZ3NcIiAoa2V5ZG93bi5iYWNrc3BhY2UpPVwicmVtb3ZlTGFzdFRhZyh0YWdJbnB1dClcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkXCIgW3R5cGVhaGVhZF09XCJvcHRpb25zXCJcclxuICAgICAgICBbdHlwZWFoZWFkT3B0aW9uRmllbGRdPVwiZGlzcGxheUZpZWxkXCIgKHR5cGVhaGVhZE9uU2VsZWN0KT1cInR5cGVhaGVhZE9uU2VsZWN0KCRldmVudClcIlxyXG4gICAgICAgICh0eXBlYWhlYWROb1Jlc3VsdHMpPVwidHlwZWFoZWFkT25Ob01hdGNoKCRldmVudClcIiBbdHlwZWFoZWFkTWluTGVuZ3RoXT1cIm1pbkxlbmd0aEJlZm9yZU9wdGlvbnNcIlxyXG4gICAgICAgIFt0eXBlYWhlYWRTY3JvbGxhYmxlXT1cInNjcm9sbGFibGVPcHRpb25zXCIgW3R5cGVhaGVhZExhdGluaXplXT1cInRydWVcIlxyXG4gICAgICAgIFt0eXBlYWhlYWRJdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlV2l0aG91dEltYWdlXCJcclxuICAgICAgICBbdHlwZWFoZWFkT3B0aW9uc0luU2Nyb2xsYWJsZVZpZXddPVwic2Nyb2xsYWJsZU9wdGlvbnNJblZpZXdcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuQWRkVGFncyB8fCBtYXhpbXVtT2ZUYWdzUmVhY2hlZCgpXCIgW2hpZGRlbl09XCIhY2FuQWRkVGFncyB8fCBtYXhpbXVtT2ZUYWdzUmVhY2hlZCgpXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgI3RhZ0lucHV0IC8+XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gIDwvc3Bhbj5cclxuXHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2l0ZW1UZW1wbGF0ZVdpdGhJbWFnZSBsZXQtbW9kZWw9XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICA8aW1nXHJcbiAgICBzdHlsZT1cImJvcmRlci1yYWRpdXM6NTAlOyBoZWlnaHQ6NDBweDsgd2lkdGg6IDQwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjVweCA7IG1hcmdpbi10b3A6IDVweDttYXJnaW4tcmlnaHQ6IDVweDtcIlxyXG4gICAgc3JjPVwie3sobW9kZWwuaW1hZ2U/bW9kZWwuaW1hZ2U6ZGVmYXVsdEltYWdlVVJMKX19XCIgLz5cclxuICA8ZGl2PlxyXG4gICAgPGEgW2lubmVySFRNTF09XCJtb2RlbC52YWx1ZVwiPjwvYT5cclxuICAgIDxwICpuZ0lmPVwic2hvd0Rlc2NyaXB0aW9uXCI+XHJcbiAgICAgIHt7bW9kZWwuZGVzY3JpcHRpb259fVxyXG4gICAgPC9wPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGVXaXRob3V0SW1hZ2UgbGV0LW1vZGVsPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgPGRpdj5cclxuICAgIDxhIFtpbm5lckhUTUxdPVwibW9kZWwudmFsdWVcIj48L2E+XHJcbiAgICA8cCAqbmdJZj1cInNob3dEZXNjcmlwdGlvblwiPlxyXG4gICAgICB7e21vZGVsLmRlc2NyaXB0aW9ufX1cclxuICAgIDwvcD5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjaXRlbVRlbXBsYXRlV2l0aG91dEluaXRpYWwgbGV0LW1vZGVsPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgPGRpdiBjbGFzcz1cInVzZXItaW1hZ2VcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWluaXRpYWxzXCI+e3tjYWxjdWxhdGVJbml0aWFscyhtb2RlbC52YWx1ZSl9fTwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXY+XHJcbiAgICA8YSBbaW5uZXJIVE1MXT1cIm1vZGVsLnZhbHVlXCI+PC9hPlxyXG4gICAgPHAgKm5nSWY9XCJzaG93RGVzY3JpcHRpb25cIj5cclxuICAgICAge3ttb2RlbC5kZXNjcmlwdGlvbn19XHJcbiAgICA8L3A+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG5gO1xyXG5cclxuY29uc3QgVEFHU19JTlBVVF9TVFlMRSA9IGBcclxuICAgIDpob3N0IHtcclxuICAgICAgICBvdmVyZmxvdzogYXV0bztcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgfVxyXG5cclxuICAgIC50YWdzLWlucHV0IHtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgfVxyXG5cclxuICAgIC50YWdzLWlucHV0X190YWcge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC4zZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnRhZ3MtaW5wdXRfX3RhZy1yZW1vdmUtYnRuIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICBtYXJnaW46IC0zcHggMCAwIDNweDtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICB9XHJcblxyXG4gICAgLnRhZ3MtaW5wdXRfX2lucHV0LWZpZWxkIHtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICB9XHJcbmA7XHJcblxyXG5jb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJUYWdzSW5wdXRDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRhZ3NDaGFuZ2VkRXZlbnQge1xyXG4gIGNoYW5nZTogc3RyaW5nLFxyXG4gIHRhZzogYW55XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYi10YWdzLWlucHV0JyxcclxuICB0ZW1wbGF0ZTogVEFHU19JTlBVVF9URU1QTEFURSxcclxuICBzdHlsZXM6IFtUQUdTX0lOUFVUX1NUWUxFXSxcclxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJUYWdzSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIHNlbGVjdGVkOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgdGFnczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcbiAgcHVibGljIHRhZ0lucHV0Vmlld0VudW0gPSBUYWdJbnB1dFZpZXc7XHJcbiAgQElucHV0KCkgbWF4VGFnczogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHJlbW92ZUxhc3RPbkJhY2tzcGFjZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGNhbkRlbGV0ZVRhZ3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNhbkFkZFRhZ3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIFZpZXdNb2RlOiBUYWdJbnB1dFZpZXcgPSBUYWdJbnB1dFZpZXcuV2l0aG91dEltYWdlO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBzaG93RGVzY3JpcHRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueSA9IG51bGw7XHJcbiAgQElucHV0KCkgZGVmYXVsdEltYWdlVVJMOiBhbnkgPSBudWxsO1xyXG4gIGRpc3BsYXlGaWVsZDogc3RyaW5nID0gJ25hbWUnO1xyXG4gIEBJbnB1dCgpIG1pbkxlbmd0aEJlZm9yZU9wdGlvbnM6IG51bWJlciA9IDE7XHJcbiAgQElucHV0KCkgc2Nyb2xsYWJsZU9wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzY3JvbGxhYmxlT3B0aW9uc0luVmlldzogbnVtYmVyID0gNTtcclxuICBAT3V0cHV0KCkgb25UYWdzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFRhZ3NDaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk1heFRhZ3NSZWFjaGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uTm9PcHRpb25zTWF0Y2g6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25CbHVySW5wdXQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBnZXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudGFncyAmJiB0aGlzLnRhZ3MubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdGFnc0NoYW5nZWQodHlwZTogc3RyaW5nLCB0YWc6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudGFncyk7XHJcbiAgICB0aGlzLm9uVGFnc0NoYW5nZWQuZW1pdCh7XHJcbiAgICAgIGNoYW5nZTogdHlwZSxcclxuICAgICAgdGFnOiB0YWdcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMubWF4aW11bU9mVGFnc1JlYWNoZWQoKSkge1xyXG4gICAgICB0aGlzLm9uTWF4VGFnc1JlYWNoZWQuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTGFzdFRhZyh0YWdJbnB1dDogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnJlbW92ZUxhc3RPbkJhY2tzcGFjZSB8fCAhdGhpcy50YWdzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0YWdJbnB1dC52YWx1ZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5yZW1vdmVUYWcodGhpcy50YWdzW3RoaXMudGFncy5sZW5ndGggLSAxXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRUYWcodGFnSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcclxuICAgIGlmICh0YWdJbnB1dC52YWx1ZS50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgIGxldCB0YWcgPSB7XHJcbiAgICAgICAgW3RoaXMuZGlzcGxheUZpZWxkXTogdGFnSW5wdXQudmFsdWVcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5hZGRQcmVkZWZpbmVkVGFnKHRhZyk7XHJcbiAgICB9XHJcbiAgICB0YWdJbnB1dC52YWx1ZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRQcmVkZWZpbmVkVGFnKHRhZzogT2JqZWN0KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50YWdzID09IG51bGwpXHJcbiAgICAgIHRoaXMudGFncyA9IFtdO1xyXG4gICAgaWYgKCF0aGlzLm1heGltdW1PZlRhZ3NSZWFjaGVkKCkpIHtcclxuICAgICAgdGhpcy50YWdzLnB1c2godGFnKTtcclxuICAgICAgdGhpcy50YWdzQ2hhbmdlZCgnYWRkJywgdGFnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZVRhZyh0YWdUb1JlbW92ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNEZWxldGVhYmxlKHRhZ1RvUmVtb3ZlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhZ3MgPSB0aGlzLnRhZ3MuZmlsdGVyKHRhZyA9PiB0YWdUb1JlbW92ZSAhPT0gdGFnKTtcclxuICAgIHRoaXMudGFnc0NoYW5nZWQoJ3JlbW92ZScsIHRhZ1RvUmVtb3ZlKTtcclxuICB9XHJcblxyXG4gIG1heGltdW1PZlRhZ3NSZWFjaGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLm1heFRhZ3MgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGFncyAmJiB0aGlzLnRhZ3MubGVuZ3RoID49IHRoaXMubWF4VGFncztcclxuICB9XHJcblxyXG4gIGlzRGVsZXRlYWJsZSh0YWc6IGFueSkge1xyXG4gICAgaWYgKHR5cGVvZiB0YWcuZGVsZXRlYWJsZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhdGFnLmRlbGV0ZWFibGUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY2FuRGVsZXRlVGFncztcclxuICB9XHJcblxyXG4gIHR5cGVhaGVhZE9uU2VsZWN0KGU6IFR5cGVhaGVhZE1hdGNoKTogdm9pZCB7XHJcbiAgICBpZiAodHlwZW9mIGUuaXRlbSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhpcy5hZGRQcmVkZWZpbmVkVGFnKHtcclxuICAgICAgICBbdGhpcy5kaXNwbGF5RmllbGRdOiBlLnZhbHVlXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hZGRQcmVkZWZpbmVkVGFnKGUuaXRlbSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gJyc7XHJcbiAgfVxyXG5cclxuICB0eXBlYWhlYWRPbk5vTWF0Y2goZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMub25Ob09wdGlvbnNNYXRjaCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgdGhpcy5vbk5vT3B0aW9uc01hdGNoLmVtaXQoZSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLnRhZ3MpIHtcclxuICAgICAgdGhpcy50YWdzID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlSW5pdGlhbHMobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHZhciBmdWxsTmFtZSA9IG5hbWUuc3BsaXQoJyAnKTtcclxuICAgIHZhciBpbml0aWFscyA9IFwiXCJcclxuICAgIGlmIChmdWxsTmFtZS5sZW5ndGggPiAxKVxyXG4gICAgICBpbml0aWFscyA9IGZ1bGxOYW1lLnNoaWZ0KCkuY2hhckF0KDApICsgZnVsbE5hbWUucG9wKCkuY2hhckF0KDApO1xyXG4gICAgZWxzZVxyXG4gICAgICBpbml0aWFscyA9IGZ1bGxOYW1lLnNoaWZ0KCkuY2hhckF0KDApXHJcbiAgICByZXR1cm4gaW5pdGlhbHMudG9VcHBlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMub25CbHVySW5wdXQuZW1pdCgpO1xyXG4gIH1cclxuICAvLyAoa2V5ZG93bi5UYWIpID0gXCJvblRhYigkZXZlbnQpXCJcclxuICAvL29uVGFiKGV2ZW50KSB7XHJcbiAgLy8gIHRoaXMub25UYWJJbnB1dC5lbWl0KCk7XHJcbiAgLy8gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgLy8gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIC8vfVxyXG59XHJcbiJdfQ==
323
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctdGFnLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL25nLXRhZy1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBNkMsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFFLGlCQUFpQixFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7O0FBRXZCLE1BQU0sbUJBQW1CLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMEgzQixDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUN4QixDQUFDO0FBRUYsTUFBTSxtQ0FBbUMsR0FBUTtJQUMvQyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7SUFDbEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBYUYsTUFBTSxPQUFPLG1CQUFtQjtJQU5oQztRQVFFLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDZixTQUFJLEdBQWUsRUFBRSxDQUFDO1FBQ3JCLHNCQUFpQixHQUFlLElBQUksQ0FBQztRQUNyQyxxQkFBZ0IsR0FBcUIsSUFBSSxDQUFDO1FBQzNDLHFCQUFnQixHQUFHLFlBQVks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Q0wsS0FBSzt1QkFDTCxLQUFLOzBCQUNMLEtBQUs7OEJBQ0wsS0FBSztzQkFDTCxLQUFLOzhCQUNMLEtBQUs7cUNBRUwsS0FBSztnQ0FDTCxLQUFLO3NDQUNMLEtBQUs7NEJBQ0wsTUFBTTsrQkFDTixNQUFNOytCQUNOLE1BQU07MEJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIERvQ2hlY2ssIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFR5cGVhaGVhZE1hdGNoIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC90eXBlYWhlYWQvcHVibGljX2FwaSc7XHJcbmltcG9ydCB7IFRhZ0lucHV0VmlldyB9IGZyb20gJy4uL0VudW1zL1RhZ0lucHV0Vmlldyc7XHJcblxyXG5jb25zdCBub29wID0gKCkgPT4geyB9O1xyXG5cclxuY29uc3QgVEFHU19JTlBVVF9URU1QTEFURSA9IGBcclxuXHJcbjxkaXYgY2xhc3M9XCJ0YWdzLWlucHV0XCI+XHJcbjxzcGFuIGNsYXNzPVwidGFncy1pbnB1dF9fdGFnIGxhYmVsIGxhYmVsLXByaW1hcnkgYmFkZ2UgYmFkZ2UtcHJpbWFyeVwiICpuZ0Zvcj1cImxldCB0YWcgb2YgdGFnc1wiPlxyXG5cclxuPHNwYW4gW25nU3dpdGNoXT1cIlZpZXdNb2RlXCI+XHJcbjxzcGFuICpuZ1N3aXRjaENhc2U9XCJ0YWdJbnB1dFZpZXdFbnVtLldpdGhJbWFnZVwiPlxyXG48aW1nIHN0eWxlPVwiYm9yZGVyLXJhZGl1czo1MCU7IGhlaWdodDo0MHB4OyB3aWR0aDogNDBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NXB4IDsgbWFyZ2luLXRvcDogNXB4O21hcmdpbi1yaWdodDogNXB4O1wiXHJcbnNyYz1cInt7KHRhZy5pbWFnZVVSTD90YWcuaW1hZ2VVUkw6ZGVmYXVsdEltYWdlVVJMKX19XCIgLz5cclxuPC9zcGFuPlxyXG5cclxuPHNwYW4gKm5nU3dpdGNoQ2FzZT1cInRhZ0lucHV0Vmlld0VudW0uV2l0aEluaXRpYWxcIj5cclxuPGRpdiBjbGFzcz1cInVzZXItaW5pdGlhbHNcIj57e2NhbGN1bGF0ZUluaXRpYWxzKHRhZy5uYW1lKX19PC9kaXY+XHJcbjwvc3Bhbj5cclxuXHJcbjxzcGFuICpuZ1N3aXRjaERlZmF1bHQ+XHJcbjwvc3Bhbj5cclxuXHJcbjwvc3Bhbj5cclxuICB7e3RhZ1tkaXNwbGF5RmllbGRdfX1cclxuICA8c3BhbiAqbmdJZj1cImlzRGVsZXRlYWJsZSh0YWcpXCIgcm9sZT1cImJ1dHRvblwiIGNsYXNzPVwidGFncy1pbnB1dF9fdGFnLXJlbW92ZS1idG5cIiAoY2xpY2spPVwicmVtb3ZlVGFnKHRhZylcIlxyXG4gICAgKHRvdWNoKT1cInJlbW92ZVRhZyh0YWcpXCI+XHJcbiAgICA8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+Q2xvc2U8L3NwYW4+XHJcbiAgPC9zcGFuPlxyXG48L3NwYW4+XHJcblxyXG48aW5wdXQgKm5nSWY9XCJvcHRpb25zID09PSBudWxsOyBlbHNlIHdpdGhUeXBlYWhlYWRcIiBjbGFzcz1cInRhZ3MtaW5wdXRfX2lucHV0LWZpZWxkXCIgdHlwZT1cInRleHRcIlxyXG4gIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCIgbmFtZT1cInRhZ3NcIiAoa2V5dXAuZW50ZXIpPVwiYWRkVGFnKHRhZ0lucHV0KVwiXHJcbiAgKGtleWRvd24uYmFja3NwYWNlKT1cInJlbW92ZUxhc3RUYWcodGFnSW5wdXQpXCIgW2Rpc2FibGVkXT1cIiFjYW5BZGRUYWdzIHx8IG1heGltdW1PZlRhZ3NSZWFjaGVkKClcIlxyXG4gIFtoaWRkZW5dPVwiIWNhbkFkZFRhZ3MgfHwgbWF4aW11bU9mVGFnc1JlYWNoZWQoKVwiICN0YWdJbnB1dCAvPlxyXG5cclxuPG5nLXRlbXBsYXRlICN3aXRoVHlwZWFoZWFkPlxyXG4gIDxzcGFuIFtuZ1N3aXRjaF09XCJWaWV3TW9kZVwiPlxyXG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cInRhZ0lucHV0Vmlld0VudW0uV2l0aEltYWdlXCI+XHJcbiAgICAgIDxpbnB1dCAqbmdJZj1cIihvcHRpb25zICE9PSBudWxsKVwiIGNsYXNzPVwidGFncy1pbnB1dF9faW5wdXQtZmllbGRcIiB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCJcclxuICAgICAgICBuYW1lPVwidGFnc1wiIChrZXlkb3duLmJhY2tzcGFjZSk9XCJyZW1vdmVMYXN0VGFnKHRhZ0lucHV0KVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRcIiBbdHlwZWFoZWFkXT1cIm9wdGlvbnNcIlxyXG4gICAgICAgIFt0eXBlYWhlYWRPcHRpb25GaWVsZF09XCJkaXNwbGF5RmllbGRcIiAodHlwZWFoZWFkT25TZWxlY3QpPVwidHlwZWFoZWFkT25TZWxlY3QoJGV2ZW50KVwiXHJcbiAgICAgICAgKHR5cGVhaGVhZE5vUmVzdWx0cyk9XCJ0eXBlYWhlYWRPbk5vTWF0Y2goJGV2ZW50KVwiIFt0eXBlYWhlYWRNaW5MZW5ndGhdPVwibWluTGVuZ3RoQmVmb3JlT3B0aW9uc1wiXHJcbiAgICAgICAgW3R5cGVhaGVhZFNjcm9sbGFibGVdPVwic2Nyb2xsYWJsZU9wdGlvbnNcIiBbdHlwZWFoZWFkTGF0aW5pemVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3R5cGVhaGVhZEl0ZW1UZW1wbGF0ZV09XCJpdGVtVGVtcGxhdGVXaXRoSW1hZ2VcIiBbdHlwZWFoZWFkT3B0aW9uc0luU2Nyb2xsYWJsZVZpZXddPVwic2Nyb2xsYWJsZU9wdGlvbnNJblZpZXdcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuQWRkVGFncyB8fCBtYXhpbXVtT2ZUYWdzUmVhY2hlZCgpXCIgW2hpZGRlbl09XCIhY2FuQWRkVGFncyB8fCBtYXhpbXVtT2ZUYWdzUmVhY2hlZCgpXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICN0YWdJbnB1dCAvPlxyXG4gICAgPC9zcGFuPlxyXG5cclxuICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJ0YWdJbnB1dFZpZXdFbnVtLldpdGhvdXRJbWFnZVwiPlxyXG4gICAgICA8aW5wdXQgKm5nSWY9XCIob3B0aW9ucyAhPT0gbnVsbClcIiBjbGFzcz1cInRhZ3MtaW5wdXRfX2lucHV0LWZpZWxkXCIgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoKVwiXHJcbiAgICAgICAgbmFtZT1cInRhZ3NcIiAoa2V5ZG93bi5iYWNrc3BhY2UpPVwicmVtb3ZlTGFzdFRhZyh0YWdJbnB1dClcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkXCIgW3R5cGVhaGVhZF09XCJvcHRpb25zXCJcclxuICAgICAgICBbdHlwZWFoZWFkT3B0aW9uRmllbGRdPVwiZGlzcGxheUZpZWxkXCIgKHR5cGVhaGVhZE9uU2VsZWN0KT1cInR5cGVhaGVhZE9uU2VsZWN0KCRldmVudClcIlxyXG4gICAgICAgICh0eXBlYWhlYWROb1Jlc3VsdHMpPVwidHlwZWFoZWFkT25Ob01hdGNoKCRldmVudClcIiBbdHlwZWFoZWFkTWluTGVuZ3RoXT1cIm1pbkxlbmd0aEJlZm9yZU9wdGlvbnNcIlxyXG4gICAgICAgIFt0eXBlYWhlYWRTY3JvbGxhYmxlXT1cInNjcm9sbGFibGVPcHRpb25zXCIgW3R5cGVhaGVhZExhdGluaXplXT1cInRydWVcIlxyXG4gICAgICAgIFt0eXBlYWhlYWRJdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlV2l0aG91dEltYWdlXCJcclxuICAgICAgICBbdHlwZWFoZWFkT3B0aW9uc0luU2Nyb2xsYWJsZVZpZXddPVwic2Nyb2xsYWJsZU9wdGlvbnNJblZpZXdcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuQWRkVGFncyB8fCBtYXhpbXVtT2ZUYWdzUmVhY2hlZCgpXCIgW2hpZGRlbl09XCIhY2FuQWRkVGFncyB8fCBtYXhpbXVtT2ZUYWdzUmVhY2hlZCgpXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgI3RhZ0lucHV0IC8+XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cInRhZ0lucHV0Vmlld0VudW0uV2l0aEluaXRpYWxcIj5cclxuICAgICAgPGlucHV0ICpuZ0lmPVwiKG9wdGlvbnMgIT09IG51bGwpXCIgY2xhc3M9XCJ0YWdzLWlucHV0X19pbnB1dC1maWVsZFwiIHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxyXG4gICAgICAgIG5hbWU9XCJ0YWdzXCIgKGtleWRvd24uYmFja3NwYWNlKT1cInJlbW92ZUxhc3RUYWcodGFnSW5wdXQpXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFwiIFt0eXBlYWhlYWRdPVwib3B0aW9uc1wiXHJcbiAgICAgICAgW3R5cGVhaGVhZE9wdGlvbkZpZWxkXT1cImRpc3BsYXlGaWVsZFwiICh0eXBlYWhlYWRPblNlbGVjdCk9XCJ0eXBlYWhlYWRPblNlbGVjdCgkZXZlbnQpXCJcclxuICAgICAgICAodHlwZWFoZWFkTm9SZXN1bHRzKT1cInR5cGVhaGVhZE9uTm9NYXRjaCgkZXZlbnQpXCIgW3R5cGVhaGVhZE1pbkxlbmd0aF09XCJtaW5MZW5ndGhCZWZvcmVPcHRpb25zXCJcclxuICAgICAgICBbdHlwZWFoZWFkU2Nyb2xsYWJsZV09XCJzY3JvbGxhYmxlT3B0aW9uc1wiIFt0eXBlYWhlYWRMYXRpbml6ZV09XCJ0cnVlXCJcclxuICAgICAgICBbdHlwZWFoZWFkSXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVdpdGhvdXRJbml0aWFsXCJcclxuICAgICAgICBbdHlwZWFoZWFkT3B0aW9uc0luU2Nyb2xsYWJsZVZpZXddPVwic2Nyb2xsYWJsZU9wdGlvbnNJblZpZXdcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY2FuQWRkVGFncyB8fCBtYXhpbXVtT2ZUYWdzUmVhY2hlZCgpXCIgW2hpZGRlbl09XCIhY2FuQWRkVGFncyB8fCBtYXhpbXVtT2ZUYWdzUmVhY2hlZCgpXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgI3RhZ0lucHV0IC8+XHJcbiAgICA8L3NwYW4+XHJcblxyXG4gICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgPGlucHV0ICpuZ0lmPVwiKG9wdGlvbnMgIT09IG51bGwpXCIgY2xhc3M9XCJ0YWdzLWlucHV0X19pbnB1dC1maWVsZFwiIHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxyXG4gICAgICAgIG5hbWU9XCJ0YWdzXCIgKGtleWRvd24uYmFja3NwYWNlKT1cInJlbW92ZUxhc3RUYWcodGFnSW5wdXQpXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFwiIFt0eXBlYWhlYWRdPVwib3B0aW9uc1wiXHJcbiAgICAgICAgW3R5cGVhaGVhZE9wdGlvbkZpZWxkXT1cImRpc3BsYXlGaWVsZFwiICh0eXBlYWhlYWRPblNlbGVjdCk9XCJ0eXBlYWhlYWRPblNlbGVjdCgkZXZlbnQpXCJcclxuICAgICAgICAodHlwZWFoZWFkTm9SZXN1bHRzKT1cInR5cGVhaGVhZE9uTm9NYXRjaCgkZXZlbnQpXCIgW3R5cGVhaGVhZE1pbkxlbmd0aF09XCJtaW5MZW5ndGhCZWZvcmVPcHRpb25zXCJcclxuICAgICAgICBbdHlwZWFoZWFkU2Nyb2xsYWJsZV09XCJzY3JvbGxhYmxlT3B0aW9uc1wiIFt0eXBlYWhlYWRMYXRpbml6ZV09XCJ0cnVlXCJcclxuICAgICAgICBbdHlwZWFoZWFkSXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVdpdGhvdXRJbWFnZVwiXHJcbiAgICAgICAgW3R5cGVhaGVhZE9wdGlvbnNJblNjcm9sbGFibGVWaWV3XT1cInNjcm9sbGFibGVPcHRpb25zSW5WaWV3XCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkFkZFRhZ3MgfHwgbWF4aW11bU9mVGFnc1JlYWNoZWQoKVwiIFtoaWRkZW5dPVwiIWNhbkFkZFRhZ3MgfHwgbWF4aW11bU9mVGFnc1JlYWNoZWQoKVwiXHJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKClcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICN0YWdJbnB1dCAvPlxyXG4gICAgPC9zcGFuPlxyXG5cclxuICA8L3NwYW4+XHJcblxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGVXaXRoSW1hZ2UgbGV0LW1vZGVsPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgPGltZ1xyXG4gICAgc3R5bGU9XCJib3JkZXItcmFkaXVzOjUwJTsgaGVpZ2h0OjQwcHg7IHdpZHRoOiA0MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo1cHggOyBtYXJnaW4tdG9wOiA1cHg7bWFyZ2luLXJpZ2h0OiA1cHg7XCJcclxuICAgIHNyYz1cInt7KG1vZGVsLmltYWdlVVJMP21vZGVsLmltYWdlVVJMOmRlZmF1bHRJbWFnZVVSTCl9fVwiIC8+XHJcbiAgPGRpdj5cclxuICAgIDxhIFtpbm5lckhUTUxdPVwibW9kZWwubmFtZVwiPjwvYT5cclxuICAgIDxwICpuZ0lmPVwic2hvd0Rlc2NyaXB0aW9uXCI+XHJcbiAgICAgIHt7bW9kZWwuZGVzY3JpcHRpb259fVxyXG4gICAgPC9wPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGVXaXRob3V0SW1hZ2UgbGV0LW1vZGVsPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCI+XHJcbiAgPGRpdj5cclxuICAgIDxhIFtpbm5lckhUTUxdPVwibW9kZWwubmFtZVwiPjwvYT5cclxuICAgIDxwICpuZ0lmPVwic2hvd0Rlc2NyaXB0aW9uXCI+XHJcbiAgICAgIHt7bW9kZWwuZGVzY3JpcHRpb259fVxyXG4gICAgPC9wPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpdGVtVGVtcGxhdGVXaXRob3V0SW5pdGlhbCBsZXQtbW9kZWw9XCJpdGVtXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICA8ZGl2IGNsYXNzPVwidXNlci1pbWFnZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInVzZXItaW5pdGlhbHNcIj57e2NhbGN1bGF0ZUluaXRpYWxzKG1vZGVsLm5hbWUpfX08L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2PlxyXG4gICAgPGEgW2lubmVySFRNTF09XCJtb2RlbC5uYW1lXCI+PC9hPlxyXG4gICAgPHAgKm5nSWY9XCJzaG93RGVzY3JpcHRpb25cIj5cclxuICAgICAge3ttb2RlbC5kZXNjcmlwdGlvbn19XHJcbiAgICA8L3A+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG5gO1xyXG5cclxuY29uc3QgVEFHU19JTlBVVF9TVFlMRSA9IGBcclxuICAgIDpob3N0IHtcclxuICAgICAgICBvdmVyZmxvdzogYXV0bztcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgfVxyXG5cclxuICAgIC50YWdzLWlucHV0IHtcclxuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgfVxyXG5cclxuICAgIC50YWdzLWlucHV0X190YWcge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBtYXJnaW4tYm90dG9tOiAycHg7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC4zZW07XHJcbiAgICB9XHJcblxyXG4gICAgLnRhZ3MtaW5wdXRfX3RhZy1yZW1vdmUtYnRuIHtcclxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgICAgICBtYXJnaW46IC0zcHggMCAwIDNweDtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICB9XHJcblxyXG4gICAgLnRhZ3MtaW5wdXRfX2lucHV0LWZpZWxkIHtcclxuICAgICAgICBib3JkZXI6IG5vbmU7XHJcbiAgICAgICAgZmxleC1ncm93OiAxO1xyXG4gICAgICAgIG91dGxpbmU6IG5vbmU7XHJcbiAgICB9XHJcbmA7XHJcblxyXG5jb25zdCBDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJUYWdzSW5wdXRDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRhZ3NDaGFuZ2VkRXZlbnQge1xyXG4gIGNoYW5nZTogc3RyaW5nLFxyXG4gIHRhZzogYW55XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYi10YWdzLWlucHV0JyxcclxuICB0ZW1wbGF0ZTogVEFHU19JTlBVVF9URU1QTEFURSxcclxuICBzdHlsZXM6IFtUQUdTX0lOUFVUX1NUWUxFXSxcclxuICBwcm92aWRlcnM6IFtDVVNUT01fSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJUYWdzSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIHNlbGVjdGVkOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgdGFnczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xyXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XHJcbiAgcHVibGljIHRhZ0lucHV0Vmlld0VudW0gPSBUYWdJbnB1dFZpZXc7XHJcbiAgQElucHV0KCkgbWF4VGFnczogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHJlbW92ZUxhc3RPbkJhY2tzcGFjZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGNhbkRlbGV0ZVRhZ3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGNhbkFkZFRhZ3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIFZpZXdNb2RlOiBUYWdJbnB1dFZpZXcgPSBUYWdJbnB1dFZpZXcuV2l0aG91dEltYWdlO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBzaG93RGVzY3JpcHRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IGFueSA9IG51bGw7XHJcbiAgQElucHV0KCkgZGVmYXVsdEltYWdlVVJMOiBhbnkgPSBudWxsO1xyXG4gIGRpc3BsYXlGaWVsZDogc3RyaW5nID0gJ25hbWUnO1xyXG4gIEBJbnB1dCgpIG1pbkxlbmd0aEJlZm9yZU9wdGlvbnM6IG51bWJlciA9IDE7XHJcbiAgQElucHV0KCkgc2Nyb2xsYWJsZU9wdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzY3JvbGxhYmxlT3B0aW9uc0luVmlldzogbnVtYmVyID0gNTtcclxuICBAT3V0cHV0KCkgb25UYWdzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFRhZ3NDaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbk1heFRhZ3NSZWFjaGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uTm9PcHRpb25zTWF0Y2g6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgb25CbHVySW5wdXQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBnZXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudGFncyAmJiB0aGlzLnRhZ3MubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdGFnc0NoYW5nZWQodHlwZTogc3RyaW5nLCB0YWc6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMudGFncyk7XHJcbiAgICB0aGlzLm9uVGFnc0NoYW5nZWQuZW1pdCh7XHJcbiAgICAgIGNoYW5nZTogdHlwZSxcclxuICAgICAgdGFnOiB0YWdcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMubWF4aW11bU9mVGFnc1JlYWNoZWQoKSkge1xyXG4gICAgICB0aGlzLm9uTWF4VGFnc1JlYWNoZWQuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTGFzdFRhZyh0YWdJbnB1dDogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnJlbW92ZUxhc3RPbkJhY2tzcGFjZSB8fCAhdGhpcy50YWdzPy5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0YWdJbnB1dC52YWx1ZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy5yZW1vdmVUYWcodGhpcy50YWdzW3RoaXMudGFncy5sZW5ndGggLSAxXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRUYWcodGFnSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcclxuICAgIGlmICh0YWdJbnB1dC52YWx1ZS50cmltKCkgIT09ICcnKSB7XHJcbiAgICAgIGxldCB0YWcgPSB7XHJcbiAgICAgICAgW3RoaXMuZGlzcGxheUZpZWxkXTogdGFnSW5wdXQudmFsdWVcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5hZGRQcmVkZWZpbmVkVGFnKHRhZyk7XHJcbiAgICB9XHJcbiAgICB0YWdJbnB1dC52YWx1ZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRQcmVkZWZpbmVkVGFnKHRhZzogT2JqZWN0KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50YWdzID09IG51bGwpXHJcbiAgICAgIHRoaXMudGFncyA9IFtdO1xyXG4gICAgaWYgKCF0aGlzLm1heGltdW1PZlRhZ3NSZWFjaGVkKCkpIHtcclxuICAgICAgdGhpcy50YWdzLnB1c2godGFnKTtcclxuICAgICAgdGhpcy50YWdzQ2hhbmdlZCgnYWRkJywgdGFnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZVRhZyh0YWdUb1JlbW92ZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNEZWxldGVhYmxlKHRhZ1RvUmVtb3ZlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhZ3MgPSB0aGlzLnRhZ3MuZmlsdGVyKHRhZyA9PiB0YWdUb1JlbW92ZSAhPT0gdGFnKTtcclxuICAgIHRoaXMudGFnc0NoYW5nZWQoJ3JlbW92ZScsIHRhZ1RvUmVtb3ZlKTtcclxuICB9XHJcblxyXG4gIG1heGltdW1PZlRhZ3NSZWFjaGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLm1heFRhZ3MgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGFncyAmJiB0aGlzLnRhZ3MubGVuZ3RoID49IHRoaXMubWF4VGFncztcclxuICB9XHJcblxyXG4gIGlzRGVsZXRlYWJsZSh0YWc6IGFueSkge1xyXG4gICAgaWYgKHR5cGVvZiB0YWcuZGVsZXRlYWJsZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiAhdGFnLmRlbGV0ZWFibGUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY2FuRGVsZXRlVGFncztcclxuICB9XHJcblxyXG4gIHR5cGVhaGVhZE9uU2VsZWN0KGU6IFR5cGVhaGVhZE1hdGNoKTogdm9pZCB7XHJcbiAgICBpZiAodHlwZW9mIGUuaXRlbSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhpcy5hZGRQcmVkZWZpbmVkVGFnKHtcclxuICAgICAgICBbdGhpcy5kaXNwbGF5RmllbGRdOiBlLnZhbHVlXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hZGRQcmVkZWZpbmVkVGFnKGUuaXRlbSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gJyc7XHJcbiAgfVxyXG5cclxuICB0eXBlYWhlYWRPbk5vTWF0Y2goZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMub25Ob09wdGlvbnNNYXRjaCAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgdGhpcy5vbk5vT3B0aW9uc01hdGNoLmVtaXQoZSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLnRhZ3MpIHtcclxuICAgICAgdGhpcy50YWdzID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgY2FsY3VsYXRlSW5pdGlhbHMobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHZhciBmdWxsTmFtZSA9IG5hbWUuc3BsaXQoJyAnKTtcclxuICAgIHZhciBpbml0aWFscyA9IFwiXCJcclxuICAgIGlmIChmdWxsTmFtZS5sZW5ndGggPiAxKVxyXG4gICAgICBpbml0aWFscyA9IGZ1bGxOYW1lLnNoaWZ0KCkuY2hhckF0KDApICsgZnVsbE5hbWUucG9wKCkuY2hhckF0KDApO1xyXG4gICAgZWxzZVxyXG4gICAgICBpbml0aWFscyA9IGZ1bGxOYW1lLnNoaWZ0KCkuY2hhckF0KDApXHJcbiAgICByZXR1cm4gaW5pdGlhbHMudG9VcHBlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIHRoaXMub25CbHVySW5wdXQuZW1pdCgpO1xyXG4gIH1cclxuICAvLyAoa2V5ZG93bi5UYWIpID0gXCJvblRhYigkZXZlbnQpXCJcclxuICAvL29uVGFiKGV2ZW50KSB7XHJcbiAgLy8gIHRoaXMub25UYWJJbnB1dC5lbWl0KCk7XHJcbiAgLy8gIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgLy8gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIC8vfVxyXG59XHJcbiJdfQ==
@@ -53,6 +53,7 @@ export class ConfirmationModalComponent {
53
53
  confirmButtonText: this.options.SubmitButtonText,
54
54
  showCancelButton: this.options.showCancelButton,
55
55
  showCloseButton: this.options.showCloseButton,
56
+ allowOutsideClick: false
56
57
  }).then((result) => {
57
58
  if (result.isConfirmed) {
58
59
  this.submit();
@@ -135,4 +136,4 @@ ConfirmationModalComponent.propDecorators = {
135
136
  options: [{ type: Input }],
136
137
  confirmationModal: [{ type: ViewChild, args: ['confirmationModal', { static: false },] }]
137
138
  };
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV2RSxPQUFPLElBQXdCLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU16QyxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQW1CLGNBQThCLEVBQVUsWUFBc0IsRUFBVSxNQUFjO1FBQXRGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVR6RyxnQkFBVyxHQUEwQixxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFDbEUsaUJBQVksR0FBMEIscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQ3BFLGlCQUFZLEdBQTBCLHFCQUFxQixDQUFDLE9BQU8sQ0FBQztJQU95QyxDQUFDO0lBRTlHLFFBQVE7SUFDUixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ2xDLCtCQUErQjtRQUMvQixJ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QUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0I7Z0JBQ3hDLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTtTQUMzQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs7O1lBaklGLFNBQVMsU0FBQztnQkFDVCxZQUErQztnQkFDL0MsUUFBUSxFQUFFLHdCQUF3QjthQUNuQzs7O1lBWFEsY0FBYztZQURkLFFBQVE7WUFPUixNQUFNOzs7c0JBT1osS0FBSztnQ0FJTCxTQUFTLFNBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcydcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdHlsZUNvbmZpcm1hdGlvbk1vZGUgfSBmcm9tICcuLi8uLi8uLi9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgUGFnaW5nQWN0aW9uTW9kZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9FbnVtcy9QYWdpbmdBY3Rpb25Nb2RlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9Db25maXJtYXRpb25Nb2RhbE9wdGlvbnMnO1xyXG5pbXBvcnQgU3dhbCwgeyBTd2VldEFsZXJ0SWNvbiB9IGZyb20gJ3N3ZWV0YWxlcnQyJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHNlbGVjdG9yOiAnQkJTRi1Db25maXJtYXRpb25Nb2RhbCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgb3B0aW9uczogQ29uZmlybWF0aW9uTW9kYWxPcHRpb25zO1xyXG4gIHN0eWxlRGFuZ2VyOiBTdHlsZUNvbmZpcm1hdGlvbk1vZGUgPSBTdHlsZUNvbmZpcm1hdGlvbk1vZGUuRGFuZ2VyO1xyXG4gIHN0eWxlV2FybmluZzogU3R5bGVDb25maXJtYXRpb25Nb2RlID0gU3R5bGVDb25maXJtYXRpb25Nb2RlLldhcm5pbmc7XHJcbiAgc3R5bGVTdWNjZXNzOiBTdHlsZUNvbmZpcm1hdGlvbk1vZGUgPSBTdHlsZUNvbmZpcm1hdGlvbk1vZGUuU3VjY2VzcztcclxuICBAVmlld0NoaWxkKCdjb25maXJtYXRpb25Nb2RhbCcsIHsgc3RhdGljOiBmYWxzZSB9KSBjb25maXJtYXRpb25Nb2RhbDogRWxlbWVudFJlZjtcclxuICBpY29uOiBTd2VldEFsZXJ0SWNvbjtcclxuICBidG5Db2xvcjogYW55O1xyXG4gIGljb25IdG1sOiBzdHJpbmc7XHJcblxyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLy9NZXRob2QgdXNlZCB0byBzaG93IGNvbmZpcm1hdGlvbiBtb2RhbFxyXG4gIHNob3dNb2RhbCgpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKClcclxuICAgIC8vY2hlY2sgZm9yIG9wdGlvbnMgdGV4dCB2YWx1ZXNcclxuICAgIHRoaXMuc2V0VGV4dFZhbHVlcygpO1xyXG4gICAgLy9zd2VldGFsZXJ0IHN0eWxlcy8vXHJcbiAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucy5TdHlsZUNvbmZpcm1hdGlvbk1vZGUpIHtcclxuICAgICAgY2FzZSB0aGlzLnN0eWxlU3VjY2Vzczoge1xyXG4gICAgICAgIHRoaXMuaWNvbiA9ICdzdWNjZXNzJ1xyXG4gICAgICAgIHRoaXMuYnRuQ29sb3IgPSAnIzUwY2Q4OSdcclxuICAgICAgICB0aGlzLmljb25IdG1sPSc8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCI+PC9pPidcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIHRoaXMuc3R5bGVXYXJuaW5nOiB7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJ3dhcm5pbmcnXHJcbiAgICAgICAgdGhpcy5idG5Db2xvciA9ICcjZmZjNzAwJ1xyXG4gICAgICAgIHRoaXMuaWNvbkh0bWw9JzxpIGNsYXNzPVwiZmEgZmEtd2FybmluZ1wiPjwvaT4nXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgdGhpcy5zdHlsZURhbmdlcjoge1xyXG4gICAgICAgIHRoaXMuaWNvbiA9ICdlcnJvcidcclxuICAgICAgICB0aGlzLmJ0bkNvbG9yID0gJyNmMTQxNmMnXHJcbiAgICAgICAgdGhpcy5pY29uSHRtbD0nPGkgY2xhc3M9XCJmYSBmYS1jbG9zZVwiPjwvaT4nXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgdGl0bGU6dGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKHRoaXMub3B0aW9ucy5Db25maXJtYXRpb25IZWFkZXIpLFxyXG4gICAgICAgICAgdGV4dDogdGhpcy5vcHRpb25zLkNvbmZpcm1hdGlvbkJvZHksXHJcbiAgICAgICAgICBpY29uOiB0aGlzLmljb24sXHJcbiAgICAgICAgICBpY29uQ29sb3I6dGhpcy5idG5Db2xvcixcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25Db2xvcjogdGhpcy5idG5Db2xvcixcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvbkNvbG9yOiAnI2Y1ZjhmYScsXHJcbiAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OnRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpLFxyXG4gICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6dGhpcy5vcHRpb25zLlN1Ym1pdEJ1dHRvblRleHQsXHJcbiAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0aGlzLm9wdGlvbnMuc2hvd0NhbmNlbEJ1dHRvbixcclxuICAgICAgICAgIHNob3dDbG9zZUJ1dHRvbjogIHRoaXMub3B0aW9ucy5zaG93Q2xvc2VCdXR0b24sXHJcbiAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VibWl0KClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5zdG9wQmxvY2tVSSgpXHJcbiAgfVxyXG4gIHByaXZhdGUgc2V0VGV4dFZhbHVlcygpIHtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLkNvbmZpcm1hdGlvbkhlYWRlcilcclxuICAgICAgdGhpcy5vcHRpb25zLkNvbmZpcm1hdGlvbkhlYWRlciA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZUNvbmZpcm1hdGlvblwiKTtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLkNvbmZpcm1hdGlvbkJvZHkpXHJcbiAgICAgIHRoaXMub3B0aW9ucy5Db25maXJtYXRpb25Cb2R5ID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlX1F1ZXN0aW9uXCIpO1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuU3VibWl0QnV0dG9uVGV4dClcclxuICAgICAgdGhpcy5vcHRpb25zLlN1Ym1pdEJ1dHRvblRleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVcIik7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSlcclxuICAgICAgdGhpcy5vcHRpb25zLlN1Y2Nlc3NOb3RpZmljYXRpb25NZXNzYWdlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlZFN1Y2Nlc3NmdWxseVwiKTtcclxuICB9XHJcbiAgLy9Nb2RhbCBjb25maXJtYXRpb24gc3VibWl0IGZ1bmN0aW9uXHJcbiAgc3VibWl0KCkge1xyXG4gICAgbGV0IHN1Ym1pdE1vZGVsID0gdGhpcy5vcHRpb25zLlNlcnZpY2VTdWJtaXRNb2RlbDtcclxuXHJcbiAgICBsZXQgc3VibWl0dGVkU2VydmljZSA9IHRoaXMub3B0aW9ucy5TZXJ2aWNlU3VibWl0RnVuY3Rpb24uYXBwbHkobnVsbCwgc3VibWl0TW9kZWwpIGFzIE9ic2VydmFibGU8YW55PlxyXG4gICAgc3VibWl0dGVkU2VydmljZS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXN1bHQpID0+IHtcclxuICAgICAgICBpZighdGhpcy5vcHRpb25zLkRpc2FibGVNb2RhbERpc21pc3MpXHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZGlzbWlzc0FsbCgpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5EaXNhYmxlU3VjY2Vzc05vdGlmaWNhdGlvbikge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuU3VjY2Vzc05vdGlmaWNhdGlvbk1lc3NhZ2UpXHJcbiAgICAgICAgICAgIHRoaXMub3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZWRTdWNjZXNzZnVsbHlcIik7XHJcbiAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeVN1Y2Nlc3NNZXNzYWdlKHRoaXMub3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSlcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5PblN1Y2Nlc3NIYW5kbGVyKVxyXG4gICAgICAgICAgdGhpcy5vcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIocmVzdWx0KVxyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlKSB7XHJcbiAgICAgICAgICBsZXQgcGFnaW5nID0gdGhpcy5vcHRpb25zLlBhZ2luZ1JlZmVyZW5jZTtcclxuICAgICAgICAgIHRoaXMub3B0aW9ucy5QYWdpbmdBY3Rpb25Nb2RlID09IFBhZ2luZ0FjdGlvbk1vZGUuUmVpbml0aWFsaXplID8gcGFnaW5nLlJlaW5pdGlhbGl6ZVBhZ2luZygpIDogcGFnaW5nLlVwZGF0ZVBhZ2luZygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuT25FcnJvckhhbmRsZXIpXHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuT25FcnJvckhhbmRsZXIoZXJyb3IpXHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyOiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgbGV0IGVycm9yTWVzc2FnZSA9ICcnO1xyXG4gICAgaWYgKGVyci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHtcclxuICAgICAgZXJyb3JNZXNzYWdlID0gYEFuIGVycm9yIG9jY3VycmVkOiAke2Vyci5lcnJvci5tZXNzYWdlfWA7XHJcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLkRpc2FibGVFcnJvck5vdGlmaWNhdGlvbilcclxuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeUVycm9yTWVzc2FnZSgpXHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAoZXJyLnN0YXR1cyA9PSA0MDEpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1wiL0FkbWluL2FjY291bnQvbG9naW5cIl0pXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChlcnIuc3RhdHVzID09IDUxMCkge1xyXG4gICAgICBlcnJvck1lc3NhZ2UgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpPT1cImVuXCI/IFwiQ2FuIG5vdCBkZWxldGUgdGhpcyBpdGVtIGFzIGl0IGlzIHJlbGF0ZWQgdG8gb3RoZXJzXCI6XCLZhNinINmK2YXZg9mGINit2LDZgSDZh9iw2Kcg2KfZhNi52YbYtdixINmE2KPZhtmHINmF2LHYqtio2Lcg2KjYudmG2KfYtdixINij2K7YsdmJXCI7XHJcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLkRpc2FibGVFcnJvck5vdGlmaWNhdGlvbilcclxuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeUVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgZXJyb3JNZXNzYWdlID0gYFNlcnZlciByZXR1cm5lZCBjb2RlOiAke2Vyci5zdGF0dXN9LCBlcnJvciBtZXNzYWdlIGlzOiAke2Vyci5tZXNzYWdlfWA7XHJcbiAgICAgIGNvbnNvbGUubG9nKGVycm9yTWVzc2FnZSk7XHJcbiAgICAgIGlmICghdGhpcy5vcHRpb25zLkRpc2FibGVFcnJvck5vdGlmaWNhdGlvbilcclxuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLm5vdGlmeUVycm9yTWVzc2FnZSgpXHJcbiAgICB9XHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKCk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uZmlybWF0aW9uTW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUV6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV2RSxPQUFPLElBQXdCLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU16QyxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQW1CLGNBQThCLEVBQVUsWUFBc0IsRUFBVSxNQUFjO1FBQXRGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVR6RyxnQkFBVyxHQUEwQixxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFDbEUsaUJBQVksR0FBMEIscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQ3BFLGlCQUFZLEdBQTBCLHFCQUFxQixDQUFDLE9BQU8sQ0FBQztJQU95QyxDQUFDO0lBRTlHLFFBQVE7SUFDUixDQUFDO0lBRUQsd0NBQXdDO0lBQ3hDLFNBQVM7UUFDUCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ2xDLCtCQUErQjtRQUMvQixJ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RyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QjtnQkFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1NBQzNDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDOzs7WUFsSUYsU0FBUyxTQUFDO2dCQUNULFlBQStDO2dCQUMvQyxRQUFRLEVBQUUsd0JBQXdCO2FBQ25DOzs7WUFYUSxjQUFjO1lBRGQsUUFBUTtZQU9SLE1BQU07OztzQkFPWixLQUFLO2dDQUlMLFNBQVMsU0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJ1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFN0eWxlQ29uZmlybWF0aW9uTW9kZSB9IGZyb20gJy4uLy4uLy4uL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgeyBQYWdpbmdBY3Rpb25Nb2RlIH0gZnJvbSAnLi4vLi4vU2hhcmVkL0VudW1zL1BhZ2luZ0FjdGlvbk1vZGUnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnMgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL0NvbmZpcm1hdGlvbk1vZGFsT3B0aW9ucyc7XHJcbmltcG9ydCBTd2FsLCB7IFN3ZWV0QWxlcnRJY29uIH0gZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICdDb25maXJtYXRpb25Nb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc2VsZWN0b3I6ICdCQlNGLUNvbmZpcm1hdGlvbk1vZGFsJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBvcHRpb25zOiBDb25maXJtYXRpb25Nb2RhbE9wdGlvbnM7XHJcbiAgc3R5bGVEYW5nZXI6IFN0eWxlQ29uZmlybWF0aW9uTW9kZSA9IFN0eWxlQ29uZmlybWF0aW9uTW9kZS5EYW5nZXI7XHJcbiAgc3R5bGVXYXJuaW5nOiBTdHlsZUNvbmZpcm1hdGlvbk1vZGUgPSBTdHlsZUNvbmZpcm1hdGlvbk1vZGUuV2FybmluZztcclxuICBzdHlsZVN1Y2Nlc3M6IFN0eWxlQ29uZmlybWF0aW9uTW9kZSA9IFN0eWxlQ29uZmlybWF0aW9uTW9kZS5TdWNjZXNzO1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbmZpcm1hdGlvbk1vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbmZpcm1hdGlvbk1vZGFsOiBFbGVtZW50UmVmO1xyXG4gIGljb246IFN3ZWV0QWxlcnRJY29uO1xyXG4gIGJ0bkNvbG9yOiBhbnk7XHJcbiAgaWNvbkh0bWw6IHN0cmluZztcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLy9NZXRob2QgdXNlZCB0byBzaG93IGNvbmZpcm1hdGlvbiBtb2RhbFxyXG4gIHNob3dNb2RhbCgpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RhcnRCbG9ja1VJKClcclxuICAgIC8vY2hlY2sgZm9yIG9wdGlvbnMgdGV4dCB2YWx1ZXNcclxuICAgIHRoaXMuc2V0VGV4dFZhbHVlcygpO1xyXG4gICAgLy9zd2VldGFsZXJ0IHN0eWxlcy8vXHJcbiAgICBzd2l0Y2ggKHRoaXMub3B0aW9ucy5TdHlsZUNvbmZpcm1hdGlvbk1vZGUpIHtcclxuICAgICAgY2FzZSB0aGlzLnN0eWxlU3VjY2Vzczoge1xyXG4gICAgICAgIHRoaXMuaWNvbiA9ICdzdWNjZXNzJ1xyXG4gICAgICAgIHRoaXMuYnRuQ29sb3IgPSAnIzUwY2Q4OSdcclxuICAgICAgICB0aGlzLmljb25IdG1sPSc8aSBjbGFzcz1cImZhIGZhLWNoZWNrXCI+PC9pPidcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlIHRoaXMuc3R5bGVXYXJuaW5nOiB7XHJcbiAgICAgICAgdGhpcy5pY29uID0gJ3dhcm5pbmcnXHJcbiAgICAgICAgdGhpcy5idG5Db2xvciA9ICcjZmZjNzAwJ1xyXG4gICAgICAgIHRoaXMuaWNvbkh0bWw9JzxpIGNsYXNzPVwiZmEgZmEtd2FybmluZ1wiPjwvaT4nXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgdGhpcy5zdHlsZURhbmdlcjoge1xyXG4gICAgICAgIHRoaXMuaWNvbiA9ICdlcnJvcidcclxuICAgICAgICB0aGlzLmJ0bkNvbG9yID0gJyNmMTQxNmMnXHJcbiAgICAgICAgdGhpcy5pY29uSHRtbD0nPGkgY2xhc3M9XCJmYSBmYS1jbG9zZVwiPjwvaT4nXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBTd2FsLmZpcmUoe1xyXG4gICAgICAgICAgdGl0bGU6dGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKHRoaXMub3B0aW9ucy5Db25maXJtYXRpb25IZWFkZXIpLFxyXG4gICAgICAgICAgdGV4dDogdGhpcy5vcHRpb25zLkNvbmZpcm1hdGlvbkJvZHksXHJcbiAgICAgICAgICBpY29uOiB0aGlzLmljb24sXHJcbiAgICAgICAgICBpY29uQ29sb3I6dGhpcy5idG5Db2xvcixcclxuICAgICAgICAgIGNvbmZpcm1CdXR0b25Db2xvcjogdGhpcy5idG5Db2xvcixcclxuICAgICAgICAgIGNhbmNlbEJ1dHRvbkNvbG9yOiAnI2Y1ZjhmYScsXHJcbiAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OnRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkNhbmNlbExhYmVsXCIpLFxyXG4gICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6dGhpcy5vcHRpb25zLlN1Ym1pdEJ1dHRvblRleHQsXHJcbiAgICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0aGlzLm9wdGlvbnMuc2hvd0NhbmNlbEJ1dHRvbixcclxuICAgICAgICAgIHNob3dDbG9zZUJ1dHRvbjogIHRoaXMub3B0aW9ucy5zaG93Q2xvc2VCdXR0b24sXHJcbiAgICAgICAgICBhbGxvd091dHNpZGVDbGljazogZmFsc2VcclxuICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zdWJtaXQoKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLnN0b3BCbG9ja1VJKClcclxuICB9XHJcbiAgcHJpdmF0ZSBzZXRUZXh0VmFsdWVzKCkge1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uSGVhZGVyKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uSGVhZGVyID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlQ29uZmlybWF0aW9uXCIpO1xyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuQ29uZmlybWF0aW9uQm9keSlcclxuICAgICAgdGhpcy5vcHRpb25zLkNvbmZpcm1hdGlvbkJvZHkgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVfUXVlc3Rpb25cIik7XHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5TdWJtaXRCdXR0b25UZXh0KVxyXG4gICAgICB0aGlzLm9wdGlvbnMuU3VibWl0QnV0dG9uVGV4dCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIkRlbGV0ZVwiKTtcclxuICAgIGlmICghdGhpcy5vcHRpb25zLlN1Y2Nlc3NOb3RpZmljYXRpb25NZXNzYWdlKVxyXG4gICAgICB0aGlzLm9wdGlvbnMuU3VjY2Vzc05vdGlmaWNhdGlvbk1lc3NhZ2UgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJEZWxldGVkU3VjY2Vzc2Z1bGx5XCIpO1xyXG4gIH1cclxuICAvL01vZGFsIGNvbmZpcm1hdGlvbiBzdWJtaXQgZnVuY3Rpb25cclxuICBzdWJtaXQoKSB7XHJcbiAgICBsZXQgc3VibWl0TW9kZWwgPSB0aGlzLm9wdGlvbnMuU2VydmljZVN1Ym1pdE1vZGVsO1xyXG5cclxuICAgIGxldCBzdWJtaXR0ZWRTZXJ2aWNlID0gdGhpcy5vcHRpb25zLlNlcnZpY2VTdWJtaXRGdW5jdGlvbi5hcHBseShudWxsLCBzdWJtaXRNb2RlbCkgYXMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICBzdWJtaXR0ZWRTZXJ2aWNlLnN1YnNjcmliZShcclxuICAgICAgKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmKCF0aGlzLm9wdGlvbnMuRGlzYWJsZU1vZGFsRGlzbWlzcylcclxuICAgICAgICB0aGlzLm1vZGFsU2VydmljZS5kaXNtaXNzQWxsKCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zLkRpc2FibGVTdWNjZXNzTm90aWZpY2F0aW9uKSB7XHJcbiAgICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5TdWNjZXNzTm90aWZpY2F0aW9uTWVzc2FnZSlcclxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLlN1Y2Nlc3NOb3RpZmljYXRpb25NZXNzYWdlID0gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKFwiRGVsZXRlZFN1Y2Nlc3NmdWxseVwiKTtcclxuICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5U3VjY2Vzc01lc3NhZ2UodGhpcy5vcHRpb25zLlN1Y2Nlc3NOb3RpZmljYXRpb25NZXNzYWdlKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLk9uU3VjY2Vzc0hhbmRsZXIpXHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuT25TdWNjZXNzSGFuZGxlcihyZXN1bHQpXHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5QYWdpbmdSZWZlcmVuY2UpIHtcclxuICAgICAgICAgIGxldCBwYWdpbmcgPSB0aGlzLm9wdGlvbnMuUGFnaW5nUmVmZXJlbmNlO1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zLlBhZ2luZ0FjdGlvbk1vZGUgPT0gUGFnaW5nQWN0aW9uTW9kZS5SZWluaXRpYWxpemUgPyBwYWdpbmcuUmVpbml0aWFsaXplUGFnaW5nKCkgOiBwYWdpbmcuVXBkYXRlUGFnaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5PbkVycm9ySGFuZGxlcilcclxuICAgICAgICAgIHRoaXMub3B0aW9ucy5PbkVycm9ySGFuZGxlcihlcnJvcilcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihlcnI6IEh0dHBFcnJvclJlc3BvbnNlKSB7XHJcbiAgICBsZXQgZXJyb3JNZXNzYWdlID0gJyc7XHJcbiAgICBpZiAoZXJyLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkge1xyXG4gICAgICBlcnJvck1lc3NhZ2UgPSBgQW4gZXJyb3Igb2NjdXJyZWQ6ICR7ZXJyLmVycm9yLm1lc3NhZ2V9YDtcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuRGlzYWJsZUVycm9yTm90aWZpY2F0aW9uKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKClcclxuICAgIH1cclxuXHJcbiAgICBlbHNlIGlmIChlcnIuc3RhdHVzID09IDQwMSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvQWRtaW4vYWNjb3VudC9sb2dpblwiXSlcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGVyci5zdGF0dXMgPT0gNTEwKSB7XHJcbiAgICAgIGVycm9yTWVzc2FnZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0Q3VycmVudExhbmd1YWdlKCk9PVwiZW5cIj8gXCJDYW4gbm90IGRlbGV0ZSB0aGlzIGl0ZW0gYXMgaXQgaXMgcmVsYXRlZCB0byBvdGhlcnNcIjpcItmE2Kcg2YrZhdmD2YYg2K3YsNmBINmH2LDYpyDYp9mE2LnZhti12LEg2YTYo9mG2Ycg2YXYsdiq2KjYtyDYqNi52YbYp9i12LEg2KPYrtix2YlcIjtcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuRGlzYWJsZUVycm9yTm90aWZpY2F0aW9uKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSlcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBlcnJvck1lc3NhZ2UgPSBgU2VydmVyIHJldHVybmVkIGNvZGU6ICR7ZXJyLnN0YXR1c30sIGVycm9yIG1lc3NhZ2UgaXM6ICR7ZXJyLm1lc3NhZ2V9YDtcclxuICAgICAgY29uc29sZS5sb2coZXJyb3JNZXNzYWdlKTtcclxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuRGlzYWJsZUVycm9yTm90aWZpY2F0aW9uKVxyXG4gICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uubm90aWZ5RXJyb3JNZXNzYWdlKClcclxuICAgIH1cclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2Uuc3RvcEJsb2NrVUkoKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=