taxtank-core 0.30.134 → 0.30.135
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.
- package/esm2020/lib/models/tax-summary/tax-summary.mjs +18 -3
- package/fesm2015/taxtank-core.mjs +17 -2
- package/fesm2015/taxtank-core.mjs.map +1 -1
- package/fesm2020/taxtank-core.mjs +17 -2
- package/fesm2020/taxtank-core.mjs.map +1 -1
- package/lib/models/tax-summary/tax-summary.d.ts +3 -0
- package/package.json +1 -1
|
@@ -13,7 +13,7 @@ export class TaxSummary {
|
|
|
13
13
|
return [this.work, this.property, this.other, this.sole, this.summary];
|
|
14
14
|
}
|
|
15
15
|
getReportItems(sections) {
|
|
16
|
-
return new ReportItemCollection([].concat(...
|
|
16
|
+
return new ReportItemCollection([].concat(...sections.map((section) => section.items.toArray())));
|
|
17
17
|
}
|
|
18
18
|
get taxPercent() {
|
|
19
19
|
// Check if netAmount is not 0 to avoid division by zero
|
|
@@ -31,12 +31,27 @@ export class TaxSummary {
|
|
|
31
31
|
return this.workNetTotal - Math.abs(taxWithheld);
|
|
32
32
|
}
|
|
33
33
|
get income() {
|
|
34
|
-
return this.getReportItems([this.work, this.property, this.other]).sumByCategories([
|
|
34
|
+
return this.getReportItems([this.work, this.property, this.sole, this.other]).sumByCategories([
|
|
35
35
|
...TAX_RETURN_CATEGORIES.work.income,
|
|
36
36
|
...TAX_RETURN_CATEGORIES.property.income,
|
|
37
|
+
...TAX_RETURN_CATEGORIES.sole.income,
|
|
37
38
|
...TAX_RETURN_CATEGORIES.other.income,
|
|
38
39
|
]);
|
|
39
40
|
}
|
|
41
|
+
get expense() {
|
|
42
|
+
return this.getReportItems([this.work, this.property, this.sole, this.other]).sumByCategories([
|
|
43
|
+
...TAX_RETURN_CATEGORIES.work.expenses,
|
|
44
|
+
...TAX_RETURN_CATEGORIES.property.expenses,
|
|
45
|
+
...TAX_RETURN_CATEGORIES.sole.expenses,
|
|
46
|
+
...TAX_RETURN_CATEGORIES.other.expenses,
|
|
47
|
+
]);
|
|
48
|
+
}
|
|
49
|
+
get netCash() {
|
|
50
|
+
return this.workNetCash + this.propertyNetCash + this.soleNetCash + this.otherNetCash;
|
|
51
|
+
}
|
|
52
|
+
get netTotal() {
|
|
53
|
+
return this.workNetTotal + this.propertyNetTotal + this.soleNetTotal + this.otherNetTotal;
|
|
54
|
+
}
|
|
40
55
|
/**
|
|
41
56
|
* Work Net Total = Income - expenses - interest
|
|
42
57
|
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677990/Dashboard+Main
|
|
@@ -134,4 +149,4 @@ __decorate([
|
|
|
134
149
|
__decorate([
|
|
135
150
|
Type(() => TaxSummarySection)
|
|
136
151
|
], TaxSummary.prototype, "summary", void 0);
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHaEY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFrQnJCLElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQTZCO1FBQzFDLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekcsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDM0IsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3hILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLFdBQVc7UUFDYixNQUFNLFdBQVcsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWxKLE9BQU8sSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1lBQ2pGLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDcEMsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsTUFBTTtZQUN4QyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNO1NBQ3RDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLFlBQVk7UUFDZCxNQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JJLE1BQU0sUUFBUSxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekksTUFBTSxRQUFRLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU1SSxPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksZUFBZTtRQUNqQixNQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pKLE1BQU0sUUFBUSxHQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUscUJBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckosTUFBTSxRQUFRLEdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMscUJBQXFCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVySixPQUFPLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksZ0JBQWdCO1FBQ2xCLE1BQU0sWUFBWSxHQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFN0osT0FBTyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksWUFBWTtRQUNkLE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEksTUFBTSxRQUFRLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1SSxNQUFNLFdBQVcsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxFQUFFLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JKLE1BQU0sY0FBYyxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDLEVBQUUscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFM0osT0FBTyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksYUFBYTtRQUNmLE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEksTUFBTSxRQUFRLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1SSxNQUFNLFVBQVUsR0FBVyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLFdBQVcsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hKLE1BQU0sZUFBZSxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUMseUJBQXlCLENBQUMsZUFBZSxDQUFDLEVBQUUscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUosTUFBTSxlQUFlLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTdKLE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksV0FBVztRQUNiLE1BQU0sWUFBWSxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEcsTUFBTSxJQUFJLEdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RixNQUFNLFdBQVcsR0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRS9JLE9BQU8sSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLEdBQUcsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBSSxZQUFZO1FBQ2QsMENBQTBDO1FBQzFDLE1BQU0sTUFBTSxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUM1RyxNQUFNLFdBQVcsR0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRS9JLE9BQU8sTUFBTSxHQUFHLFdBQVcsQ0FBQztJQUM5QixDQUFDO0lBRUQsdUJBQXVCLENBQUMsUUFBc0I7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7YUFDbkIsY0FBYyxDQUFDLHlCQUF5QixDQUFDLHdCQUF3QixDQUFDLENBQUMsS0FBSzthQUN4RSxNQUFNLENBQUMsT0FBTyxFQUFFLGNBQWMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzVELENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxRQUFzQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSzthQUNuQixjQUFjLENBQUMseUJBQXlCLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxLQUFLO2FBQ3ZFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsY0FBYyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDNUQsQ0FBQztDQUNGO0FBbkpDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO3dDQUNOO0FBR3hCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDOzRDQUNGO0FBRzVCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO3lDQUNMO0FBR3pCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO3dDQUNOO0FBR3hCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDOzJDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGF4U3VtbWFyeVNlY3Rpb24gfSBmcm9tICcuL3RheC1zdW1tYXJ5LXNlY3Rpb24nO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFJlcG9ydEl0ZW1Db2xsZWN0aW9uLCBUQVhfUkVUVVJOX0NBVEVHT1JJRVMgfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMnO1xuaW1wb3J0IHsgVGF4U3VtbWFyeVNlY3Rpb25FbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdGF4LXN1bW1hcnktc2VjdGlvbi5lbnVtJztcbmltcG9ydCB7IFNvbGVCdXNpbmVzcyB9IGZyb20gJy4uL3NvbGUnO1xuXG4vKipcbiAqIEBUb2RvIHJlZmFjdG9yIHdpdGggYmFzZSBtb2RlbCB3aGVuIGl0IHdpbGwgYmUgcHJvdmlkZWRcbiAqIFRheCBzdW1tYXJ5IHJlcG9ydCBzdHJ1Y3R1cmVcbiAqL1xuZXhwb3J0IGNsYXNzIFRheFN1bW1hcnkge1xuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgd29yazogVGF4U3VtbWFyeVNlY3Rpb247XG5cbiAgQFR5cGUoKCkgPT4gVGF4U3VtbWFyeVNlY3Rpb24pXG4gIHByb3BlcnR5OiBUYXhTdW1tYXJ5U2VjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgb3RoZXI6IFRheFN1bW1hcnlTZWN0aW9uO1xuXG4gIEBUeXBlKCgpID0+IFRheFN1bW1hcnlTZWN0aW9uKVxuICBzb2xlOiBUYXhTdW1tYXJ5U2VjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgc3VtbWFyeTogVGF4U3VtbWFyeVNlY3Rpb247XG5cbiAgcHJvamVjdGVkVGF4UG9zaXRpb246IG51bWJlcjtcblxuICBnZXQgc2VjdGlvbnMoKTogVGF4U3VtbWFyeVNlY3Rpb25bXSB7XG4gICAgcmV0dXJuIFt0aGlzLndvcmssIHRoaXMucHJvcGVydHksIHRoaXMub3RoZXIsIHRoaXMuc29sZSwgdGhpcy5zdW1tYXJ5XTtcbiAgfVxuXG4gIGdldFJlcG9ydEl0ZW1zKHNlY3Rpb25zOiBUYXhTdW1tYXJ5U2VjdGlvbltdKTogUmVwb3J0SXRlbUNvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgUmVwb3J0SXRlbUNvbGxlY3Rpb24oW10uY29uY2F0KC4uLnRoaXMuc2VjdGlvbnMubWFwKChzZWN0aW9uKSA9PiBzZWN0aW9uLml0ZW1zLnRvQXJyYXkoKSkpKTtcbiAgfVxuXG4gIGdldCB0YXhQZXJjZW50KCk6IG51bWJlciB7XG4gICAgLy8gQ2hlY2sgaWYgbmV0QW1vdW50IGlzIG5vdCAwIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICBpZiAoIXRoaXMuc3VtbWFyeS5uZXRBbW91bnQpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN1bW1hcnkuaXRlbXMuZmluZEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5HUk9TU19UQVhfUEFZQUJMRSkuYW1vdW50IC8gdGhpcy5zdW1tYXJ5Lm5ldEFtb3VudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXb3JrIE5ldCBDYXNoID0gSW5jb21lIC0gdGF4IHdpdGhoZWxkIC0gZXhwZW5zZXMgLSBpbnRlcmVzdFxuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IHdvcmtOZXRDYXNoKCk6IG51bWJlciB7XG4gICAgY29uc3QgdGF4V2l0aGhlbGQ6IG51bWJlciA9IHRoaXMuc3VtbWFyeS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy53b3JrLnRheFdpdGhoZWxkLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uV09SS19UQU5LKTtcblxuICAgIHJldHVybiB0aGlzLndvcmtOZXRUb3RhbCAtIE1hdGguYWJzKHRheFdpdGhoZWxkKTtcbiAgfVxuXG4gIGdldCBpbmNvbWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRSZXBvcnRJdGVtcyhbdGhpcy53b3JrLCB0aGlzLnByb3BlcnR5LCB0aGlzLm90aGVyXSkuc3VtQnlDYXRlZ29yaWVzKFtcbiAgICAgIC4uLlRBWF9SRVRVUk5fQ0FURUdPUklFUy53b3JrLmluY29tZSxcbiAgICAgIC4uLlRBWF9SRVRVUk5fQ0FURUdPUklFUy5wcm9wZXJ0eS5pbmNvbWUsXG4gICAgICAuLi5UQVhfUkVUVVJOX0NBVEVHT1JJRVMub3RoZXIuaW5jb21lLFxuICAgIF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFdvcmsgTmV0IFRvdGFsID0gSW5jb21lIC0gZXhwZW5zZXMgLSBpbnRlcmVzdFxuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IHdvcmtOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGluY29tZTogbnVtYmVyID0gdGhpcy53b3JrLml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLndvcmsuaW5jb21lLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uV09SS19UQU5LKTtcbiAgICBjb25zdCBleHBlbnNlczogbnVtYmVyID0gdGhpcy53b3JrLml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLndvcmsuZXhwZW5zZXMsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5XT1JLX1RBTkspO1xuICAgIGNvbnN0IGludGVyZXN0OiBudW1iZXIgPSB0aGlzLnN1bW1hcnkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMud29yay5pbnRlcmVzdCwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLldPUktfVEFOSyk7XG5cbiAgICByZXR1cm4gaW5jb21lIC0gTWF0aC5hYnMoZXhwZW5zZXMpIC0gTWF0aC5hYnMoaW50ZXJlc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3BlcnR5IE5ldCBDYXNoIChDYXNoIFBvc2l0aW9uKSA9IFJlbnRhbCBJbmNvbWUgLSBleHBlbnNlcyAtIGludGVyZXN0XG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgcHJvcGVydHlOZXRDYXNoKCk6IG51bWJlciB7XG4gICAgY29uc3QgaW5jb21lOiBudW1iZXIgPSB0aGlzLnByb3BlcnR5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLnByb3BlcnR5LmluY29tZSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlBST1BFUlRZX1RBTkspO1xuICAgIGNvbnN0IGV4cGVuc2VzOiBudW1iZXIgPSB0aGlzLnByb3BlcnR5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLnByb3BlcnR5LmV4cGVuc2VzLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uUFJPUEVSVFlfVEFOSyk7XG4gICAgY29uc3QgaW50ZXJlc3Q6IG51bWJlciA9IHRoaXMucHJvcGVydHkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMucHJvcGVydHkuaW50ZXJlc3QsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5QUk9QRVJUWV9UQU5LKTtcblxuICAgIHJldHVybiBpbmNvbWUgLSBNYXRoLmFicyhleHBlbnNlcykgLSBNYXRoLmFicyhpbnRlcmVzdCk7XG4gIH1cblxuICAvKipcbiAgICogUHJvcGVydHkgTmV0IFRvdGFsIChUYXggUG9zaXRpb24pID0gUmVudGFsIEluY29tZSAtIGV4cGVuc2VzIC0gaW50ZXJlc3QgLSBkZXByZWNpYXRpb25cbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc2Nzc5OTAvRGFzaGJvYXJkK01haW5cbiAgICovXG4gIGdldCBwcm9wZXJ0eU5ldFRvdGFsKCk6IG51bWJlciB7XG4gICAgY29uc3QgZGVwcmVjaWF0aW9uOiBudW1iZXIgPSB0aGlzLnByb3BlcnR5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLnByb3BlcnR5LmRlcHJlY2lhdGlvbiwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlBST1BFUlRZX1RBTkspO1xuXG4gICAgcmV0dXJuIHRoaXMucHJvcGVydHlOZXRDYXNoIC0gTWF0aC5hYnMoZGVwcmVjaWF0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdGhlciBOZXQgQ2FzaCA9IGdyb3NzIGluY29tZSDigJMgZXhwZW5zZXMg4oCTIHRheCB3aXRoaGVsZCAtIHRheCBpbnN0YWxtZW50c1xuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IG90aGVyTmV0Q2FzaCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGluY29tZTogbnVtYmVyID0gdGhpcy5vdGhlci5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5vdGhlci5pbmNvbWUsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9UQU5LKTtcbiAgICBjb25zdCBleHBlbnNlczogbnVtYmVyID0gdGhpcy5vdGhlci5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5vdGhlci5leHBlbnNlcywgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX1RBTkspO1xuICAgIGNvbnN0IHRheFdpdGhoZWxkOiBudW1iZXIgPSB0aGlzLnN1bW1hcnkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihbVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5UQVhfV0lUSEhFTERdLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uT1RIRVJfVEFOSyk7XG4gICAgY29uc3QgdGF4SW5zdGFsbWVudHM6IG51bWJlciA9IHRoaXMuc3VtbWFyeS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFtUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlRBWF9JTlNUQUxNRU5UU10sIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9UQU5LKTtcblxuICAgIHJldHVybiBpbmNvbWUgLSBNYXRoLmFicyhleHBlbnNlcykgLSBNYXRoLmFicyh0YXhXaXRoaGVsZCkgLSBNYXRoLmFicyh0YXhJbnN0YWxtZW50cyk7XG4gIH1cblxuICAvKipcbiAgICogT3RoZXIgTmV0IFRvdGFsID0gR3Jvc3MgaW5jb21lIC0gZXhwZW5zZXMgKyB0YXggb2Zmc2V0cyArIHRheCBpbnN0YWxtZW50cyArIGZyYW5raW5nIGNyZWRpdHNcbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc2Nzc5OTAvRGFzaGJvYXJkK01haW5cbiAgICovXG4gIGdldCBvdGhlck5ldFRvdGFsKCk6IG51bWJlciB7XG4gICAgY29uc3QgaW5jb21lOiBudW1iZXIgPSB0aGlzLm90aGVyLml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLm90aGVyLmluY29tZSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX1RBTkspO1xuICAgIGNvbnN0IGV4cGVuc2VzOiBudW1iZXIgPSB0aGlzLm90aGVyLml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLm90aGVyLmV4cGVuc2VzLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uT1RIRVJfVEFOSyk7XG4gICAgY29uc3QgdGF4T2Zmc2V0czogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uVEFYX09GRlNFVFNdLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uU1VNTUFSWSk7XG4gICAgY29uc3QgdGF4SW5zdGFsbG1lbnRzOiBudW1iZXIgPSB0aGlzLnN1bW1hcnkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihbVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5UQVhfSU5TVEFMTUVOVFNdLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uT1RIRVJfVEFOSyk7XG4gICAgY29uc3QgZnJhbmtpbmdDcmVkaXRzOiBudW1iZXIgPSB0aGlzLnN1bW1hcnkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihbVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5GUkFOS0lOR19DUkVESVRTXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX1RBTkspO1xuXG4gICAgcmV0dXJuIGluY29tZSAtIE1hdGguYWJzKGV4cGVuc2VzKSArIE1hdGguYWJzKHRheE9mZnNldHMpICsgTWF0aC5hYnModGF4SW5zdGFsbG1lbnRzKSArIE1hdGguYWJzKGZyYW5raW5nQ3JlZGl0cyk7XG4gIH1cblxuICAvKipcbiAgICogU29sZSBOZXQgQ2FzaCA9IGdyb3NzIGluY29tZSDigJMgZXhwZW5zZXNcbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc2Nzc5OTAvRGFzaGJvYXJkK01haW5cbiAgICovXG4gIGdldCBzb2xlTmV0Q2FzaCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGRlcHJlY2lhdGlvbjogbnVtYmVyID0gdGhpcy5zb2xlLml0ZW1zLnN1bUJ5Q2F0ZWdvcmllcyhUQVhfUkVUVVJOX0NBVEVHT1JJRVMuc29sZS5kZXByZWNpYXRpb24pO1xuICAgIGNvbnN0IGxvc3M6IG51bWJlciA9IHRoaXMuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXMoVEFYX1JFVFVSTl9DQVRFR09SSUVTLnNvbGUubG9zcyk7XG4gICAgY29uc3QgbG9zc0N1cnJlbnQ6IG51bWJlciA9IHRoaXMuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5zb2xlLmxvc3NDdXJyZW50LCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uU09MRV9UQU5LKTtcblxuICAgIHJldHVybiB0aGlzLnNvbGVOZXRUb3RhbCAtIGRlcHJlY2lhdGlvbiAtIGxvc3MgKyBsb3NzQ3VycmVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTb2xlIE5ldCBUb3RhbCA9IEdyb3NzIGluY29tZSAtIGV4cGVuc2VzXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgc29sZU5ldFRvdGFsKCk6IG51bWJlciB7XG4gICAgLy8gaW5jb21lICsgZXhwZW5zZXMgKyBkZXByZWNpYXRpb24gKyBsb3NzXG4gICAgY29uc3QgcHJvZml0OiBudW1iZXIgPSB0aGlzLnNvbGUuaXRlbXMuc3VtQnlDYXRlZ29yaWVzKFtUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkJVU0lORVNTX0lOQ09NRV9PUl9MT1NTXSk7XG4gICAgY29uc3QgbG9zc0N1cnJlbnQ6IG51bWJlciA9IHRoaXMuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5zb2xlLmxvc3NDdXJyZW50LCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uU09MRV9UQU5LKTtcblxuICAgIHJldHVybiBwcm9maXQgLSBsb3NzQ3VycmVudDtcbiAgfVxuXG4gIGdldERlZmVycmVkQnVzaW5lc3NMb3NzKGJ1c2luZXNzOiBTb2xlQnVzaW5lc3MpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNvbGUuaXRlbXNcbiAgICAgIC5maW5kQnlDYXRlZ29yeShUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkRFRkVSUkVEX0JVU0lORVNTX0xPU1NFUykuaXRlbXNcbiAgICAgIC5maW5kQnkoJ3RpdGxlJywgYEl0ZW0gMTVjIC0gJHtidXNpbmVzcy5uYW1lfWApPy5hbW91bnQ7XG4gIH1cblxuICBnZXRCdXNpbmVzc0Nsb3NlQmFsYW5jZShidXNpbmVzczogU29sZUJ1c2luZXNzKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zb2xlLml0ZW1zXG4gICAgICAuZmluZEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5CVVNJTkVTU19JTkNPTUVfT1JfTE9TUykuaXRlbXNcbiAgICAgIC5maW5kQnkoJ3RpdGxlJywgYEl0ZW0gMTVjIC0gJHtidXNpbmVzcy5uYW1lfWApPy5hbW91bnQ7XG4gIH1cbn1cbiJdfQ==
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXN1bW1hcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RheC1zdW1tYXJ5L3RheC1zdW1tYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHaEY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFVBQVU7SUFrQnJCLElBQUksUUFBUTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQTZCO1FBQzFDLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUMzQixPQUFPLENBQUMsQ0FBQztTQUNWO1FBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FB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QUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUUvSSxPQUFPLE1BQU0sR0FBRyxXQUFXLENBQUM7SUFDOUIsQ0FBQztJQUVELHVCQUF1QixDQUFDLFFBQXNCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO2FBQ25CLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLEtBQUs7YUFDeEUsTUFBTSxDQUFDLE9BQU8sRUFBRSxjQUFjLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUM1RCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsUUFBc0I7UUFDNUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7YUFDbkIsY0FBYyxDQUFDLHlCQUF5QixDQUFDLHVCQUF1QixDQUFDLENBQUMsS0FBSzthQUN2RSxNQUFNLENBQUMsT0FBTyxFQUFFLGNBQWMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQzVELENBQUM7Q0FDRjtBQXJLQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzt3Q0FDTjtBQUd4QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzs0Q0FDRjtBQUc1QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzt5Q0FDTDtBQUd6QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzt3Q0FDTjtBQUd4QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzsyQ0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRheFN1bW1hcnlTZWN0aW9uIH0gZnJvbSAnLi90YXgtc3VtbWFyeS1zZWN0aW9uJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBSZXBvcnRJdGVtQ29sbGVjdGlvbiwgVEFYX1JFVFVSTl9DQVRFR09SSUVTIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zJztcbmltcG9ydCB7IFRheFN1bW1hcnlTZWN0aW9uRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RheC1zdW1tYXJ5LXNlY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBTb2xlQnVzaW5lc3MgfSBmcm9tICcuLi9zb2xlJztcblxuLyoqXG4gKiBAVG9kbyByZWZhY3RvciB3aXRoIGJhc2UgbW9kZWwgd2hlbiBpdCB3aWxsIGJlIHByb3ZpZGVkXG4gKiBUYXggc3VtbWFyeSByZXBvcnQgc3RydWN0dXJlXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXhTdW1tYXJ5IHtcbiAgQFR5cGUoKCkgPT4gVGF4U3VtbWFyeVNlY3Rpb24pXG4gIHdvcms6IFRheFN1bW1hcnlTZWN0aW9uO1xuXG4gIEBUeXBlKCgpID0+IFRheFN1bW1hcnlTZWN0aW9uKVxuICBwcm9wZXJ0eTogVGF4U3VtbWFyeVNlY3Rpb247XG5cbiAgQFR5cGUoKCkgPT4gVGF4U3VtbWFyeVNlY3Rpb24pXG4gIG90aGVyOiBUYXhTdW1tYXJ5U2VjdGlvbjtcblxuICBAVHlwZSgoKSA9PiBUYXhTdW1tYXJ5U2VjdGlvbilcbiAgc29sZTogVGF4U3VtbWFyeVNlY3Rpb247XG5cbiAgQFR5cGUoKCkgPT4gVGF4U3VtbWFyeVNlY3Rpb24pXG4gIHN1bW1hcnk6IFRheFN1bW1hcnlTZWN0aW9uO1xuXG4gIHByb2plY3RlZFRheFBvc2l0aW9uOiBudW1iZXI7XG5cbiAgZ2V0IHNlY3Rpb25zKCk6IFRheFN1bW1hcnlTZWN0aW9uW10ge1xuICAgIHJldHVybiBbdGhpcy53b3JrLCB0aGlzLnByb3BlcnR5LCB0aGlzLm90aGVyLCB0aGlzLnNvbGUsIHRoaXMuc3VtbWFyeV07XG4gIH1cblxuICBnZXRSZXBvcnRJdGVtcyhzZWN0aW9uczogVGF4U3VtbWFyeVNlY3Rpb25bXSk6IFJlcG9ydEl0ZW1Db2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFJlcG9ydEl0ZW1Db2xsZWN0aW9uKFtdLmNvbmNhdCguLi5zZWN0aW9ucy5tYXAoKHNlY3Rpb24pID0+IHNlY3Rpb24uaXRlbXMudG9BcnJheSgpKSkpO1xuICB9XG5cbiAgZ2V0IHRheFBlcmNlbnQoKTogbnVtYmVyIHtcbiAgICAvLyBDaGVjayBpZiBuZXRBbW91bnQgaXMgbm90IDAgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyb1xuICAgIGlmICghdGhpcy5zdW1tYXJ5Lm5ldEFtb3VudCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc3VtbWFyeS5pdGVtcy5maW5kQnlDYXRlZ29yeShUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLkdST1NTX1RBWF9QQVlBQkxFKS5hbW91bnQgLyB0aGlzLnN1bW1hcnkubmV0QW1vdW50O1xuICB9XG5cbiAgLyoqXG4gICAqIFdvcmsgTmV0IENhc2ggPSBJbmNvbWUgLSB0YXggd2l0aGhlbGQgLSBleHBlbnNlcyAtIGludGVyZXN0XG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgd29ya05ldENhc2goKTogbnVtYmVyIHtcbiAgICBjb25zdCB0YXhXaXRoaGVsZDogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLndvcmsudGF4V2l0aGhlbGQsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5XT1JLX1RBTkspO1xuXG4gICAgcmV0dXJuIHRoaXMud29ya05ldFRvdGFsIC0gTWF0aC5hYnModGF4V2l0aGhlbGQpO1xuICB9XG5cbiAgZ2V0IGluY29tZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFJlcG9ydEl0ZW1zKFt0aGlzLndvcmssIHRoaXMucHJvcGVydHksIHRoaXMuc29sZSwgdGhpcy5vdGhlcl0pLnN1bUJ5Q2F0ZWdvcmllcyhbXG4gICAgICAuLi5UQVhfUkVUVVJOX0NBVEVHT1JJRVMud29yay5pbmNvbWUsXG4gICAgICAuLi5UQVhfUkVUVVJOX0NBVEVHT1JJRVMucHJvcGVydHkuaW5jb21lLFxuICAgICAgLi4uVEFYX1JFVFVSTl9DQVRFR09SSUVTLnNvbGUuaW5jb21lLFxuICAgICAgLi4uVEFYX1JFVFVSTl9DQVRFR09SSUVTLm90aGVyLmluY29tZSxcbiAgICBdKTtcbiAgfVxuXG4gIGdldCBleHBlbnNlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UmVwb3J0SXRlbXMoW3RoaXMud29yaywgdGhpcy5wcm9wZXJ0eSwgdGhpcy5zb2xlLCB0aGlzLm90aGVyXSkuc3VtQnlDYXRlZ29yaWVzKFtcbiAgICAgIC4uLlRBWF9SRVRVUk5fQ0FURUdPUklFUy53b3JrLmV4cGVuc2VzLFxuICAgICAgLi4uVEFYX1JFVFVSTl9DQVRFR09SSUVTLnByb3BlcnR5LmV4cGVuc2VzLFxuICAgICAgLi4uVEFYX1JFVFVSTl9DQVRFR09SSUVTLnNvbGUuZXhwZW5zZXMsXG4gICAgICAuLi5UQVhfUkVUVVJOX0NBVEVHT1JJRVMub3RoZXIuZXhwZW5zZXMsXG4gICAgXSk7XG4gIH1cblxuICBnZXQgbmV0Q2FzaCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLndvcmtOZXRDYXNoICsgdGhpcy5wcm9wZXJ0eU5ldENhc2ggKyB0aGlzLnNvbGVOZXRDYXNoICsgdGhpcy5vdGhlck5ldENhc2g7XG4gIH1cblxuICBnZXQgbmV0VG90YWwoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy53b3JrTmV0VG90YWwgKyB0aGlzLnByb3BlcnR5TmV0VG90YWwgKyB0aGlzLnNvbGVOZXRUb3RhbCArIHRoaXMub3RoZXJOZXRUb3RhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBXb3JrIE5ldCBUb3RhbCA9IEluY29tZSAtIGV4cGVuc2VzIC0gaW50ZXJlc3RcbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc2Nzc5OTAvRGFzaGJvYXJkK01haW5cbiAgICovXG4gIGdldCB3b3JrTmV0VG90YWwoKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbmNvbWU6IG51bWJlciA9IHRoaXMud29yay5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy53b3JrLmluY29tZSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLldPUktfVEFOSyk7XG4gICAgY29uc3QgZXhwZW5zZXM6IG51bWJlciA9IHRoaXMud29yay5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy53b3JrLmV4cGVuc2VzLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uV09SS19UQU5LKTtcbiAgICBjb25zdCBpbnRlcmVzdDogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLndvcmsuaW50ZXJlc3QsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5XT1JLX1RBTkspO1xuXG4gICAgcmV0dXJuIGluY29tZSAtIE1hdGguYWJzKGV4cGVuc2VzKSAtIE1hdGguYWJzKGludGVyZXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9wZXJ0eSBOZXQgQ2FzaCAoQ2FzaCBQb3NpdGlvbikgPSBSZW50YWwgSW5jb21lIC0gZXhwZW5zZXMgLSBpbnRlcmVzdFxuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IHByb3BlcnR5TmV0Q2FzaCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGluY29tZTogbnVtYmVyID0gdGhpcy5wcm9wZXJ0eS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5wcm9wZXJ0eS5pbmNvbWUsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5QUk9QRVJUWV9UQU5LKTtcbiAgICBjb25zdCBleHBlbnNlczogbnVtYmVyID0gdGhpcy5wcm9wZXJ0eS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5wcm9wZXJ0eS5leHBlbnNlcywgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlBST1BFUlRZX1RBTkspO1xuICAgIGNvbnN0IGludGVyZXN0OiBudW1iZXIgPSB0aGlzLnByb3BlcnR5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oVEFYX1JFVFVSTl9DQVRFR09SSUVTLnByb3BlcnR5LmludGVyZXN0LCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uUFJPUEVSVFlfVEFOSyk7XG5cbiAgICByZXR1cm4gaW5jb21lIC0gTWF0aC5hYnMoZXhwZW5zZXMpIC0gTWF0aC5hYnMoaW50ZXJlc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3BlcnR5IE5ldCBUb3RhbCAoVGF4IFBvc2l0aW9uKSA9IFJlbnRhbCBJbmNvbWUgLSBleHBlbnNlcyAtIGludGVyZXN0IC0gZGVwcmVjaWF0aW9uXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgcHJvcGVydHlOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGRlcHJlY2lhdGlvbjogbnVtYmVyID0gdGhpcy5wcm9wZXJ0eS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5wcm9wZXJ0eS5kZXByZWNpYXRpb24sIFRheFN1bW1hcnlTZWN0aW9uRW51bS5QUk9QRVJUWV9UQU5LKTtcblxuICAgIHJldHVybiB0aGlzLnByb3BlcnR5TmV0Q2FzaCAtIE1hdGguYWJzKGRlcHJlY2lhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogT3RoZXIgTmV0IENhc2ggPSBncm9zcyBpbmNvbWUg4oCTIGV4cGVuc2VzIOKAkyB0YXggd2l0aGhlbGQgLSB0YXggaW5zdGFsbWVudHNcbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc2Nzc5OTAvRGFzaGJvYXJkK01haW5cbiAgICovXG4gIGdldCBvdGhlck5ldENhc2goKTogbnVtYmVyIHtcbiAgICBjb25zdCBpbmNvbWU6IG51bWJlciA9IHRoaXMub3RoZXIuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMub3RoZXIuaW5jb21lLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uT1RIRVJfVEFOSyk7XG4gICAgY29uc3QgZXhwZW5zZXM6IG51bWJlciA9IHRoaXMub3RoZXIuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMub3RoZXIuZXhwZW5zZXMsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9UQU5LKTtcbiAgICBjb25zdCB0YXhXaXRoaGVsZDogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uVEFYX1dJVEhIRUxEXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX1RBTkspO1xuICAgIGNvbnN0IHRheEluc3RhbG1lbnRzOiBudW1iZXIgPSB0aGlzLnN1bW1hcnkuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihbVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5UQVhfSU5TVEFMTUVOVFNdLCBUYXhTdW1tYXJ5U2VjdGlvbkVudW0uT1RIRVJfVEFOSyk7XG5cbiAgICByZXR1cm4gaW5jb21lIC0gTWF0aC5hYnMoZXhwZW5zZXMpIC0gTWF0aC5hYnModGF4V2l0aGhlbGQpIC0gTWF0aC5hYnModGF4SW5zdGFsbWVudHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE90aGVyIE5ldCBUb3RhbCA9IEdyb3NzIGluY29tZSAtIGV4cGVuc2VzICsgdGF4IG9mZnNldHMgKyB0YXggaW5zdGFsbWVudHMgKyBmcmFua2luZyBjcmVkaXRzXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgb3RoZXJOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IGluY29tZTogbnVtYmVyID0gdGhpcy5vdGhlci5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5vdGhlci5pbmNvbWUsIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9UQU5LKTtcbiAgICBjb25zdCBleHBlbnNlczogbnVtYmVyID0gdGhpcy5vdGhlci5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5vdGhlci5leHBlbnNlcywgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX1RBTkspO1xuICAgIGNvbnN0IHRheE9mZnNldHM6IG51bWJlciA9IHRoaXMuc3VtbWFyeS5pdGVtcy5zdW1CeUNhdGVnb3JpZXNBbmRTZWN0aW9uKFtUYXhSZXR1cm5DYXRlZ29yeUxpc3RFbnVtLlRBWF9PRkZTRVRTXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlNVTU1BUlkpO1xuICAgIGNvbnN0IHRheEluc3RhbGxtZW50czogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uVEFYX0lOU1RBTE1FTlRTXSwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLk9USEVSX1RBTkspO1xuICAgIGNvbnN0IGZyYW5raW5nQ3JlZGl0czogbnVtYmVyID0gdGhpcy5zdW1tYXJ5Lml0ZW1zLnN1bUJ5Q2F0ZWdvcmllc0FuZFNlY3Rpb24oW1RheFJldHVybkNhdGVnb3J5TGlzdEVudW0uRlJBTktJTkdfQ1JFRElUU10sIFRheFN1bW1hcnlTZWN0aW9uRW51bS5PVEhFUl9UQU5LKTtcblxuICAgIHJldHVybiBpbmNvbWUgLSBNYXRoLmFicyhleHBlbnNlcykgKyBNYXRoLmFicyh0YXhPZmZzZXRzKSArIE1hdGguYWJzKHRheEluc3RhbGxtZW50cykgKyBNYXRoLmFicyhmcmFua2luZ0NyZWRpdHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNvbGUgTmV0IENhc2ggPSBncm9zcyBpbmNvbWUg4oCTIGV4cGVuc2VzXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvMjE3Njc3OTkwL0Rhc2hib2FyZCtNYWluXG4gICAqL1xuICBnZXQgc29sZU5ldENhc2goKTogbnVtYmVyIHtcbiAgICBjb25zdCBkZXByZWNpYXRpb246IG51bWJlciA9IHRoaXMuc29sZS5pdGVtcy5zdW1CeUNhdGVnb3JpZXMoVEFYX1JFVFVSTl9DQVRFR09SSUVTLnNvbGUuZGVwcmVjaWF0aW9uKTtcbiAgICBjb25zdCBsb3NzOiBudW1iZXIgPSB0aGlzLnNvbGUuaXRlbXMuc3VtQnlDYXRlZ29yaWVzKFRBWF9SRVRVUk5fQ0FURUdPUklFUy5zb2xlLmxvc3MpO1xuICAgIGNvbnN0IGxvc3NDdXJyZW50OiBudW1iZXIgPSB0aGlzLnNvbGUuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMuc29sZS5sb3NzQ3VycmVudCwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlNPTEVfVEFOSyk7XG5cbiAgICByZXR1cm4gdGhpcy5zb2xlTmV0VG90YWwgLSBkZXByZWNpYXRpb24gLSBsb3NzICsgbG9zc0N1cnJlbnQ7XG4gIH1cblxuICAvKipcbiAgICogU29sZSBOZXQgVG90YWwgPSBHcm9zcyBpbmNvbWUgLSBleHBlbnNlc1xuICAgKiBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzIxNzY3Nzk5MC9EYXNoYm9hcmQrTWFpblxuICAgKi9cbiAgZ2V0IHNvbGVOZXRUb3RhbCgpOiBudW1iZXIge1xuICAgIC8vIGluY29tZSArIGV4cGVuc2VzICsgZGVwcmVjaWF0aW9uICsgbG9zc1xuICAgIGNvbnN0IHByb2ZpdDogbnVtYmVyID0gdGhpcy5zb2xlLml0ZW1zLnN1bUJ5Q2F0ZWdvcmllcyhbVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5CVVNJTkVTU19JTkNPTUVfT1JfTE9TU10pO1xuICAgIGNvbnN0IGxvc3NDdXJyZW50OiBudW1iZXIgPSB0aGlzLnNvbGUuaXRlbXMuc3VtQnlDYXRlZ29yaWVzQW5kU2VjdGlvbihUQVhfUkVUVVJOX0NBVEVHT1JJRVMuc29sZS5sb3NzQ3VycmVudCwgVGF4U3VtbWFyeVNlY3Rpb25FbnVtLlNPTEVfVEFOSyk7XG5cbiAgICByZXR1cm4gcHJvZml0IC0gbG9zc0N1cnJlbnQ7XG4gIH1cblxuICBnZXREZWZlcnJlZEJ1c2luZXNzTG9zcyhidXNpbmVzczogU29sZUJ1c2luZXNzKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5zb2xlLml0ZW1zXG4gICAgICAuZmluZEJ5Q2F0ZWdvcnkoVGF4UmV0dXJuQ2F0ZWdvcnlMaXN0RW51bS5ERUZFUlJFRF9CVVNJTkVTU19MT1NTRVMpLml0ZW1zXG4gICAgICAuZmluZEJ5KCd0aXRsZScsIGBJdGVtIDE1YyAtICR7YnVzaW5lc3MubmFtZX1gKT8uYW1vdW50O1xuICB9XG5cbiAgZ2V0QnVzaW5lc3NDbG9zZUJhbGFuY2UoYnVzaW5lc3M6IFNvbGVCdXNpbmVzcyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc29sZS5pdGVtc1xuICAgICAgLmZpbmRCeUNhdGVnb3J5KFRheFJldHVybkNhdGVnb3J5TGlzdEVudW0uQlVTSU5FU1NfSU5DT01FX09SX0xPU1MpLml0ZW1zXG4gICAgICAuZmluZEJ5KCd0aXRsZScsIGBJdGVtIDE1YyAtICR7YnVzaW5lc3MubmFtZX1gKT8uYW1vdW50O1xuICB9XG59XG4iXX0=
|
|
@@ -12464,7 +12464,7 @@ class TaxSummary {
|
|
|
12464
12464
|
return [this.work, this.property, this.other, this.sole, this.summary];
|
|
12465
12465
|
}
|
|
12466
12466
|
getReportItems(sections) {
|
|
12467
|
-
return new ReportItemCollection([].concat(...
|
|
12467
|
+
return new ReportItemCollection([].concat(...sections.map((section) => section.items.toArray())));
|
|
12468
12468
|
}
|
|
12469
12469
|
get taxPercent() {
|
|
12470
12470
|
// Check if netAmount is not 0 to avoid division by zero
|
|
@@ -12482,12 +12482,27 @@ class TaxSummary {
|
|
|
12482
12482
|
return this.workNetTotal - Math.abs(taxWithheld);
|
|
12483
12483
|
}
|
|
12484
12484
|
get income() {
|
|
12485
|
-
return this.getReportItems([this.work, this.property, this.other]).sumByCategories([
|
|
12485
|
+
return this.getReportItems([this.work, this.property, this.sole, this.other]).sumByCategories([
|
|
12486
12486
|
...TAX_RETURN_CATEGORIES.work.income,
|
|
12487
12487
|
...TAX_RETURN_CATEGORIES.property.income,
|
|
12488
|
+
...TAX_RETURN_CATEGORIES.sole.income,
|
|
12488
12489
|
...TAX_RETURN_CATEGORIES.other.income,
|
|
12489
12490
|
]);
|
|
12490
12491
|
}
|
|
12492
|
+
get expense() {
|
|
12493
|
+
return this.getReportItems([this.work, this.property, this.sole, this.other]).sumByCategories([
|
|
12494
|
+
...TAX_RETURN_CATEGORIES.work.expenses,
|
|
12495
|
+
...TAX_RETURN_CATEGORIES.property.expenses,
|
|
12496
|
+
...TAX_RETURN_CATEGORIES.sole.expenses,
|
|
12497
|
+
...TAX_RETURN_CATEGORIES.other.expenses,
|
|
12498
|
+
]);
|
|
12499
|
+
}
|
|
12500
|
+
get netCash() {
|
|
12501
|
+
return this.workNetCash + this.propertyNetCash + this.soleNetCash + this.otherNetCash;
|
|
12502
|
+
}
|
|
12503
|
+
get netTotal() {
|
|
12504
|
+
return this.workNetTotal + this.propertyNetTotal + this.soleNetTotal + this.otherNetTotal;
|
|
12505
|
+
}
|
|
12491
12506
|
/**
|
|
12492
12507
|
* Work Net Total = Income - expenses - interest
|
|
12493
12508
|
* https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/217677990/Dashboard+Main
|