taxtank-core 0.30.137 → 0.30.138

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.
@@ -1,5 +1,5 @@
1
1
  import { Collection } from '../../collection';
2
- import { VehicleExpense } from '../../../models/report/vehicle-expense/vehicle-expense';
2
+ import { VehicleExpense } from '../../../models/report';
3
3
  export class VehicleExpenseCollection extends Collection {
4
4
  constructor(transactions, depreciations, vehicleClaim) {
5
5
  super();
@@ -10,8 +10,8 @@ export class VehicleExpenseCollection extends Collection {
10
10
  const transactionsByChartAccounts = transactions.groupBy('chartAccounts.name');
11
11
  const transactionExpenses = transactionsByChartAccounts.keys.map((chartAccountsName) => new VehicleExpense(transactionsByChartAccounts.get(chartAccountsName).amount, vehicleClaim.workUsage, chartAccountsName));
12
12
  // group all depreciations into one expense item
13
- const depreciationExpense = new VehicleExpense(depreciations.getCurrentYearForecastAmount(), vehicleClaim.workUsage, 'Depreciation');
13
+ const depreciationExpense = new VehicleExpense(-depreciations.getCurrentYearForecastAmount(), vehicleClaim.workUsage, 'Depreciation');
14
14
  this.items.push(...[depreciationExpense, ...transactionExpenses]);
15
15
  }
16
16
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1leHBlbnNlLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvcmVwb3J0L3ZlaGljbGUtZXhwZW5zZS92ZWhpY2xlLWV4cGVuc2UuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBT3hGLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxVQUEwQjtJQUN0RSxZQUNFLFlBQW1DLEVBQ25DLGFBQXFDLEVBQ3JDLFlBQTBCO1FBRTFCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyxRQUFRLENBQUMsWUFBbUMsRUFBRSxhQUFxQyxFQUFFLFlBQTBCO1FBQ3JILElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRWhCLE1BQU0sMkJBQTJCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRS9FLE1BQU0sbUJBQW1CLEdBQXFCLDJCQUEyQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxpQkFBeUIsRUFBRSxFQUFFLENBQUMsSUFBSSxjQUFjLENBQ2xJLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sRUFDekQsWUFBWSxDQUFDLFNBQVMsRUFDdEIsaUJBQWlCLENBQ2xCLENBQUMsQ0FBQztRQUVILGdEQUFnRDtRQUNoRCxNQUFNLG1CQUFtQixHQUFtQixJQUFJLGNBQWMsQ0FDNUQsYUFBYSxDQUFDLDRCQUE0QixFQUFFLEVBQzVDLFlBQVksQ0FBQyxTQUFTLEVBQ3RCLGNBQWMsQ0FDZixDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IFZlaGljbGVFeHBlbnNlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3JlcG9ydC92ZWhpY2xlLWV4cGVuc2UvdmVoaWNsZS1leHBlbnNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkRpY3Rpb25hcnkgfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9uLWRpY3Rpb25hcnknO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2RlcHJlY2lhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9kZXByZWNpYXRpb24vZGVwcmVjaWF0aW9uJztcbmltcG9ydCB7IFZlaGljbGVDbGFpbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy92ZWhpY2xlL3ZlaGljbGUtY2xhaW0nO1xuXG5leHBvcnQgY2xhc3MgVmVoaWNsZUV4cGVuc2VDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxWZWhpY2xlRXhwZW5zZT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbixcbiAgICBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uLFxuICAgIHZlaGljbGVDbGFpbTogVmVoaWNsZUNsYWltXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zZXRJdGVtcyh0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMsIHZlaGljbGVDbGFpbSk7XG4gIH1cblxuICBwcml2YXRlIHNldEl0ZW1zKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uLCB2ZWhpY2xlQ2xhaW06IFZlaGljbGVDbGFpbSk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMgPSBbXTtcblxuICAgIGNvbnN0IHRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cyA9IHRyYW5zYWN0aW9ucy5ncm91cEJ5KCdjaGFydEFjY291bnRzLm5hbWUnKTtcblxuICAgIGNvbnN0IHRyYW5zYWN0aW9uRXhwZW5zZXM6IFZlaGljbGVFeHBlbnNlW10gPSB0cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHMua2V5cy5tYXAoKGNoYXJ0QWNjb3VudHNOYW1lOiBzdHJpbmcpID0+IG5ldyBWZWhpY2xlRXhwZW5zZShcbiAgICAgIHRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cy5nZXQoY2hhcnRBY2NvdW50c05hbWUpLmFtb3VudCxcbiAgICAgIHZlaGljbGVDbGFpbS53b3JrVXNhZ2UsXG4gICAgICBjaGFydEFjY291bnRzTmFtZVxuICAgICkpO1xuXG4gICAgLy8gZ3JvdXAgYWxsIGRlcHJlY2lhdGlvbnMgaW50byBvbmUgZXhwZW5zZSBpdGVtXG4gICAgY29uc3QgZGVwcmVjaWF0aW9uRXhwZW5zZTogVmVoaWNsZUV4cGVuc2UgPSBuZXcgVmVoaWNsZUV4cGVuc2UoXG4gICAgICBkZXByZWNpYXRpb25zLmdldEN1cnJlbnRZZWFyRm9yZWNhc3RBbW91bnQoKSxcbiAgICAgIHZlaGljbGVDbGFpbS53b3JrVXNhZ2UsXG4gICAgICAnRGVwcmVjaWF0aW9uJ1xuICAgICk7XG5cbiAgICB0aGlzLml0ZW1zLnB1c2goLi4uW2RlcHJlY2lhdGlvbkV4cGVuc2UsIC4uLnRyYW5zYWN0aW9uRXhwZW5zZXNdKTtcbiAgfVxufVxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVoaWNsZS1leHBlbnNlLmNvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvcmVwb3J0L3ZlaGljbGUtZXhwZW5zZS92ZWhpY2xlLWV4cGVuc2UuY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBS3hELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxVQUEwQjtJQUN0RSxZQUNFLFlBQW1DLEVBQ25DLGFBQXFDLEVBQ3JDLFlBQTBCO1FBRTFCLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyxRQUFRLENBQUMsWUFBbUMsRUFBRSxhQUFxQyxFQUFFLFlBQTBCO1FBQ3JILElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRWhCLE1BQU0sMkJBQTJCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRS9FLE1BQU0sbUJBQW1CLEdBQXFCLDJCQUEyQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxpQkFBeUIsRUFBRSxFQUFFLENBQUMsSUFBSSxjQUFjLENBQ2xJLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sRUFDekQsWUFBWSxDQUFDLFNBQVMsRUFDdEIsaUJBQWlCLENBQ2xCLENBQUMsQ0FBQztRQUVILGdEQUFnRDtRQUNoRCxNQUFNLG1CQUFtQixHQUFtQixJQUFJLGNBQWMsQ0FDNUQsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLEVBQUUsRUFDN0MsWUFBWSxDQUFDLFNBQVMsRUFDdEIsY0FBYyxDQUNmLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL2NvbGxlY3Rpb24nO1xuaW1wb3J0IHsgVmVoaWNsZUV4cGVuc2UgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcmVwb3J0JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9kZXByZWNpYXRpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBWZWhpY2xlQ2xhaW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuXG5leHBvcnQgY2xhc3MgVmVoaWNsZUV4cGVuc2VDb2xsZWN0aW9uIGV4dGVuZHMgQ29sbGVjdGlvbjxWZWhpY2xlRXhwZW5zZT4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbixcbiAgICBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uLFxuICAgIHZlaGljbGVDbGFpbTogVmVoaWNsZUNsYWltXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zZXRJdGVtcyh0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMsIHZlaGljbGVDbGFpbSk7XG4gIH1cblxuICBwcml2YXRlIHNldEl0ZW1zKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uLCB2ZWhpY2xlQ2xhaW06IFZlaGljbGVDbGFpbSk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXMgPSBbXTtcblxuICAgIGNvbnN0IHRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cyA9IHRyYW5zYWN0aW9ucy5ncm91cEJ5KCdjaGFydEFjY291bnRzLm5hbWUnKTtcblxuICAgIGNvbnN0IHRyYW5zYWN0aW9uRXhwZW5zZXM6IFZlaGljbGVFeHBlbnNlW10gPSB0cmFuc2FjdGlvbnNCeUNoYXJ0QWNjb3VudHMua2V5cy5tYXAoKGNoYXJ0QWNjb3VudHNOYW1lOiBzdHJpbmcpID0+IG5ldyBWZWhpY2xlRXhwZW5zZShcbiAgICAgIHRyYW5zYWN0aW9uc0J5Q2hhcnRBY2NvdW50cy5nZXQoY2hhcnRBY2NvdW50c05hbWUpLmFtb3VudCxcbiAgICAgIHZlaGljbGVDbGFpbS53b3JrVXNhZ2UsXG4gICAgICBjaGFydEFjY291bnRzTmFtZVxuICAgICkpO1xuXG4gICAgLy8gZ3JvdXAgYWxsIGRlcHJlY2lhdGlvbnMgaW50byBvbmUgZXhwZW5zZSBpdGVtXG4gICAgY29uc3QgZGVwcmVjaWF0aW9uRXhwZW5zZTogVmVoaWNsZUV4cGVuc2UgPSBuZXcgVmVoaWNsZUV4cGVuc2UoXG4gICAgICAtZGVwcmVjaWF0aW9ucy5nZXRDdXJyZW50WWVhckZvcmVjYXN0QW1vdW50KCksXG4gICAgICB2ZWhpY2xlQ2xhaW0ud29ya1VzYWdlLFxuICAgICAgJ0RlcHJlY2lhdGlvbidcbiAgICApO1xuXG4gICAgdGhpcy5pdGVtcy5wdXNoKC4uLltkZXByZWNpYXRpb25FeHBlbnNlLCAuLi50cmFuc2FjdGlvbkV4cGVuc2VzXSk7XG4gIH1cbn1cbiJdfQ==
@@ -13,9 +13,9 @@ export class SalaryForecast extends SalaryForecastBase {
13
13
  case SalaryForecastFrequencyEnum.ANNUAL:
14
14
  return this.netPay / FinancialYear.monthsInYear;
15
15
  case SalaryForecastFrequencyEnum.FORTNIGHTLY:
16
- return this.netPay / FinancialYear.weeksInYear / 2;
16
+ return this.netPay * FinancialYear.weeksInYear / FinancialYear.monthsInYear / 2;
17
17
  case SalaryForecastFrequencyEnum.WEEKLY:
18
- return this.netPay / FinancialYear.weeksInYear;
18
+ return this.netPay * FinancialYear.weeksInYear / FinancialYear.monthsInYear;
19
19
  default:
20
20
  return this.netPay;
21
21
  }
@@ -28,4 +28,4 @@ __decorate([
28
28
  __decorate([
29
29
  Type(() => IncomeSource)
30
30
  ], SalaryForecast.prototype, "incomeSource", void 0);
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsYXJ5LWZvcmVjYXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9pbmNvbWUtc291cmNlL3NhbGFyeS1mb3JlY2FzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxrQkFBa0I7SUFPcEQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN0QixLQUFLLDJCQUEyQixDQUFDLE1BQU07Z0JBQ3JDLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ2xELEtBQUssMkJBQTJCLENBQUMsV0FBVztnQkFDMUMsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ3JELEtBQUssMkJBQTJCLENBQUMsTUFBTTtnQkFDckMsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDakQ7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztDQUNGO0FBckJXO0lBRFQsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQzVDLE1BQU0sRUFBRTttREFBcUI7QUFHOUI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDO29EQUNFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2FsYXJ5Rm9yZWNhc3QgYXMgU2FsYXJ5Rm9yZWNhc3RCYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL2luY29tZVNvdXJjZS9zYWxhcnktZm9yZWNhc3QnO1xuaW1wb3J0IHsgSW5jb21lU291cmNlIH0gZnJvbSAnLi9pbmNvbWUtc291cmNlJztcbmltcG9ydCB7IElJbmNvbWVTb3VyY2VGb3JlY2FzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRXhwb3NlLCBUcmFuc2Zvcm0sIFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTYWxhcnlGb3JlY2FzdEZyZXF1ZW5jeUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9zYWxhcnktZm9yZWNhc3QtZnJlcXVlbmN5LmVudW0nO1xuaW1wb3J0IHsgRmluYW5jaWFsWWVhciB9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyJztcblxuZXhwb3J0IGNsYXNzIFNhbGFyeUZvcmVjYXN0IGV4dGVuZHMgU2FsYXJ5Rm9yZWNhc3RCYXNlIGltcGxlbWVudHMgSUluY29tZVNvdXJjZUZvcmVjYXN0IHtcbiAgQFRyYW5zZm9ybSgoeyBvYmogfSkgPT4gb2JqLm5ldFBheSArIG9iai50YXgpXG4gIEBFeHBvc2UoKSBncm9zc0Ftb3VudDogbnVtYmVyO1xuXG4gIEBUeXBlKCgpID0+IEluY29tZVNvdXJjZSlcbiAgaW5jb21lU291cmNlOiBJbmNvbWVTb3VyY2U7XG5cbiAgZ2V0IHRheFdpdGhoZWxkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ3Jvc3NBbW91bnQgLSB0aGlzLm5ldFBheTtcbiAgfVxuXG4gIGdldCBtb250aGx5QW1vdW50KCk6IG51bWJlciB7XG4gICAgc3dpdGNoICh0aGlzLmZyZXF1ZW5jeSkge1xuICAgICAgY2FzZSBTYWxhcnlGb3JlY2FzdEZyZXF1ZW5jeUVudW0uQU5OVUFMOlxuICAgICAgICByZXR1cm4gdGhpcy5uZXRQYXkgLyBGaW5hbmNpYWxZZWFyLm1vbnRoc0luWWVhcjtcbiAgICAgIGNhc2UgU2FsYXJ5Rm9yZWNhc3RGcmVxdWVuY3lFbnVtLkZPUlROSUdIVExZOlxuICAgICAgICByZXR1cm4gdGhpcy5uZXRQYXkgLyBGaW5hbmNpYWxZZWFyLndlZWtzSW5ZZWFyIC8gMjtcbiAgICAgIGNhc2UgU2FsYXJ5Rm9yZWNhc3RGcmVxdWVuY3lFbnVtLldFRUtMWTpcbiAgICAgICAgcmV0dXJuIHRoaXMubmV0UGF5IC8gRmluYW5jaWFsWWVhci53ZWVrc0luWWVhcjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB0aGlzLm5ldFBheTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsYXJ5LWZvcmVjYXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9pbmNvbWUtc291cmNlL3NhbGFyeS1mb3JlY2FzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsTUFBTSxPQUFPLGNBQWUsU0FBUSxrQkFBa0I7SUFPcEQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLFFBQVEsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN0QixLQUFLLDJCQUEyQixDQUFDLE1BQU07Z0JBQ3JDLE9BQU8sSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQ2xELEtBQUssMkJBQTJCLENBQUMsV0FBVztnQkFDMUMsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7WUFDbEYsS0FBSywyQkFBMkIsQ0FBQyxNQUFNO2dCQUNyQyxPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQzlFO2dCQUNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUN0QjtJQUNILENBQUM7Q0FDRjtBQXJCVztJQURULFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUM1QyxNQUFNLEVBQUU7bURBQXFCO0FBRzlCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQztvREFDRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhbGFyeUZvcmVjYXN0IGFzIFNhbGFyeUZvcmVjYXN0QmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9pbmNvbWVTb3VyY2Uvc2FsYXJ5LWZvcmVjYXN0JztcbmltcG9ydCB7IEluY29tZVNvdXJjZSB9IGZyb20gJy4vaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBJSW5jb21lU291cmNlRm9yZWNhc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEV4cG9zZSwgVHJhbnNmb3JtLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgU2FsYXJ5Rm9yZWNhc3RGcmVxdWVuY3lFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvc2FsYXJ5LWZvcmVjYXN0LWZyZXF1ZW5jeS5lbnVtJztcbmltcG9ydCB7IEZpbmFuY2lhbFllYXIgfSBmcm9tICcuLi9maW5hbmNpYWwteWVhcic7XG5cbmV4cG9ydCBjbGFzcyBTYWxhcnlGb3JlY2FzdCBleHRlbmRzIFNhbGFyeUZvcmVjYXN0QmFzZSBpbXBsZW1lbnRzIElJbmNvbWVTb3VyY2VGb3JlY2FzdCB7XG4gIEBUcmFuc2Zvcm0oKHsgb2JqIH0pID0+IG9iai5uZXRQYXkgKyBvYmoudGF4KVxuICBARXhwb3NlKCkgZ3Jvc3NBbW91bnQ6IG51bWJlcjtcblxuICBAVHlwZSgoKSA9PiBJbmNvbWVTb3VyY2UpXG4gIGluY29tZVNvdXJjZTogSW5jb21lU291cmNlO1xuXG4gIGdldCB0YXhXaXRoaGVsZCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdyb3NzQW1vdW50IC0gdGhpcy5uZXRQYXk7XG4gIH1cblxuICBnZXQgbW9udGhseUFtb3VudCgpOiBudW1iZXIge1xuICAgIHN3aXRjaCAodGhpcy5mcmVxdWVuY3kpIHtcbiAgICAgIGNhc2UgU2FsYXJ5Rm9yZWNhc3RGcmVxdWVuY3lFbnVtLkFOTlVBTDpcbiAgICAgICAgcmV0dXJuIHRoaXMubmV0UGF5IC8gRmluYW5jaWFsWWVhci5tb250aHNJblllYXI7XG4gICAgICBjYXNlIFNhbGFyeUZvcmVjYXN0RnJlcXVlbmN5RW51bS5GT1JUTklHSFRMWTpcbiAgICAgICAgcmV0dXJuIHRoaXMubmV0UGF5ICogRmluYW5jaWFsWWVhci53ZWVrc0luWWVhciAvIEZpbmFuY2lhbFllYXIubW9udGhzSW5ZZWFyIC8gMjtcbiAgICAgIGNhc2UgU2FsYXJ5Rm9yZWNhc3RGcmVxdWVuY3lFbnVtLldFRUtMWTpcbiAgICAgICAgcmV0dXJuIHRoaXMubmV0UGF5ICogRmluYW5jaWFsWWVhci53ZWVrc0luWWVhciAvIEZpbmFuY2lhbFllYXIubW9udGhzSW5ZZWFyO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMubmV0UGF5O1xuICAgIH1cbiAgfVxufVxuIl19
@@ -41,7 +41,7 @@ export class BorrowingReport extends BorrowingReportBase {
41
41
  * surplus income to cover your debt obligations
42
42
  */
43
43
  getNetSurplusRatio(profit, repaymentAmount) {
44
- if (!(repaymentAmount && this.loanRepaymentAmount && this.otherLiabilities)) {
44
+ if (!(repaymentAmount + this.loanRepaymentAmount + this.otherLiabilities)) {
45
45
  return 0;
46
46
  }
47
47
  return (profit + this.netRentIncome + this.netSalary + this.spouseNetSalary - this.livingExpenses)
@@ -51,4 +51,4 @@ export class BorrowingReport extends BorrowingReportBase {
51
51
  __decorate([
52
52
  Type(() => User)
53
53
  ], BorrowingReport.prototype, "user", void 0);
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9ycm93aW5nLXJlcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcHJvcGVydHkvYm9ycm93aW5nLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGVBQWUsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR2hEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLG1CQUFtQjtJQUF4RDs7UUFJRSxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUMxQix3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO0lBeUM3QixDQUFDO0lBdkNDOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FDZCxlQUFpQyxFQUNqQyxxQkFBNkMsRUFDN0MsZ0JBQXFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsRUFDMUUsU0FBMEIsWUFBWSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7UUFFM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDckIsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO2tCQUNyRSxJQUFJLDhCQUE4QixDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM5RjtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDLG1CQUFtQixDQUFDO1NBQzVEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CLENBQUMsTUFBYyxFQUFFLGVBQXVCO1FBQ3pELE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWU7Y0FDeEYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzVFLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFDLE1BQWMsRUFBRSxlQUF1QjtRQUN4RCxJQUFJLENBQUMsQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQzNFLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7Y0FDOUYsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNFLENBQUM7Q0FDRjtBQTlDQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7NkNBQ04iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb3Jyb3dpbmdSZXBvcnQgYXMgQm9ycm93aW5nUmVwb3J0QmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9ib3Jyb3dpbmctcmVwb3J0JztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlcic7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uLCBJbmNvbWVTb3VyY2VGb3JlY2FzdENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBBbm51YWxDbGllbnREZXRhaWxzIH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IEluY29tZVNvdXJjZUZvcmVjYXN0LCBTYWxhcnlGb3JlY2FzdCB9IGZyb20gJy4uL2luY29tZS1zb3VyY2UnO1xuXG4vKipcbiAqIEJvcnJvd2luZyBwb3dlciByZXBvcnQsIHNob3dzIGlmIHUgY2FuIGFmZm9yZCBuZXcgcHJvcGVydHkgbG9hblxuICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy80NzE3NjA4OTYxL0JvcnJvd2luZytQb3dlcitSZXBvcnQrLStQcm9wZXJ0eStUYW5rXG4gKi9cbmV4cG9ydCBjbGFzcyBCb3Jyb3dpbmdSZXBvcnQgZXh0ZW5kcyBCb3Jyb3dpbmdSZXBvcnRCYXNlIHtcbiAgQFR5cGUoKCkgPT4gVXNlcilcbiAgdXNlcjogVXNlcjtcblxuICBuZXRSZW50SW5jb21lOiBudW1iZXIgPSAwO1xuICBsb2FuUmVwYXltZW50QW1vdW50OiBudW1iZXIgPSAwO1xuICBvdGhlckxpYWJpbGl0aWVzOiBudW1iZXIgPSAwO1xuICBsaXZpbmdFeHBlbnNlczogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogc29tZSBmaWVsZHMgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5IHVudGlsIHVzZXIgZmlsbGVkIHRoZW0gbWFudWFsbHlcbiAgICovXG4gIHN0YXRpYyBjYWxjdWxhdGUoXG4gICAgc2FsYXJ5Rm9yZWNhc3RzOiBTYWxhcnlGb3JlY2FzdFtdLFxuICAgIGluY29tZVNvdXJjZUZvcmVjYXN0czogSW5jb21lU291cmNlRm9yZWNhc3RbXSxcbiAgICBjbGllbnREZXRhaWxzOiBBbm51YWxDbGllbnREZXRhaWxzID0gcGxhaW5Ub0NsYXNzKEFubnVhbENsaWVudERldGFpbHMsIHt9KSxcbiAgICByZXBvcnQ6IEJvcnJvd2luZ1JlcG9ydCA9IHBsYWluVG9DbGFzcyhCb3Jyb3dpbmdSZXBvcnQsIHt9KVxuICApOiBCb3Jyb3dpbmdSZXBvcnQge1xuICAgIGlmICghcmVwb3J0Lm5ldFNhbGFyeSkge1xuICAgICAgcmVwb3J0Lm5ldFNhbGFyeSA9IG5ldyBDb2xsZWN0aW9uKHNhbGFyeUZvcmVjYXN0cykuc3VtQnkoJ21vbnRobHlBbW91bnQnKVxuICAgICAgICArIG5ldyBJbmNvbWVTb3VyY2VGb3JlY2FzdENvbGxlY3Rpb24oaW5jb21lU291cmNlRm9yZWNhc3RzKS5ib251c2VzLnN1bUJ5KCdtb250aGx5QW1vdW50Jyk7XG4gICAgfVxuICAgIGlmICghcmVwb3J0LnNwb3VzZU5ldFNhbGFyeSkge1xuICAgICAgcmVwb3J0LnNwb3VzZU5ldFNhbGFyeSA9IGNsaWVudERldGFpbHMuc3BvdXNlTW9udGhseUluY29tZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIGZyZWUgbW9uZXkgYWZ0ZXIgZXhwZW5zZXNcbiAgICovXG4gIGdldE5ldEluY29tZVN1cnBsdXMocHJvZml0OiBudW1iZXIsIHJlcGF5bWVudEFtb3VudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcHJvZml0ICsgdGhpcy5uZXRSZW50SW5jb21lICsgdGhpcy5uZXRTYWxhcnkgKyB0aGlzLnNwb3VzZU5ldFNhbGFyeSAtIHJlcGF5bWVudEFtb3VudFxuICAgICAgLSB0aGlzLmxvYW5SZXBheW1lbnRBbW91bnQgLSB0aGlzLm90aGVyTGlhYmlsaXRpZXMgLSB0aGlzLmxpdmluZ0V4cGVuc2VzXG4gIH1cblxuICAvKipcbiAgICogc3VycGx1cyBpbmNvbWUgdG8gY292ZXIgeW91ciBkZWJ0IG9ibGlnYXRpb25zXG4gICAqL1xuICBnZXROZXRTdXJwbHVzUmF0aW8ocHJvZml0OiBudW1iZXIsIHJlcGF5bWVudEFtb3VudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoIShyZXBheW1lbnRBbW91bnQgJiYgdGhpcy5sb2FuUmVwYXltZW50QW1vdW50ICYmIHRoaXMub3RoZXJMaWFiaWxpdGllcykpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAocHJvZml0ICsgdGhpcy5uZXRSZW50SW5jb21lICsgdGhpcy5uZXRTYWxhcnkgKyB0aGlzLnNwb3VzZU5ldFNhbGFyeSAtIHRoaXMubGl2aW5nRXhwZW5zZXMpXG4gICAgICAvIChyZXBheW1lbnRBbW91bnQgKyB0aGlzLmxvYW5SZXBheW1lbnRBbW91bnQgKyB0aGlzLm90aGVyTGlhYmlsaXRpZXMpO1xuICB9XG59XG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9ycm93aW5nLXJlcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvcHJvcGVydHkvYm9ycm93aW5nLXJlcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGVBQWUsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLDhCQUE4QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR2hEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLG1CQUFtQjtJQUF4RDs7UUFJRSxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUMxQix3QkFBbUIsR0FBVyxDQUFDLENBQUM7UUFDaEMscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO0lBeUM3QixDQUFDO0lBdkNDOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FDZCxlQUFpQyxFQUNqQyxxQkFBNkMsRUFDN0MsZ0JBQXFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsRUFDMUUsU0FBMEIsWUFBWSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7UUFFM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7WUFDckIsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO2tCQUNyRSxJQUFJLDhCQUE4QixDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM5RjtRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFO1lBQzNCLE1BQU0sQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDLG1CQUFtQixDQUFDO1NBQzVEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CLENBQUMsTUFBYyxFQUFFLGVBQXVCO1FBQ3pELE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWU7Y0FDeEYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFBO0lBQzVFLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQixDQUFDLE1BQWMsRUFBRSxlQUF1QjtRQUN4RCxJQUFJLENBQUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3pFLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7UUFFRCxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7Y0FDOUYsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNFLENBQUM7Q0FDRjtBQTlDQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7NkNBQ04iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb3Jyb3dpbmdSZXBvcnQgYXMgQm9ycm93aW5nUmVwb3J0QmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy9wcm9wZXJ0eS9ib3Jyb3dpbmctcmVwb3J0JztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlcic7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uLCBJbmNvbWVTb3VyY2VGb3JlY2FzdENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBBbm51YWxDbGllbnREZXRhaWxzIH0gZnJvbSAnLi4vY2xpZW50JztcbmltcG9ydCB7IEluY29tZVNvdXJjZUZvcmVjYXN0LCBTYWxhcnlGb3JlY2FzdCB9IGZyb20gJy4uL2luY29tZS1zb3VyY2UnO1xuXG4vKipcbiAqIEJvcnJvd2luZyBwb3dlciByZXBvcnQsIHNob3dzIGlmIHUgY2FuIGFmZm9yZCBuZXcgcHJvcGVydHkgbG9hblxuICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy80NzE3NjA4OTYxL0JvcnJvd2luZytQb3dlcitSZXBvcnQrLStQcm9wZXJ0eStUYW5rXG4gKi9cbmV4cG9ydCBjbGFzcyBCb3Jyb3dpbmdSZXBvcnQgZXh0ZW5kcyBCb3Jyb3dpbmdSZXBvcnRCYXNlIHtcbiAgQFR5cGUoKCkgPT4gVXNlcilcbiAgdXNlcjogVXNlcjtcblxuICBuZXRSZW50SW5jb21lOiBudW1iZXIgPSAwO1xuICBsb2FuUmVwYXltZW50QW1vdW50OiBudW1iZXIgPSAwO1xuICBvdGhlckxpYWJpbGl0aWVzOiBudW1iZXIgPSAwO1xuICBsaXZpbmdFeHBlbnNlczogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogc29tZSBmaWVsZHMgY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5IHVudGlsIHVzZXIgZmlsbGVkIHRoZW0gbWFudWFsbHlcbiAgICovXG4gIHN0YXRpYyBjYWxjdWxhdGUoXG4gICAgc2FsYXJ5Rm9yZWNhc3RzOiBTYWxhcnlGb3JlY2FzdFtdLFxuICAgIGluY29tZVNvdXJjZUZvcmVjYXN0czogSW5jb21lU291cmNlRm9yZWNhc3RbXSxcbiAgICBjbGllbnREZXRhaWxzOiBBbm51YWxDbGllbnREZXRhaWxzID0gcGxhaW5Ub0NsYXNzKEFubnVhbENsaWVudERldGFpbHMsIHt9KSxcbiAgICByZXBvcnQ6IEJvcnJvd2luZ1JlcG9ydCA9IHBsYWluVG9DbGFzcyhCb3Jyb3dpbmdSZXBvcnQsIHt9KVxuICApOiBCb3Jyb3dpbmdSZXBvcnQge1xuICAgIGlmICghcmVwb3J0Lm5ldFNhbGFyeSkge1xuICAgICAgcmVwb3J0Lm5ldFNhbGFyeSA9IG5ldyBDb2xsZWN0aW9uKHNhbGFyeUZvcmVjYXN0cykuc3VtQnkoJ21vbnRobHlBbW91bnQnKVxuICAgICAgICArIG5ldyBJbmNvbWVTb3VyY2VGb3JlY2FzdENvbGxlY3Rpb24oaW5jb21lU291cmNlRm9yZWNhc3RzKS5ib251c2VzLnN1bUJ5KCdtb250aGx5QW1vdW50Jyk7XG4gICAgfVxuICAgIGlmICghcmVwb3J0LnNwb3VzZU5ldFNhbGFyeSkge1xuICAgICAgcmVwb3J0LnNwb3VzZU5ldFNhbGFyeSA9IGNsaWVudERldGFpbHMuc3BvdXNlTW9udGhseUluY29tZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVwb3J0O1xuICB9XG5cbiAgLyoqXG4gICAqIGZyZWUgbW9uZXkgYWZ0ZXIgZXhwZW5zZXNcbiAgICovXG4gIGdldE5ldEluY29tZVN1cnBsdXMocHJvZml0OiBudW1iZXIsIHJlcGF5bWVudEFtb3VudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gcHJvZml0ICsgdGhpcy5uZXRSZW50SW5jb21lICsgdGhpcy5uZXRTYWxhcnkgKyB0aGlzLnNwb3VzZU5ldFNhbGFyeSAtIHJlcGF5bWVudEFtb3VudFxuICAgICAgLSB0aGlzLmxvYW5SZXBheW1lbnRBbW91bnQgLSB0aGlzLm90aGVyTGlhYmlsaXRpZXMgLSB0aGlzLmxpdmluZ0V4cGVuc2VzXG4gIH1cblxuICAvKipcbiAgICogc3VycGx1cyBpbmNvbWUgdG8gY292ZXIgeW91ciBkZWJ0IG9ibGlnYXRpb25zXG4gICAqL1xuICBnZXROZXRTdXJwbHVzUmF0aW8ocHJvZml0OiBudW1iZXIsIHJlcGF5bWVudEFtb3VudDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAoIShyZXBheW1lbnRBbW91bnQgKyB0aGlzLmxvYW5SZXBheW1lbnRBbW91bnQgKyB0aGlzLm90aGVyTGlhYmlsaXRpZXMpKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gKHByb2ZpdCArIHRoaXMubmV0UmVudEluY29tZSArIHRoaXMubmV0U2FsYXJ5ICsgdGhpcy5zcG91c2VOZXRTYWxhcnkgLSB0aGlzLmxpdmluZ0V4cGVuc2VzKVxuICAgICAgLyAocmVwYXltZW50QW1vdW50ICsgdGhpcy5sb2FuUmVwYXltZW50QW1vdW50ICsgdGhpcy5vdGhlckxpYWJpbGl0aWVzKTtcbiAgfVxufVxuIl19