@colijnit/transaction 256.1.40 → 256.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,6 +19,7 @@ import { TransactionCfgName } from '../../enum/transaction-cfg-name.enum';
19
19
  import { TransactionHeaderService } from '../core/base/service/transaction-header.service';
20
20
  import { TransactionHeaderBaseComponent } from '../core/base/transaction-header-base.component';
21
21
  export class TransactionServiceOverviewComponent extends TransactionHeaderBaseComponent {
22
+ //private subs: Subscription[] = [];
22
23
  constructor(transactionHeaderService, transactionEventService, iconCacheService, screenConfigService, imageService, dictionaryService, transactionService, changeDetector, _dialogService) {
23
24
  super(transactionHeaderService, transactionEventService, iconCacheService, screenConfigService, imageService, dictionaryService, transactionService, changeDetector);
24
25
  this.transactionHeaderService = transactionHeaderService;
@@ -41,31 +42,48 @@ export class TransactionServiceOverviewComponent extends TransactionHeaderBaseCo
41
42
  this.documents = [];
42
43
  this.activities = [];
43
44
  this.showActivityHeader = false;
45
+ this.loadedTransactionId = null;
44
46
  }
45
47
  showClass() {
46
48
  return true;
47
49
  }
48
50
  ngOnInit() {
51
+ const _super = Object.create(null, {
52
+ ngOnInit: { get: () => super.ngOnInit }
53
+ });
49
54
  return __awaiter(this, void 0, void 0, function* () {
55
+ _super.ngOnInit.call(this);
50
56
  this.user = this.transactionService.loggedInUser;
51
57
  this.priorityDomainColl = yield this.transactionService.getPriority('NL');
52
58
  this.causeCodeColl = yield this.transactionService.getCauseCodes();
53
59
  this.entryTypeColl = yield this.transactionService.getEntryTypes('NL');
54
60
  this.priorityModel = this.priorityDomainColl.find(p => p.codeAsNumber === this.transactionServiceInfo.priority);
55
61
  this.causeCodeModel = this.causeCodeColl.find(c => c.causeCode === this.transactionServiceInfo.causeCode);
56
- this.entryTypeModel = this.entryTypeColl.find(e => e.code === this.transactionServiceInfo.entryType);
57
- this.fetchDocuments();
58
- this.getActivities();
62
+ this.entryTypeModel = this.entryTypeColl.find(e => e.code === this.transactionServiceInfo.entryType); /*
63
+
64
+ this.subs.push(
65
+ this.transactionHeaderService.transactionInfoSet.subscribe((set: boolean) => {
66
+ if (set) {
67
+ this.transactionInfoSet();
68
+ }
69
+ })
70
+ )
71
+ if (this.transactionInfo && this.transactionInfo.id) {
72
+ this.transactionInfoSet();
73
+ }*/
59
74
  });
60
75
  }
61
76
  ngOnDestroy() {
77
+ //this.subs.forEach(s => s.unsubscribe());
78
+ }
79
+ getKey() {
80
+ if (this.transactionInfo !== undefined && this.transactionInfo !== null && this.transactionInfo.id !== undefined && this.transactionInfo.id !== null) {
81
+ return this.transactionInfo.id.toString();
82
+ }
83
+ else {
84
+ return null;
85
+ }
62
86
  }
63
- /*public set transactionServiceInfo(value: TransactionServiceInfo) {
64
- super.transactionServiceInfo = value;
65
- if (this.priorityDomainColl.length > 0) {
66
- this.priorityModel = this.priorityDomainColl.find(p => p.codeAsNumber === value.priority);
67
- }
68
- }*/
69
87
  getActivities() {
70
88
  return __awaiter(this, void 0, void 0, function* () {
71
89
  this.activities = yield this.transactionService.getHistoricActivities(this.transactionInfo.id);
@@ -166,6 +184,13 @@ export class TransactionServiceOverviewComponent extends TransactionHeaderBaseCo
166
184
  type: SortType.Number
167
185
  }]);
168
186
  }
187
+ transactionInfoSet() {
188
+ super.transactionInfoSet();
189
+ if (this.transactionInfo.id !== this.loadedTransactionId)
190
+ this.loadedTransactionId = this.transactionInfo.id;
191
+ this.fetchDocuments();
192
+ this.getActivities();
193
+ }
169
194
  }
170
195
  TransactionServiceOverviewComponent.decorators = [
171
196
  { type: Component, args: [{
@@ -215,12 +240,12 @@ TransactionServiceOverviewComponent.decorators = [
215
240
  <div class="activity-task-creator-wrapper">
216
241
  <co-component-activity-list #openActivities [showActivityHeader]="showActivityHeader"
217
242
  [screenConfigurationObject]="cfgNames.HeaderActivityList"
218
- [table]="TableName.Transactions" [key]="transactionInfo.id?.toString()"
243
+ [table]="TableName.Transactions" [key]="getKey()"
219
244
  (refreshRequested)="finishedActivitiesRefreshRequested()">
220
245
  </co-component-activity-list>
221
- <co-task-creator [table]="TableName.Transactions" [remarkAndWorkKey]="transactionInfo.id?.toString()"
222
- [taskKey]="transactionInfo.transactionNr.toString()"
223
- [author]="user" [branchNo]="transactionInfo.branch.relationNr.toString()"
246
+ <co-task-creator [table]="TableName.Transactions" [remarkAndWorkKey]="getKey()"
247
+ [taskKey]="transactionInfo?.transactionNr?.toString()"
248
+ [author]="user" [branchNo]="transactionInfo?.branch?.relationNr.toString()"
224
249
  [workflowCategoryType]="WorkflowCategoryType.ServiceOrder"
225
250
  [screenConfigurationObject]="cfgNames.HeaderTaskCreator"
226
251
  (activityCreated)="fullActivitiesRefreshRequested()"></co-task-creator>
@@ -260,4 +285,4 @@ TransactionServiceOverviewComponent.propDecorators = {
260
285
  posOrderData: [{ type: Input }],
261
286
  customerPortal: [{ type: Input }]
262
287
  };
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VydmljZS1vdmVydmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZXJ2aWNlLW92ZXJ2aWV3L3RyYW5zYWN0aW9uLXNlcnZpY2Utb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJNUksT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0csT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFckUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzNFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDaEYsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRTNFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsb0JB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RCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO3FCQUNuRSxDQUFDO2dCQUNGLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUE3RU8sd0JBQXdCO1lBbEJ4Qix1QkFBdUI7WUFDdkIsZ0JBQWdCO1lBQ2hCLHFDQUFxQztZQUNyQyx1QkFBdUI7WUFDdkIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQVZsQixpQkFBaUI7WUFJakIsd0JBQXdCOzs7NkJBc0c3QixTQUFTLFNBQUMsOEJBQThCO3dCQUd4QyxXQUFXLFNBQUMsdUNBQXVDOzJCQUtuRCxLQUFLOzZCQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvbWFpbi12YWx1ZS5ibyc7XHJcbmltcG9ydCB7Q2F1c2VDb2RlfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY2F1c2UtY29kZS5ibyc7XHJcbmltcG9ydCB7Q29Eb2N1bWVudH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9jdW1lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHQnO1xyXG5pbXBvcnQge0FycmF5VXRpbHN9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL2FycmF5LXV0aWxzJztcclxuaW1wb3J0IHtTb3J0VXRpbHN9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL3NvcnQtdXRpbHMnO1xyXG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL2VudW0vc29ydC1kaXJlY3Rpb24nO1xyXG5pbXBvcnQge1NvcnRUeXBlfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9lbnVtL3NvcnQtdHlwZS5lbnVtJztcclxuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHkuYm8nO1xyXG5pbXBvcnQge1RhYmxlTmFtZX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWJsZS1uYW1lLmVudW0nO1xyXG5pbXBvcnQge1dvcmtmbG93Q2F0ZWdvcnlUeXBlfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3dvcmtmbG93LWNhdGVnb3J5LmVudW0nO1xyXG5pbXBvcnQge0NvbXBvbmVudEFjdGl2aXR5TGlzdENvbXBvbmVudH0gZnJvbSAnQGNvbGlqbml0L3NoYXJlZGNvbXBvbmVudHMnO1xyXG5pbXBvcnQge1NDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1Bvc09yZGVyRGF0YX0gZnJvbSAnLi4vLi4vbW9kZWwvcG9zLW9yZGVyLWRhdGEnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ2ZnTmFtZX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi1jZmctbmFtZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2V9IGZyb20gJy4uL2NvcmUvYmFzZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLWhlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlckJhc2VDb21wb25lbnR9IGZyb20gJy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1oZWFkZXItYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JlbGF0aW9uU21hbGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1zbWFsbC1vYmplY3QuYm8nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1zZXJ2aWNlLW92ZXJ2aWV3JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1vdmVydmlldy13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1hbmQtdGFzay13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtbWVzc2FnZS1hbmQtaW1hZ2Utd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1tZXNzYWdlLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLW1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbCBzZXJ2aWNlLWxhYmVsXCIgW3RleHRDb250ZW50XT1cIidTRVJWSUNFX1JFUE9SVCd8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRyYW5zYWN0aW9uU2VydmljZUluZm8gJiYgdHJhbnNhY3Rpb25TZXJ2aWNlSW5mby53aXphcmRRdWVzdGlvbnNBbmRBbnN3ZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwidHJhbnNhY3Rpb25TZXJ2aWNlSW5mby53aXphcmRRdWVzdGlvbnNBbmRBbnN3ZXJzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5TZXJ2aWNlV2l6YXJkTWVzc2FnZVwiIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1zZXJ2aWNlLW1lc3NhZ2UgY2xhc3M9XCJ0cmFuc2FjdGlvbi1zZXJ2aWNlLW1lc3NhZ2VcIj48L2NvLXRyYW5zYWN0aW9uLXNlcnZpY2UtbWVzc2FnZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLWZpbGVzLXVwbG9hZCAoZG9jdW1lbnRDaGFuZ2VFdmVudCk9XCJ1cHNlcnREb2N1bWVudCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuU2VydmljZU92ZXJ2aWV3SW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG9jdW1lbnREZWxldGVkKT1cImRlbGV0ZURvY3VtZW50KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0FERF9JTUFHRVMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZG9jdW1lbnRzXT1cImRvY3VtZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0VkaXRhYmxlXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvY28tZmlsZXMtdXBsb2FkPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2Utb3JkZXItbGluZXMtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtbWVzc2FnZS1leHRyYS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzIFtsYWJlbF09XCInUFJJT1JJVFknfCBsb2NhbGl6ZVwiIGRpc3BsYXlGaWVsZD1cImRlc2NyaXB0aW9uXCIgW21vZGVsXT1cInByaW9yaXR5TW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJwcmlvcml0eURvbWFpbkNvbGxcIiBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5TZXJ2aWNlUHJpb3JpdHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwic2V0UHJpb3JpdHkoJGV2ZW50KVwiPjwvY28tbGlzdC1vZi12YWx1ZXM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzIFtsYWJlbF09XCInQ0FVU0VfQ09ERScgfCBsb2NhbGl6ZVwiIGRpc3BsYXlGaWVsZD1cImRlc2NyaXB0aW9uXCIgW21vZGVsXT1cImNhdXNlQ29kZU1vZGVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwiY2F1c2VDb2RlQ29sbFwiIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlNlcnZpY2VDYXVzZUNvZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwic2V0Q2F1c2VDb2RlKCRldmVudClcIj48L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1saXN0LW9mLXZhbHVlcyBbbGFiZWxdPVwiJ0VOVFJZX1RZUEUnIHwgbG9jYWxpemVcIiBkaXNwbGF5RmllbGQ9XCJkZXNjcmlwdGlvblwiIFttb2RlbF09XCJlbnRyeVR5cGVNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cImVudHJ5VHlwZUNvbGxcIiBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5TZXJ2aWNlRW50cnlUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cInNldEVudHJ5VHlwZSgkZXZlbnQpXCI+PC9jby1saXN0LW9mLXZhbHVlcz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmVzLXNpZGUtcGFuZWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoaWdoZXItbWF4LXdpZHRoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Bvc09yZGVyRGF0YV09XCJwb3NPcmRlckRhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLnRyYW5zYWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWxpbmVzLXNpZGUtcGFuZWw+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktbGlzdC1jb21wb25lbnQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktdGFzay1jcmVhdG9yLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby1jb21wb25lbnQtYWN0aXZpdHktbGlzdCAjb3BlbkFjdGl2aXRpZXMgW3Nob3dBY3Rpdml0eUhlYWRlcl09XCJzaG93QWN0aXZpdHlIZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkhlYWRlckFjdGl2aXR5TGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmxlXT1cIlRhYmxlTmFtZS5UcmFuc2FjdGlvbnNcIiBba2V5XT1cInRyYW5zYWN0aW9uSW5mby5pZD8udG9TdHJpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlZnJlc2hSZXF1ZXN0ZWQpPVwiZmluaXNoZWRBY3Rpdml0aWVzUmVmcmVzaFJlcXVlc3RlZCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2NvLWNvbXBvbmVudC1hY3Rpdml0eS1saXN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLXRhc2stY3JlYXRvciBbdGFibGVdPVwiVGFibGVOYW1lLlRyYW5zYWN0aW9uc1wiIFtyZW1hcmtBbmRXb3JrS2V5XT1cInRyYW5zYWN0aW9uSW5mby5pZD8udG9TdHJpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YXNrS2V5XT1cInRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbk5yLnRvU3RyaW5nKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0aG9yXT1cInVzZXJcIiBbYnJhbmNoTm9dPVwidHJhbnNhY3Rpb25JbmZvLmJyYW5jaC5yZWxhdGlvbk5yLnRvU3RyaW5nKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbd29ya2Zsb3dDYXRlZ29yeVR5cGVdPVwiV29ya2Zsb3dDYXRlZ29yeVR5cGUuU2VydmljZU9yZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuSGVhZGVyVGFza0NyZWF0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aXZpdHlDcmVhdGVkKT1cImZ1bGxBY3Rpdml0aWVzUmVmcmVzaFJlcXVlc3RlZCgpXCI+PC9jby10YXNrLWNyZWF0b3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aXZpdHktbGlzdC1jb252LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsIGhpc3RvcnktbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0hJU1RPUklDX0FDVElWSVRZX0NIQVQnfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuSGVhZGVySGlzdEFjdGl2aXRpZXNcIiBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50PjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tYWN0aXZpdHktbGlzdCBbYWN0aXZpdGllc109XCJhY3Rpdml0aWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkhlYWRlckhpc3RBY3Rpdml0aWVzXCI+PC9jby1hY3Rpdml0eS1saXN0PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJhbnNhY3Rpb25TZXJ2aWNlT3ZlcnZpZXdDb21wb25lbnQpXHJcbiAgfV0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25TZXJ2aWNlT3ZlcnZpZXdDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkhlYWRlckJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IFRhYmxlTmFtZSA9IFRhYmxlTmFtZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgV29ya2Zsb3dDYXRlZ29yeVR5cGUgPSBXb3JrZmxvd0NhdGVnb3J5VHlwZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgY2ZnTmFtZXM6IHR5cGVvZiBUcmFuc2FjdGlvbkNmZ05hbWUgPSBUcmFuc2FjdGlvbkNmZ05hbWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoQ29tcG9uZW50QWN0aXZpdHlMaXN0Q29tcG9uZW50KVxyXG4gIHB1YmxpYyBvcGVuQWN0aXZpdGllczogQ29tcG9uZW50QWN0aXZpdHlMaXN0Q29tcG9uZW50O1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLXNlcnZpY2Utb3ZlcnZpZXcnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBvc09yZGVyRGF0YTogUG9zT3JkZXJEYXRhO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjdXN0b21lclBvcnRhbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgcHJpb3JpdHlEb21haW5Db2xsOiBDb0RvbWFpblZhbHVlW10gPSBbXTtcclxuICBwdWJsaWMgY2F1c2VDb2RlQ29sbDogQ2F1c2VDb2RlW10gPSBbXTtcclxuICBwdWJsaWMgZW50cnlUeXBlQ29sbDogQ29Eb21haW5WYWx1ZVtdID0gW107XHJcblxyXG4gIHB1YmxpYyBzZXJ2aWNlTWVzc2FnZU1vZGVsOiBzdHJpbmcgPSAnJztcclxuICBwdWJsaWMgcHJpb3JpdHlNb2RlbDogQ29Eb21haW5WYWx1ZTtcclxuICBwdWJsaWMgY2F1c2VDb2RlTW9kZWw6IENhdXNlQ29kZTtcclxuICBwdWJsaWMgZW50cnlUeXBlTW9kZWw6IENvRG9tYWluVmFsdWU7XHJcblxyXG4gIHB1YmxpYyBkb2N1bWVudHM6IENvRG9jdW1lbnRbXSA9IFtdO1xyXG4gIHB1YmxpYyBhY3Rpdml0aWVzOiBBY3Rpdml0eVtdID0gW107XHJcbiAgcHVibGljIHVzZXI6IFJlbGF0aW9uU21hbGxPYmplY3Q7XHJcblxyXG4gIHB1YmxpYyBzaG93QWN0aXZpdHlIZWFkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlOiBUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2NyZWVuQ29uZmlnU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBUcmFuc2FjdGlvbkRpYWxvZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSwgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsIGljb25DYWNoZVNlcnZpY2UsIHNjcmVlbkNvbmZpZ1NlcnZpY2UsIGltYWdlU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UsIHRyYW5zYWN0aW9uU2VydmljZSxjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnVzZXIgPSB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5sb2dnZWRJblVzZXI7XHJcbiAgICB0aGlzLnByaW9yaXR5RG9tYWluQ29sbCA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldFByaW9yaXR5KCdOTCcpO1xyXG4gICAgdGhpcy5jYXVzZUNvZGVDb2xsID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0Q2F1c2VDb2RlcygpO1xyXG4gICAgdGhpcy5lbnRyeVR5cGVDb2xsID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0RW50cnlUeXBlcygnTkwnKTtcclxuICAgIHRoaXMucHJpb3JpdHlNb2RlbCA9IHRoaXMucHJpb3JpdHlEb21haW5Db2xsLmZpbmQocCA9PiBwLmNvZGVBc051bWJlciA9PT0gdGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLnByaW9yaXR5KTtcclxuICAgIHRoaXMuY2F1c2VDb2RlTW9kZWwgPSB0aGlzLmNhdXNlQ29kZUNvbGwuZmluZChjID0+IGMuY2F1c2VDb2RlID09PSB0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8uY2F1c2VDb2RlKTtcclxuICAgIHRoaXMuZW50cnlUeXBlTW9kZWwgPSB0aGlzLmVudHJ5VHlwZUNvbGwuZmluZChlID0+IGUuY29kZSA9PT0gdGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLmVudHJ5VHlwZSk7XHJcbiAgICB0aGlzLmZldGNoRG9jdW1lbnRzKCk7XHJcbiAgICB0aGlzLmdldEFjdGl2aXRpZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8qcHVibGljIHNldCB0cmFuc2FjdGlvblNlcnZpY2VJbmZvKHZhbHVlOiBUcmFuc2FjdGlvblNlcnZpY2VJbmZvKSB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvblNlcnZpY2VJbmZvID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5wcmlvcml0eURvbWFpbkNvbGwubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnByaW9yaXR5TW9kZWwgPSB0aGlzLnByaW9yaXR5RG9tYWluQ29sbC5maW5kKHAgPT4gcC5jb2RlQXNOdW1iZXIgPT09IHZhbHVlLnByaW9yaXR5KTtcclxuICAgIH1cclxuICB9Ki9cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFjdGl2aXRpZXMoKTpQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuYWN0aXZpdGllcyA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEhpc3RvcmljQWN0aXZpdGllcyh0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCk7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaW5pc2hlZEFjdGl2aXRpZXNSZWZyZXNoUmVxdWVzdGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRBY3Rpdml0aWVzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZnVsbEFjdGl2aXRpZXNSZWZyZXNoUmVxdWVzdGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRBY3Rpdml0aWVzKCk7XHJcbiAgICB0aGlzLm9wZW5BY3Rpdml0aWVzLmdldEFjdGl2aXRpZXMoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmZXRjaERvY3VtZW50cygpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmxvYWREb2N1bWVudHNPZlRyYW5zYWN0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLnRvU3RyaW5nKCkpLnRoZW4oKGZldGNoZWREb2N1bWVudHM6IENvRG9jdW1lbnRbXSkgPT4ge1xyXG4gICAgICB0aGlzLmRvY3VtZW50cyA9IGZldGNoZWREb2N1bWVudHM7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRzLmZvckVhY2goYXN5bmMgZCA9PlxyXG4gICAgICAgIGQuZG9jdW1lbnRCb2R5ID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UubG9hZERvY3VtZW50Q29udGVudChkLmRvY3VtZW50SWQsIGZhbHNlKVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNldFByaW9yaXR5KHByaW9yaXR5OiBDb0RvbWFpblZhbHVlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAocHJpb3JpdHkpIHtcclxuICAgICAgdGhpcy5wcmlvcml0eU1vZGVsID0gdGhpcy5wcmlvcml0eURvbWFpbkNvbGwuZmluZChwID0+IHAuY29kZSA9PT0gcHJpb3JpdHkuY29kZSk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5wcmlvcml0eSA9IHRoaXMucHJpb3JpdHlNb2RlbC5jb2RlQXNOdW1iZXI7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnByaW9yaXR5TW9kZWwgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UudXBkYXRlU2VydmljZUhlYWRlclByaW9yaXR5KHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5wcmlvcml0eSwgdHJ1ZSk7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRDYXVzZUNvZGUoY2F1c2VDb2RlOiBDYXVzZUNvZGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChjYXVzZUNvZGUpIHtcclxuICAgICAgdGhpcy5jYXVzZUNvZGVNb2RlbCA9IHRoaXMuY2F1c2VDb2RlQ29sbC5maW5kKGMgPT4gYy5jYXVzZUNvZGUgPT09IGNhdXNlQ29kZS5jYXVzZUNvZGUpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8uY2F1c2VDb2RlID0gdGhpcy5jYXVzZUNvZGVNb2RlbC5jYXVzZUNvZGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNhdXNlQ29kZU1vZGVsID0gbnVsbDtcclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnVwZGF0ZVNlcnZpY2VIZWFkZXJDYXVzZUNvZGUodGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLmNhdXNlQ29kZSwgdHJ1ZSk7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRFbnRyeVR5cGUoZW50cnlUeXBlOiBDb0RvbWFpblZhbHVlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoZW50cnlUeXBlKSB7XHJcbiAgICAgIHRoaXMuZW50cnlUeXBlTW9kZWwgPSB0aGlzLmVudHJ5VHlwZUNvbGwuZmluZChlID0+IGUuY29kZSA9PT0gZW50cnlUeXBlLmNvZGUpO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8uZW50cnlUeXBlID0gdGhpcy5lbnRyeVR5cGVNb2RlbC5jb2RlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lbnRyeVR5cGVNb2RlbCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVTZXJ2aWNlSGVhZGVyRW50cnlUeXBlKHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5lbnRyeVR5cGUsIHRydWUpO1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgdXBzZXJ0RG9jdW1lbnQoZG9jOiBDb0RvY3VtZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogQ29Eb2N1bWVudCA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLm1lcmdlRG9jdW1lbnRPblRyYW5zYWN0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLnRvU3RyaW5nKCksIGRvYyk7XHJcbiAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgdGhpcy5mZXRjaERvY3VtZW50cygpO1xyXG4gICAgICBhd2FpdCB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dUb2FzdCgnREFUQV9TQVZFRCcsIHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRlbGV0ZURvY3VtZW50KGRvYzogQ29Eb2N1bWVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IFZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5kZWxldGVEb2N1bWVudChkb2MuZG9jdW1lbnRJZCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICB0aGlzLmZldGNoRG9jdW1lbnRzKCk7XHJcbiAgICAgIGF3YWl0IHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd1RvYXN0KCdEQVRBX1NBVkVEJywgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcHV0RG9jdW1lbnRJbkxpc3QoZG9jOiBDb0RvY3VtZW50KTogdm9pZCB7XHJcbiAgICBsZXQgZm91bmREb2N1bWVudDogQ29Eb2N1bWVudCA9IHRoaXMuZG9jdW1lbnRzLmZpbmQoZG9jdW1lbnQgPT4gZG9jdW1lbnQuZG9jdW1lbnRJZCA9PT0gZG9jLmRvY3VtZW50SWQpO1xyXG4gICAgaWYgKGZvdW5kRG9jdW1lbnQpIHtcclxuICAgICAgQXJyYXlVdGlscy5SZXBsYWNlRWxlbWVudChkb2MsIGZvdW5kRG9jdW1lbnQsIHRoaXMuZG9jdW1lbnRzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRzLnB1c2goZG9jKTtcclxuICAgIH1cclxuICAgIHRoaXMuc29ydERvY3VtZW50TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZURvY3VtZW50RnJvbUxpc3QoZG9jOiBDb0RvY3VtZW50KTogdm9pZCB7XHJcbiAgICBBcnJheVV0aWxzLlJlbW92ZUVsZW1lbnQoZG9jLCB0aGlzLmRvY3VtZW50cyk7XHJcbiAgICB0aGlzLnNvcnREb2N1bWVudExpc3QoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzb3J0RG9jdW1lbnRMaXN0KCk6IHZvaWQge1xyXG4gICAgU29ydFV0aWxzLlNvcnRPYmplY3RBcnJheSh0aGlzLmRvY3VtZW50cywgW3tcclxuICAgICAgcHJvcGVydHk6ICdkb2N1bWVudElkJyxcclxuICAgICAgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uLkFzY2VuZGluZyxcclxuICAgICAgdHlwZTogU29ydFR5cGUuTnVtYmVyXHJcbiAgICB9XSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VydmljZS1vdmVydmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1zZXJ2aWNlLW92ZXJ2aWV3L3RyYW5zYWN0aW9uLXNlcnZpY2Utb3ZlcnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFJNUksT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0csT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFFckUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQzNFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFDaEYsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRTNFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsb0JB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QVEsRUFBRSxZQUFZO2dCQUN0QixTQUFTLEVBQUUsYUFBYSxDQUFDLFNBQVM7Z0JBQ2xDLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTTthQUN0QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFUyxrQkFBa0I7UUFDMUIsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsbUJBQW1CO1lBQ3RELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7OztZQXhRRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlDQUFpQztnQkFDM0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlFVDtnQkFDRCxTQUFTLEVBQUUsQ0FBQzt3QkFDVixPQUFPLEVBQUUsOENBQThDO3dCQUN2RCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO3FCQUNuRSxDQUFDO2dCQUNGLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUFqRk8sd0JBQXdCO1lBbEJ4Qix1QkFBdUI7WUFDdkIsZ0JBQWdCO1lBQ2hCLHFDQUFxQztZQUNyQyx1QkFBdUI7WUFDdkIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQVZsQixpQkFBaUI7WUFJakIsd0JBQXdCOzs7NkJBMEc3QixTQUFTLFNBQUMsOEJBQThCO3dCQUd4QyxXQUFXLFNBQUMsdUNBQXVDOzJCQUtuRCxLQUFLOzZCQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWRvbWFpbi12YWx1ZS5ibyc7XHJcbmltcG9ydCB7Q2F1c2VDb2RlfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY2F1c2UtY29kZS5ibyc7XHJcbmltcG9ydCB7Q29Eb2N1bWVudH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9jdW1lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHQnO1xyXG5pbXBvcnQge0FycmF5VXRpbHN9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL2FycmF5LXV0aWxzJztcclxuaW1wb3J0IHtTb3J0VXRpbHN9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL3NvcnQtdXRpbHMnO1xyXG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL2VudW0vc29ydC1kaXJlY3Rpb24nO1xyXG5pbXBvcnQge1NvcnRUeXBlfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9lbnVtL3NvcnQtdHlwZS5lbnVtJztcclxuaW1wb3J0IHtBY3Rpdml0eX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHkuYm8nO1xyXG5pbXBvcnQge1RhYmxlTmFtZX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWJsZS1uYW1lLmVudW0nO1xyXG5pbXBvcnQge1dvcmtmbG93Q2F0ZWdvcnlUeXBlfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3dvcmtmbG93LWNhdGVnb3J5LmVudW0nO1xyXG5pbXBvcnQge0NvbXBvbmVudEFjdGl2aXR5TGlzdENvbXBvbmVudH0gZnJvbSAnQGNvbGlqbml0L3NoYXJlZGNvbXBvbmVudHMnO1xyXG5pbXBvcnQge1NDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUV9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1Bvc09yZGVyRGF0YX0gZnJvbSAnLi4vLi4vbW9kZWwvcG9zLW9yZGVyLWRhdGEnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ2ZnTmFtZX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi1jZmctbmFtZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2V9IGZyb20gJy4uL2NvcmUvYmFzZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLWhlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlckJhc2VDb21wb25lbnR9IGZyb20gJy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1oZWFkZXItYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JlbGF0aW9uU21hbGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1zbWFsbC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvb2JqZWN0LWNvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XHJcbmltcG9ydCB7RGVsaXZlcnlNZXRob2R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktbWV0aG9kLmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLXNlcnZpY2Utb3ZlcnZpZXcnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLW92ZXJ2aWV3LXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlLWFuZC10YXNrLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1tZXNzYWdlLWFuZC1pbWFnZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLW1lc3NhZ2Utd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtbWVzc2FnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsIHNlcnZpY2UtbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1NFUlZJQ0VfUkVQT1JUJ3wgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidHJhbnNhY3Rpb25TZXJ2aWNlSW5mbyAmJiB0cmFuc2FjdGlvblNlcnZpY2VJbmZvLndpemFyZFF1ZXN0aW9uc0FuZEFuc3dlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJ0cmFuc2FjdGlvblNlcnZpY2VJbmZvLndpemFyZFF1ZXN0aW9uc0FuZEFuc3dlcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlNlcnZpY2VXaXphcmRNZXNzYWdlXCIgc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLXNlcnZpY2UtbWVzc2FnZSBjbGFzcz1cInRyYW5zYWN0aW9uLXNlcnZpY2UtbWVzc2FnZVwiPjwvY28tdHJhbnNhY3Rpb24tc2VydmljZS1tZXNzYWdlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tZmlsZXMtdXBsb2FkIChkb2N1bWVudENoYW5nZUV2ZW50KT1cInVwc2VydERvY3VtZW50KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5TZXJ2aWNlT3ZlcnZpZXdJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb2N1bWVudERlbGV0ZWQpPVwiZGVsZXRlRG9jdW1lbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQUREX0lNQUdFUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkb2N1bWVudHNdPVwiZG9jdW1lbnRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzRWRpdGFibGVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9jby1maWxlcy11cGxvYWQ+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1vcmRlci1saW5lcy13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1tZXNzYWdlLWV4dHJhLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgW2xhYmVsXT1cIidQUklPUklUWSd8IGxvY2FsaXplXCIgZGlzcGxheUZpZWxkPVwiZGVzY3JpcHRpb25cIiBbbW9kZWxdPVwicHJpb3JpdHlNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb2xsZWN0aW9uXT1cInByaW9yaXR5RG9tYWluQ29sbFwiIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlNlcnZpY2VQcmlvcml0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJzZXRQcmlvcml0eSgkZXZlbnQpXCI+PC9jby1saXN0LW9mLXZhbHVlcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tbGlzdC1vZi12YWx1ZXMgW2xhYmVsXT1cIidDQVVTRV9DT0RFJyB8IGxvY2FsaXplXCIgZGlzcGxheUZpZWxkPVwiZGVzY3JpcHRpb25cIiBbbW9kZWxdPVwiY2F1c2VDb2RlTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJjYXVzZUNvZGVDb2xsXCIgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuU2VydmljZUNhdXNlQ29kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJzZXRDYXVzZUNvZGUoJGV2ZW50KVwiPjwvY28tbGlzdC1vZi12YWx1ZXM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWxpc3Qtb2YtdmFsdWVzIFtsYWJlbF09XCInRU5UUllfVFlQRScgfCBsb2NhbGl6ZVwiIGRpc3BsYXlGaWVsZD1cImRlc2NyaXB0aW9uXCIgW21vZGVsXT1cImVudHJ5VHlwZU1vZGVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbGxlY3Rpb25dPVwiZW50cnlUeXBlQ29sbFwiIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlNlcnZpY2VFbnRyeVR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwic2V0RW50cnlUeXBlKCRldmVudClcIj48L2NvLWxpc3Qtb2YtdmFsdWVzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZXMtc2lkZS1wYW5lbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhpZ2hlci1tYXgtd2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcG9zT3JkZXJEYXRhXT1cInBvc09yZGVyRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UudHJhbnNhY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tbGluZXMtc2lkZS1wYW5lbD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS1saXN0LWNvbXBvbmVudC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpdml0eS10YXNrLWNyZWF0b3Itd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLWNvbXBvbmVudC1hY3Rpdml0eS1saXN0ICNvcGVuQWN0aXZpdGllcyBbc2hvd0FjdGl2aXR5SGVhZGVyXT1cInNob3dBY3Rpdml0eUhlYWRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuSGVhZGVyQWN0aXZpdHlMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFibGVdPVwiVGFibGVOYW1lLlRyYW5zYWN0aW9uc1wiIFtrZXldPVwiZ2V0S2V5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWZyZXNoUmVxdWVzdGVkKT1cImZpbmlzaGVkQWN0aXZpdGllc1JlZnJlc2hSZXF1ZXN0ZWQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9jby1jb21wb25lbnQtYWN0aXZpdHktbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxjby10YXNrLWNyZWF0b3IgW3RhYmxlXT1cIlRhYmxlTmFtZS5UcmFuc2FjdGlvbnNcIiBbcmVtYXJrQW5kV29ya0tleV09XCJnZXRLZXkoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YXNrS2V5XT1cInRyYW5zYWN0aW9uSW5mbz8udHJhbnNhY3Rpb25Ocj8udG9TdHJpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRob3JdPVwidXNlclwiIFticmFuY2hOb109XCJ0cmFuc2FjdGlvbkluZm8/LmJyYW5jaD8ucmVsYXRpb25Oci50b1N0cmluZygpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3dvcmtmbG93Q2F0ZWdvcnlUeXBlXT1cIldvcmtmbG93Q2F0ZWdvcnlUeXBlLlNlcnZpY2VPcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkhlYWRlclRhc2tDcmVhdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjdGl2aXR5Q3JlYXRlZCk9XCJmdWxsQWN0aXZpdGllc1JlZnJlc2hSZXF1ZXN0ZWQoKVwiPjwvY28tdGFzay1jcmVhdG9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGl2aXR5LWxpc3QtY29udi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbCBoaXN0b3J5LWxhYmVsXCIgW3RleHRDb250ZW50XT1cIidISVNUT1JJQ19BQ1RJVklUWV9DSEFUJ3wgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkhlYWRlckhpc3RBY3Rpdml0aWVzXCIgc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudD48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNvLWFjdGl2aXR5LWxpc3QgW2FjdGl2aXRpZXNdPVwiYWN0aXZpdGllc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5IZWFkZXJIaXN0QWN0aXZpdGllc1wiPjwvY28tYWN0aXZpdHktbGlzdD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRyYW5zYWN0aW9uU2VydmljZU92ZXJ2aWV3Q29tcG9uZW50KVxyXG4gIH1dLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VydmljZU92ZXJ2aWV3Q29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25IZWFkZXJCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBUYWJsZU5hbWUgPSBUYWJsZU5hbWU7XHJcbiAgcHVibGljIHJlYWRvbmx5IFdvcmtmbG93Q2F0ZWdvcnlUeXBlID0gV29ya2Zsb3dDYXRlZ29yeVR5cGU7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNmZ05hbWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25DZmdOYW1lID0gVHJhbnNhY3Rpb25DZmdOYW1lO1xyXG5cclxuICBAVmlld0NoaWxkKENvbXBvbmVudEFjdGl2aXR5TGlzdENvbXBvbmVudClcclxuICBwdWJsaWMgb3BlbkFjdGl2aXRpZXM6IENvbXBvbmVudEFjdGl2aXR5TGlzdENvbXBvbmVudDtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby10cmFuc2FjdGlvbi1zZXJ2aWNlLW92ZXJ2aWV3JylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwb3NPcmRlckRhdGE6IFBvc09yZGVyRGF0YTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY3VzdG9tZXJQb3J0YWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHByaW9yaXR5RG9tYWluQ29sbDogQ29Eb21haW5WYWx1ZVtdID0gW107XHJcbiAgcHVibGljIGNhdXNlQ29kZUNvbGw6IENhdXNlQ29kZVtdID0gW107XHJcbiAgcHVibGljIGVudHJ5VHlwZUNvbGw6IENvRG9tYWluVmFsdWVbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgc2VydmljZU1lc3NhZ2VNb2RlbDogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIHByaW9yaXR5TW9kZWw6IENvRG9tYWluVmFsdWU7XHJcbiAgcHVibGljIGNhdXNlQ29kZU1vZGVsOiBDYXVzZUNvZGU7XHJcbiAgcHVibGljIGVudHJ5VHlwZU1vZGVsOiBDb0RvbWFpblZhbHVlO1xyXG5cclxuICBwdWJsaWMgZG9jdW1lbnRzOiBDb0RvY3VtZW50W10gPSBbXTtcclxuICBwdWJsaWMgYWN0aXZpdGllczogQWN0aXZpdHlbXSA9IFtdO1xyXG4gIHB1YmxpYyB1c2VyOiBSZWxhdGlvblNtYWxsT2JqZWN0O1xyXG5cclxuICBwdWJsaWMgc2hvd0FjdGl2aXR5SGVhZGVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgbG9hZGVkVHJhbnNhY3Rpb25JZDogbnVtYmVyID0gbnVsbDtcclxuXHJcbiAgLy9wcml2YXRlIHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uSGVhZGVyU2VydmljZTogVHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNjcmVlbkNvbmZpZ1NlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogVHJhbnNhY3Rpb25EaWFsb2dTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkhlYWRlclNlcnZpY2UsIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCBzY3JlZW5Db25maWdTZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCB0cmFuc2FjdGlvblNlcnZpY2UsY2hhbmdlRGV0ZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMudXNlciA9IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmxvZ2dlZEluVXNlcjtcclxuICAgIHRoaXMucHJpb3JpdHlEb21haW5Db2xsID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0UHJpb3JpdHkoJ05MJyk7XHJcbiAgICB0aGlzLmNhdXNlQ29kZUNvbGwgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRDYXVzZUNvZGVzKCk7XHJcbiAgICB0aGlzLmVudHJ5VHlwZUNvbGwgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRFbnRyeVR5cGVzKCdOTCcpO1xyXG4gICAgdGhpcy5wcmlvcml0eU1vZGVsID0gdGhpcy5wcmlvcml0eURvbWFpbkNvbGwuZmluZChwID0+IHAuY29kZUFzTnVtYmVyID09PSB0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8ucHJpb3JpdHkpO1xyXG4gICAgdGhpcy5jYXVzZUNvZGVNb2RlbCA9IHRoaXMuY2F1c2VDb2RlQ29sbC5maW5kKGMgPT4gYy5jYXVzZUNvZGUgPT09IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5jYXVzZUNvZGUpO1xyXG4gICAgdGhpcy5lbnRyeVR5cGVNb2RlbCA9IHRoaXMuZW50cnlUeXBlQ29sbC5maW5kKGUgPT4gZS5jb2RlID09PSB0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8uZW50cnlUeXBlKTsvKlxyXG5cclxuICAgIHRoaXMuc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uSGVhZGVyU2VydmljZS50cmFuc2FjdGlvbkluZm9TZXQuc3Vic2NyaWJlKChzZXQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoc2V0KSB7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uSW5mb1NldCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uSW5mbyAmJiB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCkge1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uSW5mb1NldCgpO1xyXG4gICAgfSovXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAvL3RoaXMuc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRLZXkoKTpzdHJpbmcge1xyXG4gICAgaWYodGhpcy50cmFuc2FjdGlvbkluZm8gIT09IHVuZGVmaW5lZCAmJiB0aGlzLnRyYW5zYWN0aW9uSW5mbyAhPT0gbnVsbCAmJiB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCAhPT0gdW5kZWZpbmVkICYmIHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkICE9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZC50b1N0cmluZygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QWN0aXZpdGllcygpOlByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5hY3Rpdml0aWVzID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0SGlzdG9yaWNBY3Rpdml0aWVzKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkKTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZpbmlzaGVkQWN0aXZpdGllc1JlZnJlc2hSZXF1ZXN0ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEFjdGl2aXRpZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmdWxsQWN0aXZpdGllc1JlZnJlc2hSZXF1ZXN0ZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEFjdGl2aXRpZXMoKTtcclxuICAgIHRoaXMub3BlbkFjdGl2aXRpZXMuZ2V0QWN0aXZpdGllcygpLnRoZW4oKCkgPT4ge1xyXG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZldGNoRG9jdW1lbnRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UubG9hZERvY3VtZW50c09mVHJhbnNhY3Rpb24odGhpcy50cmFuc2FjdGlvbkluZm8uaWQudG9TdHJpbmcoKSkudGhlbigoZmV0Y2hlZERvY3VtZW50czogQ29Eb2N1bWVudFtdKSA9PiB7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRzID0gZmV0Y2hlZERvY3VtZW50cztcclxuICAgICAgdGhpcy5kb2N1bWVudHMuZm9yRWFjaChhc3luYyBkID0+XHJcbiAgICAgICAgZC5kb2N1bWVudEJvZHkgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5sb2FkRG9jdW1lbnRDb250ZW50KGQuZG9jdW1lbnRJZCwgZmFsc2UpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2V0UHJpb3JpdHkocHJpb3JpdHk6IENvRG9tYWluVmFsdWUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChwcmlvcml0eSkge1xyXG4gICAgICB0aGlzLnByaW9yaXR5TW9kZWwgPSB0aGlzLnByaW9yaXR5RG9tYWluQ29sbC5maW5kKHAgPT4gcC5jb2RlID09PSBwcmlvcml0eS5jb2RlKTtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLnByaW9yaXR5ID0gdGhpcy5wcmlvcml0eU1vZGVsLmNvZGVBc051bWJlcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucHJpb3JpdHlNb2RlbCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVTZXJ2aWNlSGVhZGVyUHJpb3JpdHkodGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLnByaW9yaXR5LCB0cnVlKTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNldENhdXNlQ29kZShjYXVzZUNvZGU6IENhdXNlQ29kZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKGNhdXNlQ29kZSkge1xyXG4gICAgICB0aGlzLmNhdXNlQ29kZU1vZGVsID0gdGhpcy5jYXVzZUNvZGVDb2xsLmZpbmQoYyA9PiBjLmNhdXNlQ29kZSA9PT0gY2F1c2VDb2RlLmNhdXNlQ29kZSk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5jYXVzZUNvZGUgPSB0aGlzLmNhdXNlQ29kZU1vZGVsLmNhdXNlQ29kZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2F1c2VDb2RlTW9kZWwgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UudXBkYXRlU2VydmljZUhlYWRlckNhdXNlQ29kZSh0aGlzLnRyYW5zYWN0aW9uU2VydmljZUluZm8uY2F1c2VDb2RlLCB0cnVlKTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNldEVudHJ5VHlwZShlbnRyeVR5cGU6IENvRG9tYWluVmFsdWUpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChlbnRyeVR5cGUpIHtcclxuICAgICAgdGhpcy5lbnRyeVR5cGVNb2RlbCA9IHRoaXMuZW50cnlUeXBlQ29sbC5maW5kKGUgPT4gZS5jb2RlID09PSBlbnRyeVR5cGUuY29kZSk7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlSW5mby5lbnRyeVR5cGUgPSB0aGlzLmVudHJ5VHlwZU1vZGVsLmNvZGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVudHJ5VHlwZU1vZGVsID0gbnVsbDtcclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnVwZGF0ZVNlcnZpY2VIZWFkZXJFbnRyeVR5cGUodGhpcy50cmFuc2FjdGlvblNlcnZpY2VJbmZvLmVudHJ5VHlwZSwgdHJ1ZSk7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyB1cHNlcnREb2N1bWVudChkb2M6IENvRG9jdW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBDb0RvY3VtZW50ID0gYXdhaXQgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UubWVyZ2VEb2N1bWVudE9uVHJhbnNhY3Rpb24odGhpcy50cmFuc2FjdGlvbkluZm8uaWQudG9TdHJpbmcoKSwgZG9jKTtcclxuICAgIGlmIChyZXNwb25zZSkge1xyXG4gICAgICB0aGlzLmZldGNoRG9jdW1lbnRzKCk7XHJcbiAgICAgIGF3YWl0IHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd1RvYXN0KCdEQVRBX1NBVkVEJywgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZGVsZXRlRG9jdW1lbnQoZG9jOiBDb0RvY3VtZW50KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogVmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmRlbGV0ZURvY3VtZW50KGRvYy5kb2N1bWVudElkKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgIHRoaXMuZmV0Y2hEb2N1bWVudHMoKTtcclxuICAgICAgYXdhaXQgdGhpcy5fZGlhbG9nU2VydmljZS5zaG93VG9hc3QoJ0RBVEFfU0FWRUQnLCB0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBwdXREb2N1bWVudEluTGlzdChkb2M6IENvRG9jdW1lbnQpOiB2b2lkIHtcclxuICAgIGxldCBmb3VuZERvY3VtZW50OiBDb0RvY3VtZW50ID0gdGhpcy5kb2N1bWVudHMuZmluZChkb2N1bWVudCA9PiBkb2N1bWVudC5kb2N1bWVudElkID09PSBkb2MuZG9jdW1lbnRJZCk7XHJcbiAgICBpZiAoZm91bmREb2N1bWVudCkge1xyXG4gICAgICBBcnJheVV0aWxzLlJlcGxhY2VFbGVtZW50KGRvYywgZm91bmREb2N1bWVudCwgdGhpcy5kb2N1bWVudHMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kb2N1bWVudHMucHVzaChkb2MpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zb3J0RG9jdW1lbnRMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlRG9jdW1lbnRGcm9tTGlzdChkb2M6IENvRG9jdW1lbnQpOiB2b2lkIHtcclxuICAgIEFycmF5VXRpbHMuUmVtb3ZlRWxlbWVudChkb2MsIHRoaXMuZG9jdW1lbnRzKTtcclxuICAgIHRoaXMuc29ydERvY3VtZW50TGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNvcnREb2N1bWVudExpc3QoKTogdm9pZCB7XHJcbiAgICBTb3J0VXRpbHMuU29ydE9iamVjdEFycmF5KHRoaXMuZG9jdW1lbnRzLCBbe1xyXG4gICAgICBwcm9wZXJ0eTogJ2RvY3VtZW50SWQnLFxyXG4gICAgICBkaXJlY3Rpb246IFNvcnREaXJlY3Rpb24uQXNjZW5kaW5nLFxyXG4gICAgICB0eXBlOiBTb3J0VHlwZS5OdW1iZXJcclxuICAgIH1dKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmFuc2FjdGlvbkluZm9TZXQoKSB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvbkluZm9TZXQoKTtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCAhPT0gdGhpcy5sb2FkZWRUcmFuc2FjdGlvbklkKVxyXG4gICAgICB0aGlzLmxvYWRlZFRyYW5zYWN0aW9uSWQgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgICAgdGhpcy5mZXRjaERvY3VtZW50cygpO1xyXG4gICAgICB0aGlzLmdldEFjdGl2aXRpZXMoKTtcclxuICB9XHJcbn1cclxuIl19