taxtank-core 0.2.3 → 0.3.2

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.
Files changed (84) hide show
  1. package/bundles/taxtank-core.umd.js +969 -479
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/bank-account.collection.js +3 -3
  4. package/esm2015/lib/collections/bank-transaction.collection.js +3 -3
  5. package/esm2015/lib/collections/client-movement.collection.js +3 -3
  6. package/esm2015/lib/collections/client-portfolio-report.collection.js +3 -3
  7. package/esm2015/lib/collections/client.collection.js +3 -3
  8. package/esm2015/lib/collections/collection-dictionary.js +1 -1
  9. package/esm2015/lib/collections/collection.js +75 -0
  10. package/esm2015/lib/collections/depreciation-forecast.collection.js +5 -5
  11. package/esm2015/lib/collections/depreciation.collection.js +3 -3
  12. package/esm2015/lib/collections/employee.collection.js +3 -3
  13. package/esm2015/lib/collections/income-source.collection.js +3 -3
  14. package/esm2015/lib/collections/loan.collection.js +3 -3
  15. package/esm2015/lib/collections/message-document.collection.js +3 -3
  16. package/esm2015/lib/collections/message.collection.js +3 -3
  17. package/esm2015/lib/collections/property.collection.js +10 -3
  18. package/esm2015/lib/collections/service-price.collection.js +3 -3
  19. package/esm2015/lib/collections/service-subscription.collection.js +3 -3
  20. package/esm2015/lib/collections/tax-return-category-item.collection.js +3 -3
  21. package/esm2015/lib/collections/tax-review.collection.js +3 -3
  22. package/esm2015/lib/collections/transaction-allocation.collection.js +3 -3
  23. package/esm2015/lib/collections/transaction.collection.js +3 -3
  24. package/esm2015/lib/collections/user-event-setting.collection.js +3 -3
  25. package/esm2015/lib/db/Enums/chart-accounts-metadata-list.enum.js +2 -1
  26. package/esm2015/lib/interceptors/corelogic-interceptor.js +44 -0
  27. package/esm2015/lib/interceptors/financial-year-interceptor.js +30 -0
  28. package/esm2015/lib/interceptors/interceptors.module.js +74 -0
  29. package/esm2015/lib/interceptors/jwt-interceptor.js +137 -0
  30. package/esm2015/lib/interceptors/preloader.interceptor.js +32 -0
  31. package/esm2015/lib/interceptors/user-switcher-interceptor.js +42 -0
  32. package/esm2015/lib/models/color/alphabet-colors.enum.js +30 -0
  33. package/esm2015/lib/models/data-table/data-table.js +6 -4
  34. package/esm2015/lib/models/logbook/vehicle-claim.js +7 -1
  35. package/esm2015/lib/models/transaction/transaction.js +11 -2
  36. package/esm2015/lib/services/bank/bank-account.service.js +7 -1
  37. package/esm2015/lib/services/pdf/pdf.service.js +39 -6
  38. package/esm2015/lib/services/property/equity-position-chart.service.js +45 -0
  39. package/esm2015/lib/services/xlsx/xlsx.service.js +1 -1
  40. package/esm2015/lib/tt-core.module.js +8 -4
  41. package/esm2015/public-api.js +8 -2
  42. package/fesm2015/taxtank-core.js +893 -437
  43. package/fesm2015/taxtank-core.js.map +1 -1
  44. package/lib/collections/bank-account.collection.d.ts +2 -2
  45. package/lib/collections/bank-transaction.collection.d.ts +2 -2
  46. package/lib/collections/client-movement.collection.d.ts +2 -2
  47. package/lib/collections/client-portfolio-report.collection.d.ts +2 -2
  48. package/lib/collections/client.collection.d.ts +2 -2
  49. package/lib/collections/collection-dictionary.d.ts +2 -2
  50. package/lib/collections/{abstract.collection.d.ts → collection.d.ts} +3 -9
  51. package/lib/collections/depreciation-forecast.collection.d.ts +2 -2
  52. package/lib/collections/depreciation.collection.d.ts +2 -2
  53. package/lib/collections/employee.collection.d.ts +2 -2
  54. package/lib/collections/income-source.collection.d.ts +2 -2
  55. package/lib/collections/loan.collection.d.ts +2 -2
  56. package/lib/collections/message-document.collection.d.ts +2 -2
  57. package/lib/collections/message.collection.d.ts +2 -2
  58. package/lib/collections/property.collection.d.ts +7 -2
  59. package/lib/collections/service-price.collection.d.ts +2 -2
  60. package/lib/collections/service-subscription.collection.d.ts +2 -2
  61. package/lib/collections/tax-return-category-item.collection.d.ts +2 -2
  62. package/lib/collections/tax-review.collection.d.ts +2 -2
  63. package/lib/collections/transaction-allocation.collection.d.ts +2 -2
  64. package/lib/collections/transaction.collection.d.ts +2 -2
  65. package/lib/collections/user-event-setting.collection.d.ts +2 -2
  66. package/lib/db/Enums/chart-accounts-metadata-list.enum.d.ts +1 -0
  67. package/lib/interceptors/corelogic-interceptor.d.ts +20 -0
  68. package/lib/interceptors/financial-year-interceptor.d.ts +12 -0
  69. package/lib/interceptors/interceptors.module.d.ts +6 -0
  70. package/lib/interceptors/jwt-interceptor.d.ts +42 -0
  71. package/lib/interceptors/preloader.interceptor.d.ts +15 -0
  72. package/lib/interceptors/user-switcher-interceptor.d.ts +19 -0
  73. package/lib/models/color/alphabet-colors.enum.d.ts +28 -0
  74. package/lib/models/data-table/data-table.d.ts +2 -2
  75. package/lib/models/logbook/vehicle-claim.d.ts +4 -0
  76. package/lib/models/transaction/transaction.d.ts +3 -0
  77. package/lib/services/bank/bank-account.service.d.ts +1 -0
  78. package/lib/services/pdf/pdf.service.d.ts +10 -1
  79. package/lib/services/property/equity-position-chart.service.d.ts +15 -0
  80. package/lib/services/xlsx/xlsx.service.d.ts +1 -1
  81. package/lib/tt-core.module.d.ts +2 -1
  82. package/package.json +1 -1
  83. package/public-api.d.ts +7 -1
  84. package/esm2015/lib/collections/abstract.collection.js +0 -83
@@ -1,83 +0,0 @@
1
- import { CollectionDictionary } from './collection-dictionary';
2
- import first from 'lodash/first';
3
- import last from 'lodash/last';
4
- import get from 'lodash/get';
5
- const DEFAULT_INDEX = 'other';
6
- /**
7
- * collection abstract class. Contains common properties and methods for all collections
8
- */
9
- export class AbstractCollection {
10
- constructor(items = []) {
11
- this.items = items;
12
- }
13
- create(items = []) {
14
- return new this.constructor(items);
15
- }
16
- getBy(field, value) {
17
- return this.create(this.items.filter((item) => item[field] === value));
18
- }
19
- groupBy(path = '') {
20
- return new CollectionDictionary(this, path);
21
- }
22
- indexBy(path) {
23
- // Create empty initial object for groups
24
- const result = {};
25
- this.toArray().forEach((model) => {
26
- result[get(model, path, DEFAULT_INDEX)] = model;
27
- });
28
- return result;
29
- }
30
- /**
31
- * Iterator that allow to iterate collection items
32
- */
33
- [Symbol.iterator]() {
34
- // .values() returns Iterator instance for array
35
- return this.items.values();
36
- }
37
- /**
38
- * get collection length
39
- */
40
- get length() {
41
- return this.items.length;
42
- }
43
- /**
44
- * method returns amount of fields from passed items
45
- * @param field Name of field for calculation
46
- * @param items (optional) Array of items need to be calculated. All collection's items by default
47
- */
48
- getSummary(field, items = this.toArray()) {
49
- return items.reduce((sum, item) => sum += item[field], 0);
50
- }
51
- /**
52
- * Get list of items ids
53
- */
54
- getIds() {
55
- return this.items.map((item) => item['id']);
56
- }
57
- /**
58
- * Get single item by id
59
- */
60
- getById(id) {
61
- return this.items.find((item) => item['id'] === id);
62
- }
63
- getByIds(ids) {
64
- return this.items.filter((item) => ids.includes(item['id']));
65
- }
66
- /**
67
- * Get total sum of items by field
68
- * @param field Name of the field for sum
69
- */
70
- sumBy(field) {
71
- return +this.items.reduce((sum, item) => sum + Number(item[field]), 0).toFixed(2);
72
- }
73
- toArray() {
74
- return [...this.items];
75
- }
76
- get first() {
77
- return first(this.items);
78
- }
79
- get last() {
80
- return last(this.items);
81
- }
82
- }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9jb2xsZWN0aW9ucy9hYnN0cmFjdC5jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDO0FBRTdCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQztBQUU5Qjs7R0FFRztBQUNILE1BQU0sT0FBZ0Isa0JBQWtCO0lBSXRDLFlBQVksUUFBaUIsRUFBRTtRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQWlCLEVBQUU7UUFDeEIsT0FBTyxJQUFLLElBQUksQ0FBQyxXQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBYSxFQUFFLEtBQVU7UUFDN0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWUsRUFBRTtRQUN2QixPQUFPLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQix5Q0FBeUM7UUFDekMsTUFBTSxNQUFNLEdBQTZCLEVBQUUsQ0FBQztRQUU1QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDdEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2YsZ0RBQWdEO1FBQ2hELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sVUFBVSxDQUFDLEtBQWEsRUFBRSxRQUFpQixJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ2pFLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxJQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFXLEVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FBQyxFQUFVO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFXLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVcsRUFBVyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsS0FBYTtRQUNqQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFXLEVBQUUsSUFBVyxFQUFVLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbkRpY3Rpb25hcnkgfSBmcm9tICcuL2NvbGxlY3Rpb24tZGljdGlvbmFyeSc7XHJcbmltcG9ydCBmaXJzdCBmcm9tICdsb2Rhc2gvZmlyc3QnO1xyXG5pbXBvcnQgbGFzdCBmcm9tICdsb2Rhc2gvbGFzdCc7XHJcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XHJcblxyXG5jb25zdCBERUZBVUxUX0lOREVYID0gJ290aGVyJztcclxuXHJcbi8qKlxyXG4gKiBjb2xsZWN0aW9uIGFic3RyYWN0IGNsYXNzLiBDb250YWlucyBjb21tb24gcHJvcGVydGllcyBhbmQgbWV0aG9kcyBmb3IgYWxsIGNvbGxlY3Rpb25zXHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RDb2xsZWN0aW9uPE1vZGVsIGV4dGVuZHMgb2JqZWN0PiBpbXBsZW1lbnRzIEl0ZXJhYmxlPE1vZGVsPiB7XHJcbiAgLy8gbGlzdCBvZiBjb2xsZWN0aW9uJ3MgaXRlbXNcclxuICBpdGVtczogTW9kZWxbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoaXRlbXM6IE1vZGVsW10gPSBbXSkge1xyXG4gICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKGl0ZW1zOiBNb2RlbFtdID0gW10pOiB0aGlzIHtcclxuICAgIHJldHVybiBuZXcgKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KShpdGVtcyk7XHJcbiAgfVxyXG5cclxuICBnZXRCeShmaWVsZDogc3RyaW5nLCB2YWx1ZTogYW55KTogdGhpcyB7XHJcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUodGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW06IE1vZGVsKSA9PiBpdGVtW2ZpZWxkXSA9PT0gdmFsdWUpKTtcclxuICB9XHJcblxyXG4gIGdyb3VwQnkocGF0aDogc3RyaW5nID0gJycpOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxBYnN0cmFjdENvbGxlY3Rpb248TW9kZWw+PiB7XHJcbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb25EaWN0aW9uYXJ5KHRoaXMsIHBhdGgpO1xyXG4gIH1cclxuXHJcbiAgaW5kZXhCeShwYXRoOiBzdHJpbmcpOiBvYmplY3Qge1xyXG4gICAgLy8gQ3JlYXRlIGVtcHR5IGluaXRpYWwgb2JqZWN0IGZvciBncm91cHNcclxuICAgIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBNb2RlbCB9ID0ge307XHJcblxyXG4gICAgdGhpcy50b0FycmF5KCkuZm9yRWFjaCgobW9kZWw6IE1vZGVsKSA9PiB7XHJcbiAgICAgIHJlc3VsdFtnZXQobW9kZWwsIHBhdGgsIERFRkFVTFRfSU5ERVgpXSA9IG1vZGVsO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEl0ZXJhdG9yIHRoYXQgYWxsb3cgdG8gaXRlcmF0ZSBjb2xsZWN0aW9uIGl0ZW1zXHJcbiAgICovXHJcbiAgW1N5bWJvbC5pdGVyYXRvcl0oKTogSXRlcmF0b3I8TW9kZWw+IHtcclxuICAgIC8vIC52YWx1ZXMoKSByZXR1cm5zIEl0ZXJhdG9yIGluc3RhbmNlIGZvciBhcnJheVxyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMudmFsdWVzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBnZXQgY29sbGVjdGlvbiBsZW5ndGhcclxuICAgKi9cclxuICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBtZXRob2QgcmV0dXJucyBhbW91bnQgb2YgZmllbGRzIGZyb20gcGFzc2VkIGl0ZW1zXHJcbiAgICogQHBhcmFtIGZpZWxkIE5hbWUgb2YgZmllbGQgZm9yIGNhbGN1bGF0aW9uXHJcbiAgICogQHBhcmFtIGl0ZW1zIChvcHRpb25hbCkgQXJyYXkgb2YgaXRlbXMgbmVlZCB0byBiZSBjYWxjdWxhdGVkLiBBbGwgY29sbGVjdGlvbidzIGl0ZW1zIGJ5IGRlZmF1bHRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZ2V0U3VtbWFyeShmaWVsZDogc3RyaW5nLCBpdGVtczogTW9kZWxbXSA9IHRoaXMudG9BcnJheSgpKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBpdGVtOiBNb2RlbCkgPT4gc3VtICs9IGl0ZW1bZmllbGRdLCAwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBsaXN0IG9mIGl0ZW1zIGlkc1xyXG4gICAqL1xyXG4gIGdldElkcygpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5tYXAoKGl0ZW06IE1vZGVsKTogbnVtYmVyID0+IGl0ZW1bJ2lkJ10pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHNpbmdsZSBpdGVtIGJ5IGlkXHJcbiAgICovXHJcbiAgZ2V0QnlJZChpZDogbnVtYmVyKTogTW9kZWwge1xyXG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogTW9kZWwpOiBib29sZWFuID0+IGl0ZW1bJ2lkJ10gPT09IGlkKTtcclxuICB9XHJcblxyXG4gIGdldEJ5SWRzKGlkczogbnVtYmVyW10pOiBNb2RlbFtdIHtcclxuICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbTogTW9kZWwpOiBib29sZWFuID0+IGlkcy5pbmNsdWRlcyhpdGVtWydpZCddKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdG90YWwgc3VtIG9mIGl0ZW1zIGJ5IGZpZWxkXHJcbiAgICogQHBhcmFtIGZpZWxkIE5hbWUgb2YgdGhlIGZpZWxkIGZvciBzdW1cclxuICAgKi9cclxuICBzdW1CeShmaWVsZDogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgIHJldHVybiArdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBpdGVtOiBNb2RlbCk6IG51bWJlciA9PiBzdW0gKyBOdW1iZXIoaXRlbVtmaWVsZF0pLCAwKS50b0ZpeGVkKDIpO1xyXG4gIH1cclxuXHJcbiAgdG9BcnJheSgpOiBNb2RlbFtdIHtcclxuICAgIHJldHVybiBbLi4udGhpcy5pdGVtc107XHJcbiAgfVxyXG5cclxuICBnZXQgZmlyc3QoKTogTW9kZWwge1xyXG4gICAgcmV0dXJuIGZpcnN0KHRoaXMuaXRlbXMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhc3QoKTogTW9kZWwge1xyXG4gICAgcmV0dXJuIGxhc3QodGhpcy5pdGVtcyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==