@colijnit/sharedcomponents 257.1.9 → 257.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/358.645812766f7a400d0d38.js +1 -0
  2. package/3rdpartylicenses.txt +2222 -0
  3. package/427.c5ac6ff55eed40286273.js +1 -0
  4. package/977.bd6291f9ee6f6ddf91f1.js +1 -0
  5. package/bundles/colijnit-sharedcomponents.umd.js +80 -31
  6. package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
  7. package/colijnit-sharedcomponents.metadata.json +1 -1
  8. package/esm2015/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.js +7 -3
  9. package/esm2015/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.js +5 -3
  10. package/esm2015/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.js +7 -4
  11. package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.component.js +20 -1
  12. package/esm2015/lib/components/send-method-dialog/components/signature-button/signature-button.module.js +4 -3
  13. package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +7 -2
  14. package/esm2015/lib/components/stock/components/stock-location/components/stock-location-popup/stock-location-popup.component.js +32 -12
  15. package/esm2015/lib/components/stock/components/stock-location/stock-location.component.js +20 -14
  16. package/esm2015/lib/enum/icon.enum.js +2 -1
  17. package/esm2015/lib/model/icon-svg.js +2 -1
  18. package/esm2015/lib/res/dictionary/dictionaries.js +3 -3
  19. package/favicon.ico +0 -0
  20. package/fesm2015/colijnit-sharedcomponents.js +93 -32
  21. package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
  22. package/index.html +12 -0
  23. package/lib/components/login/components/input-code/style/_layout.scss +24 -0
  24. package/lib/components/login/components/input-code/style/_material-definition.scss +5 -0
  25. package/lib/components/login/components/input-code/style/_theme.scss +8 -0
  26. package/lib/components/login/components/input-code/style/material.scss +4 -0
  27. package/lib/components/login/style/_layout.scss +37 -1
  28. package/lib/components/login/style/_material-definition.scss +3 -0
  29. package/lib/components/login/style/material.scss +1 -0
  30. package/lib/components/send-method-dialog/components/layout-selection/layout-selection.component.d.ts +3 -2
  31. package/lib/components/send-method-dialog/components/send-method-email/send-method-email.component.d.ts +1 -0
  32. package/lib/components/send-method-dialog/components/send-method-printer/send-method-printer.component.d.ts +4 -3
  33. package/lib/components/send-method-dialog/components/signature-button/signature-button.component.d.ts +4 -0
  34. package/lib/components/send-method-dialog/components/signature-button/style/_layout.scss +5 -0
  35. package/lib/components/send-method-dialog/send-method-dialog.component.d.ts +4 -10
  36. package/lib/components/stock/components/stock-location/components/stock-location-popup/stock-location-popup.component.d.ts +2 -0
  37. package/lib/components/stock/components/stock-location/stock-location.component.d.ts +3 -1
  38. package/lib/components/stock/style/_layout.scss +14 -1
  39. package/lib/enum/icon.enum.d.ts +1 -0
  40. package/lib/res/dictionary/dictionaries.d.ts +8 -0
  41. package/main.cb0160b06b63bc907f13.js +1 -0
  42. package/package.json +3 -3
  43. package/polyfills.907fe9d1887c5de17993.js +1 -0
  44. package/runtime.2f227fcce1a3e45cf104.js +1 -0
  45. package/styles.ac76ee4d03248189b18e.css +1 -0
@@ -14,6 +14,7 @@ export class StockLocationPopupComponent {
14
14
  this.editingRow = false;
15
15
  this.showConfirmationDialog = false;
16
16
  this.newStockLine = false;
17
+ this.deleteStockLine = false;
17
18
  this.selectedArticleDetailsData = new ArticleDetailsBo();
18
19
  this.articleDetailsInformation = new ArticleStockManagement();
19
20
  this.selectedWarehouse = new StockManagementWarehouses();
@@ -23,6 +24,7 @@ export class StockLocationPopupComponent {
23
24
  this.updateGridData = new EventEmitter();
24
25
  this.stockLocations = [];
25
26
  this.stockStatus = [];
27
+ this.stockBelow = false;
26
28
  }
27
29
  set selectedLocationNo(locationNo) {
28
30
  this._selectedLocationNo = locationNo;
@@ -48,12 +50,19 @@ export class StockLocationPopupComponent {
48
50
  return (!((_a = this.selectedArticleDetailsData) === null || _a === void 0 ? void 0 : _a.stockStateId) && ((_c = (_b = this.selectedArticleDetailsData) === null || _b === void 0 ? void 0 : _b.stockStateRemark) === null || _c === void 0 ? void 0 : _c.length) <= 1);
49
51
  }
50
52
  handleOkClick() {
51
- this.handleStockChange();
52
- this.saveEvent.emit(true);
53
- this._changeDetector.detectChanges();
54
- this.togglePopupEvent.emit();
53
+ if (this.selectedArticleDetailsData.amountInStockFree < this.selectedArticleDetailsData.amountInStockOriginal) {
54
+ this.stockBelow = true;
55
+ }
56
+ else {
57
+ this.stockBelow = false;
58
+ this.handleStockChange();
59
+ this.saveEvent.emit(true);
60
+ this._changeDetector.detectChanges();
61
+ this.togglePopupEvent.emit();
62
+ }
55
63
  }
56
64
  togglePopup() {
65
+ this.stockBelow = false;
57
66
  this.togglePopupEvent.emit();
58
67
  }
59
68
  getStockLocations() {
@@ -84,13 +93,19 @@ export class StockLocationPopupComponent {
84
93
  this.selectedArticleDetailsData.goodId = parseInt(this.articleDetailsInformation.goodId);
85
94
  }
86
95
  this.selectedArticleDetailsData.entryDate = new Date();
87
- this.selectedArticleDetailsData.warehouseNo = this.selectedWarehouse.warehouseNo;
88
- if (this.selectedLocationNo && this.articleFlat.locationRegistered) {
89
- this.selectedArticleDetailsData.locationNo = (_a = this.selectedLocationNo) === null || _a === void 0 ? void 0 : _a.toString();
96
+ if (this.deleteStockLine) {
97
+ this.selectedWarehouse.warehouseNo = this.selectedArticleDetailsData.warehouseNo;
98
+ this.selectedArticleDetailsData.amountInStock = 0;
90
99
  }
91
- if (!this.selectedArticleDetailsData.amountInStock) {
92
- this.selectedArticleDetailsData.amountInStock = 1;
100
+ else {
101
+ this.selectedArticleDetailsData.warehouseNo = this.selectedWarehouse.warehouseNo;
102
+ if (this.selectedLocationNo && this.articleFlat.locationRegistered) {
103
+ this.selectedArticleDetailsData.locationNo = (_a = this.selectedLocationNo) === null || _a === void 0 ? void 0 : _a.toString();
104
+ }
93
105
  }
106
+ //if (!this.selectedArticleDetailsData.amountInStock) {
107
+ // this.selectedArticleDetailsData.amountInStock = 1;
108
+ // }
94
109
  this._stockService.updateArticleDetails(this.selectedArticleDetailsData).then(result => {
95
110
  var _a;
96
111
  this.articleDetailsInformation.goodId = (_a = this.selectedArticleDetailsData.goodId) === null || _a === void 0 ? void 0 : _a.toString();
@@ -122,7 +137,10 @@ StockLocationPopupComponent.decorators = [
122
137
  <div class="co-dialog-header-title" [textContent]="'CONFIRM_STOCK_CHANGE' | sharedLocalize"></div>
123
138
  </div>
124
139
  </ng-template>
125
- <div class="dialog-wrapper">
140
+ <div *ngIf="deleteStockLine" class="dialog-wrapper">
141
+ <span class="stock-header" [textContent]="'DELETE_STOCK_LINE?' | sharedLocalize"></span>
142
+ </div>
143
+ <div *ngIf="!deleteStockLine" class="dialog-wrapper">
126
144
  <div class="stock-dialog-header">
127
145
  <span class="stock-header" *ngIf="newStockLine" [textContent]="'NEW_STOCK_LINE' | sharedLocalize"></span>
128
146
  <span class="stock-header" *ngIf="!newStockLine" [textContent]="'CHANGE_STOCK_LINE' | sharedLocalize"></span>
@@ -173,13 +191,14 @@ StockLocationPopupComponent.decorators = [
173
191
  [(model)]="selectedArticleDetailsData.amountInStock"
174
192
  [label]="'STOCK' | sharedLocalize"
175
193
  (modelChange)="amountInStockChanged($event)"
176
- [min]="1"
194
+ [min]="0"
177
195
  ></co-input-number-picker>
178
196
  <span class="filler"></span>
179
197
  </div>
180
198
  </div>
181
199
  <ng-template #footerTemplate>
182
200
  <div class="button-wrapper ok-cancel-buttons">
201
+ <span *ngIf="stockBelow" class="minimum-stock" [textContent]="'STOCK_BELOW_ZERO_TEXT' | sharedLocalize"></span>
183
202
  <co-button class="save-button"
184
203
  (click)="handleOkClick()"
185
204
  [iconData]="iconCacheService.getIcon(icons.CheckDuotone)"
@@ -206,6 +225,7 @@ StockLocationPopupComponent.propDecorators = {
206
225
  editingRow: [{ type: Input }],
207
226
  showConfirmationDialog: [{ type: Input }],
208
227
  newStockLine: [{ type: Input }],
228
+ deleteStockLine: [{ type: Input }],
209
229
  selectedArticleDetailsData: [{ type: Input }],
210
230
  articleFlat: [{ type: Input }],
211
231
  articleDetailsInformation: [{ type: Input }],
@@ -218,4 +238,4 @@ StockLocationPopupComponent.propDecorators = {
218
238
  stockLocations: [{ type: Input }],
219
239
  stockStatus: [{ type: Input }]
220
240
  };
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stbG9jYXRpb24tcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9zdG9jay1sb2NhdGlvbi9jb21wb25lbnRzL3N0b2NrLWxvY2F0aW9uLXBvcHVwL3N0b2NrLWxvY2F0aW9uLXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDckUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDakcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scURBQXFELENBQUM7QUErRnJGLE1BQU0sT0FBTywyQkFBMkI7SUFrRHRDLFlBQ1MsZ0JBQWtDLEVBQ2pDLGFBQTJCLEVBQzNCLGVBQWtDO1FBRm5DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBcEQ1QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQUtuQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRTVCLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUV4QyxpQkFBWSxHQUFZLEtBQUss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S0FBSzsyQkFFTCxLQUFLO3lDQUVMLEtBQUs7MEJBR0wsS0FBSzt3Q0FHTCxLQUFLO2dDQUdMLEtBQUs7aUNBR0wsS0FBSzsrQkFTTCxLQUFLOytCQUdMLE1BQU07d0JBR04sTUFBTTs2QkFHTixNQUFNOzZCQUVOLEtBQUs7MEJBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtTdG9ja1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvc3RvY2stbWFuYWdlbWVudC13YXJlaG91c2VzLmJvXCI7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrTWFuYWdlbWVudH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2stbWFuYWdlbWVudFwiO1xyXG5pbXBvcnQge0FydGljbGVEZXRhaWxzQm99IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm9cIjtcclxuaW1wb3J0IHtTdG9ja1N0YXR1c30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLXN0YXR1cy5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVGbGF0fSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mbGF0LmJvXCI7XHJcbmltcG9ydCB7U3RvY2tMb2NhdGlvbn0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWxvY2F0aW9uLmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1zdG9jay1sb2NhdGlvbi1wb3B1cFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwic3RvY2stZ3JpZFwiPlxyXG4gICAgICA8Y28tZGlhbG9nICpuZ0lmPVwic2hvd0NvbmZpcm1hdGlvbkRpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgW3Nob3dDbG9zZUljb25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgW21vZGFsXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgIChjbG9zZUNsaWNrKT1cInRvZ2dsZVBvcHVwKClcIlxyXG4gICAgICAgICAgICAgICAgIFtoZWFkZXJUZW1wbGF0ZV09XCJoZWFkZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNoZWFkZXJUZW1wbGF0ZT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGNvLWljb24gW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DdWJlcylcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidDT05GSVJNX1NUT0NLX0NIQU5HRScgfCBzaGFyZWRMb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1kaWFsb2ctaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RvY2staGVhZGVyXCIgKm5nSWY9XCJuZXdTdG9ja0xpbmVcIiBbdGV4dENvbnRlbnRdPVwiJ05FV19TVE9DS19MSU5FJyB8IHNoYXJlZExvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0b2NrLWhlYWRlclwiICpuZ0lmPVwiIW5ld1N0b2NrTGluZVwiIFt0ZXh0Q29udGVudF09XCInQ0hBTkdFX1NUT0NLX0xJTkUnIHwgc2hhcmVkTG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1kaWFsb2ctcm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCJzZWxlY3RlZFdhcmVob3VzZT8ud2FyZWhvdXNlRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1dBUkVIT1VTRScgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc2VyaWFsTm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFUklBTF9OTycgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stZGlhbG9nLXJvd1wiPlxyXG4gICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgKm5nSWY9XCJhcnRpY2xlRmxhdC5sb2NhdGlvblJlZ2lzdGVyZWRcIlxyXG4gICAgICAgICAgICAgIFttb2RlbF09XCJsb2NhdGlvbkZvck51bWJlcihzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5sb2NhdGlvbk5vKVwiXHJcbiAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwic3RvY2tMb2NhdGlvbnNcIlxyXG4gICAgICAgICAgICAgIFtkaXNwbGF5RmllbGRdPVwiJ2xvY2F0aW9uTm8nXCJcclxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0xPQ0FUSU9OJyB8IHNoYXJlZExvY2FsaXplXCJcclxuICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImxvY2F0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPjwvY28tbGlzdC1vZi12YWx1ZXM+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmJhdGNoTm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0JBVENIJyB8IHNoYXJlZExvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWRpYWxvZy1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWRpYWxvZy1yb3ctcm93XCI+XHJcbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgW21vZGVsXT1cImFydGljbGVTdG9ja0luZm9bMF0/LnB1cmNoYXNlUHJpY2UgfCBjdXJyZW5jeTonRVVSJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidQVVJDSEFTRV9QUklDRScgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cImFydGljbGVTdG9ja0luZm9bMF0uY3VycmVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInVkFMVVRBJyB8IHNoYXJlZExvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtZGF0ZSBbbW9kZWxdPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE/LmVudHJ5RGF0ZT8gc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE/LmVudHJ5RGF0ZSA6IG5ld0RhdGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInREFURScgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LWRhdGU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1kaWFsb2ctcm93XCI+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC1udW1iZXItcGlja2VyXHJcbiAgICAgICAgICAgICAgWyhtb2RlbCldPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYW1vdW50SW5TdG9ja1wiXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidTVE9DSycgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImFtb3VudEluU3RvY2tDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIFttaW5dPVwiMVwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LW51bWJlci1waWNrZXI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsbGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24td3JhcHBlciBvay1jYW5jZWwtYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPa0NsaWNrKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIj5cclxuICAgICAgICAgICAgPC9jby1idXR0b24+XHJcbiAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUG9wdXAoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc1NraW5ueSlcIj5cclxuICAgICAgICAgICAgPC9jby1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2NvLWRpYWxvZz5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvY2tMb2NhdGlvblBvcHVwQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRMb2NhdGlvbk5vOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGVkaXRpbmdSb3c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q29uZmlybWF0aW9uRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbmV3U3RvY2tMaW5lOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE6IEFydGljbGVEZXRhaWxzQm8gPSBuZXcgQXJ0aWNsZURldGFpbHNCbygpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlRmxhdDogQXJ0aWNsZUZsYXQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGVEZXRhaWxzSW5mb3JtYXRpb246IEFydGljbGVTdG9ja01hbmFnZW1lbnQgPSBuZXcgQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCgpXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlbGVjdGVkV2FyZWhvdXNlOiBTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzID0gbmV3IFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNlbGVjdGVkTG9jYXRpb25Obyhsb2NhdGlvbk5vIDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZExvY2F0aW9uTm8gPSBsb2NhdGlvbk5vO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRMb2NhdGlvbk5vKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRMb2NhdGlvbk5vO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZVN0b2NrSW5mbzogQXJ0aWNsZURldGFpbHNCb1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB0b2dnbGVQb3B1cEV2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzYXZlRXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHVwZGF0ZUdyaWREYXRhOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZURldGFpbHNCb1tdPiA9IG5ldyBFdmVudEVtaXR0ZXI8QXJ0aWNsZURldGFpbHNCb1tdPigpO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHN0b2NrTG9jYXRpb25zOiBTdG9ja0xvY2F0aW9uW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc3RvY2tTdGF0dXM6IFN0b2NrU3RhdHVzW10gPSBbXTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zdG9ja1NlcnZpY2U6IFN0b2NrU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgcHVibGljIHN0YXR1c0ZvcklkKGlkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b2NrU3RhdHVzLmZpbmQoc3RhdHVzID0+IHN0YXR1cy5zdG9ja1N0YXRlSWQgPT09IGlkKSA/IHRoaXMuc3RvY2tTdGF0dXMuZmluZChzdGF0dXMgPT4gc3RhdHVzLnN0b2NrU3RhdGVJZCA9PT0gaWQpIDogMCA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RvY2tTdGF0dXNDaGFuZ2Uoc3RhdHVzOiBTdG9ja1N0YXR1cykge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zdG9ja1N0YXRlSWQgPSBzdGF0dXMuc3RvY2tTdGF0ZUlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrU3RhdHVzUmVtYXJrQ2hhbmdlKHJlbWFyazogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnN0b2NrU3RhdGVSZW1hcmsgPSByZW1hcms7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYW1vdW50SW5TdG9ja0NoYW5nZWQoZGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrID0gZGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiAoIXRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE/LnN0b2NrU3RhdGVJZCAmJiB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5zdG9ja1N0YXRlUmVtYXJrPy5sZW5ndGggPD0gMSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlT2tDbGljaygpIHtcclxuICAgIHRoaXMuaGFuZGxlU3RvY2tDaGFuZ2UoKTtcclxuICAgIHRoaXMuc2F2ZUV2ZW50LmVtaXQodHJ1ZSk7XHJcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLnRvZ2dsZVBvcHVwRXZlbnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyB0b2dnbGVQb3B1cCgpIHtcclxuICAgIHRoaXMudG9nZ2xlUG9wdXBFdmVudC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RvY2tMb2NhdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tNYW5hZ2VtZW50TG9jYXRpb25zKHRoaXMuc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm8pLnRoZW4oKGxvY2F0aW9ucykgPT4ge1xyXG4gICAgICB0aGlzLnN0b2NrTG9jYXRpb25zID0gbG9jYXRpb25zO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9jYXRpb25Gb3JOdW1iZXIobnVtYmVyOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b2NrTG9jYXRpb25zPy5maW5kKGxvY2F0aW9uID0+IGxvY2F0aW9uLmxvY2F0aW9uTm8gPT09IG51bWJlcikgPyB0aGlzLnN0b2NrTG9jYXRpb25zPy5maW5kKGxvY2F0aW9uID0+IGxvY2F0aW9uLmxvY2F0aW9uTm8gPT09IG51bWJlcikgOiBcIlwiIDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2NhdGlvbkNoYW5nZWQoZXZlbnQ6IFN0b2NrTG9jYXRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbk5vID0gZXZlbnQubG9jYXRpb25ObztcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEubG9jYXRpb25ObyA9IGV2ZW50LmxvY2F0aW9uTm87XHJcbiAgICBpZiAodGhpcy5hcnRpY2xlU3RvY2tJbmZvPy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgdGhpcy5oYW5kbGVTdG9ja0NoYW5nZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRTdG9ja0xvY2F0aW9ucygpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RvY2tDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmFydGljbGVGbGF0Lmdvb2RJZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmdvb2RJZCA9IHRoaXMuYXJ0aWNsZUZsYXQuZ29vZElkO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24uZ29vZElkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuZ29vZElkID0gcGFyc2VJbnQodGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmVudHJ5RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLndhcmVob3VzZU5vID0gdGhpcy5zZWxlY3RlZFdhcmVob3VzZS53YXJlaG91c2VObztcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYXRpb25ObyAmJiB0aGlzLmFydGljbGVGbGF0LmxvY2F0aW9uUmVnaXN0ZXJlZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmxvY2F0aW9uTm8gPSB0aGlzLnNlbGVjdGVkTG9jYXRpb25Obz8udG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYW1vdW50SW5TdG9jayA9IDE7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UudXBkYXRlQXJ0aWNsZURldGFpbHModGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YSkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5nb29kSWQgPSB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmdvb2RJZD8udG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24ud2FyZWhvdXNlTnVtYmVyID0gdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS53YXJlaG91c2VObztcclxuICAgICAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZURldGFpbHModGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uKS50aGVuKChkZXRhaWxzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFydGljbGVTdG9ja0luZm8gPSBkZXRhaWxzO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVHcmlkRGF0YS5lbWl0KGRldGFpbHMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5ld0RhdGUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stbG9jYXRpb24tcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9zdG9jay1sb2NhdGlvbi9jb21wb25lbnRzL3N0b2NrLWxvY2F0aW9uLXBvcHVwL3N0b2NrLWxvY2F0aW9uLXBvcHVwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDckUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDMUcsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDakcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scURBQXFELENBQUM7QUFtR3JGLE1BQU0sT0FBTywyQkFBMkI7SUEyRHRDLFlBQ1MsZ0JBQWtDLEVBQ2pDLGFBQTJCLEVBQzNCLGVBQWtDO1FBRm5DLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBN0Q1QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQUtuQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBRzVCLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQUd4QyxpQkFBWSxHQUFZLEtBQUss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QyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sT0FBTztRQUNaLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7WUE1UEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RlQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXZHTyxnQkFBZ0I7WUFFaEIsWUFBWTtZQUhaLGlCQUFpQjs7O3lCQThHdEIsS0FBSztxQ0FHTCxLQUFLOzJCQUdMLEtBQUs7OEJBR0wsS0FBSzt5Q0FHTCxLQUFLOzBCQUdMLEtBQUs7d0NBR0wsS0FBSztnQ0FHTCxLQUFLO2lDQUdMLEtBQUs7K0JBU0wsS0FBSzsrQkFHTCxNQUFNO3dCQUdOLE1BQU07NkJBR04sTUFBTTs2QkFHTixLQUFLOzBCQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7U3RvY2tTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZS9zdG9jay5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc30gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLW1hbmFnZW1lbnQtd2FyZWhvdXNlcy5ib1wiO1xyXG5pbXBvcnQge0FydGljbGVTdG9ja01hbmFnZW1lbnR9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLXN0b2NrLW1hbmFnZW1lbnRcIjtcclxuaW1wb3J0IHtBcnRpY2xlRGV0YWlsc0JvfSBmcm9tIFwiQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1kZXRhaWxzLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1zdGF0dXMuYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlRmxhdH0gZnJvbSBcIkBjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZmxhdC5ib1wiO1xyXG5pbXBvcnQge1N0b2NrTG9jYXRpb259IGZyb20gXCJAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1sb2NhdGlvbi5ib1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tc3RvY2stbG9jYXRpb24tcG9wdXBcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInN0b2NrLWdyaWRcIj5cclxuICAgICAgPGNvLWRpYWxvZyAqbmdJZj1cInNob3dDb25maXJtYXRpb25EaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgIFtzaG93Q2xvc2VJY29uXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgIFttb2RhbF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJ0b2dnbGVQb3B1cCgpXCJcclxuICAgICAgICAgICAgICAgICBbaGVhZGVyVGVtcGxhdGVdPVwiaGVhZGVyVGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxjby1pY29uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3ViZXMpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWhlYWRlci10aXRsZVwiIFt0ZXh0Q29udGVudF09XCInQ09ORklSTV9TVE9DS19DSEFOR0UnIHwgc2hhcmVkTG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImRlbGV0ZVN0b2NrTGluZVwiIGNsYXNzPVwiZGlhbG9nLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RvY2staGVhZGVyXCIgW3RleHRDb250ZW50XT1cIidERUxFVEVfU1RPQ0tfTElORT8nIHwgc2hhcmVkTG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFkZWxldGVTdG9ja0xpbmVcIiBjbGFzcz1cImRpYWxvZy13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stZGlhbG9nLWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0b2NrLWhlYWRlclwiICpuZ0lmPVwibmV3U3RvY2tMaW5lXCIgW3RleHRDb250ZW50XT1cIidORVdfU1RPQ0tfTElORScgfCBzaGFyZWRMb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdG9jay1oZWFkZXJcIiAqbmdJZj1cIiFuZXdTdG9ja0xpbmVcIiBbdGV4dENvbnRlbnRdPVwiJ0NIQU5HRV9TVE9DS19MSU5FJyB8IHNoYXJlZExvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stZGlhbG9nLXJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbbW9kZWxdPVwic2VsZWN0ZWRXYXJlaG91c2U/LndhcmVob3VzZURlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidXQVJFSE9VU0UnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnNlcmlhbE5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVJJQUxfTk8nIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWRpYWxvZy1yb3dcIj5cclxuICAgICAgICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzICpuZ0lmPVwiYXJ0aWNsZUZsYXQubG9jYXRpb25SZWdpc3RlcmVkXCJcclxuICAgICAgICAgICAgICBbbW9kZWxdPVwibG9jYXRpb25Gb3JOdW1iZXIoc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEubG9jYXRpb25ObylcIlxyXG4gICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInN0b2NrTG9jYXRpb25zXCJcclxuICAgICAgICAgICAgICBbZGlzcGxheUZpZWxkXT1cIidsb2NhdGlvbk5vJ1wiXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidMT0NBVElPTicgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJsb2NhdGlvbkNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5iYXRjaE5vXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidCQVRDSCcgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1kaWFsb2ctcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1kaWFsb2ctcm93LXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCJhcnRpY2xlU3RvY2tJbmZvWzBdPy5wdXJjaGFzZVByaWNlIHwgY3VycmVuY3k6J0VVUidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUFVSQ0hBU0VfUFJJQ0UnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJhcnRpY2xlU3RvY2tJbmZvWzBdLmN1cnJlbmN5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1ZBTFVUQScgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGNvLWlucHV0LWRhdGUgW21vZGVsXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5lbnRyeURhdGU/IHNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5lbnRyeURhdGUgOiBuZXdEYXRlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RBVEUnIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+PC9jby1pbnB1dC1kYXRlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvY2stZGlhbG9nLXJvd1wiPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtbnVtYmVyLXBpY2tlclxyXG4gICAgICAgICAgICAgIFsobW9kZWwpXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmFtb3VudEluU3RvY2tcIlxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInU1RPQ0snIHwgc2hhcmVkTG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJhbW91bnRJblN0b2NrQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICBbbWluXT1cIjBcIlxyXG4gICAgICAgICAgICA+PC9jby1pbnB1dC1udW1iZXItcGlja2VyPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGxlclwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uLXdyYXBwZXIgb2stY2FuY2VsLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzdG9ja0JlbG93XCIgY2xhc3M9XCJtaW5pbXVtLXN0b2NrXCIgW3RleHRDb250ZW50XT1cIidTVE9DS19CRUxPV19aRVJPX1RFWFQnIHwgc2hhcmVkTG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9rQ2xpY2soKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiPlxyXG4gICAgICAgICAgICA8L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVQb3B1cCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNyb3NzU2tpbm55KVwiPlxyXG4gICAgICAgICAgICA8L2NvLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvY28tZGlhbG9nPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9ja0xvY2F0aW9uUG9wdXBDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBwcml2YXRlIF9zZWxlY3RlZExvY2F0aW9uTm86IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZWRpdGluZ1JvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q29uZmlybWF0aW9uRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG5ld1N0b2NrTGluZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkZWxldGVTdG9ja0xpbmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE6IEFydGljbGVEZXRhaWxzQm8gPSBuZXcgQXJ0aWNsZURldGFpbHNCbygpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlRmxhdDogQXJ0aWNsZUZsYXQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFydGljbGVEZXRhaWxzSW5mb3JtYXRpb246IEFydGljbGVTdG9ja01hbmFnZW1lbnQgPSBuZXcgQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCgpXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNlbGVjdGVkV2FyZWhvdXNlOiBTdG9ja01hbmFnZW1lbnRXYXJlaG91c2VzID0gbmV3IFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXMoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHNlbGVjdGVkTG9jYXRpb25Obyhsb2NhdGlvbk5vIDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9zZWxlY3RlZExvY2F0aW9uTm8gPSBsb2NhdGlvbk5vO1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRMb2NhdGlvbk5vKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRMb2NhdGlvbk5vO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZVN0b2NrSW5mbzogQXJ0aWNsZURldGFpbHNCb1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB0b2dnbGVQb3B1cEV2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzYXZlRXZlbnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHVwZGF0ZUdyaWREYXRhOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZURldGFpbHNCb1tdPiA9IG5ldyBFdmVudEVtaXR0ZXI8QXJ0aWNsZURldGFpbHNCb1tdPigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdG9ja0xvY2F0aW9uczogU3RvY2tMb2NhdGlvbltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHN0b2NrU3RhdHVzOiBTdG9ja1N0YXR1c1tdID0gW107XHJcblxyXG4gIHB1YmxpYyBzdG9ja0JlbG93OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc3RvY2tTZXJ2aWNlOiBTdG9ja1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0dXNGb3JJZChpZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9ja1N0YXR1cy5maW5kKHN0YXR1cyA9PiBzdGF0dXMuc3RvY2tTdGF0ZUlkID09PSBpZCkgPyB0aGlzLnN0b2NrU3RhdHVzLmZpbmQoc3RhdHVzID0+IHN0YXR1cy5zdG9ja1N0YXRlSWQgPT09IGlkKSA6IDAgO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrU3RhdHVzQ2hhbmdlKHN0YXR1czogU3RvY2tTdGF0dXMpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc3RvY2tTdGF0ZUlkID0gc3RhdHVzLnN0b2NrU3RhdGVJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1N0YXR1c1JlbWFya0NoYW5nZShyZW1hcms6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zdG9ja1N0YXRlUmVtYXJrID0gcmVtYXJrO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFtb3VudEluU3RvY2tDaGFuZ2VkKGRhdGEpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYW1vdW50SW5TdG9jayA9IGRhdGE7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gKCF0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5zdG9ja1N0YXRlSWQgJiYgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YT8uc3RvY2tTdGF0ZVJlbWFyaz8ubGVuZ3RoIDw9IDEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZU9rQ2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrRnJlZSA8IHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYW1vdW50SW5TdG9ja09yaWdpbmFsKSB7XHJcbiAgICAgIHRoaXMuc3RvY2tCZWxvdyA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b2NrQmVsb3cgPSBmYWxzZTtcclxuICAgICAgdGhpcy5oYW5kbGVTdG9ja0NoYW5nZSgpO1xyXG4gICAgICB0aGlzLnNhdmVFdmVudC5lbWl0KHRydWUpO1xyXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMudG9nZ2xlUG9wdXBFdmVudC5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIHRvZ2dsZVBvcHVwKCkge1xyXG4gICAgdGhpcy5zdG9ja0JlbG93ID0gZmFsc2U7XHJcbiAgICB0aGlzLnRvZ2dsZVBvcHVwRXZlbnQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0b2NrTG9jYXRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrTWFuYWdlbWVudExvY2F0aW9ucyh0aGlzLnNlbGVjdGVkV2FyZWhvdXNlLndhcmVob3VzZU5vKS50aGVuKChsb2NhdGlvbnMpID0+IHtcclxuICAgICAgdGhpcy5zdG9ja0xvY2F0aW9ucyA9IGxvY2F0aW9ucztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2F0aW9uRm9yTnVtYmVyKG51bWJlcjogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9ja0xvY2F0aW9ucz8uZmluZChsb2NhdGlvbiA9PiBsb2NhdGlvbi5sb2NhdGlvbk5vID09PSBudW1iZXIpID8gdGhpcy5zdG9ja0xvY2F0aW9ucz8uZmluZChsb2NhdGlvbiA9PiBsb2NhdGlvbi5sb2NhdGlvbk5vID09PSBudW1iZXIpIDogXCJcIiA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9jYXRpb25DaGFuZ2VkKGV2ZW50OiBTdG9ja0xvY2F0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb25ObyA9IGV2ZW50LmxvY2F0aW9uTm87XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmxvY2F0aW9uTm8gPSBldmVudC5sb2NhdGlvbk5vO1xyXG4gICAgaWYgKHRoaXMuYXJ0aWNsZVN0b2NrSW5mbz8ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU3RvY2tDaGFuZ2UoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0U3RvY2tMb2NhdGlvbnMoKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5hcnRpY2xlRmxhdC5nb29kSWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5nb29kSWQgPSB0aGlzLmFydGljbGVGbGF0Lmdvb2RJZDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmdvb2RJZCA9IHBhcnNlSW50KHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5nb29kSWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5lbnRyeURhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKHRoaXMuZGVsZXRlU3RvY2tMaW5lKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm8gPSB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLndhcmVob3VzZU5vO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmFtb3VudEluU3RvY2sgPSAwO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS53YXJlaG91c2VObyA9IHRoaXMuc2VsZWN0ZWRXYXJlaG91c2Uud2FyZWhvdXNlTm87XHJcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYXRpb25ObyAmJiB0aGlzLmFydGljbGVGbGF0LmxvY2F0aW9uUmVnaXN0ZXJlZCkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEubG9jYXRpb25ObyA9IHRoaXMuc2VsZWN0ZWRMb2NhdGlvbk5vPy50b1N0cmluZygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvL2lmICghdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrKSB7XHJcbiAgICAvLyAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrID0gMTtcclxuICAgIC8vIH1cclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS51cGRhdGVBcnRpY2xlRGV0YWlscyh0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCA9IHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuZ29vZElkPy50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi53YXJlaG91c2VOdW1iZXIgPSB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLndhcmVob3VzZU5vO1xyXG4gICAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlRGV0YWlscyh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24pLnRoZW4oKGRldGFpbHMpID0+IHtcclxuICAgICAgICAgIHRoaXMuYXJ0aWNsZVN0b2NrSW5mbyA9IGRldGFpbHM7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUdyaWREYXRhLmVtaXQoZGV0YWlscyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmV3RGF0ZSgpOiBEYXRlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -23,6 +23,8 @@ export class StockLocationComponent extends BaseStockComponent {
23
23
  this.handleStickerClicked = new EventEmitter();
24
24
  this.showConfirmationDialog = false;
25
25
  this.newStockLine = false;
26
+ this.deleteStockLine = false;
27
+ this.cannotDelete = false;
26
28
  this.showConfirmStockRow = false;
27
29
  this.articleDetailsInformation = new ArticleStockManagement();
28
30
  this.stockStatus = [];
@@ -76,12 +78,26 @@ export class StockLocationComponent extends BaseStockComponent {
76
78
  }
77
79
  onRowSelected(row) {
78
80
  this.selectedRow = row;
81
+ this.cannotDelete = false;
79
82
  }
80
83
  onOkClickSendLocations(row) {
81
84
  this.selectedArticleDetailsData = row;
82
85
  this.newStockLine = false;
83
86
  this.showConfirmationDialog = true;
84
87
  }
88
+ handleDeleteRow(row) {
89
+ this.selectedArticleDetailsData = row;
90
+ if (this.selectedArticleDetailsData.stockAssigned > 0) {
91
+ this.deleteStockLine = false;
92
+ this.showConfirmationDialog = false;
93
+ this.cannotDelete = true;
94
+ }
95
+ else {
96
+ this.deleteStockLine = true;
97
+ this.showConfirmationDialog = true;
98
+ this.cannotDelete = false;
99
+ }
100
+ }
85
101
  handleAddRow() {
86
102
  var _a;
87
103
  if (!((_a = this.data) === null || _a === void 0 ? void 0 : _a.length)) {
@@ -92,17 +108,6 @@ export class StockLocationComponent extends BaseStockComponent {
92
108
  this.newStockLine = true;
93
109
  this.showConfirmationDialog = true;
94
110
  }
95
- handleDeleteRow() {
96
- if (!this.selectedRow) {
97
- return;
98
- }
99
- const index = this.data.indexOf(this.selectedRow);
100
- if (index !== -1) {
101
- this.data.splice(index, 1);
102
- this.selectedRow = null;
103
- }
104
- this._changeDetector.detectChanges();
105
- }
106
111
  handleOkClick() {
107
112
  var _a;
108
113
  this.selectedArticleDetailsData.selected = true;
@@ -204,6 +209,7 @@ StockLocationComponent.decorators = [
204
209
  [selectedArticleDetailsData]="selectedArticleDetailsData"
205
210
  [showConfirmationDialog]="showConfirmationDialog"
206
211
  [newStockLine]="newStockLine"
212
+ [deleteStockLine]="deleteStockLine"
207
213
  [stockStatus]="stockStatus"
208
214
  (togglePopupEvent)="handleTogglePopup()"
209
215
  (saveEvent)="handlePopupSave($event)"
@@ -218,7 +224,8 @@ StockLocationComponent.decorators = [
218
224
  <co-icon *ngIf="selectedRow" class="menu-icon" [iconData]="iconCacheService.getIcon(icons.SolidBarcodeReadTag)"
219
225
  (click)="openSendMethodDialog(selectedRow)"></co-icon>
220
226
  <co-icon *ngIf="selectedRow" class="menu-icon" [iconData]="iconCacheService.getIcon(icons.TrashCanRegular)"
221
- (click)="handleDeleteRow()"></co-icon>
227
+ (click)="handleDeleteRow(selectedRow)"></co-icon>
228
+ <span *ngIf="cannotDelete" class="minimum-stock" [textContent]="'STOCK_BELOW_ZERO_TEXT' | sharedLocalize"></span>
222
229
  </div>
223
230
  <co-simple-grid [data]="data"
224
231
  class="simple-grid"
@@ -226,7 +233,6 @@ StockLocationComponent.decorators = [
226
233
  [inlineEdit]="false"
227
234
  [showToolbar]="true"
228
235
  (addRow)="handleAddRow()"
229
- (deleteRow)="handleDeleteRow()"
230
236
  (selectRow)="onRowSelected($event)">
231
237
  <co-simple-grid-column [headerText]="'STOCK' | sharedLocalize" [field]="'amountInStock'">
232
238
  <ng-template #template let-row="row">
@@ -318,4 +324,4 @@ StockLocationComponent.propDecorators = {
318
324
  handleStickerClicked: [{ type: Output }],
319
325
  selectedWarehouse: [{ type: Input }]
320
326
  };
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9zdG9jay1sb2NhdGlvbi9zdG9jay1sb2NhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBT3JGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBMEhuRSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsa0JBQWtCO0lBb0U1RCxZQUNTLGdCQUFrQyxFQUNqQyxhQUEyQixFQUMzQixlQUFrQztRQUUxQyxLQUFLLEVBQUUsQ0FBQztRQUpELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBdEU1QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQWdCbkMsNEJBQXVCLEdBQXFCLEVBQUUsQ0FBQztRQUcvQyxxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFHN0Isa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFTMUIs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RSxtQkFBbUI7Z0JBQzdCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1IVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBcklPLGdCQUFnQjtZQUVoQixZQUFZO1lBWmxCLGlCQUFpQjs7OzBCQW1KaEIsS0FBSztzQ0FhTCxLQUFLOytCQUdMLEtBQUs7NEJBR0wsS0FBSztnQ0FHTCxLQUFLOzBCQUdMLEtBQUs7Z0NBR0wsS0FBSztrQ0FHTCxNQUFNO3NDQUdOLE1BQU07c0NBR04sTUFBTTttQ0FFTixNQUFNO2dDQWVOLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2sgYXMgQXJ0aWNsZVN0b2NrQm99IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2suYm8nO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcbmltcG9ydCB7U3RvY2tTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2UnO1xyXG5pbXBvcnQge1N0b2NrTWFuYWdlbWVudFdhcmVob3VzZXN9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLW1hbmFnZW1lbnQtd2FyZWhvdXNlcy5ibyc7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrTWFuYWdlbWVudH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay1tYW5hZ2VtZW50JztcclxuaW1wb3J0IHtBcnRpY2xlRGV0YWlsc0JvfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm8nO1xyXG5pbXBvcnQge1N0b2NrTG9jYXRpb259IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWxvY2F0aW9uLmJvJztcclxuaW1wb3J0IHtQcmludFByaWNlU3RpY2tlcnN9IGZyb20gJ0Bjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvbW9kZWwvcHJpbnQtcHJpY2Utc3RpY2tlcnMuYm8nO1xyXG5pbXBvcnQge1N0b2NrU3RhdHVzfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1zdGF0dXMuYm8nO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7QXJ0aWNsZUV4dGVuZGVkfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWV4dGVuZGVkLmJvJztcclxuaW1wb3J0IHtBcnRpY2xlRmxhdH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mbGF0LmJvJztcclxuaW1wb3J0IHtCYXNlU3RvY2tDb21wb25lbnR9IGZyb20gJy4uLy4uL2Jhc2UvYmFzZS1zdG9jay5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby1zdG9jay1sb2NhdGlvbicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWdyaWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay10cmFuc2Zlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLXN0b2NrLXRyYW5zZmVyICpuZ0lmPVwic2hvd1N0b2NrVHJhbnNmZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0b2NrLXRyYW5zZmVyLWRpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcnRpY2xlVG9UcmFuc2Zlcl09XCJhcnRpY2xlRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYW5kbGVTdGlja2VyQ2xpY2tlZCk9XCJoYW5kbGVTdGlja2VyQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxsV2FyZWhvdXNlc109XCJhbGxXYXJlaG91c2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0b2NrTG9jYXRpb25zXT1cInN0b2NrTG9jYXRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVGbGF0XT1cImFydGljbGVGbGF0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dTdG9ja1RyYW5zZmVyXT1cInNob3dTdG9ja1RyYW5zZmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNob3dTdG9ja1RyYW5zZmVyQ2hhbmdlKT1cIm9uU2hvd1N0b2NrVHJhbnNmZXJDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDwvY28tc3RvY2stdHJhbnNmZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjby1zdG9jay1sb2NhdGlvbi1wb3B1cFxyXG4gICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRXYXJlaG91c2VdPVwic2VsZWN0ZWRXYXJlaG91c2VcIlxyXG4gICAgICAgICAgICAgICAgICBbYXJ0aWNsZUZsYXRdPVwiYXJ0aWNsZUZsYXRcIlxyXG4gICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRMb2NhdGlvbk5vXT1cInNlbGVjdGVkTG9jYXRpb25Ob1wiXHJcbiAgICAgICAgICAgICAgICAgIFtzdG9ja0xvY2F0aW9uc109XCJzdG9ja0xvY2F0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFthcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uXT1cImFydGljbGVEZXRhaWxzSW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICBbYXJ0aWNsZVN0b2NrSW5mb109XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhXCJcclxuICAgICAgICAgICAgICAgICAgW3Nob3dDb25maXJtYXRpb25EaWFsb2ddPVwic2hvd0NvbmZpcm1hdGlvbkRpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgIFtuZXdTdG9ja0xpbmVdPVwibmV3U3RvY2tMaW5lXCJcclxuICAgICAgICAgICAgICAgICAgW3N0b2NrU3RhdHVzXT1cInN0b2NrU3RhdHVzXCJcclxuICAgICAgICAgICAgICAgICAgKHRvZ2dsZVBvcHVwRXZlbnQpPVwiaGFuZGxlVG9nZ2xlUG9wdXAoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChzYXZlRXZlbnQpPVwiaGFuZGxlUG9wdXBTYXZlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAodXBkYXRlR3JpZERhdGEpPVwiZGF0YSA9ICRldmVudFwiXHJcblxyXG4gICAgICAgICAgPjwvY28tc3RvY2stbG9jYXRpb24tcG9wdXA+XHJcbiAgICAgICAgICAgIDxkaXYgIGNsYXNzPVwic3RvY2stdHJhbnNmZXItYWRkXCI+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlBsdXNSZWd1bGFyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUFkZFJvdygpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2VsZWN0ZWRSb3dcIiBjbGFzcz1cIm1lbnUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQXJyb3dSaWdodEFycm93TGVmdFJlZ3VsYXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU3RvY2tUcmFuc2ZlckNsaWNrKHNlbGVjdGVkUm93KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cInNlbGVjdGVkUm93XCIgY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlNvbGlkQmFyY29kZVJlYWRUYWcpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblNlbmRNZXRob2REaWFsb2coc2VsZWN0ZWRSb3cpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2VsZWN0ZWRSb3dcIiBjbGFzcz1cIm1lbnUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuVHJhc2hDYW5SZWd1bGFyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZURlbGV0ZVJvdygpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZCBbZGF0YV09XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0FkZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZUVkaXRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VG9vbGJhcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoYWRkUm93KT1cImhhbmRsZUFkZFJvdygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsZXRlUm93KT1cImhhbmRsZURlbGV0ZVJvdygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0Um93KT1cIm9uUm93U2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUT0NLJyB8IHNoYXJlZExvY2FsaXplXCIgW2ZpZWxkXT1cIidhbW91bnRJblN0b2NrJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1hbW91bnRcIiAoY2xpY2spPVwib25Pa0NsaWNrU2VuZExvY2F0aW9ucyhyb3cpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkVkaXRQZW5SZWd1bGFyKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydhbW91bnRJblN0b2NrJ11cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFt3aWR0aF09XCIxNTBcIiBbaGVhZGVyVGV4dF09XCInTE9DQVRJT04nIHwgc2hhcmVkTG9jYWxpemVcIiBbZmllbGRdPVwiJ2xvY2F0aW9uTm8nXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1saXN0LW9mLXZhbHVlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwibG9jYXRpb25Gb3JOdW1iZXIocm93Wydsb2NhdGlvbk5vJ10pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwic3RvY2tMb2NhdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheUZpZWxkXT1cIidkZXNjcmlwdGlvbidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0xPQ0FUSU9OJyB8IHNoYXJlZExvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwibG9jYXRpb25DaGFuZ2VkKHJvdywgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9jby1saXN0LW9mLXZhbHVlcz5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uICpuZ0lmPVwiYXJ0aWNsZUZsYXQ/LmJhdGNoXCIgW2hlYWRlclRleHRdPVwiJ0JBVENIJyB8IHNoYXJlZExvY2FsaXplXCIgW2ZpZWxkXT1cIidiYXRjaE5vJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbbW9kZWxdPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYmF0Y2hOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0JBVENIJyB8IHNoYXJlZExvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJyb3dbJ2JhdGNoTm8nXSA9ICRldmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gKm5nSWY9XCJhcnRpY2xlRmxhdD8uc2VyaWFsXCIgW2hlYWRlclRleHRdPVwiJ1NFUklBTF9OTycgfCBzaGFyZWRMb2NhbGl6ZVwiIFtmaWVsZF09XCInc2VyaWFsTm8nXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCJzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zZXJpYWxOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFUklBTF9OTycgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwicm93WydzZXJpYWxObyddID0gJGV2ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQUxMT0NBVEVEJyB8IHNoYXJlZExvY2FsaXplXCIgW2ZpZWxkXT1cIidzdG9ja0Fzc2lnbmVkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydzdG9ja0Fzc2lnbmVkJ11cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQVZBSUxBQkxFX1NUT0NLJyB8IHNoYXJlZExvY2FsaXplXCIgW2ZpZWxkXT1cIidhbW91bnRJblN0b2NrRnJlZSdcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInJvd1snYW1vdW50SW5TdG9ja0ZyZWUnXVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidWQUxVVEEnIHwgc2hhcmVkTG9jYWxpemVcIiBbZmllbGRdPVwiJ2N1cnJlbmN5J1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydjdXJyZW5jeSddXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1BVUkNIQVNFX1BSSUNFJyB8IHNoYXJlZExvY2FsaXplXCIgW2ZpZWxkXT1cIidwdXJjaGFzZVByaWNlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydwdXJjaGFzZVByaWNlJ11cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1VQUExJRVJOUicgfCBzaGFyZWRMb2NhbGl6ZVwiIFtmaWVsZF09XCInc3VwcGxpZXJObydcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInJvd1snc3VwcGxpZXJObyddXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxjby1zZW5kLW1ldGhvZC1kaWFsb2cgKm5nSWY9XCJzaG93U2VuZE1ldGhvZERpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZVwiPlxyXG5cclxuICAgICAgPC9jby1zZW5kLW1ldGhvZC1kaWFsb2c+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9ja0xvY2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZVN0b2NrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgd2FyZWhvdXNlTm8odmFsdWU6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuX3dhcmVob3VzZU5vICE9PSB2YWx1ZSkge1xyXG4gICAgICB0aGlzLl93YXJlaG91c2VObyA9IHZhbHVlO1xyXG4gICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgICAgdGhpcy5fZ2V0V2FyZWhvdXNlTG9jYXRpb25zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHdhcmVob3VzZU5vKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2FyZWhvdXNlTm87XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlU3RvY2tJbmZvcm1hdGlvbjogQXJ0aWNsZVN0b2NrQm9bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlV2FyZWhvdXNlOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhbGxXYXJlaG91c2VzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93U3RvY2tUcmFuc2ZlcjogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZUZsYXQ6IEFydGljbGVGbGF0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkYXRhV2FyZUhvdXNlQ29kZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2Zlckljb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZVN0b2NrQm8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjxQcmludFByaWNlU3RpY2tlcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgc2hvd1N0b2NrVHJhbnNmZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBoYW5kbGVTdGlja2VyQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBhcnRpY2xlRGV0YWlsczogQXJ0aWNsZURldGFpbHNCbztcclxuICBwdWJsaWMgc2hvd0NvbmZpcm1hdGlvbkRpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBuZXdTdG9ja0xpbmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0NvbmZpcm1TdG9ja1JvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbjogQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCA9IG5ldyBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50KCk7XHJcblxyXG4gIHB1YmxpYyBzdG9ja1N0YXR1czogU3RvY2tTdGF0dXNbXSA9IFtdO1xyXG4gIHB1YmxpYyBzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YTogQXJ0aWNsZURldGFpbHNCbyA9IG5ldyBBcnRpY2xlRGV0YWlsc0JvKCk7XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZExvY2F0aW9uTm86IHN0cmluZztcclxuICBwdWJsaWMgZGF0YTogQXJ0aWNsZURldGFpbHNCb1tdID0gW107XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsZWN0ZWRXYXJlaG91c2U6IFN0b2NrTWFuYWdlbWVudFdhcmVob3VzZXM7XHJcbiAgcHVibGljIHN0b2NrTG9jYXRpb25zOiBTdG9ja0xvY2F0aW9uW10gPSBbXTtcclxuXHJcbiAgcHVibGljIHNlbGVjdGVkUm93OiBBcnRpY2xlRGV0YWlsc0JvIHwgbnVsbCA9IG51bGw7XHJcbiAgcHVibGljIHNob3dTZW5kTWV0aG9kRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBwcml2YXRlIF93YXJlaG91c2VObzogbnVtYmVyO1xyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zdG9ja1NlcnZpY2U6IFN0b2NrU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja1N0YXRlKCkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICB0aGlzLnN0b2NrU3RhdHVzID0gcmVzdWx0O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TaG93U3RvY2tUcmFuc2ZlckNoYW5nZShzaG93OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dTdG9ja1RyYW5zZmVyID0gc2hvdztcclxuICAgIHRoaXMuc2hvd1N0b2NrVHJhbnNmZXJDaGFuZ2UuZW1pdCh0aGlzLnNob3dTdG9ja1RyYW5zZmVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkxvY2F0aW9uRHJvcGRvd25DbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuX2dldFdhcmVob3VzZUxvY2F0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvY2F0aW9uQ2hhbmdlZChyb3c6IEFydGljbGVEZXRhaWxzQm8sIGV2ZW50OiBTdG9ja0xvY2F0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTG9jYXRpb25ObyA9IGV2ZW50LmxvY2F0aW9uTm87XHJcbiAgICByb3cubG9jYXRpb25ObyA9IGV2ZW50LmxvY2F0aW9uTm87XHJcbiAgICB0aGlzLm9uTG9jYXRpb25Ecm9wZG93bkNsaWNrKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYW1vdW50SW5TdG9ja0NoYW5nZWQoZGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5hbW91bnRJblN0b2NrID0gZGF0YTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuU2VuZE1ldGhvZERpYWxvZyhkYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dTZW5kTWV0aG9kRGlhbG9nID0gdHJ1ZTtcclxuICAgIHRoaXMuc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQuZW1pdChkYXRhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1RyYW5zZmVyQ2xpY2soZXZlbnQ6IEFydGljbGVEZXRhaWxzQm8pOiB2b2lkIHtcclxuICAgIHRoaXMuYXJ0aWNsZURldGFpbHMgPSBldmVudDtcclxuICAgIHRoaXMuc2hvd1N0b2NrVHJhbnNmZXIgPSB0cnVlO1xyXG4gIH1cclxuICBwdWJsaWMgb25Sb3dTZWxlY3RlZChyb3c6IEFydGljbGVEZXRhaWxzQm8pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb3cgPSByb3c7XHJcbiAgfVxyXG4gIHB1YmxpYyBvbk9rQ2xpY2tTZW5kTG9jYXRpb25zKHJvdzogQXJ0aWNsZURldGFpbHNCbyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YSA9IHJvdztcclxuICAgIHRoaXMubmV3U3RvY2tMaW5lID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dDb25maXJtYXRpb25EaWFsb2cgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUFkZFJvdygpIHtcclxuICAgIGlmICghdGhpcy5kYXRhPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5kYXRhID0gW107XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGEucHVzaChuZXcgQXJ0aWNsZURldGFpbHNCbygpKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEgPSB0aGlzLmRhdGFbKHRoaXMuZGF0YS5sZW5ndGggLSAxKV07XHJcbiAgICB0aGlzLm5ld1N0b2NrTGluZSA9IHRydWU7XHJcbiAgICB0aGlzLnNob3dDb25maXJtYXRpb25EaWFsb2cgPSB0cnVlO1xyXG4gIH1cclxuICBwdWJsaWMgaGFuZGxlRGVsZXRlUm93KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkUm93KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5kYXRhLmluZGV4T2YodGhpcy5zZWxlY3RlZFJvdyk7XHJcbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgIHRoaXMuZGF0YS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUm93ID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgcHVibGljIGhhbmRsZU9rQ2xpY2soKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmFydGljbGVGbGF0Lmdvb2RJZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmdvb2RJZCA9IHRoaXMuYXJ0aWNsZUZsYXQuZ29vZElkO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24uZ29vZElkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuZ29vZElkID0gcGFyc2VJbnQodGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmVudHJ5RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLndhcmVob3VzZU5vID0gdGhpcy53YXJlaG91c2VObztcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkTG9jYXRpb25Obykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmxvY2F0aW9uTm8gPSB0aGlzLnNlbGVjdGVkTG9jYXRpb25Obz8udG9TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS51cGRhdGVBcnRpY2xlRGV0YWlscyh0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgdGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCA9IHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuZ29vZElkPy50b1N0cmluZygpO1xyXG4gICAgICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi53YXJlaG91c2VOdW1iZXIgPSB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLndhcmVob3VzZU5vO1xyXG4gICAgICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRBcnRpY2xlRGV0YWlscyh0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24pLnRoZW4oKGRldGFpbHMpID0+IHtcclxuICAgICAgICAgIHRoaXMuZGF0YSA9IGRldGFpbHM7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgICB0aGlzLnNob3dDb25maXJtYXRpb25EaWFsb2cgPSBmYWxzZTtcclxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTdG9ja1N0YXR1c0NoYW5nZShzdGF0dXM6IFN0b2NrU3RhdHVzKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnN0b2NrU3RhdGVJZCA9IHN0YXR1cy5zdG9ja1N0YXRlSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RvY2tTdGF0dXNSZW1hcmtDaGFuZ2UocmVtYXJrOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuc3RvY2tTdGF0ZVJlbWFyayA9IHJlbWFyaztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiAoIXRoaXMuc2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGE/LnN0b2NrU3RhdGVJZCAmJiB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5zdG9ja1N0YXRlUmVtYXJrPy5sZW5ndGggPD0gMSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIHN0YXR1c0ZvcklkKGlkOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b2NrU3RhdHVzLmZpbmQoc3RhdHVzID0+IHN0YXR1cy5zdG9ja1N0YXRlSWQgPT09IGlkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2NhdGlvbkZvck51bWJlcihudW1iZXI6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvY2tMb2NhdGlvbnM/LmZpbmQobG9jYXRpb24gPT4gbG9jYXRpb24ubG9jYXRpb25ObyA9PT0gbnVtYmVyPy50b1N0cmluZygpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2NhdGlvbkZvckRlc2NyaXB0aW9uKGxvY2F0aW9uTm86IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAvLyBGaW5kIHRoZSBsb2NhdGlvbiBpbiBzdG9ja0xvY2F0aW9ucyBieSBsb2NhdGlvbk5vXHJcbiAgICBjb25zdCBsb2NhdGlvbiA9IHRoaXMuc3RvY2tMb2NhdGlvbnMuZmluZChsb2MgPT4gbG9jLmxvY2F0aW9uTm8gPT09IGxvY2F0aW9uTm8pO1xyXG4gICAgLy8gSWYgbG9jYXRpb24gaXMgZm91bmQgYW5kIGl0IGhhcyBhIG5vbi1lbXB0eSBkZXNjcmlwdGlvbiwgcmV0dXJuIGRlc2NyaXB0aW9uXHJcbiAgICAvLyBJZiBsb2NhdGlvbiBpcyBub3QgZm91bmQgb3IgZGVzY3JpcHRpb24gaXMgZW1wdHksIHJldHVybiBsb2NhdGlvbk5vXHJcbiAgICByZXR1cm4gbG9jYXRpb24gJiYgbG9jYXRpb24uZGVzY3JpcHRpb24gJiYgbG9jYXRpb24uZGVzY3JpcHRpb24udHJpbSgpICE9PSAnJyA/IGxvY2F0aW9uLmRlc2NyaXB0aW9uIDogbG9jYXRpb25ObztcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBnZXREYXRhKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVxdWVzdDogQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCA9IG5ldyBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50KCk7XHJcbiAgICByZXF1ZXN0Lmdvb2RJZCA9IHRoaXMuZ29vZElkLnRvU3RyaW5nKCk7XHJcbiAgICByZXF1ZXN0LndhcmVob3VzZU51bWJlciA9IHRoaXMud2FyZWhvdXNlTm87XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZURldGFpbHMocmVxdWVzdCkudGhlbigoZGV0YWlscykgPT4ge1xyXG4gICAgICB0aGlzLmRhdGEgPSBkZXRhaWxzO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9nZXRXYXJlaG91c2VMb2NhdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFdhcmVob3VzZUxvY2F0aW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0b2NrU2VydmljZS5nZXRTdG9ja01hbmFnZW1lbnRMb2NhdGlvbnModGhpcy53YXJlaG91c2VObykudGhlbigocmVzdWx0OiBTdG9ja0xvY2F0aW9uW10pID0+IHtcclxuICAgICAgdGhpcy5zdG9ja0xvY2F0aW9ucyA9IHJlc3VsdDtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVRvZ2dsZVBvcHVwKCkge1xyXG4gICAgdGhpcy5zaG93Q29uZmlybWF0aW9uRGlhbG9nID0gIXRoaXMuc2hvd0NvbmZpcm1hdGlvbkRpYWxvZztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVQb3B1cFNhdmUoIHNhdmVkOiBib29sZWFuKSB7XHJcbiAgICBpZighc2F2ZWQpIHtcclxuICAgICAgdGhpcy5kYXRhLnNwbGljZSgodGhpcy5kYXRhLmxlbmd0aCAtIDEpLCAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stbG9jYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc3RvY2svY29tcG9uZW50cy9zdG9jay1sb2NhdGlvbi9zdG9jay1sb2NhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBT3JGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBMkhuRSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsa0JBQWtCO0lBc0U1RCxZQUNTLGdCQUFrQyxFQUNqQyxhQUEyQixFQUMzQixlQUFrQztRQUUxQyxLQUFLLEVBQUUsQ0FBQztRQUpELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBeEU1QixVQUFLLEdBQWdCLElBQUksQ0FBQztRQWdCbkMsNEJBQXVCLEdBQXFCLEVBQUUsQ0FBQztRQUcvQyxxQkFBZ0IsR0FBVSxFQUFFLENBQUM7UUFHN0Isa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFTMUIs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QU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQzs7O1lBelZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0hUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUF0SU8sZ0JBQWdCO1lBRWhCLFlBQVk7WUFabEIsaUJBQWlCOzs7MEJBb0poQixLQUFLO3NDQWFMLEtBQUs7K0JBR0wsS0FBSzs0QkFHTCxLQUFLO2dDQUdMLEtBQUs7MEJBR0wsS0FBSztnQ0FHTCxLQUFLO2tDQUdMLE1BQU07c0NBR04sTUFBTTtzQ0FHTixNQUFNO21DQUVOLE1BQU07Z0NBaUJOLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBcnRpY2xlU3RvY2sgYXMgQXJ0aWNsZVN0b2NrQm99IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL2FydGljbGUtc3RvY2suYm8nO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi8uLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcbmltcG9ydCB7U3RvY2tTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlL3N0b2NrLnNlcnZpY2UnO1xyXG5pbXBvcnQge1N0b2NrTWFuYWdlbWVudFdhcmVob3VzZXN9IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLW1hbmFnZW1lbnQtd2FyZWhvdXNlcy5ibyc7XHJcbmltcG9ydCB7QXJ0aWNsZVN0b2NrTWFuYWdlbWVudH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1zdG9jay1tYW5hZ2VtZW50JztcclxuaW1wb3J0IHtBcnRpY2xlRGV0YWlsc0JvfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWRldGFpbHMuYm8nO1xyXG5pbXBvcnQge1N0b2NrTG9jYXRpb259IGZyb20gJ0Bjb2xpam5pdC9hcnRpY2xlYXBpL2J1aWxkL21vZGVsL3N0b2NrLWxvY2F0aW9uLmJvJztcclxuaW1wb3J0IHtQcmludFByaWNlU3RpY2tlcnN9IGZyb20gJ0Bjb2xpam5pdC9zaGFyZWRhcGkvYnVpbGQvbW9kZWwvcHJpbnQtcHJpY2Utc3RpY2tlcnMuYm8nO1xyXG5pbXBvcnQge1N0b2NrU3RhdHVzfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9zdG9jay1zdGF0dXMuYm8nO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7QXJ0aWNsZUV4dGVuZGVkfSBmcm9tICdAY29saWpuaXQvYXJ0aWNsZWFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWV4dGVuZGVkLmJvJztcclxuaW1wb3J0IHtBcnRpY2xlRmxhdH0gZnJvbSAnQGNvbGlqbml0L2FydGljbGVhcGkvYnVpbGQvbW9kZWwvYXJ0aWNsZS1mbGF0LmJvJztcclxuaW1wb3J0IHtCYXNlU3RvY2tDb21wb25lbnR9IGZyb20gJy4uLy4uL2Jhc2UvYmFzZS1zdG9jay5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby1zdG9jay1sb2NhdGlvbicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInN0b2NrLWdyaWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay10cmFuc2Zlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLXN0b2NrLXRyYW5zZmVyICpuZ0lmPVwic2hvd1N0b2NrVHJhbnNmZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0b2NrLXRyYW5zZmVyLWRpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcnRpY2xlVG9UcmFuc2Zlcl09XCJhcnRpY2xlRGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChoYW5kbGVTdGlja2VyQ2xpY2tlZCk9XCJoYW5kbGVTdGlja2VyQ2xpY2tlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWxsV2FyZWhvdXNlc109XCJhbGxXYXJlaG91c2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0b2NrTG9jYXRpb25zXT1cInN0b2NrTG9jYXRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVGbGF0XT1cImFydGljbGVGbGF0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dTdG9ja1RyYW5zZmVyXT1cInNob3dTdG9ja1RyYW5zZmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNob3dTdG9ja1RyYW5zZmVyQ2hhbmdlKT1cIm9uU2hvd1N0b2NrVHJhbnNmZXJDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDwvY28tc3RvY2stdHJhbnNmZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjby1zdG9jay1sb2NhdGlvbi1wb3B1cFxyXG4gICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRXYXJlaG91c2VdPVwic2VsZWN0ZWRXYXJlaG91c2VcIlxyXG4gICAgICAgICAgICAgICAgICBbYXJ0aWNsZUZsYXRdPVwiYXJ0aWNsZUZsYXRcIlxyXG4gICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRMb2NhdGlvbk5vXT1cInNlbGVjdGVkTG9jYXRpb25Ob1wiXHJcbiAgICAgICAgICAgICAgICAgIFtzdG9ja0xvY2F0aW9uc109XCJzdG9ja0xvY2F0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFthcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uXT1cImFydGljbGVEZXRhaWxzSW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICBbYXJ0aWNsZVN0b2NrSW5mb109XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhXT1cInNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhXCJcclxuICAgICAgICAgICAgICAgICAgW3Nob3dDb25maXJtYXRpb25EaWFsb2ddPVwic2hvd0NvbmZpcm1hdGlvbkRpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgIFtuZXdTdG9ja0xpbmVdPVwibmV3U3RvY2tMaW5lXCJcclxuICAgICAgICAgICAgICAgICAgW2RlbGV0ZVN0b2NrTGluZV09XCJkZWxldGVTdG9ja0xpbmVcIlxyXG4gICAgICAgICAgICAgICAgICBbc3RvY2tTdGF0dXNdPVwic3RvY2tTdGF0dXNcIlxyXG4gICAgICAgICAgICAgICAgICAodG9nZ2xlUG9wdXBFdmVudCk9XCJoYW5kbGVUb2dnbGVQb3B1cCgpXCJcclxuICAgICAgICAgICAgICAgICAgKHNhdmVFdmVudCk9XCJoYW5kbGVQb3B1cFNhdmUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICh1cGRhdGVHcmlkRGF0YSk9XCJkYXRhID0gJGV2ZW50XCJcclxuXHJcbiAgICAgICAgICA+PC9jby1zdG9jay1sb2NhdGlvbi1wb3B1cD5cclxuICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJzdG9jay10cmFuc2Zlci1hZGRcIj5cclxuICAgICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cIm1lbnUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuUGx1c1JlZ3VsYXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQWRkUm93KClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJzZWxlY3RlZFJvd1wiIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1JpZ2h0QXJyb3dMZWZ0UmVndWxhcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTdG9ja1RyYW5zZmVyQ2xpY2soc2VsZWN0ZWRSb3cpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uICpuZ0lmPVwic2VsZWN0ZWRSb3dcIiBjbGFzcz1cIm1lbnUtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuU29saWRCYXJjb2RlUmVhZFRhZylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2VuZE1ldGhvZERpYWxvZyhzZWxlY3RlZFJvdylcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJzZWxlY3RlZFJvd1wiIGNsYXNzPVwibWVudS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmFzaENhblJlZ3VsYXIpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlRGVsZXRlUm93KHNlbGVjdGVkUm93KVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNhbm5vdERlbGV0ZVwiIGNsYXNzPVwibWluaW11bS1zdG9ja1wiIFt0ZXh0Q29udGVudF09XCInU1RPQ0tfQkVMT1dfWkVST19URVhUJyB8IHNoYXJlZExvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZCBbZGF0YV09XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNpbXBsZS1ncmlkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd0FkZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZUVkaXRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93VG9vbGJhcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoYWRkUm93KT1cImhhbmRsZUFkZFJvdygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0Um93KT1cIm9uUm93U2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1NUT0NLJyB8IHNoYXJlZExvY2FsaXplXCIgW2ZpZWxkXT1cIidhbW91bnRJblN0b2NrJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdG9jay1hbW91bnRcIiAoY2xpY2spPVwib25Pa0NsaWNrU2VuZExvY2F0aW9ucyhyb3cpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJtZW51LWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkVkaXRQZW5SZWd1bGFyKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydhbW91bnRJblN0b2NrJ11cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFt3aWR0aF09XCIxNTBcIiBbaGVhZGVyVGV4dF09XCInTE9DQVRJT04nIHwgc2hhcmVkTG9jYWxpemVcIiBbZmllbGRdPVwiJ2xvY2F0aW9uTm8nXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1saXN0LW9mLXZhbHVlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwibG9jYXRpb25Gb3JOdW1iZXIocm93Wydsb2NhdGlvbk5vJ10pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwic3RvY2tMb2NhdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzcGxheUZpZWxkXT1cIidkZXNjcmlwdGlvbidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0xPQ0FUSU9OJyB8IHNoYXJlZExvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwibG9jYXRpb25DaGFuZ2VkKHJvdywgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9jby1saXN0LW9mLXZhbHVlcz5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uICpuZ0lmPVwiYXJ0aWNsZUZsYXQ/LmJhdGNoXCIgW2hlYWRlclRleHRdPVwiJ0JBVENIJyB8IHNoYXJlZExvY2FsaXplXCIgW2ZpZWxkXT1cIidiYXRjaE5vJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbbW9kZWxdPVwic2VsZWN0ZWRBcnRpY2xlRGV0YWlsc0RhdGEuYmF0Y2hOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0JBVENIJyB8IHNoYXJlZExvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJyb3dbJ2JhdGNoTm8nXSA9ICRldmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gKm5nSWY9XCJhcnRpY2xlRmxhdD8uc2VyaWFsXCIgW2hlYWRlclRleHRdPVwiJ1NFUklBTF9OTycgfCBzaGFyZWRMb2NhbGl6ZVwiIFtmaWVsZF09XCInc2VyaWFsTm8nXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdFRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFttb2RlbF09XCJzZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zZXJpYWxOb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFUklBTF9OTycgfCBzaGFyZWRMb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwicm93WydzZXJpYWxObyddID0gJGV2ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQUxMT0NBVEVEJyB8IHNoYXJlZExvY2FsaXplXCIgW2ZpZWxkXT1cIidzdG9ja0Fzc2lnbmVkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydzdG9ja0Fzc2lnbmVkJ11cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInQVZBSUxBQkxFX1NUT0NLJyB8IHNoYXJlZExvY2FsaXplXCIgW2ZpZWxkXT1cIidhbW91bnRJblN0b2NrRnJlZSdcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInJvd1snYW1vdW50SW5TdG9ja0ZyZWUnXVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L2NvLXNpbXBsZS1ncmlkLWNvbHVtbj5cclxuICAgICAgICAgICAgICA8Y28tc2ltcGxlLWdyaWQtY29sdW1uIFtoZWFkZXJUZXh0XT1cIidWQUxVVEEnIHwgc2hhcmVkTG9jYWxpemVcIiBbZmllbGRdPVwiJ2N1cnJlbmN5J1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydjdXJyZW5jeSddXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgICAgIDxjby1zaW1wbGUtZ3JpZC1jb2x1bW4gW2hlYWRlclRleHRdPVwiJ1BVUkNIQVNFX1BSSUNFJyB8IHNoYXJlZExvY2FsaXplXCIgW2ZpZWxkXT1cIidwdXJjaGFzZVByaWNlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRUZW1wbGF0ZSBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwicm93WydwdXJjaGFzZVByaWNlJ11cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9jby1zaW1wbGUtZ3JpZC1jb2x1bW4+XHJcbiAgICAgICAgICAgICAgPGNvLXNpbXBsZS1ncmlkLWNvbHVtbiBbaGVhZGVyVGV4dF09XCInU1VQUExJRVJOUicgfCBzaGFyZWRMb2NhbGl6ZVwiIFtmaWVsZF09XCInc3VwcGxpZXJObydcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0VGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInJvd1snc3VwcGxpZXJObyddXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgIDwvY28tc2ltcGxlLWdyaWQtY29sdW1uPlxyXG4gICAgICAgICAgPC9jby1zaW1wbGUtZ3JpZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxjby1zZW5kLW1ldGhvZC1kaWFsb2cgKm5nSWY9XCJzaG93U2VuZE1ldGhvZERpYWxvZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd1NlbmRNZXRob2REaWFsb2cgPSBmYWxzZVwiPlxyXG5cclxuICAgICAgPC9jby1zZW5kLW1ldGhvZC1kaWFsb2c+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9ja0xvY2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgQmFzZVN0b2NrQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgd2FyZWhvdXNlTm8odmFsdWU6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuX3dhcmVob3VzZU5vICE9PSB2YWx1ZSkge1xyXG4gICAgICB0aGlzLl93YXJlaG91c2VObyA9IHZhbHVlO1xyXG4gICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgICAgdGhpcy5fZ2V0V2FyZWhvdXNlTG9jYXRpb25zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHdhcmVob3VzZU5vKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fd2FyZWhvdXNlTm87XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlU3RvY2tJbmZvcm1hdGlvbjogQXJ0aWNsZVN0b2NrQm9bXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhcnRpY2xlV2FyZWhvdXNlOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhbGxXYXJlaG91c2VzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93U3RvY2tUcmFuc2ZlcjogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXJ0aWNsZUZsYXQ6IEFydGljbGVGbGF0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkYXRhV2FyZUhvdXNlQ29kZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlc1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2Zlckljb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8QXJ0aWNsZVN0b2NrQm8+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHkgc2VuZE1ldGhvZERpYWxvZ0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjxQcmludFByaWNlU3RpY2tlcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgc2hvd1N0b2NrVHJhbnNmZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBoYW5kbGVTdGlja2VyQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBhcnRpY2xlRGV0YWlsczogQXJ0aWNsZURldGFpbHNCbztcclxuICBwdWJsaWMgc2hvd0NvbmZpcm1hdGlvbkRpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBuZXdTdG9ja0xpbmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZGVsZXRlU3RvY2tMaW5lOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGNhbm5vdERlbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93Q29uZmlybVN0b2NrUm93OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBhcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uOiBBcnRpY2xlU3RvY2tNYW5hZ2VtZW50ID0gbmV3IEFydGljbGVTdG9ja01hbmFnZW1lbnQoKTtcclxuXHJcbiAgcHVibGljIHN0b2NrU3RhdHVzOiBTdG9ja1N0YXR1c1tdID0gW107XHJcbiAgcHVibGljIHNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhOiBBcnRpY2xlRGV0YWlsc0JvID0gbmV3IEFydGljbGVEZXRhaWxzQm8oKTtcclxuXHJcbiAgcHVibGljIHNlbGVjdGVkTG9jYXRpb25Obzogc3RyaW5nO1xyXG4gIHB1YmxpYyBkYXRhOiBBcnRpY2xlRGV0YWlsc0JvW10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3RlZFdhcmVob3VzZTogU3RvY2tNYW5hZ2VtZW50V2FyZWhvdXNlcztcclxuICBwdWJsaWMgc3RvY2tMb2NhdGlvbnM6IFN0b2NrTG9jYXRpb25bXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgc2VsZWN0ZWRSb3c6IEFydGljbGVEZXRhaWxzQm8gfCBudWxsID0gbnVsbDtcclxuICBwdWJsaWMgc2hvd1NlbmRNZXRob2REaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIHByaXZhdGUgX3dhcmVob3VzZU5vOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3N0b2NrU2VydmljZTogU3RvY2tTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldFN0b2NrU3RhdGUoKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgIHRoaXMuc3RvY2tTdGF0dXMgPSByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNob3dTdG9ja1RyYW5zZmVyQ2hhbmdlKHNob3c6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2hvd1N0b2NrVHJhbnNmZXIgPSBzaG93O1xyXG4gICAgdGhpcy5zaG93U3RvY2tUcmFuc2ZlckNoYW5nZS5lbWl0KHRoaXMuc2hvd1N0b2NrVHJhbnNmZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uTG9jYXRpb25Ecm9wZG93bkNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZ2V0V2FyZWhvdXNlTG9jYXRpb25zKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9jYXRpb25DaGFuZ2VkKHJvdzogQXJ0aWNsZURldGFpbHNCbywgZXZlbnQ6IFN0b2NrTG9jYXRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbk5vID0gZXZlbnQubG9jYXRpb25ObztcclxuICAgIHJvdy5sb2NhdGlvbk5vID0gZXZlbnQubG9jYXRpb25ObztcclxuICAgIHRoaXMub25Mb2NhdGlvbkRyb3Bkb3duQ2xpY2soKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhbW91bnRJblN0b2NrQ2hhbmdlZChkYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmFtb3VudEluU3RvY2sgPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5TZW5kTWV0aG9kRGlhbG9nKGRhdGEpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1NlbmRNZXRob2REaWFsb2cgPSB0cnVlO1xyXG4gICAgdGhpcy5zZW5kTWV0aG9kRGlhbG9nQ2xpY2tlZC5lbWl0KGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrVHJhbnNmZXJDbGljayhldmVudDogQXJ0aWNsZURldGFpbHNCbyk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlRGV0YWlscyA9IGV2ZW50O1xyXG4gICAgdGhpcy5zaG93U3RvY2tUcmFuc2ZlciA9IHRydWU7XHJcbiAgfVxyXG4gIHB1YmxpYyBvblJvd1NlbGVjdGVkKHJvdzogQXJ0aWNsZURldGFpbHNCbyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvdyA9IHJvdztcclxuICAgIHRoaXMuY2Fubm90RGVsZXRlID0gZmFsc2U7XHJcbiAgfVxyXG4gIHB1YmxpYyBvbk9rQ2xpY2tTZW5kTG9jYXRpb25zKHJvdzogQXJ0aWNsZURldGFpbHNCbyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YSA9IHJvdztcclxuICAgIHRoaXMubmV3U3RvY2tMaW5lID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dDb25maXJtYXRpb25EaWFsb2cgPSB0cnVlO1xyXG4gIH1cclxuICBwdWJsaWMgaGFuZGxlRGVsZXRlUm93KHJvdzogQXJ0aWNsZURldGFpbHNCbyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YSA9IHJvdztcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnN0b2NrQXNzaWduZWQgPiAwKSB7XHJcbiAgICAgIHRoaXMuZGVsZXRlU3RvY2tMaW5lID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNhbm5vdERlbGV0ZSA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRlbGV0ZVN0b2NrTGluZSA9IHRydWU7XHJcbiAgICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuY2Fubm90RGVsZXRlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyBoYW5kbGVBZGRSb3coKSB7XHJcbiAgICBpZiAoIXRoaXMuZGF0YT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IFtdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kYXRhLnB1c2gobmV3IEFydGljbGVEZXRhaWxzQm8oKSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhID0gdGhpcy5kYXRhWyh0aGlzLmRhdGEubGVuZ3RoIC0gMSldO1xyXG4gICAgdGhpcy5uZXdTdG9ja0xpbmUgPSB0cnVlO1xyXG4gICAgdGhpcy5zaG93Q29uZmlybWF0aW9uRGlhbG9nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVPa0NsaWNrKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5hcnRpY2xlRmxhdC5nb29kSWQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5nb29kSWQgPSB0aGlzLmFydGljbGVGbGF0Lmdvb2RJZDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uLmdvb2RJZCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmdvb2RJZCA9IHBhcnNlSW50KHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5nb29kSWQpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5lbnRyeURhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS53YXJlaG91c2VObyA9IHRoaXMud2FyZWhvdXNlTm87XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZExvY2F0aW9uTm8pIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5sb2NhdGlvbk5vID0gdGhpcy5zZWxlY3RlZExvY2F0aW9uTm8/LnRvU3RyaW5nKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UudXBkYXRlQXJ0aWNsZURldGFpbHModGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YSkudGhlbihyZXN1bHQgPT4ge1xyXG4gICAgICAgIHRoaXMuYXJ0aWNsZURldGFpbHNJbmZvcm1hdGlvbi5nb29kSWQgPSB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLmdvb2RJZD8udG9TdHJpbmcoKTtcclxuICAgICAgICB0aGlzLmFydGljbGVEZXRhaWxzSW5mb3JtYXRpb24ud2FyZWhvdXNlTnVtYmVyID0gdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS53YXJlaG91c2VObztcclxuICAgICAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0QXJ0aWNsZURldGFpbHModGhpcy5hcnRpY2xlRGV0YWlsc0luZm9ybWF0aW9uKS50aGVuKChkZXRhaWxzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRhdGEgPSBkZXRhaWxzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5zaG93Q29uZmlybWF0aW9uRGlhbG9nID0gZmFsc2U7XHJcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU3RvY2tTdGF0dXNDaGFuZ2Uoc3RhdHVzOiBTdG9ja1N0YXR1cykge1xyXG4gICAgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YS5zdG9ja1N0YXRlSWQgPSBzdGF0dXMuc3RvY2tTdGF0ZUlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVN0b2NrU3RhdHVzUmVtYXJrQ2hhbmdlKHJlbWFyazogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhLnN0b2NrU3RhdGVSZW1hcmsgPSByZW1hcms7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGlzYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gKCF0aGlzLnNlbGVjdGVkQXJ0aWNsZURldGFpbHNEYXRhPy5zdG9ja1N0YXRlSWQgJiYgdGhpcy5zZWxlY3RlZEFydGljbGVEZXRhaWxzRGF0YT8uc3RvY2tTdGF0ZVJlbWFyaz8ubGVuZ3RoIDw9IDEpO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBzdGF0dXNGb3JJZChpZDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9ja1N0YXR1cy5maW5kKHN0YXR1cyA9PiBzdGF0dXMuc3RvY2tTdGF0ZUlkID09PSBpZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9jYXRpb25Gb3JOdW1iZXIobnVtYmVyOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b2NrTG9jYXRpb25zPy5maW5kKGxvY2F0aW9uID0+IGxvY2F0aW9uLmxvY2F0aW9uTm8gPT09IG51bWJlcj8udG9TdHJpbmcoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9jYXRpb25Gb3JEZXNjcmlwdGlvbihsb2NhdGlvbk5vOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgLy8gRmluZCB0aGUgbG9jYXRpb24gaW4gc3RvY2tMb2NhdGlvbnMgYnkgbG9jYXRpb25Ob1xyXG4gICAgY29uc3QgbG9jYXRpb24gPSB0aGlzLnN0b2NrTG9jYXRpb25zLmZpbmQobG9jID0+IGxvYy5sb2NhdGlvbk5vID09PSBsb2NhdGlvbk5vKTtcclxuICAgIC8vIElmIGxvY2F0aW9uIGlzIGZvdW5kIGFuZCBpdCBoYXMgYSBub24tZW1wdHkgZGVzY3JpcHRpb24sIHJldHVybiBkZXNjcmlwdGlvblxyXG4gICAgLy8gSWYgbG9jYXRpb24gaXMgbm90IGZvdW5kIG9yIGRlc2NyaXB0aW9uIGlzIGVtcHR5LCByZXR1cm4gbG9jYXRpb25Ob1xyXG4gICAgcmV0dXJuIGxvY2F0aW9uICYmIGxvY2F0aW9uLmRlc2NyaXB0aW9uICYmIGxvY2F0aW9uLmRlc2NyaXB0aW9uLnRyaW0oKSAhPT0gJycgPyBsb2NhdGlvbi5kZXNjcmlwdGlvbiA6IGxvY2F0aW9uTm87XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0RGF0YSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlcXVlc3Q6IEFydGljbGVTdG9ja01hbmFnZW1lbnQgPSBuZXcgQXJ0aWNsZVN0b2NrTWFuYWdlbWVudCgpO1xyXG4gICAgcmVxdWVzdC5nb29kSWQgPSB0aGlzLmdvb2RJZC50b1N0cmluZygpO1xyXG4gICAgcmVxdWVzdC53YXJlaG91c2VOdW1iZXIgPSB0aGlzLndhcmVob3VzZU5vO1xyXG4gICAgdGhpcy5fc3RvY2tTZXJ2aWNlLmdldEFydGljbGVEZXRhaWxzKHJlcXVlc3QpLnRoZW4oKGRldGFpbHMpID0+IHtcclxuICAgICAgdGhpcy5kYXRhID0gZGV0YWlscztcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fZ2V0V2FyZWhvdXNlTG9jYXRpb25zKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRXYXJlaG91c2VMb2NhdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdG9ja1NlcnZpY2UuZ2V0U3RvY2tNYW5hZ2VtZW50TG9jYXRpb25zKHRoaXMud2FyZWhvdXNlTm8pLnRoZW4oKHJlc3VsdDogU3RvY2tMb2NhdGlvbltdKSA9PiB7XHJcbiAgICAgIHRoaXMuc3RvY2tMb2NhdGlvbnMgPSByZXN1bHQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUb2dnbGVQb3B1cCgpIHtcclxuICAgIHRoaXMuc2hvd0NvbmZpcm1hdGlvbkRpYWxvZyA9ICF0aGlzLnNob3dDb25maXJtYXRpb25EaWFsb2c7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlUG9wdXBTYXZlKCBzYXZlZDogYm9vbGVhbikge1xyXG4gICAgaWYoIXNhdmVkKSB7XHJcbiAgICAgIHRoaXMuZGF0YS5zcGxpY2UoKHRoaXMuZGF0YS5sZW5ndGggLSAxKSwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -7,6 +7,7 @@ export var Icon;
7
7
  Icon["ArrowDown"] = "arrow_down";
8
8
  Icon["ArrowDownRegular"] = "arrow_down_regular";
9
9
  Icon["ArrowFatRight"] = "arrow_fat_right";
10
+ Icon["ArrowLeftRoundOpen"] = "arrow_left_round_open";
10
11
  Icon["ArrowPointDown"] = "arrow_point_down";
11
12
  Icon["ArrowPointLeft"] = "arrow_point_left";
12
13
  Icon["ArrowPointRight"] = "arrow_point_right";
@@ -71,4 +72,4 @@ export var Icon;
71
72
  Icon["Xml"] = "xml";
72
73
  Icon["XSolid"] = "x_solid";
73
74
  })(Icon || (Icon = {}));
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2VudW0vaWNvbi5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdHQUFnRztBQUVoRyxNQUFNLENBQU4sSUFBWSxJQXNFWDtBQXRFRCxXQUFZLElBQUk7SUFDWiwyQkFBbUIsQ0FBQTtJQUNuQiwyQ0FBbUMsQ0FBQTtJQUNuQyw2Q0FBcUMsQ0FBQTtJQUNyQyxnQ0FBd0IsQ0FBQTtJQUN4QiwrQ0FBdUMsQ0FBQTtJQUN2Qyx5Q0FBaUMsQ0FBQTtJQUNqQywyQ0FBbUMsQ0FBQTtJQUNuQywyQ0FBbUMsQ0FBQTtJQUNuQyw2Q0FBcUMsQ0FBQTtJQUNyQyx1Q0FBK0IsQ0FBQTtJQUMvQixxRUFBNkQsQ0FBQTtJQUM3RCw0QkFBb0IsQ0FBQTtJQUNwQixtREFBMkMsQ0FBQTtJQUMzQyxvQ0FBNEIsQ0FBQTtJQUM1QiwrQ0FBdUMsQ0FBQTtJQUN2QyxxREFBNkMsQ0FBQTtJQUM3QyxzQ0FBOEIsQ0FBQTtJQUM5QixrQ0FBMEIsQ0FBQTtJQUMxQixrQ0FBMEIsQ0FBQTtJQUMxQixxREFBNkMsQ0FBQTtJQUM3QyxzQ0FBOEIsQ0FBQTtJQUM5QiwwQ0FBa0MsQ0FBQTtJQUNsQyxvQ0FBNEIsQ0FBQTtJQUM1Qix1QkFBZSxDQUFBO0lBQ2YsaURBQXlDLENBQUE7SUFDekMsd0NBQWdDLENBQUE7SUFDaEMsa0NBQTBCLENBQUE7SUFDMUIseURBQWlELENBQUE7SUFDakQsNkJBQXFCLENBQUE7SUFDckIsMkNBQW1DLENBQUE7SUFDbkMsdUJBQWUsQ0FBQTtJQUNmLHNDQUE4QixDQUFBO0lBQzlCLDZCQUFxQixDQUFBO0lBQ3JCLDRDQUFvQyxDQUFBO0lBQ3BDLGtDQUEwQixDQUFBO0lBQzFCLGlEQUF5QyxDQUFBO0lBQ3pDLDZDQUFxQyxDQUFBO0lBQ3JDLDJDQUFtQyxDQUFBO0lBQ25DLHVDQUErQixDQUFBO0lBQy9CLHVEQUErQyxDQUFBO0lBQy9DLHFEQUE2QyxDQUFBO0lBQzdDLGlEQUF5QyxDQUFBO0lBQ3pDLHNDQUE4QixDQUFBO0lBQzlCLHlDQUFpQyxDQUFBO0lBQ2pDLHFCQUFhLENBQUE7SUFDYixpREFBeUMsQ0FBQTtJQUN6Qyw2Q0FBcUMsQ0FBQTtJQUNyQyxvQ0FBNEIsQ0FBQTtJQUM1QixxQ0FBNkIsQ0FBQTtJQUM3Qiw4Q0FBc0MsQ0FBQTtJQUN0QyxvREFBNEMsQ0FBQTtJQUM1QyxtQkFBVyxDQUFBO0lBQ1gsdURBQStDLENBQUE7SUFDL0MsdUNBQStCLENBQUE7SUFDL0Isb0NBQTRCLENBQUE7SUFDNUIsa0NBQTBCLENBQUE7SUFDMUIsdUJBQWUsQ0FBQTtJQUNmLHNDQUE4QixDQUFBO0lBQzlCLGtDQUEwQixDQUFBO0lBQzFCLDZFQUFxRSxDQUFBO0lBQ3JFLDBDQUFrQyxDQUFBO0lBQ2xDLHNEQUE4QyxDQUFBO0lBQzlDLGlEQUF5QyxDQUFBO0lBQ3pDLGtDQUEwQixDQUFBO0lBQzFCLHFCQUFhLENBQUE7SUFDYiw2QkFBcUIsQ0FBQTtJQUNyQiw2Q0FBcUMsQ0FBQTtJQUNyQyxtQkFBVyxDQUFBO0lBQ1gsMEJBQWtCLENBQUE7QUFDdEIsQ0FBQyxFQXRFVyxJQUFJLEtBQUosSUFBSSxRQXNFZiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBBVVRPIEdFTkVSQVRFRCBGSUxFLiBETyBOT1QgQ0hBTkdFLi4gT1IgWU9VIFdJTEwgU1VGRkVSIFRIRSBDT05TRVFVRU5DRVMgT0YgWU9VUiBBQ1RJT05TICoqL1xuXG5leHBvcnQgZW51bSBJY29uIHtcbiAgICBBY2NvdW50ID0gXCJhY2NvdW50XCIsXG4gICAgQW5nbGVMZWZ0U29saWQgPSBcImFuZ2xlX2xlZnRfc29saWRcIixcbiAgICBBbmdsZVJpZ2h0U29saWQgPSBcImFuZ2xlX3JpZ2h0X3NvbGlkXCIsXG4gICAgQXJyb3dEb3duID0gXCJhcnJvd19kb3duXCIsXG4gICAgQXJyb3dEb3duUmVndWxhciA9IFwiYXJyb3dfZG93bl9yZWd1bGFyXCIsXG4gICAgQXJyb3dGYXRSaWdodCA9IFwiYXJyb3dfZmF0X3JpZ2h0XCIsXG4gICAgQXJyb3dQb2ludERvd24gPSBcImFycm93X3BvaW50X2Rvd25cIixcbiAgICBBcnJvd1BvaW50TGVmdCA9IFwiYXJyb3dfcG9pbnRfbGVmdFwiLFxuICAgIEFycm93UG9pbnRSaWdodCA9IFwiYXJyb3dfcG9pbnRfcmlnaHRcIixcbiAgICBBcnJvd1BvaW50VXAgPSBcImFycm93X3BvaW50X3VwXCIsXG4gICAgQXJyb3dSaWdodEFycm93TGVmdFJlZ3VsYXIgPSBcImFycm93X3JpZ2h0X2Fycm93X2xlZnRfcmVndWxhclwiLFxuICAgIEF0U29saWQgPSBcImF0X3NvbGlkXCIsXG4gICAgQmFyY29kZVJlYWRSZWd1bGFyID0gXCJiYXJjb2RlX3JlYWRfcmVndWxhclwiLFxuICAgIEJlbGxSZWd1bGFyID0gXCJiZWxsX3JlZ3VsYXJcIixcbiAgICBCZWxsU2xhc2hSZWd1bGFyID0gXCJiZWxsX3NsYXNoX3JlZ3VsYXJcIixcbiAgICBCcmluZ0ZvcndhcmRSZWd1bGFyID0gXCJicmluZ19mb3J3YXJkX3JlZ3VsYXJcIixcbiAgICBDaGVja0R1b3RvbmUgPSBcImNoZWNrX2R1b3RvbmVcIixcbiAgICBDaGVja1JvdW5kID0gXCJjaGVja19yb3VuZFwiLFxuICAgIENoZWNrU29saWQgPSBcImNoZWNrX3NvbGlkXCIsXG4gICAgQ2hldnJvblJpZ2h0UmVndWxhciA9IFwiY2hldnJvbl9yaWdodF9yZWd1bGFyXCIsXG4gICAgQ2xvY2tSZWd1bGFyID0gXCJjbG9ja19yZWd1bGFyXCIsXG4gICAgQ29tbWVudFJlZ3VsYXIgPSBcImNvbW1lbnRfcmVndWxhclwiLFxuICAgIENyb3NzU2tpbm55ID0gXCJjcm9zc19za2lubnlcIixcbiAgICBDdWJlcyA9IFwiY3ViZXNcIixcbiAgICBEZWxldGVMZWZ0UmVndWxhciA9IFwiZGVsZXRlX2xlZnRfcmVndWxhclwiLFxuICAgIERlbGl2ZXJ5VHJ1Y2sgPSBcImRlbGl2ZXJ5X3RydWNrXCIsXG4gICAgRGV0YWlsVmlldyA9IFwiZGV0YWlsX3ZpZXdcIixcbiAgICBEaWFncmFtUHJvamVjdFJlZ3VsYXIgPSBcImRpYWdyYW1fcHJvamVjdF9yZWd1bGFyXCIsXG4gICAgRHJvcHpvbmUgPSBcImRyb3B6b25lXCIsXG4gICAgRWRpdFBlblJlZ3VsYXIgPSBcImVkaXRfcGVuX3JlZ3VsYXJcIixcbiAgICBFbWFpbCA9IFwiZW1haWxcIixcbiAgICBFbWFpbFJlZ3VsYXIgPSBcImVtYWlsX3JlZ3VsYXJcIixcbiAgICBFbXBsb3llZSA9IFwiZW1wbG95ZWVcIixcbiAgICBFbnZlbG9wZVJlZ3VsYXIgPSBcImVudmVsb3BlX3JlZ3VsYXJcIixcbiAgICBFeWVSZWd1bGFyID0gXCJleWVfcmVndWxhclwiLFxuICAgIEZpbGVFeHBvcnRSZWd1bGFyID0gXCJmaWxlX2V4cG9ydF9yZWd1bGFyXCIsXG4gICAgRmlsZUV4cG9ydFNvbGlkID0gXCJmaWxlX2V4cG9ydF9zb2xpZFwiLFxuICAgIEZpbGVQZGZSZWd1bGFyID0gXCJmaWxlX3BkZl9yZWd1bGFyXCIsXG4gICAgRmlsZVBkZlNvbGlkID0gXCJmaWxlX3BkZl9zb2xpZFwiLFxuICAgIEZpbGVTaWduYXR1cmVSZWd1bGFyID0gXCJmaWxlX3NpZ25hdHVyZV9yZWd1bGFyXCIsXG4gICAgRm9sZGVyc1NoYXJwUmVndWxhciA9IFwiZm9sZGVyc19zaGFycF9yZWd1bGFyXCIsXG4gICAgSG91c2VCbGFua1JlZ3VsYXIgPSBcImhvdXNlX2JsYW5rX3JlZ3VsYXJcIixcbiAgICBJb25lV29ya2Zsb3cgPSBcImlvbmVfd29ya2Zsb3dcIixcbiAgICBMaXN0VWxSZWd1bGFyID0gXCJsaXN0X3VsX3JlZ3VsYXJcIixcbiAgICBMb2NrID0gXCJsb2NrXCIsXG4gICAgTWVzc2FnZVNtc1JlZ3VsYXIgPSBcIm1lc3NhZ2Vfc21zX3JlZ3VsYXJcIixcbiAgICBNZXNzYWdlU21zU29saWQgPSBcIm1lc3NhZ2Vfc21zX3NvbGlkXCIsXG4gICAgTWludXNTaW1wbGUgPSBcIm1pbnVzX3NpbXBsZVwiLFxuICAgIE5vdGlmaWNhdGlvbiA9IFwibm90aWZpY2F0aW9uXCIsXG4gICAgUGFwZXJjbGlwUmVndWxhciA9IFwicGFwZXJjbGlwX3JlZ3VsYXJcIixcbiAgICBQYXBlclBsYW5lVG9wU29saWQgPSBcInBhcGVyX3BsYW5lX3RvcF9zb2xpZFwiLFxuICAgIFBkZiA9IFwicGRmXCIsXG4gICAgUGVyc29uRGlnZ2luZ1JlZ3VsYXIgPSBcInBlcnNvbl9kaWdnaW5nX3JlZ3VsYXJcIixcbiAgICBQaW5Sb3VuZE9wZW4gPSBcInBpbl9yb3VuZF9vcGVuXCIsXG4gICAgUGx1c1JlZ3VsYXIgPSBcInBsdXNfcmVndWxhclwiLFxuICAgIFBsdXNTaW1wbGUgPSBcInBsdXNfc2ltcGxlXCIsXG4gICAgUHJpbnQgPSBcInByaW50XCIsXG4gICAgUHJpbnRSZWd1bGFyID0gXCJwcmludF9yZWd1bGFyXCIsXG4gICAgUHJpbnRTb2xpZCA9IFwicHJpbnRfc29saWRcIixcbiAgICBSZWd1bGFyRmlsZVNpZ25hdHVyZUNpcmNsZVBsdXMgPSBcInJlZ3VsYXJfZmlsZV9zaWduYXR1cmVfY2lyY2xlX3BsdXNcIixcbiAgICBTaWduYXR1cmVGaWVsZCA9IFwic2lnbmF0dXJlX2ZpZWxkXCIsXG4gICAgU29saWRCYXJjb2RlUmVhZFRhZyA9IFwic29saWRfYmFyY29kZV9yZWFkX3RhZ1wiLFxuICAgIFNxdWFyZVBsdXNSZWd1bGFyID0gXCJzcXVhcmVfcGx1c19yZWd1bGFyXCIsXG4gICAgVGFnUmVndWxhciA9IFwidGFnX3JlZ3VsYXJcIixcbiAgICBUYXNrID0gXCJ0YXNrXCIsXG4gICAgVHJhc2hiaW4gPSBcInRyYXNoYmluXCIsXG4gICAgVHJhc2hDYW5SZWd1bGFyID0gXCJ0cmFzaF9jYW5fcmVndWxhclwiLFxuICAgIFhtbCA9IFwieG1sXCIsXG4gICAgWFNvbGlkID0gXCJ4X3NvbGlkXCJcbn0iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkY29tcG9uZW50cy9zcmMvbGliL2VudW0vaWNvbi5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdHQUFnRztBQUVoRyxNQUFNLENBQU4sSUFBWSxJQXVFWDtBQXZFRCxXQUFZLElBQUk7SUFDWiwyQkFBbUIsQ0FBQTtJQUNuQiwyQ0FBbUMsQ0FBQTtJQUNuQyw2Q0FBcUMsQ0FBQTtJQUNyQyxnQ0FBd0IsQ0FBQTtJQUN4QiwrQ0FBdUMsQ0FBQTtJQUN2Qyx5Q0FBaUMsQ0FBQTtJQUNqQyxvREFBNEMsQ0FBQTtJQUM1QywyQ0FBbUMsQ0FBQTtJQUNuQywyQ0FBbUMsQ0FBQTtJQUNuQyw2Q0FBcUMsQ0FBQTtJQUNyQyx1Q0FBK0IsQ0FBQTtJQUMvQixxRUFBNkQsQ0FBQTtJQUM3RCw0QkFBb0IsQ0FBQTtJQUNwQixtREFBMkMsQ0FBQTtJQUMzQyxvQ0FBNEIsQ0FBQTtJQUM1QiwrQ0FBdUMsQ0FBQTtJQUN2QyxxREFBNkMsQ0FBQTtJQUM3QyxzQ0FBOEIsQ0FBQTtJQUM5QixrQ0FBMEIsQ0FBQTtJQUMxQixrQ0FBMEIsQ0FBQTtJQUMxQixxREFBNkMsQ0FBQTtJQUM3QyxzQ0FBOEIsQ0FBQTtJQUM5QiwwQ0FBa0MsQ0FBQTtJQUNsQyxvQ0FBNEIsQ0FBQTtJQUM1Qix1QkFBZSxDQUFBO0lBQ2YsaURBQXlDLENBQUE7SUFDekMsd0NBQWdDLENBQUE7SUFDaEMsa0NBQTBCLENBQUE7SUFDMUIseURBQWlELENBQUE7SUFDakQsNkJBQXFCLENBQUE7SUFDckIsMkNBQW1DLENBQUE7SUFDbkMsdUJBQWUsQ0FBQTtJQUNmLHNDQUE4QixDQUFBO0lBQzlCLDZCQUFxQixDQUFBO0lBQ3JCLDRDQUFvQyxDQUFBO0lBQ3BDLGtDQUEwQixDQUFBO0lBQzFCLGlEQUF5QyxDQUFBO0lBQ3pDLDZDQUFxQyxDQUFBO0lBQ3JDLDJDQUFtQyxDQUFBO0lBQ25DLHVDQUErQixDQUFBO0lBQy9CLHVEQUErQyxDQUFBO0lBQy9DLHFEQUE2QyxDQUFBO0lBQzdDLGlEQUF5QyxDQUFBO0lBQ3pDLHNDQUE4QixDQUFBO0lBQzlCLHlDQUFpQyxDQUFBO0lBQ2pDLHFCQUFhLENBQUE7SUFDYixpREFBeUMsQ0FBQTtJQUN6Qyw2Q0FBcUMsQ0FBQTtJQUNyQyxvQ0FBNEIsQ0FBQTtJQUM1QixxQ0FBNkIsQ0FBQTtJQUM3Qiw4Q0FBc0MsQ0FBQTtJQUN0QyxvREFBNEMsQ0FBQTtJQUM1QyxtQkFBVyxDQUFBO0lBQ1gsdURBQStDLENBQUE7SUFDL0MsdUNBQStCLENBQUE7SUFDL0Isb0NBQTRCLENBQUE7SUFDNUIsa0NBQTBCLENBQUE7SUFDMUIsdUJBQWUsQ0FBQTtJQUNmLHNDQUE4QixDQUFBO0lBQzlCLGtDQUEwQixDQUFBO0lBQzFCLDZFQUFxRSxDQUFBO0lBQ3JFLDBDQUFrQyxDQUFBO0lBQ2xDLHNEQUE4QyxDQUFBO0lBQzlDLGlEQUF5QyxDQUFBO0lBQ3pDLGtDQUEwQixDQUFBO0lBQzFCLHFCQUFhLENBQUE7SUFDYiw2QkFBcUIsQ0FBQTtJQUNyQiw2Q0FBcUMsQ0FBQTtJQUNyQyxtQkFBVyxDQUFBO0lBQ1gsMEJBQWtCLENBQUE7QUFDdEIsQ0FBQyxFQXZFVyxJQUFJLEtBQUosSUFBSSxRQXVFZiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBBVVRPIEdFTkVSQVRFRCBGSUxFLiBETyBOT1QgQ0hBTkdFLi4gT1IgWU9VIFdJTEwgU1VGRkVSIFRIRSBDT05TRVFVRU5DRVMgT0YgWU9VUiBBQ1RJT05TICoqL1xuXG5leHBvcnQgZW51bSBJY29uIHtcbiAgICBBY2NvdW50ID0gXCJhY2NvdW50XCIsXG4gICAgQW5nbGVMZWZ0U29saWQgPSBcImFuZ2xlX2xlZnRfc29saWRcIixcbiAgICBBbmdsZVJpZ2h0U29saWQgPSBcImFuZ2xlX3JpZ2h0X3NvbGlkXCIsXG4gICAgQXJyb3dEb3duID0gXCJhcnJvd19kb3duXCIsXG4gICAgQXJyb3dEb3duUmVndWxhciA9IFwiYXJyb3dfZG93bl9yZWd1bGFyXCIsXG4gICAgQXJyb3dGYXRSaWdodCA9IFwiYXJyb3dfZmF0X3JpZ2h0XCIsXG4gICAgQXJyb3dMZWZ0Um91bmRPcGVuID0gXCJhcnJvd19sZWZ0X3JvdW5kX29wZW5cIixcbiAgICBBcnJvd1BvaW50RG93biA9IFwiYXJyb3dfcG9pbnRfZG93blwiLFxuICAgIEFycm93UG9pbnRMZWZ0ID0gXCJhcnJvd19wb2ludF9sZWZ0XCIsXG4gICAgQXJyb3dQb2ludFJpZ2h0ID0gXCJhcnJvd19wb2ludF9yaWdodFwiLFxuICAgIEFycm93UG9pbnRVcCA9IFwiYXJyb3dfcG9pbnRfdXBcIixcbiAgICBBcnJvd1JpZ2h0QXJyb3dMZWZ0UmVndWxhciA9IFwiYXJyb3dfcmlnaHRfYXJyb3dfbGVmdF9yZWd1bGFyXCIsXG4gICAgQXRTb2xpZCA9IFwiYXRfc29saWRcIixcbiAgICBCYXJjb2RlUmVhZFJlZ3VsYXIgPSBcImJhcmNvZGVfcmVhZF9yZWd1bGFyXCIsXG4gICAgQmVsbFJlZ3VsYXIgPSBcImJlbGxfcmVndWxhclwiLFxuICAgIEJlbGxTbGFzaFJlZ3VsYXIgPSBcImJlbGxfc2xhc2hfcmVndWxhclwiLFxuICAgIEJyaW5nRm9yd2FyZFJlZ3VsYXIgPSBcImJyaW5nX2ZvcndhcmRfcmVndWxhclwiLFxuICAgIENoZWNrRHVvdG9uZSA9IFwiY2hlY2tfZHVvdG9uZVwiLFxuICAgIENoZWNrUm91bmQgPSBcImNoZWNrX3JvdW5kXCIsXG4gICAgQ2hlY2tTb2xpZCA9IFwiY2hlY2tfc29saWRcIixcbiAgICBDaGV2cm9uUmlnaHRSZWd1bGFyID0gXCJjaGV2cm9uX3JpZ2h0X3JlZ3VsYXJcIixcbiAgICBDbG9ja1JlZ3VsYXIgPSBcImNsb2NrX3JlZ3VsYXJcIixcbiAgICBDb21tZW50UmVndWxhciA9IFwiY29tbWVudF9yZWd1bGFyXCIsXG4gICAgQ3Jvc3NTa2lubnkgPSBcImNyb3NzX3NraW5ueVwiLFxuICAgIEN1YmVzID0gXCJjdWJlc1wiLFxuICAgIERlbGV0ZUxlZnRSZWd1bGFyID0gXCJkZWxldGVfbGVmdF9yZWd1bGFyXCIsXG4gICAgRGVsaXZlcnlUcnVjayA9IFwiZGVsaXZlcnlfdHJ1Y2tcIixcbiAgICBEZXRhaWxWaWV3ID0gXCJkZXRhaWxfdmlld1wiLFxuICAgIERpYWdyYW1Qcm9qZWN0UmVndWxhciA9IFwiZGlhZ3JhbV9wcm9qZWN0X3JlZ3VsYXJcIixcbiAgICBEcm9wem9uZSA9IFwiZHJvcHpvbmVcIixcbiAgICBFZGl0UGVuUmVndWxhciA9IFwiZWRpdF9wZW5fcmVndWxhclwiLFxuICAgIEVtYWlsID0gXCJlbWFpbFwiLFxuICAgIEVtYWlsUmVndWxhciA9IFwiZW1haWxfcmVndWxhclwiLFxuICAgIEVtcGxveWVlID0gXCJlbXBsb3llZVwiLFxuICAgIEVudmVsb3BlUmVndWxhciA9IFwiZW52ZWxvcGVfcmVndWxhclwiLFxuICAgIEV5ZVJlZ3VsYXIgPSBcImV5ZV9yZWd1bGFyXCIsXG4gICAgRmlsZUV4cG9ydFJlZ3VsYXIgPSBcImZpbGVfZXhwb3J0X3JlZ3VsYXJcIixcbiAgICBGaWxlRXhwb3J0U29saWQgPSBcImZpbGVfZXhwb3J0X3NvbGlkXCIsXG4gICAgRmlsZVBkZlJlZ3VsYXIgPSBcImZpbGVfcGRmX3JlZ3VsYXJcIixcbiAgICBGaWxlUGRmU29saWQgPSBcImZpbGVfcGRmX3NvbGlkXCIsXG4gICAgRmlsZVNpZ25hdHVyZVJlZ3VsYXIgPSBcImZpbGVfc2lnbmF0dXJlX3JlZ3VsYXJcIixcbiAgICBGb2xkZXJzU2hhcnBSZWd1bGFyID0gXCJmb2xkZXJzX3NoYXJwX3JlZ3VsYXJcIixcbiAgICBIb3VzZUJsYW5rUmVndWxhciA9IFwiaG91c2VfYmxhbmtfcmVndWxhclwiLFxuICAgIElvbmVXb3JrZmxvdyA9IFwiaW9uZV93b3JrZmxvd1wiLFxuICAgIExpc3RVbFJlZ3VsYXIgPSBcImxpc3RfdWxfcmVndWxhclwiLFxuICAgIExvY2sgPSBcImxvY2tcIixcbiAgICBNZXNzYWdlU21zUmVndWxhciA9IFwibWVzc2FnZV9zbXNfcmVndWxhclwiLFxuICAgIE1lc3NhZ2VTbXNTb2xpZCA9IFwibWVzc2FnZV9zbXNfc29saWRcIixcbiAgICBNaW51c1NpbXBsZSA9IFwibWludXNfc2ltcGxlXCIsXG4gICAgTm90aWZpY2F0aW9uID0gXCJub3RpZmljYXRpb25cIixcbiAgICBQYXBlcmNsaXBSZWd1bGFyID0gXCJwYXBlcmNsaXBfcmVndWxhclwiLFxuICAgIFBhcGVyUGxhbmVUb3BTb2xpZCA9IFwicGFwZXJfcGxhbmVfdG9wX3NvbGlkXCIsXG4gICAgUGRmID0gXCJwZGZcIixcbiAgICBQZXJzb25EaWdnaW5nUmVndWxhciA9IFwicGVyc29uX2RpZ2dpbmdfcmVndWxhclwiLFxuICAgIFBpblJvdW5kT3BlbiA9IFwicGluX3JvdW5kX29wZW5cIixcbiAgICBQbHVzUmVndWxhciA9IFwicGx1c19yZWd1bGFyXCIsXG4gICAgUGx1c1NpbXBsZSA9IFwicGx1c19zaW1wbGVcIixcbiAgICBQcmludCA9IFwicHJpbnRcIixcbiAgICBQcmludFJlZ3VsYXIgPSBcInByaW50X3JlZ3VsYXJcIixcbiAgICBQcmludFNvbGlkID0gXCJwcmludF9zb2xpZFwiLFxuICAgIFJlZ3VsYXJGaWxlU2lnbmF0dXJlQ2lyY2xlUGx1cyA9IFwicmVndWxhcl9maWxlX3NpZ25hdHVyZV9jaXJjbGVfcGx1c1wiLFxuICAgIFNpZ25hdHVyZUZpZWxkID0gXCJzaWduYXR1cmVfZmllbGRcIixcbiAgICBTb2xpZEJhcmNvZGVSZWFkVGFnID0gXCJzb2xpZF9iYXJjb2RlX3JlYWRfdGFnXCIsXG4gICAgU3F1YXJlUGx1c1JlZ3VsYXIgPSBcInNxdWFyZV9wbHVzX3JlZ3VsYXJcIixcbiAgICBUYWdSZWd1bGFyID0gXCJ0YWdfcmVndWxhclwiLFxuICAgIFRhc2sgPSBcInRhc2tcIixcbiAgICBUcmFzaGJpbiA9IFwidHJhc2hiaW5cIixcbiAgICBUcmFzaENhblJlZ3VsYXIgPSBcInRyYXNoX2Nhbl9yZWd1bGFyXCIsXG4gICAgWG1sID0gXCJ4bWxcIixcbiAgICBYU29saWQgPSBcInhfc29saWRcIlxufSJdfQ==