taxtank-core 0.17.2 → 0.17.5

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,7 @@
1
+ import { __decorate } from "tslib";
1
2
  import { CHART_ACCOUNTS_CATEGORIES } from '../../../models/chart-accounts/chart-accounts-categories.const';
2
3
  import { AbstractModel } from '../abstract-model';
4
+ import { Exclude, Transform, Type } from 'class-transformer';
3
5
  export class TransactionBase extends AbstractModel {
4
6
  /**
5
7
  * Check if current tank is Property
@@ -23,4 +25,11 @@ export class TransactionBase extends AbstractModel {
23
25
  return CHART_ACCOUNTS_CATEGORIES.sole.includes((_a = this.chartAccounts) === null || _a === void 0 ? void 0 : _a.category);
24
26
  }
25
27
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUMzRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsYUFBYTtJQVVoRDs7T0FFRztJQUNILGNBQWM7O1FBQ1osT0FBTyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTs7UUFDUixPQUFPLHlCQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxRQUFRLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVOztRQUNSLE9BQU8seUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9FLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vcHJvcGVydHkvcHJvcGVydHknO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cyB9IGZyb20gJy4uL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzJztcbmltcG9ydCB7IENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcmllcy5jb25zdCc7XG5pbXBvcnQge0Fic3RyYWN0TW9kZWx9IGZyb20gJy4uL2Fic3RyYWN0LW1vZGVsJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQmFzZSBleHRlbmRzIEFic3RyYWN0TW9kZWwge1xuICBpZD86IG51bWJlcjtcbiAgYW1vdW50PzogbnVtYmVyO1xuICBwcm9wZXJ0eT86IFByb3BlcnR5O1xuICBkYXRlPzogRGF0ZTtcbiAgY2hhcnRBY2NvdW50cz86IENoYXJ0QWNjb3VudHM7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBmaWxlPzogRmlsZTtcbiAgY2xhaW1QZXJjZW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBjdXJyZW50IHRhbmsgaXMgUHJvcGVydHlcbiAgICovXG4gIGlzUHJvcGVydHlUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnByb3BlcnR5LmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cz8uY2F0ZWdvcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgdGFuayBpcyBXb3JrXG4gICAqL1xuICBpc1dvcmtUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLndvcmsuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzPy5jYXRlZ29yeSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgY3VycmVudCB0YW5rIGlzIFNvbGVcbiAgICovXG4gIGlzU29sZVRhbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuc29sZS5pbmNsdWRlcyh0aGlzLmNoYXJ0QWNjb3VudHM/LmNhdGVnb3J5KTtcbiAgfVxufVxuIl19
28
+ __decorate([
29
+ Exclude({ toPlainOnly: true }),
30
+ Type(() => Object),
31
+ Transform(({ obj }) => {
32
+ return obj.file;
33
+ })
34
+ ], TransactionBase.prototype, "file", void 0);
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDM0csT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRTNELE1BQU0sT0FBTyxlQUFnQixTQUFRLGFBQWE7SUFtQmhEOztPQUVHO0lBQ0gsY0FBYzs7UUFDWixPQUFPLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxRQUFRLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVOztRQUNSLE9BQU8seUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7O1FBQ1IsT0FBTyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsUUFBUSxDQUFDLENBQUM7SUFDL0UsQ0FBQztDQUNGO0FBdkJDO0lBTEMsT0FBTyxDQUFDLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDO0lBQzVCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDbEIsU0FBUyxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFFO1FBQ25CLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztJQUNsQixDQUFDLENBQUM7NkNBQ1MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi9jaGFydC1hY2NvdW50cy9jaGFydC1hY2NvdW50cyc7XG5pbXBvcnQgeyBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLWNhdGVnb3JpZXMuY29uc3QnO1xuaW1wb3J0IHtBYnN0cmFjdE1vZGVsfSBmcm9tICcuLi9hYnN0cmFjdC1tb2RlbCc7XG5pbXBvcnQge0V4Y2x1ZGUsIFRyYW5zZm9ybSwgVHlwZX0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CYXNlIGV4dGVuZHMgQWJzdHJhY3RNb2RlbCB7XG4gIGlkPzogbnVtYmVyO1xuICBhbW91bnQ/OiBudW1iZXI7XG4gIHByb3BlcnR5PzogUHJvcGVydHk7XG4gIGRhdGU/OiBEYXRlO1xuICBjaGFydEFjY291bnRzPzogQ2hhcnRBY2NvdW50cztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBjb3VsZCBiZSBGaWxlIHdoZW4ganVzdCBhZGRlZCBuZXcgaW1hZ2VcbiAgICogQFRPRE8gQWxleCBwbGFpblRvQ2xhc3MgZG9lc24ndCB3b3JrIHdpdGggRmlsZSB3aXRob3V0IHRoaXMgaGFjayBodHRwczovL2dpdGh1Yi5jb20vdHlwZXN0YWNrL2NsYXNzLXRyYW5zZm9ybWVyL2lzc3Vlcy8xMTc4XG4gICAqL1xuICBARXhjbHVkZSh7dG9QbGFpbk9ubHk6IHRydWV9KVxuICBAVHlwZSgoKSA9PiBPYmplY3QpXG4gIEBUcmFuc2Zvcm0oKHtvYmp9KSA9PiB7XG4gICAgcmV0dXJuIG9iai5maWxlO1xuICB9KVxuICBmaWxlOiBGaWxlO1xuICBjbGFpbVBlcmNlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGN1cnJlbnQgdGFuayBpcyBQcm9wZXJ0eVxuICAgKi9cbiAgaXNQcm9wZXJ0eVRhbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucHJvcGVydHkuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzPy5jYXRlZ29yeSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgY3VycmVudCB0YW5rIGlzIFdvcmtcbiAgICovXG4gIGlzV29ya1RhbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMud29yay5pbmNsdWRlcyh0aGlzLmNoYXJ0QWNjb3VudHM/LmNhdGVnb3J5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBjdXJyZW50IHRhbmsgaXMgU29sZVxuICAgKi9cbiAgaXNTb2xlVGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5zb2xlLmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cz8uY2F0ZWdvcnkpO1xuICB9XG59XG4iXX0=
@@ -7,7 +7,7 @@ import { ChartAccountsMetadataListEnum } from '../../db/Enums/chart-accounts-met
7
7
  import { TransactionSourceEnum } from '../../db/Enums/transaction-source.enum';
8
8
  import { DepreciationTypeEnum } from '../../db/Enums/depreciation-type.enum';
9
9
  import { DepreciationCalculationEnum } from '../../db/Enums/depreciation-calculation.enum';
10
- import { Exclude, plainToClass, Type } from 'class-transformer';
10
+ import { plainToClass, Type } from 'class-transformer';
11
11
  import { Property } from '../property/property';
12
12
  import { TransactionReceipt } from './transaction-receipt';
13
13
  import { ChartAccounts } from '../chart-accounts/chart-accounts';
@@ -219,7 +219,4 @@ __decorate([
219
219
  __decorate([
220
220
  Type(() => TransactionAllocation)
221
221
  ], Transaction.prototype, "allocations", void 0);
222
- __decorate([
223
- Exclude({ toPlainOnly: true })
224
- ], Transaction.prototype, "file", void 0);
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENB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USxDQUFDOzZDQUNGO0FBR25CO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDOzRDQUNIO0FBRzVCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztrREFDRztBQUc3QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUM7aURBQ0U7QUFHM0I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7NkNBQ0s7QUFHckM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDOzZDQUNGO0FBR3RCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzt5Q0FDTjtBQUdYO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzt5Q0FDTjtBQUdYO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dEQUNRO0FBSTFDO0lBREMsT0FBTyxDQUFDLEVBQUMsV0FBVyxFQUFFLElBQUksRUFBQyxDQUFDO3lDQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uIGFzIFRyYW5zYWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uL2RiL01vZGVscy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1jYXRlZ29yeS5lbnVtJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLW9wZXJhdGlvbi5lbnVtJztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHNMaXN0RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWxpc3QuZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzTWV0YWRhdGFMaXN0RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLW1ldGFkYXRhLWxpc3QuZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblNvdXJjZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1zb3VyY2UuZW51bSc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2RlcHJlY2lhdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ2FsY3VsYXRpb25FbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvZGVwcmVjaWF0aW9uLWNhbGN1bGF0aW9uLmVudW0nO1xuaW1wb3J0IHsgRXhjbHVkZSwgcGxhaW5Ub0NsYXNzLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi9wcm9wZXJ0eS9wcm9wZXJ0eSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblJlY2VpcHQgfSBmcm9tICcuL3RyYW5zYWN0aW9uLXJlY2VpcHQnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50cyB9IGZyb20gJy4uL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzJztcbmltcG9ydCB7IEluY29tZVNvdXJjZSB9IGZyb20gJy4uL2luY29tZS1zb3VyY2UvaW5jb21lLXNvdXJjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk1ldGFkYXRhIH0gZnJvbSAnLi90cmFuc2FjdGlvbi1tZXRhZGF0YSc7XG5pbXBvcnQgeyBMb2FuIH0gZnJvbSAnLi4vbG9hbi9sb2FuJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbic7XG5pbXBvcnQgeyBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTIH0gZnJvbSAnLi4vY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcmllcy5jb25zdCc7XG5pbXBvcnQgeyBJbmNvbWVBbW91bnRUeXBlRW51bSB9IGZyb20gJy4vaW5jb21lLWFtb3VudC10eXBlLmVudW0nO1xuaW1wb3J0IHsgSVJlY2VpcHQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlY2VpcHQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi1hbGxvY2F0aW9uLmNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uIH0gZnJvbSAnLi4vZGVwcmVjaWF0aW9uL2RlcHJlY2lhdGlvbic7XG5pbXBvcnQgeyBFeHBlbnNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9leHBlbnNlLmludGVyZmFjZSc7XG5cbi8vIEBUT0RPIHJlZmFjdG9yIHdpdGggYmFzZU1vZGVsIGluIGNvbnN0cnVjdG9yXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2UgaW1wbGVtZW50cyBFeHBlbnNlLCBJUmVjZWlwdCB7XG4gIC8vIGxpc3Qgb2YgY2hpbGQgdHJhbnNhY3Rpb25zIChmZWVzKVxuICBAVHlwZSgoKSA9PiBUcmFuc2FjdGlvbilcbiAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbltdID0gW107XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHkpXG4gIHByb3BlcnR5OiBQcm9wZXJ0eTtcblxuICBAVHlwZSgoKSA9PiBUcmFuc2FjdGlvblJlY2VpcHQpXG4gIHJlY2VpcHQ6IFRyYW5zYWN0aW9uUmVjZWlwdDtcblxuICBAVHlwZSgoKSA9PiBDaGFydEFjY291bnRzKVxuICBjaGFydEFjY291bnRzOiBDaGFydEFjY291bnRzO1xuXG4gIEBUeXBlKCgpID0+IEluY29tZVNvdXJjZSlcbiAgaW5jb21lU291cmNlOiBJbmNvbWVTb3VyY2U7XG5cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb25NZXRhZGF0YSlcbiAgbWV0YWRhdGE6IFRyYW5zYWN0aW9uTWV0YWRhdGFbXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uKVxuICB0cmFuc2ZlcjogVHJhbnNhY3Rpb247XG5cbiAgQFR5cGUoKCkgPT4gTG9hbilcbiAgbG9hbjogTG9hbjtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBkYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uQWxsb2NhdGlvbilcbiAgYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbltdID0gW107XG5cbiAgLy8gY291bGQgYmUgRmlsZSB3aGVuIGp1c3QgYWRkZWQgbmV3IGltYWdlXG4gIEBFeGNsdWRlKHt0b1BsYWluT25seTogdHJ1ZX0pXG4gIGZpbGU6IEZpbGU7XG5cbiAgdGF4OiBudW1iZXIgPSAwO1xuICBvcGVyYXRpb246IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bSA9IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5GSU5EX0FORF9NQVRDSDtcbiAgYWxsb2NhdGVkQW1vdW50OiBudW1iZXI7XG4gIHVuYWxsb2NhdGVkQW1vdW50OiBudW1iZXI7XG4gIGlzU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGNsYWltUGVyY2VudDogbnVtYmVyID0gMTAwO1xuICBhbW91bnQ6IG51bWJlciA9IDA7XG5cbiAgaXNEZWJpdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBUcmFuc2FjdGlvblR5cGVFbnVtLkRFQklUO1xuICB9XG5cbiAgaXNDcmVkaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlRW51bS5DUkVESVQ7XG4gIH1cblxuICBpc0luY29tZSgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuY2hhcnRBY2NvdW50cykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNDcmVkaXQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5pbmNvbWUuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIGlzRXhwZW5zZSgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuY2hhcnRBY2NvdW50cykge1xuICAgICAgcmV0dXJuIHRoaXMuaXNEZWJpdCgpO1xuICAgIH1cblxuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLmV4cGVuc2UuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIGlzUGVyc29uYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucGVyc29uYWwuaW5jbHVkZXModGhpcy5jaGFydEFjY291bnRzLmNhdGVnb3J5KTtcbiAgfVxuXG4gIGdldCBjaGFydEFjY291bnRzQ2F0ZWdvcmllcygpOiBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtW10ge1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSB0aGlzLmlzUGVyc29uYWwoKTpcbiAgICAgICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucGVyc29uYWw7XG5cbiAgICAgIGNhc2UgdGhpcy5pc1Byb3BlcnR5VGFuaygpOlxuICAgICAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5wcm9wZXJ0eTtcblxuICAgICAgY2FzZSB0aGlzLmlzU29sZVRhbmsoKTpcbiAgICAgICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuc29sZTtcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMud29yaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gaGFzICdLbG1zIHRyYXZlbGxlZCBmb3Igd29yaycgY2hhcnQgYWNjb3VudHMgY2F0ZWdvcnlcbiAgICovXG4gIGdldCBpc0tsbXNDaGFydEFjY291bnRzQ2F0ZWdvcnkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRBY2NvdW50cy5pZCA9PT0gQ2hhcnRBY2NvdW50c0xpc3RFbnVtLktMTVNfVFJBVkVMTEVEX0ZPUl9XT1JLO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbiBkYXRlXG4gICAqL1xuICBnZXREYXRlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLmRhdGU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gdHlwZSBpcyB2ZWhpY2xlXG4gICAqL1xuICBpc1ZlaGljbGVUcmFuc2FjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydEFjY291bnRzLmlzVmVoaWNsZUV4cGVuc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbmV0IGFtb3VudCAoY2xlYW4gYW1vdW50IGFmdGVyIGFsbCBkZWR1Y3Rpb25zKVxuICAgKi9cbiAgZ2V0TmV0QW1vdW50KCk6IG51bWJlciB7XG4gICAgLy8gQFRPRE8gZml4IGhhY2sgd2hpbGUgdHJhbnNhY3Rpb25zIHJlZmFjdG9yaW5nICh1c2UgY2xhc3MtdHJhbnNmb3JtZXIpXG4gICAgcmV0dXJuICsoTWF0aC5yb3VuZCh0aGlzLmdldEluY29tZUFtb3VudEJ5VHlwZShJbmNvbWVBbW91bnRUeXBlRW51bS5ORVQpICogMTAwKSAvIDEwMCkudG9GaXhlZCgyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZ3Jvc3MgaW5jb21lIGFtb3VudFxuICAgKi9cbiAgZ2V0R3Jvc3NJbmNvbWUoKTogbnVtYmVyIHtcbiAgICAvLyBAVE9ETyBmaXggaGFjayB3aGlsZSB0cmFuc2FjdGlvbnMgcmVmYWN0b3JpbmcgKHVzZSBjbGFzcy10cmFuc2Zvcm1lcilcbiAgICByZXR1cm4gKyhNYXRoLnJvdW5kKHRoaXMuZ2V0SW5jb21lQW1vdW50QnlUeXBlKEluY29tZUFtb3VudFR5cGVFbnVtLkdST1NTKSAqIDEwMCkgLyAxMDApLnRvRml4ZWQoMik7XG4gIH1cblxuICBnZXQgdGF4RnJlZUNvbXBvbmVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFkYXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YWRhdGFMaXN0RW51bS5UQVhfRlJFRV9DT01QT05FTlQpO1xuICB9XG5cbiAgZ2V0IGZyYW5raW5nQ3JlZGl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhZGF0YUxpc3RFbnVtLkZSQU5LSU5HX0NSRURJVCk7XG4gIH1cblxuICBnZXQgZWxpZ2libGVGb3JSZWR1Y3Rpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhZGF0YUZpZWxkVmFsdWUoQ2hhcnRBY2NvdW50c01ldGFkYXRhTGlzdEVudW0uRUxJR0lCTEVfRk9SX1JFRFVDVElPTik7XG4gIH1cblxuICBnZXQgdW50YXhlZEVsZW1lbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhZGF0YUZpZWxkVmFsdWUoQ2hhcnRBY2NvdW50c01ldGFkYXRhTGlzdEVudW0uVU5UQVhFRF9FTEVNRU5UKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0cmFuc2FjdGlvbiByZWNvbmNpbGUgb3BlcmF0aW9uIGlmIFRSQU5TRkVSXG4gICAqIEBUT0RPIGJhZCB1c2FnZSBvZiBnZXQgKGFuZCBhbGwgaXMqIG1ldGhvZHMpLCBnZXR0ZXIgc2hvdWxkIHNvdW5kIGxpa2UgYSBub3VuXG4gICAqL1xuICBnZXQgaXNUcmFuc2ZlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb24gPT09IFRyYW5zYWN0aW9uT3BlcmF0aW9uRW51bS5UUkFOU0ZFUjtcbiAgfVxuXG4gIGdldCBkZWJpdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlzRGViaXQoKSA/IE1hdGguYWJzKHRoaXMuYW1vdW50KSA6IDA7XG4gIH1cblxuICBnZXQgY3JlZGl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuaXNDcmVkaXQoKSA/IE1hdGguYWJzKHRoaXMuYW1vdW50KSA6IDA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHZhbHVlIG9mIHRyYW5zYWN0aW9uIG1ldGFkYXRhIGZpZWxkXG4gICAqIEBwYXJhbSBmaWVsZCBmb3Igd2hpY2ggdmFsdWUgc2hvdWxkIGJlIHJldHVybmVkXG4gICAqL1xuICBwcml2YXRlIGdldE1ldGFkYXRhRmllbGRWYWx1ZShmaWVsZDogQ2hhcnRBY2NvdW50c01ldGFkYXRhTGlzdEVudW0pOiBudW1iZXIge1xuICAgIHJldHVybiArdGhpcy5tZXRhZGF0YS5maW5kKCh0cmFuc2FjdGlvbk1ldGFkYXRhOiBUcmFuc2FjdGlvbk1ldGFkYXRhKTogYm9vbGVhbiA9PiB7XG4gICAgICByZXR1cm4gdHJhbnNhY3Rpb25NZXRhZGF0YS5jaGFydEFjY291bnRzTWV0YWRhdGEuaWQgPT09IGZpZWxkO1xuICAgIH0pPy52YWx1ZSB8fCAwO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgTmV0IG9yIEdyb3NzIGluY29tZSBhbW91bnQgYmFzZWQgb24gcHJvdmlkZWQgaW5jb21lIHR5cGVcbiAgICogQHBhcmFtIGluY29tZVR5cGUgYnkgd2hpY2ggYW1vdW50IHNob3VsZCBiZSByZXR1cm5lZFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRJbmNvbWVBbW91bnRCeVR5cGUoaW5jb21lVHlwZTogSW5jb21lQW1vdW50VHlwZUVudW0pOiBudW1iZXIge1xuICAgIC8vIG1vZGlmaWVyIHRoYXQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSB2YWx1ZXMgb2YgdGhlIHRyYW5zYWN0aW9uIGZpZWxkcyB3aWxsIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWRcbiAgICBjb25zdCBtb2RpZmllcjogbnVtYmVyID0gaW5jb21lVHlwZSA9PT0gSW5jb21lQW1vdW50VHlwZUVudW0uR1JPU1MgPyAxIDogLTE7XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgdGhpcy5pc1Byb3BlcnR5VGFuaygpOlxuICAgICAgICByZXR1cm4gdGhpcy5hbW91bnQgK1xuICAgICAgICAgICh0aGlzLnRyYW5zYWN0aW9uc1xuICAgICAgICAgICAgLnJlZHVjZSgoc3VtOiBudW1iZXIsIHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbik6IG51bWJlciA9PiBzdW0gKyBNYXRoLmFicyh0cmFuc2FjdGlvbi5hbW91bnQpLCAwKSAqIG1vZGlmaWVyKTtcbiAgICAgIGNhc2UgdGhpcy5pc1dvcmtUYW5rKCk6XG4gICAgICAgIHJldHVybiB0aGlzLmFtb3VudCArICgodGhpcy50YXggKyB0aGlzLmZyYW5raW5nQ3JlZGl0IC0gdGhpcy50YXhGcmVlQ29tcG9uZW50IC0gdGhpcy5lbGlnaWJsZUZvclJlZHVjdGlvbikgKiBtb2RpZmllcik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5hbW91bnQgfHwgMDtcbiAgICB9XG4gIH1cblxuICBpc0ludGVyZXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0QWNjb3VudHMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5JTlRFUkVTVF9PTl9MT0FOO1xuICB9XG5cbiAgaXNDYXNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNvdXJjZSA9PT0gVHJhbnNhY3Rpb25Tb3VyY2VFbnVtLkNBU0g7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIERlcHJlY2lhdGlvbiBpbnN0YW5jZSBiYXNlZCBvbiBUcmFuc2FjdGlvblxuICAgKi9cbiAgdG9EZXByZWNpYXRpb24oKTogRGVwcmVjaWF0aW9uIHtcbiAgICByZXR1cm4gcGxhaW5Ub0NsYXNzKERlcHJlY2lhdGlvbiwge1xuICAgICAgZGF0ZTogdGhpcy5kYXRlLFxuICAgICAgYW1vdW50OiB0aGlzLmFtb3VudCxcbiAgICAgIGNoYXJ0QWNjb3VudHM6IHRoaXMuY2hhcnRBY2NvdW50cyxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgdHlwZTogRGVwcmVjaWF0aW9uVHlwZUVudW0uUExBTlRfRVFVSVBNRU5ULFxuICAgICAgY2xhaW1QZXJjZW50OiB0aGlzLmNsYWltUGVyY2VudCxcbiAgICAgIHByb3BlcnR5OiB0aGlzLnByb3BlcnR5LFxuICAgICAgY2FsY3VsYXRpb246IHRoaXMucHJvcGVydHkgPyB0aGlzLnByb3BlcnR5LmRlcHJlY2lhdGlvbkNhbGN1bGF0aW9uIDogRGVwcmVjaWF0aW9uQ2FsY3VsYXRpb25FbnVtLlBSSU1FX0NPU1RcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0cmFuc2FjdGlvbiBpcyBjb21wbGV0ZWx5IGFsbG9jYXRlZFxuICAgKi9cbiAgaXNBbGxvY2F0ZWQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5nZXROZXRBbW91bnQoKSA9PT0gdGhpcy5nZXRBbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0cmFuc2FjdGlvbiBhbGxvY2F0ZWQgYW1vdW50XG4gICAqL1xuICBnZXRBbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiBhbGxvY2F0aW9ucy5nZXRCeVRyYW5zYWN0aW9uc0lkcyhbdGhpcy5pZF0pLmFtb3VudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb24gdW5hbGxvY2F0ZWQgYW1vdW50XG4gICAqL1xuICBnZXRVbmFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9uczogVHJhbnNhY3Rpb25BbGxvY2F0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TmV0QW1vdW50KCkgLSB0aGlzLmdldEFsbG9jYXRlZEFtb3VudChhbGxvY2F0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3RyYW5zYWN0aW9uL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsV0FBVyxJQUFJLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTNFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBVSxZQUFZLEVBQWEsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxP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Q0Y7QUFHbkI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7NENBQ0g7QUFHNUI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO2tEQUNHO0FBRzdCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQztpREFDRTtBQUczQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQzs2Q0FDSztBQUdyQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7NkNBQ0Y7QUFHdEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3lDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3lDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0RBQ1EiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbiBhcyBUcmFuc2FjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3RyYW5zYWN0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcnkuZW51bSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy90cmFuc2FjdGlvbi1vcGVyYXRpb24uZW51bSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzTGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1saXN0LmVudW0nO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c01ldGFkYXRhTGlzdEVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9jaGFydC1hY2NvdW50cy1tZXRhZGF0YS1saXN0LmVudW0nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Tb3VyY2VFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdHJhbnNhY3Rpb24tc291cmNlLmVudW0nO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kYi9FbnVtcy9kZXByZWNpYXRpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2RlcHJlY2lhdGlvbi1jYWxjdWxhdGlvbi5lbnVtJztcbmltcG9ydCB7RXhjbHVkZSwgcGxhaW5Ub0NsYXNzLCBUcmFuc2Zvcm0sIFR5cGV9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnLi4vcHJvcGVydHkvcHJvcGVydHknO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25SZWNlaXB0IH0gZnJvbSAnLi90cmFuc2FjdGlvbi1yZWNlaXB0JztcbmltcG9ydCB7IENoYXJ0QWNjb3VudHMgfSBmcm9tICcuLi9jaGFydC1hY2NvdW50cy9jaGFydC1hY2NvdW50cyc7XG5pbXBvcnQgeyBJbmNvbWVTb3VyY2UgfSBmcm9tICcuLi9pbmNvbWUtc291cmNlL2luY29tZS1zb3VyY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25NZXRhZGF0YSB9IGZyb20gJy4vdHJhbnNhY3Rpb24tbWV0YWRhdGEnO1xuaW1wb3J0IHsgTG9hbiB9IGZyb20gJy4uL2xvYW4vbG9hbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkFsbG9jYXRpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uLWFsbG9jYXRpb24nO1xuaW1wb3J0IHsgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUyB9IGZyb20gJy4uL2NoYXJ0LWFjY291bnRzL2NoYXJ0LWFjY291bnRzLWNhdGVnb3JpZXMuY29uc3QnO1xuaW1wb3J0IHsgSW5jb21lQW1vdW50VHlwZUVudW0gfSBmcm9tICcuL2luY29tZS1hbW91bnQtdHlwZS5lbnVtJztcbmltcG9ydCB7IElSZWNlaXB0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZWNlaXB0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24tYWxsb2NhdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbiB9IGZyb20gJy4uL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24nO1xuaW1wb3J0IHsgRXhwZW5zZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZXhwZW5zZS5pbnRlcmZhY2UnO1xuXG4vLyBAVE9ETyByZWZhY3RvciB3aXRoIGJhc2VNb2RlbCBpbiBjb25zdHJ1Y3RvclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlIGltcGxlbWVudHMgRXhwZW5zZSwgSVJlY2VpcHQge1xuICAvLyBsaXN0IG9mIGNoaWxkIHRyYW5zYWN0aW9ucyAoZmVlcylcbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb24pXG4gIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSA9IFtdO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5KVxuICBwcm9wZXJ0eTogUHJvcGVydHk7XG5cbiAgQFR5cGUoKCkgPT4gVHJhbnNhY3Rpb25SZWNlaXB0KVxuICByZWNlaXB0OiBUcmFuc2FjdGlvblJlY2VpcHQ7XG5cbiAgQFR5cGUoKCkgPT4gQ2hhcnRBY2NvdW50cylcbiAgY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50cztcblxuICBAVHlwZSgoKSA9PiBJbmNvbWVTb3VyY2UpXG4gIGluY29tZVNvdXJjZTogSW5jb21lU291cmNlO1xuXG4gIEBUeXBlKCgpID0+IFRyYW5zYWN0aW9uTWV0YWRhdGEpXG4gIG1ldGFkYXRhOiBUcmFuc2FjdGlvbk1ldGFkYXRhW10gPSBbXTtcblxuICBAVHlwZSgoKSA9PiBUcmFuc2FjdGlvbilcbiAgdHJhbnNmZXI6IFRyYW5zYWN0aW9uO1xuXG4gIEBUeXBlKCgpID0+IExvYW4pXG4gIGxvYW46IExvYW47XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgZGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBUcmFuc2FjdGlvbkFsbG9jYXRpb24pXG4gIGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25bXSA9IFtdO1xuXG4gIHRheDogbnVtYmVyID0gMDtcbiAgb3BlcmF0aW9uOiBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0gPSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uRklORF9BTkRfTUFUQ0g7XG4gIGFsbG9jYXRlZEFtb3VudDogbnVtYmVyO1xuICB1bmFsbG9jYXRlZEFtb3VudDogbnVtYmVyO1xuICBpc1NlbGVjdGVkOiBib29sZWFuO1xuICBjbGFpbVBlcmNlbnQ6IG51bWJlciA9IDEwMDtcbiAgYW1vdW50OiBudW1iZXIgPSAwO1xuXG4gIGlzRGViaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlRW51bS5ERUJJVDtcbiAgfVxuXG4gIGlzQ3JlZGl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZUVudW0uQ1JFRElUO1xuICB9XG5cbiAgaXNJbmNvbWUoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmNoYXJ0QWNjb3VudHMpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzQ3JlZGl0KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMuaW5jb21lLmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5jYXRlZ29yeSk7XG4gIH1cblxuICBpc0V4cGVuc2UoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmNoYXJ0QWNjb3VudHMpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzRGViaXQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5leHBlbnNlLmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5jYXRlZ29yeSk7XG4gIH1cblxuICBpc1BlcnNvbmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnBlcnNvbmFsLmluY2x1ZGVzKHRoaXMuY2hhcnRBY2NvdW50cy5jYXRlZ29yeSk7XG4gIH1cblxuICBnZXQgY2hhcnRBY2NvdW50c0NhdGVnb3JpZXMoKTogQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bVtdIHtcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgdGhpcy5pc1BlcnNvbmFsKCk6XG4gICAgICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnBlcnNvbmFsO1xuXG4gICAgICBjYXNlIHRoaXMuaXNQcm9wZXJ0eVRhbmsoKTpcbiAgICAgICAgcmV0dXJuIENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucHJvcGVydHk7XG5cbiAgICAgIGNhc2UgdGhpcy5pc1NvbGVUYW5rKCk6XG4gICAgICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnNvbGU7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLndvcms7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRyYW5zYWN0aW9uIGhhcyAnS2xtcyB0cmF2ZWxsZWQgZm9yIHdvcmsnIGNoYXJ0IGFjY291bnRzIGNhdGVnb3J5XG4gICAqL1xuICBnZXQgaXNLbG1zQ2hhcnRBY2NvdW50c0NhdGVnb3J5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0QWNjb3VudHMuaWQgPT09IENoYXJ0QWNjb3VudHNMaXN0RW51bS5LTE1TX1RSQVZFTExFRF9GT1JfV09SSztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb24gZGF0ZVxuICAgKi9cbiAgZ2V0RGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5kYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRyYW5zYWN0aW9uIHR5cGUgaXMgdmVoaWNsZVxuICAgKi9cbiAgaXNWZWhpY2xlVHJhbnNhY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhcnRBY2NvdW50cy5pc1ZlaGljbGVFeHBlbnNlKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IG5ldCBhbW91bnQgKGNsZWFuIGFtb3VudCBhZnRlciBhbGwgZGVkdWN0aW9ucylcbiAgICovXG4gIGdldE5ldEFtb3VudCgpOiBudW1iZXIge1xuICAgIC8vIEBUT0RPIGZpeCBoYWNrIHdoaWxlIHRyYW5zYWN0aW9ucyByZWZhY3RvcmluZyAodXNlIGNsYXNzLXRyYW5zZm9ybWVyKVxuICAgIHJldHVybiArKE1hdGgucm91bmQodGhpcy5nZXRJbmNvbWVBbW91bnRCeVR5cGUoSW5jb21lQW1vdW50VHlwZUVudW0uTkVUKSAqIDEwMCkgLyAxMDApLnRvRml4ZWQoMik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGdyb3NzIGluY29tZSBhbW91bnRcbiAgICovXG4gIGdldEdyb3NzSW5jb21lKCk6IG51bWJlciB7XG4gICAgLy8gQFRPRE8gZml4IGhhY2sgd2hpbGUgdHJhbnNhY3Rpb25zIHJlZmFjdG9yaW5nICh1c2UgY2xhc3MtdHJhbnNmb3JtZXIpXG4gICAgcmV0dXJuICsoTWF0aC5yb3VuZCh0aGlzLmdldEluY29tZUFtb3VudEJ5VHlwZShJbmNvbWVBbW91bnRUeXBlRW51bS5HUk9TUykgKiAxMDApIC8gMTAwKS50b0ZpeGVkKDIpO1xuICB9XG5cbiAgZ2V0IHRheEZyZWVDb21wb25lbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRNZXRhZGF0YUZpZWxkVmFsdWUoQ2hhcnRBY2NvdW50c01ldGFkYXRhTGlzdEVudW0uVEFYX0ZSRUVfQ09NUE9ORU5UKTtcbiAgfVxuXG4gIGdldCBmcmFua2luZ0NyZWRpdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE1ldGFkYXRhRmllbGRWYWx1ZShDaGFydEFjY291bnRzTWV0YWRhdGFMaXN0RW51bS5GUkFOS0lOR19DUkVESVQpO1xuICB9XG5cbiAgZ2V0IGVsaWdpYmxlRm9yUmVkdWN0aW9uKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhZGF0YUxpc3RFbnVtLkVMSUdJQkxFX0ZPUl9SRURVQ1RJT04pO1xuICB9XG5cbiAgZ2V0IHVudGF4ZWRFbGVtZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TWV0YWRhdGFGaWVsZFZhbHVlKENoYXJ0QWNjb3VudHNNZXRhZGF0YUxpc3RFbnVtLlVOVEFYRURfRUxFTUVOVCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gcmVjb25jaWxlIG9wZXJhdGlvbiBpZiBUUkFOU0ZFUlxuICAgKiBAVE9ETyBiYWQgdXNhZ2Ugb2YgZ2V0IChhbmQgYWxsIGlzKiBtZXRob2RzKSwgZ2V0dGVyIHNob3VsZCBzb3VuZCBsaWtlIGEgbm91blxuICAgKi9cbiAgZ2V0IGlzVHJhbnNmZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMub3BlcmF0aW9uID09PSBUcmFuc2FjdGlvbk9wZXJhdGlvbkVudW0uVFJBTlNGRVI7XG4gIH1cblxuICBnZXQgZGViaXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pc0RlYml0KCkgPyBNYXRoLmFicyh0aGlzLmFtb3VudCkgOiAwO1xuICB9XG5cbiAgZ2V0IGNyZWRpdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlzQ3JlZGl0KCkgPyBNYXRoLmFicyh0aGlzLmFtb3VudCkgOiAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB2YWx1ZSBvZiB0cmFuc2FjdGlvbiBtZXRhZGF0YSBmaWVsZFxuICAgKiBAcGFyYW0gZmllbGQgZm9yIHdoaWNoIHZhbHVlIHNob3VsZCBiZSByZXR1cm5lZFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRNZXRhZGF0YUZpZWxkVmFsdWUoZmllbGQ6IENoYXJ0QWNjb3VudHNNZXRhZGF0YUxpc3RFbnVtKTogbnVtYmVyIHtcbiAgICByZXR1cm4gK3RoaXMubWV0YWRhdGEuZmluZCgodHJhbnNhY3Rpb25NZXRhZGF0YTogVHJhbnNhY3Rpb25NZXRhZGF0YSk6IGJvb2xlYW4gPT4ge1xuICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uTWV0YWRhdGEuY2hhcnRBY2NvdW50c01ldGFkYXRhLmlkID09PSBmaWVsZDtcbiAgICB9KT8udmFsdWUgfHwgMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIE5ldCBvciBHcm9zcyBpbmNvbWUgYW1vdW50IGJhc2VkIG9uIHByb3ZpZGVkIGluY29tZSB0eXBlXG4gICAqIEBwYXJhbSBpbmNvbWVUeXBlIGJ5IHdoaWNoIGFtb3VudCBzaG91bGQgYmUgcmV0dXJuZWRcbiAgICovXG4gIHByaXZhdGUgZ2V0SW5jb21lQW1vdW50QnlUeXBlKGluY29tZVR5cGU6IEluY29tZUFtb3VudFR5cGVFbnVtKTogbnVtYmVyIHtcbiAgICAvLyBtb2RpZmllciB0aGF0IGRldGVybWluZXMgd2hldGhlciB0aGUgdmFsdWVzIG9mIHRoZSB0cmFuc2FjdGlvbiBmaWVsZHMgd2lsbCBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkXG4gICAgY29uc3QgbW9kaWZpZXI6IG51bWJlciA9IGluY29tZVR5cGUgPT09IEluY29tZUFtb3VudFR5cGVFbnVtLkdST1NTID8gMSA6IC0xO1xuXG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIHRoaXMuaXNQcm9wZXJ0eVRhbmsoKTpcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vdW50ICtcbiAgICAgICAgICAodGhpcy50cmFuc2FjdGlvbnNcbiAgICAgICAgICAgIC5yZWR1Y2UoKHN1bTogbnVtYmVyLCB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiBudW1iZXIgPT4gc3VtICsgTWF0aC5hYnModHJhbnNhY3Rpb24uYW1vdW50KSwgMCkgKiBtb2RpZmllcik7XG4gICAgICBjYXNlIHRoaXMuaXNXb3JrVGFuaygpOlxuICAgICAgICByZXR1cm4gdGhpcy5hbW91bnQgKyAoKHRoaXMudGF4ICsgdGhpcy5mcmFua2luZ0NyZWRpdCAtIHRoaXMudGF4RnJlZUNvbXBvbmVudCAtIHRoaXMuZWxpZ2libGVGb3JSZWR1Y3Rpb24pICogbW9kaWZpZXIpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHRoaXMuYW1vdW50IHx8IDA7XG4gICAgfVxuICB9XG5cbiAgaXNJbnRlcmVzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jaGFydEFjY291bnRzLmlkID09PSBDaGFydEFjY291bnRzTGlzdEVudW0uSU5URVJFU1RfT05fTE9BTjtcbiAgfVxuXG4gIGlzQ2FzaCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zb3VyY2UgPT09IFRyYW5zYWN0aW9uU291cmNlRW51bS5DQVNIO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBEZXByZWNpYXRpb24gaW5zdGFuY2UgYmFzZWQgb24gVHJhbnNhY3Rpb25cbiAgICovXG4gIHRvRGVwcmVjaWF0aW9uKCk6IERlcHJlY2lhdGlvbiB7XG4gICAgcmV0dXJuIHBsYWluVG9DbGFzcyhEZXByZWNpYXRpb24sIHtcbiAgICAgIGRhdGU6IHRoaXMuZGF0ZSxcbiAgICAgIGFtb3VudDogdGhpcy5hbW91bnQsXG4gICAgICBjaGFydEFjY291bnRzOiB0aGlzLmNoYXJ0QWNjb3VudHMsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcbiAgICAgIHR5cGU6IERlcHJlY2lhdGlvblR5cGVFbnVtLlBMQU5UX0VRVUlQTUVOVCxcbiAgICAgIGNsYWltUGVyY2VudDogdGhpcy5jbGFpbVBlcmNlbnQsXG4gICAgICBwcm9wZXJ0eTogdGhpcy5wcm9wZXJ0eSxcbiAgICAgIGNhbGN1bGF0aW9uOiB0aGlzLnByb3BlcnR5ID8gdGhpcy5wcm9wZXJ0eS5kZXByZWNpYXRpb25DYWxjdWxhdGlvbiA6IERlcHJlY2lhdGlvbkNhbGN1bGF0aW9uRW51bS5QUklNRV9DT1NUXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHJhbnNhY3Rpb24gaXMgY29tcGxldGVseSBhbGxvY2F0ZWRcbiAgICovXG4gIGlzQWxsb2NhdGVkKGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TmV0QW1vdW50KCkgPT09IHRoaXMuZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb24gYWxsb2NhdGVkIGFtb3VudFxuICAgKi9cbiAgZ2V0QWxsb2NhdGVkQW1vdW50KGFsbG9jYXRpb25zOiBUcmFuc2FjdGlvbkFsbG9jYXRpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gYWxsb2NhdGlvbnMuZ2V0QnlUcmFuc2FjdGlvbnNJZHMoW3RoaXMuaWRdKS5hbW91bnQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9uIHVuYWxsb2NhdGVkIGFtb3VudFxuICAgKi9cbiAgZ2V0VW5hbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnM6IFRyYW5zYWN0aW9uQWxsb2NhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldE5ldEFtb3VudCgpIC0gdGhpcy5nZXRBbGxvY2F0ZWRBbW91bnQoYWxsb2NhdGlvbnMpO1xuICB9XG59XG4iXX0=
@@ -6,7 +6,7 @@ import * as i1 from '@angular/common/http';
6
6
  import { HttpParams, HttpErrorResponse, HTTP_INTERCEPTORS } from '@angular/common/http';
7
7
  import { ReplaySubject, BehaviorSubject, throwError, Subject, combineLatest, of, Observable, forkJoin } from 'rxjs';
8
8
  import { map, catchError, filter, take, switchMap, finalize, mergeMap } from 'rxjs/operators';
9
- import { plainToClass, Type, Exclude, Transform, Expose, classToPlain } from 'class-transformer';
9
+ import { plainToClass, Exclude, Type, Transform, Expose, classToPlain } from 'class-transformer';
10
10
  import { JwtHelperService } from '@auth0/angular-jwt';
11
11
  import get from 'lodash/get';
12
12
  import flatten from 'lodash/flatten';
@@ -2049,6 +2049,13 @@ class TransactionBase extends AbstractModel {
2049
2049
  return CHART_ACCOUNTS_CATEGORIES.sole.includes((_a = this.chartAccounts) === null || _a === void 0 ? void 0 : _a.category);
2050
2050
  }
2051
2051
  }
2052
+ __decorate([
2053
+ Exclude({ toPlainOnly: true }),
2054
+ Type(() => Object),
2055
+ Transform(({ obj }) => {
2056
+ return obj.file;
2057
+ })
2058
+ ], TransactionBase.prototype, "file", void 0);
2052
2059
 
2053
2060
  class Depreciation$1 extends TransactionBase {
2054
2061
  }
@@ -3754,9 +3761,6 @@ __decorate([
3754
3761
  __decorate([
3755
3762
  Type(() => TransactionAllocation)
3756
3763
  ], Transaction.prototype, "allocations", void 0);
3757
- __decorate([
3758
- Exclude({ toPlainOnly: true })
3759
- ], Transaction.prototype, "file", void 0);
3760
3764
 
3761
3765
  class BankTransaction extends BankTransaction$1 {
3762
3766
  constructor() {