@colijnit/transaction 256.1.31 → 256.1.32

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.
@@ -22,6 +22,7 @@ export class RelationAddressesComponent extends RelationBaseComponent {
22
22
  this.showOnlyActive = true;
23
23
  this.type = AddressType.DeliveryAddress;
24
24
  this.selectedNawNr = 0;
25
+ this.noSaveOnAddAddress = false;
25
26
  this.selectedNawNrChange = new EventEmitter();
26
27
  this.showEditAddressDialog = false;
27
28
  this._boFactory = new BusinessObjectFactory();
@@ -46,15 +47,29 @@ export class RelationAddressesComponent extends RelationBaseComponent {
46
47
  if (!address.nawNr) { // new address
47
48
  address.startDate = new Date();
48
49
  address.sequence = this.relation.getNextAddressSequence();
49
- const savedAddress = yield this.relationService.insertAddress(address);
50
- this.relation.addresses.push(savedAddress);
51
- this.changeAddress(savedAddress);
50
+ if (!this.noSaveOnAddAddress) {
51
+ const savedAddress = yield this.relationService.insertAddress(address);
52
+ this.relation.addresses.push(savedAddress);
53
+ this.changeAddress(savedAddress);
54
+ }
55
+ else {
56
+ this.relation.addresses.push(address);
57
+ this.changeAddress(address);
58
+ }
52
59
  }
53
60
  else {
54
- const savedAddress = yield this.relationService.updateAddress(address);
55
- const idx = this.relation.addresses.findIndex(a => a.nawNr === address.nawNr);
56
- if (idx > -1) {
57
- this.relation.addresses[idx] = savedAddress;
61
+ if (!this.noSaveOnAddAddress) {
62
+ const savedAddress = yield this.relationService.updateAddress(address);
63
+ const idx = this.relation.addresses.findIndex(a => a.nawNr === address.nawNr);
64
+ if (idx > -1) {
65
+ this.relation.addresses[idx] = savedAddress;
66
+ }
67
+ }
68
+ else {
69
+ const idx = this.relation.addresses.findIndex(a => a.nawNr === address.nawNr);
70
+ if (idx > -1) {
71
+ this.relation.addresses[idx] = address;
72
+ }
58
73
  }
59
74
  }
60
75
  this.relationChange.next(this.relation);
@@ -143,7 +158,8 @@ RelationAddressesComponent.propDecorators = {
143
158
  showOnlyActive: [{ type: Input }],
144
159
  type: [{ type: Input }],
145
160
  selectedNawNr: [{ type: Input }],
161
+ noSaveOnAddAddress: [{ type: Input }],
146
162
  selectedNawNrChange: [{ type: Output }],
147
163
  showClass: [{ type: HostBinding, args: ["class.co-relation-addresses",] }]
148
164
  };
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tYWRkcmVzc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3JlbGF0aW9uL3JlbGF0aW9uLWFkZHJlc3Nlcy9yZWxhdGlvbi1hZGRyZXNzZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDL0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDcEcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFxRHhFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxxQkFBcUI7SUErQm5FLFlBQ1Usa0JBQXFDLEVBQ25DLGVBQTJDLEVBQzlDLGdCQUFrQyxFQUNsQyxrQkFBc0M7UUFFN0MsS0FBSyxDQUFDLGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBTG5DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDbkMsb0JBQWUs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QyxhQUFhLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFTSxXQUFXLENBQUMsSUFBYTtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsYUFBYSxHQUFxQixJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3RixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQzs7O1lBNUlGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUNqQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQ1Q7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGlCQUFpQjtpQkFDbEI7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQTFETyxpQkFBaUI7WUFHakIsMEJBQTBCO1lBRTFCLGdCQUFnQjtZQUNoQixrQkFBa0I7Ozt1QkF3RHZCLEtBQUs7d0JBR0wsS0FBSzs2QkFHTCxLQUFLO21CQUdMLEtBQUs7NEJBR0wsS0FBSztrQ0FHTCxNQUFNO3dCQUdOLFdBQVcsU0FBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtSZWxhdGlvbkJhc2VDb21wb25lbnR9IGZyb20gJy4uL3JlbGF0aW9uLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtGb3JtTWFzdGVyU2VydmljZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7QWRkcmVzc30gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2FkZHJlc3MuYm8nO1xyXG5pbXBvcnQge0FkZHJlc3NUeXBlfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvZW51bS9hZGRyZXNzLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tcmVsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3RGYWN0b3J5fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9zZXJ2aWNlL2J1c2luZXNzLW9iamVjdC1mYWN0b3J5JztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tcmVsYXRpb24tYWRkcmVzc2VzXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWRhdGEtcm93XCI+XHJcbiAgICAgIDxjby1jYXJvdXNlbCAqbmdJZj1cImFkZHJlc3NlcyAmJiBhZGRyZXNzZXMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgIDxjby1yZWxhdGlvbi1hZGRyZXNzLXRpbGUgI2Nhcm91c2VsSXRlbSAqbmdGb3I9XCJsZXQgYWRkcmVzcyBvZiBhZGRyZXNzZXMgfCBmaWx0ZXI6J2lzQWN0aXZlJzp0cnVlOyBsZXQgaW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWRkcmVzc109XCJhZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWROYXdOciA9PT0gYWRkcmVzcy5uYXdOclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWRpdEFkZHJlc3NDbGlja2VkKT1cImVkaXRBZGRyZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cImNoYW5nZUFkZHJlc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvY28tcmVsYXRpb24tYWRkcmVzcy10aWxlPlxyXG4gICAgICA8L2NvLWNhcm91c2VsPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1kYXRhLXJvd1wiICpuZ0lmPVwiIXJlYWRvbmx5XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzLW5ld1wiPlxyXG4gICAgICAgIDxpY29uIGNsYXNzPVwicmVsYXRpb24tYWRkcmVzcy1pY29uXCIgW2ljb25dPVwiaWNvbnMuQXJyb3dQb2ludFJpZ2h0XCI+PC9pY29uPlxyXG4gICAgICAgIDxkaXYgW3RleHRDb250ZW50XT1cIidBRERSRVNTX0FERCcgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJzaG93TmV3QWRkcmVzc0RpYWxvZygpXCI+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Y28tZGlhbG9nIGNsYXNzPVwiZGlhbG9nLXJlbGF0aW9uLWFkZHJlc3Nlcy1jcmVhdGUtYWRkcmVzc1wiICpuZ0lmPVwic2hvd0VkaXRBZGRyZXNzRGlhbG9nXCJcclxuICAgICAgICAgICAgICAgW2Zvb3RlclRlbXBsYXRlXT1cInRlbXBsYXRlRm9vdGVyXCJcclxuICAgICAgICAgICAgICAgW2hlYWRlclRlbXBsYXRlXT1cInRlbXBsYXRlSGVhZGVyXCJcclxuICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd0VkaXRBZGRyZXNzRGlhbG9nID0gZmFsc2VcIlxyXG4gICAgPlxyXG4gICAgICA8Y28tZm9ybT5cclxuICAgICAgICA8Y28tcmVsYXRpb24tYWRkcmVzc1xyXG4gICAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAgIFsoYWRkcmVzcyldPVwiYWRkcmVzc1RvRWRpdFwiXHJcbiAgICAgICAgPjwvY28tcmVsYXRpb24tYWRkcmVzcz5cclxuICAgICAgPC9jby1mb3JtPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlSGVhZGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidORVdfQUREUkVTUycgfCBsb2NhbGl6ZVwiPjwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlRm9vdGVyPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctZm9vdGVyLWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrRHVvdG9uZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5Dcm9zc3NraW5ueSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0VkaXRBZGRyZXNzRGlhbG9nID0gZmFsc2VcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvY28tZGlhbG9nPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGb3JtTWFzdGVyU2VydmljZVxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVsYXRpb25BZGRyZXNzZXNDb21wb25lbnQgZXh0ZW5kcyBSZWxhdGlvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWRkcmVzc2VzOiBBZGRyZXNzW10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd09ubHlBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0eXBlOiBBZGRyZXNzVHlwZSA9IEFkZHJlc3NUeXBlLkRlbGl2ZXJ5QWRkcmVzcztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsZWN0ZWROYXdOcjogbnVtYmVyID0gMDtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNlbGVjdGVkTmF3TnJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXJlbGF0aW9uLWFkZHJlc3Nlc1wiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93RWRpdEFkZHJlc3NEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYWRkcmVzc1RvRWRpdDogQWRkcmVzcztcclxuXHJcbiAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnkgPSBuZXcgQnVzaW5lc3NPYmplY3RGYWN0b3J5KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZm9ybU1hc3RlclNlcnZpY2U6IEZvcm1NYXN0ZXJTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHJlbGF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIodHJhbnNhY3Rpb25TZXJ2aWNlLCByZWxhdGlvblNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkTmF3TnIgJiYgdGhpcy5hZGRyZXNzZXMgJiYgdGhpcy5hZGRyZXNzZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmNoYW5nZUFkZHJlc3ModGhpcy5hZGRyZXNzZXNbMF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN1Ym1pdEZvcm0oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCkpIHtcclxuICAgICAgdGhpcy5zYXZlQWRkcmVzcyh0aGlzLmFkZHJlc3NUb0VkaXQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNhdmVBZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGFkZHJlc3MucmVsYXRpb25JZCA9IHRoaXMucmVsYXRpb24ucmVsYXRpb25JZDtcclxuICAgIGFkZHJlc3MuYWRkcmVzc1R5cGUgPSB0aGlzLnR5cGU7XHJcbiAgICBpZiAoIWFkZHJlc3MubmF3TnIpIHsgLy8gbmV3IGFkZHJlc3NcclxuICAgICAgYWRkcmVzcy5zdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBhZGRyZXNzLnNlcXVlbmNlID0gdGhpcy5yZWxhdGlvbi5nZXROZXh0QWRkcmVzc1NlcXVlbmNlKCk7XHJcbiAgICAgIGNvbnN0IHNhdmVkQWRkcmVzczogQWRkcmVzcyA9IGF3YWl0IHRoaXMucmVsYXRpb25TZXJ2aWNlLmluc2VydEFkZHJlc3MoYWRkcmVzcyk7XHJcbiAgICAgIHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLnB1c2goc2F2ZWRBZGRyZXNzKTtcclxuICAgICAgdGhpcy5jaGFuZ2VBZGRyZXNzKHNhdmVkQWRkcmVzcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBzYXZlZEFkZHJlc3M6IEFkZHJlc3MgPSBhd2FpdCB0aGlzLnJlbGF0aW9uU2VydmljZS51cGRhdGVBZGRyZXNzKGFkZHJlc3MpO1xyXG4gICAgICBjb25zdCBpZHg6IG51bWJlciA9IHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLmZpbmRJbmRleChhID0+IGEubmF3TnIgPT09IGFkZHJlc3MubmF3TnIpO1xyXG4gICAgICBpZiAoaWR4ID4gLTEpIHtcclxuICAgICAgICB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlc1tpZHhdID0gc2F2ZWRBZGRyZXNzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbGF0aW9uQ2hhbmdlLm5leHQodGhpcy5yZWxhdGlvbik7XHJcbiAgICB0aGlzLnNob3dFZGl0QWRkcmVzc0RpYWxvZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dOZXdBZGRyZXNzRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5hZGRyZXNzVG9FZGl0ID0gbmV3IEFkZHJlc3MoKTtcclxuICAgIHRoaXMuc2hvd0VkaXRBZGRyZXNzRGlhbG9nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VBZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkIHtcclxuICAgIGlmIChhZGRyZXNzICYmICF0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWROYXdOciA9IGFkZHJlc3MubmF3TnI7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWROYXdOckNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWROYXdOcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZWRpdEFkZHJlc3MoYWRkcjogQWRkcmVzcyk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgIHRoaXMuYWRkcmVzc1RvRWRpdCA9IDxBZGRyZXNzPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEFkZHJlc3MsIGFkZHIpO1xyXG4gICAgICB0aGlzLnNob3dFZGl0QWRkcmVzc0RpYWxvZyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tYWRkcmVzc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3JlbGF0aW9uL3JlbGF0aW9uLWFkZHJlc3Nlcy9yZWxhdGlvbi1hZGRyZXNzZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDL0UsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFDcEcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFxRHhFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxxQkFBcUI7SUFrQ25FLFlBQ1Usa0JBQXFDLEVBQ25DLGVBQTJDLEVBQzlDLGdCQUFrQyxFQUNsQyxrQkFBc0M7UUFFN0MsS0FBSyxDQUFDLGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBTG5DLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDbkMsb0JBQWUs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QUFFO29CQUNULGlCQUFpQjtpQkFDbEI7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQTFETyxpQkFBaUI7WUFHakIsMEJBQTBCO1lBRTFCLGdCQUFnQjtZQUNoQixrQkFBa0I7Ozt1QkF3RHZCLEtBQUs7d0JBR0wsS0FBSzs2QkFHTCxLQUFLO21CQUdMLEtBQUs7NEJBR0wsS0FBSztpQ0FHTCxLQUFLO2tDQUdMLE1BQU07d0JBR04sV0FBVyxTQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1JlbGF0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vcmVsYXRpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Zvcm1NYXN0ZXJTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtBZGRyZXNzfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvYWRkcmVzcy5ibyc7XHJcbmltcG9ydCB7QWRkcmVzc1R5cGV9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL2FkZHJlc3MtdHlwZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblJlbGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1yZWxhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3NlcnZpY2UvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnknO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1yZWxhdGlvbi1hZGRyZXNzZXNcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZGF0YS1yb3dcIj5cclxuICAgICAgPGNvLWNhcm91c2VsICpuZ0lmPVwiYWRkcmVzc2VzICYmIGFkZHJlc3Nlcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgPGNvLXJlbGF0aW9uLWFkZHJlc3MtdGlsZSAjY2Fyb3VzZWxJdGVtICpuZ0Zvcj1cImxldCBhZGRyZXNzIG9mIGFkZHJlc3NlcyB8IGZpbHRlcjonaXNBY3RpdmUnOnRydWU7IGxldCBpbmRleCA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthZGRyZXNzXT1cImFkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZE5hd05yID09PSBhZGRyZXNzLm5hd05yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZGl0QWRkcmVzc0NsaWNrZWQpPVwiZWRpdEFkZHJlc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwiY2hhbmdlQWRkcmVzcygkZXZlbnQpXCJcclxuICAgICAgICA+PC9jby1yZWxhdGlvbi1hZGRyZXNzLXRpbGU+XHJcbiAgICAgIDwvY28tY2Fyb3VzZWw+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWRhdGEtcm93XCIgKm5nSWY9XCIhcmVhZG9ubHlcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aW9uLWFkZHJlc3MtbmV3XCI+XHJcbiAgICAgICAgPGljb24gY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzLWljb25cIiBbaWNvbl09XCJpY29ucy5BcnJvd1BvaW50UmlnaHRcIj48L2ljb24+XHJcbiAgICAgICAgPGRpdiBbdGV4dENvbnRlbnRdPVwiJ0FERFJFU1NfQUREJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cInNob3dOZXdBZGRyZXNzRGlhbG9nKClcIj48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxjby1kaWFsb2cgY2xhc3M9XCJkaWFsb2ctcmVsYXRpb24tYWRkcmVzc2VzLWNyZWF0ZS1hZGRyZXNzXCIgKm5nSWY9XCJzaG93RWRpdEFkZHJlc3NEaWFsb2dcIlxyXG4gICAgICAgICAgICAgICBbZm9vdGVyVGVtcGxhdGVdPVwidGVtcGxhdGVGb290ZXJcIlxyXG4gICAgICAgICAgICAgICBbaGVhZGVyVGVtcGxhdGVdPVwidGVtcGxhdGVIZWFkZXJcIlxyXG4gICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJzaG93RWRpdEFkZHJlc3NEaWFsb2cgPSBmYWxzZVwiXHJcbiAgICA+XHJcbiAgICAgIDxjby1mb3JtPlxyXG4gICAgICAgIDxjby1yZWxhdGlvbi1hZGRyZXNzXHJcbiAgICAgICAgICBbcmVsYXRpb25dPVwicmVsYXRpb25cIlxyXG4gICAgICAgICAgWyhhZGRyZXNzKV09XCJhZGRyZXNzVG9FZGl0XCJcclxuICAgICAgICA+PC9jby1yZWxhdGlvbi1hZGRyZXNzPlxyXG4gICAgICA8L2NvLWZvcm0+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVIZWFkZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1oZWFkZXItdGl0bGVcIiBbdGV4dENvbnRlbnRdPVwiJ05FV19BRERSRVNTJyB8IGxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVGb290ZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1mb290ZXItYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGb3JtKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNyb3Nzc2tpbm55KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RWRpdEFkZHJlc3NEaWFsb2cgPSBmYWxzZVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9jby1kaWFsb2c+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEZvcm1NYXN0ZXJTZXJ2aWNlXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZWxhdGlvbkFkZHJlc3Nlc0NvbXBvbmVudCBleHRlbmRzIFJlbGF0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhZGRyZXNzZXM6IEFkZHJlc3NbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93T25seUFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHR5cGU6IEFkZHJlc3NUeXBlID0gQWRkcmVzc1R5cGUuRGVsaXZlcnlBZGRyZXNzO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3RlZE5hd05yOiBudW1iZXIgPSAwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBub1NhdmVPbkFkZEFkZHJlc3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNlbGVjdGVkTmF3TnJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXJlbGF0aW9uLWFkZHJlc3Nlc1wiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93RWRpdEFkZHJlc3NEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYWRkcmVzc1RvRWRpdDogQWRkcmVzcztcclxuXHJcbiAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnkgPSBuZXcgQnVzaW5lc3NPYmplY3RGYWN0b3J5KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZm9ybU1hc3RlclNlcnZpY2U6IEZvcm1NYXN0ZXJTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHJlbGF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIodHJhbnNhY3Rpb25TZXJ2aWNlLCByZWxhdGlvblNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnNlbGVjdGVkTmF3TnIgJiYgdGhpcy5hZGRyZXNzZXMgJiYgdGhpcy5hZGRyZXNzZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmNoYW5nZUFkZHJlc3ModGhpcy5hZGRyZXNzZXNbMF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN1Ym1pdEZvcm0oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCkpIHtcclxuICAgICAgdGhpcy5zYXZlQWRkcmVzcyh0aGlzLmFkZHJlc3NUb0VkaXQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNhdmVBZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGFkZHJlc3MucmVsYXRpb25JZCA9IHRoaXMucmVsYXRpb24ucmVsYXRpb25JZDtcclxuICAgIGFkZHJlc3MuYWRkcmVzc1R5cGUgPSB0aGlzLnR5cGU7XHJcbiAgICBpZiAoIWFkZHJlc3MubmF3TnIpIHsgLy8gbmV3IGFkZHJlc3NcclxuICAgICAgYWRkcmVzcy5zdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBhZGRyZXNzLnNlcXVlbmNlID0gdGhpcy5yZWxhdGlvbi5nZXROZXh0QWRkcmVzc1NlcXVlbmNlKCk7XHJcbiAgICAgIGlmICghdGhpcy5ub1NhdmVPbkFkZEFkZHJlc3MpIHtcclxuICAgICAgICBjb25zdCBzYXZlZEFkZHJlc3M6IEFkZHJlc3MgPSBhd2FpdCB0aGlzLnJlbGF0aW9uU2VydmljZS5pbnNlcnRBZGRyZXNzKGFkZHJlc3MpO1xyXG4gICAgICAgIHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLnB1c2goc2F2ZWRBZGRyZXNzKTtcclxuICAgICAgICB0aGlzLmNoYW5nZUFkZHJlc3Moc2F2ZWRBZGRyZXNzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlcy5wdXNoKGFkZHJlc3MpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlQWRkcmVzcyhhZGRyZXNzKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCF0aGlzLm5vU2F2ZU9uQWRkQWRkcmVzcykge1xyXG4gICAgICAgIGNvbnN0IHNhdmVkQWRkcmVzczogQWRkcmVzcyA9IGF3YWl0IHRoaXMucmVsYXRpb25TZXJ2aWNlLnVwZGF0ZUFkZHJlc3MoYWRkcmVzcyk7XHJcbiAgICAgICAgY29uc3QgaWR4OiBudW1iZXIgPSB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlcy5maW5kSW5kZXgoYSA9PiBhLm5hd05yID09PSBhZGRyZXNzLm5hd05yKTtcclxuICAgICAgICBpZiAoaWR4ID4gLTEpIHtcclxuICAgICAgICAgIHRoaXMucmVsYXRpb24uYWRkcmVzc2VzW2lkeF0gPSBzYXZlZEFkZHJlc3M7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IGlkeDogbnVtYmVyID0gdGhpcy5yZWxhdGlvbi5hZGRyZXNzZXMuZmluZEluZGV4KGEgPT4gYS5uYXdOciA9PT0gYWRkcmVzcy5uYXdOcik7XHJcbiAgICAgICAgaWYgKGlkeCA+IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlc1tpZHhdID0gYWRkcmVzcztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMucmVsYXRpb25DaGFuZ2UubmV4dCh0aGlzLnJlbGF0aW9uKTtcclxuICAgIHRoaXMuc2hvd0VkaXRBZGRyZXNzRGlhbG9nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd05ld0FkZHJlc3NEaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLmFkZHJlc3NUb0VkaXQgPSBuZXcgQWRkcmVzcygpO1xyXG4gICAgdGhpcy5zaG93RWRpdEFkZHJlc3NEaWFsb2cgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZUFkZHJlc3MoYWRkcmVzczogQWRkcmVzcyk6IHZvaWQge1xyXG4gICAgaWYgKGFkZHJlc3MgJiYgIXRoaXMucmVhZG9ubHkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZE5hd05yID0gYWRkcmVzcy5uYXdOcjtcclxuICAgICAgdGhpcy5zZWxlY3RlZE5hd05yQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZE5hd05yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBlZGl0QWRkcmVzcyhhZGRyOiBBZGRyZXNzKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMucmVhZG9ubHkpIHtcclxuICAgICAgdGhpcy5hZGRyZXNzVG9FZGl0ID0gPEFkZHJlc3M+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQWRkcmVzcywgYWRkcik7XHJcbiAgICAgIHRoaXMuc2hvd0VkaXRBZGRyZXNzRGlhbG9nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -340,6 +340,7 @@ ServiceWizardRelationComponent.decorators = [
340
340
  [addresses]="relation.activeAddresses"
341
341
  [type]="addressType.DeliveryAddress"
342
342
  [selectedNawNr]="deliveryAddressNawNr"
343
+ [noSaveOnAddAddress]="true"
343
344
  (selectedNawNrChange)="setIndexDeliveryAddress($event)"
344
345
  ></co-relation-addresses>
345
346
  <co-relation-contact-details
@@ -437,4 +438,4 @@ ServiceWizardRelationComponent.propDecorators = {
437
438
  preferenceItems: [{ type: ViewChild, args: ['preferenceItems', { read: ElementRef },] }],
438
439
  showClass: [{ type: HostBinding, args: ['class.co-transaction-header-popup-relation',] }]
439
440
  };
440
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS13aXphcmQtcmVsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tY3JlYXRlLXdpemFyZC9jb21wb25lbnRzL3NlcnZpY2Utd2l6YXJkLXJlbGF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUFFLFlBQVksRUFDeEIsV0FBVyxFQUNYLEtBQUssRUFDRyxNQUFNLEVBQ2QsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scURBQXFELENBQUM7QUFJakYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQy9FLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFJL0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFD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QXVCO1lBM0IzQixpQkFBaUI7WUFxQmIsYUFBYTtZQVpiLGlCQUFpQjtZQVdqQiwwQkFBMEI7WUFFMUIsMEJBQTBCOzs7MEJBMEw3QixLQUFLOzRCQUdMLEtBQUs7MEJBR0wsS0FBSzsyQ0FHTCxLQUFLO2lDQUdMLEtBQUs7a0NBS0wsS0FBSzt1QkFHTCxLQUFLOzBCQWFMLEtBQUs7d0NBY0wsTUFBTTtzQ0FHTixNQUFNOzZCQUdOLE1BQU07Z0NBR04sTUFBTTs4QkFHTixTQUFTLFNBQUMsaUJBQWlCLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDO3dCQUcvQyxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQzs4QkFHekMsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQzt3QkFHL0MsV0FBVyxTQUFDLDRDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIElucHV0LCBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsIE91dHB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybU1hc3RlclNlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1JlbGF0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL2VudW0vcmVsYXRpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ibyc7XHJcbmltcG9ydCB7QWRkcmVzc30gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2FkZHJlc3MuYm8nO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0JztcclxuaW1wb3J0IHtBZGRyZXNzVHlwZX0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL2VudW0vYWRkcmVzcy10eXBlLmVudW0nO1xyXG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7UmVsYXRpb25HZW5lcmFsQ2ZnTmFtZXN9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9yZWxhdGlvbi1nZW5lcmFsLWNmZy1uYW1lcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1JlbGF0aW9uQ29udGFjdERldGFpbHNDZmdOYW1lc30gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL3JlbGF0aW9uLWNvbnRhY3QtZGV0YWlscy1jZmctbmFtZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtSZWxhdGlvblN1Z2dlc3Rpb25zUmVxdWVzdH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL3JlbGF0aW9uLXN1Z2dlc3Rpb25zLXJlcXVlc3QuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tcmVsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7UmVsYXRpb25TdWdnZXN0aW9uc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvcmVsYXRpb24tc3VnZ2VzdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtSZWxhdGlvbkxpc3RPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ibyc7XHJcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9yZWxhdGlvbi1hbnktdHlwZSc7XHJcbmltcG9ydCB7RGlhbG9nUmVzcG9uc2VJbnRlcmZhY2V9IGZyb20gXCIuLi8uLi8uLi9pbnRlcmZhY2UvZGlhbG9nLXJlc3BvbnNlLmludGVyZmFjZVwiO1xyXG5pbXBvcnQge0FwcFBvcHVwQnV0dG9uVHlwZX0gZnJvbSBcIi4uLy4uL2NvcmUvZW51bS9hcHAtcG9wdXAtYnV0dG9uLXR5cGUuZW51bVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7TlVMTF9DVVNUT01FUl9GVUxMX09CSkVDVH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9udWwtcmVsYXRpb24tb2JqZWN0XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25DZmdOYW1lfSBmcm9tIFwiLi4vLi4vLi4vZW51bS90cmFuc2FjdGlvbi1jZmctbmFtZS5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xyXG5pbXBvcnQge09iamVjdENvbmZpZ3VyYXRpb259IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL29iamVjdC1jb25maWd1cmF0aW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjby1zZXJ2aWNlLXdpemFyZC1yZWxhdGlvbicsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLWNhdGVnb3J5LXdyYXBwZXIgY28tc21hbGwtc2Nyb2xsYmFyXCI+XHJcbiAgICAgICAgPGNvLWZvcm0+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJlbGF0aW9uLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uIGdlbmVyYWxcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlY3Rpb24tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInMDEnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInUEVSU09OQUxfREFUQScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1yZWFkLW9ubHktd3JhcHBlclwiICpuZ0lmPVwiZm9yY2VSZWFkb25seVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZGF0YS1yZWFkLW9ubHlcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZGF0YS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRhdGEtZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiJ05BTUVfQU5EX0FERFJFU1MnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b2dnbGUtY2hhbmdlXCIgW3RleHRDb250ZW50XT1cIidDSEFOR0UnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXF1ZXN0Q2hhbmdlQ3VzdG9tZXIoKVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXJlbGF0aW9uLWRhdGEgcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvdWJsZS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0ZJUlNUX05BTUUnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCIgW3RleHRDb250ZW50XT1cInJlbGF0aW9uLmZpcnN0TmFtZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInUFJFRklYJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmVmaXhcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInTEFTVF9OQU1FJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbdGV4dENvbnRlbnRdPVwicmVsYXRpb24uZmFtaWx5TmFtZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWFkZHJlc3MtZGF0YSByb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInQUREUkVTUycgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmltYXJ5RGlzcGxheUFkZHJlc3MgPyAocmVsYXRpb24ucHJpbWFyeURpc3BsYXlBZGRyZXNzLnN0cmVldE5hbWUgKyAnICcgKyByZWxhdGlvbi5wcmltYXJ5RGlzcGxheUFkZHJlc3MuaG91c2VObykgOiAnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInUE9TVEFMX0NPREUnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmltYXJ5RGlzcGxheUFkZHJlc3M/LnBvc3RhbENvZGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1hZGRyZXNzLWRhdGEgcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0NJVFknIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmltYXJ5RGlzcGxheUFkZHJlc3M/LmNpdHlcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0NPVU5UUlknIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmltYXJ5RGlzcGxheUFkZHJlc3M/LmNvdW50cnlJZFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRhdGEtcmVhZC1vbmx5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRhdGEtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYXRhLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidDT05UQUNUX09QVElPTlMnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1yZWxhdGlvbi1kYXRhIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidFTUFJTCcgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCIgW3RleHRDb250ZW50XT1cInJlbGF0aW9uLnByaW1hcnlFbWFpbFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInUEhPTkUnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmltYXJ5UGhvbmVOdW1iZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZGF0YS1jb2x1bW5cIiAqbmdJZj1cIiFmb3JjZVJlYWRvbmx5XCI+XHJcbiAgICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tdHlwZSAqbmdJZj1cInJlbGF0aW9uLnJlbGF0aW9uVHlwZSA9PT0gcmVsS2luZC5DdXN0b21lclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5SZWxhdGlvblR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZvcmNlUmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWxhdGlvbildPVwicmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tdHlwZT5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWxhdGlvbi5yZWxhdGlvblR5cGUgPT09IHJlbEtpbmQuQ3VzdG9tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHJlbGF0aW9uLWN1c3RvbWVyLWdyb3Vwc1xyXG4gICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlJlbGF0aW9uQ3VzdG9tZXJHcm91cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZvcmNlUmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJjdXN0b21lckdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlQ3VzdG9tR3JvdXAoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgID48L3JlbGF0aW9uLWN1c3RvbWVyLWdyb3Vwcz5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLWdlbmVyYWxcclxuICAgICAgICAgICAgICAgICAgW2NvbmZpZ05hbWVzXT1cInJlbGF0aW9uR2VuZXJhbENvbmZpZ05hbWVzXCJcclxuICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZvcmNlUmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIFtyZWxhdGlvblR5cGVdPVwicmVsYXRpb24udHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtyZWxhdGlvbktpbmRdPVwicmVsYXRpb24ucmVsYXRpb25UeXBlXCJcclxuICAgICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlRm9yU3VnZ2VzdGlvbnMpPVwiaGFuZGxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9jby1yZWxhdGlvbi1nZW5lcmFsPlxyXG4gICAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLWFkZHJlc3Nlc1xyXG4gICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZm9yY2VSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgW2FkZHJlc3Nlc109XCJyZWxhdGlvbi5hY3RpdmVBZGRyZXNzZXNcIlxyXG4gICAgICAgICAgICAgICAgICBbdHlwZV09XCJhZGRyZXNzVHlwZS5EZWxpdmVyeUFkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgICBbc2VsZWN0ZWROYXdOcl09XCJkZWxpdmVyeUFkZHJlc3NOYXdOclwiXHJcbiAgICAgICAgICAgICAgICAgIChzZWxlY3RlZE5hd05yQ2hhbmdlKT1cInNldEluZGV4RGVsaXZlcnlBZGRyZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tYWRkcmVzc2VzPlxyXG4gICAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLWNvbnRhY3QtZGV0YWlsc1xyXG4gICAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwiY29uZmlnTmFtZXM/LmNvbnRhY3REZXRhaWxzXCJcclxuICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZvcmNlUmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIFtyZWxhdGlvbktpbmRdPVwicmVsYXRpb24gPyByZWxhdGlvbi5yZWxhdGlvblR5cGUgOiByZWxLaW5kLkN1c3RvbWVyXCJcclxuICAgICAgICAgICAgICAgICAgW3Nob3dJbnZpdGVGb3JBY2NvdW50XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlRm9yU3VnZ2VzdGlvbnMpPVwiaW5wdXRDaGFuZ2VGb3JTdWdnZXN0aW9ucy5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tY29udGFjdC1kZXRhaWxzPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dJbnZvaWNlQWRkcmVzc1wiIGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlJlbGF0aW9uQWRkcmVzc2VzSGVhZGVyXCIgc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudD5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIHJlbGF0aW9uLnJlbGF0aW9uVHlwZSA9PT0gcmVsS2luZC5DdXN0b21lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInMDInXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidJTlZPSUNFX0FERFJFU1MnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRhdGEtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveCBbcmVhZG9ubHldPVwiZm9yY2VSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJpbnZvaWNlQWRkcmVzc1NhbWVBc0RlbGl2ZXJ5QWRkcmVzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1NBTUVfQVNfREVMSVZFUlknIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoZWNrU2FtZUFkZHJlc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctZGVsaXZlcnktaW52b2ljZS1hZGRyZXNzXCIgKm5nSWY9XCIhaW52b2ljZUFkZHJlc3NTYW1lQXNEZWxpdmVyeUFkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIEBzaG93SGlkZUludm9pY2VBZGRyZXNzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjby1yZWxhdGlvbi1hZGRyZXNzZXNcclxuICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmb3JjZVJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFthZGRyZXNzZXNdPVwicmVsYXRpb24uYWN0aXZlQWRkcmVzc2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImFkZHJlc3NUeXBlLkJpbGxpbmdBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZE5hd05yXT1cImludm9pY2VBZGRyZXNzTmF3TnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkTmF3TnJDaGFuZ2UpPVwic2V0SW5kZXhJbnZvaWNlQWRkcmVzcygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9jby1yZWxhdGlvbi1hZGRyZXNzZXM+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJlbGF0aW9uLWNvbnRlbnRcIiAqbmdJZj1cInNob3dQcml2YWN5XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VjdGlvbi1sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiJ1BSSVZBQ1lfUFJFRkVSRU5DRVMnIHwgbG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tcHJlZmVyZW5jZXMgW3JlYWRvbmx5XT1cImZvcmNlUmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25dPVwicmVsYXRpb25cIj48L2NvLXJlbGF0aW9uLXByZWZlcmVuY2VzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvY28tZm9ybT5cclxuICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgYW5pbWF0aW9uczogW1xyXG4gICAgICAgIHRyaWdnZXIoXCJzaG93SGlkZUludm9pY2VBZGRyZXNzXCIsIFtcclxuICAgICAgICAgICAgc3RhdGUoXCJ2b2lkXCIsIHN0eWxlKHtoZWlnaHQ6IDAsIG9wYWNpdHk6IDB9KSksXHJcbiAgICAgICAgICAgIHN0YXRlKFwiKlwiLCBzdHlsZSh7aGVpZ2h0OiBcIipcIiwgb3BhY2l0eTogMX0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbihcInZvaWQgPT4gKlwiLCBhbmltYXRlKFwiMjAwbXMgZWFzZS1pbi1vdXRcIikpLFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiKiA9PiB2b2lkXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLW91dFwiKSlcclxuICAgICAgICBdKVxyXG4gICAgXSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICBGb3JtTWFzdGVyU2VydmljZSxcclxuICAgICAgUmVsYXRpb25TdWdnZXN0aW9uc1NlcnZpY2VcclxuICAgIF0sXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlV2l6YXJkUmVsYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWRkcmVzc1R5cGU6IHR5cGVvZiBBZGRyZXNzVHlwZSA9IEFkZHJlc3NUeXBlO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHJlbEtpbmQ6IHR5cGVvZiBSZWxhdGlvbktpbmQgPSBSZWxhdGlvbktpbmQ7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2ZnTmFtZXM6IHR5cGVvZiBUcmFuc2FjdGlvbkNmZ05hbWUgPSBUcmFuc2FjdGlvbkNmZ05hbWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjb25maWdOYW1lczogUmVsYXRpb25HZW5lcmFsQ2ZnTmFtZXM7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JjZVJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93UHJpdmFjeTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93TWVzc2FnZUZvckNoYW5nZUN1c3RvbWVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzaG93SW52b2ljZUFkZHJlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8vVGhpcyBpcyBmb3IgYSBzcGVjaWZpYyBpbnN0YW5jZSBvZiB0aGUgc2VydmljZSB3aXphcmQgd2hlcmUgdGhlIGN1c3RvbWVyIGlzIGEgZGlzcGxheSBvYmplY3Qgb25seS5cclxuICAgIC8vT25seSB1c2UgdGhpcyBzZXR0aW5nIHdoZW4gYWJzb2x1dGVseSBuZWNlc3NhcnkuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG5vTG9ja09uQ3VzdG9tZXJTZXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCByZWxhdGlvbih2YWx1ZTogUmVsYXRpb25BbnlUeXBlKSB7XHJcbiAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX3JlbGF0aW9uID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5yZWxhdGlvblNldCgpO1xyXG4gICAgICAgIHRoaXMucmVsYXRpb25DaGFuZ2UubmV4dCh0aGlzLl9yZWxhdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHJlbGF0aW9uKCk6IFJlbGF0aW9uQW55VHlwZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9yZWxhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCB0cmFuc2FjdGlvbih2YWx1ZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpIHtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uU2V0KCk7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkNoYW5nZS5uZXh0KHRoaXMuX3RyYW5zYWN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XHJcbiAgICB9XHJcblxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGlucHV0Q2hhbmdlRm9yU3VnZ2VzdGlvbnM6IEV2ZW50RW1pdHRlcjxSZWxhdGlvblN1Z2dlc3Rpb25zUmVxdWVzdD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlbGF0aW9uU3VnZ2VzdGlvbnNSZXF1ZXN0PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGNoYW5nZUN1c3RvbWVyUmVxdWVzdGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVsYXRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxSZWxhdGlvbkFueVR5cGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWxhdGlvbkFueVR5cGU+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPigpO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ25hdmlnYXRpb25JdGVtcycsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICAgIHB1YmxpYyBuYXZpZ2F0aW9uSXRlbXM6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnbWFpbkl0ZW1zJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxyXG4gICAgcHVibGljIG1haW5JdGVtczogRWxlbWVudFJlZjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdwcmVmZXJlbmNlSXRlbXMnLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgICBwdWJsaWMgcHJlZmVyZW5jZUl0ZW1zOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXJlbGF0aW9uJylcclxuICAgIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRlbGl2ZXJ5QWRkcmVzc05hd05yOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGludm9pY2VBZGRyZXNzTmF3TnI6IG51bWJlciA9IDA7XHJcbiAgICBwdWJsaWMgaW52b2ljZUFkZHJlc3NTYW1lQXNEZWxpdmVyeUFkZHJlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgcHVibGljIGNhdGVnb3JpZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBwdWJsaWMgY3VzdG9tZXJHcm91cDogc3RyaW5nO1xyXG5cclxuICAgIHB1YmxpYyBjb250YWN0RGV0YWlsc0NvbmZpZ05hbWVzOiBSZWxhdGlvbkNvbnRhY3REZXRhaWxzQ2ZnTmFtZXMgPSB7XHJcbiAgICAgICAgcmVsYXRpb25QaG9uZTogdGhpcy5jZmdOYW1lcy5SZWxhdGlvblBob25lLFxyXG4gICAgICAgIHJlbGF0aW9uRW1haWxBZGRyZXNzOiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uRW1haWxBZGRyZXNzLFxyXG4gICAgICAgIHJlbGF0aW9uSW52aXRlVG9BY2NvdW50OiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uSW52aXRlVG9BY2NvdW50XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgcmVsYXRpb25HZW5lcmFsQ29uZmlnTmFtZXM6IFJlbGF0aW9uR2VuZXJhbENmZ05hbWVzID0ge1xyXG4gICAgICAgIHJlbGF0aW9uQ29tcGFueTogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkNvbXBhbnksXHJcbiAgICAgICAgcmVsYXRpb25GaXJzdE5hbWU6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25GaXJzdE5hbWUsXHJcbiAgICAgICAgcmVsYXRpb25QcmVmaXg6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25QcmVmaXgsXHJcbiAgICAgICAgcmVsYXRpb25MYXN0TmFtZTogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkxhc3ROYW1lLFxyXG4gICAgICAgIHJlbGF0aW9uR2VuZGVyOiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uR2VuZGVyLFxyXG4gICAgICAgIGNvbnRhY3REZXRhaWxzOiB0aGlzLmNvbnRhY3REZXRhaWxzQ29uZmlnTmFtZXNcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9yZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gTlVMTF9DVVNUT01FUl9GVUxMX09CSkVDVDtcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZTtcclxuICAgIHByaXZhdGUgX3JlcXVlc3RGb3JTdWdnZXN0aW9uczogUmVsYXRpb25TdWdnZXN0aW9uc1JlcXVlc3QgPSB7fTtcclxuICAgIHByaXZhdGUgX3JlbGF0aW9uU3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgIHB1YmxpYyB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICAgIHByb3RlY3RlZCBmb3JtTWFzdGVyU2VydmljZTogRm9ybU1hc3RlclNlcnZpY2UsXHJcbiAgICAgIHByb3RlY3RlZCByZWxhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlLFxyXG4gICAgICBwcml2YXRlIF9zdWdnZXN0aW9uc1NlcnZpY2U6IFJlbGF0aW9uU3VnZ2VzdGlvbnNTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB0aGlzLl9zdWdnZXN0aW9uc1NlcnZpY2UuaW5pdCh0aGlzLl9yZWxhdGlvbi5yZWxhdGlvblR5cGUpO1xyXG4gICAgICAgIHRoaXMuX3JlbGF0aW9uU3Vicy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuY29uZmlnU2V0LnN1YnNjcmliZSgoY29uZmlnT2JqZWN0czogT2JqZWN0Q29uZmlndXJhdGlvbltdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoY29uZmlnT2JqZWN0cyAmJiBjb25maWdPYmplY3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3JpZXMubGVuZ3RoID0gMDtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5SZWxhdGlvbkNsaWVudERhdGFIZWFkZXIpLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KCdDTElFTlRfREFUQScpKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25QcmVmZXJlbmNlc0hlYWRlcikuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yaWVzLnB1c2godGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ1BSSVZBQ1lfUFJFRkVSRU5DRVMnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbnNTZXJ2aWNlLnN1Z2dlc3RlZFJlbGF0aW9uQ2xpY2suc3Vic2NyaWJlKChyZWxhdGlvbjogUmVsYXRpb25MaXN0T2JqZWN0KSA9PiB0aGlzLm9uUmVsYXRpb25TdWdnZXN0aW9uQ2xpY2socmVsYXRpb24pKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uICYmIHRoaXMuX3RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mbykge1xyXG4gICAgICAgICAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID0gdGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uQWRkcmVzcztcclxuICAgICAgICAgICAgdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yID0gdGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmludm9pY2VBZGRyZXNzO1xyXG4gICAgICAgICAgICB0aGlzLmludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnlBZGRyZXNzID0gdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9PT0gdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2F0ZWdvcmllc1swXSA9PT0gdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ1BSSVZBQ1lfUFJFRkVSRU5DRVMnKSkge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZU5hdmlnYXRpb25DbGljaygnUFJJVkFDWV9QUkVGRVJFTkNFUycpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBuZ09uRGVzdHJveSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICB0aGlzLl9yZWxhdGlvblN1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN1Ym1pdCgpOiBib29sZWFuIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIHJlcXVlc3RDaGFuZ2VDdXN0b21lcigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgaWYodGhpcy5zaG93TWVzc2FnZUZvckNoYW5nZUN1c3RvbWVyKSB7XHJcbiAgICAgICAgY29uc3QgcmVzcG9uc2U6IERpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlID0gYXdhaXQgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dZZXNObygnREVMRVRFX1RSQU5TQUNUSU9OJywgJ0RFTEVURV9DVVNUT01FUl9XSUxfREVMRVRFX1RSQU5TQUNUSU9OJyk7XHJcbiAgICAgICAgY29uc3Qgc2hvdWxkRGVsZXRlOiBib29sZWFuID0gcmVzcG9uc2UuYnV0dG9uID09PSBBcHBQb3B1cEJ1dHRvblR5cGUuWWVzO1xyXG4gICAgICAgIGlmKHNob3VsZERlbGV0ZSkge1xyXG4gICAgICAgICAgdGhpcy5jaGFuZ2VDdXN0b21lclJlcXVlc3RlZC5uZXh0KCk7XHJcbiAgICAgICAgICB0aGlzLmZvcmNlUmVhZG9ubHkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5mb3JjZVJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgb25SZWxhdGlvblN1Z2dlc3Rpb25DbGljayhyZWxhdGlvblN1Z2dlc3RlZDogUmVsYXRpb25MaXN0T2JqZWN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKHJlbGF0aW9uU3VnZ2VzdGVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxvY2tSZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLnJlbGF0aW9uU2VydmljZS5sb2NrUmVsYXRpb24ocmVsYXRpb25TdWdnZXN0ZWQucmVsYXRpb25UeXBlLCBwYXJzZUludChyZWxhdGlvblN1Z2dlc3RlZC5yZWxhdGlvbk5yLCAwKSk7XHJcbiAgICAgICAgICAgIGlmICghbG9ja1Jlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0Vycm9yKCdSRUxBVElPTl9BTFJFQURZX0xPQ0tFRCcsIHRydWUsIGxvY2tSZXN1bHQubWVzc2FnZXNbMF0ubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zdWdnZXN0aW9uc1NlcnZpY2UuaGlkZVNpZGViYXIoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHN1Z2dlc3RlZFJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBhd2FpdCB0aGlzLnJlbGF0aW9uU2VydmljZS5nZXRSZWxhdGlvbihyZWxhdGlvblN1Z2dlc3RlZC5yZWxhdGlvblR5cGUsIHBhcnNlSW50KHJlbGF0aW9uU3VnZ2VzdGVkLnJlbGF0aW9uTnIpKTtcclxuICAgICAgICAgICAgICAgIGlmIChzdWdnZXN0ZWRSZWxhdGlvbiAmJiBzdWdnZXN0ZWRSZWxhdGlvbi5hZGRyZXNzZXMgJiYgc3VnZ2VzdGVkUmVsYXRpb24uYWRkcmVzc2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBzdWdnZXN0ZWRSZWxhdGlvbi5hZGRyZXNzZXMuc29ydCgoYSwgYikgPT4gYS5zZXF1ZW5jZSA8IGIuc2VxdWVuY2UgPyAtMSA6IDEpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWxhdGlvbiA9IHN1Z2dlc3RlZFJlbGF0aW9uO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyByZWxhdGlvblNldCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBpZiAodGhpcy5fcmVsYXRpb24ucmVsYXRpb25UeXBlID09PSBSZWxhdGlvbktpbmQuQ3VzdG9tZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21lckdyb3VwID0gKHRoaXMuX3JlbGF0aW9uIGFzIEN1c3RvbWVyRnVsbE9iamVjdCkuY3VzdG9tZXJHcm91cDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCF0aGlzLm5vTG9ja09uQ3VzdG9tZXJTZXQpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuX2xvY2tSZWxhdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgc2V0SW5kZXhEZWxpdmVyeUFkZHJlc3MobmF3TnI6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGNvbnN0IGFkZHJlc3M6IEFkZHJlc3MgPSB0aGlzLl9yZWxhdGlvbi5hZGRyZXNzZXMuZmluZChhID0+IGEubmF3TnIgPT09IG5hd05yKTtcclxuICAgICAgICBpZiAoYWRkcmVzcyAmJiB0aGlzLl90cmFuc2FjdGlvbiAmJiB0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCkge1xyXG4gICAgICAgICAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID0gbmF3TnI7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVIZWFkZXJEZWxpdmVyeUFkZHJlc3ModGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQsIG5hd05yLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBzZXRJbmRleEludm9pY2VBZGRyZXNzKG5hd05yOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBjb25zdCBhZGRyZXNzOiBBZGRyZXNzID0gdGhpcy5fcmVsYXRpb24uYWRkcmVzc2VzLmZpbmQoYSA9PiBhLm5hd05yID09PSBuYXdOcik7XHJcbiAgICAgIGlmIChhZGRyZXNzICYmIHRoaXMuX3RyYW5zYWN0aW9uICYmIHRoaXMuX3RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA9IG5hd05yO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlSGVhZGVySW52b2ljZUFkZHJlc3ModGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQsIG5hd05yLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGVja1NhbWVBZGRyZXNzKGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoY2hlY2tlZCkge1xyXG4gICAgICAgICAgICAvLyB0aGlzLmVkaXRBZGRyZXNzVHlwZSA9IEFkZHJlc3NUeXBlLkRlbGl2ZXJ5QWRkcmVzcztcclxuICAgICAgICAgICAgLy8gdGhpcy5zZWxlY3RBZGRyZXNzKHRoaXMuZGVsaXZlcnlBZGRyZXNzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUlucHV0Q2hhbmdlKHJlcXVlc3Q6IFJlbGF0aW9uU3VnZ2VzdGlvbnNSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmVxdWVzdEZvclN1Z2dlc3Rpb25zID0gT2JqZWN0LmFzc2lnbih0aGlzLl9yZXF1ZXN0Rm9yU3VnZ2VzdGlvbnMsIHJlcXVlc3QpO1xyXG4gICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zU2VydmljZS5yZXF1ZXN0Rm9yU3VnZ2VzdGlvbnMgPSB0aGlzLl9yZXF1ZXN0Rm9yU3VnZ2VzdGlvbnM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZU5hdmlnYXRpb25DbGljayhuYXY6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICBpZiAobmF2ID09PSB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldCgnQ0xJRU5UX0RBVEEnKSkge1xyXG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9IHRoaXMubWFpbkl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdCAtIHRoaXMubmF2aWdhdGlvbkl0ZW1zLm5hdGl2ZUVsZW1lbnQub2Zmc2V0TGVmdDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLnByZWZlcmVuY2VJdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLSB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlQ2hhbmdlQ3VzdG9tR3JvdXAoZ3JvdXA6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tZXJHcm91cCA9IGdyb3VwO1xyXG4gICAgICAgIGlmICh0aGlzLnJlbGF0aW9uLnJlbGF0aW9uVHlwZSA9PT0gUmVsYXRpb25LaW5kLkN1c3RvbWVyKSB7XHJcbiAgICAgICAgICAgICh0aGlzLnJlbGF0aW9uIGFzIEN1c3RvbWVyRnVsbE9iamVjdCkuY3VzdG9tZXJHcm91cCA9IHRoaXMuY3VzdG9tZXJHcm91cDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uU2V0KCkge1xyXG4gICAgICAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvKSB7XHJcbiAgICAgICAgICAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID0gdGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uQWRkcmVzcztcclxuICAgICAgICAgICAgIHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA9IHRoaXMuX3RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pbnZvaWNlQWRkcmVzcztcclxuICAgICAgICAgICAgIHRoaXMuaW52b2ljZUFkZHJlc3NTYW1lQXNEZWxpdmVyeUFkZHJlc3MgPSB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID09PSB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnI7XHJcbiAgICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXRGaXJzdEFkZHJlc3MoYWRkcmVzczogQWRkcmVzcyk6IHZvaWQge1xyXG4gICAgICAgIGFkZHJlc3Muc2VxdWVuY2UgPSAwO1xyXG4gICAgICAgIGNvbnN0IGFkZHJlc3NlczogQWRkcmVzc1tdID0gdGhpcy5yZWxhdGlvbi5hZGRyZXNzZXNcclxuICAgICAgICAgICAgLmZpbHRlcihhID0+IGEubmF3TnIgIT09IGFkZHJlc3MubmF3TnIpXHJcbiAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnNlcXVlbmNlIDwgYi5zZXF1ZW5jZSA/IC0xIDogMSk7XHJcbiAgICAgICAgbGV0IHNvcnRlZEFkZHJlc3NlczogQWRkcmVzc1tdID0gW2FkZHJlc3NdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYWRkcmVzc2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFkZHJlc3M6IEFkZHJlc3MgPSBhZGRyZXNzZXNbaV07XHJcbiAgICAgICAgICAgIGFkZHJlc3Muc2VxdWVuY2UgPSBpICsgMTtcclxuICAgICAgICAgICAgc29ydGVkQWRkcmVzc2VzLnB1c2goYWRkcmVzcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLmZvckVhY2gocmEgPT4gcmEuc2VxdWVuY2UgPSBzb3J0ZWRBZGRyZXNzZXMuZmluZChzYSA9PiBzYS5uYXdOciA9PT0gcmEubmF3TnIpLnNlcXVlbmNlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFzeW5jIF9sb2NrUmVsYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgY29uc3QgbG9ja1Jlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMucmVsYXRpb25TZXJ2aWNlLmxvY2tSZWxhdGlvbih0aGlzLnJlbGF0aW9uLnJlbGF0aW9uVHlwZSwgcGFyc2VJbnQodGhpcy5yZWxhdGlvbi5yZWxhdGlvbk51bWJlciwgMCkpO1xyXG4gICAgICAgIGlmICghbG9ja1Jlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93SW5mb3JtYXRpb24obG9ja1Jlc3VsdC5tZXNzYWdlc1swXS5tZXNzYWdlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9yY2VSZWFkb25seSA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JjZVJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
441
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS13aXphcmQtcmVsYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tY3JlYXRlLXdpemFyZC9jb21wb25lbnRzL3NlcnZpY2Utd2l6YXJkLXJlbGF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUFFLFlBQVksRUFDeEIsV0FBVyxFQUNYLEtBQUssRUFDRyxNQUFNLEVBQ2QsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scURBQXFELENBQUM7QUFJakYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQy9FLE9BQU8sRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFJL0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDJEQUEyRCxDQUFD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QUF1QjtZQTNCM0IsaUJBQWlCO1lBcUJiLGFBQWE7WUFaYixpQkFBaUI7WUFXakIsMEJBQTBCO1lBRTFCLDBCQUEwQjs7OzBCQTJMN0IsS0FBSzs0QkFHTCxLQUFLOzBCQUdMLEtBQUs7MkNBR0wsS0FBSztpQ0FHTCxLQUFLO2tDQUtMLEtBQUs7dUJBR0wsS0FBSzswQkFhTCxLQUFLO3dDQWNMLE1BQU07c0NBR04sTUFBTTs2QkFHTixNQUFNO2dDQUdOLE1BQU07OEJBR04sU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQzt3QkFHL0MsU0FBUyxTQUFDLFdBQVcsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7OEJBR3pDLFNBQVMsU0FBQyxpQkFBaUIsRUFBRSxFQUFDLElBQUksRUFBRSxVQUFVLEVBQUM7d0JBRy9DLFdBQVcsU0FBQyw0Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBJbnB1dCwgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LCBPdXRwdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Zvcm1NYXN0ZXJTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtSZWxhdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge0FkZHJlc3N9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9hZGRyZXNzLmJvJztcclxuaW1wb3J0IHtWYWxpZGF0aW9uUmVzdWx0fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC92YWxpZGF0aW9uLXJlc3VsdCc7XHJcbmltcG9ydCB7QWRkcmVzc1R5cGV9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL2FkZHJlc3MtdHlwZS5lbnVtJztcclxuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQge1JlbGF0aW9uR2VuZXJhbENmZ05hbWVzfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2UvcmVsYXRpb24tZ2VuZXJhbC1jZmctbmFtZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtSZWxhdGlvbkNvbnRhY3REZXRhaWxzQ2ZnTmFtZXN9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9yZWxhdGlvbi1jb250YWN0LWRldGFpbHMtY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7UmVsYXRpb25TdWdnZXN0aW9uc1JlcXVlc3R9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9yZWxhdGlvbi1zdWdnZXN0aW9ucy1yZXF1ZXN0LmludGVyZmFjZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1JlbGF0aW9uU3VnZ2VzdGlvbnNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3JlbGF0aW9uLXN1Z2dlc3Rpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7UmVsYXRpb25MaXN0T2JqZWN0fSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tbGlzdC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge1JlbGF0aW9uQW55VHlwZX0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvcmVsYXRpb24tYW55LXR5cGUnO1xyXG5pbXBvcnQge0RpYWxvZ1Jlc3BvbnNlSW50ZXJmYWNlfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlL2RpYWxvZy1yZXNwb25zZS5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtBcHBQb3B1cEJ1dHRvblR5cGV9IGZyb20gXCIuLi8uLi9jb3JlL2VudW0vYXBwLXBvcHVwLWJ1dHRvbi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge05VTExfQ1VTVE9NRVJfRlVMTF9PQkpFQ1R9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvbnVsLXJlbGF0aW9uLW9iamVjdFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ2ZnTmFtZX0gZnJvbSBcIi4uLy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tY2ZnLW5hbWUuZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm9cIjtcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY28tc2VydmljZS13aXphcmQtcmVsYXRpb24nLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1jYXRlZ29yeS13cmFwcGVyIGNvLXNtYWxsLXNjcm9sbGJhclwiPlxyXG4gICAgICAgIDxjby1mb3JtPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yZWxhdGlvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VjdGlvbiBnZW5lcmFsXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uLWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJzAxJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiJ1BFUlNPTkFMX0RBVEEnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtcmVhZC1vbmx5LXdyYXBwZXJcIiAqbmdJZj1cImZvcmNlUmVhZG9ubHlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRhdGEtcmVhZC1vbmx5XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRhdGEtaGVhZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYXRhLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidOQU1FX0FORF9BRERSRVNTJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidG9nZ2xlLWNoYW5nZVwiIFt0ZXh0Q29udGVudF09XCInQ0hBTkdFJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVxdWVzdENoYW5nZUN1c3RvbWVyKClcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1yZWxhdGlvbi1kYXRhIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3VibGUtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidGSVJTVF9OQU1FJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5maXJzdE5hbWVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1BSRUZJWCcgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbdGV4dENvbnRlbnRdPVwicmVsYXRpb24ucHJlZml4XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0xBU1RfTkFNRScgfCBsb2NhbGl6ZVwiPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCIgW3RleHRDb250ZW50XT1cInJlbGF0aW9uLmZhbWlseU5hbWVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1hZGRyZXNzLWRhdGEgcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0FERFJFU1MnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwicmVsYXRpb24ucHJpbWFyeURpc3BsYXlBZGRyZXNzID8gKHJlbGF0aW9uLnByaW1hcnlEaXNwbGF5QWRkcmVzcy5zdHJlZXROYW1lICsgJyAnICsgcmVsYXRpb24ucHJpbWFyeURpc3BsYXlBZGRyZXNzLmhvdXNlTm8pIDogJydcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1BPU1RBTF9DT0RFJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbdGV4dENvbnRlbnRdPVwicmVsYXRpb24ucHJpbWFyeURpc3BsYXlBZGRyZXNzPy5wb3N0YWxDb2RlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtYWRkcmVzcy1kYXRhIHJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidDSVRZJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbdGV4dENvbnRlbnRdPVwicmVsYXRpb24ucHJpbWFyeURpc3BsYXlBZGRyZXNzPy5jaXR5XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsXCIgW3RleHRDb250ZW50XT1cIidDT1VOVFJZJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbdGV4dENvbnRlbnRdPVwicmVsYXRpb24ucHJpbWFyeURpc3BsYXlBZGRyZXNzPy5jb3VudHJ5SWRcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kYXRhLXJlYWQtb25seVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kYXRhLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0YS1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInQ09OVEFDVF9PUFRJT05TJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtcmVsYXRpb24tZGF0YSByb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInRU1BSUwnIHwgbG9jYWxpemVcIj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFt0ZXh0Q29udGVudF09XCJyZWxhdGlvbi5wcmltYXJ5RW1haWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1BIT05FJyB8IGxvY2FsaXplXCI+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbdGV4dENvbnRlbnRdPVwicmVsYXRpb24ucHJpbWFyeVBob25lTnVtYmVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRhdGEtY29sdW1uXCIgKm5nSWY9XCIhZm9yY2VSZWFkb25seVwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLXR5cGUgKm5nSWY9XCJyZWxhdGlvbi5yZWxhdGlvblR5cGUgPT09IHJlbEtpbmQuQ3VzdG9tZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUmVsYXRpb25UeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmb3JjZVJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgID48L2NvLXJlbGF0aW9uLXR5cGU+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVsYXRpb24ucmVsYXRpb25UeXBlID09PSByZWxLaW5kLkN1c3RvbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWxhdGlvbi1jdXN0b21lci1ncm91cHNcclxuICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5SZWxhdGlvbkN1c3RvbWVyR3JvdXBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmb3JjZVJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiY3VzdG9tZXJHcm91cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZUNoYW5nZUN1c3RvbUdyb3VwKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9yZWxhdGlvbi1jdXN0b21lci1ncm91cHM+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxjby1yZWxhdGlvbi1nZW5lcmFsXHJcbiAgICAgICAgICAgICAgICAgIFtjb25maWdOYW1lc109XCJyZWxhdGlvbkdlbmVyYWxDb25maWdOYW1lc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmb3JjZVJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgWyhyZWxhdGlvbildPVwicmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICBbcmVsYXRpb25UeXBlXT1cInJlbGF0aW9uLnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICBbcmVsYXRpb25LaW5kXT1cInJlbGF0aW9uLnJlbGF0aW9uVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgIChpbnB1dENoYW5nZUZvclN1Z2dlc3Rpb25zKT1cImhhbmRsZUlucHV0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tZ2VuZXJhbD5cclxuICAgICAgICAgICAgICAgIDxjby1yZWxhdGlvbi1hZGRyZXNzZXNcclxuICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImZvcmNlUmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgIFthZGRyZXNzZXNdPVwicmVsYXRpb24uYWN0aXZlQWRkcmVzc2VzXCJcclxuICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiYWRkcmVzc1R5cGUuRGVsaXZlcnlBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkTmF3TnJdPVwiZGVsaXZlcnlBZGRyZXNzTmF3TnJcIlxyXG4gICAgICAgICAgICAgICAgICBbbm9TYXZlT25BZGRBZGRyZXNzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAoc2VsZWN0ZWROYXdOckNoYW5nZSk9XCJzZXRJbmRleERlbGl2ZXJ5QWRkcmVzcygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgID48L2NvLXJlbGF0aW9uLWFkZHJlc3Nlcz5cclxuICAgICAgICAgICAgICAgIDxjby1yZWxhdGlvbi1jb250YWN0LWRldGFpbHNcclxuICAgICAgICAgICAgICAgICAgW2NvbmZpZ05hbWVzXT1cImNvbmZpZ05hbWVzPy5jb250YWN0RGV0YWlsc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJmb3JjZVJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgWyhyZWxhdGlvbildPVwicmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICBbcmVsYXRpb25LaW5kXT1cInJlbGF0aW9uID8gcmVsYXRpb24ucmVsYXRpb25UeXBlIDogcmVsS2luZC5DdXN0b21lclwiXHJcbiAgICAgICAgICAgICAgICAgIFtzaG93SW52aXRlRm9yQWNjb3VudF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgIChpbnB1dENoYW5nZUZvclN1Z2dlc3Rpb25zKT1cImlucHV0Q2hhbmdlRm9yU3VnZ2VzdGlvbnMuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgID48L2NvLXJlbGF0aW9uLWNvbnRhY3QtZGV0YWlscz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93SW52b2ljZUFkZHJlc3NcIiBjbGFzcz1cInRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1zZWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5SZWxhdGlvbkFkZHJlc3Nlc0hlYWRlclwiIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiByZWxhdGlvbi5yZWxhdGlvblR5cGUgPT09IHJlbEtpbmQuQ3VzdG9tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtc2VjdGlvbi1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJzAyJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInSU5WT0lDRV9BRERSRVNTJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kYXRhLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW3JlYWRvbmx5XT1cImZvcmNlUmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiaW52b2ljZUFkZHJlc3NTYW1lQXNEZWxpdmVyeUFkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTQU1FX0FTX0RFTElWRVJZJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJjaGVja1NhbWVBZGRyZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJ2aWV3LWRlbGl2ZXJ5LWludm9pY2UtYWRkcmVzc1wiICpuZ0lmPVwiIWludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnlBZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBAc2hvd0hpZGVJbnZvaWNlQWRkcmVzcz5cclxuICAgICAgICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tYWRkcmVzc2VzXHJcbiAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiZm9yY2VSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYWRkcmVzc2VzXT1cInJlbGF0aW9uLmFjdGl2ZUFkZHJlc3Nlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJhZGRyZXNzVHlwZS5CaWxsaW5nQWRkcmVzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWROYXdOcl09XCJpbnZvaWNlQWRkcmVzc05hd05yXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZE5hd05yQ2hhbmdlKT1cInNldEluZGV4SW52b2ljZUFkZHJlc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tYWRkcmVzc2VzPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yZWxhdGlvbi1jb250ZW50XCIgKm5nSWY9XCJzaG93UHJpdmFjeVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlY3Rpb25cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwLXNlY3Rpb24tbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIidQUklWQUNZX1BSRUZFUkVOQ0VTJyB8IGxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLXByZWZlcmVuY2VzIFtyZWFkb25seV09XCJmb3JjZVJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCI+PC9jby1yZWxhdGlvbi1wcmVmZXJlbmNlcz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2NvLWZvcm0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICB0cmlnZ2VyKFwic2hvd0hpZGVJbnZvaWNlQWRkcmVzc1wiLCBbXHJcbiAgICAgICAgICAgIHN0YXRlKFwidm9pZFwiLCBzdHlsZSh7aGVpZ2h0OiAwLCBvcGFjaXR5OiAwfSkpLFxyXG4gICAgICAgICAgICBzdGF0ZShcIipcIiwgc3R5bGUoe2hlaWdodDogXCIqXCIsIG9wYWNpdHk6IDF9KSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCJ2b2lkID0+ICpcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2UtaW4tb3V0XCIpKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIiogPT4gdm9pZFwiLCBhbmltYXRlKFwiMjAwbXMgZWFzZS1vdXRcIikpXHJcbiAgICAgICAgXSlcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgRm9ybU1hc3RlclNlcnZpY2UsXHJcbiAgICAgIFJlbGF0aW9uU3VnZ2VzdGlvbnNTZXJ2aWNlXHJcbiAgICBdLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VydmljZVdpemFyZFJlbGF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGFkZHJlc3NUeXBlOiB0eXBlb2YgQWRkcmVzc1R5cGUgPSBBZGRyZXNzVHlwZTtcclxuICAgIHB1YmxpYyByZWFkb25seSByZWxLaW5kOiB0eXBlb2YgUmVsYXRpb25LaW5kID0gUmVsYXRpb25LaW5kO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGNmZ05hbWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25DZmdOYW1lID0gVHJhbnNhY3Rpb25DZmdOYW1lO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29uZmlnTmFtZXM6IFJlbGF0aW9uR2VuZXJhbENmZ05hbWVzO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9yY2VSZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd1ByaXZhY3k6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd01lc3NhZ2VGb3JDaGFuZ2VDdXN0b21lcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2hvd0ludm9pY2VBZGRyZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvL1RoaXMgaXMgZm9yIGEgc3BlY2lmaWMgaW5zdGFuY2Ugb2YgdGhlIHNlcnZpY2Ugd2l6YXJkIHdoZXJlIHRoZSBjdXN0b21lciBpcyBhIGRpc3BsYXkgb2JqZWN0IG9ubHkuXHJcbiAgICAvL09ubHkgdXNlIHRoaXMgc2V0dGluZyB3aGVuIGFic29sdXRlbHkgbmVjZXNzYXJ5LlxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBub0xvY2tPbkN1c3RvbWVyU2V0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgcmVsYXRpb24odmFsdWU6IFJlbGF0aW9uQW55VHlwZSkge1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICB0aGlzLl9yZWxhdGlvbiA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMucmVsYXRpb25TZXQoKTtcclxuICAgICAgICB0aGlzLnJlbGF0aW9uQ2hhbmdlLm5leHQodGhpcy5fcmVsYXRpb24pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCByZWxhdGlvbigpOiBSZWxhdGlvbkFueVR5cGUge1xyXG4gICAgICByZXR1cm4gdGhpcy5fcmVsYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb24odmFsdWU6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSB7XHJcbiAgICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvblNldCgpO1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25DaGFuZ2UubmV4dCh0aGlzLl90cmFuc2FjdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBpbnB1dENoYW5nZUZvclN1Z2dlc3Rpb25zOiBFdmVudEVtaXR0ZXI8UmVsYXRpb25TdWdnZXN0aW9uc1JlcXVlc3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWxhdGlvblN1Z2dlc3Rpb25zUmVxdWVzdD4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBjaGFuZ2VDdXN0b21lclJlcXVlc3RlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlbGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4oKTtcclxuXHJcbiAgICBAVmlld0NoaWxkKCduYXZpZ2F0aW9uSXRlbXMnLCB7cmVhZDogRWxlbWVudFJlZn0pXHJcbiAgICBwdWJsaWMgbmF2aWdhdGlvbkl0ZW1zOiBFbGVtZW50UmVmO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ21haW5JdGVtcycsIHtyZWFkOiBFbGVtZW50UmVmfSlcclxuICAgIHB1YmxpYyBtYWluSXRlbXM6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgncHJlZmVyZW5jZUl0ZW1zJywge3JlYWQ6IEVsZW1lbnRSZWZ9KVxyXG4gICAgcHVibGljIHByZWZlcmVuY2VJdGVtczogRWxlbWVudFJlZjtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1yZWxhdGlvbicpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZWxpdmVyeUFkZHJlc3NOYXdOcjogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBpbnZvaWNlQWRkcmVzc05hd05yOiBudW1iZXIgPSAwO1xyXG4gICAgcHVibGljIGludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnlBZGRyZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIHB1YmxpYyBjYXRlZ29yaWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgcHVibGljIGN1c3RvbWVyR3JvdXA6IHN0cmluZztcclxuXHJcbiAgICBwdWJsaWMgY29udGFjdERldGFpbHNDb25maWdOYW1lczogUmVsYXRpb25Db250YWN0RGV0YWlsc0NmZ05hbWVzID0ge1xyXG4gICAgICAgIHJlbGF0aW9uUGhvbmU6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25QaG9uZSxcclxuICAgICAgICByZWxhdGlvbkVtYWlsQWRkcmVzczogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkVtYWlsQWRkcmVzcyxcclxuICAgICAgICByZWxhdGlvbkludml0ZVRvQWNjb3VudDogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkludml0ZVRvQWNjb3VudFxyXG4gICAgfVxyXG4gICAgcHVibGljIHJlbGF0aW9uR2VuZXJhbENvbmZpZ05hbWVzOiBSZWxhdGlvbkdlbmVyYWxDZmdOYW1lcyA9IHtcclxuICAgICAgICByZWxhdGlvbkNvbXBhbnk6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25Db21wYW55LFxyXG4gICAgICAgIHJlbGF0aW9uRmlyc3ROYW1lOiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uRmlyc3ROYW1lLFxyXG4gICAgICAgIHJlbGF0aW9uUHJlZml4OiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uUHJlZml4LFxyXG4gICAgICAgIHJlbGF0aW9uTGFzdE5hbWU6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25MYXN0TmFtZSxcclxuICAgICAgICByZWxhdGlvbkdlbmRlcjogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkdlbmRlcixcclxuICAgICAgICBjb250YWN0RGV0YWlsczogdGhpcy5jb250YWN0RGV0YWlsc0NvbmZpZ05hbWVzXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSA9IE5VTExfQ1VTVE9NRVJfRlVMTF9PQkpFQ1Q7XHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U7XHJcbiAgICBwcml2YXRlIF9yZXF1ZXN0Rm9yU3VnZ2VzdGlvbnM6IFJlbGF0aW9uU3VnZ2VzdGlvbnNSZXF1ZXN0ID0ge307XHJcbiAgICBwcml2YXRlIF9yZWxhdGlvblN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgICBwdWJsaWMgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgcHJvdGVjdGVkIGltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UsXHJcbiAgICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgIHByb3RlY3RlZCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICBwcm90ZWN0ZWQgZm9ybU1hc3RlclNlcnZpY2U6IEZvcm1NYXN0ZXJTZXJ2aWNlLFxyXG4gICAgICBwcm90ZWN0ZWQgcmVsYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblJlbGF0aW9uU2VydmljZSxcclxuICAgICAgcHJpdmF0ZSBfc3VnZ2VzdGlvbnNTZXJ2aWNlOiBSZWxhdGlvblN1Z2dlc3Rpb25zU2VydmljZVxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbnNTZXJ2aWNlLmluaXQodGhpcy5fcmVsYXRpb24ucmVsYXRpb25UeXBlKTtcclxuICAgICAgICB0aGlzLl9yZWxhdGlvblN1YnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmNvbmZpZ1NldC5zdWJzY3JpYmUoKGNvbmZpZ09iamVjdHM6IE9iamVjdENvbmZpZ3VyYXRpb25bXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbmZpZ09iamVjdHMgJiYgY29uZmlnT2JqZWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yaWVzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25DbGllbnREYXRhSGVhZGVyKS5pbW1lZGlhdGVseVZpc2libGUoKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3JpZXMucHVzaCh0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldCgnQ0xJRU5UX0RBVEEnKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlJlbGF0aW9uUHJlZmVyZW5jZXNIZWFkZXIpLmltbWVkaWF0ZWx5VmlzaWJsZSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KCdQUklWQUNZX1BSRUZFUkVOQ0VTJykpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zU2VydmljZS5zdWdnZXN0ZWRSZWxhdGlvbkNsaWNrLnN1YnNjcmliZSgocmVsYXRpb246IFJlbGF0aW9uTGlzdE9iamVjdCkgPT4gdGhpcy5vblJlbGF0aW9uU3VnZ2VzdGlvbkNsaWNrKHJlbGF0aW9uKSlcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbiAmJiB0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8pIHtcclxuICAgICAgICAgICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9IHRoaXMuX3RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbkFkZHJlc3M7XHJcbiAgICAgICAgICAgIHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA9IHRoaXMuX3RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pbnZvaWNlQWRkcmVzcztcclxuICAgICAgICAgICAgdGhpcy5pbnZvaWNlQWRkcmVzc1NhbWVBc0RlbGl2ZXJ5QWRkcmVzcyA9IHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPT09IHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNhdGVnb3JpZXNbMF0gPT09IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KCdQUklWQUNZX1BSRUZFUkVOQ0VTJykpIHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVOYXZpZ2F0aW9uQ2xpY2soJ1BSSVZBQ1lfUFJFRkVSRU5DRVMnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgbmdPbkRlc3Ryb3koKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgdGhpcy5fcmVsYXRpb25TdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdWJtaXQoKTogYm9vbGVhbiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvcm1NYXN0ZXJTZXJ2aWNlLnN1Ym1pdFNsYXZlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyByZXF1ZXN0Q2hhbmdlQ3VzdG9tZXIoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgIGlmKHRoaXMuc2hvd01lc3NhZ2VGb3JDaGFuZ2VDdXN0b21lcikge1xyXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlOiBEaWFsb2dSZXNwb25zZUludGVyZmFjZSA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93WWVzTm8oJ0RFTEVURV9UUkFOU0FDVElPTicsICdERUxFVEVfQ1VTVE9NRVJfV0lMX0RFTEVURV9UUkFOU0FDVElPTicpO1xyXG4gICAgICAgIGNvbnN0IHNob3VsZERlbGV0ZTogYm9vbGVhbiA9IHJlc3BvbnNlLmJ1dHRvbiA9PT0gQXBwUG9wdXBCdXR0b25UeXBlLlllcztcclxuICAgICAgICBpZihzaG91bGREZWxldGUpIHtcclxuICAgICAgICAgIHRoaXMuY2hhbmdlQ3VzdG9tZXJSZXF1ZXN0ZWQubmV4dCgpO1xyXG4gICAgICAgICAgdGhpcy5mb3JjZVJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZm9yY2VSZWFkb25seSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIG9uUmVsYXRpb25TdWdnZXN0aW9uQ2xpY2socmVsYXRpb25TdWdnZXN0ZWQ6IFJlbGF0aW9uTGlzdE9iamVjdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGlmIChyZWxhdGlvblN1Z2dlc3RlZCkge1xyXG4gICAgICAgICAgICBjb25zdCBsb2NrUmVzdWx0OiBWYWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5yZWxhdGlvblNlcnZpY2UubG9ja1JlbGF0aW9uKHJlbGF0aW9uU3VnZ2VzdGVkLnJlbGF0aW9uVHlwZSwgcGFyc2VJbnQocmVsYXRpb25TdWdnZXN0ZWQucmVsYXRpb25OciwgMCkpO1xyXG4gICAgICAgICAgICBpZiAoIWxvY2tSZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dFcnJvcignUkVMQVRJT05fQUxSRUFEWV9MT0NLRUQnLCB0cnVlLCBsb2NrUmVzdWx0Lm1lc3NhZ2VzWzBdLm1lc3NhZ2UpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbnNTZXJ2aWNlLmhpZGVTaWRlYmFyKCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdWdnZXN0ZWRSZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gYXdhaXQgdGhpcy5yZWxhdGlvblNlcnZpY2UuZ2V0UmVsYXRpb24ocmVsYXRpb25TdWdnZXN0ZWQucmVsYXRpb25UeXBlLCBwYXJzZUludChyZWxhdGlvblN1Z2dlc3RlZC5yZWxhdGlvbk5yKSk7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3VnZ2VzdGVkUmVsYXRpb24gJiYgc3VnZ2VzdGVkUmVsYXRpb24uYWRkcmVzc2VzICYmIHN1Z2dlc3RlZFJlbGF0aW9uLmFkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3VnZ2VzdGVkUmVsYXRpb24uYWRkcmVzc2VzLnNvcnQoKGEsIGIpID0+IGEuc2VxdWVuY2UgPCBiLnNlcXVlbmNlID8gLTEgOiAxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMucmVsYXRpb24gPSBzdWdnZXN0ZWRSZWxhdGlvbjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgcmVsYXRpb25TZXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3JlbGF0aW9uLnJlbGF0aW9uVHlwZSA9PT0gUmVsYXRpb25LaW5kLkN1c3RvbWVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tZXJHcm91cCA9ICh0aGlzLl9yZWxhdGlvbiBhcyBDdXN0b21lckZ1bGxPYmplY3QpLmN1c3RvbWVyR3JvdXA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghdGhpcy5ub0xvY2tPbkN1c3RvbWVyU2V0KSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLl9sb2NrUmVsYXRpb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIHNldEluZGV4RGVsaXZlcnlBZGRyZXNzKG5hd05yOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBjb25zdCBhZGRyZXNzOiBBZGRyZXNzID0gdGhpcy5fcmVsYXRpb24uYWRkcmVzc2VzLmZpbmQoYSA9PiBhLm5hd05yID09PSBuYXdOcik7XHJcbiAgICAgICAgaWYgKGFkZHJlc3MgJiYgdGhpcy5fdHJhbnNhY3Rpb24gJiYgdGhpcy5fdHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQpIHtcclxuICAgICAgICAgICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9IG5hd05yO1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlSGVhZGVyRGVsaXZlcnlBZGRyZXNzKHRoaXMuX3RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkLCBuYXdOciwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgc2V0SW5kZXhJbnZvaWNlQWRkcmVzcyhuYXdOcjogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAgICAgY29uc3QgYWRkcmVzczogQWRkcmVzcyA9IHRoaXMuX3JlbGF0aW9uLmFkZHJlc3Nlcy5maW5kKGEgPT4gYS5uYXdOciA9PT0gbmF3TnIpO1xyXG4gICAgICBpZiAoYWRkcmVzcyAmJiB0aGlzLl90cmFuc2FjdGlvbiAmJiB0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCkge1xyXG4gICAgICAgICAgICB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgPSBuYXdOcjtcclxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZUhlYWRlckludm9pY2VBZGRyZXNzKHRoaXMuX3RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkLCBuYXdOciwgZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2hlY2tTYW1lQWRkcmVzcyhjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoZWNrZWQpIHtcclxuICAgICAgICAgICAgLy8gdGhpcy5lZGl0QWRkcmVzc1R5cGUgPSBBZGRyZXNzVHlwZS5EZWxpdmVyeUFkZHJlc3M7XHJcbiAgICAgICAgICAgIC8vIHRoaXMuc2VsZWN0QWRkcmVzcyh0aGlzLmRlbGl2ZXJ5QWRkcmVzcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVJbnB1dENoYW5nZShyZXF1ZXN0OiBSZWxhdGlvblN1Z2dlc3Rpb25zUmVxdWVzdCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlcXVlc3RGb3JTdWdnZXN0aW9ucyA9IE9iamVjdC5hc3NpZ24odGhpcy5fcmVxdWVzdEZvclN1Z2dlc3Rpb25zLCByZXF1ZXN0KTtcclxuICAgICAgICB0aGlzLl9zdWdnZXN0aW9uc1NlcnZpY2UucmVxdWVzdEZvclN1Z2dlc3Rpb25zID0gdGhpcy5fcmVxdWVzdEZvclN1Z2dlc3Rpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVOYXZpZ2F0aW9uQ2xpY2sobmF2OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgaWYgKG5hdiA9PT0gdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ0NMSUVOVF9EQVRBJykpIHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPSB0aGlzLm1haW5JdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLSB0aGlzLm5hdmlnYXRpb25JdGVtcy5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID0gdGhpcy5wcmVmZXJlbmNlSXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0IC0gdGhpcy5uYXZpZ2F0aW9uSXRlbXMubmF0aXZlRWxlbWVudC5vZmZzZXRMZWZ0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUNoYW5nZUN1c3RvbUdyb3VwKGdyb3VwOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1c3RvbWVyR3JvdXAgPSBncm91cDtcclxuICAgICAgICBpZiAodGhpcy5yZWxhdGlvbi5yZWxhdGlvblR5cGUgPT09IFJlbGF0aW9uS2luZC5DdXN0b21lcikge1xyXG4gICAgICAgICAgICAodGhpcy5yZWxhdGlvbiBhcyBDdXN0b21lckZ1bGxPYmplY3QpLmN1c3RvbWVyR3JvdXAgPSB0aGlzLmN1c3RvbWVyR3JvdXA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvblNldCgpIHtcclxuICAgICAgICAgaWYgKHRoaXMuX3RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mbykge1xyXG4gICAgICAgICAgICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9IHRoaXMuX3RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbkFkZHJlc3M7XHJcbiAgICAgICAgICAgICB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgPSB0aGlzLl90cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaW52b2ljZUFkZHJlc3M7XHJcbiAgICAgICAgICAgICB0aGlzLmludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnlBZGRyZXNzID0gdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9PT0gdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yO1xyXG4gICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0Rmlyc3RBZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkIHtcclxuICAgICAgICBhZGRyZXNzLnNlcXVlbmNlID0gMDtcclxuICAgICAgICBjb25zdCBhZGRyZXNzZXM6IEFkZHJlc3NbXSA9IHRoaXMucmVsYXRpb24uYWRkcmVzc2VzXHJcbiAgICAgICAgICAgIC5maWx0ZXIoYSA9PiBhLm5hd05yICE9PSBhZGRyZXNzLm5hd05yKVxyXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5zZXF1ZW5jZSA8IGIuc2VxdWVuY2UgPyAtMSA6IDEpO1xyXG4gICAgICAgIGxldCBzb3J0ZWRBZGRyZXNzZXM6IEFkZHJlc3NbXSA9IFthZGRyZXNzXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFkZHJlc3Nlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBhZGRyZXNzOiBBZGRyZXNzID0gYWRkcmVzc2VzW2ldO1xyXG4gICAgICAgICAgICBhZGRyZXNzLnNlcXVlbmNlID0gaSArIDE7XHJcbiAgICAgICAgICAgIHNvcnRlZEFkZHJlc3Nlcy5wdXNoKGFkZHJlc3MpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlcy5mb3JFYWNoKHJhID0+IHJhLnNlcXVlbmNlID0gc29ydGVkQWRkcmVzc2VzLmZpbmQoc2EgPT4gc2EubmF3TnIgPT09IHJhLm5hd05yKS5zZXF1ZW5jZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhc3luYyBfbG9ja1JlbGF0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGNvbnN0IGxvY2tSZXN1bHQ6IFZhbGlkYXRpb25SZXN1bHQgPSBhd2FpdCB0aGlzLnJlbGF0aW9uU2VydmljZS5sb2NrUmVsYXRpb24odGhpcy5yZWxhdGlvbi5yZWxhdGlvblR5cGUsIHBhcnNlSW50KHRoaXMucmVsYXRpb24ucmVsYXRpb25OdW1iZXIsIDApKTtcclxuICAgICAgICBpZiAoIWxvY2tSZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgICBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd0luZm9ybWF0aW9uKGxvY2tSZXN1bHQubWVzc2FnZXNbMF0ubWVzc2FnZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmZvcmNlUmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9yY2VSZWFkb25seSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -7,11 +7,13 @@ import { TransactionInfoResponse } from "@colijnit/transactionapi/build/model/tr
7
7
  import { TransactionRelationService } from "../../service/transaction-relation.service";
8
8
  import { Icon } from "../../enum/icon.enum";
9
9
  import { TransactionHeaderService } from "../core/base/service/transaction-header.service";
10
+ import { DialogService } from "../../service/dialog.service";
10
11
  export class TransactionCreateWizardComponent {
11
- constructor(createService, relationService, transactionScreenConfigurationService, _headerService) {
12
+ constructor(createService, relationService, transactionScreenConfigurationService, _dialogService, _headerService) {
12
13
  this.createService = createService;
13
14
  this.relationService = relationService;
14
15
  this.transactionScreenConfigurationService = transactionScreenConfigurationService;
16
+ this._dialogService = _dialogService;
15
17
  this._headerService = _headerService;
16
18
  this.transKind = TransactionKind;
17
19
  this.Icon = Icon;
@@ -37,6 +39,9 @@ export class TransactionCreateWizardComponent {
37
39
  set externallyProvidedCustomer(customer) {
38
40
  this._externallyProvidedCustomer = customer;
39
41
  }
42
+ set branch(branch) {
43
+ this._branch = branch;
44
+ }
40
45
  showClass() {
41
46
  return true;
42
47
  }
@@ -48,13 +53,11 @@ export class TransactionCreateWizardComponent {
48
53
  }
49
54
  }));
50
55
  yield this.createService.prepareAfterSalesSystemParam();
51
- if (this.createService.afterSalesSystemParam) {
52
- this.skipWizard();
53
- }
54
56
  yield this.transactionScreenConfigurationService.loadConfig(['S']);
55
57
  this.createService.transactionKind = this.transactionType;
56
58
  this.createService.createNewRelation();
57
59
  this.createService.initializeRelation();
60
+ this.createService.currentBranch = this._branch;
58
61
  this._processExternalSettings();
59
62
  this.isReady = true;
60
63
  });
@@ -66,7 +69,13 @@ export class TransactionCreateWizardComponent {
66
69
  }
67
70
  handleRelationValidation() {
68
71
  return __awaiter(this, void 0, void 0, function* () {
69
- let valid = this.relationSection.submit();
72
+ let valid = false;
73
+ if (!this.relationSection.relation || !this.relationSection.relation.addresses || this.relationSection.relation.addresses.length < 1) {
74
+ yield this._dialogService.showError('PLEASE_ADD_AT_LEAST_ONE_ADDRESS', true);
75
+ }
76
+ else {
77
+ valid = this.relationSection.submit();
78
+ }
70
79
  if (valid) {
71
80
  this.stepRelationSection.completed = yield this.createService.saveRelation(true, false);
72
81
  }
@@ -97,6 +106,10 @@ export class TransactionCreateWizardComponent {
97
106
  valid = true;
98
107
  this.stepTransactionSection.completed = true;
99
108
  }
109
+ //If we are indeed valid and moving on check if we need to display the wizard or skip the next step.
110
+ if (valid && this.createService.afterSalesSystemParam) {
111
+ this.skipWizard();
112
+ }
100
113
  return valid;
101
114
  });
102
115
  }
@@ -239,6 +252,7 @@ TransactionCreateWizardComponent.ctorParameters = () => [
239
252
  { type: TransactionCreateService },
240
253
  { type: TransactionRelationService },
241
254
  { type: TransactionScreenConfigurationService },
255
+ { type: DialogService },
242
256
  { type: TransactionHeaderService }
243
257
  ];
244
258
  TransactionCreateWizardComponent.propDecorators = {
@@ -254,7 +268,8 @@ TransactionCreateWizardComponent.propDecorators = {
254
268
  externallyProvidedTransaction: [{ type: Input }],
255
269
  externallyProvidedLineNr: [{ type: Input }],
256
270
  externallyProvidedCustomer: [{ type: Input }],
271
+ branch: [{ type: Input }],
257
272
  transactionFinished: [{ type: Output }],
258
273
  showClass: [{ type: HostBinding, args: ["class.co-transaction-create-wizard",] }]
259
274
  };
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tY3JlYXRlLXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1jcmVhdGUtd2l6YXJkL3RyYW5zYWN0aW9uLWNyZWF0ZS13aXphcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUkxRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQVdsRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUMxRyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUV0RixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHMUMsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUErQ3pGLE1BQU0sT0FBTyxnQ0FBZ0M7SUEyRTNDLFlBQW1CLGFBQXVDLEVBQ3ZDLGVBQTJDLEVBQzNDLHFDQUE0RSxFQUMzRSxjQUF3QztRQUh6QyxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFDdkMsb0JBQWUsR0FBZixlQUFlLENBQTRCO1FBQzNDLDBDQUFxQyxHQUFyQyxxQ0FBcUMsQ0FBdUM7UUFDM0UsbUJBQWMsR0FBZCxjQUFjLENBQTBCO1FBN0U1QyxjQUFTLEdBQTJCLGVBQWUsQ0FBQztRQUNwRCxTQUFJLEdBQWdCLElBQUksQ0FB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bUI7NEJBRzdCLFNBQVMsU0FBQyxlQUFlO3VDQUd6QixTQUFTLFNBQUMsMEJBQTBCO21DQUdwQyxTQUFTLFNBQUMsc0JBQXNCOzRDQUdoQyxLQUFLO3VDQU1MLEtBQUs7eUNBTUwsS0FBSztrQ0FPTCxNQUFNO3dCQU9OLFdBQVcsU0FBQyxvQ0FBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBSZWxhdGlvbkNvbXBvbmVudFxyXG59IGZyb20gXCIuLi90cmFuc2FjdGlvbi1oZWFkZXIvdHJhbnNhY3Rpb24taGVhZGVyLXBvcHVwL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC1yZWxhdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25DcmVhdGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jcmVhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1xyXG4gIFNlcnZpY2VXaXphcmRDcmVhdGVTZXJ2aWNlQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9zZXJ2aWNlLXdpemFyZC1jcmVhdGUtc2VydmljZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtcclxuICBTZXJ2aWNlV2l6YXJkUXVlc3Rpb25zQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9zZXJ2aWNlLXdpemFyZC1xdWVzdGlvbnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgU2VydmljZVdpemFyZFNlcnZpY2VGaWVsZHNDb21wb25lbnRcclxufSBmcm9tIFwiLi9jb21wb25lbnRzL3NlcnZpY2Utd2l6YXJkLXNlcnZpY2UtZmllbGRzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1N0ZXBwZXJTdGVwQ29tcG9uZW50fSBmcm9tIFwiLi4vc3RlcHBlci1zdGVwL3N0ZXBwZXItc3RlcC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTaW1wbGVWZXJ0aWNhbFN0ZXBwZXJDb21wb25lbnR9IGZyb20gXCIuLi9zaW1wbGUtdmVydGljYWwtc3RlcHBlci9jby1zaW1wbGUtdmVydGljYWwtc3RlcHBlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtRYVJlc3VsdH0gZnJvbSBcIi4uL3NlcnZpY2Utd2l6YXJkLXFhL3F1ZXN0aW9uLWFuc3dlci1pdGVtL3F1ZXN0aW9uLWFuc3dlci1pdGVtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyU2VydmljZX0gZnJvbSBcIi4uL2NvcmUvYmFzZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLWhlYWRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1JlbGF0aW9uQW55VHlwZX0gZnJvbSBcIi4uLy4uL21vZGVsL3JlbGF0aW9uLWFueS10eXBlXCI7XHJcbmltcG9ydCB7TlVMTF9DVVNUT01FUl9GVUxMX09CSkVDVH0gZnJvbSBcIkBjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9udWwtcmVsYXRpb24tb2JqZWN0XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWNyZWF0ZS13aXphcmRcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWNsaWNrLWJsb2NrPjwvY28tY2xpY2stYmxvY2s+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNSZWFkeVwiPlxyXG4gICAgICA8Y28tc2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXIgW3N0ZXBCdXR0b25MYWJlbHNdPVwiWydWb2xnZW5kZScsICdWb2xnZW5kZScsICdWb2xnZW5kZScsICdWb2xnZW5kZScsICdBZnJvbmRlbiddXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNzdGVwcGVyIFt0aXRsZUljb25dPVwiSWNvbi5TZXJ2aWNlQ2FydFJlZ3VsYXJcIiBbdGl0bGVdPVwiJ0NSRUFURV9TRVJWSUNFJyB8IGxvY2FsaXplXCIgW2RvTm90U2hvd09LT25TdGVwc109XCJbM11cIj5cclxuICAgICAgICA8Y28tc3RlcHBlci1zdGVwICAjc3RlcFJlbGF0aW9uU2VjdGlvbiBbaW5kZXhdPVwiMVwiIFtsYWJlbF09XCInUEVSU09OQUxfREFUQScgfCBsb2NhbGl6ZVwiICh2YWxpZGF0ZVN0ZXApPVwiaGFuZGxlUmVsYXRpb25WYWxpZGF0aW9uKClcIj5cclxuXHJcbiAgICAgICAgICA8Y28tc2VydmljZS13aXphcmQtcmVsYXRpb24gI3JlbGF0aW9uU2VjdGlvbiBbbm9Mb2NrT25DdXN0b21lclNldF09XCJub0xvY2tPbkN1c3RvbWVyU2V0XCIgW2ZvcmNlUmVhZG9ubHldPVwibm9Mb2NrT25DdXN0b21lclNldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwic3RlcFJlbGF0aW9uU2VjdGlvbi5zaG93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXRlZ29yeS1jb250ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWxhdGlvbildPVwiY3JlYXRlU2VydmljZS5yZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsodHJhbnNhY3Rpb24pXT1cImNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZvcmNlUmVhZG9ubHldPVwiKGNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkICE9PSB1bmRlZmluZWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dJbnZvaWNlQWRkcmVzc109XCJmYWxzZVwiIFtzaG93UHJpdmFjeV09XCJmYWxzZVwiIFtzaG93TWVzc2FnZUZvckNoYW5nZUN1c3RvbWVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlQ3VzdG9tZXJSZXF1ZXN0ZWQpPVwicmVzZXRXaXphcmQoKVwiXHJcbiAgICAgICAgICA+PC9jby1zZXJ2aWNlLXdpemFyZC1yZWxhdGlvbj5cclxuICAgICAgICA8L2NvLXN0ZXBwZXItc3RlcD5cclxuICAgICAgICA8Y28tc3RlcHBlci1zdGVwICAjc3RlcFRyYW5zYWN0aW9uU2VjdGlvbiBbaW5kZXhdPVwiMlwiIFtsYWJlbF09XCInSE9XX1RPX0NSRUFURV9TRVJWSUNFJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVUcmFuc2FjdGlvblZhbGlkYXRpb24oKVwiPlxyXG4gICAgICAgICAgPGNvLXNlcnZpY2Utd2l6YXJkLWNyZWF0ZS1zZXJ2aWNlICN0cmFuc2FjdGlvblNlY3Rpb24gW3JlbGF0aW9uXT1cImNyZWF0ZVNlcnZpY2UucmVsYXRpb25cIiBbZm9yY2VSZWFkb25seV09XCIoY3JlYXRlU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQgIT09IHVuZGVmaW5lZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGlzdGluZ1RyYW5zYWN0aW9uXT1cImV4aXN0aW5nVHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleGlzdGluZ1RyYW5zYWN0aW9uTGluZV09XCJleGlzdGluZ1RyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvbnNWaXNpYmxlXT1cImJ1dHRvbnNWaXNpYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWZ0ZXJTYWxlc1N5c3RlbV09XCJjcmVhdGVTZXJ2aWNlLmFmdGVyU2FsZXNTeXN0ZW1QYXJhbVwiPjwvY28tc2VydmljZS13aXphcmQtY3JlYXRlLXNlcnZpY2U+XHJcbiAgICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgICAgPGNvLXN0ZXBwZXItc3RlcCAgI3N0ZXBXaXphcmRTZWN0aW9uIFtpbmRleF09XCIzXCIgW2xhYmVsXT1cIidTRVJWSUNFX1dJWkFSRCcgfCBsb2NhbGl6ZVwiICh2YWxpZGF0ZVN0ZXApPVwiaGFuZGxlV2l6YXJkVmFsaWRhdGlvbigpXCI+XHJcbiAgICAgICAgICA8Y28tc2VydmljZS13aXphcmQtcXVlc3Rpb25zICN3aXphcmRTZWN0aW9uICh3aXphcmRGaW5pc2hlZCk9XCJ3aXphcmRGaW5pc2hlZCgpXCIgKHNraXBXaXphcmQpPVwic2tpcFdpemFyZCgpXCI+PC9jby1zZXJ2aWNlLXdpemFyZC1xdWVzdGlvbnM+XHJcbiAgICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgICAgPGNvLXN0ZXBwZXItc3RlcCAjc3RlcFNlcnZpY2VGaWVsZHNTZWN0aW9uIFtpbmRleF09XCI0XCIgW2xhYmVsXT1cIidTRVJWSUNFX0lORk8nIHwgbG9jYWxpemVcIiAodmFsaWRhdGVTdGVwKT1cImhhbmRsZVNlcnZpY2VJbmZvVmFsaWRhdGlvbigpXCI+XHJcbiAgICAgICAgICA8Y28tc2VydmljZS13aXphcmQtc2VydmljZS1maWVsZHMgI3NlcnZpY2VGaWVsZHNTZWN0aW9uPjwvY28tc2VydmljZS13aXphcmQtc2VydmljZS1maWVsZHM+XHJcbiAgICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgICAgPGNvLXN0ZXBwZXItc3RlcCAgW2luZGV4XT1cIjVcIiBbbGFiZWxdPVwiJ0ZJTklTSCcgfCBsb2NhbGl6ZVwiPlxyXG4gICAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICA8L2NvLXNpbXBsZS12ZXJ0aWNhbC1zdGVwcGVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOltUcmFuc2FjdGlvbkNyZWF0ZVNlcnZpY2UsIFRyYW5zYWN0aW9uSGVhZGVyU2VydmljZV0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25DcmVhdGVXaXphcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zS2luZDogdHlwZW9mIFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZDtcclxuICBwdWJsaWMgcmVhZG9ubHkgSWNvbjogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcHBlclwiKVxyXG4gIHB1YmxpYyBzdGVwcGVyOiBTaW1wbGVWZXJ0aWNhbFN0ZXBwZXJDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwUmVsYXRpb25TZWN0aW9uXCIpXHJcbiAgcHVibGljIHN0ZXBSZWxhdGlvblNlY3Rpb246IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwicmVsYXRpb25TZWN0aW9uXCIpXHJcbiAgcHVibGljIHJlbGF0aW9uU2VjdGlvbjogVHJhbnNhY3Rpb25IZWFkZXJQb3B1cFJlbGF0aW9uQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcFRyYW5zYWN0aW9uU2VjdGlvblwiKVxyXG4gIHB1YmxpYyBzdGVwVHJhbnNhY3Rpb25TZWN0aW9uOiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInRyYW5zYWN0aW9uU2VjdGlvblwiKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblNlY3Rpb246IFNlcnZpY2VXaXphcmRDcmVhdGVTZXJ2aWNlQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcFdpemFyZFNlY3Rpb25cIilcclxuICBwdWJsaWMgc3RlcFdpemFyZFNlY3Rpb246IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwid2l6YXJkU2VjdGlvblwiKVxyXG4gIHB1YmxpYyB3aXphcmRTZWN0aW9uOiBTZXJ2aWNlV2l6YXJkUXVlc3Rpb25zQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcFNlcnZpY2VGaWVsZHNTZWN0aW9uXCIpXHJcbiAgcHVibGljIHN0ZXBTZXJ2aWNlRmllbGRzU2VjdGlvbjogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzZXJ2aWNlRmllbGRzU2VjdGlvblwiKVxyXG4gIHB1YmxpYyBzZXJ2aWNlRmllbGRzU2VjdGlvbjogU2VydmljZVdpemFyZFNlcnZpY2VGaWVsZHNDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBleHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpXHJcbiAge1xyXG4gICAgdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBleHRlcm5hbGx5UHJvdmlkZWRMaW5lTnIobGluZU5yOiBudW1iZXIpXHJcbiAge1xyXG4gICAgdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkTGluZU5yID0gbGluZU5yO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGV4dGVybmFsbHlQcm92aWRlZEN1c3RvbWVyKGN1c3RvbWVyOiBDdXN0b21lckZ1bGxPYmplY3QpXHJcbiAge1xyXG4gICAgdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkQ3VzdG9tZXIgPSBjdXN0b21lcjtcclxuICB9XHJcblxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25GaW5pc2hlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgLy9UaGlzIGNhbiBiZSBhbiBpbnB1dCBvbmNlIHRoZSBjb21wb25lbnQgaXMgYWRqdXN0ZWQgdG8gd29yayB0byBjcmVhdGUgbW9yZSB0cmFuc2FjdGlvbnMuXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25LaW5kID0gVHJhbnNhY3Rpb25LaW5kLlNlcnZpY2VPcmRlcjtcclxuXHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWNyZWF0ZS13aXphcmRcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbm9Mb2NrT25DdXN0b21lclNldDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc1JlYWR5OmJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGV4aXN0aW5nVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlID0gbnVsbDtcclxuICBwdWJsaWMgZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8gPSBudWxsO1xyXG4gIHB1YmxpYyBidXR0b25zVmlzaWJsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgX2V4dGVybmFsbHlQcm92aWRlZFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfZXh0ZXJuYWxseVByb3ZpZGVkTGluZU5yOiBudW1iZXI7XHJcbiAgLy9mb3IgYnVuZGxlIHB1cm9zZXMgd2hlcmUgYW4gbmV3LCBub24gdHJhbnNhY3Rpb24gYmFzZWQsIHNlcnZpY2Ugc2hvdWxkIGFsd2F5cyBzdGFydCB3aXRoIHRoZSBjdXN0b21lciBhbHJlYWR5IHNldFxyXG4gIHByaXZhdGUgX2V4dGVybmFsbHlQcm92aWRlZEN1c3RvbWVyOiBDdXN0b21lckZ1bGxPYmplY3QgPSBudWxsO1xyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjcmVhdGVTZXJ2aWNlOiBUcmFuc2FjdGlvbkNyZWF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIHJlbGF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaGVhZGVyU2VydmljZTogVHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlXHJcblxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuY3JlYXRlU2VydmljZS50cmFuc2FjdGlvblVwZGF0ZWQuc3Vic2NyaWJlKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIGlmICh0cmFuc2FjdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJTZXJ2aWNlLnRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gICAgYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLnByZXBhcmVBZnRlclNhbGVzU3lzdGVtUGFyYW0oKTtcclxuICAgIGlmICh0aGlzLmNyZWF0ZVNlcnZpY2UuYWZ0ZXJTYWxlc1N5c3RlbVBhcmFtKSB7XHJcbiAgICAgdGhpcy5za2lwV2l6YXJkKCk7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UubG9hZENvbmZpZyhbJ1MnXSlcclxuICAgIHRoaXMuY3JlYXRlU2VydmljZS50cmFuc2FjdGlvbktpbmQgPSB0aGlzLnRyYW5zYWN0aW9uVHlwZTtcclxuICAgIHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVOZXdSZWxhdGlvbigpO1xyXG4gICAgdGhpcy5jcmVhdGVTZXJ2aWNlLmluaXRpYWxpemVSZWxhdGlvbigpO1xyXG4gICAgdGhpcy5fcHJvY2Vzc0V4dGVybmFsU2V0dGluZ3MoKTtcclxuICAgIHRoaXMuaXNSZWFkeSA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uRGVzdHJveSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlUmVsYXRpb25WYWxpZGF0aW9uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgbGV0IHZhbGlkOiBib29sZWFuID0gdGhpcy5yZWxhdGlvblNlY3Rpb24uc3VibWl0KCk7XHJcbiAgICBpZiAodmFsaWQpIHtcclxuICAgICAgdGhpcy5zdGVwUmVsYXRpb25TZWN0aW9uLmNvbXBsZXRlZCA9IGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5zYXZlUmVsYXRpb24odHJ1ZSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVRyYW5zYWN0aW9uVmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYoIXRoaXMuY3JlYXRlU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQpIHtcclxuICAgICAgaWYodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uZXhpc3RpbmdUcmFuc2FjdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5zdGVwVHJhbnNhY3Rpb25TZWN0aW9uLmNvbXBsZXRlZCA9IGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVTZXJ2aWNlT3JkZXJXaXRoVHJhbnNhY3Rpb25MaW5lKE51bWJlcih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5leGlzdGluZ1RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCksIE51bWJlcih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5leGlzdGluZ1RyYW5zYWN0aW9uTGluZS5saW5lTnIpKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlblRyYW5zYWN0aW9uTGluZSkge1xyXG4gICAgICAgICAgdGhpcy5zdGVwVHJhbnNhY3Rpb25TZWN0aW9uLmNvbXBsZXRlZCA9IGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVTZXJ2aWNlT3JkZXJXaXRoVHJhbnNhY3Rpb25MaW5lKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlblRyYW5zYWN0aW9uTGluZS50cmFuc2FjdGlvbklkLCB0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jaG9zZW5UcmFuc2FjdGlvbkxpbmUubGluZU51bWJlcik7XHJcbiAgICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jaG9zZW5BcnRpY2xlKSAge1xyXG4gICAgICAgIHZhbGlkID0gYXdhaXQgdGhpcy5fdmFsaWRhdGVGb3JBcnRpY2xlVHJhbnNhY3Rpb24oKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5vbGRPcmRlcklkICYmIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLm9sZEdvb2RJZCkge1xyXG4gICAgICAgIHRoaXMuc3RlcFRyYW5zYWN0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSAgYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VPcmRlck5yQW5kQXJ0aWNsZURlc2NyaXB0aW9uKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLm9sZE9yZGVySWQsIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLm9sZEdvb2RJZCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uc2xhUHJvZHVjdE5hbWUpIHtcclxuICAgICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU0xBKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLnNsYVByb2R1Y3ROYW1lKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFsaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZVdpemFyZFZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLndpemFyZFNlY3Rpb24uZ2V0UXVhUmVzdWx0KCkubGVuZ3RoICE9IDApIHtcclxuICAgICAgdmFsaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnN0ZXBXaXphcmRTZWN0aW9uLmNvbXBsZXRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2VydmljZUluZm9WYWxpZGF0aW9uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgLy9UT0RPIGFkZCBwcm9wZXIgdmFsaWRhdGlvbiBoZXJlIHNob3VsZCB0aGF0IGJlIG5lY2Vzc2FyeVxyXG4gICAgbGV0IHZhbGlkOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGlmKHZhbGlkICYmIHRoaXMuY3JlYXRlU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQpIHtcclxuICAgICAgdGhpcy5zdGVwU2VydmljZUZpZWxkc1NlY3Rpb24uY29tcGxldGVkID0gYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLnVwZGF0ZVNlcnZpY2VIZWFkZXJSZXBvcnRNZXNzYWdlKHRoaXMuc2VydmljZUZpZWxkc1NlY3Rpb24uc2VydmljZU1lc3NhZ2UsIHRydWUpO1xyXG4gICAgfVxyXG4gICAgYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLnNhdmVUcmFuc2FjdGlvbigpO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkZpbmlzaGVkLm5leHQodGhpcy5jcmVhdGVTZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25Ocik7XHJcbiAgICByZXR1cm4gdmFsaWQ7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGFzeW5jIHdpemFyZEZpbmlzaGVkKCk6ICBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGxldCBxYVJlc3VsdDogUWFSZXN1bHRbXSA9IHRoaXMud2l6YXJkU2VjdGlvbi5nZXRRdWFSZXN1bHQoKTtcclxuICAgIGlmIChxYVJlc3VsdCAmJiBxYVJlc3VsdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBxYVRleHQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgICAgIGxldCBxYUNhdXNlQ29kZTogc3RyaW5nO1xyXG4gICAgICBsZXQgcWFTZXJ2aWNlVHlwZTogc3RyaW5nO1xyXG4gICAgICBxYVJlc3VsdC5mb3JFYWNoKHFhID0+IHtcclxuICAgICAgICBpZiAocWEuY2F1c2VDb2RlICE9IG51bGwgJiYgcWEuY2F1c2VDb2RlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgcWFDYXVzZUNvZGUgPSBxYS5jYXVzZUNvZGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChxYS5zZXJ2aWNlVHlwZSAhPSBudWxsICYmIHFhLnNlcnZpY2VUeXBlICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgcWFTZXJ2aWNlVHlwZSA9IHFhLnNlcnZpY2VUeXBlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBxYVRleHQgKz0gKHFhLnF1ZXN0aW9uVGV4dCArIFwiXFxuXCIpO1xyXG4gICAgICAgIHFhVGV4dCArPSAocWEuYW5zd2VyVGV4dCArIFwiXFxuXCIpO1xyXG4gICAgICB9KVxyXG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2UudXBkYXRlU2VydmljZUhlYWRlcldpemFyZERhdGEocWFDYXVzZUNvZGUsIHFhU2VydmljZVR5cGUsIHFhVGV4dCwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0ZXBwZXIuY29udGludWVSZXF1ZXN0ZWQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBza2lwV2l6YXJkKCk6ICB2b2lkIHtcclxuICAgIHRoaXMuc3RlcHBlci5za2lwU3RlcHMgPSBbM107XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzZXRXaXphcmQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm5vTG9ja09uQ3VzdG9tZXJTZXQgPSB0cnVlO1xyXG4gICAgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZU5ld1JlbGF0aW9uKCk7XHJcbiAgICB0aGlzLmNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jbGVhcigpO1xyXG4gICAgdGhpcy5zdGVwcGVyLm9wZW5Ub0luZGV4KDEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfdmFsaWRhdGVGb3JBcnRpY2xlVHJhbnNhY3Rpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jaG9zZW5BcnRpY2xlKSB7XHJcbiAgICAgIHZhbGlkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zdGVwVHJhbnNhY3Rpb25TZWN0aW9uLmNvbXBsZXRlZCA9IGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU291cmNlR29vZCh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jaG9zZW5BcnRpY2xlLmdvb2RJZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YWxpZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbGlkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfcHJvY2Vzc0V4dGVybmFsU2V0dGluZ3MoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZih0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbiAmJiAhaXNOYU4odGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkTGluZU5yKSkge1xyXG4gICAgICAvL2ZldGNoIHJlbGF0aW9uIGFuZCBjcmVhdGUgbmVlZGVkIHRyYW5zYWN0aW9uIGZpcnN0LlxyXG4gICAgICB0aGlzLm5vTG9ja09uQ3VzdG9tZXJTZXQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmV4aXN0aW5nVHJhbnNhY3Rpb24gPSAgdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb247XHJcbiAgICAgIHRoaXMuZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmUgPSAgdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5maW5kKGwgPT4gbC5saW5lTnIgPT09IHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZExpbmVOcik7XHJcbiAgICAgIHRoaXMuYnV0dG9uc1Zpc2libGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jcmVhdGVTZXJ2aWNlLnJlbGF0aW9uID0gYXdhaXQgdGhpcy5yZWxhdGlvblNlcnZpY2UuZ2V0Q3VzdG9tZXJGdWxsT2JqZWN0KHBhcnNlSW50KHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5yZWxhdGlvbi5yZWxhdGlvbk5yKSk7XHJcblxyXG4gICAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2UuY3JlYXRlU2VydmljZU9yZGVyV2l0aFRyYW5zYWN0aW9uTGluZShOdW1iZXIodGhpcy5leGlzdGluZ1RyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCksIE51bWJlcih0aGlzLmV4aXN0aW5nVHJhbnNhY3Rpb25MaW5lLmxpbmVOcikpO1xyXG4gICAgICBpZih0aGlzLnN0ZXBwZXIuc2tpcFN0ZXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLnN0ZXBwZXIub3BlblRvSW5kZXgoNCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zdGVwcGVyLm9wZW5Ub0luZGV4KDMpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZEN1c3RvbWVyKSB7XHJcbiAgICAgIHRoaXMubm9Mb2NrT25DdXN0b21lclNldCA9IHRydWU7XHJcbiAgICAgIHRoaXMuY3JlYXRlU2VydmljZS5yZWxhdGlvbiA9IHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZEN1c3RvbWVyO1xyXG4gICAgICB0aGlzLnN0ZXBwZXIub3BlblRvSW5kZXgoMik7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
275
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tY3JlYXRlLXdpemFyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1jcmVhdGUtd2l6YXJkL3RyYW5zYWN0aW9uLWNyZWF0ZS13aXphcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUkxRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQVdsRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUMxRyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUV0RixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHMUMsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFHekYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBMkMzRCxNQUFNLE9BQU8sZ0NBQWdDO0lBaUYzQyxZQUFtQixhQUF1QyxFQUN2QyxlQUEyQyxFQUMzQyxxQ0FBNEUsRUFDM0UsY0FBNkIsRUFDN0IsY0FBd0M7UUFKekMsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBQ3ZDLG9CQUFlLEdBQWYsZUFBZSxDQUE0QjtRQUMzQywwQ0FBcUMsR0FBckMscUNBQXFDLENBQXVDO1FBQzNFLG1CQUFjLEdBQWQsY0FBYyxDQUFl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LGFBQWEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDO2dCQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3QjtRQUNILENBQUM7S0FBQTs7O1lBelJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsOEJBQThCO2dCQUN4QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUNUO2dCQUNELFNBQVMsRUFBQyxDQUFDLHdCQUF3QixFQUFFLHdCQUF3QixDQUFDO2dCQUM5RCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBOURPLHdCQUF3QjtZQVl4QiwwQkFBMEI7WUFiMUIscUNBQXFDO1lBcUJyQyxhQUFhO1lBSGIsd0JBQXdCOzs7c0JBa0Q3QixTQUFTLFNBQUMsU0FBUztrQ0FHbkIsU0FBUyxTQUFDLHFCQUFxQjs4QkFHL0IsU0FBUyxTQUFDLGlCQUFpQjtxQ0FHM0IsU0FBUyxTQUFDLHdCQUF3QjtpQ0FHbEMsU0FBUyxTQUFDLG9CQUFvQjtnQ0FHOUIsU0FBUyxTQUFDLG1CQUFtQjs0QkFHN0IsU0FBUyxTQUFDLGVBQWU7dUNBR3pCLFNBQVMsU0FBQywwQkFBMEI7bUNBR3BDLFNBQVMsU0FBQyxzQkFBc0I7NENBR2hDLEtBQUs7dUNBTUwsS0FBSzt5Q0FNTCxLQUFLO3FCQU1MLEtBQUs7a0NBTUwsTUFBTTt3QkFPTixXQUFXLFNBQUMsb0NBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtcclxuICBUcmFuc2FjdGlvbkhlYWRlclBvcHVwUmVsYXRpb25Db21wb25lbnRcclxufSBmcm9tIFwiLi4vdHJhbnNhY3Rpb24taGVhZGVyL3RyYW5zYWN0aW9uLWhlYWRlci1wb3B1cC90cmFuc2FjdGlvbi1oZWFkZXItcG9wdXAtcmVsYXRpb24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ3JlYXRlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tY3JlYXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtcclxuICBTZXJ2aWNlV2l6YXJkQ3JlYXRlU2VydmljZUNvbXBvbmVudFxyXG59IGZyb20gXCIuL2NvbXBvbmVudHMvc2VydmljZS13aXphcmQtY3JlYXRlLXNlcnZpY2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgU2VydmljZVdpemFyZFF1ZXN0aW9uc0NvbXBvbmVudFxyXG59IGZyb20gXCIuL2NvbXBvbmVudHMvc2VydmljZS13aXphcmQtcXVlc3Rpb25zLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1xyXG4gIFNlcnZpY2VXaXphcmRTZXJ2aWNlRmllbGRzQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9zZXJ2aWNlLXdpemFyZC1zZXJ2aWNlLWZpZWxkcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtTdGVwcGVyU3RlcENvbXBvbmVudH0gZnJvbSBcIi4uL3N0ZXBwZXItc3RlcC9zdGVwcGVyLXN0ZXAuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1yZWxhdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U2ltcGxlVmVydGljYWxTdGVwcGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vc2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXIvY28tc2ltcGxlLXZlcnRpY2FsLXN0ZXBwZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7UWFSZXN1bHR9IGZyb20gXCIuLi9zZXJ2aWNlLXdpemFyZC1xYS9xdWVzdGlvbi1hbnN3ZXItaXRlbS9xdWVzdGlvbi1hbnN3ZXItaXRlbS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2V9IGZyb20gXCIuLi9jb3JlL2Jhc2Uvc2VydmljZS90cmFuc2FjdGlvbi1oZWFkZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1jcmVhdGUtd2l6YXJkXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1jbGljay1ibG9jaz48L2NvLWNsaWNrLWJsb2NrPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUmVhZHlcIj5cclxuICAgICAgPGNvLXNpbXBsZS12ZXJ0aWNhbC1zdGVwcGVyIFtzdGVwQnV0dG9uTGFiZWxzXT1cIlsnVm9sZ2VuZGUnLCAnVm9sZ2VuZGUnLCAnVm9sZ2VuZGUnLCAnVm9sZ2VuZGUnLCAnQWZyb25kZW4nXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjc3RlcHBlciBbdGl0bGVJY29uXT1cIkljb24uU2VydmljZUNhcnRSZWd1bGFyXCIgW3RpdGxlXT1cIidDUkVBVEVfU0VSVklDRScgfCBsb2NhbGl6ZVwiIFtkb05vdFNob3dPS09uU3RlcHNdPVwiWzNdXCI+XHJcbiAgICAgICAgPGNvLXN0ZXBwZXItc3RlcCAgI3N0ZXBSZWxhdGlvblNlY3Rpb24gW2luZGV4XT1cIjFcIiBbbGFiZWxdPVwiJ1BFUlNPTkFMX0RBVEEnIHwgbG9jYWxpemVcIiAodmFsaWRhdGVTdGVwKT1cImhhbmRsZVJlbGF0aW9uVmFsaWRhdGlvbigpXCI+XHJcblxyXG4gICAgICAgICAgPGNvLXNlcnZpY2Utd2l6YXJkLXJlbGF0aW9uICNyZWxhdGlvblNlY3Rpb24gW25vTG9ja09uQ3VzdG9tZXJTZXRdPVwibm9Mb2NrT25DdXN0b21lclNldFwiIFtmb3JjZVJlYWRvbmx5XT1cIm5vTG9ja09uQ3VzdG9tZXJTZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInN0ZXBSZWxhdGlvblNlY3Rpb24uc2hvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2F0ZWdvcnktY29udGVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cImNyZWF0ZVNlcnZpY2UucmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHRyYW5zYWN0aW9uKV09XCJjcmVhdGVTZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JjZVJlYWRvbmx5XT1cIihjcmVhdGVTZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCAhPT0gdW5kZWZpbmVkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93SW52b2ljZUFkZHJlc3NdPVwiZmFsc2VcIiBbc2hvd1ByaXZhY3ldPVwiZmFsc2VcIiBbc2hvd01lc3NhZ2VGb3JDaGFuZ2VDdXN0b21lcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZUN1c3RvbWVyUmVxdWVzdGVkKT1cInJlc2V0V2l6YXJkKClcIlxyXG4gICAgICAgICAgPjwvY28tc2VydmljZS13aXphcmQtcmVsYXRpb24+XHJcbiAgICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgICAgPGNvLXN0ZXBwZXItc3RlcCAgI3N0ZXBUcmFuc2FjdGlvblNlY3Rpb24gW2luZGV4XT1cIjJcIiBbbGFiZWxdPVwiJ0hPV19UT19DUkVBVEVfU0VSVklDRScgfCBsb2NhbGl6ZVwiICh2YWxpZGF0ZVN0ZXApPVwiaGFuZGxlVHJhbnNhY3Rpb25WYWxpZGF0aW9uKClcIj5cclxuICAgICAgICAgIDxjby1zZXJ2aWNlLXdpemFyZC1jcmVhdGUtc2VydmljZSAjdHJhbnNhY3Rpb25TZWN0aW9uIFtyZWxhdGlvbl09XCJjcmVhdGVTZXJ2aWNlLnJlbGF0aW9uXCIgW2ZvcmNlUmVhZG9ubHldPVwiKGNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkICE9PSB1bmRlZmluZWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXhpc3RpbmdUcmFuc2FjdGlvbl09XCJleGlzdGluZ1RyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmVdPVwiZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidXR0b25zVmlzaWJsZV09XCJidXR0b25zVmlzaWJsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FmdGVyU2FsZXNTeXN0ZW1dPVwiY3JlYXRlU2VydmljZS5hZnRlclNhbGVzU3lzdGVtUGFyYW1cIj48L2NvLXNlcnZpY2Utd2l6YXJkLWNyZWF0ZS1zZXJ2aWNlPlxyXG4gICAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICAgIDxjby1zdGVwcGVyLXN0ZXAgICNzdGVwV2l6YXJkU2VjdGlvbiBbaW5kZXhdPVwiM1wiIFtsYWJlbF09XCInU0VSVklDRV9XSVpBUkQnIHwgbG9jYWxpemVcIiAodmFsaWRhdGVTdGVwKT1cImhhbmRsZVdpemFyZFZhbGlkYXRpb24oKVwiPlxyXG4gICAgICAgICAgPGNvLXNlcnZpY2Utd2l6YXJkLXF1ZXN0aW9ucyAjd2l6YXJkU2VjdGlvbiAod2l6YXJkRmluaXNoZWQpPVwid2l6YXJkRmluaXNoZWQoKVwiIChza2lwV2l6YXJkKT1cInNraXBXaXphcmQoKVwiPjwvY28tc2VydmljZS13aXphcmQtcXVlc3Rpb25zPlxyXG4gICAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICAgIDxjby1zdGVwcGVyLXN0ZXAgI3N0ZXBTZXJ2aWNlRmllbGRzU2VjdGlvbiBbaW5kZXhdPVwiNFwiIFtsYWJlbF09XCInU0VSVklDRV9JTkZPJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVTZXJ2aWNlSW5mb1ZhbGlkYXRpb24oKVwiPlxyXG4gICAgICAgICAgPGNvLXNlcnZpY2Utd2l6YXJkLXNlcnZpY2UtZmllbGRzICNzZXJ2aWNlRmllbGRzU2VjdGlvbj48L2NvLXNlcnZpY2Utd2l6YXJkLXNlcnZpY2UtZmllbGRzPlxyXG4gICAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICAgIDxjby1zdGVwcGVyLXN0ZXAgIFtpbmRleF09XCI1XCIgW2xhYmVsXT1cIidGSU5JU0gnIHwgbG9jYWxpemVcIj5cclxuICAgICAgICA8L2NvLXN0ZXBwZXItc3RlcD5cclxuICAgICAgPC9jby1zaW1wbGUtdmVydGljYWwtc3RlcHBlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICBgLFxyXG4gIHByb3ZpZGVyczpbVHJhbnNhY3Rpb25DcmVhdGVTZXJ2aWNlLCBUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2VdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQ3JlYXRlV2l6YXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc0tpbmQ6IHR5cGVvZiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgcHVibGljIHJlYWRvbmx5IEljb246IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBwZXJcIilcclxuICBwdWJsaWMgc3RlcHBlcjogU2ltcGxlVmVydGljYWxTdGVwcGVyQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcFJlbGF0aW9uU2VjdGlvblwiKVxyXG4gIHB1YmxpYyBzdGVwUmVsYXRpb25TZWN0aW9uOiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInJlbGF0aW9uU2VjdGlvblwiKVxyXG4gIHB1YmxpYyByZWxhdGlvblNlY3Rpb246IFRyYW5zYWN0aW9uSGVhZGVyUG9wdXBSZWxhdGlvbkNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBUcmFuc2FjdGlvblNlY3Rpb25cIilcclxuICBwdWJsaWMgc3RlcFRyYW5zYWN0aW9uU2VjdGlvbjogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJ0cmFuc2FjdGlvblNlY3Rpb25cIilcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25TZWN0aW9uOiBTZXJ2aWNlV2l6YXJkQ3JlYXRlU2VydmljZUNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBXaXphcmRTZWN0aW9uXCIpXHJcbiAgcHVibGljIHN0ZXBXaXphcmRTZWN0aW9uOiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcIndpemFyZFNlY3Rpb25cIilcclxuICBwdWJsaWMgd2l6YXJkU2VjdGlvbjogU2VydmljZVdpemFyZFF1ZXN0aW9uc0NvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBTZXJ2aWNlRmllbGRzU2VjdGlvblwiKVxyXG4gIHB1YmxpYyBzdGVwU2VydmljZUZpZWxkc1NlY3Rpb246IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic2VydmljZUZpZWxkc1NlY3Rpb25cIilcclxuICBwdWJsaWMgc2VydmljZUZpZWxkc1NlY3Rpb246IFNlcnZpY2VXaXphcmRTZXJ2aWNlRmllbGRzQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKVxyXG4gIHtcclxuICAgIHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZFRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgZXh0ZXJuYWxseVByb3ZpZGVkTGluZU5yKGxpbmVOcjogbnVtYmVyKVxyXG4gIHtcclxuICAgIHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZExpbmVOciA9IGxpbmVOcjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBleHRlcm5hbGx5UHJvdmlkZWRDdXN0b21lcihjdXN0b21lcjogQ3VzdG9tZXJGdWxsT2JqZWN0KVxyXG4gIHtcclxuICAgIHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZEN1c3RvbWVyID0gY3VzdG9tZXI7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYnJhbmNoIChicmFuY2g6IHN0cmluZykge1xyXG4gICAgdGhpcy5fYnJhbmNoID0gYnJhbmNoO1xyXG4gIH1cclxuXHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkZpbmlzaGVkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAvL1RoaXMgY2FuIGJlIGFuIGlucHV0IG9uY2UgdGhlIGNvbXBvbmVudCBpcyBhZGp1c3RlZCB0byB3b3JrIHRvIGNyZWF0ZSBtb3JlIHRyYW5zYWN0aW9ucy5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQuU2VydmljZU9yZGVyO1xyXG5cclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tY3JlYXRlLXdpemFyZFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBub0xvY2tPbkN1c3RvbWVyU2V0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzUmVhZHk6Ym9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZXhpc3RpbmdUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBudWxsO1xyXG4gIHB1YmxpYyBleGlzdGluZ1RyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyA9IG51bGw7XHJcbiAgcHVibGljIGJ1dHRvbnNWaXNpYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHJpdmF0ZSBfYnJhbmNoOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlID0gbnVsbDtcclxuICBwcml2YXRlIF9leHRlcm5hbGx5UHJvdmlkZWRMaW5lTnI6IG51bWJlcjtcclxuICAvL2ZvciBidW5kbGUgcHVyb3NlcyB3aGVyZSBhbiBuZXcsIG5vbiB0cmFuc2FjdGlvbiBiYXNlZCwgc2VydmljZSBzaG91bGQgYWx3YXlzIHN0YXJ0IHdpdGggdGhlIGN1c3RvbWVyIGFscmVhZHkgc2V0XHJcbiAgcHJpdmF0ZSBfZXh0ZXJuYWxseVByb3ZpZGVkQ3VzdG9tZXI6IEN1c3RvbWVyRnVsbE9iamVjdCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGNyZWF0ZVNlcnZpY2U6IFRyYW5zYWN0aW9uQ3JlYXRlU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgcmVsYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblJlbGF0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgX2hlYWRlclNlcnZpY2U6IFRyYW5zYWN0aW9uSGVhZGVyU2VydmljZVxyXG5cclxuICApIHtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLmNyZWF0ZVNlcnZpY2UudHJhbnNhY3Rpb25VcGRhdGVkLnN1YnNjcmliZSgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5faGVhZGVyU2VydmljZS50cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgKTtcclxuICAgIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5wcmVwYXJlQWZ0ZXJTYWxlc1N5c3RlbVBhcmFtKCk7XHJcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UubG9hZENvbmZpZyhbJ1MnXSlcclxuICAgIHRoaXMuY3JlYXRlU2VydmljZS50cmFuc2FjdGlvbktpbmQgPSB0aGlzLnRyYW5zYWN0aW9uVHlwZTtcclxuICAgIHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVOZXdSZWxhdGlvbigpO1xyXG4gICAgdGhpcy5jcmVhdGVTZXJ2aWNlLmluaXRpYWxpemVSZWxhdGlvbigpO1xyXG4gICAgdGhpcy5jcmVhdGVTZXJ2aWNlLmN1cnJlbnRCcmFuY2ggPSB0aGlzLl9icmFuY2g7XHJcbiAgICB0aGlzLl9wcm9jZXNzRXh0ZXJuYWxTZXR0aW5ncygpO1xyXG4gICAgdGhpcy5pc1JlYWR5ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25EZXN0cm95KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVSZWxhdGlvblZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmKCF0aGlzLnJlbGF0aW9uU2VjdGlvbi5yZWxhdGlvbiB8fCAhdGhpcy5yZWxhdGlvblNlY3Rpb24ucmVsYXRpb24uYWRkcmVzc2VzIHx8IHRoaXMucmVsYXRpb25TZWN0aW9uLnJlbGF0aW9uLmFkZHJlc3Nlcy5sZW5ndGggPCAxKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0Vycm9yKCdQTEVBU0VfQUREX0FUX0xFQVNUX09ORV9BRERSRVNTJywgdHJ1ZSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkID0gdGhpcy5yZWxhdGlvblNlY3Rpb24uc3VibWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc3RlcFJlbGF0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2Uuc2F2ZVJlbGF0aW9uKHRydWUsIGZhbHNlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVUcmFuc2FjdGlvblZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmKCF0aGlzLmNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkKSB7XHJcbiAgICAgIGlmKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmV4aXN0aW5nVHJhbnNhY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuc3RlcFRyYW5zYWN0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2UuY3JlYXRlU2VydmljZU9yZGVyV2l0aFRyYW5zYWN0aW9uTGluZShOdW1iZXIodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uZXhpc3RpbmdUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpLCBOdW1iZXIodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmUubGluZU5yKSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jaG9zZW5UcmFuc2FjdGlvbkxpbmUpIHtcclxuICAgICAgICAgIHRoaXMuc3RlcFRyYW5zYWN0aW9uU2VjdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2UuY3JlYXRlU2VydmljZU9yZGVyV2l0aFRyYW5zYWN0aW9uTGluZSh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5jaG9zZW5UcmFuc2FjdGlvbkxpbmUudHJhbnNhY3Rpb25JZCwgdGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY2hvc2VuVHJhbnNhY3Rpb25MaW5lLmxpbmVOdW1iZXIpO1xyXG4gICAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvblNlY3Rpb24uY2hvc2VuQXJ0aWNsZSkgIHtcclxuICAgICAgICB2YWxpZCA9IGF3YWl0IHRoaXMuX3ZhbGlkYXRlRm9yQXJ0aWNsZVRyYW5zYWN0aW9uKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy50cmFuc2FjdGlvblNlY3Rpb24ub2xkT3JkZXJJZCAmJiB0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5vbGRHb29kSWQpIHtcclxuICAgICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU291cmNlT3JkZXJOckFuZEFydGljbGVEZXNjcmlwdGlvbih0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5vbGRPcmRlcklkLCB0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5vbGRHb29kSWQpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLnNsYVByb2R1Y3ROYW1lKSB7XHJcbiAgICAgICAgdGhpcy5zdGVwVHJhbnNhY3Rpb25TZWN0aW9uLmNvbXBsZXRlZCA9ICBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2UuY3JlYXRlU2VydmljZU9yZGVyV2l0aFNMQSh0aGlzLnRyYW5zYWN0aW9uU2VjdGlvbi5zbGFQcm9kdWN0TmFtZSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zdGVwVHJhbnNhY3Rpb25TZWN0aW9uLmNvbXBsZXRlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy9JZiB3ZSBhcmUgaW5kZWVkIHZhbGlkIGFuZCBtb3Zpbmcgb24gY2hlY2sgaWYgd2UgbmVlZCB0byBkaXNwbGF5IHRoZSB3aXphcmQgb3Igc2tpcCB0aGUgbmV4dCBzdGVwLlxyXG4gICAgaWYodmFsaWQgJiYgdGhpcy5jcmVhdGVTZXJ2aWNlLmFmdGVyU2FsZXNTeXN0ZW1QYXJhbSkge1xyXG4gICAgICB0aGlzLnNraXBXaXphcmQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFsaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlV2l6YXJkVmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMud2l6YXJkU2VjdGlvbi5nZXRRdWFSZXN1bHQoKS5sZW5ndGggIT0gMCkge1xyXG4gICAgICB2YWxpZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuc3RlcFdpemFyZFNlY3Rpb24uY29tcGxldGVkID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTZXJ2aWNlSW5mb1ZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAvL1RPRE8gYWRkIHByb3BlciB2YWxpZGF0aW9uIGhlcmUgc2hvdWxkIHRoYXQgYmUgbmVjZXNzYXJ5XHJcbiAgICBsZXQgdmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgaWYodmFsaWQgJiYgdGhpcy5jcmVhdGVTZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCkge1xyXG4gICAgICB0aGlzLnN0ZXBTZXJ2aWNlRmllbGRzU2VjdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2UudXBkYXRlU2VydmljZUhlYWRlclJlcG9ydE1lc3NhZ2UodGhpcy5zZXJ2aWNlRmllbGRzU2VjdGlvbi5zZXJ2aWNlTWVzc2FnZSwgdHJ1ZSk7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlcnZpY2Uuc2F2ZVRyYW5zYWN0aW9uKCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRmluaXNoZWQubmV4dCh0aGlzLmNyZWF0ZVNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbk5yKTtcclxuICAgIHJldHVybiB2YWxpZDtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgd2l6YXJkRmluaXNoZWQoKTogIFByb21pc2U8dm9pZD4ge1xyXG4gICAgbGV0IHFhUmVzdWx0OiBRYVJlc3VsdFtdID0gdGhpcy53aXphcmRTZWN0aW9uLmdldFF1YVJlc3VsdCgpO1xyXG4gICAgaWYgKHFhUmVzdWx0ICYmIHFhUmVzdWx0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IHFhVGV4dDogc3RyaW5nID0gXCJcIjtcclxuICAgICAgbGV0IHFhQ2F1c2VDb2RlOiBzdHJpbmc7XHJcbiAgICAgIGxldCBxYVNlcnZpY2VUeXBlOiBzdHJpbmc7XHJcbiAgICAgIHFhUmVzdWx0LmZvckVhY2gocWEgPT4ge1xyXG4gICAgICAgIGlmIChxYS5jYXVzZUNvZGUgIT0gbnVsbCAmJiBxYS5jYXVzZUNvZGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBxYUNhdXNlQ29kZSA9IHFhLmNhdXNlQ29kZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHFhLnNlcnZpY2VUeXBlICE9IG51bGwgJiYgcWEuc2VydmljZVR5cGUgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICBxYVNlcnZpY2VUeXBlID0gcWEuc2VydmljZVR5cGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHFhVGV4dCArPSAocWEucXVlc3Rpb25UZXh0ICsgXCJcXG5cIik7XHJcbiAgICAgICAgcWFUZXh0ICs9IChxYS5hbnN3ZXJUZXh0ICsgXCJcXG5cIik7XHJcbiAgICAgIH0pXHJcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS51cGRhdGVTZXJ2aWNlSGVhZGVyV2l6YXJkRGF0YShxYUNhdXNlQ29kZSwgcWFTZXJ2aWNlVHlwZSwgcWFUZXh0LCB0cnVlKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RlcHBlci5jb250aW51ZVJlcXVlc3RlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNraXBXaXphcmQoKTogIHZvaWQge1xyXG4gICAgdGhpcy5zdGVwcGVyLnNraXBTdGVwcyA9IFszXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXNldFdpemFyZCgpOiB2b2lkIHtcclxuICAgIHRoaXMubm9Mb2NrT25DdXN0b21lclNldCA9IHRydWU7XHJcbiAgICB0aGlzLmNyZWF0ZVNlcnZpY2UuY3JlYXRlTmV3UmVsYXRpb24oKTtcclxuICAgIHRoaXMuY3JlYXRlU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UoKTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNsZWFyKCk7XHJcbiAgICB0aGlzLnN0ZXBwZXIub3BlblRvSW5kZXgoMSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF92YWxpZGF0ZUZvckFydGljbGVUcmFuc2FjdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGxldCB2YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlbkFydGljbGUpIHtcclxuICAgICAgdmFsaWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnN0ZXBUcmFuc2FjdGlvblNlY3Rpb24uY29tcGxldGVkID0gYXdhaXQgdGhpcy5jcmVhdGVTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VHb29kKHRoaXMudHJhbnNhY3Rpb25TZWN0aW9uLmNob3NlbkFydGljbGUuZ29vZElkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbGlkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsaWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9wcm9jZXNzRXh0ZXJuYWxTZXR0aW5ncygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmKHRoaXMuX2V4dGVybmFsbHlQcm92aWRlZFRyYW5zYWN0aW9uICYmICFpc05hTih0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRMaW5lTnIpKSB7XHJcbiAgICAgIC8vZmV0Y2ggcmVsYXRpb24gYW5kIGNyZWF0ZSBuZWVkZWQgdHJhbnNhY3Rpb24gZmlyc3QuXHJcbiAgICAgIHRoaXMubm9Mb2NrT25DdXN0b21lclNldCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZXhpc3RpbmdUcmFuc2FjdGlvbiA9ICB0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbjtcclxuICAgICAgdGhpcy5leGlzdGluZ1RyYW5zYWN0aW9uTGluZSA9ICB0aGlzLl9leHRlcm5hbGx5UHJvdmlkZWRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzLmZpbmQobCA9PiBsLmxpbmVOciA9PT0gdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkTGluZU5yKTtcclxuICAgICAgdGhpcy5idXR0b25zVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNyZWF0ZVNlcnZpY2UucmVsYXRpb24gPSBhd2FpdCB0aGlzLnJlbGF0aW9uU2VydmljZS5nZXRDdXN0b21lckZ1bGxPYmplY3QocGFyc2VJbnQodGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnJlbGF0aW9uLnJlbGF0aW9uTnIpKTtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMuY3JlYXRlU2VydmljZS5jcmVhdGVTZXJ2aWNlT3JkZXJXaXRoVHJhbnNhY3Rpb25MaW5lKE51bWJlcih0aGlzLmV4aXN0aW5nVHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKSwgTnVtYmVyKHRoaXMuZXhpc3RpbmdUcmFuc2FjdGlvbkxpbmUubGluZU5yKSk7XHJcbiAgICAgIGlmKHRoaXMuc3RlcHBlci5za2lwU3RlcHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuc3RlcHBlci5vcGVuVG9JbmRleCg0KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnN0ZXBwZXIub3BlblRvSW5kZXgoMyk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkQ3VzdG9tZXIpIHtcclxuICAgICAgdGhpcy5ub0xvY2tPbkN1c3RvbWVyU2V0ID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jcmVhdGVTZXJ2aWNlLnJlbGF0aW9uID0gdGhpcy5fZXh0ZXJuYWxseVByb3ZpZGVkQ3VzdG9tZXI7XHJcbiAgICAgIHRoaXMuc3RlcHBlci5vcGVuVG9JbmRleCgyKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19