@aggdirect/coolmap 2.2.0 → 2.3.0

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.
@@ -178,7 +178,6 @@ export class AddRouteComponent {
178
178
  this.preventInitialSave = false;
179
179
  }
180
180
  });
181
- console.log(this.addRouteForm.value);
182
181
  this.filterCustomerList();
183
182
  await true;
184
183
  }
@@ -194,7 +193,6 @@ export class AddRouteComponent {
194
193
  delivery_lat_lng: (event.geometry.coordinates[1] + ',' + event.geometry.coordinates[0]).toString()
195
194
  });
196
195
  }
197
- console.log('test>>>>>>>>>>>>>>>>>>>>>>>>192');
198
196
  this.checkAndFetchRouteInformation();
199
197
  }
200
198
  checkAndFetchRouteInformation(isinitial) {
@@ -315,4 +313,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
315
313
  }], customerRepoDetails: [{
316
314
  type: Input
317
315
  }] } });
318
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJvdXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAvc3JjL2xpYi9jb21wb25lbnQvYWRkLXJvdXRlL2FkZC1yb3V0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb29sbWFwL3NyYy9saWIvY29tcG9uZW50L2FkZC1yb3V0ZS9hZGQtcm91dGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQTRCLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkosT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3JILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVFwRSxNQUFNLE9BQU8saUJBQWlCO0lBeUI1QixZQUFtQixjQUE4QixFQUFTLEtBQW1CLEVBQVMsTUFBaUIsRUFDdkUsTUFBMEI7UUFEdkMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUFTLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDdkUsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUF2QnpDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3ZDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMvRCxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixvQkFBZSxHQUFRLEVBQUUsQ0FBQztR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QUFTLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO2dCQUMvQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQzthQUN6QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7UUFDSCxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDMUMsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7OzhHQXhRVSxpQkFBaUIscUdBMEJsQixZQUFZO2tHQTFCWCxpQkFBaUIsb2JDYjlCLCtsT0E0SUE7MkZEL0hhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxlQUFlOzswQkE4QnRCLE1BQU07MkJBQUMsWUFBWTs0Q0F6QlksWUFBWTtzQkFBN0MsU0FBUzt1QkFBQyxjQUFjO2dCQUNXLGNBQWM7c0JBQWpELFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUNWLFNBQVM7c0JBQXpCLE1BQU07Z0JBQ1UsZUFBZTtzQkFBL0IsTUFBTTtnQkFRUyxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLG1CQUFtQjtzQkFBbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBTaW1wbGVDaGFuZ2VzLCBPbkNoYW5nZXMsIElucHV0LCBPbkRlc3Ryb3ksIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZyb21FdmVudCwgbWFwLCBPYnNlcnZhYmxlLCBzdGFydFdpdGgsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IENvb2xtYXBDb25maWdNb2RlbCwgQ29vbG1hcFNlcnZpY2UsIEN1c3RvbWVyUmVwb0RldGFpbHNNb2RlbCwgUm91dGUsIFV0aWxzU2VydmljZSB9IGZyb20gJ0BhZ2dkaXJlY3QvY29vbG1hcC1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1hZGQtcm91dGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLXJvdXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLXJvdXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQWRkUm91dGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnZmlsdGVyUGlja3VwJykgcHVibGljIGZpbHRlclBpY2t1cCE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlckRlbGl2ZXJ5JykgcHVibGljIGZpbHRlckRlbGl2ZXJ5ITogRWxlbWVudFJlZjtcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VOYXYgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyB1cGRhdGVSb3V0ZUxpc3QgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIHBpY2t1cE9wdGlvbnM6IGFueSA9IFtdO1xuICBkZWxpdmVyeU9wdGlvbnM6IGFueSA9IFtdO1xuICByZXF1ZXN0UGFybXNGb3JSb3V0ZURldGFpbHMgPSB7IHBpY2t1cF9sYXRfbG5nOiAnJywgZGVsaXZlcnlfbGF0X2xuZzogJycgfVxuICBjdXN0b21lcnNMaXN0OiBhbnkgPSBbXTtcbiAgdW5pdHNMaXN0OiBhbnkgPSBbXTtcbiAgbWF0ZXJpYWxzTGlzdDogYW55ID0gW107XG4gIGFkZFJvdXRlRm9ybSE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIHJvdXRlRGF0YSE6IFJvdXRlO1xuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tZXJSZXBvRGV0YWlscyE6IEN1c3RvbWVyUmVwb0RldGFpbHNNb2RlbDtcbiAgcm91dGVJZDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgcHJldmVudFNhdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJldmVudEluaXRpYWxTYXZlOiBib29sZWFuID0gZmFsc2U7XG4gIGN1c3RvbWVyc0xpc3QkITogT2JzZXJ2YWJsZTxhbnk+O1xuICByb3V0ZURldGFpbHMhOiB7IHBpY2t1cF9sb2NhdGlvbjogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDsgZGVsaXZlcnlfbG9jYXRpb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7IH0gfCBudWxsO1xuICBwdWJsaWMgZGVzdHJveWVyJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHBvcHVwRGV0YWlsczogUm91dGU7XG4gIGVuYWJsZVBvcFVwOiBib29sZWFuID0gZmFsc2U7XG4gIHByZXZhbnRQb3B1cENsb3NlID0gZmFsc2U7XG4gIGVuYWJsZUZvcm06IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgY29vbE1hcFNlcnZpY2U6IENvb2xtYXBTZXJ2aWNlLCBwdWJsaWMgdXRpbHM6IFV0aWxzU2VydmljZSwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIEBJbmplY3QoJ21lbWJlckRhdGEnKSBwcml2YXRlIGNvbmZpZzogQ29vbG1hcENvbmZpZ01vZGVsKSB7XG4gICAgdGhpcy51dGlscy5mZXRjaE1hdGVyaWFsc0xpc3QoKS50aGVuKChyZXMpPT57XG4gICAgICB0aGlzLm1hdGVyaWFsc0xpc3QgPSByZXM7XG4gICAgfSk7XG4gICAgdGhpcy51dGlscy5mZXRjaFVuaXRzTGlzdCgpLnRoZW4oKHJlcyk9PntcbiAgICAgIHRoaXMudW5pdHNMaXN0ID0gcmVzO1xuICAgIH0pO1xuICAgIHRoaXMuZm9ybUluaXQoKTtcbiAgICB0aGlzLnV0aWxzLmdldHJvdXRlRGV0YWlsc1V0aWxpdHkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICBpZiAocmVzKSB7XG4gICAgICAgIGlmIChyZXNbJ2V2ZW50J10gIT09ICdjbGljaycgJiYgIXRoaXMucHJldmFudFBvcHVwQ2xvc2UpIHsgdGhpcy5lbmFibGVQb3BVcCA9IHJlc1snZXZlbnQnXSB9XG4gICAgICAgIGVsc2UgaWYgKHRoaXMuZW5hYmxlUG9wVXAgJiYgIXRoaXMucHJldmFudFBvcHVwQ2xvc2UpIHsgdGhpcy5wcmV2YW50UG9wdXBDbG9zZSA9IHRydWU7IH1cbiAgICAgICAgaWYgKHJlc1snZXZlbnQnXSAhPT0gJ2NsaWNrJyAmJiAhcmVzWydldmVudCddICYmIHRoaXMucHJldmFudFBvcHVwQ2xvc2UpIHtcbiAgICAgICAgICB0aGlzLnBvcHVwRGV0YWlscyA9IHRoaXMudXRpbHMuZ2V0ZGljdFZhbHVlKCdyb3V0ZS1kZXRhaWxzdjInKTtcbiAgICAgICAgfSBlbHNlIHsgdGhpcy5wb3B1cERldGFpbHMgPSByZXNbJ3JvdXRlJ10gfVxuICAgICAgICBpZiAodGhpcy5lbmFibGVQb3BVcCkgdGhpcy5wb3B1cERldGFpbHNbJ2NyZWF0ZWRfYXQnXSA9IHRoaXMudXRpbHMuZ2V0RGF0ZUZvcm1hdChuZXcgRGF0ZSh0aGlzLnBvcHVwRGV0YWlsc1snY3JlYXRlZF9hdCddKSwgJy8nKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBmaWx0ZXJDdXN0b21lckxpc3QoKSB7XG4gICAgdGhpcy5jdXN0b21lcnNMaXN0JCA9IHRoaXMuYWRkUm91dGVGb3JtLmNvbnRyb2xzWydjdXN0b21lcl9uYW1lJ10udmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgbWFwKHZhbHVlID0+IHRoaXMuX2ZpbHRlcih2YWx1ZSB8fCAnJykpLFxuICAgICk7XG4gIH1cbiAgcHVibGljIF9maWx0ZXIodmFsdWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tZXJzTGlzdC5maWx0ZXIoKG9wdGlvbjogYW55KSA9PiBvcHRpb25bJ2N1c3RvbWVyX25hbWUnXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSk7XG4gIH1cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydyb3V0ZURhdGEnXSAmJiAhY2hhbmdlc1sncm91dGVEYXRhJ11bJ2N1cnJlbnRWYWx1ZSddKSB0aGlzLmluSXQobnVsbCk7XG4gIH1cbiAgb3BlbkRpYWxvZygpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YTogeyBib2R5OiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGlzIHJvdXRlPycgfSxcbiAgICB9KTtcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzID0+IHsgaWYgKHJlcykgeyB0aGlzLmRlbGV0ZVJvdXRlKCkgfSB9KTtcbiAgfVxuICBlZGl0RXZlbnQoKSB7XG4gICAgdGhpcy5wcmV2YW50UG9wdXBDbG9zZSA9IGZhbHNlO1xuICAgIHRoaXMuZW5hYmxlRm9ybSA9IHRydWU7IHRoaXMuZW5hYmxlUG9wVXAgPSBmYWxzZTtcbiAgICB0aGlzLnBvcHVwRGV0YWlsc1sncHJldmVudCddID0gZmFsc2U7XG4gICAgdGhpcy51dGlscy5yZW1vdmVNYXBFbnRpdHkubmV4dCh0aGlzLnBvcHVwRGV0YWlscyk7XG4gICAgdGhpcy5pbkl0KHRoaXMucG9wdXBEZXRhaWxzKTtcbiAgfVxuICBpbkl0KGNoYW5nZXM6IFJvdXRlKSB7XG4gICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgIGlmICghY2hhbmdlc1sncHJldmVudCddKSB7XG4gICAgICAgIHRoaXMucHJldmVudFNhdmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbFZhbHVlKCk7XG4gICAgICAgIHRoaXMucGF0Y2hGb3JtVmFsdWUoY2hhbmdlcykudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGVja0FuZEZldGNoUm91dGVJbmZvcm1hdGlvbih0cnVlKVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFjaGFuZ2VzKSB7XG4gICAgICB0aGlzLmVuYWJsZUZvcm0gPSB0cnVlOyB0aGlzLnByZXZlbnRTYXZlID0gdHJ1ZTtcbiAgICAgIHRoaXMucGF0Y2hGb3JtVmFsdWUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5jaGVja0FuZEZldGNoUm91dGVJbmZvcm1hdGlvbigpXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbHVlKCk7XG4gICAgaWYgKHRoaXMuY29uZmlnLnJlcG9zaXRvcnkgPT09ICdjdXN0b21lcicpIHtcbiAgICAgIHRoaXMuYWRkUm91dGVGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBjdXN0b21lcl9pZDogdGhpcy5jdXN0b21lclJlcG9EZXRhaWxzLmN1c3RvbWVyLmlkLFxuICAgICAgICBjdXN0b21lcl9uYW1lOiB0aGlzLmN1c3RvbWVyUmVwb0RldGFpbHMuY3VzdG9tZXIubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXRpbHMuZmV0Y2hDdXN0b21lcnNMaXN0KCkudGhlbigocmVzKT0+e1xuICAgICAgICB0aGlzLmN1c3RvbWVyc0xpc3QgPSByZXM7IHRoaXMuZmlsdGVyQ3VzdG9tZXJMaXN0KCk7IHRoaXMuYWRkUm91dGVGb3JtLmNvbnRyb2xzWydjdXN0b21lcl9uYW1lJ10uZW5hYmxlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgZnJvbUV2ZW50KHRoaXMuZmlsdGVyUGlja3VwLm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBkZWJvdW5jZVRpbWUoMTUwKSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZXIkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy51dGlscy5mZXRjaEF1dG9Db21wbGV0ZUxvY2F0aW9ucyh0aGlzLmZpbHRlclBpY2t1cC5uYXRpdmVFbGVtZW50LnZhbHVlKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llciQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5waWNrdXBPcHRpb25zID0gcmVzLmZlYXR1cmVzO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgZnJvbUV2ZW50KHRoaXMuZmlsdGVyRGVsaXZlcnkubmF0aXZlRWxlbWVudCwgJ2tleXVwJykucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIGRlYm91bmNlVGltZSgxNTApKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llciQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnV0aWxzLmZldGNoQXV0b0NvbXBsZXRlTG9jYXRpb25zKHRoaXMuZmlsdGVyRGVsaXZlcnkubmF0aXZlRWxlbWVudC52YWx1ZSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZXIkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZGVsaXZlcnlPcHRpb25zID0gcmVzLmZlYXR1cmVzO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZm9ybUNvbnRyb2xWYWx1ZSgpIHtcbiAgICB0aGlzLmFkZFJvdXRlRm9ybS5jb250cm9sc1sncGlja3VwX2xvY2F0aW9uJ10/LnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llciQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICBpZiAodGhpcy5hZGRSb3V0ZUZvcm0udmFsdWUucGlja3VwX2xvY2F0aW9uICYmIHJlcyAhPT0gdGhpcy5hZGRSb3V0ZUZvcm0udmFsdWUucGlja3VwX2xvY2F0aW9uKSB7XG4gICAgICAgIHRoaXMuYWRkUm91dGVGb3JtLnBhdGNoVmFsdWUoeyBwaWNrdXBfbGF0X2xuZzogJycgfSk7XG4gICAgICAgIHRoaXMuYWRkUm91dGVGb3JtLmNvbnRyb2xzWydwaWNrdXBfbGF0X2xuZyddLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuYWRkUm91dGVGb3JtLmNvbnRyb2xzWydkZWxpdmVyeV9sb2NhdGlvbiddPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZXIkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgaWYgKHRoaXMuYWRkUm91dGVGb3JtLnZhbHVlLmRlbGl2ZXJ5X2xvY2F0aW9uICYmIHJlcyAhPT0gdGhpcy5hZGRSb3V0ZUZvcm0udmFsdWUuZGVsaXZlcnlfbG9jYXRpb24pIHtcbiAgICAgICAgdGhpcy5hZGRSb3V0ZUZvcm0ucGF0Y2hWYWx1ZSh7IGRlbGl2ZXJ5X2xhdF9sbmc6ICcnIH0pO1xuICAgICAgICB0aGlzLmFkZFJvdXRlRm9ybS5jb250cm9sc1snZGVsaXZlcnlfbGF0X2xuZyddLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGZvcm1Jbml0KCkge1xuICAgIHRoaXMuYWRkUm91dGVGb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICByb3V0ZV9uYW1lOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICBjdXN0b21lcl9uYW1lOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICBjdXN0b21lcl9pZDogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgIG1hdGVyaWFsc19pZDogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgdW5pdF9pZDogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgcGF0aDogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgcGlja3VwX2xvY2F0aW9uOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICBwaWNrdXBfbGF0X2xuZzogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgZGVsaXZlcnlfbG9jYXRpb246IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIGRlbGl2ZXJ5X2xhdF9sbmc6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIGVzdGltYXRlZF9kaXN0YW5jZTogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgZXN0aW1hdGVkX3RpbWU6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIG5vdGU6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwNDgpXSksXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBwYXRjaEZvcm1WYWx1ZShkYXRhPzogUm91dGUpIHtcbiAgICB0aGlzLmFkZFJvdXRlRm9ybS5yZXNldCgpO1xuICAgIHRoaXMuYWRkUm91dGVGb3JtLnBhdGNoVmFsdWUoZGF0YSEpO1xuICAgIHRoaXMucm91dGVJZCA9IGRhdGE/LnJvdXRlX2lkO1xuICAgIHRoaXMucm91dGVEZXRhaWxzID0gZGF0YSA/IHsgcGlja3VwX2xvY2F0aW9uOiBkYXRhLnBpY2t1cF9sb2NhdGlvbiwgZGVsaXZlcnlfbG9jYXRpb246IGRhdGEuZGVsaXZlcnlfbG9jYXRpb24gfSA6IG51bGw7XG4gICAgdGhpcy5hZGRSb3V0ZUZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVyJCkpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgaWYgKHJlcykgeyBpZiAodGhpcy5wcmV2ZW50SW5pdGlhbFNhdmUpIHRoaXMucHJldmVudEluaXRpYWxTYXZlID0gZmFsc2UgfVxuICAgIH0pO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuYWRkUm91dGVGb3JtLnZhbHVlKTtcbiAgICB0aGlzLmZpbHRlckN1c3RvbWVyTGlzdCgpO1xuICAgIGF3YWl0IHRydWU7XG4gIH1cblxuICBzZWxlY3RlZExvbmdMYXQodHlwZTogc3RyaW5nLCBldmVudDogYW55KSB7XG4gICAgaWYgKHR5cGUgPT09ICdwaWNrdXAnKSB7XG4gICAgICB0aGlzLmFkZFJvdXRlRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgcGlja3VwX2xhdF9sbmc6IChldmVudC5nZW9tZXRyeS5jb29yZGluYXRlc1sxXSArICcsJyArIGV2ZW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdKS50b1N0cmluZygpXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY29vbE1hcFNlcnZpY2UuY2xlYXJCb3VuZFdpdGhDb3JkaW5hdGVzKCk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnZGVsaXZlcnknKSB7XG4gICAgICB0aGlzLmFkZFJvdXRlRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgZGVsaXZlcnlfbGF0X2xuZzogKGV2ZW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdICsgJywnICsgZXZlbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0pLnRvU3RyaW5nKClcbiAgICAgIH0pXG4gICAgfVxuICAgIGNvbnNvbGUubG9nKCd0ZXN0Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+MTkyJyk7XG5cbiAgICB0aGlzLmNoZWNrQW5kRmV0Y2hSb3V0ZUluZm9ybWF0aW9uKCk7XG4gIH1cblxuICBjaGVja0FuZEZldGNoUm91dGVJbmZvcm1hdGlvbihpc2luaXRpYWw/OiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuYWRkUm91dGVGb3JtLnZhbHVlPy5kZWxpdmVyeV9sYXRfbG5nPy5sZW5ndGggPiAwICYmIHRoaXMuYWRkUm91dGVGb3JtLnZhbHVlPy5waWNrdXBfbGF0X2xuZz8ubGVuZ3RoID4gMCAmJiB0aGlzLmFkZFJvdXRlRm9ybS52YWx1ZS51bml0X2lkKSB7XG4gICAgICBsZXQgdW5pdCA9IHRoaXMudW5pdHNMaXN0LmZpbmQoKHg6IGFueSkgPT4geC5pZCA9PT0gdGhpcy5hZGRSb3V0ZUZvcm0udmFsdWUudW5pdF9pZCk7XG4gICAgICBjb25zdCBwYXJhbSA9IHtcbiAgICAgICAgZGVsaXZlcnlfbGF0X2xuZzogdGhpcy5hZGRSb3V0ZUZvcm0udmFsdWUuZGVsaXZlcnlfbGF0X2xuZyxcbiAgICAgICAgcGlja3VwX2xhdF9sbmc6IHRoaXMuYWRkUm91dGVGb3JtLnZhbHVlLnBpY2t1cF9sYXRfbG5nLFxuICAgICAgICB1bml0OiB1bml0Py50eXBlXG4gICAgICB9O1xuICAgICAgdGhpcy51dGlscy5wb3N0ZGF0YSgnY2FsY3VsYXRlL3JvdXRlcy9lc3RpbWF0aW9uJywgcGFyYW0pLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVyJCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlcyAmJiByZXNbJ3BhdGgnXSkge1xuICAgICAgICAgIHRoaXMuYWRkUm91dGVGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgZXN0aW1hdGVkX2Rpc3RhbmNlOiByZXMuZGlzdCwgZXN0aW1hdGVkX3RpbWU6IHJlcy50aW1lLCBwYXRoOiByZXMucGF0aFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGxldCBwYXRoID0gcmVzWydwYXRoJ10uc3BsaXQoJzsnKTtcbiAgICAgICAgICBwYXRoID0gcGF0aC5tYXAoKGVsZTogc3RyaW5nIHwgYW55KSA9PiB7IHJldHVybiBlbGUgPSB0aGlzLmZvcm1hdGVMYXRMb25nKGVsZSkgfSk7XG4gICAgICAgICAgcmVzWydwYXRoJ10gPSBwYXRoO1xuICAgICAgICAgIGNvbnN0IGVsZW1lbnQ6IGFueSA9IHtcbiAgICAgICAgICAgIHR5cGU6ICdGZWF0dXJlQ29sbGVjdGlvbicsXG4gICAgICAgICAgICBmZWF0dXJlczogW3sgdHlwZTogJ0ZlYXR1cmUnLCBwcm9wZXJ0aWVzOiB7fSwgZ2VvbWV0cnk6IHsgdHlwZTogJ0xpbmVTdHJpbmcnLCBjb29yZGluYXRlczogcmVzWydwYXRoJ10gfSB9XVxuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmNvb2xNYXBTZXJ2aWNlLnJlbW92ZVJvdXRlQW5kTWFya2VyKDEpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdW5pdCA9IHRoaXMudW5pdHNMaXN0LmZpbmQoKHg6IGFueSkgPT4geC5pZCA9PT0gdGhpcy5hZGRSb3V0ZUZvcm0udmFsdWUudW5pdF9pZCk7XG4gICAgICAgICAgICBjb25zdCBtYXRlcmlhbERldGFpbHMgPSB0aGlzLm1hdGVyaWFsc0xpc3QuZmluZCgoeDogYW55KSA9PiB4Lm1hdGVyaWFsX2lkID09PSB0aGlzLmFkZFJvdXRlRm9ybS52YWx1ZS5tYXRlcmlhbHNfaWQpO1xuICAgICAgICAgICAgdGhpcy5jb29sTWFwU2VydmljZS5sb2FkTWFwUHJvcGVydHkoZWxlbWVudCwgMSwgdW5pdD8udHlwZSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHBpY2t1cF9sb2NhdGlvbjogdGhpcy5hZGRSb3V0ZUZvcm0uZ2V0KCdwaWNrdXBfbG9jYXRpb24nKT8udmFsdWUsXG4gICAgICAgICAgICAgICAgZGVsaXZlcnlfbG9jYXRpb246IHRoaXMuYWRkUm91dGVGb3JtLmdldCgnZGVsaXZlcnlfbG9jYXRpb24nKT8udmFsdWUsXG4gICAgICAgICAgICAgICAgcm91dGVfbmFtZTogdGhpcy5hZGRSb3V0ZUZvcm0uZ2V0KCdyb3V0ZV9uYW1lJyk/LnZhbHVlLFxuICAgICAgICAgICAgICAgIG1hdGVyaWFsOiBtYXRlcmlhbERldGFpbHM/Lm1hdGVyaWFsLCB1bml0OiB1bml0Py50eXBlXG4gICAgICAgICAgICAgIH0pLnRoZW4oKHJlcykgPT4geyB0aGlzLnByZXZlbnRTYXZlID0gdHJ1ZSB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNvb2xNYXBTZXJ2aWNlLnJlbW92ZVJvdXRlQW5kTWFya2VyKDEpO1xuICAgICAgICAgIHRoaXMudXRpbHMub3BlblNuYWNrQmFyKHJlc1snc3RhdHVzJ10sICdlcnJvcicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJvdXRlSWQgJiYgaXNpbml0aWFsKSB0aGlzLnByZXZlbnRJbml0aWFsU2F2ZSA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgeyB0aGlzLmNvb2xNYXBTZXJ2aWNlLnJlbW92ZVJvdXRlQW5kTWFya2VyKDEpIH1cbiAgfVxuXG4gIGZvcm1hdGVMYXRMb25nKGxhdGxvbmc6IHN0cmluZykgeyByZXR1cm4gbGF0bG9uZyA/IGxhdGxvbmcuc3BsaXQoJywnKS5tYXAoeCA9PiAreCkucmV2ZXJzZSgpIDogbnVsbCB9XG4gIHNhdmVSb3V0ZSgpIHtcbiAgICBpZiAodGhpcy5hZGRSb3V0ZUZvcm0udmFsaWQpIHtcbiAgICAgIHRoaXMucHJldmVudFNhdmUgPSBmYWxzZTtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmFkZFJvdXRlRm9ybS5nZXRSYXdWYWx1ZSgpO1xuICAgICAgZGF0YVsndHJ1Y2tlcl9wYXlfZXN0aW1hdGUnXSA9IG51bGw7XG4gICAgICBkYXRhWydjdXN0b21lcl9wcmljZV9lc3RpbWF0ZSddID0gbnVsbDtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMucm91dGVJZCA/IHRoaXMudXRpbHMucG9zdGRhdGEoJ3VwZGF0ZS9yb3V0ZXMnLCBkYXRhKSA6IHRoaXMudXRpbHMucG9zdGRhdGEoJ2FkZC9yb3V0ZXMnLCBkYXRhKVxuICAgICAgaWYgKHRoaXMucm91dGVJZCkgZGF0YVsnaWQnXSA9IHRoaXMucm91dGVJZDtcbiAgICAgIHVybC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llciQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgIGlmIChyZXMuc3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMudXBkYXRlUm91dGVMaXN0LmVtaXQodHJ1ZSk7XG4gICAgICAgICAgdGhpcy51dGlscy5vcGVuU25hY2tCYXIocmVzLm1lc3NhZ2UsICdzdWNjZXNzJyk7XG4gICAgICAgICAgdGhpcy5wcmV2ZW50SW5pdGlhbFNhdmUgPSB0cnVlO1xuICAgICAgICAgIHRoaXMucHJldmVudFNhdmUgPSB0cnVlO1xuICAgICAgICAgIGlmICghdGhpcy5yb3V0ZUlkKSB0aGlzLmNoYW5nZU5hdi5uZXh0KCdBZGRyb3V0ZScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMudXRpbHMub3BlblNuYWNrQmFyKHJlcy5tZXNzYWdlLCAnZXJyb3InKTtcbiAgICAgICAgICB0aGlzLnByZXZlbnRTYXZlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSwgKGVycikgPT4geyBpZiAoZXJyKSB7IHRoaXMucHJldmVudFNhdmUgPSB0cnVlOyB9IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkZFJvdXRlRm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgfVxuICB9XG4gIGRlbGV0ZVJvdXRlKCkge1xuICAgIHRoaXMucHJldmVudFNhdmUgPSBmYWxzZTtcbiAgICB0aGlzLnV0aWxzLnBvc3RkYXRhKCdkZWxldGUvcm91dGVzJywgeyB1dWlkOiB0aGlzLnJvdXRlSWQgfSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICBpZiAocmVzWydkYXRhJ11bJ3N1Y2Nlc3MnXSkge1xuICAgICAgICB0aGlzLnV0aWxzLm9wZW5TbmFja0JhcihyZXNbJ2RhdGEnXVsnbWVzc2FnZSddLCAnc3VjY2VzcycpO1xuICAgICAgICB0aGlzLnVwZGF0ZVJvdXRlTGlzdC5lbWl0KHRydWUpO1xuICAgICAgICB0aGlzLmNoYW5nZU5hdi5uZXh0KCdBZGRyb3V0ZScpO1xuICAgICAgICB0aGlzLnByZXZlbnRJbml0aWFsU2F2ZSA9IHRydWU7XG4gICAgICAgIHRoaXMucHJldmVudFNhdmUgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy51dGlscy5vcGVuU25hY2tCYXIoJ1NvbXRoaW5nIHdlbnQgd3JvbmcnLCAnZXJyb3InKTtcbiAgICAgICAgdGhpcy5wcmV2ZW50U2F2ZSA9IHRydWU7XG4gICAgICB9XG4gICAgfSwgKGVycikgPT4geyB0aGlzLnByZXZlbnRTYXZlID0gdHJ1ZSB9KVxuICB9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveWVyJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuZGVzdHJveWVyJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYWRkcm91dGVib3hcIj5cbiAgPGRpdiBjbGFzcz1cInJvdXRlZGV0YWlsYm94XCIgKm5nSWY9XCJlbmFibGVQb3BVcFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjbG9zZWJ0bnJvdXRlZGV0YWlsXCI+XG4gICAgICA8bWF0LWljb24gKGNsaWNrKT1cInByZXZhbnRQb3B1cENsb3NlID0gZmFsc2U7IGVuYWJsZVBvcFVwID0gZmFsc2U7XCI+Y2xlYXI8L21hdC1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkZXN0aW5hdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cImR1cmF0aW9uXCI+XG4gICAgICAgIDxwIGNsYXNzPVwicGlja3BydFwiPjxiPlBpY2t1cDo8L2I+e3twb3B1cERldGFpbHNbJ3BpY2t1cF9sb2NhdGlvbiddfX08L3A+XG4gICAgICAgIDxwIGNsYXNzPVwiZHJvcHBydFwiPjxiPkRlbGl2ZXJ5OjwvYj57e3BvcHVwRGV0YWlsc1snZGVsaXZlcnlfbG9jYXRpb24nXX19PC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3Bhbj48Yj5OYW1lOjwvYj4ge3twb3B1cERldGFpbHNbJ3JvdXRlX25hbWUnXX19PC9zcGFuPlxuICAgICAgPHNwYW4+PGI+Q3VzdG9tZXI6PC9iPiB7e3BvcHVwRGV0YWlsc1snY3VzdG9tZXJfbmFtZSddfX08L3NwYW4+XG4gICAgICA8c3Bhbj48Yj5NYXRlcmlhbDo8L2I+IHt7cG9wdXBEZXRhaWxzWydtYXRlcmlhbCddfX08L3NwYW4+XG4gICAgICA8c3Bhbj48Yj5UeXBlOjwvYj4ge3twb3B1cERldGFpbHNbJ3VuaXQnXX19PC9zcGFuPlxuICAgICAgPHNwYW4+PGI+RGlzdGFuY2U6PC9iPiB7e3BvcHVwRGV0YWlsc1snZXN0aW1hdGVkX2Rpc3RhbmNlJ119fTwvc3Bhbj5cbiAgICAgIDxzcGFuPjxiPlRyYXZlbCBUaW1lOjwvYj4ge3twb3B1cERldGFpbHNbJ2VzdGltYXRlZF90aW1lJ119fTwvc3Bhbj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJyb3V0ZW5vdGVzXCI+PGI+Tm90ZXM6PC9iPiB7e3BvcHVwRGV0YWlsc1snbm90ZSddfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNyZWF0ZVR4dFwiPlxuICAgICAgPHNtYWxsPlxuICAgICAgICBDcmVhdGVkIGJ5IHt7cG9wdXBEZXRhaWxzWydjcmVhdGVkX2J5X25hbWUnXX19IG9uIHt7cG9wdXBEZXRhaWxzWydjcmVhdGVkX2F0J119fVxuICAgICAgPC9zbWFsbD5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJlZGl0YnRuXCIgKGNsaWNrKT1cImVkaXRFdmVudCgpXCI+RWRpdDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImFkZF9hZGRfcm91dGVfYm94XCIgY2RrRHJhZyBbc3R5bGUudmlzaWJpbGl0eV09XCIhZW5hYmxlRm9ybSA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+XG4gICAgPGRpdiBjbGFzcz1cInRvcGhlYWRpbmdwcnRcIj5cbiAgICAgIDxoMj4ge3tyb3V0ZUlkPyAnRURJVCcgOiAnQUREJ319IFJPVVRFIDwvaDI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9ucHJ0XCI+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJyb3V0ZUlkXCIgY2xhc3M9XCJkZWxidG5cIiAoY2xpY2spPVwib3BlbkRpYWxvZygpXCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiY2xvc2VidG5cIiAoY2xpY2spPVwiY2hhbmdlTmF2Lm5leHQoJ0FkZHJvdXRlJylcIj5DbG9zZTwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJhZGRSb3V0ZUZvcm1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3V0ZV9mb3JtX2FyZWFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5Sb3V0ZSBOYW1lPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicm91dGVfbmFtZVwiIGF1dG9jb21wbGV0ZT1cIm5vcGVcIiAobW91c2Vkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImFkZFJvdXRlRm9ybS5jb250cm9sc1sncm91dGVfbmFtZSddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgICAgICAgIFJvdXRlIE5hbWUgaXMgcmVxdWlyZWRcbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkN1c3RvbWVyIE5hbWVcIiBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjdXN0b21lcl9uYW1lXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlIGF1dG9BY3RpdmVGaXJzdE9wdGlvbiAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiPlxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgY3VzdG9tZXIgb2YgY3VzdG9tZXJzTGlzdCQgfCBhc3luY1wiIFt2YWx1ZV09XCJjdXN0b21lclsnY3VzdG9tZXJfbmFtZSddXCI+XG4gICAgICAgICAgICAgICAge3tjdXN0b21lclsnY3VzdG9tZXJfbmFtZSddfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImFkZFJvdXRlRm9ybS5jb250cm9sc1snY3VzdG9tZXJfbmFtZSddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgICAgICAgIEN1c3RvbWVyIG5hbWUgaXMgcmVxdWlyZWQuXG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5QaWNrdXA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoLi4uXCIgbWF0SW5wdXQgI2ZpbHRlclBpY2t1cCBbbWF0QXV0b2NvbXBsZXRlXT1cInBpY2t1cEF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBpY2t1cF9sb2NhdGlvblwiIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG5cbiAgICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNwaWNrdXBBdXRvY29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIj5cbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKGNsaWNrKT1cInNlbGVjdGVkTG9uZ0xhdCgncGlja3VwJywgb3B0aW9uKVwiICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcGlja3VwT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbj8ucGxhY2VfbmFtZVwiPlxuICAgICAgICAgICAgICAgIHt7b3B0aW9uPy5wbGFjZV9uYW1lfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImFkZFJvdXRlRm9ybS5jb250cm9sc1sncGlja3VwX2xhdF9sbmcnXS50b3VjaGVkICYmIGFkZFJvdXRlRm9ybS5jb250cm9sc1sncGlja3VwX2xhdF9sbmcnXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICAgICAgUGxlYXNlIHNlbGVjdCBwaWNrdXAgbG9jYXRpb24gZnJvbSB0aGUgbGlzdC5cbiAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+RGVsaXZlcnk8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoLi4uXCIgbWF0SW5wdXQgI2ZpbHRlckRlbGl2ZXJ5IFttYXRBdXRvY29tcGxldGVdPVwiZGVsaXZlcnlBdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZWxpdmVyeV9sb2NhdGlvblwiIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjZGVsaXZlcnlBdXRvY29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIj5cbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKGNsaWNrKT1cInNlbGVjdGVkTG9uZ0xhdCgnZGVsaXZlcnknLCBvcHRpb24pXCIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBkZWxpdmVyeU9wdGlvbnNcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24/LnBsYWNlX25hbWVcIj5cbiAgICAgICAgICAgICAgICB7e29wdGlvbj8ucGxhY2VfbmFtZX19XG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJhZGRSb3V0ZUZvcm0uY29udHJvbHNbJ2RlbGl2ZXJ5X2xhdF9sbmcnXS50b3VjaGVkICYmIGFkZFJvdXRlRm9ybS5jb250cm9sc1snZGVsaXZlcnlfbGF0X2xuZyddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgICAgICBQbGVhc2Ugc2VsZWN0IGRlbGl2ZXJ5IGxvY2F0aW9uIGZyb20gdGhlIGxpc3QuXG4gICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPk5vdGVzPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8dGV4dGFyZWEgc3R5bGU9XCJoZWlnaHQ6IDE4cHg7IHJlc2l6ZTogbm9uZTtcIiBtYXRJbnB1dCBuYW1lPVwiXCIgaWQ9XCJcIiBjb2xzPVwiMzBcIiByb3dzPVwiMTBcIiBmb3JtQ29udHJvbE5hbWU9XCJub3RlXCIgYXV0b2NvbXBsZXRlPVwibm9wZVwiIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJhZGRSb3V0ZUZvcm0uY29udHJvbHNbJ25vdGUnXS5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAgICAgICAgTm90ZXMgc2hvdWxkIGJlIHdpdGhpbiAyMDQ4IGNoYXJhY3RlcnMuXG4gICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgZC1mbGV4XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0Ym94IG0tMFwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsPlVuaXQgdHlwZTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJ1bml0X2lkXCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGVja0FuZEZldGNoUm91dGVJbmZvcm1hdGlvbigpXCIgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdW5pdCBvZiB1bml0c0xpc3RcIiBbdmFsdWVdPVwidW5pdD8uaWRcIj4ge3t1bml0Py50eXBlfX0gPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJhZGRSb3V0ZUZvcm0uY29udHJvbHNbJ3VuaXRfaWQnXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICAgICAgICAgIFVuaXQgaXMgcmVxdWlyZWRcbiAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0Ym94IG0tMFwiPlxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICA8bWF0LWxhYmVsPk1hdGVyaWFsPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cIm1hdGVyaWFsc19pZFwiIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG1hdGVyaWFsIG9mIG1hdGVyaWFsc0xpc3RcIiBbdmFsdWVdPVwibWF0ZXJpYWw/Lm1hdGVyaWFsX2lkXCI+IHt7bWF0ZXJpYWw/Lm1hdGVyaWFsfX1cbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImFkZFJvdXRlRm9ybS5jb250cm9sc1snbWF0ZXJpYWxzX2lkJ10uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5cbiAgICAgICAgICAgICAgICBNZXRlcmlhbCBpcyByZXF1aXJlZFxuICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgICAgICA8YXBwLWVzdGltYXRpb24tZGlzcGxheSAqbmdJZj1cImFkZFJvdXRlRm9ybT8udmFsdWU/LnBpY2t1cF9sYXRfbG5nICYmIGFkZFJvdXRlRm9ybT8udmFsdWU/LmRlbGl2ZXJ5X2xhdF9sbmdcIiBbdmFsdWVdPVwiYWRkUm91dGVGb3JtWyd2YWx1ZSddXCI+PC9hcHAtZXN0aW1hdGlvbi1kaXNwbGF5PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cInNhdmVSb3V0ZSgpXCIgKm5nSWY9XCJwcmV2ZW50U2F2ZVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImFkZFJvdXRlRm9ybS5pbnZhbGlkICYmIHByZXZlbnRTYXZlIHx8IHByZXZlbnRJbml0aWFsU2F2ZVwiPnt7cm91dGVJZD8gJ1VwZGF0ZScgOiAnU2F2ZSd9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRlclwiPlxuICAgICAgICAgIDxtYXQtc3Bpbm5lciAqbmdJZj1cIiFwcmV2ZW50U2F2ZVwiPjwvbWF0LXNwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
316
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXJvdXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvb2xtYXAvc3JjL2xpYi9jb21wb25lbnQvYWRkLXJvdXRlL2FkZC1yb3V0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb29sbWFwL3NyYy9saWIvY29tcG9uZW50L2FkZC1yb3V0ZS9hZGQtcm91dGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQTRCLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkosT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFjLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3JILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVFwRSxNQUFNLE9BQU8saUJBQWlCO0lBeUI1QixZQUFtQixjQUE4QixFQUFTLEtBQW1CLEVBQVMsTUFBaUIsRUFDdkUsTUFBMEI7UUFEdkMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUFTLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDdkUsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUF2QnpDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3ZDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMvRCxrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixvQkFBZSxHQUFRLEVBQUUsQ0FBQztR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QUFVLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7YUFDekI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMscUJBQXFCLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFDLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzs4R0FyUVUsaUJBQWlCLHFHQTBCbEIsWUFBWTtrR0ExQlgsaUJBQWlCLG9iQ2I5QiwrbE9BNElBOzJGRC9IYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZUFBZTs7MEJBOEJ0QixNQUFNOzJCQUFDLFlBQVk7NENBekJZLFlBQVk7c0JBQTdDLFNBQVM7dUJBQUMsY0FBYztnQkFDVyxjQUFjO3NCQUFqRCxTQUFTO3VCQUFDLGdCQUFnQjtnQkFDVixTQUFTO3NCQUF6QixNQUFNO2dCQUNVLGVBQWU7c0JBQS9CLE1BQU07Z0JBUVMsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxtQkFBbUI7c0JBQWxDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBJbnB1dCwgT25EZXN0cm95LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmcm9tRXZlbnQsIG1hcCwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBDb29sbWFwQ29uZmlnTW9kZWwsIENvb2xtYXBTZXJ2aWNlLCBDdXN0b21lclJlcG9EZXRhaWxzTW9kZWwsIFJvdXRlLCBVdGlsc1NlcnZpY2UgfSBmcm9tICdAYWdnZGlyZWN0L2Nvb2xtYXAtc2VydmljZXMnO1xuaW1wb3J0IHsgRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLXJvdXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkZC1yb3V0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FkZC1yb3V0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFkZFJvdXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2ZpbHRlclBpY2t1cCcpIHB1YmxpYyBmaWx0ZXJQaWNrdXAhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdmaWx0ZXJEZWxpdmVyeScpIHB1YmxpYyBmaWx0ZXJEZWxpdmVyeSE6IEVsZW1lbnRSZWY7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlTmF2ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgdXBkYXRlUm91dGVMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBwaWNrdXBPcHRpb25zOiBhbnkgPSBbXTtcbiAgZGVsaXZlcnlPcHRpb25zOiBhbnkgPSBbXTtcbiAgcmVxdWVzdFBhcm1zRm9yUm91dGVEZXRhaWxzID0geyBwaWNrdXBfbGF0X2xuZzogJycsIGRlbGl2ZXJ5X2xhdF9sbmc6ICcnIH1cbiAgY3VzdG9tZXJzTGlzdDogYW55ID0gW107XG4gIHVuaXRzTGlzdDogYW55ID0gW107XG4gIG1hdGVyaWFsc0xpc3Q6IGFueSA9IFtdO1xuICBhZGRSb3V0ZUZvcm0hOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyByb3V0ZURhdGEhOiBSb3V0ZTtcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbWVyUmVwb0RldGFpbHMhOiBDdXN0b21lclJlcG9EZXRhaWxzTW9kZWw7XG4gIHJvdXRlSWQ6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gIHByZXZlbnRTYXZlOiBib29sZWFuID0gZmFsc2U7XG4gIHByZXZlbnRJbml0aWFsU2F2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBjdXN0b21lcnNMaXN0JCE6IE9ic2VydmFibGU8YW55PjtcbiAgcm91dGVEZXRhaWxzITogeyBwaWNrdXBfbG9jYXRpb246IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7IGRlbGl2ZXJ5X2xvY2F0aW9uOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkOyB9IHwgbnVsbDtcbiAgcHVibGljIGRlc3Ryb3llciQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwb3B1cERldGFpbHM6IFJvdXRlO1xuICBlbmFibGVQb3BVcDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcmV2YW50UG9wdXBDbG9zZSA9IGZhbHNlO1xuICBlbmFibGVGb3JtOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGNvb2xNYXBTZXJ2aWNlOiBDb29sbWFwU2VydmljZSwgcHVibGljIHV0aWxzOiBVdGlsc1NlcnZpY2UsIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBASW5qZWN0KCdtZW1iZXJEYXRhJykgcHJpdmF0ZSBjb25maWc6IENvb2xtYXBDb25maWdNb2RlbCkge1xuICAgIHRoaXMudXRpbHMuZmV0Y2hNYXRlcmlhbHNMaXN0KCkudGhlbigocmVzKT0+e1xuICAgICAgdGhpcy5tYXRlcmlhbHNMaXN0ID0gcmVzO1xuICAgIH0pO1xuICAgIHRoaXMudXRpbHMuZmV0Y2hVbml0c0xpc3QoKS50aGVuKChyZXMpPT57XG4gICAgICB0aGlzLnVuaXRzTGlzdCA9IHJlcztcbiAgICB9KTtcbiAgICB0aGlzLmZvcm1Jbml0KCk7XG4gICAgdGhpcy51dGlscy5nZXRyb3V0ZURldGFpbHNVdGlsaXR5LnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICBpZiAocmVzWydldmVudCddICE9PSAnY2xpY2snICYmICF0aGlzLnByZXZhbnRQb3B1cENsb3NlKSB7IHRoaXMuZW5hYmxlUG9wVXAgPSByZXNbJ2V2ZW50J10gfVxuICAgICAgICBlbHNlIGlmICh0aGlzLmVuYWJsZVBvcFVwICYmICF0aGlzLnByZXZhbnRQb3B1cENsb3NlKSB7IHRoaXMucHJldmFudFBvcHVwQ2xvc2UgPSB0cnVlOyB9XG4gICAgICAgIGlmIChyZXNbJ2V2ZW50J10gIT09ICdjbGljaycgJiYgIXJlc1snZXZlbnQnXSAmJiB0aGlzLnByZXZhbnRQb3B1cENsb3NlKSB7XG4gICAgICAgICAgdGhpcy5wb3B1cERldGFpbHMgPSB0aGlzLnV0aWxzLmdldGRpY3RWYWx1ZSgncm91dGUtZGV0YWlsc3YyJyk7XG4gICAgICAgIH0gZWxzZSB7IHRoaXMucG9wdXBEZXRhaWxzID0gcmVzWydyb3V0ZSddIH1cbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlUG9wVXApIHRoaXMucG9wdXBEZXRhaWxzWydjcmVhdGVkX2F0J10gPSB0aGlzLnV0aWxzLmdldERhdGVGb3JtYXQobmV3IERhdGUodGhpcy5wb3B1cERldGFpbHNbJ2NyZWF0ZWRfYXQnXSksICcvJyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgZmlsdGVyQ3VzdG9tZXJMaXN0KCkge1xuICAgIHRoaXMuY3VzdG9tZXJzTGlzdCQgPSB0aGlzLmFkZFJvdXRlRm9ybS5jb250cm9sc1snY3VzdG9tZXJfbmFtZSddLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLl9maWx0ZXIodmFsdWUgfHwgJycpKSxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBfZmlsdGVyKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiB0aGlzLmN1c3RvbWVyc0xpc3QuZmlsdGVyKChvcHRpb246IGFueSkgPT4gb3B0aW9uWydjdXN0b21lcl9uYW1lJ10udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpO1xuICB9XG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1sncm91dGVEYXRhJ10gJiYgIWNoYW5nZXNbJ3JvdXRlRGF0YSddWydjdXJyZW50VmFsdWUnXSkgdGhpcy5pbkl0KG51bGwpO1xuICB9XG4gIG9wZW5EaWFsb2coKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHsgYm9keTogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyByb3V0ZT8nIH0sXG4gICAgfSk7XG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlcyA9PiB7IGlmIChyZXMpIHsgdGhpcy5kZWxldGVSb3V0ZSgpIH0gfSk7XG4gIH1cbiAgZWRpdEV2ZW50KCkge1xuICAgIHRoaXMucHJldmFudFBvcHVwQ2xvc2UgPSBmYWxzZTtcbiAgICB0aGlzLmVuYWJsZUZvcm0gPSB0cnVlOyB0aGlzLmVuYWJsZVBvcFVwID0gZmFsc2U7XG4gICAgdGhpcy5wb3B1cERldGFpbHNbJ3ByZXZlbnQnXSA9IGZhbHNlO1xuICAgIHRoaXMudXRpbHMucmVtb3ZlTWFwRW50aXR5Lm5leHQodGhpcy5wb3B1cERldGFpbHMpO1xuICAgIHRoaXMuaW5JdCh0aGlzLnBvcHVwRGV0YWlscyk7XG4gIH1cbiAgaW5JdChjaGFuZ2VzOiBSb3V0ZSkge1xuICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICBpZiAoIWNoYW5nZXNbJ3ByZXZlbnQnXSkge1xuICAgICAgICB0aGlzLnByZXZlbnRTYXZlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2xWYWx1ZSgpO1xuICAgICAgICB0aGlzLnBhdGNoRm9ybVZhbHVlKGNoYW5nZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hlY2tBbmRGZXRjaFJvdXRlSW5mb3JtYXRpb24odHJ1ZSlcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghY2hhbmdlcykge1xuICAgICAgdGhpcy5lbmFibGVGb3JtID0gdHJ1ZTsgdGhpcy5wcmV2ZW50U2F2ZSA9IHRydWU7XG4gICAgICB0aGlzLnBhdGNoRm9ybVZhbHVlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tBbmRGZXRjaFJvdXRlSW5mb3JtYXRpb24oKVxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybUNvbnRyb2xWYWx1ZSgpO1xuICAgIGlmICh0aGlzLmNvbmZpZy5yZXBvc2l0b3J5ID09PSAnY3VzdG9tZXInKSB7XG4gICAgICB0aGlzLmFkZFJvdXRlRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgY3VzdG9tZXJfaWQ6IHRoaXMuY3VzdG9tZXJSZXBvRGV0YWlscy5jdXN0b21lci5pZCxcbiAgICAgICAgY3VzdG9tZXJfbmFtZTogdGhpcy5jdXN0b21lclJlcG9EZXRhaWxzLmN1c3RvbWVyLm5hbWUsXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnV0aWxzLmZldGNoQ3VzdG9tZXJzTGlzdCgpLnRoZW4oKHJlcyk9PntcbiAgICAgICAgdGhpcy5jdXN0b21lcnNMaXN0ID0gcmVzOyB0aGlzLmZpbHRlckN1c3RvbWVyTGlzdCgpOyB0aGlzLmFkZFJvdXRlRm9ybS5jb250cm9sc1snY3VzdG9tZXJfbmFtZSddLmVuYWJsZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGZyb21FdmVudCh0aGlzLmZpbHRlclBpY2t1cC5uYXRpdmVFbGVtZW50LCAna2V5dXAnKS5waXBlKFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgZGVib3VuY2VUaW1lKDE1MCkpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVyJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudXRpbHMuZmV0Y2hBdXRvQ29tcGxldGVMb2NhdGlvbnModGhpcy5maWx0ZXJQaWNrdXAubmF0aXZlRWxlbWVudC52YWx1ZSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZXIkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMucGlja3VwT3B0aW9ucyA9IHJlcy5mZWF0dXJlcztcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIGZyb21FdmVudCh0aGlzLmZpbHRlckRlbGl2ZXJ5Lm5hdGl2ZUVsZW1lbnQsICdrZXl1cCcpLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBkZWJvdW5jZVRpbWUoMTUwKSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZXIkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy51dGlscy5mZXRjaEF1dG9Db21wbGV0ZUxvY2F0aW9ucyh0aGlzLmZpbHRlckRlbGl2ZXJ5Lm5hdGl2ZUVsZW1lbnQudmFsdWUpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVyJCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmRlbGl2ZXJ5T3B0aW9ucyA9IHJlcy5mZWF0dXJlcztcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGZvcm1Db250cm9sVmFsdWUoKSB7XG4gICAgdGhpcy5hZGRSb3V0ZUZvcm0uY29udHJvbHNbJ3BpY2t1cF9sb2NhdGlvbiddPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZXIkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgaWYgKHRoaXMuYWRkUm91dGVGb3JtLnZhbHVlLnBpY2t1cF9sb2NhdGlvbiAmJiByZXMgIT09IHRoaXMuYWRkUm91dGVGb3JtLnZhbHVlLnBpY2t1cF9sb2NhdGlvbikge1xuICAgICAgICB0aGlzLmFkZFJvdXRlRm9ybS5wYXRjaFZhbHVlKHsgcGlja3VwX2xhdF9sbmc6ICcnIH0pO1xuICAgICAgICB0aGlzLmFkZFJvdXRlRm9ybS5jb250cm9sc1sncGlja3VwX2xhdF9sbmcnXS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmFkZFJvdXRlRm9ybS5jb250cm9sc1snZGVsaXZlcnlfbG9jYXRpb24nXT8udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVyJCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIGlmICh0aGlzLmFkZFJvdXRlRm9ybS52YWx1ZS5kZWxpdmVyeV9sb2NhdGlvbiAmJiByZXMgIT09IHRoaXMuYWRkUm91dGVGb3JtLnZhbHVlLmRlbGl2ZXJ5X2xvY2F0aW9uKSB7XG4gICAgICAgIHRoaXMuYWRkUm91dGVGb3JtLnBhdGNoVmFsdWUoeyBkZWxpdmVyeV9sYXRfbG5nOiAnJyB9KTtcbiAgICAgICAgdGhpcy5hZGRSb3V0ZUZvcm0uY29udHJvbHNbJ2RlbGl2ZXJ5X2xhdF9sbmcnXS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBmb3JtSW5pdCgpIHtcbiAgICB0aGlzLmFkZFJvdXRlRm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgcm91dGVfbmFtZTogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgY3VzdG9tZXJfbmFtZTogbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgY3VzdG9tZXJfaWQ6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgICBtYXRlcmlhbHNfaWQ6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIHVuaXRfaWQ6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIHBhdGg6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIHBpY2t1cF9sb2NhdGlvbjogbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0pLFxuICAgICAgcGlja3VwX2xhdF9sbmc6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIGRlbGl2ZXJ5X2xvY2F0aW9uOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICBkZWxpdmVyeV9sYXRfbG5nOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICBlc3RpbWF0ZWRfZGlzdGFuY2U6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgIGVzdGltYXRlZF90aW1lOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSksXG4gICAgICBub3RlOiBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLm1heExlbmd0aCgyMDQ4KV0pLFxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgcGF0Y2hGb3JtVmFsdWUoZGF0YT86IFJvdXRlKSB7XG4gICAgdGhpcy5hZGRSb3V0ZUZvcm0ucmVzZXQoKTtcbiAgICB0aGlzLmFkZFJvdXRlRm9ybS5wYXRjaFZhbHVlKGRhdGEhKTtcbiAgICB0aGlzLnJvdXRlSWQgPSBkYXRhPy5yb3V0ZV9pZDtcbiAgICB0aGlzLnJvdXRlRGV0YWlscyA9IGRhdGEgPyB7IHBpY2t1cF9sb2NhdGlvbjogZGF0YS5waWNrdXBfbG9jYXRpb24sIGRlbGl2ZXJ5X2xvY2F0aW9uOiBkYXRhLmRlbGl2ZXJ5X2xvY2F0aW9uIH0gOiBudWxsO1xuICAgIHRoaXMuYWRkUm91dGVGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llciQpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGlmIChyZXMpIHsgaWYgKHRoaXMucHJldmVudEluaXRpYWxTYXZlKSB0aGlzLnByZXZlbnRJbml0aWFsU2F2ZSA9IGZhbHNlIH1cbiAgICB9KTtcbiAgICB0aGlzLmZpbHRlckN1c3RvbWVyTGlzdCgpO1xuICAgIGF3YWl0IHRydWU7XG4gIH1cblxuICBzZWxlY3RlZExvbmdMYXQodHlwZTogc3RyaW5nLCBldmVudDogYW55KSB7XG4gICAgaWYgKHR5cGUgPT09ICdwaWNrdXAnKSB7XG4gICAgICB0aGlzLmFkZFJvdXRlRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgcGlja3VwX2xhdF9sbmc6IChldmVudC5nZW9tZXRyeS5jb29yZGluYXRlc1sxXSArICcsJyArIGV2ZW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzBdKS50b1N0cmluZygpXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY29vbE1hcFNlcnZpY2UuY2xlYXJCb3VuZFdpdGhDb3JkaW5hdGVzKCk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnZGVsaXZlcnknKSB7XG4gICAgICB0aGlzLmFkZFJvdXRlRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgZGVsaXZlcnlfbGF0X2xuZzogKGV2ZW50Lmdlb21ldHJ5LmNvb3JkaW5hdGVzWzFdICsgJywnICsgZXZlbnQuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF0pLnRvU3RyaW5nKClcbiAgICAgIH0pXG4gICAgfVxuICAgIHRoaXMuY2hlY2tBbmRGZXRjaFJvdXRlSW5mb3JtYXRpb24oKTtcbiAgfVxuXG4gIGNoZWNrQW5kRmV0Y2hSb3V0ZUluZm9ybWF0aW9uKGlzaW5pdGlhbD86IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5hZGRSb3V0ZUZvcm0udmFsdWU/LmRlbGl2ZXJ5X2xhdF9sbmc/Lmxlbmd0aCA+IDAgJiYgdGhpcy5hZGRSb3V0ZUZvcm0udmFsdWU/LnBpY2t1cF9sYXRfbG5nPy5sZW5ndGggPiAwICYmIHRoaXMuYWRkUm91dGVGb3JtLnZhbHVlLnVuaXRfaWQpIHtcbiAgICAgIGxldCB1bml0ID0gdGhpcy51bml0c0xpc3QuZmluZCgoeDogYW55KSA9PiB4LmlkID09PSB0aGlzLmFkZFJvdXRlRm9ybS52YWx1ZS51bml0X2lkKTtcbiAgICAgIGNvbnN0IHBhcmFtID0ge1xuICAgICAgICBkZWxpdmVyeV9sYXRfbG5nOiB0aGlzLmFkZFJvdXRlRm9ybS52YWx1ZS5kZWxpdmVyeV9sYXRfbG5nLFxuICAgICAgICBwaWNrdXBfbGF0X2xuZzogdGhpcy5hZGRSb3V0ZUZvcm0udmFsdWUucGlja3VwX2xhdF9sbmcsXG4gICAgICAgIHVuaXQ6IHVuaXQ/LnR5cGVcbiAgICAgIH07XG4gICAgICB0aGlzLnV0aWxzLnBvc3RkYXRhKCdjYWxjdWxhdGUvcm91dGVzL2VzdGltYXRpb24nLCBwYXJhbSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZXIkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzICYmIHJlc1sncGF0aCddKSB7XG4gICAgICAgICAgdGhpcy5hZGRSb3V0ZUZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgICBlc3RpbWF0ZWRfZGlzdGFuY2U6IHJlcy5kaXN0LCBlc3RpbWF0ZWRfdGltZTogcmVzLnRpbWUsIHBhdGg6IHJlcy5wYXRoXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbGV0IHBhdGggPSByZXNbJ3BhdGgnXS5zcGxpdCgnOycpO1xuICAgICAgICAgIHBhdGggPSBwYXRoLm1hcCgoZWxlOiBzdHJpbmcgfCBhbnkpID0+IHsgcmV0dXJuIGVsZSA9IHRoaXMuZm9ybWF0ZUxhdExvbmcoZWxlKSB9KTtcbiAgICAgICAgICByZXNbJ3BhdGgnXSA9IHBhdGg7XG4gICAgICAgICAgY29uc3QgZWxlbWVudDogYW55ID0ge1xuICAgICAgICAgICAgdHlwZTogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcbiAgICAgICAgICAgIGZlYXR1cmVzOiBbeyB0eXBlOiAnRmVhdHVyZScsIHByb3BlcnRpZXM6IHt9LCBnZW9tZXRyeTogeyB0eXBlOiAnTGluZVN0cmluZycsIGNvb3JkaW5hdGVzOiByZXNbJ3BhdGgnXSB9IH1dXG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY29vbE1hcFNlcnZpY2UucmVtb3ZlUm91dGVBbmRNYXJrZXIoMSkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1bml0ID0gdGhpcy51bml0c0xpc3QuZmluZCgoeDogYW55KSA9PiB4LmlkID09PSB0aGlzLmFkZFJvdXRlRm9ybS52YWx1ZS51bml0X2lkKTtcbiAgICAgICAgICAgIGNvbnN0IG1hdGVyaWFsRGV0YWlscyA9IHRoaXMubWF0ZXJpYWxzTGlzdC5maW5kKCh4OiBhbnkpID0+IHgubWF0ZXJpYWxfaWQgPT09IHRoaXMuYWRkUm91dGVGb3JtLnZhbHVlLm1hdGVyaWFsc19pZCk7XG4gICAgICAgICAgICB0aGlzLmNvb2xNYXBTZXJ2aWNlLmxvYWRNYXBQcm9wZXJ0eShlbGVtZW50LCAxLCB1bml0Py50eXBlLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGlja3VwX2xvY2F0aW9uOiB0aGlzLmFkZFJvdXRlRm9ybS5nZXQoJ3BpY2t1cF9sb2NhdGlvbicpPy52YWx1ZSxcbiAgICAgICAgICAgICAgICBkZWxpdmVyeV9sb2NhdGlvbjogdGhpcy5hZGRSb3V0ZUZvcm0uZ2V0KCdkZWxpdmVyeV9sb2NhdGlvbicpPy52YWx1ZSxcbiAgICAgICAgICAgICAgICByb3V0ZV9uYW1lOiB0aGlzLmFkZFJvdXRlRm9ybS5nZXQoJ3JvdXRlX25hbWUnKT8udmFsdWUsXG4gICAgICAgICAgICAgICAgbWF0ZXJpYWw6IG1hdGVyaWFsRGV0YWlscz8ubWF0ZXJpYWwsIHVuaXQ6IHVuaXQ/LnR5cGVcbiAgICAgICAgICAgICAgfSkudGhlbigocmVzKSA9PiB7IHRoaXMucHJldmVudFNhdmUgPSB0cnVlIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29vbE1hcFNlcnZpY2UucmVtb3ZlUm91dGVBbmRNYXJrZXIoMSk7XG4gICAgICAgICAgdGhpcy51dGlscy5vcGVuU25hY2tCYXIocmVzWydzdGF0dXMnXSwgJ2Vycm9yJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucm91dGVJZCAmJiBpc2luaXRpYWwpIHRoaXMucHJldmVudEluaXRpYWxTYXZlID0gdHJ1ZTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7IHRoaXMuY29vbE1hcFNlcnZpY2UucmVtb3ZlUm91dGVBbmRNYXJrZXIoMSkgfVxuICB9XG5cbiAgZm9ybWF0ZUxhdExvbmcobGF0bG9uZzogc3RyaW5nKSB7IHJldHVybiBsYXRsb25nID8gbGF0bG9uZy5zcGxpdCgnLCcpLm1hcCh4ID0+ICt4KS5yZXZlcnNlKCkgOiBudWxsIH1cbiAgc2F2ZVJvdXRlKCkge1xuICAgIGlmICh0aGlzLmFkZFJvdXRlRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5wcmV2ZW50U2F2ZSA9IGZhbHNlO1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuYWRkUm91dGVGb3JtLmdldFJhd1ZhbHVlKCk7XG4gICAgICBkYXRhWyd0cnVja2VyX3BheV9lc3RpbWF0ZSddID0gbnVsbDtcbiAgICAgIGRhdGFbJ2N1c3RvbWVyX3ByaWNlX2VzdGltYXRlJ10gPSBudWxsO1xuICAgICAgY29uc3QgdXJsID0gdGhpcy5yb3V0ZUlkID8gdGhpcy51dGlscy5wb3N0ZGF0YSgndXBkYXRlL3JvdXRlcycsIGRhdGEpIDogdGhpcy51dGlscy5wb3N0ZGF0YSgnYWRkL3JvdXRlcycsIGRhdGEpXG4gICAgICBpZiAodGhpcy5yb3V0ZUlkKSBkYXRhWydpZCddID0gdGhpcy5yb3V0ZUlkO1xuICAgICAgdXJsLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVyJCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlcy5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVSb3V0ZUxpc3QuZW1pdCh0cnVlKTtcbiAgICAgICAgICB0aGlzLnV0aWxzLm9wZW5TbmFja0JhcihyZXMubWVzc2FnZSwgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICB0aGlzLnByZXZlbnRJbml0aWFsU2F2ZSA9IHRydWU7XG4gICAgICAgICAgdGhpcy5wcmV2ZW50U2F2ZSA9IHRydWU7XG4gICAgICAgICAgaWYgKCF0aGlzLnJvdXRlSWQpIHRoaXMuY2hhbmdlTmF2Lm5leHQoJ0FkZHJvdXRlJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy51dGlscy5vcGVuU25hY2tCYXIocmVzLm1lc3NhZ2UsICdlcnJvcicpO1xuICAgICAgICAgIHRoaXMucHJldmVudFNhdmUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LCAoZXJyKSA9PiB7IGlmIChlcnIpIHsgdGhpcy5wcmV2ZW50U2F2ZSA9IHRydWU7IH0gfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWRkUm91dGVGb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICB9XG4gIH1cbiAgZGVsZXRlUm91dGUoKSB7XG4gICAgdGhpcy5wcmV2ZW50U2F2ZSA9IGZhbHNlO1xuICAgIHRoaXMudXRpbHMucG9zdGRhdGEoJ2RlbGV0ZS9yb3V0ZXMnLCB7IHV1aWQ6IHRoaXMucm91dGVJZCB9KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIGlmIChyZXNbJ2RhdGEnXVsnc3VjY2VzcyddKSB7XG4gICAgICAgIHRoaXMudXRpbHMub3BlblNuYWNrQmFyKHJlc1snZGF0YSddWydtZXNzYWdlJ10sICdzdWNjZXNzJyk7XG4gICAgICAgIHRoaXMudXBkYXRlUm91dGVMaXN0LmVtaXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuY2hhbmdlTmF2Lm5leHQoJ0FkZHJvdXRlJyk7XG4gICAgICAgIHRoaXMucHJldmVudEluaXRpYWxTYXZlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmV2ZW50U2F2ZSA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnV0aWxzLm9wZW5TbmFja0JhcignU29tdGhpbmcgd2VudCB3cm9uZycsICdlcnJvcicpO1xuICAgICAgICB0aGlzLnByZXZlbnRTYXZlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LCAoZXJyKSA9PiB7IHRoaXMucHJldmVudFNhdmUgPSB0cnVlIH0pXG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZXIkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5kZXN0cm95ZXIkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGRyb3V0ZWJveFwiPlxuICA8ZGl2IGNsYXNzPVwicm91dGVkZXRhaWxib3hcIiAqbmdJZj1cImVuYWJsZVBvcFVwXCI+XG4gICAgPGRpdiBjbGFzcz1cImNsb3NlYnRucm91dGVkZXRhaWxcIj5cbiAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwicHJldmFudFBvcHVwQ2xvc2UgPSBmYWxzZTsgZW5hYmxlUG9wVXAgPSBmYWxzZTtcIj5jbGVhcjwvbWF0LWljb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImRlc3RpbmF0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHVyYXRpb25cIj5cbiAgICAgICAgPHAgY2xhc3M9XCJwaWNrcHJ0XCI+PGI+UGlja3VwOjwvYj57e3BvcHVwRGV0YWlsc1sncGlja3VwX2xvY2F0aW9uJ119fTwvcD5cbiAgICAgICAgPHAgY2xhc3M9XCJkcm9wcHJ0XCI+PGI+RGVsaXZlcnk6PC9iPnt7cG9wdXBEZXRhaWxzWydkZWxpdmVyeV9sb2NhdGlvbiddfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzcGFuPjxiPk5hbWU6PC9iPiB7e3BvcHVwRGV0YWlsc1sncm91dGVfbmFtZSddfX08L3NwYW4+XG4gICAgICA8c3Bhbj48Yj5DdXN0b21lcjo8L2I+IHt7cG9wdXBEZXRhaWxzWydjdXN0b21lcl9uYW1lJ119fTwvc3Bhbj5cbiAgICAgIDxzcGFuPjxiPk1hdGVyaWFsOjwvYj4ge3twb3B1cERldGFpbHNbJ21hdGVyaWFsJ119fTwvc3Bhbj5cbiAgICAgIDxzcGFuPjxiPlR5cGU6PC9iPiB7e3BvcHVwRGV0YWlsc1sndW5pdCddfX08L3NwYW4+XG4gICAgICA8c3Bhbj48Yj5EaXN0YW5jZTo8L2I+IHt7cG9wdXBEZXRhaWxzWydlc3RpbWF0ZWRfZGlzdGFuY2UnXX19PC9zcGFuPlxuICAgICAgPHNwYW4+PGI+VHJhdmVsIFRpbWU6PC9iPiB7e3BvcHVwRGV0YWlsc1snZXN0aW1hdGVkX3RpbWUnXX19PC9zcGFuPlxuXG4gICAgICA8c3BhbiBjbGFzcz1cInJvdXRlbm90ZXNcIj48Yj5Ob3Rlczo8L2I+IHt7cG9wdXBEZXRhaWxzWydub3RlJ119fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY3JlYXRlVHh0XCI+XG4gICAgICA8c21hbGw+XG4gICAgICAgIENyZWF0ZWQgYnkge3twb3B1cERldGFpbHNbJ2NyZWF0ZWRfYnlfbmFtZSddfX0gb24ge3twb3B1cERldGFpbHNbJ2NyZWF0ZWRfYXQnXX19XG4gICAgICA8L3NtYWxsPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXRidG5cIiAoY2xpY2spPVwiZWRpdEV2ZW50KClcIj5FZGl0PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYWRkX2FkZF9yb3V0ZV9ib3hcIiBjZGtEcmFnIFtzdHlsZS52aXNpYmlsaXR5XT1cIiFlbmFibGVGb3JtID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICA8ZGl2IGNsYXNzPVwidG9waGVhZGluZ3BydFwiPlxuICAgICAgPGgyPiB7e3JvdXRlSWQ/ICdFRElUJyA6ICdBREQnfX0gUk9VVEUgPC9oMj5cbiAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25wcnRcIj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInJvdXRlSWRcIiBjbGFzcz1cImRlbGJ0blwiIChjbGljayk9XCJvcGVuRGlhbG9nKClcIj5EZWxldGU8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJjbG9zZWJ0blwiIChjbGljayk9XCJjaGFuZ2VOYXYubmV4dCgnQWRkcm91dGUnKVwiPkNsb3NlPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImFkZFJvdXRlRm9ybVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJvdXRlX2Zvcm1fYXJlYVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPlJvdXRlIE5hbWU8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJyb3V0ZV9uYW1lXCIgYXV0b2NvbXBsZXRlPVwibm9wZVwiIChtb3VzZWRvd24pPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiYWRkUm91dGVGb3JtLmNvbnRyb2xzWydyb3V0ZV9uYW1lJ10uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5cbiAgICAgICAgICAgICAgUm91dGUgTmFtZSBpcyByZXF1aXJlZFxuICAgICAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiQ3VzdG9tZXIgTmFtZVwiIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImN1c3RvbWVyX25hbWVcIiBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIiAobW91c2Vkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgYXV0b0FjdGl2ZUZpcnN0T3B0aW9uICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCI+XG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBjdXN0b21lciBvZiBjdXN0b21lcnNMaXN0JCB8IGFzeW5jXCIgW3ZhbHVlXT1cImN1c3RvbWVyWydjdXN0b21lcl9uYW1lJ11cIj5cbiAgICAgICAgICAgICAgICB7e2N1c3RvbWVyWydjdXN0b21lcl9uYW1lJ119fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiYWRkUm91dGVGb3JtLmNvbnRyb2xzWydjdXN0b21lcl9uYW1lJ10uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5cbiAgICAgICAgICAgICAgQ3VzdG9tZXIgbmFtZSBpcyByZXF1aXJlZC5cbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPlBpY2t1cDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2guLi5cIiBtYXRJbnB1dCAjZmlsdGVyUGlja3VwIFttYXRBdXRvY29tcGxldGVdPVwicGlja3VwQXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGlja3VwX2xvY2F0aW9uXCIgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cblxuICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI3BpY2t1cEF1dG9jb21wbGV0ZT1cIm1hdEF1dG9jb21wbGV0ZVwiPlxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAoY2xpY2spPVwic2VsZWN0ZWRMb25nTGF0KCdwaWNrdXAnLCBvcHRpb24pXCIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBwaWNrdXBPcHRpb25zXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uPy5wbGFjZV9uYW1lXCI+XG4gICAgICAgICAgICAgICAge3tvcHRpb24/LnBsYWNlX25hbWV9fVxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiYWRkUm91dGVGb3JtLmNvbnRyb2xzWydwaWNrdXBfbGF0X2xuZyddLnRvdWNoZWQgJiYgYWRkUm91dGVGb3JtLmNvbnRyb2xzWydwaWNrdXBfbGF0X2xuZyddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgICAgICBQbGVhc2Ugc2VsZWN0IHBpY2t1cCBsb2NhdGlvbiBmcm9tIHRoZSBsaXN0LlxuICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5EZWxpdmVyeTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWFyY2guLi5cIiBtYXRJbnB1dCAjZmlsdGVyRGVsaXZlcnkgW21hdEF1dG9jb21wbGV0ZV09XCJkZWxpdmVyeUF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlbGl2ZXJ5X2xvY2F0aW9uXCIgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNkZWxpdmVyeUF1dG9jb21wbGV0ZT1cIm1hdEF1dG9jb21wbGV0ZVwiPlxuICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAoY2xpY2spPVwic2VsZWN0ZWRMb25nTGF0KCdkZWxpdmVyeScsIG9wdGlvbilcIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGRlbGl2ZXJ5T3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbj8ucGxhY2VfbmFtZVwiPlxuICAgICAgICAgICAgICAgIHt7b3B0aW9uPy5wbGFjZV9uYW1lfX1cbiAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImFkZFJvdXRlRm9ybS5jb250cm9sc1snZGVsaXZlcnlfbGF0X2xuZyddLnRvdWNoZWQgJiYgYWRkUm91dGVGb3JtLmNvbnRyb2xzWydkZWxpdmVyeV9sYXRfbG5nJ10uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5cbiAgICAgICAgICAgIFBsZWFzZSBzZWxlY3QgZGVsaXZlcnkgbG9jYXRpb24gZnJvbSB0aGUgbGlzdC5cbiAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+Tm90ZXM8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDx0ZXh0YXJlYSBzdHlsZT1cImhlaWdodDogMThweDsgcmVzaXplOiBub25lO1wiIG1hdElucHV0IG5hbWU9XCJcIiBpZD1cIlwiIGNvbHM9XCIzMFwiIHJvd3M9XCIxMFwiIGZvcm1Db250cm9sTmFtZT1cIm5vdGVcIiBhdXRvY29tcGxldGU9XCJub3BlXCIgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImFkZFJvdXRlRm9ybS5jb250cm9sc1snbm90ZSddLmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPlxuICAgICAgICAgICAgICBOb3RlcyBzaG91bGQgYmUgd2l0aGluIDIwNDggY2hhcmFjdGVycy5cbiAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNiBkLWZsZXhcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRib3ggbS0wXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+VW5pdCB0eXBlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInVuaXRfaWRcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoZWNrQW5kRmV0Y2hSb3V0ZUluZm9ybWF0aW9uKClcIiAobW91c2Vkb3duKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1bml0IG9mIHVuaXRzTGlzdFwiIFt2YWx1ZV09XCJ1bml0Py5pZFwiPiB7e3VuaXQ/LnR5cGV9fSA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImFkZFJvdXRlRm9ybS5jb250cm9sc1sndW5pdF9pZCddLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgICAgICAgICAgVW5pdCBpcyByZXF1aXJlZFxuICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRib3ggbS0wXCI+XG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+TWF0ZXJpYWw8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwibWF0ZXJpYWxzX2lkXCIgKG1vdXNlZG93bik9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgbWF0ZXJpYWwgb2YgbWF0ZXJpYWxzTGlzdFwiIFt2YWx1ZV09XCJtYXRlcmlhbD8ubWF0ZXJpYWxfaWRcIj4ge3ttYXRlcmlhbD8ubWF0ZXJpYWx9fVxuICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiYWRkUm91dGVGb3JtLmNvbnRyb2xzWydtYXRlcmlhbHNfaWQnXS5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICAgICAgICAgIE1ldGVyaWFsIGlzIHJlcXVpcmVkXG4gICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgICAgIDxhcHAtZXN0aW1hdGlvbi1kaXNwbGF5ICpuZ0lmPVwiYWRkUm91dGVGb3JtPy52YWx1ZT8ucGlja3VwX2xhdF9sbmcgJiYgYWRkUm91dGVGb3JtPy52YWx1ZT8uZGVsaXZlcnlfbGF0X2xuZ1wiIFt2YWx1ZV09XCJhZGRSb3V0ZUZvcm1bJ3ZhbHVlJ11cIj48L2FwcC1lc3RpbWF0aW9uLWRpc3BsYXk+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwic2F2ZVJvdXRlKClcIiAqbmdJZj1cInByZXZlbnRTYXZlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiYWRkUm91dGVGb3JtLmludmFsaWQgJiYgcHJldmVudFNhdmUgfHwgcHJldmVudEluaXRpYWxTYXZlXCI+e3tyb3V0ZUlkPyAnVXBkYXRlJyA6ICdTYXZlJ319XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGVyXCI+XG4gICAgICAgICAgPG1hdC1zcGlubmVyICpuZ0lmPVwiIXByZXZlbnRTYXZlXCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1230,7 +1230,6 @@ class AddRouteComponent {
1230
1230
  this.preventInitialSave = false;
1231
1231
  }
1232
1232
  });
1233
- console.log(this.addRouteForm.value);
1234
1233
  this.filterCustomerList();
1235
1234
  yield true;
1236
1235
  });
@@ -1247,7 +1246,6 @@ class AddRouteComponent {
1247
1246
  delivery_lat_lng: (event.geometry.coordinates[1] + ',' + event.geometry.coordinates[0]).toString()
1248
1247
  });
1249
1248
  }
1250
- console.log('test>>>>>>>>>>>>>>>>>>>>>>>>192');
1251
1249
  this.checkAndFetchRouteInformation();
1252
1250
  }
1253
1251
  checkAndFetchRouteInformation(isinitial) {