iptdevs-design-system 3.1.147 → 3.1.148

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.
@@ -235,6 +235,13 @@ export class CodFormStepFourComponent extends CodFormSteps {
235
235
  }
236
236
  // Calcular cuotas
237
237
  this.dataFinancing = [];
238
+ // const quotaValues = this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].quota_price;
239
+ // let params: CalculateQuotesParams = {
240
+ // date: new Date(this.codFormStepFour.controls['payment_date'].value),
241
+ // quotaValues,
242
+ // quotaTimes: this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].fee_number,
243
+ // totalPrice: this.codFormStepFour.controls['total_price'].value,
244
+ // }
238
245
  const quotaValues = this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].quota_price;
239
246
  let params = {
240
247
  date: new Date(this.codFormStepFour.controls['payment_date'].value),
@@ -242,6 +249,7 @@ export class CodFormStepFourComponent extends CodFormSteps {
242
249
  quotaTimes: this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].fee_number,
243
250
  totalPrice: this.codFormStepFour.controls['total_price'].value,
244
251
  };
252
+ console.log(params);
245
253
  this.dataFinancing = this.calculateQuotesService.calculateQuotes(params);
246
254
  this.isFinancing = true;
247
255
  this.financingData.emit(this.dataFinancing);
@@ -317,6 +325,7 @@ export class CodFormStepFourComponent extends CodFormSteps {
317
325
  this.resetLocalStorage(this.controls);
318
326
  }
319
327
  selectLevels(dataPayment) {
328
+ console.log(dataPayment);
320
329
  if (this.codFormStepFour.get('payment_method')?.value == 1) {
321
330
  this.codFormStepFour.controls['quota_times'].setValue(dataPayment.code);
322
331
  this.codFormStepFour.controls['total_price'].setValue(dataPayment.enrollment);
@@ -348,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
348
357
  }], financingData: [{
349
358
  type: Output
350
359
  }] } });
351
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qvc3RlcHMvY29kLWZvcm0tc3RlcC1mb3VyL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtZm91ci9jb2QtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQVUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBcUJoRSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsWUFBWTtJQXdCeEQsWUFDVSxFQUFlLEVBQ2Ysc0JBQThDLEVBQzlDLG1CQUF3QyxFQUN4QyxnQkFBa0MsRUFDbEMsZUFBZ0MsRUFDaEMsaUJBQW9DLEVBQ3BDLFdBQXdCO1FBRWhDLEtBQUssRUFBRSxDQUFDO1FBUkEsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxz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LENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDOztxSEE3VlUsd0JBQXdCO3lHQUF4Qix3QkFBd0Isc0tDMUJyQywwMEpBa0lBOzJGRHhHYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usd0JBQXdCO2dTQUt4QixlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvZEZvcm1TdGVwcywgbG9jYWxTdG9yYWdlVmFsdWVzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLWZvcm0tc3RlcHMnO1xuaW1wb3J0IHsgQ29kRm9ybUNvbnRyb2xzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLWZvcm0tY29udHJvbHMnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlUXVvdGVzUGFyYW1zLCBDYWxjdWxhdGVRdW90ZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbG9naWMvY2FsY3VsYXRlLXF1b3Rlcy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW11bmljYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9sb2dpYy9jb21tdW5pY2F0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBDb2RQcmljZXMsIENvZFByaWNlc1JxLCBJT2J0YWluQ29kUHJpY2VzUnEgfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscy9jb21tZXJjaWFsL2NvbW1lcmNpYWwubW9kZWwnO1xuaW1wb3J0IHsgUGFyYW1ldGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvcGFyYW1ldGVycy1zZXJ2aWNlL3BhcmFtZXRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tZXJjaWFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvY29tbWVyY2lhbC1zZXJ2aWNlL2NvbWVyY2lhbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9iYXNlLXNlcnZpY2UvYmFzZS5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIENvdXJzZVR5cGVzIHtcbiAgY29kZTogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIG51bWJlcl9jbGFzczogbnVtYmVyO1xuICBhY2FkZW1pY19wbGFuOiBudW1iZXI7XG4gIHVwZGF0ZWRfYXQ6IHN0cmluZztcbiAgY3JlYXRlZF9hdDogc3RyaW5nO1xufVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1mb3JtLXN0ZXAtZm91cicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2QtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2QtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RGb3JtU3RlcEZvdXJDb21wb25lbnQgZXh0ZW5kcyBDb2RGb3JtU3RlcHMgaW1wbGVtZW50cyBPbkluaXQge1xuICBAT3V0cHV0KCkgY2hhbmdlU3RlcEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBmaW5hbmNpbmdEYXRhID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29kRm9ybVN0ZXBGb3VyITogRm9ybUdyb3VwO1xuICBpc0NhbGN1bGF0ZVF1b3Rlc0J1dHRvbkNsaWNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnRmFsdGFuIGNhbXBvcyBwb3IgbGxlbmFyLic7XG4gIHBheW1lbnRNZXRob2RzOiBhbnlbXSA9IFtcbiAgICB7IGNvZGU6ICcxJywgbmFtZTogJ0ZpbmFuY2lhZG8nIH0sXG4gICAgeyBjb2RlOiAnMicsIG5hbWU6ICdDb250YWRvJyB9LFxuICBdO1xuICBkYXRhRmluYW5jaW5nOiBhbnlbXSA9IFtdO1xuICBpc0ZpbmFuY2luZzogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1NlbWVzdHJhbDogYm9vbGVhbiA9IGZhbHNlO1xuICBjb2RQcmljZXM6IENvZFByaWNlc1tdID0gW107XG4gIGNvZFByaWNlc0ZpbHRlcjogQ29kUHJpY2VzW10gPSBbXTtcblxuICBkYXRhUHJpY2VzOmFueTtcbiAgZmVlUmVzcG9uc2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdGhlcmVBcmVQbGFuczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8vIENvbnRyb2xzIGRlbCBmb3JtdWxhcmlvXG4gIGNvbnRyb2xzID0gbmV3IENvZEZvcm1Db250cm9scygpLmNvbnRyb2xzWzNdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY2FsY3VsYXRlUXVvdGVzU2VydmljZTogQ2FsY3VsYXRlUXVvdGVzU2VydmljZSxcbiAgICBwcml2YXRlIGNvbW11bmljYXRvclNlcnZpY2U6IENvbW11bmljYXRvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYXJhbWV0ZXJTZXJ2aWNlOiBQYXJhbWV0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29kRm9ybUNvbnRyb2xzOiBDb2RGb3JtQ29udHJvbHMsXG4gICAgcHJpdmF0ZSBjb21tZXJjaWFsU2VydmljZTogQ29tbWVyY2lhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIHRoaXMuY2xlYW5Db21wb25lbnQoKTtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICB0aGlzLnZhbGlkYXRlRXJyb3JzKCk7XG4gICAgLy8gdGhpcy5nZXRDb2RQcmljZXNCeUFncmVlbWVudCgpO1xuICAgIHRoaXMuZ2V0VmFsdWVzT2ZTdGVwT25lQ29tcG9uZW50KCk7XG4gICAgY29uc29sZS5sb2coJ2NoYW5nZXMgc3RlcCBvbmUnKTtcblxuICB9XG5cbiAgZ2V0VmFsdWVzT2ZTdGVwT25lQ29tcG9uZW50KCkge1xuICAgIC8vIFRpcG8gZGUgY3Vyc28gc2VsZWNjaW9uYWRvXG4gICAgdGhpcy5jb21tdW5pY2F0b3JTZXJ2aWNlLmdldFNlbGVjdGVkQ291cnNlVHlwZSgpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q291cnNlc1R5cGVzKCkucGlwZShcbiAgICAgICAgbWFwKCAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvdXJzZVR5cGVzOiBDb3Vyc2VUeXBlc1tdID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICByZXR1cm4gY291cnNlVHlwZXMuZmlsdGVyKCAoeyBuYW1lIH0pID0+IG5hbWUuaW5jbHVkZXMoJ1NlbWVzdHJhbCcpIClcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoIChjb3Vyc2VUeXBlczogQ291cnNlVHlwZXNbXSkgPT4ge1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdXJzZVR5cGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKGNvdXJzZVR5cGVzW2ldLmNvZGUudG9TdHJpbmcoKSA9PT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZW1lc3RyYWwgPSB0cnVlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaXNTZW1lc3RyYWwgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSk7XG5cbiAgICAvLyBDb252ZW5pbyBzZWxlY2Npb25hZG9cbiAgICAvLyB0aGlzLmNvbW11bmljYXRvclNlcnZpY2UuZ2V0U2VsZWN0ZWRBZ3JlZW1lbnQoKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgIC8vICAgdGhpcy5nZXRDb2RQcmljZXNCeUFncmVlbWVudCh2YWx1ZSk7XG4gICAgLy8gfSk7XG4gIH1cblxuICBnZXRDb2RQcmljZXNCeUFncmVlbWVudChhZ3JlZW1lbnQ/OiBzdHJpbmcpIHtcbiAgICBsZXQgYWdyZWVtZW50U2VsZWN0ZWQ6IHN0cmluZyB8IG51bGw7XG4gICAgaWYgKGFncmVlbWVudCkge1xuICAgICAgYWdyZWVtZW50U2VsZWN0ZWQgPSBhZ3JlZW1lbnQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFncmVlbWVudFNlbGVjdGVkID0gdGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2FncmVlbWVudF9ieV9jYXRlZ29yeScpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09PSAnMScpIHtcbiAgICAgIGxldCByZXF1ZXN0OiBDb2RQcmljZXNScSA9IHtcbiAgICAgICAgYWdyZWVtZW50OiAgICAgTnVtYmVyKGFncmVlbWVudFNlbGVjdGVkKSxcbiAgICAgICAgcGF5bWVudF9tZXRob2Q6ICdjdW90YSdcbiAgICAgIH1cbiAgICAgIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuZ2V0Q29kUHJpY2VzQnlBZ3JlZW1lbnRUeXBlUGF5bWVudChyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+e1xuICAgICAgICB0aGlzLmNvZFByaWNlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKHRoaXMuY29kUHJpY2VzWzBdLmNvZGUpXG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5jb2RQcmljZXNbMF0ubm9ybWFsX3ByaWNlKVxuICAgICAgfSlcbiAgICAgIH1lbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09PSAnMicpIHtcbiAgICAgICAgICBsZXQgcmVxdWVzdDogQ29kUHJpY2VzUnEgPSB7XG4gICAgICAgICAgICBhZ3JlZW1lbnQ6ICAgICBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpLFxuICAgICAgICAgICAgcGF5bWVudF9tZXRob2Q6ICdjb250YSdcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5nZXRDb2RQcmljZXNCeUFncmVlbWVudFR5cGVQYXltZW50KHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT57XG4gICAgICAgICAgICB0aGlzLmNvZFByaWNlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZSh0aGlzLmNvZFByaWNlc1swXS5jb2RlKTtcbiAgICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5jb2RQcmljZXNbMF0ubm9ybWFsX3ByaWNlKVxuICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUodGhpcy5jb2RQcmljZXNbMF0uZW5yb2xsbWVudCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gdGhpcy5jb21tZXJjaWFsU2VydmljZS5nZXRDb2RQcmljZXNCeUFncmVlbWVudChOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpKS5zdWJzY3JpYmUoe1xuICAgIC8vICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAvLyAgICAgaWYgKHJlc3BvbnNlLmRhdGEpIHtcbiAgICAvLyAgICAgICBjb25zdCBjb2RQcmljZXM6IENvZFByaWNlc1tdID0gcmVzcG9uc2UuZGF0YTtcbiAgICAvLyAgICAgICB0aGlzLmNvZFByaWNlcyA9IGNvZFByaWNlcztcbiAgICAvLyAgICAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJykge1xuICAgIC8vICAgICAgICAgICBjb25zdCBhdXggPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuYWdyZWVtZW50ID09PSBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpKVswXTtcbiAgICAvLyAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoYXV4LmNvZGUpXG4gICAgLy8gICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoYXV4Lm5vcm1hbF9wcmljZSlcbiAgICAvLyAgICAgICAgIH1lbHNlIHtcbiAgICAvLyAgICAgICAgICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnZhbHVlID09PSAnMicpIHtcbiAgICAvLyAgICAgICAgICAgICAvLyBjb25zdCBhdXggPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuYWdyZWVtZW50ID09PSBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpKVswXTtcbiAgICAvLyAgICAgICAgICAgICBjb25zdCBhdXggPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuZmVlX251bWJlciA9PT0gMSlbMF07XG4gICAgLy8gICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoYXV4LmNvZGUpO1xuICAgIC8vICAgICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoYXV4Lm5vcm1hbF9wcmljZSlcbiAgICAvLyAgICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShhdXguZW5yb2xsbWVudCk7XG4gICAgLy8gICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0sXG4gICAgLy8gICBlcnJvcjogKGVycikgPT4gY29uc29sZS5sb2coZXJyKVxuICAgIC8vIH0pXG4gIH1cblxuICB2YWxpZGF0ZUVycm9ycygpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGNoYW5nZXMgPT4ge1xuICAgICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLmhhc0Vycm9yKCdtaW4nKSkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMYSBjYW50aWRhZCBkZSBjdW90YXMgbcOtbmltYXMgZGViZSBzZXIgMSc7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLmhhc0Vycm9yKCdtYXgnKSkge1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdMYSBjYW50aWRhZCBkZSBjdW90YXMgbm8gZGViZSBzZXIgc3VwZXJpb3IgYSAxMic7XG4gICAgICB9XG4gICAgICAgZWxzZSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0ZhbHRhbiBjYW1wb3MgcG9yIGxsZW5hcic7XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHNlYXJjaFByaWNlQnlUeXBlUGF5bWVudChhZ3JlZW1lbnRTZWxlY3RlZDogYW55LCB0eXBlOiBzdHJpbmcsIGNoYW5nZTogc3RyaW5nKXtcbiAgICBsZXQgcmVxdWVzdDogQ29kUHJpY2VzUnEgPSB7XG4gICAgICBhZ3JlZW1lbnQ6ICAgICBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpLFxuICAgICAgcGF5bWVudF9tZXRob2Q6IHR5cGVcbiAgICB9XG4gICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5nZXRDb2RQcmljZXNCeUFncmVlbWVudFR5cGVQYXltZW50KHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT57XG4gICAgICB0aGlzLmNvZFByaWNlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgfSlcbiAgfVxuXG4gIGluaXRGb3JtKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBwcm9ncmFtX3ByaWNlOiBbeyB2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBwYXltZW50X2RhdGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHBheW1lbnRfbWV0aG9kOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBxdW90YV90aW1lczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgdG90YWxfcHJpY2U6IFt7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHBhaWRfbGV2ZWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICB9KTtcblxuICAgIHRoaXMubGlzdGVuUGF5bWVudE1ldGhvZEZpZWxkKCk7XG4gIH1cblxuICBsaXN0ZW5QYXltZW50TWV0aG9kRmllbGQoKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY29kRm9ybVN0ZXBGb3VyLmdldCgncGF5bWVudF9tZXRob2QnKTtcbiAgICBjb250cm9sPy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcbiAgICAgIC8vIEZpbmFuY2lhZG9cbiAgICAgIGlmIChjaGFuZ2UgPT09ICcxJykge1xuICAgICAgICAvLyBQb25lciB2YWxpZGFjaW9uZXNcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuXG4gICAgICAgIC8vIEFjdHVhbGl6YXIgcGFyYSBxdWUgc2UgdG9tZW4gbG9zIGNhbWJpb3NcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG5cbiAgICAgICAgLy8gQWN0dWFsaXphciBsb3MgY29udHJvbHMgZ2xvYmFsZXNcbiAgICAgICAgdGhpcy51cGRhdGVHbG9iYWxDb250cm9scyhjaGFuZ2UpXG4gICAgICB9XG5cbiAgICAgIC8vIGRlIGNvbnRhZG9cbiAgICAgIGlmIChjaGFuZ2UgPT09ICcyJykge1xuICAgICAgICAvLyBRdWl0YXIgbGFzIHZhbGlkYWNpb25lc1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uY2xlYXJWYWxpZGF0b3JzKCk7XG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcblxuICAgICAgICAvLyBBY3R1YWxpemFyIHBhcmEgcXVlIHNlIHRvbWVuIGxvcyBjYW1iaW9zXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuXG4gICAgICAgIC8vIEFjdHVhbGl6YXIgbG9zIGNvbnRyb2xzIGdsb2JhbGVzXG4gICAgICAgIHRoaXMudXBkYXRlR2xvYmFsQ29udHJvbHMoY2hhbmdlKVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlR2xvYmFsQ29udHJvbHMoY2hhbmdlOiBzdHJpbmcpIHtcbiAgICBsZXQgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzLmZpbHRlcihjb250cm9sID0+IGNvbnRyb2wubmFtZSAhPT0gJ3BheW1lbnRfbWV0aG9kJyk7XG4gICAgY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGlmIChjaGFuZ2UgPT09ICcxJykgdGhpcy5jb2RGb3JtQ29udHJvbHMuY2hhbmdlVmFsdWUoNCwgY29udHJvbC5uYW1lLCB0cnVlKVxuICAgICAgaWYgKGNoYW5nZSA9PT0gJzInKSB7XG4gICAgICAgIGlmIChjb250cm9sLm5hbWUgPT09ICdxdW90YV90aW1lcycpIHRoaXMuY29kRm9ybUNvbnRyb2xzLmNoYW5nZVZhbHVlKDQsIGNvbnRyb2wubmFtZSwgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBzdGFydExvY2FsU3RvcmFnZVdvcmsoKSB7XG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgbGV0IGxvY2FsU3RvcmFnZVZhbHVlOiBsb2NhbFN0b3JhZ2VWYWx1ZXMgPSB0aGlzLnJlYWRBbmRXcml0ZUxTKDQsIGNvbnRyb2wubmFtZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1tjb250cm9sLm5hbWVdLnNldFZhbHVlKGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuRm9ybUNoYW5nZXMoNCwgY29udHJvbC5uYW1lLCB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cblxuICBzaG93VGFibGUoKSB7XG4gICAgdGhpcy5pc0NhbGN1bGF0ZVF1b3Rlc0J1dHRvbkNsaWNrZWQgPSB0cnVlO1xuICAgIGNvbnN0IHRvdGFsX3ByaWNlID0gdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10udmFsdWU7XG4gICAgaWYgKCh0b3RhbF9wcmljZSA9PT0gJ251bGwnKSB8fCB0aGlzLmNvZEZvcm1TdGVwRm91ci5pbnZhbGlkKSB7XG4gICAgICBTd2FsLmZpcmUoe1xuICAgICAgICB0aXRsZTogJ0Vycm9yIHRhYmxlJyxcbiAgICAgICAgdGV4dDogJ0RlYmVzIGluZ3Jlc2FyIGVsIG1vbnRvIHRvdGFsIGRlIGxhIG1hdHLDrWN1bGEgeSBsYSBjdW90YSBpbmljaWFsJyxcbiAgICAgICAgaWNvbjogJ2Vycm9yJ1xuICAgICAgfSlcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBDYWxjdWxhciBjdW90YXNcbiAgICB0aGlzLmRhdGFGaW5hbmNpbmcgPSBbXTtcbiAgICBjb25zdCBxdW90YVZhbHVlcyA9IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5jb2RlID09PSBOdW1iZXIodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10udmFsdWUpKVswXS5xdW90YV9wcmljZTtcbiAgICBsZXQgcGFyYW1zOiBDYWxjdWxhdGVRdW90ZXNQYXJhbXMgPSB7XG4gICAgICBkYXRlOiBuZXcgRGF0ZSh0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ10udmFsdWUpLFxuICAgICAgcXVvdGFWYWx1ZXMsXG4gICAgICBxdW90YVRpbWVzOiB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuY29kZSA9PT0gTnVtYmVyKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnZhbHVlKSlbMF0uZmVlX251bWJlcixcbiAgICAgIHRvdGFsUHJpY2U6IHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnZhbHVlLFxuICAgIH1cbiAgICB0aGlzLmRhdGFGaW5hbmNpbmcgPSB0aGlzLmNhbGN1bGF0ZVF1b3Rlc1NlcnZpY2UuY2FsY3VsYXRlUXVvdGVzKHBhcmFtcyk7XG4gICAgdGhpcy5pc0ZpbmFuY2luZyA9IHRydWU7XG4gICAgdGhpcy5maW5hbmNpbmdEYXRhLmVtaXQodGhpcy5kYXRhRmluYW5jaW5nKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZU5ld1F1b3RlcygpIHtcbiAgICB0aGlzLmlzQ2FsY3VsYXRlUXVvdGVzQnV0dG9uQ2xpY2tlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNGaW5hbmNpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmZpbmFuY2luZ0RhdGEuZW1pdChudWxsKTtcbiAgfVxuXG4gIHNlbmRGb3JtKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuaW52YWxpZCkgcmV0dXJuO1xuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gNVxuICAgIHRoaXMuY2hhbmdlU3RlcEV2ZW50LmVtaXQoNCk7XG4gIH1cblxuICBpc0ZpbmFuY2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZSA9PSAxO1xuICB9XG5cbiAgLy8gRXZlbnRvcyBkZWwgc2VsZWN0XG4gIHNlbGVjdFBheW1lbnRNZXRob2QocGF5bWVudE1ldGhvZDogYW55KSB7XG4gICAgdGhpcy5mZWVSZXNwb25zZSA9IHRydWU7XG4gICAgdGhpcy50aGVyZUFyZVBsYW5zID0gZmFsc2U7XG5cbiAgICBpZiAocGF5bWVudE1ldGhvZCAhPT0gJycpIHtcbiAgICAgIGNvbnN0IHJlcXVlc3Q6IElPYnRhaW5Db2RQcmljZXNScSA9IHtcbiAgICAgICAgdG9rZW46ICAgICAgICAgICAgdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKSxcbiAgICAgICAgY291cnNlX3R5cGU6ICAgICAgTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdjb3Vyc2VfdHlwZScpKSxcbiAgICAgICAgYWdyZWVtZW50OiAgICAgICAgTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKSksXG4gICAgICAgIGNvdXJzZV9tb2RhbGl0eTogIE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnY291cnNlX21vZGFsaXR5JykpLFxuICAgICAgICBwYXltZW50X21ldGhvZDogICBwYXJzZUludChwYXltZW50TWV0aG9kKVxuICAgICAgfVxuICAgICAgY29uc29sZS5sb2cocmVxdWVzdCk7XG5cbiAgICAgIHRoaXMuY29tbWVyY2lhbFNlcnZpY2UuT2J0YWluQ29kUHJpY2VzKHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2UpPT4ge1xuICAgICAgICBpZiAocmVzcG9uc2UuZGF0YSAhPSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5kYXRhUHJpY2VzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICB0aGlzLmZlZVJlc3BvbnNlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50aGVyZUFyZVBsYW5zID0gdHJ1ZTtcbiAgICAgICAgfWVsc2Uge1xuICAgICAgICAgIHRoaXMudGhlcmVBcmVQbGFucyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZmVlUmVzcG9uc2UgPSBmYWxzZTtcbiAgICAgICAgICBTd2FsLmZpcmUoe1xuICAgICAgICAgICAgcG9zaXRpb246ICdjZW50ZXInLFxuICAgICAgICAgICAgaWNvbjogJ3dhcm5pbmcnLFxuICAgICAgICAgICAgdGl0bGU6XG4gICAgICAgICAgICAgICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5Pb3BzLi4gbm8gaGF5IHBsYW5lcyBkZSBwYWdvcywgXFxuIGVuIGVsIGN1cnNvIGVsZWdpZG8uPC9wPicsXG4gICAgICAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICB0aW1lcjogMzAwMCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLmNsZWFySW5wdXRQYXltZW50KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10uc2V0VmFsdWUocGF5bWVudE1ldGhvZCk7XG4gICAgICAvLyB0aGlzLmdldENvZFByaWNlc0J5QWdyZWVtZW50KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFF1b3RhcyhxdW90YXM6IHN0cmluZykge1xuICAgIGlmIChxdW90YXMgIT09ICdOw7ptZXJvIGRlIGN1b3RhcycpIHtcbiAgICAgIGNvbnN0IGNvZFByaWNlOiBDb2RQcmljZXNbXSA9IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5jb2RlID09PSBOdW1iZXIocXVvdGFzKSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShjb2RQcmljZVswXS5jb2RlKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKGNvZFByaWNlWzBdLmVucm9sbG1lbnQpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShjb2RQcmljZVswXS5maW5hbmNlZF9wcmljZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFuQ29tcG9uZW50KCl7XG4gICAgdGhpcy5yZXNldExvY2FsU3RvcmFnZSh0aGlzLmNvbnRyb2xzKTtcbiAgfVxuXG4gIHNlbGVjdExldmVscyhkYXRhUGF5bWVudDogYW55KXtcbiAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuZ2V0KCdwYXltZW50X21ldGhvZCcpPy52YWx1ZSA9PSAxKSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5jb2RlKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50LmVucm9sbG1lbnQpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5maW5hbmNlZF9wcmljZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGFpZF9sZXZlbCddLnNldFZhbHVlKGRhdGFQYXltZW50LnBhaWRfbGV2ZWwgLSAxKTtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0gZWxzZSBpZih0aGlzLmNvZEZvcm1TdGVwRm91ci5nZXQoJ3BheW1lbnRfbWV0aG9kJyk/LnZhbHVlID09IDIpe1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuY29kZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5lbnJvbGxtZW50KTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQubm9ybWFsX3ByaWNlKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYWlkX2xldmVsJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQucGFpZF9sZXZlbCAtIDEpO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJJbnB1dFBheW1lbnQoKXtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKG51bGwpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKG51bGwpO1xuICB9XG5cbn1cblxuIiwiPGRpdiAqbmdJZj1cImlzU2VtZXN0cmFsXCIgY2xhc3M9XCJtLTEgcC0yIGJvcmRlci1yb3VuZC1sZyBiZy1ibHVlLTUwMCB0ZXh0LXdoaXRlXCI+XG4gIDxzdHJvbmc+Tm90YTogPC9zdHJvbmc+XG4gIEVsIHRpcG8gZGUgY3Vyc28gc2VsZWNjaW9uYWRvIGZ1ZSBzZW1lc3RyYWwsIHBvciBsbyB0YW50byBlbCBlc3R1ZGlhbnRlIGRlYmUgcGFnYXIgbWF0csOtY3VsYSB5IHByaW1lcmEgY3VvdGEgKE0mTSlcbjwvZGl2PlxuXG48Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBbZm9ybUdyb3VwXT1cImNvZEZvcm1TdGVwRm91clwiIGNsYXNzPVwiZ3JpZCBtdC0yXCI+XG5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgIDxpcHQtc2VsZWN0XG4gICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ11cIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdFBheW1lbnRNZXRob2QoJGV2ZW50KVwiXG4gICAgICBbZGF0YV09XCJwYXltZW50TWV0aG9kc1wiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ03DqXRvZG8gZGUgcGFnbydcIlxuICAgID48L2lwdC1zZWxlY3Q+XG4gICAgPGlwdC1sb2FkZXIgKm5nSWY9XCJmZWVSZXNwb25zZVwiPjwvaXB0LWxvYWRlcj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiAqbmdJZj1cInRoZXJlQXJlUGxhbnNcIj5cbiAgICAgIDxwLXRhYmxlXG4gICAgICAgIFt2YWx1ZV09XCJkYXRhUHJpY2VzXCJcbiAgICAgICAgW3RhYmxlU3R5bGVdPVwieydtaW4td2lkdGgnOiAnMTAwJSd9XCJcbiAgICAgICAgW3Jvd0hvdmVyXT1cInRydWVcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgIFNlbGVjY2lvbiBkZSBuaXZlbGVzIGEgY2FuY2VsYXIuXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJiZy1ibHVlLTIwMCB0ZXh0LWNlbnRlciBmb250LW1lZGl1bSBwdC0yIHBiLTJcIj5DYW5jZWxhcjwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJiZy1ibHVlLTIwMCB0ZXh0LWNlbnRlciBmb250LW1lZGl1bSBwdC0yIHBiLTJcIj5DdW90YXM8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwiYmctYmx1ZS0yMDAgdGV4dC1jZW50ZXIgZm9udC1tZWRpdW0gcHQtMiBwYi0yXCI+QWRtaW48L3RoPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWRhdGE+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRkPnt7IGRhdGEucGFpZF9sZXZlbCB9fSBOaXZlbChlcyk8L3RkPlxuICAgICAgICAgICAgPHRkPnt7IGRhdGEuZmVlX251bWJlciB9fTwvdGQ+XG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJwdC0yIHBiLTJcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLW1vbmV5LWJpbGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tc20gcC1idXR0b24tcm91bmRlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdExldmVscyhkYXRhKVwiXG4gICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvcC10YWJsZT5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10udmFsdWVcIiAtLT5cbiAgICA8IS0tIDxpcHQtc2VsZWN0ICpuZ0lmPVwiaXNGaW5hbmNlZCgpO1wiXG4gICAgICBbaW5pdGlhbFZhbHVlXT1cIicxJ1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ11cIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdFF1b3RhcygkZXZlbnQpXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInTsO6bWVybyBkZSBjdW90YXMnXCJcbiAgICAgIFtkYXRhXT1cImNvZFByaWNlc1wiXG4gICAgICA+PC9pcHQtc2VsZWN0PiAtLT5cbiAgICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgPGlwdC1pbnB1dCBcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgIFtwbGFjZUhvbGRlcl09XCInTW9udG8gdG90YWwgZGUgbGEgbWF0csOtY3VsYSdcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddXCJcbiAgICAgIFt3aXRoUGlwZV09XCJ0cnVlXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICA8aXB0LWlucHV0XG4gICAgICBbd2l0aFBpcGVdPVwidHJ1ZVwiXG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICBbY29udHJvbF09XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXVwiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ1ZhbG9yIHRvdGFsIGRlbCBwcm9ncmFtYSdcIlxuICAgID48L2lwdC1pbnB1dD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgIDxpcHQtaW5wdXRcbiAgICAgIG9uZm9jdXM9XCIodGhpcy50eXBlPSdkYXRlJylcIlxuICAgICAgW2lucHV0VHlwZV09XCInZGF0ZSdcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXVwiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ0ZlY2hhIGRlIHBhZ28nXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVGFibGEgZGUgZmluYW5jaWFjacOzbiAtLT5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiICpuZ0lmPVwiaXNGaW5hbmNpbmdcIj5cbiAgICA8cC10YWJsZVxuICAgICAgW3ZhbHVlXT1cImRhdGFGaW5hbmNpbmdcIlxuICAgICAgW3RhYmxlU3R5bGVdPVwieydtaW4td2lkdGgnOiAnMTAwJSd9XCJcbiAgICAgIFtyb3dIb3Zlcl09XCJ0cnVlXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY2FwdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICBDw6FsY3VsbyBkZSBjdW90YXNcbiAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gY2xhc3M9XCJwLWJ1dHRvbi1zbSBtbC1hdXRvXCIgbGFiZWw9XCJOdWV2byBjw6FsY3Vsb1wiIChjbGljayk9XCJjYWxjdWxhdGVOZXdRdW90ZXMoKVwiIGxhYiBpY29uPVwicGkgcGktcmVwbGF5XCI+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0aD4jPC90aD5cbiAgICAgICAgICA8dGg+VmFsb3I8L3RoPlxuICAgICAgICAgIDx0aD5GZWNoYTwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtZGF0YT5cbiAgICAgICAgPHRyPlxuICAgICAgICAgIDx0ZD57eyBkYXRhWzBdIH19PC90ZD5cbiAgICAgICAgICA8dGQ+e3sgZGF0YVsxXSB9fTwvdGQ+XG4gICAgICAgICAgPHRkPnt7IGRhdGFbMl0gfX08L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3AtdGFibGU+XG4gIDwvZGl2PlxuICA8IS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0+XG5cbjwvZm9ybT5cblxuPGRpdiBjbGFzcz1cImZsZXggbXQtMyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgPHNwYW4gKm5nSWY9XCJjb2RGb3JtU3RlcEZvdXIuaW52YWxpZCAmJiBjb2RGb3JtU3RlcEZvdXIudG91Y2hlZFwiIGNsYXNzPVwidGV4dC1yZWQtNTAwIGZvbnQtYm9sZCB0ZXh0LWNlbnRlciBtdC0xIHB5LTIgYmctcmVkLTEwMCB3LWZ1bGwgYm9yZGVyLXJvdW5kLXhsXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBtbC1hdXRvIGdhcC0yXCI+XG4gICAgPGJ1dHRvbiAqbmdJZj1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZSA9PT0gJzEnXCIgW2Rpc2FibGVkXT1cImlzRmluYW5jaW5nIHx8IGNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZSAhPT0gJzEnXCJ0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJtbC1hdXRvIHAtYnV0dG9uLXNtIHAtYnV0dG9uLXNlY29uZGFyeVwiIChjbGljayk9XCJzaG93VGFibGUoKVwiIHBCdXR0b24gbGFiZWw9XCJDYWxjdWxhciBjdW90YXNcIiBpY29uPVwicGkgcGktc2xpZGVycy1oXCI+PC9idXR0b24+XG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiIWlzRmluYW5jaW5nICYmIGNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZSA9PT0gJzEnXCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtYXV0byBwLWJ1dHRvbi1zbVwiIChjbGljayk9XCJzZW5kRm9ybSgpXCIgcEJ1dHRvbiBsYWJlbD1cIlNpZ3VpZW50ZVwiIGljb249XCJwaSBwaS1hcnJvdy1yaWdodFwiPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLWZvcm0tc3RlcC1mb3VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qvc3RlcHMvY29kLWZvcm0tc3RlcC1mb3VyL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtZm91ci9jb2QtZm9ybS1zdGVwLWZvdXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQVUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBcUJoRSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsWUFBWTtJQXdCeEQsWUFDVSxFQUFlLEVBQ2Ysc0JBQThDLEVBQzlDLG1CQUF3QyxFQUN4QyxnQkFBa0MsRUFDbEMsZUFBZ0MsRUFDaEMsaUJBQW9DLEVBQ3BDLFdBQXdCO1FBRWhDLEtBQUssRUFBRSxDQUFDO1FBUkEsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUFDOUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxz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QUNmLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7O3FIQTFXVSx3QkFBd0I7eUdBQXhCLHdCQUF3QixzS0MxQnJDLDAwSkFrSUE7MkZEeEdhLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSx3QkFBd0I7Z1NBS3hCLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgU3dhbCBmcm9tICdzd2VldGFsZXJ0Mic7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29kRm9ybVN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2QtZm9ybS1zdGVwcyc7XG5pbXBvcnQgeyBDb2RGb3JtQ29udHJvbHMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2QtZm9ybS1jb250cm9scyc7XG5pbXBvcnQgeyBDYWxjdWxhdGVRdW90ZXNQYXJhbXMsIENhbGN1bGF0ZVF1b3Rlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9sb2dpYy9jYWxjdWxhdGUtcXVvdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbXVuaWNhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL2xvZ2ljL2NvbW11bmljYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IENvZFByaWNlcywgQ29kUHJpY2VzUnEsIElPYnRhaW5Db2RQcmljZXNScSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvbW9kZWxzL2NvbW1lcmNpYWwvY29tbWVyY2lhbC5tb2RlbCc7XG5pbXBvcnQgeyBQYXJhbWV0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9wYXJhbWV0ZXJzLXNlcnZpY2UvcGFyYW1ldGVycy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1lcmNpYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9jb21tZXJjaWFsLXNlcnZpY2UvY29tZXJjaWFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL2Jhc2Utc2VydmljZS9iYXNlLnNlcnZpY2UnO1xuXG5pbnRlcmZhY2UgQ291cnNlVHlwZXMge1xuICBjb2RlOiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgbnVtYmVyX2NsYXNzOiBudW1iZXI7XG4gIGFjYWRlbWljX3BsYW46IG51bWJlcjtcbiAgdXBkYXRlZF9hdDogc3RyaW5nO1xuICBjcmVhdGVkX2F0OiBzdHJpbmc7XG59XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29kLWZvcm0tc3RlcC1mb3VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1mb3JtLXN0ZXAtZm91ci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvZEZvcm1TdGVwRm91ckNvbXBvbmVudCBleHRlbmRzIENvZEZvcm1TdGVwcyBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBPdXRwdXQoKSBjaGFuZ2VTdGVwRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGZpbmFuY2luZ0RhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb2RGb3JtU3RlcEZvdXIhOiBGb3JtR3JvdXA7XG4gIGlzQ2FsY3VsYXRlUXVvdGVzQnV0dG9uQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICdGYWx0YW4gY2FtcG9zIHBvciBsbGVuYXIuJztcbiAgcGF5bWVudE1ldGhvZHM6IGFueVtdID0gW1xuICAgIHsgY29kZTogJzEnLCBuYW1lOiAnRmluYW5jaWFkbycgfSxcbiAgICB7IGNvZGU6ICcyJywgbmFtZTogJ0NvbnRhZG8nIH0sXG4gIF07XG4gIGRhdGFGaW5hbmNpbmc6IGFueVtdID0gW107XG4gIGlzRmluYW5jaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU2VtZXN0cmFsOiBib29sZWFuID0gZmFsc2U7XG4gIGNvZFByaWNlczogQ29kUHJpY2VzW10gPSBbXTtcbiAgY29kUHJpY2VzRmlsdGVyOiBDb2RQcmljZXNbXSA9IFtdO1xuXG4gIGRhdGFQcmljZXM6YW55O1xuICBmZWVSZXNwb25zZTogYm9vbGVhbiA9IGZhbHNlO1xuICB0aGVyZUFyZVBsYW5zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy8gQ29udHJvbHMgZGVsIGZvcm11bGFyaW9cbiAgY29udHJvbHMgPSBuZXcgQ29kRm9ybUNvbnRyb2xzKCkuY29udHJvbHNbM107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVRdW90ZXNTZXJ2aWNlOiBDYWxjdWxhdGVRdW90ZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29tbXVuaWNhdG9yU2VydmljZTogQ29tbXVuaWNhdG9yU2VydmljZSxcbiAgICBwcml2YXRlIHBhcmFtZXRlclNlcnZpY2U6IFBhcmFtZXRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2RGb3JtQ29udHJvbHM6IENvZEZvcm1Db250cm9scyxcbiAgICBwcml2YXRlIGNvbW1lcmNpYWxTZXJ2aWNlOiBDb21tZXJjaWFsU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2VTZXJ2aWNlOiBCYXNlU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gdGhpcy5jbGVhbkNvbXBvbmVudCgpO1xuICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgICB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICAgIHRoaXMudmFsaWRhdGVFcnJvcnMoKTtcbiAgICAvLyB0aGlzLmdldENvZFByaWNlc0J5QWdyZWVtZW50KCk7XG4gICAgdGhpcy5nZXRWYWx1ZXNPZlN0ZXBPbmVDb21wb25lbnQoKTtcbiAgICBjb25zb2xlLmxvZygnY2hhbmdlcyBzdGVwIG9uZScpO1xuXG4gIH1cblxuICBnZXRWYWx1ZXNPZlN0ZXBPbmVDb21wb25lbnQoKSB7XG4gICAgLy8gVGlwbyBkZSBjdXJzbyBzZWxlY2Npb25hZG9cbiAgICB0aGlzLmNvbW11bmljYXRvclNlcnZpY2UuZ2V0U2VsZWN0ZWRDb3Vyc2VUeXBlKCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRDb3Vyc2VzVHlwZXMoKS5waXBlKFxuICAgICAgICBtYXAoIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgY291cnNlVHlwZXM6IENvdXJzZVR5cGVzW10gPSByZXNwb25zZS5kYXRhO1xuICAgICAgICAgIHJldHVybiBjb3Vyc2VUeXBlcy5maWx0ZXIoICh7IG5hbWUgfSkgPT4gbmFtZS5pbmNsdWRlcygnU2VtZXN0cmFsJykgKVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSggKGNvdXJzZVR5cGVzOiBDb3Vyc2VUeXBlc1tdKSA9PiB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291cnNlVHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAoY291cnNlVHlwZXNbaV0uY29kZS50b1N0cmluZygpID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5pc1NlbWVzdHJhbCA9IHRydWU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pc1NlbWVzdHJhbCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KTtcblxuICAgIC8vIENvbnZlbmlvIHNlbGVjY2lvbmFkb1xuICAgIC8vIHRoaXMuY29tbXVuaWNhdG9yU2VydmljZS5nZXRTZWxlY3RlZEFncmVlbWVudCgpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgLy8gICB0aGlzLmdldENvZFByaWNlc0J5QWdyZWVtZW50KHZhbHVlKTtcbiAgICAvLyB9KTtcbiAgfVxuXG4gIGdldENvZFByaWNlc0J5QWdyZWVtZW50KGFncmVlbWVudD86IHN0cmluZykge1xuICAgIGxldCBhZ3JlZW1lbnRTZWxlY3RlZDogc3RyaW5nIHwgbnVsbDtcbiAgICBpZiAoYWdyZWVtZW50KSB7XG4gICAgICBhZ3JlZW1lbnRTZWxlY3RlZCA9IGFncmVlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWdyZWVtZW50U2VsZWN0ZWQgPSB0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnYWdyZWVtZW50X2J5X2NhdGVnb3J5JylcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJykge1xuICAgICAgbGV0IHJlcXVlc3Q6IENvZFByaWNlc1JxID0ge1xuICAgICAgICBhZ3JlZW1lbnQ6ICAgICBOdW1iZXIoYWdyZWVtZW50U2VsZWN0ZWQpLFxuICAgICAgICBwYXltZW50X21ldGhvZDogJ2N1b3RhJ1xuICAgICAgfVxuICAgICAgdGhpcy5jb21tZXJjaWFsU2VydmljZS5nZXRDb2RQcmljZXNCeUFncmVlbWVudFR5cGVQYXltZW50KHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT57XG4gICAgICAgIHRoaXMuY29kUHJpY2VzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUodGhpcy5jb2RQcmljZXNbMF0uY29kZSlcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZSh0aGlzLmNvZFByaWNlc1swXS5ub3JtYWxfcHJpY2UpXG4gICAgICB9KVxuICAgICAgfWVsc2Uge1xuICAgICAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcyJykge1xuICAgICAgICAgIGxldCByZXF1ZXN0OiBDb2RQcmljZXNScSA9IHtcbiAgICAgICAgICAgIGFncmVlbWVudDogICAgIE51bWJlcihhZ3JlZW1lbnRTZWxlY3RlZCksXG4gICAgICAgICAgICBwYXltZW50X21ldGhvZDogJ2NvbnRhJ1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmNvbW1lcmNpYWxTZXJ2aWNlLmdldENvZFByaWNlc0J5QWdyZWVtZW50VHlwZVBheW1lbnQocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PntcbiAgICAgICAgICAgIHRoaXMuY29kUHJpY2VzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKHRoaXMuY29kUHJpY2VzWzBdLmNvZGUpO1xuICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZSh0aGlzLmNvZFByaWNlc1swXS5ub3JtYWxfcHJpY2UpXG4gICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZSh0aGlzLmNvZFByaWNlc1swXS5lbnJvbGxtZW50KTtcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvLyB0aGlzLmNvbW1lcmNpYWxTZXJ2aWNlLmdldENvZFByaWNlc0J5QWdyZWVtZW50KE51bWJlcihhZ3JlZW1lbnRTZWxlY3RlZCkpLnN1YnNjcmliZSh7XG4gICAgLy8gICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgIC8vICAgICBpZiAocmVzcG9uc2UuZGF0YSkge1xuICAgIC8vICAgICAgIGNvbnN0IGNvZFByaWNlczogQ29kUHJpY2VzW10gPSByZXNwb25zZS5kYXRhO1xuICAgIC8vICAgICAgIHRoaXMuY29kUHJpY2VzID0gY29kUHJpY2VzO1xuICAgIC8vICAgICAgIGlmICh0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS52YWx1ZSA9PT0gJzEnKSB7XG4gICAgLy8gICAgICAgICAgIGNvbnN0IGF1eCA9IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5hZ3JlZW1lbnQgPT09IE51bWJlcihhZ3JlZW1lbnRTZWxlY3RlZCkpWzBdO1xuICAgIC8vICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShhdXguY29kZSlcbiAgICAvLyAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShhdXgubm9ybWFsX3ByaWNlKVxuICAgIC8vICAgICAgICAgfWVsc2Uge1xuICAgIC8vICAgICAgICAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcyJykge1xuICAgIC8vICAgICAgICAgICAgIC8vIGNvbnN0IGF1eCA9IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5hZ3JlZW1lbnQgPT09IE51bWJlcihhZ3JlZW1lbnRTZWxlY3RlZCkpWzBdO1xuICAgIC8vICAgICAgICAgICAgIGNvbnN0IGF1eCA9IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5mZWVfbnVtYmVyID09PSAxKVswXTtcbiAgICAvLyAgICAgICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShhdXguY29kZSk7XG4gICAgLy8gICAgICAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShhdXgubm9ybWFsX3ByaWNlKVxuICAgIC8vICAgICAgICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKGF1eC5lbnJvbGxtZW50KTtcbiAgICAvLyAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgfSxcbiAgICAvLyAgIGVycm9yOiAoZXJyKSA9PiBjb25zb2xlLmxvZyhlcnIpXG4gICAgLy8gfSlcbiAgfVxuXG4gIHZhbGlkYXRlRXJyb3JzKCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoY2hhbmdlcyA9PiB7XG4gICAgICBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uaGFzRXJyb3IoJ21pbicpKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0xhIGNhbnRpZGFkIGRlIGN1b3RhcyBtw61uaW1hcyBkZWJlIHNlciAxJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uaGFzRXJyb3IoJ21heCcpKSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ0xhIGNhbnRpZGFkIGRlIGN1b3RhcyBubyBkZWJlIHNlciBzdXBlcmlvciBhIDEyJztcbiAgICAgIH1cbiAgICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRmFsdGFuIGNhbXBvcyBwb3IgbGxlbmFyJztcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgc2VhcmNoUHJpY2VCeVR5cGVQYXltZW50KGFncmVlbWVudFNlbGVjdGVkOiBhbnksIHR5cGU6IHN0cmluZywgY2hhbmdlOiBzdHJpbmcpe1xuICAgIGxldCByZXF1ZXN0OiBDb2RQcmljZXNScSA9IHtcbiAgICAgIGFncmVlbWVudDogICAgIE51bWJlcihhZ3JlZW1lbnRTZWxlY3RlZCksXG4gICAgICBwYXltZW50X21ldGhvZDogdHlwZVxuICAgIH1cbiAgICB0aGlzLmNvbW1lcmNpYWxTZXJ2aWNlLmdldENvZFByaWNlc0J5QWdyZWVtZW50VHlwZVBheW1lbnQocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PntcbiAgICAgIHRoaXMuY29kUHJpY2VzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KVxuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHByb2dyYW1fcHJpY2U6IFt7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWUgfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHBheW1lbnRfZGF0ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgcGF5bWVudF9tZXRob2Q6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHF1b3RhX3RpbWVzOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICB0b3RhbF9wcmljZTogW3sgdmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgcGFpZF9sZXZlbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIH0pO1xuXG4gICAgdGhpcy5saXN0ZW5QYXltZW50TWV0aG9kRmllbGQoKTtcbiAgfVxuXG4gIGxpc3RlblBheW1lbnRNZXRob2RGaWVsZCgpIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb2RGb3JtU3RlcEZvdXIuZ2V0KCdwYXltZW50X21ldGhvZCcpO1xuICAgIGNvbnRyb2w/LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgLy8gRmluYW5jaWFkb1xuICAgICAgaWYgKGNoYW5nZSA9PT0gJzEnKSB7XG4gICAgICAgIC8vIFBvbmVyIHZhbGlkYWNpb25lc1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG5cbiAgICAgICAgLy8gQWN0dWFsaXphciBwYXJhIHF1ZSBzZSB0b21lbiBsb3MgY2FtYmlvc1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcblxuICAgICAgICAvLyBBY3R1YWxpemFyIGxvcyBjb250cm9scyBnbG9iYWxlc1xuICAgICAgICB0aGlzLnVwZGF0ZUdsb2JhbENvbnRyb2xzKGNoYW5nZSlcbiAgICAgIH1cblxuICAgICAgLy8gZGUgY29udGFkb1xuICAgICAgaWYgKGNoYW5nZSA9PT0gJzInKSB7XG4gICAgICAgIC8vIFF1aXRhciBsYXMgdmFsaWRhY2lvbmVzXG4gICAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuXG4gICAgICAgIC8vIEFjdHVhbGl6YXIgcGFyYSBxdWUgc2UgdG9tZW4gbG9zIGNhbWJpb3NcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG5cbiAgICAgICAgLy8gQWN0dWFsaXphciBsb3MgY29udHJvbHMgZ2xvYmFsZXNcbiAgICAgICAgdGhpcy51cGRhdGVHbG9iYWxDb250cm9scyhjaGFuZ2UpXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVHbG9iYWxDb250cm9scyhjaGFuZ2U6IHN0cmluZykge1xuICAgIGxldCBjb250cm9scyA9IHRoaXMuY29udHJvbHMuZmlsdGVyKGNvbnRyb2wgPT4gY29udHJvbC5uYW1lICE9PSAncGF5bWVudF9tZXRob2QnKTtcbiAgICBjb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgaWYgKGNoYW5nZSA9PT0gJzEnKSB0aGlzLmNvZEZvcm1Db250cm9scy5jaGFuZ2VWYWx1ZSg0LCBjb250cm9sLm5hbWUsIHRydWUpXG4gICAgICBpZiAoY2hhbmdlID09PSAnMicpIHtcbiAgICAgICAgaWYgKGNvbnRyb2wubmFtZSA9PT0gJ3F1b3RhX3RpbWVzJykgdGhpcy5jb2RGb3JtQ29udHJvbHMuY2hhbmdlVmFsdWUoNCwgY29udHJvbC5uYW1lLCBmYWxzZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCkge1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHN0YXJ0TG9jYWxTdG9yYWdlV29yaygpIHtcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBsZXQgbG9jYWxTdG9yYWdlVmFsdWU6IGxvY2FsU3RvcmFnZVZhbHVlcyA9IHRoaXMucmVhZEFuZFdyaXRlTFMoNCwgY29udHJvbC5uYW1lKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlcyg0LCBjb250cm9sLm5hbWUsIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0udmFsdWVDaGFuZ2VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dUYWJsZSgpIHtcbiAgICB0aGlzLmlzQ2FsY3VsYXRlUXVvdGVzQnV0dG9uQ2xpY2tlZCA9IHRydWU7XG4gICAgY29uc3QgdG90YWxfcHJpY2UgPSB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS52YWx1ZTtcbiAgICBpZiAoKHRvdGFsX3ByaWNlID09PSAnbnVsbCcpIHx8IHRoaXMuY29kRm9ybVN0ZXBGb3VyLmludmFsaWQpIHtcbiAgICAgIFN3YWwuZmlyZSh7XG4gICAgICAgIHRpdGxlOiAnRXJyb3IgdGFibGUnLFxuICAgICAgICB0ZXh0OiAnRGViZXMgaW5ncmVzYXIgZWwgbW9udG8gdG90YWwgZGUgbGEgbWF0csOtY3VsYSB5IGxhIGN1b3RhIGluaWNpYWwnLFxuICAgICAgICBpY29uOiAnZXJyb3InXG4gICAgICB9KVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIENhbGN1bGFyIGN1b3Rhc1xuICAgIHRoaXMuZGF0YUZpbmFuY2luZyA9IFtdO1xuICAgIC8vIGNvbnN0IHF1b3RhVmFsdWVzID0gdGhpcy5jb2RQcmljZXMuZmlsdGVyKGNvZFByaWNlID0+IGNvZFByaWNlLmNvZGUgPT09IE51bWJlcih0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS52YWx1ZSkpWzBdLnF1b3RhX3ByaWNlO1xuICAgIC8vIGxldCBwYXJhbXM6IENhbGN1bGF0ZVF1b3Rlc1BhcmFtcyA9IHtcbiAgICAvLyAgIGRhdGU6IG5ldyBEYXRlKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X2RhdGUnXS52YWx1ZSksXG4gICAgLy8gICBxdW90YVZhbHVlcyxcbiAgICAvLyAgIHF1b3RhVGltZXM6IHRoaXMuY29kUHJpY2VzLmZpbHRlcihjb2RQcmljZSA9PiBjb2RQcmljZS5jb2RlID09PSBOdW1iZXIodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10udmFsdWUpKVswXS5mZWVfbnVtYmVyLFxuICAgIC8vICAgdG90YWxQcmljZTogdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10udmFsdWUsXG4gICAgLy8gfVxuXG4gICAgY29uc3QgcXVvdGFWYWx1ZXMgPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuY29kZSA9PT0gTnVtYmVyKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnZhbHVlKSlbMF0ucXVvdGFfcHJpY2U7XG4gICAgbGV0IHBhcmFtczogQ2FsY3VsYXRlUXVvdGVzUGFyYW1zID0ge1xuICAgICAgZGF0ZTogbmV3IERhdGUodGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfZGF0ZSddLnZhbHVlKSxcbiAgICAgIHF1b3RhVmFsdWVzLFxuICAgICAgcXVvdGFUaW1lczogdGhpcy5jb2RQcmljZXMuZmlsdGVyKGNvZFByaWNlID0+IGNvZFByaWNlLmNvZGUgPT09IE51bWJlcih0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS52YWx1ZSkpWzBdLmZlZV9udW1iZXIsXG4gICAgICB0b3RhbFByaWNlOiB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS52YWx1ZSxcbiAgICB9XG4gICAgY29uc29sZS5sb2cocGFyYW1zKTtcblxuXG4gICAgdGhpcy5kYXRhRmluYW5jaW5nID0gdGhpcy5jYWxjdWxhdGVRdW90ZXNTZXJ2aWNlLmNhbGN1bGF0ZVF1b3RlcyhwYXJhbXMpO1xuICAgIHRoaXMuaXNGaW5hbmNpbmcgPSB0cnVlO1xuICAgIHRoaXMuZmluYW5jaW5nRGF0YS5lbWl0KHRoaXMuZGF0YUZpbmFuY2luZyk7XG4gIH1cblxuICBjYWxjdWxhdGVOZXdRdW90ZXMoKSB7XG4gICAgdGhpcy5pc0NhbGN1bGF0ZVF1b3Rlc0J1dHRvbkNsaWNrZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzRmluYW5jaW5nID0gZmFsc2U7XG4gICAgdGhpcy5maW5hbmNpbmdEYXRhLmVtaXQobnVsbCk7XG4gIH1cblxuICBzZW5kRm9ybSgpIHtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmludmFsaWQpIHJldHVybjtcbiAgICAvLyBNb3Zlcm5vcyBhbCBwYXNvIDVcbiAgICB0aGlzLmNoYW5nZVN0ZXBFdmVudC5lbWl0KDQpO1xuICB9XG5cbiAgaXNGaW5hbmNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT0gMTtcbiAgfVxuXG4gIC8vIEV2ZW50b3MgZGVsIHNlbGVjdFxuICBzZWxlY3RQYXltZW50TWV0aG9kKHBheW1lbnRNZXRob2Q6IGFueSkge1xuICAgIHRoaXMuZmVlUmVzcG9uc2UgPSB0cnVlO1xuICAgIHRoaXMudGhlcmVBcmVQbGFucyA9IGZhbHNlO1xuXG4gICAgaWYgKHBheW1lbnRNZXRob2QgIT09ICcnKSB7XG4gICAgICBjb25zdCByZXF1ZXN0OiBJT2J0YWluQ29kUHJpY2VzUnEgPSB7XG4gICAgICAgIHRva2VuOiAgICAgICAgICAgIHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlclRva2VuKCksXG4gICAgICAgIGNvdXJzZV90eXBlOiAgICAgIE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnY291cnNlX3R5cGUnKSksXG4gICAgICAgIGFncmVlbWVudDogICAgICAgIE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnYWdyZWVtZW50X2J5X2NhdGVnb3J5JykpLFxuICAgICAgICBjb3Vyc2VfbW9kYWxpdHk6ICBOdW1iZXIodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2NvdXJzZV9tb2RhbGl0eScpKSxcbiAgICAgICAgcGF5bWVudF9tZXRob2Q6ICAgcGFyc2VJbnQocGF5bWVudE1ldGhvZClcbiAgICAgIH1cbiAgICAgIGNvbnNvbGUubG9nKHJlcXVlc3QpO1xuXG4gICAgICB0aGlzLmNvbW1lcmNpYWxTZXJ2aWNlLk9idGFpbkNvZFByaWNlcyhyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlLmRhdGEgIT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuZGF0YVByaWNlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgICAgdGhpcy5mZWVSZXNwb25zZSA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudGhlcmVBcmVQbGFucyA9IHRydWU7XG4gICAgICAgIH1lbHNlIHtcbiAgICAgICAgICB0aGlzLnRoZXJlQXJlUGxhbnMgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmZlZVJlc3BvbnNlID0gZmFsc2U7XG4gICAgICAgICAgU3dhbC5maXJlKHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnY2VudGVyJyxcbiAgICAgICAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgICAgICAgIHRpdGxlOlxuICAgICAgICAgICAgICAnPHAgc3R5bGU9XCJmb250LWZhbWlseTogUG9wcGluc1wiXCI+T29wcy4uIG5vIGhheSBwbGFuZXMgZGUgcGFnb3MsIFxcbiBlbiBlbCBjdXJzbyBlbGVnaWRvLjwvcD4nLFxuICAgICAgICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgdGltZXI6IDMwMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5jbGVhcklucHV0UGF5bWVudCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddLnNldFZhbHVlKHBheW1lbnRNZXRob2QpO1xuICAgICAgLy8gdGhpcy5nZXRDb2RQcmljZXNCeUFncmVlbWVudCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9tZXRob2QnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RRdW90YXMocXVvdGFzOiBzdHJpbmcpIHtcbiAgICBpZiAocXVvdGFzICE9PSAnTsO6bWVybyBkZSBjdW90YXMnKSB7XG4gICAgICBjb25zdCBjb2RQcmljZTogQ29kUHJpY2VzW10gPSB0aGlzLmNvZFByaWNlcy5maWx0ZXIoY29kUHJpY2UgPT4gY29kUHJpY2UuY29kZSA9PT0gTnVtYmVyKHF1b3RhcykpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoY29kUHJpY2VbMF0uY29kZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShjb2RQcmljZVswXS5lbnJvbGxtZW50KTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoY29kUHJpY2VbMF0uZmluYW5jZWRfcHJpY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWyd0b3RhbF9wcmljZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBjbGVhbkNvbXBvbmVudCgpe1xuICAgIHRoaXMucmVzZXRMb2NhbFN0b3JhZ2UodGhpcy5jb250cm9scyk7XG4gIH1cblxuICBzZWxlY3RMZXZlbHMoZGF0YVBheW1lbnQ6IGFueSl7XG4gICAgY29uc29sZS5sb2coZGF0YVBheW1lbnQpO1xuXG4gICAgaWYgKHRoaXMuY29kRm9ybVN0ZXBGb3VyLmdldCgncGF5bWVudF9tZXRob2QnKT8udmFsdWUgPT0gMSkge1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3F1b3RhX3RpbWVzJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuY29kZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5lbnJvbGxtZW50KTtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuZmluYW5jZWRfcHJpY2UpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BhaWRfbGV2ZWwnXS5zZXRWYWx1ZShkYXRhUGF5bWVudC5wYWlkX2xldmVsIC0gMSk7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9IGVsc2UgaWYodGhpcy5jb2RGb3JtU3RlcEZvdXIuZ2V0KCdwYXltZW50X21ldGhvZCcpPy52YWx1ZSA9PSAyKXtcbiAgICAgIHRoaXMuY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnNldFZhbHVlKGRhdGFQYXltZW50LmNvZGUpO1xuICAgICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3RvdGFsX3ByaWNlJ10uc2V0VmFsdWUoZGF0YVBheW1lbnQuZW5yb2xsbWVudCk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncHJvZ3JhbV9wcmljZSddLnNldFZhbHVlKGRhdGFQYXltZW50Lm5vcm1hbF9wcmljZSk7XG4gICAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGFpZF9sZXZlbCddLnNldFZhbHVlKGRhdGFQYXltZW50LnBhaWRfbGV2ZWwgLSAxKTtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFySW5wdXRQYXltZW50KCl7XG4gICAgdGhpcy5jb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3Byb2dyYW1fcHJpY2UnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncXVvdGFfdGltZXMnXS5zZXRWYWx1ZShudWxsKTtcbiAgICB0aGlzLmNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXS5zZXRWYWx1ZShudWxsKTtcbiAgfVxuXG59XG5cbiIsIjxkaXYgKm5nSWY9XCJpc1NlbWVzdHJhbFwiIGNsYXNzPVwibS0xIHAtMiBib3JkZXItcm91bmQtbGcgYmctYmx1ZS01MDAgdGV4dC13aGl0ZVwiPlxuICA8c3Ryb25nPk5vdGE6IDwvc3Ryb25nPlxuICBFbCB0aXBvIGRlIGN1cnNvIHNlbGVjY2lvbmFkbyBmdWUgc2VtZXN0cmFsLCBwb3IgbG8gdGFudG8gZWwgZXN0dWRpYW50ZSBkZWJlIHBhZ2FyIG1hdHLDrWN1bGEgeSBwcmltZXJhIGN1b3RhIChNJk0pXG48L2Rpdj5cblxuPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJjb2RGb3JtU3RlcEZvdXJcIiBjbGFzcz1cImdyaWQgbXQtMlwiPlxuXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICA8aXB0LXNlbGVjdFxuICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWVcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwYXltZW50X21ldGhvZCddXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RQYXltZW50TWV0aG9kKCRldmVudClcIlxuICAgICAgW2RhdGFdPVwicGF5bWVudE1ldGhvZHNcIlxuICAgICAgW2RlZmF1bHRUZXh0XT1cIidNw6l0b2RvIGRlIHBhZ28nXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxpcHQtbG9hZGVyICpuZ0lmPVwiZmVlUmVzcG9uc2VcIj48L2lwdC1sb2FkZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCIgKm5nSWY9XCJ0aGVyZUFyZVBsYW5zXCI+XG4gICAgICA8cC10YWJsZVxuICAgICAgICBbdmFsdWVdPVwiZGF0YVByaWNlc1wiXG4gICAgICAgIFt0YWJsZVN0eWxlXT1cInsnbWluLXdpZHRoJzogJzEwMCUnfVwiXG4gICAgICAgIFtyb3dIb3Zlcl09XCJ0cnVlXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICBTZWxlY2Npb24gZGUgbml2ZWxlcyBhIGNhbmNlbGFyLlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwiYmctYmx1ZS0yMDAgdGV4dC1jZW50ZXIgZm9udC1tZWRpdW0gcHQtMiBwYi0yXCI+Q2FuY2VsYXI8L3RoPlxuICAgICAgICAgICAgPHRoIGNsYXNzPVwiYmctYmx1ZS0yMDAgdGV4dC1jZW50ZXIgZm9udC1tZWRpdW0gcHQtMiBwYi0yXCI+Q3VvdGFzPC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cImJnLWJsdWUtMjAwIHRleHQtY2VudGVyIGZvbnQtbWVkaXVtIHB0LTIgcGItMlwiPkFkbWluPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1kYXRhPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0ZD57eyBkYXRhLnBhaWRfbGV2ZWwgfX0gTml2ZWwoZXMpPC90ZD5cbiAgICAgICAgICAgIDx0ZD57eyBkYXRhLmZlZV9udW1iZXIgfX08L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwicHQtMiBwYi0yXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgIGljb249XCJwaSBwaS1tb25leS1iaWxsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXNtIHAtYnV0dG9uLXJvdW5kZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RMZXZlbHMoZGF0YSlcIlxuICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L3AtdGFibGU+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFtpbml0aWFsVmFsdWVdPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddLnZhbHVlXCIgLS0+XG4gICAgPCEtLSA8aXB0LXNlbGVjdCAqbmdJZj1cImlzRmluYW5jZWQoKTtcIlxuICAgICAgW2luaXRpYWxWYWx1ZV09XCInMSdcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydxdW90YV90aW1lcyddXCJcbiAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RRdW90YXMoJGV2ZW50KVwiXG4gICAgICBbZGVmYXVsdFRleHRdPVwiJ07Dum1lcm8gZGUgY3VvdGFzJ1wiXG4gICAgICBbZGF0YV09XCJjb2RQcmljZXNcIlxuICAgICAgPjwvaXB0LXNlbGVjdD4gLS0+XG4gICAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgIDxpcHQtaW5wdXQgXG4gICAgICBbaW5wdXRUeXBlXT1cIid0ZXh0J1wiXG4gICAgICBbcGxhY2VIb2xkZXJdPVwiJ01vbnRvIHRvdGFsIGRlIGxhIG1hdHLDrWN1bGEnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sndG90YWxfcHJpY2UnXVwiXG4gICAgICBbd2l0aFBpcGVdPVwidHJ1ZVwiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgPGlwdC1pbnB1dFxuICAgICAgW3dpdGhQaXBlXT1cInRydWVcIlxuICAgICAgW2lucHV0VHlwZV09XCIndGV4dCdcIlxuICAgICAgW2NvbnRyb2xdPVwiY29kRm9ybVN0ZXBGb3VyLmNvbnRyb2xzWydwcm9ncmFtX3ByaWNlJ11cIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidWYWxvciB0b3RhbCBkZWwgcHJvZ3JhbWEnXCJcbiAgICA+PC9pcHQtaW5wdXQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICA8aXB0LWlucHV0XG4gICAgICBvbmZvY3VzPVwiKHRoaXMudHlwZT0nZGF0ZScpXCJcbiAgICAgIFtpbnB1dFR5cGVdPVwiJ2RhdGUnXCJcbiAgICAgIFtjb250cm9sXT1cImNvZEZvcm1TdGVwRm91ci5jb250cm9sc1sncGF5bWVudF9kYXRlJ11cIlxuICAgICAgW3BsYWNlSG9sZGVyXT1cIidGZWNoYSBkZSBwYWdvJ1wiXG4gICAgPjwvaXB0LWlucHV0PlxuICA8L2Rpdj5cblxuICA8IS0tIFRhYmxhIGRlIGZpbmFuY2lhY2nDs24gLS0+XG4gIDxkaXYgY2xhc3M9XCJjb2wtMTJcIiAqbmdJZj1cImlzRmluYW5jaW5nXCI+XG4gICAgPHAtdGFibGVcbiAgICAgIFt2YWx1ZV09XCJkYXRhRmluYW5jaW5nXCJcbiAgICAgIFt0YWJsZVN0eWxlXT1cInsnbWluLXdpZHRoJzogJzEwMCUnfVwiXG4gICAgICBbcm93SG92ZXJdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgQ8OhbGN1bG8gZGUgY3VvdGFzXG4gICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIGNsYXNzPVwicC1idXR0b24tc20gbWwtYXV0b1wiIGxhYmVsPVwiTnVldm8gY8OhbGN1bG9cIiAoY2xpY2spPVwiY2FsY3VsYXRlTmV3UXVvdGVzKClcIiBsYWIgaWNvbj1cInBpIHBpLXJlcGxheVwiPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGg+IzwvdGg+XG4gICAgICAgICAgPHRoPlZhbG9yPC90aD5cbiAgICAgICAgICA8dGg+RmVjaGE8L3RoPlxuICAgICAgICA8L3RyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LWRhdGE+XG4gICAgICAgIDx0cj5cbiAgICAgICAgICA8dGQ+e3sgZGF0YVswXSB9fTwvdGQ+XG4gICAgICAgICAgPHRkPnt7IGRhdGFbMV0gfX08L3RkPlxuICAgICAgICAgIDx0ZD57eyBkYXRhWzJdIH19PC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9wLXRhYmxlPlxuICA8L2Rpdj5cbiAgPCEtLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tPlxuXG48L2Zvcm0+XG5cbjxkaXYgY2xhc3M9XCJmbGV4IG10LTMgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gIDxzcGFuICpuZ0lmPVwiY29kRm9ybVN0ZXBGb3VyLmludmFsaWQgJiYgY29kRm9ybVN0ZXBGb3VyLnRvdWNoZWRcIiBjbGFzcz1cInRleHQtcmVkLTUwMCBmb250LWJvbGQgdGV4dC1jZW50ZXIgbXQtMSBweS0yIGJnLXJlZC0xMDAgdy1mdWxsIGJvcmRlci1yb3VuZC14bFwiPnt7IGVycm9yTWVzc2FnZSB9fTwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggbWwtYXV0byBnYXAtMlwiPlxuICAgIDxidXR0b24gKm5nSWY9XCJjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJ1wiIFtkaXNhYmxlZF09XCJpc0ZpbmFuY2luZyB8fCBjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgIT09ICcxJ1widHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtYXV0byBwLWJ1dHRvbi1zbSBwLWJ1dHRvbi1zZWNvbmRhcnlcIiAoY2xpY2spPVwic2hvd1RhYmxlKClcIiBwQnV0dG9uIGxhYmVsPVwiQ2FsY3VsYXIgY3VvdGFzXCIgaWNvbj1cInBpIHBpLXNsaWRlcnMtaFwiPjwvYnV0dG9uPlxuICAgIDxidXR0b24gW2Rpc2FibGVkXT1cIiFpc0ZpbmFuY2luZyAmJiBjb2RGb3JtU3RlcEZvdXIuY29udHJvbHNbJ3BheW1lbnRfbWV0aG9kJ10udmFsdWUgPT09ICcxJ1wiIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cIm1sLWF1dG8gcC1idXR0b24tc21cIiAoY2xpY2spPVwic2VuZEZvcm0oKVwiIHBCdXR0b24gbGFiZWw9XCJTaWd1aWVudGVcIiBpY29uPVwicGkgcGktYXJyb3ctcmlnaHRcIj48L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -4043,6 +4043,13 @@ class CodFormStepFourComponent extends CodFormSteps {
4043
4043
  }
4044
4044
  // Calcular cuotas
4045
4045
  this.dataFinancing = [];
4046
+ // const quotaValues = this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].quota_price;
4047
+ // let params: CalculateQuotesParams = {
4048
+ // date: new Date(this.codFormStepFour.controls['payment_date'].value),
4049
+ // quotaValues,
4050
+ // quotaTimes: this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].fee_number,
4051
+ // totalPrice: this.codFormStepFour.controls['total_price'].value,
4052
+ // }
4046
4053
  const quotaValues = this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].quota_price;
4047
4054
  let params = {
4048
4055
  date: new Date(this.codFormStepFour.controls['payment_date'].value),
@@ -4050,6 +4057,7 @@ class CodFormStepFourComponent extends CodFormSteps {
4050
4057
  quotaTimes: this.codPrices.filter(codPrice => codPrice.code === Number(this.codFormStepFour.controls['quota_times'].value))[0].fee_number,
4051
4058
  totalPrice: this.codFormStepFour.controls['total_price'].value,
4052
4059
  };
4060
+ console.log(params);
4053
4061
  this.dataFinancing = this.calculateQuotesService.calculateQuotes(params);
4054
4062
  this.isFinancing = true;
4055
4063
  this.financingData.emit(this.dataFinancing);
@@ -4126,6 +4134,7 @@ class CodFormStepFourComponent extends CodFormSteps {
4126
4134
  }
4127
4135
  selectLevels(dataPayment) {
4128
4136
  var _a, _b;
4137
+ console.log(dataPayment);
4129
4138
  if (((_a = this.codFormStepFour.get('payment_method')) === null || _a === void 0 ? void 0 : _a.value) == 1) {
4130
4139
  this.codFormStepFour.controls['quota_times'].setValue(dataPayment.code);
4131
4140
  this.codFormStepFour.controls['total_price'].setValue(dataPayment.enrollment);