@messaia/cdk 18.2.3-rc09 → 18.2.3-rc10

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.
@@ -13,124 +13,181 @@ export class TableDataSource extends DataSource {
13
13
  paginator;
14
14
  sorter;
15
15
  /**
16
- * Represents a value that changes over time.
17
- * Observers can subscribe to the subject to receive filter changes
16
+ * @property _filterChange
17
+ * @description Represents a value that changes over time.
18
+ * Observers can subscribe to this BehaviorSubject to receive filter changes.
19
+ * @type {BehaviorSubject<string>}
18
20
  */
19
21
  _filterChange = new BehaviorSubject('');
20
22
  /**
21
- * onDataLoaded: function($event)
22
- * Event emitted after the data is loaded
23
+ * @property _reloadChange
24
+ * @description Represents a value that triggers reload actions.
25
+ * It is used to notify when a reload should occur by emitting a new value.
26
+ * @type {BehaviorSubject<number>}
23
27
  */
24
28
  _reloadChange = new BehaviorSubject(0);
25
29
  /**
26
- * onDataLoaded: function($event)
27
- * Event emitted after the data is loaded
30
+ * @property onDataLoaded
31
+ * @description Event emitted after the data is loaded.
32
+ * It is a BehaviorSubject that holds pagination data or a null value if no data is loaded.
33
+ * @type {BehaviorSubject<Pagination<TEntity> | any>}
28
34
  */
29
35
  onDataLoaded = new BehaviorSubject(null);
30
36
  /**
31
- * Used to power selecting one or more options from a list.
37
+ * @property selectionModel
38
+ * @description Used to power selecting one or more options from a list.
39
+ * @type {SelectionModel<TEntity>}
32
40
  */
33
41
  selectionModel = new SelectionModel(true, []);
34
42
  /**
35
- * Gets filter
43
+ * @property filter
44
+ * @description Gets the current filter applied to the data.
45
+ * @type {string}
36
46
  */
37
47
  get filter() { return this._filterChange.value; }
38
48
  /**
39
- * Sets filter
49
+ * @property filter
50
+ * @description Sets the filter and resets the page index if the paginator exists.
51
+ * @param {string} filter - The filter value to be applied.
40
52
  */
41
53
  set filter(filter) {
54
+ /* If paginator exists, reset the page index */
42
55
  if (this.paginator) {
43
56
  this.paginator.pageIndex = 0;
44
57
  this.pageIndex = 0;
45
58
  }
59
+ /* Trigger filter change */
46
60
  this._filterChange.next(filter);
47
61
  }
48
62
  /**
49
- * Sort change event emitter
63
+ * @property onSortChange
64
+ * @description Sort change event emitter used to notify changes in sorting.
65
+ * @type {EventEmitter<Sort>}
50
66
  */
51
67
  onSortChange = new EventEmitter();
52
68
  /**
53
- * _sort: MatSort | null
69
+ * @property _sort
70
+ * @description Private instance of MatSort used to control the sorting of the table.
71
+ * @type {MatSort | null}
54
72
  */
55
73
  _sort = new MatSort();
56
74
  /**
57
- * Instance of the MatSort directive used by the table to control its sorting. Sort changes
58
- * emitted by the MatSort will trigger an update to the table's rendered data.
75
+ * @property sort
76
+ * @description Gets or sets the MatSort instance used to control the sorting of the table.
77
+ * Changes in sorting will trigger an update to the table’s rendered data.
78
+ * @type {MatSort | undefined}
59
79
  */
60
80
  get sort() { return this._sort; }
61
81
  set sort(sort) {
82
+ /* Set the sort and subscribe to sort changes */
62
83
  this._sort = sort;
63
84
  this._sort?.sortChange.subscribe(x => this.onSortChange.emit(x));
64
85
  }
65
86
  /**
66
- * Gets reload token
87
+ * @property reloadToken
88
+ * @description Gets the current reload token, used to trigger reload events.
89
+ * @type {number}
67
90
  */
68
91
  get reloadToken() { return this._reloadChange.value; }
69
92
  /**
70
- * isConnected: boolean
93
+ * @property isConnected
94
+ * @description Flag indicating whether the data source is connected.
95
+ * @type {boolean}
71
96
  */
72
97
  isConnected = false;
73
98
  /**
74
- * The navigations to includes
99
+ * @property includes
100
+ * @description The list of navigations to be included in the data query.
101
+ * @type {Array<string>}
75
102
  */
76
103
  includes = [];
77
104
  /**
78
- * The endpoint path
105
+ * @property path
106
+ * @description The endpoint path for the data source.
107
+ * @type {string | undefined}
79
108
  */
80
109
  path;
81
110
  /**
82
- * projection: string | string[]
111
+ * @property projection
112
+ * @description Defines the fields to be included in the data query projection.
113
+ * @type {string | string[]}
83
114
  */
84
115
  projection = '';
85
116
  /**
86
- * The list of items
117
+ * @property items
118
+ * @description The list of items to be displayed in the data table.
119
+ * @type {TEntity[]}
87
120
  */
88
121
  items = [];
89
122
  /**
90
- * The parameters for pagination and sorting.
123
+ * @property parameters
124
+ * @description The parameters for pagination and sorting.
125
+ * @type {any}
91
126
  */
92
127
  parameters;
93
128
  /**
94
- * The list of facets for filtering items.
129
+ * @property facets
130
+ * @description The list of facets for filtering items.
131
+ * @type {Facet[] | undefined}
95
132
  */
96
133
  facets;
97
134
  /**
98
- * Used to add some field filters
135
+ * @property fieldFilters
136
+ * @description A set of field filters applied to the data.
137
+ * @type {any}
99
138
  */
100
139
  fieldFilters = {};
101
140
  /**
102
- * Used to add some field operators
141
+ * @property fieldOperators
142
+ * @description A set of field operators used for filtering.
143
+ * @type {any}
103
144
  */
104
145
  fieldOperators = {};
105
146
  /**
106
- * Used to add some static field filters
147
+ * @property staticFieldFilters
148
+ * @description A set of static field filters applied to the data.
149
+ * @type {any}
107
150
  */
108
151
  staticFieldFilters = {};
109
152
  /**
110
- * The current page index.
153
+ * @property pageIndex
154
+ * @description The current page index for pagination.
155
+ * @type {number}
111
156
  */
112
157
  pageIndex = 0;
113
158
  /**
114
- * The current total number of items being paged
159
+ * @property total
160
+ * @description The current total number of items being paged.
161
+ * @type {number}
115
162
  */
116
163
  total = 0;
117
164
  /**
118
- * The current page size
165
+ * @property pageSize
166
+ * @description The number of items displayed per page in the data-table.
167
+ * It controls how many records are shown on a single page.
168
+ * @type {number}
119
169
  */
120
170
  pageSize = 15;
121
171
  /**
122
- * Number of pages
172
+ * @property pageCount
173
+ * @description The total number of pages based on pagination.
174
+ * @type {number}
123
175
  */
124
176
  pageCount = 0;
125
177
  /**
126
- * A flag to show loading process
178
+ * @property isLoading
179
+ * @description Flag to show the loading process when the data is being fetched.
180
+ * @type {boolean}
127
181
  */
128
182
  isLoading = false;
129
183
  /**
130
- * Constructor
131
- * @param service
132
- * @param paginator
133
- * @param sort
184
+ * @constructor
185
+ * @description Initializes a new instance of the class and sets up the service, paginator, and sorter.
186
+ * The paginator and sorter are optional parameters used for handling pagination and sorting logic
187
+ * for the data displayed in the table.
188
+ * @param {TService} service - The service used for fetching and managing data.
189
+ * @param {MatPaginator} [paginator] - The paginator instance used for pagination functionality.
190
+ * @param {MatSort} [sorter] - The MatSort instance used for sorting functionality.
134
191
  */
135
192
  constructor(service, paginator, sorter) {
136
193
  super();
@@ -266,4 +323,4 @@ export class TableDataSource extends DataSource {
266
323
  */
267
324
  getSelectedIds = () => this.getSelected('id');
268
325
  }
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi90YWJsZS90YWJsZS5kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdDLE9BQU8sRUFBRSxPQUFPLEVBQVEsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLEtBQUssRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFLbEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBbUUsU0FBUSxVQUFtQjtJQXFKbEc7SUFDQTtJQUNBO0lBckpSOzs7T0FHRztJQUNLLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVoRDs7O09BR0c7SUFDSSxhQUFhLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFFdEQ7OztPQUdHO0lBQ0ksWUFBWSxHQUFHLElBQUksZUFBZSxDQUE0QixJQUFJLENBQUMsQ0FBQztJQUUzRTs7T0FFRztJQUNJLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBVSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFOUQ7O09BRUc7SUFDSCxJQUFJLE1BQU0sS0FBYSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUV6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Q0FBQztpQkFDL0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBRSxDQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFcEQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN4RCxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDakMsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLEdBQUcsQ0FBUSxHQUFXLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRTdHOztPQUVHO0lBQ0ksY0FBYyxHQUFHLEdBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQVMsSUFBSSxDQUFDLENBQUM7Q0FDdkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uVmlld2VyLCBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBtZXJnZSwgb2YgYXMgb2JzZXJ2YWJsZU9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc2tpcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uL2NvbW1vbi9mdW5jdGlvbnMvdXRpbHMnO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uL2h0dHAvc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFjZXQgfSBmcm9tICcuL21vZGVscy9mYWNldCc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuL21vZGVscy9wYWdpbmF0aW9uJztcclxuXHJcbi8qKlxyXG4gKiBBIGdlbmVyaWMgZGF0YXNvdXJjZSBmb3IgZGF0YS10YWJsZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRhYmxlRGF0YVNvdXJjZTxURW50aXR5LCBUU2VydmljZSBleHRlbmRzIEdlbmVyaWNTZXJ2aWNlPFRFbnRpdHk+PiBleHRlbmRzIERhdGFTb3VyY2U8VEVudGl0eT4ge1xyXG5cclxuXHQvKipcclxuXHQgKiBSZXByZXNlbnRzIGEgdmFsdWUgdGhhdCBjaGFuZ2VzIG92ZXIgdGltZS4gXHJcblx0ICogT2JzZXJ2ZXJzIGNhbiBzdWJzY3JpYmUgdG8gdGhlIHN1YmplY3QgdG8gcmVjZWl2ZSBmaWx0ZXIgY2hhbmdlc1xyXG5cdCAqL1xyXG5cdHByaXZhdGUgX2ZpbHRlckNoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xyXG5cclxuXHQvKipcclxuXHQgKiBvbkRhdGFMb2FkZWQ6IGZ1bmN0aW9uKCRldmVudClcclxuXHQgKiBFdmVudCBlbWl0dGVkIGFmdGVyIHRoZSBkYXRhIGlzIGxvYWRlZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfcmVsb2FkQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG5cclxuXHQvKipcclxuXHQgKiBvbkRhdGFMb2FkZWQ6IGZ1bmN0aW9uKCRldmVudClcclxuXHQgKiBFdmVudCBlbWl0dGVkIGFmdGVyIHRoZSBkYXRhIGlzIGxvYWRlZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBvbkRhdGFMb2FkZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhZ2luYXRpb248VEVudGl0eT4gfCBhbnk+KG51bGwpO1xyXG5cclxuXHQvKipcclxuXHQgKiBVc2VkIHRvIHBvd2VyIHNlbGVjdGluZyBvbmUgb3IgbW9yZSBvcHRpb25zIGZyb20gYSBsaXN0LlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxURW50aXR5Pih0cnVlLCBbXSk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgZmlsdGVyXHJcblx0ICovXHJcblx0Z2V0IGZpbHRlcigpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fZmlsdGVyQ2hhbmdlLnZhbHVlOyB9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNldHMgZmlsdGVyXHJcblx0ICovXHJcblx0c2V0IGZpbHRlcihmaWx0ZXI6IHN0cmluZykge1xyXG5cdFx0aWYgKHRoaXMucGFnaW5hdG9yKSB7XHJcblx0XHRcdHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCA9IDA7XHJcblx0XHRcdHRoaXMucGFnZUluZGV4ID0gMDtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLl9maWx0ZXJDaGFuZ2UubmV4dChmaWx0ZXIpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU29ydCBjaGFuZ2UgZXZlbnQgZW1pdHRlclxyXG5cdCAqL1xyXG5cdHByaXZhdGUgb25Tb3J0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8U29ydD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIF9zb3J0OiBNYXRTb3J0IHwgbnVsbFxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX3NvcnQ/OiBNYXRTb3J0ID0gbmV3IE1hdFNvcnQoKTtcclxuXHJcblx0LyoqXHJcblx0ICogSW5zdGFuY2Ugb2YgdGhlIE1hdFNvcnQgZGlyZWN0aXZlIHVzZWQgYnkgdGhlIHRhYmxlIHRvIGNvbnRyb2wgaXRzIHNvcnRpbmcuIFNvcnQgY2hhbmdlc1xyXG5cdCAqIGVtaXR0ZWQgYnkgdGhlIE1hdFNvcnQgd2lsbCB0cmlnZ2VyIGFuIHVwZGF0ZSB0byB0aGUgdGFibGUncyByZW5kZXJlZCBkYXRhLlxyXG5cdCAqL1xyXG5cdGdldCBzb3J0KCk6IE1hdFNvcnQgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5fc29ydDsgfVxyXG5cdHNldCBzb3J0KHNvcnQ6IE1hdFNvcnQgfCB1bmRlZmluZWQpIHtcclxuXHRcdHRoaXMuX3NvcnQgPSBzb3J0O1xyXG5cdFx0dGhpcy5fc29ydD8uc29ydENoYW5nZS5zdWJzY3JpYmUoeCA9PiB0aGlzLm9uU29ydENoYW5nZS5lbWl0KHgpKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgcmVsb2FkIHRva2VuXHJcblx0ICovXHJcblx0Z2V0IHJlbG9hZFRva2VuKCk6IG51bWJlciB7IHJldHVybiB0aGlzLl9yZWxvYWRDaGFuZ2UudmFsdWU7IH1cclxuXHJcblx0LyoqXHJcblx0ICogaXNDb25uZWN0ZWQ6IGJvb2xlYW5cclxuXHQgKi9cclxuXHRwdWJsaWMgaXNDb25uZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIG5hdmlnYXRpb25zIHRvIGluY2x1ZGVzXHJcblx0ICovXHJcblx0cHVibGljIGluY2x1ZGVzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBlbmRwb2ludCBwYXRoXHJcblx0ICovXHJcblx0cHVibGljIHBhdGg/OiBzdHJpbmc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHByb2plY3Rpb246IHN0cmluZyB8IHN0cmluZ1tdXHJcblx0ICovXHJcblx0cHVibGljIHByb2plY3Rpb246IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBsaXN0IG9mIGl0ZW1zXHJcblx0ICovXHJcblx0cHVibGljIGl0ZW1zOiBURW50aXR5W10gPSBbXTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIHBhcmFtZXRlcnMgZm9yIHBhZ2luYXRpb24gYW5kIHNvcnRpbmcuXHJcblx0ICovXHJcblx0cHVibGljIHBhcmFtZXRlcnM/OiBhbnk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBsaXN0IG9mIGZhY2V0cyBmb3IgZmlsdGVyaW5nIGl0ZW1zLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBmYWNldHM/OiBGYWNldFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBVc2VkIHRvIGFkZCBzb21lIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgZmllbGRGaWx0ZXJzOiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogVXNlZCB0byBhZGQgc29tZSBmaWVsZCBvcGVyYXRvcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgZmllbGRPcGVyYXRvcnM6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBVc2VkIHRvIGFkZCBzb21lIHN0YXRpYyBmaWVsZCBmaWx0ZXJzXHJcblx0ICovXHJcblx0cHVibGljIHN0YXRpY0ZpZWxkRmlsdGVyczogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoZSBjdXJyZW50IHBhZ2UgaW5kZXguXHJcblx0ICovXHJcblx0cHVibGljIHBhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIGN1cnJlbnQgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGJlaW5nIHBhZ2VkXHJcblx0ICovXHJcblx0cHVibGljIHRvdGFsOiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgY3VycmVudCBwYWdlIHNpemVcclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZVNpemU6IG51bWJlciA9IDE1O1xyXG5cclxuXHQvKipcclxuXHQgKiBOdW1iZXIgb2YgcGFnZXNcclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZUNvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBBIGZsYWcgdG8gc2hvdyBsb2FkaW5nIHByb2Nlc3NcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbnN0cnVjdG9yXHJcblx0ICogQHBhcmFtIHNlcnZpY2UgXHJcblx0ICogQHBhcmFtIHBhZ2luYXRvciBcclxuXHQgKiBAcGFyYW0gc29ydCBcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyBzZXJ2aWNlOiBUU2VydmljZSxcclxuXHRcdHB1YmxpYyBwYWdpbmF0b3I/OiBNYXRQYWdpbmF0b3IsXHJcblx0XHRwdWJsaWMgc29ydGVyPzogTWF0U29ydFxyXG5cdCkge1xyXG5cdFx0c3VwZXIoKTtcclxuXHRcdHRoaXMuc29ydCA9IHNvcnRlcjtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbm5lY3RzIGEgY29sbGVjdGlvbiB2aWV3ZXIgKHN1Y2ggYXMgYSBkYXRhLXRhYmxlKSB0byB0aGlzIGRhdGEgc291cmNlLlxyXG5cdCAqIEBwYXJhbSBfIFRoZSBjb21wb25lbnQgdGhhdCBleHBvc2VzIGEgdmlldyBvdmVyIHRoZSBkYXRhIHByb3ZpZGVkIGJ5IHRoaXNcclxuXHQgKiAgICAgZGF0YSBzb3VyY2UuXHJcblx0ICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgbmV3IHZhbHVlIHdoZW4gdGhlIGRhdGEgY2hhbmdlcy5cclxuXHQgKi9cclxuXHRwdWJsaWMgY29ubmVjdChfPzogQ29sbGVjdGlvblZpZXdlcik6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XHJcblx0XHR0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcclxuXHJcblx0XHQvKiBBIGxpc3Qgb2YgZmllbGRzIHRvIG9ic2VydmUgICovXHJcblx0XHRjb25zdCBkaXNwbGF5RGF0YUNoYW5nZXMgPSBbXHJcblx0XHRcdHRoaXMub25Tb3J0Q2hhbmdlLFxyXG5cdFx0XHR0aGlzLnBhZ2luYXRvcj8ucGFnZSxcclxuXHRcdFx0dGhpcy5fZmlsdGVyQ2hhbmdlLFxyXG5cdFx0XHR0aGlzLl9yZWxvYWRDaGFuZ2VcclxuXHRcdF07XHJcblxyXG5cdFx0LyogSWYgdGhlIHVzZXIgY2hhbmdlcyB0aGUgc29ydCBvcmRlciwgcmVzZXQgYmFjayB0byB0aGUgZmlyc3QgcGFnZSAqL1xyXG5cdFx0aWYgKHRoaXMucGFnaW5hdG9yKSB7XHJcblx0XHRcdHRoaXMub25Tb3J0Q2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7IHRoaXMucGFnaW5hdG9yIS5wYWdlSW5kZXggPSAwOyB9KTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gbWVyZ2UoLi4uZGlzcGxheURhdGFDaGFuZ2VzKVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRza2lwKDEpLFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgoKSA9PiB7XHJcblx0XHRcdFx0XHQvKiBGbGlwIGZsYWcgdG8gc2hvdyB0aGF0IGxvYWRpbmcgaGFzIGJlZ3VuICovXHJcblx0XHRcdFx0XHR0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG5cdFx0XHRcdFx0LyogUmVtb3ZlIGVtcHR5IGZpbHRlcnMgKi9cclxuXHRcdFx0XHRcdFV0aWxzLmNsZWFuT2JqZWN0KHRoaXMuZmllbGRGaWx0ZXJzKTtcclxuXHRcdFx0XHRcdFV0aWxzLmNsZWFuT2JqZWN0KHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzKTtcclxuXHJcblx0XHRcdFx0XHQvKiBMb2FkIGRhdGEgYW5kIHJldHVybiBpdCAqL1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuc2VydmljZS5nZXRMaXN0KFV0aWxzLmNsZWFuT2JqZWN0KE9iamVjdC5hc3NpZ24oe1xyXG5cdFx0XHRcdFx0XHRpbmNsdWRlczogdGhpcy5pbmNsdWRlcyxcclxuXHRcdFx0XHRcdFx0cHJvamVjdGlvbjogQXJyYXkuaXNBcnJheSh0aGlzLnByb2plY3Rpb24pID8gdGhpcy5wcm9qZWN0aW9uLmpvaW4oJywnKSA6IHRoaXMucHJvamVjdGlvbixcclxuXHRcdFx0XHRcdFx0cGFnZTogKHRoaXMucGFnaW5hdG9yPy5wYWdlSW5kZXggPz8gMCkgKyAxLFxyXG5cdFx0XHRcdFx0XHRwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3I/LnBhZ2VTaXplID8/IDE1LFxyXG5cdFx0XHRcdFx0XHRzZWFyY2g6IHRoaXMuZmlsdGVyLnRvTG93ZXJDYXNlKCksXHJcblx0XHRcdFx0XHRcdHNvcnRCeTogdGhpcy5zb3J0Py5hY3RpdmUsXHJcblx0XHRcdFx0XHRcdHNvcnRPcmRlcjogdGhpcy5zb3J0Py5kaXJlY3Rpb25cclxuXHRcdFx0XHRcdH0sIHRoaXMuZmllbGRGaWx0ZXJzID8/IHt9LCB0aGlzLnN0YXRpY0ZpZWxkRmlsdGVycyA/PyB7fSkpLCB0aGlzLnBhdGggPz8gJycsIHsgJ0NoZWNrT3V0JzogJ1llcycgfSk7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0bWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0LyogRmxpcCBmbGFnIHRvIHNob3cgdGhhdCBsb2FkaW5nIGhhcyBmaW5pc2hlZCAqL1xyXG5cdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHQvKiBVcGRhdGUgcGFnaW5hdGlvbiBmaWVsZHMgKi9cclxuXHRcdFx0XHRcdHRoaXMucGFnZUluZGV4ID0gTWF0aC5tYXgoTWF0aC5taW4ocmVzdWx0LnBhZ2UgLSAxLCByZXN1bHQucGFnZUNvdW50IC0gMSksIDApO1xyXG5cdFx0XHRcdFx0dGhpcy50b3RhbCA9IHJlc3VsdC50b3RhbDtcclxuXHRcdFx0XHRcdHRoaXMucGFnZVNpemUgPSByZXN1bHQucGFnZVNpemU7XHJcblx0XHRcdFx0XHR0aGlzLnBhZ2VDb3VudCA9IHJlc3VsdC5wYWdlQ291bnQ7XHJcblx0XHRcdFx0XHR0aGlzLml0ZW1zID0gcmVzdWx0Lml0ZW1zO1xyXG5cdFx0XHRcdFx0dGhpcy5mYWNldHMgPSByZXN1bHQuZmFjZXRzO1xyXG5cdFx0XHRcdFx0dGhpcy5wYXJhbWV0ZXJzID0gcmVzdWx0LnBhcmFtZXRlcnM7XHJcblxyXG5cdFx0XHRcdFx0LyogUmFpc2Ugb25sb2FkIGV2ZW50ICovXHJcblx0XHRcdFx0XHR0aGlzLm9uRGF0YUxvYWRlZC5uZXh0KHJlc3VsdCk7XHJcblxyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuaXRlbXM7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0Y2F0Y2hFcnJvcigoKSA9PiB7XHJcblx0XHRcdFx0XHQvKiBGbGlwIGZsYWcgdG8gc2hvdyB0aGF0IGxvYWRpbmcgaGFzIGZpbmlzaGVkICovXHJcblx0XHRcdFx0XHR0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuXHRcdFx0XHRcdHJldHVybiBvYnNlcnZhYmxlT2YoW10pO1xyXG5cdFx0XHRcdH0pKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIERpc2Nvbm5lY3RzIGEgY29sbGVjdGlvbiB2aWV3ZXIgKHN1Y2ggYXMgYSBkYXRhLXRhYmxlKSBmcm9tIHRoaXMgZGF0YSBzb3VyY2UuIENhbiBiZSB1c2VkXHJcblx0ICogdG8gcGVyZm9ybSBhbnkgY2xlYW4tdXAgb3IgdGVhci1kb3duIG9wZXJhdGlvbnMgd2hlbiBhIHZpZXcgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIF8gVGhlIGNvbXBvbmVudCB0aGF0IGV4cG9zZXMgYSB2aWV3IG92ZXIgdGhlIGRhdGEgcHJvdmlkZWQgYnkgdGhpc1xyXG5cdCAqICAgICBkYXRhIHNvdXJjZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgZGlzY29ubmVjdChfOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7XHJcblx0XHR0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZWxvYWRzIGl0ZW1zXHJcblx0ICogQHBhcmFtIGNsZWFyU2VsZWN0aW9uIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZWxvYWQoY2xlYXJTZWxlY3Rpb246IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcblx0XHR0aGlzLl9yZWxvYWRDaGFuZ2UubmV4dChNYXRoLnJhbmRvbSgpKTtcclxuXHJcblx0XHRpZiAoY2xlYXJTZWxlY3Rpb24pIHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2xlYXJzIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgYXBwbHlGaWx0ZXJzKG5ld0ZpbHRlcnM6IGFueSA9IHt9KTogdm9pZCB7XHJcblx0XHR0aGlzLmZpZWxkRmlsdGVycyA9IG5ld0ZpbHRlcnMgfHwge307XHJcblx0XHR0aGlzLnJlbG9hZCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2xlYXJzIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgY2xlYXJGaWx0ZXJzKG5ld0ZpbHRlcnM6IGFueSA9IHt9KTogdm9pZCB7XHJcblx0XHR0aGlzLmZpZWxkRmlsdGVycyA9IG5ld0ZpbHRlcnMgfHwge307XHJcblx0XHR0aGlzLnJlbG9hZCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2tzLCB3aGV0aGVyIGFsbCBpdGVtcyBhcmUgc2VsZWN0ZWRcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuXHRcdGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLnRvdGFsO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVG9nZ2xlcyBzZWxlY3RlZCBpdGVtc1xyXG5cdCAqIEBwYXJhbSBjaGVja2JveCBcclxuXHQgKiBAcGFyYW0gcHJlZGljYXRlXHJcblx0ICovXHJcblx0cHVibGljIHRvZ2dsZVNlbGVjdChjaGVja2JveDogTWF0Q2hlY2tib3hDaGFuZ2UsIHByZWRpY2F0ZT86ICh2YWx1ZTogVEVudGl0eSwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRFbnRpdHlbXSkgPT4gdW5rbm93bikge1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuaGFzVmFsdWUoKSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XHJcblx0XHRcdGNoZWNrYm94LnNvdXJjZS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLml0ZW1zLmZpbHRlcihwcmVkaWNhdGUgPyBwcmVkaWNhdGUgOiB4ID0+IHgpXHJcblx0XHRcdFx0LmZpbHRlcih4ID0+ICEoeCBhcyBhbnkpWydsb2NrZWQnXSlcclxuXHRcdFx0XHQuZm9yRWFjaChkYXRhID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGRhdGEpKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCAhPT0gdGhpcy50b3RhbCkge1xyXG5cdFx0XHRcdGNoZWNrYm94LnNvdXJjZS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCBzZWxlY3RlZCBJdGVtc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXRTZWxlY3RlZCA9IDxUVHlwZT4oa2V5OiBzdHJpbmcpOiBUVHlwZVtdID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubWFwKHggPT4gKHggYXMgYW55KVtrZXldKTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0IHNlbGVjdGVkIEl0ZW1zXHJcblx0ICovXHJcblx0cHVibGljIGdldFNlbGVjdGVkSWRzID0gKCk6IG51bWJlcltdID0+IHRoaXMuZ2V0U2VsZWN0ZWQ8bnVtYmVyPignaWQnKTtcclxufSJdfQ==
326
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi90YWJsZS90YWJsZS5kYXRhLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdDLE9BQU8sRUFBRSxPQUFPLEVBQVEsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFjLEtBQUssRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFLbEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBbUUsU0FBUSxVQUFtQjtJQTZNbEc7SUFDQTtJQUNBO0lBOU1SOzs7OztPQUtHO0lBQ0ssYUFBYSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRXhEOzs7OztPQUtHO0lBQ0ksYUFBYSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBRXREOzs7OztPQUtHO0lBQ0ksWUFBWSxHQUFHLElBQUksZUFBZSxDQUE0QixJQUFJLENBQUMsQ0FBQztJQUUzRTs7OztPQUlHO0lBQ0ksY0FBYyxHQUFHLElBQUksY0FBYyxDQUFVLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUU5RDs7OztPQUlHO0lBQ0gsSUFBSSxNQUFNLEtBQWEsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFD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QUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDL0MsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBRSxDQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFcEQsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN4RCxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDakMsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLEdBQUcsQ0FBUSxHQUFXLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFFLENBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRTdHOztPQUVHO0lBQ0ksY0FBYyxHQUFHLEdBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQVMsSUFBSSxDQUFDLENBQUM7Q0FDdkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uVmlld2VyLCBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9jZGsvdGFibGUnO1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IE1hdFNvcnQsIFNvcnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBtZXJnZSwgb2YgYXMgb2JzZXJ2YWJsZU9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc2tpcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4uL2NvbW1vbi9mdW5jdGlvbnMvdXRpbHMnO1xyXG5pbXBvcnQgeyBHZW5lcmljU2VydmljZSB9IGZyb20gJy4uL2h0dHAvc2VydmljZXMvZ2VuZXJpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmFjZXQgfSBmcm9tICcuL21vZGVscy9mYWNldCc7XHJcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuL21vZGVscy9wYWdpbmF0aW9uJztcclxuXHJcbi8qKlxyXG4gKiBBIGdlbmVyaWMgZGF0YXNvdXJjZSBmb3IgZGF0YS10YWJsZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRhYmxlRGF0YVNvdXJjZTxURW50aXR5LCBUU2VydmljZSBleHRlbmRzIEdlbmVyaWNTZXJ2aWNlPFRFbnRpdHk+PiBleHRlbmRzIERhdGFTb3VyY2U8VEVudGl0eT4ge1xyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBfZmlsdGVyQ2hhbmdlXHJcblx0ICogQGRlc2NyaXB0aW9uIFJlcHJlc2VudHMgYSB2YWx1ZSB0aGF0IGNoYW5nZXMgb3ZlciB0aW1lLiBcclxuXHQgKiBPYnNlcnZlcnMgY2FuIHN1YnNjcmliZSB0byB0aGlzIEJlaGF2aW9yU3ViamVjdCB0byByZWNlaXZlIGZpbHRlciBjaGFuZ2VzLlxyXG5cdCAqIEB0eXBlIHtCZWhhdmlvclN1YmplY3Q8c3RyaW5nPn1cclxuXHQgKi9cclxuXHRwcml2YXRlIF9maWx0ZXJDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgX3JlbG9hZENoYW5nZVxyXG5cdCAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIGEgdmFsdWUgdGhhdCB0cmlnZ2VycyByZWxvYWQgYWN0aW9ucy4gXHJcblx0ICogSXQgaXMgdXNlZCB0byBub3RpZnkgd2hlbiBhIHJlbG9hZCBzaG91bGQgb2NjdXIgYnkgZW1pdHRpbmcgYSBuZXcgdmFsdWUuXHJcblx0ICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxudW1iZXI+fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfcmVsb2FkQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgb25EYXRhTG9hZGVkXHJcblx0ICogQGRlc2NyaXB0aW9uIEV2ZW50IGVtaXR0ZWQgYWZ0ZXIgdGhlIGRhdGEgaXMgbG9hZGVkLiBcclxuXHQgKiBJdCBpcyBhIEJlaGF2aW9yU3ViamVjdCB0aGF0IGhvbGRzIHBhZ2luYXRpb24gZGF0YSBvciBhIG51bGwgdmFsdWUgaWYgbm8gZGF0YSBpcyBsb2FkZWQuXHJcblx0ICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+IHwgYW55Pn1cclxuXHQgKi9cclxuXHRwdWJsaWMgb25EYXRhTG9hZGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+IHwgYW55PihudWxsKTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHNlbGVjdGlvbk1vZGVsXHJcblx0ICogQGRlc2NyaXB0aW9uIFVzZWQgdG8gcG93ZXIgc2VsZWN0aW5nIG9uZSBvciBtb3JlIG9wdGlvbnMgZnJvbSBhIGxpc3QuXHJcblx0ICogQHR5cGUge1NlbGVjdGlvbk1vZGVsPFRFbnRpdHk+fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxURW50aXR5Pih0cnVlLCBbXSk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBmaWx0ZXJcclxuXHQgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgY3VycmVudCBmaWx0ZXIgYXBwbGllZCB0byB0aGUgZGF0YS5cclxuXHQgKiBAdHlwZSB7c3RyaW5nfVxyXG5cdCAqL1xyXG5cdGdldCBmaWx0ZXIoKTogc3RyaW5nIHsgcmV0dXJuIHRoaXMuX2ZpbHRlckNoYW5nZS52YWx1ZTsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgZmlsdGVyXHJcblx0ICogQGRlc2NyaXB0aW9uIFNldHMgdGhlIGZpbHRlciBhbmQgcmVzZXRzIHRoZSBwYWdlIGluZGV4IGlmIHRoZSBwYWdpbmF0b3IgZXhpc3RzLlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBmaWx0ZXIgLSBUaGUgZmlsdGVyIHZhbHVlIHRvIGJlIGFwcGxpZWQuXHJcblx0ICovXHJcblx0c2V0IGZpbHRlcihmaWx0ZXI6IHN0cmluZykge1xyXG5cdFx0LyogSWYgcGFnaW5hdG9yIGV4aXN0cywgcmVzZXQgdGhlIHBhZ2UgaW5kZXggKi9cclxuXHRcdGlmICh0aGlzLnBhZ2luYXRvcikge1xyXG5cdFx0XHR0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXggPSAwO1xyXG5cdFx0XHR0aGlzLnBhZ2VJbmRleCA9IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogVHJpZ2dlciBmaWx0ZXIgY2hhbmdlICovXHJcblx0XHR0aGlzLl9maWx0ZXJDaGFuZ2UubmV4dChmaWx0ZXIpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IG9uU29ydENoYW5nZVxyXG5cdCAqIEBkZXNjcmlwdGlvbiBTb3J0IGNoYW5nZSBldmVudCBlbWl0dGVyIHVzZWQgdG8gbm90aWZ5IGNoYW5nZXMgaW4gc29ydGluZy5cclxuXHQgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPFNvcnQ+fVxyXG5cdCAqL1xyXG5cdHByaXZhdGUgb25Tb3J0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8U29ydD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBfc29ydFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBQcml2YXRlIGluc3RhbmNlIG9mIE1hdFNvcnQgdXNlZCB0byBjb250cm9sIHRoZSBzb3J0aW5nIG9mIHRoZSB0YWJsZS5cclxuXHQgKiBAdHlwZSB7TWF0U29ydCB8IG51bGx9XHJcblx0ICovXHJcblx0cHJpdmF0ZSBfc29ydD86IE1hdFNvcnQgPSBuZXcgTWF0U29ydCgpO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgc29ydFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBHZXRzIG9yIHNldHMgdGhlIE1hdFNvcnQgaW5zdGFuY2UgdXNlZCB0byBjb250cm9sIHRoZSBzb3J0aW5nIG9mIHRoZSB0YWJsZS5cclxuXHQgKiBDaGFuZ2VzIGluIHNvcnRpbmcgd2lsbCB0cmlnZ2VyIGFuIHVwZGF0ZSB0byB0aGUgdGFibGXigJlzIHJlbmRlcmVkIGRhdGEuXHJcblx0ICogQHR5cGUge01hdFNvcnQgfCB1bmRlZmluZWR9XHJcblx0ICovXHJcblx0Z2V0IHNvcnQoKTogTWF0U29ydCB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9zb3J0OyB9XHJcblx0c2V0IHNvcnQoc29ydDogTWF0U29ydCB8IHVuZGVmaW5lZCkge1xyXG5cdFx0LyogU2V0IHRoZSBzb3J0IGFuZCBzdWJzY3JpYmUgdG8gc29ydCBjaGFuZ2VzICovXHJcblx0XHR0aGlzLl9zb3J0ID0gc29ydDtcclxuXHRcdHRoaXMuX3NvcnQ/LnNvcnRDaGFuZ2Uuc3Vic2NyaWJlKHggPT4gdGhpcy5vblNvcnRDaGFuZ2UuZW1pdCh4KSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcmVsb2FkVG9rZW5cclxuXHQgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgY3VycmVudCByZWxvYWQgdG9rZW4sIHVzZWQgdG8gdHJpZ2dlciByZWxvYWQgZXZlbnRzLlxyXG5cdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0ICovXHJcblx0Z2V0IHJlbG9hZFRva2VuKCk6IG51bWJlciB7IHJldHVybiB0aGlzLl9yZWxvYWRDaGFuZ2UudmFsdWU7IH1cclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IGlzQ29ubmVjdGVkXHJcblx0ICogQGRlc2NyaXB0aW9uIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBkYXRhIHNvdXJjZSBpcyBjb25uZWN0ZWQuXHJcblx0ICogQHR5cGUge2Jvb2xlYW59XHJcblx0ICovXHJcblx0cHVibGljIGlzQ29ubmVjdGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBpbmNsdWRlc1xyXG5cdCAqIEBkZXNjcmlwdGlvbiBUaGUgbGlzdCBvZiBuYXZpZ2F0aW9ucyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgZGF0YSBxdWVyeS5cclxuXHQgKiBAdHlwZSB7QXJyYXk8c3RyaW5nPn1cclxuXHQgKi9cclxuXHRwdWJsaWMgaW5jbHVkZXM6IEFycmF5PHN0cmluZz4gPSBbXTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHBhdGhcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIGVuZHBvaW50IHBhdGggZm9yIHRoZSBkYXRhIHNvdXJjZS5cclxuXHQgKiBAdHlwZSB7c3RyaW5nIHwgdW5kZWZpbmVkfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYXRoPzogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcHJvamVjdGlvblxyXG5cdCAqIEBkZXNjcmlwdGlvbiBEZWZpbmVzIHRoZSBmaWVsZHMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGRhdGEgcXVlcnkgcHJvamVjdGlvbi5cclxuXHQgKiBAdHlwZSB7c3RyaW5nIHwgc3RyaW5nW119XHJcblx0ICovXHJcblx0cHVibGljIHByb2plY3Rpb246IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBpdGVtc1xyXG5cdCAqIEBkZXNjcmlwdGlvbiBUaGUgbGlzdCBvZiBpdGVtcyB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGRhdGEgdGFibGUuXHJcblx0ICogQHR5cGUge1RFbnRpdHlbXX1cclxuXHQgKi9cclxuXHRwdWJsaWMgaXRlbXM6IFRFbnRpdHlbXSA9IFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcGFyYW1ldGVyc1xyXG5cdCAqIEBkZXNjcmlwdGlvbiBUaGUgcGFyYW1ldGVycyBmb3IgcGFnaW5hdGlvbiBhbmQgc29ydGluZy5cclxuXHQgKiBAdHlwZSB7YW55fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYXJhbWV0ZXJzPzogYW55O1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgZmFjZXRzXHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIGZhY2V0cyBmb3IgZmlsdGVyaW5nIGl0ZW1zLlxyXG5cdCAqIEB0eXBlIHtGYWNldFtdIHwgdW5kZWZpbmVkfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBmYWNldHM/OiBGYWNldFtdO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgZmllbGRGaWx0ZXJzXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgc2V0IG9mIGZpZWxkIGZpbHRlcnMgYXBwbGllZCB0byB0aGUgZGF0YS5cclxuXHQgKiBAdHlwZSB7YW55fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBmaWVsZEZpbHRlcnM6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgZmllbGRPcGVyYXRvcnNcclxuXHQgKiBAZGVzY3JpcHRpb24gQSBzZXQgb2YgZmllbGQgb3BlcmF0b3JzIHVzZWQgZm9yIGZpbHRlcmluZy5cclxuXHQgKiBAdHlwZSB7YW55fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBmaWVsZE9wZXJhdG9yczogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBzdGF0aWNGaWVsZEZpbHRlcnNcclxuXHQgKiBAZGVzY3JpcHRpb24gQSBzZXQgb2Ygc3RhdGljIGZpZWxkIGZpbHRlcnMgYXBwbGllZCB0byB0aGUgZGF0YS5cclxuXHQgKiBAdHlwZSB7YW55fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzdGF0aWNGaWVsZEZpbHRlcnM6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcGFnZUluZGV4XHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSBjdXJyZW50IHBhZ2UgaW5kZXggZm9yIHBhZ2luYXRpb24uXHJcblx0ICogQHR5cGUge251bWJlcn1cclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgdG90YWxcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIGN1cnJlbnQgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGJlaW5nIHBhZ2VkLlxyXG5cdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0ICovXHJcblx0cHVibGljIHRvdGFsOiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcGFnZVNpemVcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIG51bWJlciBvZiBpdGVtcyBkaXNwbGF5ZWQgcGVyIHBhZ2UgaW4gdGhlIGRhdGEtdGFibGUuXHJcblx0ICogSXQgY29udHJvbHMgaG93IG1hbnkgcmVjb3JkcyBhcmUgc2hvd24gb24gYSBzaW5nbGUgcGFnZS5cclxuXHQgKiBAdHlwZSB7bnVtYmVyfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyID0gMTU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBwYWdlQ291bnRcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcyBiYXNlZCBvbiBwYWdpbmF0aW9uLlxyXG5cdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0ICovXHJcblx0cHVibGljIHBhZ2VDb3VudDogbnVtYmVyID0gMDtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IGlzTG9hZGluZ1xyXG5cdCAqIEBkZXNjcmlwdGlvbiBGbGFnIHRvIHNob3cgdGhlIGxvYWRpbmcgcHJvY2VzcyB3aGVuIHRoZSBkYXRhIGlzIGJlaW5nIGZldGNoZWQuXHJcblx0ICogQHR5cGUge2Jvb2xlYW59XHJcblx0ICovXHJcblx0cHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBAY29uc3RydWN0b3JcclxuXHQgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIGFuZCBzZXRzIHVwIHRoZSBzZXJ2aWNlLCBwYWdpbmF0b3IsIGFuZCBzb3J0ZXIuXHJcblx0ICogVGhlIHBhZ2luYXRvciBhbmQgc29ydGVyIGFyZSBvcHRpb25hbCBwYXJhbWV0ZXJzIHVzZWQgZm9yIGhhbmRsaW5nIHBhZ2luYXRpb24gYW5kIHNvcnRpbmcgbG9naWNcclxuXHQgKiBmb3IgdGhlIGRhdGEgZGlzcGxheWVkIGluIHRoZSB0YWJsZS5cclxuXHQgKiBAcGFyYW0ge1RTZXJ2aWNlfSBzZXJ2aWNlIC0gVGhlIHNlcnZpY2UgdXNlZCBmb3IgZmV0Y2hpbmcgYW5kIG1hbmFnaW5nIGRhdGEuXHJcblx0ICogQHBhcmFtIHtNYXRQYWdpbmF0b3J9IFtwYWdpbmF0b3JdIC0gVGhlIHBhZ2luYXRvciBpbnN0YW5jZSB1c2VkIGZvciBwYWdpbmF0aW9uIGZ1bmN0aW9uYWxpdHkuXHJcblx0ICogQHBhcmFtIHtNYXRTb3J0fSBbc29ydGVyXSAtIFRoZSBNYXRTb3J0IGluc3RhbmNlIHVzZWQgZm9yIHNvcnRpbmcgZnVuY3Rpb25hbGl0eS5cclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyBzZXJ2aWNlOiBUU2VydmljZSxcclxuXHRcdHB1YmxpYyBwYWdpbmF0b3I/OiBNYXRQYWdpbmF0b3IsXHJcblx0XHRwdWJsaWMgc29ydGVyPzogTWF0U29ydFxyXG5cdCkge1xyXG5cdFx0c3VwZXIoKTtcclxuXHRcdHRoaXMuc29ydCA9IHNvcnRlcjtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbm5lY3RzIGEgY29sbGVjdGlvbiB2aWV3ZXIgKHN1Y2ggYXMgYSBkYXRhLXRhYmxlKSB0byB0aGlzIGRhdGEgc291cmNlLlxyXG5cdCAqIEBwYXJhbSBfIFRoZSBjb21wb25lbnQgdGhhdCBleHBvc2VzIGEgdmlldyBvdmVyIHRoZSBkYXRhIHByb3ZpZGVkIGJ5IHRoaXNcclxuXHQgKiAgICAgZGF0YSBzb3VyY2UuXHJcblx0ICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGEgbmV3IHZhbHVlIHdoZW4gdGhlIGRhdGEgY2hhbmdlcy5cclxuXHQgKi9cclxuXHRwdWJsaWMgY29ubmVjdChfPzogQ29sbGVjdGlvblZpZXdlcik6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XHJcblx0XHR0aGlzLmlzQ29ubmVjdGVkID0gdHJ1ZTtcclxuXHJcblx0XHQvKiBBIGxpc3Qgb2YgZmllbGRzIHRvIG9ic2VydmUgICovXHJcblx0XHRjb25zdCBkaXNwbGF5RGF0YUNoYW5nZXMgPSBbXHJcblx0XHRcdHRoaXMub25Tb3J0Q2hhbmdlLFxyXG5cdFx0XHR0aGlzLnBhZ2luYXRvcj8ucGFnZSxcclxuXHRcdFx0dGhpcy5fZmlsdGVyQ2hhbmdlLFxyXG5cdFx0XHR0aGlzLl9yZWxvYWRDaGFuZ2VcclxuXHRcdF07XHJcblxyXG5cdFx0LyogSWYgdGhlIHVzZXIgY2hhbmdlcyB0aGUgc29ydCBvcmRlciwgcmVzZXQgYmFjayB0byB0aGUgZmlyc3QgcGFnZSAqL1xyXG5cdFx0aWYgKHRoaXMucGFnaW5hdG9yKSB7XHJcblx0XHRcdHRoaXMub25Tb3J0Q2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7IHRoaXMucGFnaW5hdG9yIS5wYWdlSW5kZXggPSAwOyB9KTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gbWVyZ2UoLi4uZGlzcGxheURhdGFDaGFuZ2VzKVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRza2lwKDEpLFxyXG5cdFx0XHRcdHN3aXRjaE1hcCgoKSA9PiB7XHJcblx0XHRcdFx0XHQvKiBGbGlwIGZsYWcgdG8gc2hvdyB0aGF0IGxvYWRpbmcgaGFzIGJlZ3VuICovXHJcblx0XHRcdFx0XHR0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcblxyXG5cdFx0XHRcdFx0LyogUmVtb3ZlIGVtcHR5IGZpbHRlcnMgKi9cclxuXHRcdFx0XHRcdFV0aWxzLmNsZWFuT2JqZWN0KHRoaXMuZmllbGRGaWx0ZXJzKTtcclxuXHRcdFx0XHRcdFV0aWxzLmNsZWFuT2JqZWN0KHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzKTtcclxuXHJcblx0XHRcdFx0XHQvKiBMb2FkIGRhdGEgYW5kIHJldHVybiBpdCAqL1xyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuc2VydmljZS5nZXRMaXN0KFV0aWxzLmNsZWFuT2JqZWN0KE9iamVjdC5hc3NpZ24oe1xyXG5cdFx0XHRcdFx0XHRpbmNsdWRlczogdGhpcy5pbmNsdWRlcyxcclxuXHRcdFx0XHRcdFx0cHJvamVjdGlvbjogQXJyYXkuaXNBcnJheSh0aGlzLnByb2plY3Rpb24pID8gdGhpcy5wcm9qZWN0aW9uLmpvaW4oJywnKSA6IHRoaXMucHJvamVjdGlvbixcclxuXHRcdFx0XHRcdFx0cGFnZTogKHRoaXMucGFnaW5hdG9yPy5wYWdlSW5kZXggPz8gMCkgKyAxLFxyXG5cdFx0XHRcdFx0XHRwYWdlU2l6ZTogdGhpcy5wYWdpbmF0b3I/LnBhZ2VTaXplID8/IDE1LFxyXG5cdFx0XHRcdFx0XHRzZWFyY2g6IHRoaXMuZmlsdGVyLnRvTG93ZXJDYXNlKCksXHJcblx0XHRcdFx0XHRcdHNvcnRCeTogdGhpcy5zb3J0Py5hY3RpdmUsXHJcblx0XHRcdFx0XHRcdHNvcnRPcmRlcjogdGhpcy5zb3J0Py5kaXJlY3Rpb25cclxuXHRcdFx0XHRcdH0sIHRoaXMuZmllbGRGaWx0ZXJzID8/IHt9LCB0aGlzLnN0YXRpY0ZpZWxkRmlsdGVycyA/PyB7fSkpLCB0aGlzLnBhdGggPz8gJycsIHsgJ0NoZWNrT3V0JzogJ1llcycgfSk7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0bWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG5cdFx0XHRcdFx0LyogRmxpcCBmbGFnIHRvIHNob3cgdGhhdCBsb2FkaW5nIGhhcyBmaW5pc2hlZCAqL1xyXG5cdFx0XHRcdFx0dGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0XHQvKiBVcGRhdGUgcGFnaW5hdGlvbiBmaWVsZHMgKi9cclxuXHRcdFx0XHRcdHRoaXMucGFnZUluZGV4ID0gTWF0aC5tYXgoTWF0aC5taW4ocmVzdWx0LnBhZ2UgLSAxLCByZXN1bHQucGFnZUNvdW50IC0gMSksIDApO1xyXG5cdFx0XHRcdFx0dGhpcy50b3RhbCA9IHJlc3VsdC50b3RhbDtcclxuXHRcdFx0XHRcdHRoaXMucGFnZVNpemUgPSByZXN1bHQucGFnZVNpemU7XHJcblx0XHRcdFx0XHR0aGlzLnBhZ2VDb3VudCA9IHJlc3VsdC5wYWdlQ291bnQ7XHJcblx0XHRcdFx0XHR0aGlzLml0ZW1zID0gcmVzdWx0Lml0ZW1zO1xyXG5cdFx0XHRcdFx0dGhpcy5mYWNldHMgPSByZXN1bHQuZmFjZXRzO1xyXG5cdFx0XHRcdFx0dGhpcy5wYXJhbWV0ZXJzID0gcmVzdWx0LnBhcmFtZXRlcnM7XHJcblxyXG5cdFx0XHRcdFx0LyogUmFpc2Ugb25sb2FkIGV2ZW50ICovXHJcblx0XHRcdFx0XHR0aGlzLm9uRGF0YUxvYWRlZC5uZXh0KHJlc3VsdCk7XHJcblxyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuaXRlbXM7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0Y2F0Y2hFcnJvcigoKSA9PiB7XHJcblx0XHRcdFx0XHQvKiBGbGlwIGZsYWcgdG8gc2hvdyB0aGF0IGxvYWRpbmcgaGFzIGZpbmlzaGVkICovXHJcblx0XHRcdFx0XHR0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuXHRcdFx0XHRcdHJldHVybiBvYnNlcnZhYmxlT2YoW10pO1xyXG5cdFx0XHRcdH0pKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIERpc2Nvbm5lY3RzIGEgY29sbGVjdGlvbiB2aWV3ZXIgKHN1Y2ggYXMgYSBkYXRhLXRhYmxlKSBmcm9tIHRoaXMgZGF0YSBzb3VyY2UuIENhbiBiZSB1c2VkXHJcblx0ICogdG8gcGVyZm9ybSBhbnkgY2xlYW4tdXAgb3IgdGVhci1kb3duIG9wZXJhdGlvbnMgd2hlbiBhIHZpZXcgaXMgYmVpbmcgZGVzdHJveWVkLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIF8gVGhlIGNvbXBvbmVudCB0aGF0IGV4cG9zZXMgYSB2aWV3IG92ZXIgdGhlIGRhdGEgcHJvdmlkZWQgYnkgdGhpc1xyXG5cdCAqICAgICBkYXRhIHNvdXJjZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgZGlzY29ubmVjdChfOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7XHJcblx0XHR0aGlzLmlzQ29ubmVjdGVkID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZWxvYWRzIGl0ZW1zXHJcblx0ICogQHBhcmFtIGNsZWFyU2VsZWN0aW9uIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZWxvYWQoY2xlYXJTZWxlY3Rpb246IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcblx0XHR0aGlzLl9yZWxvYWRDaGFuZ2UubmV4dChNYXRoLnJhbmRvbSgpKTtcclxuXHJcblx0XHRpZiAoY2xlYXJTZWxlY3Rpb24pIHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2xlYXJzIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgYXBwbHlGaWx0ZXJzKG5ld0ZpbHRlcnM6IGFueSA9IHt9KTogdm9pZCB7XHJcblx0XHR0aGlzLmZpZWxkRmlsdGVycyA9IG5ld0ZpbHRlcnMgfHwge307XHJcblx0XHR0aGlzLnJlbG9hZCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2xlYXJzIGZpZWxkIGZpbHRlcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgY2xlYXJGaWx0ZXJzKG5ld0ZpbHRlcnM6IGFueSA9IHt9KTogdm9pZCB7XHJcblx0XHR0aGlzLmZpZWxkRmlsdGVycyA9IG5ld0ZpbHRlcnMgfHwge307XHJcblx0XHR0aGlzLnJlbG9hZCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2tzLCB3aGV0aGVyIGFsbCBpdGVtcyBhcmUgc2VsZWN0ZWRcclxuXHQgKi9cclxuXHRwdWJsaWMgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuXHRcdGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLnRvdGFsO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVG9nZ2xlcyBzZWxlY3RlZCBpdGVtc1xyXG5cdCAqIEBwYXJhbSBjaGVja2JveCBcclxuXHQgKiBAcGFyYW0gcHJlZGljYXRlXHJcblx0ICovXHJcblx0cHVibGljIHRvZ2dsZVNlbGVjdChjaGVja2JveDogTWF0Q2hlY2tib3hDaGFuZ2UsIHByZWRpY2F0ZT86ICh2YWx1ZTogVEVudGl0eSwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRFbnRpdHlbXSkgPT4gdW5rbm93bikge1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuaGFzVmFsdWUoKSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XHJcblx0XHRcdGNoZWNrYm94LnNvdXJjZS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLml0ZW1zLmZpbHRlcihwcmVkaWNhdGUgPyBwcmVkaWNhdGUgOiB4ID0+IHgpXHJcblx0XHRcdFx0LmZpbHRlcih4ID0+ICEoeCBhcyBhbnkpWydsb2NrZWQnXSlcclxuXHRcdFx0XHQuZm9yRWFjaChkYXRhID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGRhdGEpKTtcclxuXHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCAhPT0gdGhpcy50b3RhbCkge1xyXG5cdFx0XHRcdGNoZWNrYm94LnNvdXJjZS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCBzZWxlY3RlZCBJdGVtc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXRTZWxlY3RlZCA9IDxUVHlwZT4oa2V5OiBzdHJpbmcpOiBUVHlwZVtdID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubWFwKHggPT4gKHggYXMgYW55KVtrZXldKTtcclxuXHJcblx0LyoqXHJcblx0ICogR2V0IHNlbGVjdGVkIEl0ZW1zXHJcblx0ICovXHJcblx0cHVibGljIGdldFNlbGVjdGVkSWRzID0gKCk6IG51bWJlcltdID0+IHRoaXMuZ2V0U2VsZWN0ZWQ8bnVtYmVyPignaWQnKTtcclxufSJdfQ==
@@ -22,6 +22,12 @@ export class TableStaticDataSource extends MatTableDataSource {
22
22
  * @type {BehaviorSubject<Pagination<TEntity> | any>}
23
23
  */
24
24
  onDataLoaded = new BehaviorSubject(null);
25
+ /**
26
+ * @property items
27
+ * @description The list of items to be displayed in the data table.
28
+ * @type {TEntity[]}
29
+ */
30
+ items = [];
25
31
  /**
26
32
  * @property selectionModel
27
33
  * @description A SelectionModel to handle selection of one or more items from the data-table.
@@ -189,4 +195,4 @@ export class TableStaticDataSource extends MatTableDataSource {
189
195
  */
190
196
  getSelected = (key = 'id') => this.selectionModel.selected.map(x => x[key]);
191
197
  }
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuc3RhdGljLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvdGFibGUvdGFibGUuc3RhdGljLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8scUJBQStCLFNBQVEsa0JBQTJCO0lBRTlFOzs7OztPQUtHO0lBQ0ksYUFBYSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBRXREOzs7Ozs7T0FNRztJQUNJLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBNEIsSUFBSSxDQUFDLENBQUM7SUFFM0U7Ozs7O09BS0c7SUFDSSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTlEOzs7OztPQUtHO0lBQ0gsSUFBSSxXQUFXLEtBQWEsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFOUQ7Ozs7O09BS0c7SUFDSSxZQUFZLEdBQVEsRUFBRSxDQUFDO0lBRTlCOzs7OztPQUtHO0lBQ0ksY0FBYyxHQUFRLEVBQUUsQ0FBQztJQUVoQzs7Ozs7T0FLRztJQUNJLGtCQUFrQixHQUFRLEVBQUUsQ0FBQztJQUVwQzs7Ozs7T0FLRztJQUNJLFNBQVMsR0FBVyxDQUFDLENBQUM7SUFFN0I7Ozs7O09BS0c7SUFDSSxLQUFLLEdBQVcsQ0FBQyxDQUFDO0lBRXpCOzs7OztPQUtHO0lBQ0ksUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUU3Qjs7Ozs7T0FLRztJQUNJLFNBQVMsR0FBVyxDQUFDLENB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RUFBVyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Q0FDcEgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi9tb2RlbHMvcGFnaW5hdGlvbic7XHJcblxyXG4vKipcclxuICogQSBnZW5lcmljIGRhdGFzb3VyY2UgY2xhc3MgZm9yIHdvcmtpbmcgd2l0aCBkYXRhLXRhYmxlcyBpbiBBbmd1bGFyIE1hdGVyaWFsLlxyXG4gKiBUaGlzIGNsYXNzIGV4dGVuZHMgTWF0VGFibGVEYXRhU291cmNlIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IGxpa2UgXHJcbiAqIHNlbGVjdGlvbiBtYW5hZ2VtZW50LCBwYWdpbmF0aW9uLCBhbmQgZmlsdGVyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRhYmxlU3RhdGljRGF0YVNvdXJjZTxURW50aXR5PiBleHRlbmRzIE1hdFRhYmxlRGF0YVNvdXJjZTxURW50aXR5PiB7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBfcmVsb2FkQ2hhbmdlXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgQmVoYXZpb3JTdWJqZWN0IHRoYXQgdHJpZ2dlcnMgYSByZWxvYWQgb2YgdGhlIHRhYmxlIGRhdGEuIFxyXG5cdCAqIFRoZSB2YWx1ZSBpcyB1c2VkIGFzIGEgcmVsb2FkIHRva2VuLCBlbnN1cmluZyB0aGUgZGF0YSBpcyByZWxvYWRlZCB3aGVuIGl0IGNoYW5nZXMuXHJcblx0ICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxudW1iZXI+fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfcmVsb2FkQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgb25EYXRhTG9hZGVkXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgQmVoYXZpb3JTdWJqZWN0IHRoYXQgaG9sZHMgdGhlIGxvYWRlZCBkYXRhIG9yIHBhZ2luYXRpb24gaW5mb3JtYXRpb24uXHJcblx0ICogVGhpcyBpcyBlbWl0dGVkIGFmdGVyIHRoZSBkYXRhIGlzIHN1Y2Nlc3NmdWxseSBsb2FkZWQsIHByb3ZpZGluZyBhIG1lY2hhbmlzbSBcclxuXHQgKiB0byB0cmFjayB0aGUgbG9hZGluZyBzdGF0ZSBhbmQgYW55IHVwZGF0ZXMgdG8gdGhlIGRhdGEuXHJcblx0ICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+IHwgYW55Pn1cclxuXHQgKi9cclxuXHRwdWJsaWMgb25EYXRhTG9hZGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+IHwgYW55PihudWxsKTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHNlbGVjdGlvbk1vZGVsXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgU2VsZWN0aW9uTW9kZWwgdG8gaGFuZGxlIHNlbGVjdGlvbiBvZiBvbmUgb3IgbW9yZSBpdGVtcyBmcm9tIHRoZSBkYXRhLXRhYmxlLlxyXG5cdCAqIEl0IGFsbG93cyBtYW5hZ2luZyB0aGUgc2VsZWN0ZWQgaXRlbXMgaW4gdGhlIHRhYmxlIGFuZCBzdXBwb3J0cyBtdWx0aXBsZSBzZWxlY3Rpb24uXHJcblx0ICogQHR5cGUge1NlbGVjdGlvbk1vZGVsPFRFbnRpdHk+fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxURW50aXR5Pih0cnVlLCBbXSk7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSByZWxvYWRUb2tlblxyXG5cdCAqIEBkZXNjcmlwdGlvbiBBIGdldHRlciB0byByZXR1cm4gdGhlIGN1cnJlbnQgcmVsb2FkIHRva2VuLiBcclxuXHQgKiBUaGUgcmVsb2FkIHRva2VuIGlzIHVzZWQgdG8gdHJpZ2dlciByZWxvYWRpbmcgb2YgZGF0YS5cclxuXHQgKiBAdHlwZSB7bnVtYmVyfVxyXG5cdCAqL1xyXG5cdGdldCByZWxvYWRUb2tlbigpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fcmVsb2FkQ2hhbmdlLnZhbHVlOyB9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBmaWVsZEZpbHRlcnNcclxuXHQgKiBAZGVzY3JpcHRpb24gQW4gb2JqZWN0IHVzZWQgdG8gc3RvcmUgZmlsdGVycyBmb3Igc3BlY2lmaWMgZmllbGRzIGluIHRoZSBkYXRhLXRhYmxlLlxyXG5cdCAqIEl0IGFsbG93cyBmaWx0ZXJpbmcgb2YgZGF0YSBiYXNlZCBvbiBzcGVjaWZpYyBmaWVsZCB2YWx1ZXMuXHJcblx0ICogQHR5cGUge2FueX1cclxuXHQgKi9cclxuXHRwdWJsaWMgZmllbGRGaWx0ZXJzOiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IGZpZWxkT3BlcmF0b3JzXHJcblx0ICogQGRlc2NyaXB0aW9uIEFuIG9iamVjdCB0aGF0IHN0b3JlcyBvcGVyYXRvcnMgdG8gYmUgYXBwbGllZCBvbiBmaWVsZHMgZm9yIGZpbHRlcmluZy5cclxuXHQgKiBJdCBhbGxvd3MgY29tcGxleCBmaWx0ZXJpbmcgb3BlcmF0aW9ucyAoZS5nLiwgZXF1YWxzLCBjb250YWlucywgZ3JlYXRlciB0aGFuKS5cclxuXHQgKiBAdHlwZSB7YW55fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBmaWVsZE9wZXJhdG9yczogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBzdGF0aWNGaWVsZEZpbHRlcnNcclxuXHQgKiBAZGVzY3JpcHRpb24gQW4gb2JqZWN0IHRvIHN0b3JlIHN0YXRpYyBmaWx0ZXJzIHRoYXQgYXJlIGFwcGxpZWQgdG8gdGhlIGRhdGEtdGFibGUuXHJcblx0ICogVGhlc2UgZmlsdGVycyBhcmUgbm90IGR5bmFtaWNhbGx5IHNldCBieSB0aGUgdXNlciBidXQgYXJlIGFsd2F5cyBhY3RpdmUuXHJcblx0ICogQHR5cGUge2FueX1cclxuXHQgKi9cclxuXHRwdWJsaWMgc3RhdGljRmllbGRGaWx0ZXJzOiBhbnkgPSB7fTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHBhZ2VJbmRleFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBUaGUgaW5kZXggb2YgdGhlIGN1cnJlbnQgcGFnZSBiZWluZyB2aWV3ZWQgaW4gdGhlIGRhdGEtdGFibGUuIFxyXG5cdCAqIEl0IHN0YXJ0cyBmcm9tIDAgYW5kIGluY3JlbWVudHMgd2l0aCBlYWNoIHBhZ2UgY2hhbmdlLlxyXG5cdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0ICovXHJcblx0cHVibGljIHBhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHRvdGFsXHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIGRhdGEgc291cmNlLiBcclxuXHQgKiBUaGlzIGlzIHR5cGljYWxseSB1c2VkIHRvIGNhbGN1bGF0ZSBwYWdpbmF0aW9uLlxyXG5cdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0ICovXHJcblx0cHVibGljIHRvdGFsOiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcGFnZVNpemVcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIG51bWJlciBvZiBpdGVtcyBkaXNwbGF5ZWQgcGVyIHBhZ2UgaW4gdGhlIGRhdGEtdGFibGUuXHJcblx0ICogSXQgY29udHJvbHMgaG93IG1hbnkgcmVjb3JkcyBhcmUgc2hvd24gb24gYSBzaW5nbGUgcGFnZS5cclxuXHQgKiBAdHlwZSB7bnVtYmVyfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyID0gMTU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBwYWdlQ291bnRcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIHRvdGFsIG51bWJlciBvZiBwYWdlcyBiYXNlZCBvbiB0aGUgY3VycmVudCBwYWdlIHNpemUgYW5kIHRvdGFsIGl0ZW1zLlxyXG5cdCAqIFRoaXMgaXMgY2FsY3VsYXRlZCBkeW5hbWljYWxseSB3aGVuZXZlciBkYXRhIGNoYW5nZXMuXHJcblx0ICogQHR5cGUge251bWJlcn1cclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZUNvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgaXNMb2FkaW5nXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGRhdGEgaXMgY3VycmVudGx5IGJlaW5nIGxvYWRlZC5cclxuXHQgKiBJdCBpcyB1c2VkIHRvIHNob3cgYSBsb2FkaW5nIHNwaW5uZXIgb3IgaW5kaWNhdG9yIHdoaWxlIGRhdGEgaXMgYmVpbmcgZmV0Y2hlZC5cclxuXHQgKiBAdHlwZSB7Ym9vbGVhbn1cclxuXHQgKi9cclxuXHRwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBtZXRob2QgcmVsb2FkXHJcblx0ICogQGRlc2NyaXB0aW9uIFJlbG9hZHMgdGhlIHRhYmxlIGRhdGEgYnkgdHJpZ2dlcmluZyBhIG5ldyByYW5kb20gcmVsb2FkIHRva2VuLlxyXG5cdCAqIE9wdGlvbmFsbHkgY2xlYXJzIHRoZSBzZWxlY3Rpb24gaWYgdGhlIGBjbGVhclNlbGVjdGlvbmAgZmxhZyBpcyBzZXQgdG8gdHJ1ZS5cclxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGNsZWFyU2VsZWN0aW9uIC0gSWYgdHJ1ZSwgY2xlYXJzIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBhZnRlciByZWxvYWQuXHJcblx0ICovXHJcblx0cHVibGljIHJlbG9hZChjbGVhclNlbGVjdGlvbjogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuXHRcdC8qIEVtaXQgYSBuZXcgcmVsb2FkIHRva2VuIHRvIHRyaWdnZXIgZGF0YSByZWxvYWQgKi9cclxuXHRcdHRoaXMuX3JlbG9hZENoYW5nZS5uZXh0KE1hdGgucmFuZG9tKCkpO1xyXG5cclxuXHRcdC8qIENsZWFyIHRoZSBzZWxlY3Rpb24gaWYgc3BlY2lmaWVkICovXHJcblx0XHRpZiAoY2xlYXJTZWxlY3Rpb24pIHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Nb2RlbC5jbGVhcigpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQG1ldGhvZCBjb25uZWN0XHJcblx0ICogQGRlc2NyaXB0aW9uIENhbGxlZCB3aGVuIHRoZSBNYXRUYWJsZSBjb25uZWN0cyB0byB0aGUgZGF0YSBzb3VyY2UuIFxyXG5cdCAqIFRoaXMgbWV0aG9kIHN1YnNjcmliZXMgdG8gdGhlIHJlbG9hZCB0b2tlbiB0byB0cmlnZ2VyIGEgZmlsdGVyIHVwZGF0ZSBhbmQgZGF0YSByZWZyZXNoLlxyXG5cdCAqIEBkb2NzLXByaXZhdGVcclxuXHQgKiBAcmV0dXJucyB7QmVoYXZpb3JTdWJqZWN0PFRFbnRpdHlbXT59IEEgQmVoYXZpb3JTdWJqZWN0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgZGF0YSBhcnJheS5cclxuXHQgKi9cclxuXHRjb25uZWN0KCk6IEJlaGF2aW9yU3ViamVjdDxURW50aXR5W10+IHtcclxuXHRcdC8qIFN1YnNjcmliZSB0byB0aGUgcmVsb2FkIHRva2VuIGFuZCB1cGRhdGUgZmlsdGVycyBhY2NvcmRpbmdseSAqL1xyXG5cdFx0dGhpcy5fcmVsb2FkQ2hhbmdlLnN1YnNjcmliZSh4ID0+IHtcclxuXHRcdFx0LyogQ2xlYW4gdXAgYW55IGVtcHR5IGZpbHRlcnMgYmVmb3JlIGFwcGx5aW5nIHRoZW0gKi9cclxuXHRcdFx0T2JqZWN0LmtleXModGhpcy5maWVsZEZpbHRlcnMpLmZvckVhY2goKGtleSkgPT5cclxuXHRcdFx0XHQoKHRoaXMuZmllbGRGaWx0ZXJzW2tleV0gPT0gbnVsbCB8fCB0aGlzLmZpZWxkRmlsdGVyc1trZXldID09PSAnJyB8fCB0aGlzLmZpZWxkRmlsdGVyc1trZXldID09PSAndW5kZWZpbmVkJykpICYmIHRoaXMuZmllbGRGaWx0ZXJzW2tleV0gIT09IDAgJiYgZGVsZXRlIHRoaXMuZmllbGRGaWx0ZXJzW2tleV0pO1xyXG5cdFx0XHRPYmplY3Qua2V5cyh0aGlzLnN0YXRpY0ZpZWxkRmlsdGVycykuZm9yRWFjaCgoa2V5KSA9PlxyXG5cdFx0XHRcdCgodGhpcy5zdGF0aWNGaWVsZEZpbHRlcnNba2V5XSA9PSBudWxsIHx8IHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzW2tleV0gPT09ICcnIHx8IHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzW2tleV0gPT09ICd1bmRlZmluZWQnKSkgJiYgdGhpcy5zdGF0aWNGaWVsZEZpbHRlcnNba2V5XSAhPT0gMCAmJiBkZWxldGUgdGhpcy5zdGF0aWNGaWVsZEZpbHRlcnNba2V5XSk7XHJcblxyXG5cdFx0XHQvKiBBcHBseSBmaWx0ZXJzIGR5bmFtaWNhbGx5IHRvIHRoZSB0YWJsZSBkYXRhICovXHJcblx0XHRcdE9iamVjdC5rZXlzKHRoaXMuZmllbGRGaWx0ZXJzKS5mb3JFYWNoKChrZXkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmZpbHRlclByZWRpY2F0ZSA9IChkYXRhOiBURW50aXR5LCBmaWx0ZXI6IHN0cmluZykgPT4gIWZpbHRlciB8fCBgJHsoZGF0YSBhcyBhbnkpW2tleV19YC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGAke3RoaXMuZmlsdGVyfWA/LnRvTG93ZXJDYXNlKCkpO1xyXG5cdFx0XHRcdHRoaXMuZmlsdGVyID0gdGhpcy5maWVsZEZpbHRlcnNba2V5XTtcclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHQvKiBSZXR1cm4gdGhlIGRhdGEgZm9yIHRoZSBNYXRUYWJsZSB0byBkaXNwbGF5ICovXHJcblx0XHRyZXR1cm4gc3VwZXIuY29ubmVjdCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQG1ldGhvZCBjbGVhckZpbHRlcnNcclxuXHQgKiBAZGVzY3JpcHRpb24gQ2xlYXJzIGFsbCBjdXJyZW50IGZpZWxkIGZpbHRlcnMgYW5kIHJlc2V0cyBwYWdpbmF0aW9uIHRvIHRoZSBmaXJzdCBwYWdlLlxyXG5cdCAqIE9wdGlvbmFsbHkgYWNjZXB0cyBuZXcgZmlsdGVycyB0byByZXBsYWNlIHRoZSBleGlzdGluZyBvbmVzLlxyXG5cdCAqIEBwYXJhbSB7YW55fSBuZXdGaWx0ZXJzIC0gTmV3IGZpbHRlcnMgdG8gYXBwbHkgYWZ0ZXIgY2xlYXJpbmcgdGhlIHByZXZpb3VzIG9uZXMuXHJcblx0ICovXHJcblx0cHVibGljIGNsZWFyRmlsdGVycyhuZXdGaWx0ZXJzOiBhbnkgPSB7fSk6IHZvaWQge1xyXG5cdFx0LyogUmVzZXQgcGFnaW5hdGlvbiB0byB0aGUgZmlyc3QgcGFnZSAqL1xyXG5cdFx0aWYgKHRoaXMucGFnaW5hdG9yKSB7XHJcblx0XHRcdHRoaXMucGFnaW5hdG9yLnBhZ2VJbmRleCA9IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogQXBwbHkgdGhlIG5ldyBmaWx0ZXJzICovXHJcblx0XHR0aGlzLmZpZWxkRmlsdGVycyA9IG5ld0ZpbHRlcnMgfHwge307XHJcblx0XHR0aGlzLmZpbHRlciA9ICcnO1xyXG5cdFx0dGhpcy5yZWxvYWQoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBtZXRob2QgaXNBbGxTZWxlY3RlZFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBDaGVja3MgaWYgYWxsIGl0ZW1zIGluIHRoZSBjdXJyZW50IHBhZ2UgYXJlIHNlbGVjdGVkLlxyXG5cdCAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIGFsbCBpdGVtcyBhcmUgc2VsZWN0ZWQsIGZhbHNlIG90aGVyd2lzZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgaXNBbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuXHRcdC8qIElmIHRoZXJlIGFyZSBubyBzZWxlY3RlZCBpdGVtcywgcmV0dXJuIGZhbHNlICovXHJcblx0XHRpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIFJldHVybiB0cnVlIGlmIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgaXRlbXMgbWF0Y2hlcyB0aGUgbnVtYmVyIG9mIGl0ZW1zIG9uIHRoZSBjdXJyZW50IHBhZ2UgKi9cclxuXHRcdHJldHVybiB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLmxlbmd0aCA9PT0gdGhpcy5wYWdpbmF0b3I/Lmxlbmd0aDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBtZXRob2QgdG9nZ2xlU2VsZWN0XHJcblx0ICogQGRlc2NyaXB0aW9uIFRvZ2dsZXMgdGhlIHNlbGVjdGlvbiBvZiBhbGwgaXRlbXMgaW4gdGhlIGN1cnJlbnQgcGFnZS5cclxuXHQgKiBJZiBpdGVtcyBhcmUgYWxyZWFkeSBzZWxlY3RlZCwgdGhleSBhcmUgY2xlYXJlZC4gSWYgbm90LCB0aGV5IGFyZSBzZWxlY3RlZC5cclxuXHQgKiBAcGFyYW0ge01hdENoZWNrYm94Q2hhbmdlfSBjaGVja2JveCAtIFRoZSBjaGVja2JveCBjaGFuZ2UgZXZlbnQuXHJcblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gcHJlZGljYXRlIC0gT3B0aW9uYWwgcHJlZGljYXRlIHRvIGZpbHRlciB0aGUgaXRlbXMgYmVmb3JlIHNlbGVjdGlvbi5cclxuXHQgKi9cclxuXHRwdWJsaWMgdG9nZ2xlU2VsZWN0KGNoZWNrYm94OiBNYXRDaGVja2JveENoYW5nZSwgcHJlZGljYXRlPzogKHZhbHVlOiBURW50aXR5LCBpbmRleDogbnVtYmVyLCBhcnJheTogVEVudGl0eVtdKSA9PiB1bmtub3duKSB7XHJcblx0XHQvKiBJZiBhbnkgaXRlbXMgYXJlIHNlbGVjdGVkLCBjbGVhciB0aGUgc2VsZWN0aW9uICovXHJcblx0XHRpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbC5oYXNWYWx1ZSgpKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTtcclxuXHRcdFx0Y2hlY2tib3guc291cmNlLmNoZWNrZWQgPSBmYWxzZTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8qIE90aGVyd2lzZSwgc2VsZWN0IGFsbCBpdGVtcyB0aGF0IG1hdGNoIHRoZSBwcmVkaWNhdGUgKi9cclxuXHRcdFx0dGhpcy5kYXRhLmZpbHRlcihwcmVkaWNhdGUgPyBwcmVkaWNhdGUgOiB4ID0+IHgpXHJcblx0XHRcdFx0LmZpbHRlcih4ID0+ICEoeCBhcyBhbnkpWydsb2NrZWQnXSlcclxuXHRcdFx0XHQuZm9yRWFjaChkYXRhID0+IHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0KGRhdGEpKTtcclxuXHJcblx0XHRcdC8qIElmIG5vdCBhbGwgaXRlbXMgYXJlIHNlbGVjdGVkLCB1bmNoZWNrIHRoZSBjaGVja2JveCAqL1xyXG5cdFx0XHRpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZC5sZW5ndGggIT09IHRoaXMucGFnaW5hdG9yPy5sZW5ndGgpIHtcclxuXHRcdFx0XHRjaGVja2JveC5zb3VyY2UuY2hlY2tlZCA9IGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAbWV0aG9kIGdldFNlbGVjdGVkXHJcblx0ICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyB0aGUgc2VsZWN0ZWQgaXRlbXMgYmFzZWQgb24gYSBzcGVjaWZpYyBrZXkgKGUuZy4sICdpZCcpLlxyXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IHRvIGV4dHJhY3QgZnJvbSB0aGUgc2VsZWN0ZWQgaXRlbXMuXHJcblx0ICogQHJldHVybnMge1RUeXBlW119IEFuIGFycmF5IG9mIHNlbGVjdGVkIGl0ZW1zLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXRTZWxlY3RlZCA9IDxUVHlwZT4oa2V5OiBzdHJpbmcgPSAnaWQnKTogVFR5cGVbXSA9PiB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdGVkLm1hcCh4ID0+ICh4IGFzIGFueSlba2V5XSk7XHJcbn0iXX0=
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuc3RhdGljLWRhdGEtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvdGFibGUvdGFibGUuc3RhdGljLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8scUJBQStCLFNBQVEsa0JBQTJCO0lBRTlFOzs7OztPQUtHO0lBQ0ksYUFBYSxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBRXREOzs7Ozs7T0FNRztJQUNJLFlBQVksR0FBRyxJQUFJLGVBQWUsQ0FBNEIsSUFBSSxDQUFDLENBQUM7SUFFM0U7Ozs7T0FJRztJQUNJLEtBQUssR0FBYyxFQUFFLENBQUM7SUFFN0I7Ozs7O09BS0c7SUFDSSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQVUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTlEOzs7OztPQUtHO0lBQ0gsSUFBSSxXQUFXLEtBQWEsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFOUQ7Ozs7O09BS0c7SUFDSSxZQUFZLEdBQVEsRUFBRSxDQUFDO0lBRTlCOzs7OztPQUtHO0lBQ0ksY0FBYyxHQUFRLEVBQUUsQ0FBQztJQUVoQzs7Ozs7T0FLRztJQUNJLGtCQUFrQixHQUFRLEVBQUUsQ0FBQztJQUVwQzs7Ozs7T0FLRztJQUNJLFNBQVMsR0FBVyxDQUFDLENBQUM7SUFFN0I7Ozs7O09BS0c7SUFDSSxLQUFLLEdBQVcsQ0FBQyxDQUFDO0lBRXpCOzs7OztPQUtHO0lBQ0ksUUFBUSxHQUFXLEVBQUUsQ0FB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Ozs7O09BS0c7SUFDSSxXQUFXLEdBQUcsQ0FBUSxNQUFjLElBQUksRUFBVyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7Q0FDcEgiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi9tb2RlbHMvcGFnaW5hdGlvbic7XHJcblxyXG4vKipcclxuICogQSBnZW5lcmljIGRhdGFzb3VyY2UgY2xhc3MgZm9yIHdvcmtpbmcgd2l0aCBkYXRhLXRhYmxlcyBpbiBBbmd1bGFyIE1hdGVyaWFsLlxyXG4gKiBUaGlzIGNsYXNzIGV4dGVuZHMgTWF0VGFibGVEYXRhU291cmNlIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5IGxpa2UgXHJcbiAqIHNlbGVjdGlvbiBtYW5hZ2VtZW50LCBwYWdpbmF0aW9uLCBhbmQgZmlsdGVyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRhYmxlU3RhdGljRGF0YVNvdXJjZTxURW50aXR5PiBleHRlbmRzIE1hdFRhYmxlRGF0YVNvdXJjZTxURW50aXR5PiB7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBfcmVsb2FkQ2hhbmdlXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgQmVoYXZpb3JTdWJqZWN0IHRoYXQgdHJpZ2dlcnMgYSByZWxvYWQgb2YgdGhlIHRhYmxlIGRhdGEuIFxyXG5cdCAqIFRoZSB2YWx1ZSBpcyB1c2VkIGFzIGEgcmVsb2FkIHRva2VuLCBlbnN1cmluZyB0aGUgZGF0YSBpcyByZWxvYWRlZCB3aGVuIGl0IGNoYW5nZXMuXHJcblx0ICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxudW1iZXI+fVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBfcmVsb2FkQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgb25EYXRhTG9hZGVkXHJcblx0ICogQGRlc2NyaXB0aW9uIEEgQmVoYXZpb3JTdWJqZWN0IHRoYXQgaG9sZHMgdGhlIGxvYWRlZCBkYXRhIG9yIHBhZ2luYXRpb24gaW5mb3JtYXRpb24uXHJcblx0ICogVGhpcyBpcyBlbWl0dGVkIGFmdGVyIHRoZSBkYXRhIGlzIHN1Y2Nlc3NmdWxseSBsb2FkZWQsIHByb3ZpZGluZyBhIG1lY2hhbmlzbSBcclxuXHQgKiB0byB0cmFjayB0aGUgbG9hZGluZyBzdGF0ZSBhbmQgYW55IHVwZGF0ZXMgdG8gdGhlIGRhdGEuXHJcblx0ICogQHR5cGUge0JlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+IHwgYW55Pn1cclxuXHQgKi9cclxuXHRwdWJsaWMgb25EYXRhTG9hZGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYWdpbmF0aW9uPFRFbnRpdHk+IHwgYW55PihudWxsKTtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IGl0ZW1zXHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSBsaXN0IG9mIGl0ZW1zIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZGF0YSB0YWJsZS5cclxuXHQgKiBAdHlwZSB7VEVudGl0eVtdfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpdGVtczogVEVudGl0eVtdID0gW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBzZWxlY3Rpb25Nb2RlbFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBBIFNlbGVjdGlvbk1vZGVsIHRvIGhhbmRsZSBzZWxlY3Rpb24gb2Ygb25lIG9yIG1vcmUgaXRlbXMgZnJvbSB0aGUgZGF0YS10YWJsZS5cclxuXHQgKiBJdCBhbGxvd3MgbWFuYWdpbmcgdGhlIHNlbGVjdGVkIGl0ZW1zIGluIHRoZSB0YWJsZSBhbmQgc3VwcG9ydHMgbXVsdGlwbGUgc2VsZWN0aW9uLlxyXG5cdCAqIEB0eXBlIHtTZWxlY3Rpb25Nb2RlbDxURW50aXR5Pn1cclxuXHQgKi9cclxuXHRwdWJsaWMgc2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWw8VEVudGl0eT4odHJ1ZSwgW10pO1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcmVsb2FkVG9rZW5cclxuXHQgKiBAZGVzY3JpcHRpb24gQSBnZXR0ZXIgdG8gcmV0dXJuIHRoZSBjdXJyZW50IHJlbG9hZCB0b2tlbi4gXHJcblx0ICogVGhlIHJlbG9hZCB0b2tlbiBpcyB1c2VkIHRvIHRyaWdnZXIgcmVsb2FkaW5nIG9mIGRhdGEuXHJcblx0ICogQHR5cGUge251bWJlcn1cclxuXHQgKi9cclxuXHRnZXQgcmVsb2FkVG9rZW4oKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX3JlbG9hZENoYW5nZS52YWx1ZTsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgZmllbGRGaWx0ZXJzXHJcblx0ICogQGRlc2NyaXB0aW9uIEFuIG9iamVjdCB1c2VkIHRvIHN0b3JlIGZpbHRlcnMgZm9yIHNwZWNpZmljIGZpZWxkcyBpbiB0aGUgZGF0YS10YWJsZS5cclxuXHQgKiBJdCBhbGxvd3MgZmlsdGVyaW5nIG9mIGRhdGEgYmFzZWQgb24gc3BlY2lmaWMgZmllbGQgdmFsdWVzLlxyXG5cdCAqIEB0eXBlIHthbnl9XHJcblx0ICovXHJcblx0cHVibGljIGZpZWxkRmlsdGVyczogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBmaWVsZE9wZXJhdG9yc1xyXG5cdCAqIEBkZXNjcmlwdGlvbiBBbiBvYmplY3QgdGhhdCBzdG9yZXMgb3BlcmF0b3JzIHRvIGJlIGFwcGxpZWQgb24gZmllbGRzIGZvciBmaWx0ZXJpbmcuXHJcblx0ICogSXQgYWxsb3dzIGNvbXBsZXggZmlsdGVyaW5nIG9wZXJhdGlvbnMgKGUuZy4sIGVxdWFscywgY29udGFpbnMsIGdyZWF0ZXIgdGhhbikuXHJcblx0ICogQHR5cGUge2FueX1cclxuXHQgKi9cclxuXHRwdWJsaWMgZmllbGRPcGVyYXRvcnM6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgc3RhdGljRmllbGRGaWx0ZXJzXHJcblx0ICogQGRlc2NyaXB0aW9uIEFuIG9iamVjdCB0byBzdG9yZSBzdGF0aWMgZmlsdGVycyB0aGF0IGFyZSBhcHBsaWVkIHRvIHRoZSBkYXRhLXRhYmxlLlxyXG5cdCAqIFRoZXNlIGZpbHRlcnMgYXJlIG5vdCBkeW5hbWljYWxseSBzZXQgYnkgdGhlIHVzZXIgYnV0IGFyZSBhbHdheXMgYWN0aXZlLlxyXG5cdCAqIEB0eXBlIHthbnl9XHJcblx0ICovXHJcblx0cHVibGljIHN0YXRpY0ZpZWxkRmlsdGVyczogYW55ID0ge307XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSBwYWdlSW5kZXhcclxuXHQgKiBAZGVzY3JpcHRpb24gVGhlIGluZGV4IG9mIHRoZSBjdXJyZW50IHBhZ2UgYmVpbmcgdmlld2VkIGluIHRoZSBkYXRhLXRhYmxlLiBcclxuXHQgKiBJdCBzdGFydHMgZnJvbSAwIGFuZCBpbmNyZW1lbnRzIHdpdGggZWFjaCBwYWdlIGNoYW5nZS5cclxuXHQgKiBAdHlwZSB7bnVtYmVyfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBwYWdlSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcm9wZXJ0eSB0b3RhbFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBUaGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBkYXRhIHNvdXJjZS4gXHJcblx0ICogVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCB0byBjYWxjdWxhdGUgcGFnaW5hdGlvbi5cclxuXHQgKiBAdHlwZSB7bnVtYmVyfVxyXG5cdCAqL1xyXG5cdHB1YmxpYyB0b3RhbDogbnVtYmVyID0gMDtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IHBhZ2VTaXplXHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSBudW1iZXIgb2YgaXRlbXMgZGlzcGxheWVkIHBlciBwYWdlIGluIHRoZSBkYXRhLXRhYmxlLlxyXG5cdCAqIEl0IGNvbnRyb2xzIGhvdyBtYW55IHJlY29yZHMgYXJlIHNob3duIG9uIGEgc2luZ2xlIHBhZ2UuXHJcblx0ICogQHR5cGUge251bWJlcn1cclxuXHQgKi9cclxuXHRwdWJsaWMgcGFnZVNpemU6IG51bWJlciA9IDE1O1xyXG5cclxuXHQvKipcclxuXHQgKiBAcHJvcGVydHkgcGFnZUNvdW50XHJcblx0ICogQGRlc2NyaXB0aW9uIFRoZSB0b3RhbCBudW1iZXIgb2YgcGFnZXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgcGFnZSBzaXplIGFuZCB0b3RhbCBpdGVtcy5cclxuXHQgKiBUaGlzIGlzIGNhbGN1bGF0ZWQgZHluYW1pY2FsbHkgd2hlbmV2ZXIgZGF0YSBjaGFuZ2VzLlxyXG5cdCAqIEB0eXBlIHtudW1iZXJ9XHJcblx0ICovXHJcblx0cHVibGljIHBhZ2VDb3VudDogbnVtYmVyID0gMDtcclxuXHJcblx0LyoqXHJcblx0ICogQHByb3BlcnR5IGlzTG9hZGluZ1xyXG5cdCAqIEBkZXNjcmlwdGlvbiBBIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBkYXRhIGlzIGN1cnJlbnRseSBiZWluZyBsb2FkZWQuXHJcblx0ICogSXQgaXMgdXNlZCB0byBzaG93IGEgbG9hZGluZyBzcGlubmVyIG9yIGluZGljYXRvciB3aGlsZSBkYXRhIGlzIGJlaW5nIGZldGNoZWQuXHJcblx0ICogQHR5cGUge2Jvb2xlYW59XHJcblx0ICovXHJcblx0cHVibGljIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiBAbWV0aG9kIHJlbG9hZFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBSZWxvYWRzIHRoZSB0YWJsZSBkYXRhIGJ5IHRyaWdnZXJpbmcgYSBuZXcgcmFuZG9tIHJlbG9hZCB0b2tlbi5cclxuXHQgKiBPcHRpb25hbGx5IGNsZWFycyB0aGUgc2VsZWN0aW9uIGlmIHRoZSBgY2xlYXJTZWxlY3Rpb25gIGZsYWcgaXMgc2V0IHRvIHRydWUuXHJcblx0ICogQHBhcmFtIHtib29sZWFufSBjbGVhclNlbGVjdGlvbiAtIElmIHRydWUsIGNsZWFycyB0aGUgY3VycmVudCBzZWxlY3Rpb24gYWZ0ZXIgcmVsb2FkLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyByZWxvYWQoY2xlYXJTZWxlY3Rpb246IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcblx0XHQvKiBFbWl0IGEgbmV3IHJlbG9hZCB0b2tlbiB0byB0cmlnZ2VyIGRhdGEgcmVsb2FkICovXHJcblx0XHR0aGlzLl9yZWxvYWRDaGFuZ2UubmV4dChNYXRoLnJhbmRvbSgpKTtcclxuXHJcblx0XHQvKiBDbGVhciB0aGUgc2VsZWN0aW9uIGlmIHNwZWNpZmllZCAqL1xyXG5cdFx0aWYgKGNsZWFyU2VsZWN0aW9uKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBtZXRob2QgY29ubmVjdFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBDYWxsZWQgd2hlbiB0aGUgTWF0VGFibGUgY29ubmVjdHMgdG8gdGhlIGRhdGEgc291cmNlLiBcclxuXHQgKiBUaGlzIG1ldGhvZCBzdWJzY3JpYmVzIHRvIHRoZSByZWxvYWQgdG9rZW4gdG8gdHJpZ2dlciBhIGZpbHRlciB1cGRhdGUgYW5kIGRhdGEgcmVmcmVzaC5cclxuXHQgKiBAZG9jcy1wcml2YXRlXHJcblx0ICogQHJldHVybnMge0JlaGF2aW9yU3ViamVjdDxURW50aXR5W10+fSBBIEJlaGF2aW9yU3ViamVjdCBjb250YWluaW5nIHRoZSBjdXJyZW50IGRhdGEgYXJyYXkuXHJcblx0ICovXHJcblx0Y29ubmVjdCgpOiBCZWhhdmlvclN1YmplY3Q8VEVudGl0eVtdPiB7XHJcblx0XHQvKiBTdWJzY3JpYmUgdG8gdGhlIHJlbG9hZCB0b2tlbiBhbmQgdXBkYXRlIGZpbHRlcnMgYWNjb3JkaW5nbHkgKi9cclxuXHRcdHRoaXMuX3JlbG9hZENoYW5nZS5zdWJzY3JpYmUoeCA9PiB7XHJcblx0XHRcdC8qIENsZWFuIHVwIGFueSBlbXB0eSBmaWx0ZXJzIGJlZm9yZSBhcHBseWluZyB0aGVtICovXHJcblx0XHRcdE9iamVjdC5rZXlzKHRoaXMuZmllbGRGaWx0ZXJzKS5mb3JFYWNoKChrZXkpID0+XHJcblx0XHRcdFx0KCh0aGlzLmZpZWxkRmlsdGVyc1trZXldID09IG51bGwgfHwgdGhpcy5maWVsZEZpbHRlcnNba2V5XSA9PT0gJycgfHwgdGhpcy5maWVsZEZpbHRlcnNba2V5XSA9PT0gJ3VuZGVmaW5lZCcpKSAmJiB0aGlzLmZpZWxkRmlsdGVyc1trZXldICE9PSAwICYmIGRlbGV0ZSB0aGlzLmZpZWxkRmlsdGVyc1trZXldKTtcclxuXHRcdFx0T2JqZWN0LmtleXModGhpcy5zdGF0aWNGaWVsZEZpbHRlcnMpLmZvckVhY2goKGtleSkgPT5cclxuXHRcdFx0XHQoKHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzW2tleV0gPT0gbnVsbCB8fCB0aGlzLnN0YXRpY0ZpZWxkRmlsdGVyc1trZXldID09PSAnJyB8fCB0aGlzLnN0YXRpY0ZpZWxkRmlsdGVyc1trZXldID09PSAndW5kZWZpbmVkJykpICYmIHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzW2tleV0gIT09IDAgJiYgZGVsZXRlIHRoaXMuc3RhdGljRmllbGRGaWx0ZXJzW2tleV0pO1xyXG5cclxuXHRcdFx0LyogQXBwbHkgZmlsdGVycyBkeW5hbWljYWxseSB0byB0aGUgdGFibGUgZGF0YSAqL1xyXG5cdFx0XHRPYmplY3Qua2V5cyh0aGlzLmZpZWxkRmlsdGVycykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5maWx0ZXJQcmVkaWNhdGUgPSAoZGF0YTogVEVudGl0eSwgZmlsdGVyOiBzdHJpbmcpID0+ICFmaWx0ZXIgfHwgYCR7KGRhdGEgYXMgYW55KVtrZXldfWAudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhgJHt0aGlzLmZpbHRlcn1gPy50b0xvd2VyQ2FzZSgpKTtcclxuXHRcdFx0XHR0aGlzLmZpbHRlciA9IHRoaXMuZmllbGRGaWx0ZXJzW2tleV07XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0LyogUmV0dXJuIHRoZSBkYXRhIGZvciB0aGUgTWF0VGFibGUgdG8gZGlzcGxheSAqL1xyXG5cdFx0cmV0dXJuIHN1cGVyLmNvbm5lY3QoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBtZXRob2QgY2xlYXJGaWx0ZXJzXHJcblx0ICogQGRlc2NyaXB0aW9uIENsZWFycyBhbGwgY3VycmVudCBmaWVsZCBmaWx0ZXJzIGFuZCByZXNldHMgcGFnaW5hdGlvbiB0byB0aGUgZmlyc3QgcGFnZS5cclxuXHQgKiBPcHRpb25hbGx5IGFjY2VwdHMgbmV3IGZpbHRlcnMgdG8gcmVwbGFjZSB0aGUgZXhpc3Rpbmcgb25lcy5cclxuXHQgKiBAcGFyYW0ge2FueX0gbmV3RmlsdGVycyAtIE5ldyBmaWx0ZXJzIHRvIGFwcGx5IGFmdGVyIGNsZWFyaW5nIHRoZSBwcmV2aW91cyBvbmVzLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjbGVhckZpbHRlcnMobmV3RmlsdGVyczogYW55ID0ge30pOiB2b2lkIHtcclxuXHRcdC8qIFJlc2V0IHBhZ2luYXRpb24gdG8gdGhlIGZpcnN0IHBhZ2UgKi9cclxuXHRcdGlmICh0aGlzLnBhZ2luYXRvcikge1xyXG5cdFx0XHR0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXggPSAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8qIEFwcGx5IHRoZSBuZXcgZmlsdGVycyAqL1xyXG5cdFx0dGhpcy5maWVsZEZpbHRlcnMgPSBuZXdGaWx0ZXJzIHx8IHt9O1xyXG5cdFx0dGhpcy5maWx0ZXIgPSAnJztcclxuXHRcdHRoaXMucmVsb2FkKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAbWV0aG9kIGlzQWxsU2VsZWN0ZWRcclxuXHQgKiBAZGVzY3JpcHRpb24gQ2hlY2tzIGlmIGFsbCBpdGVtcyBpbiB0aGUgY3VycmVudCBwYWdlIGFyZSBzZWxlY3RlZC5cclxuXHQgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBhbGwgaXRlbXMgYXJlIHNlbGVjdGVkLCBmYWxzZSBvdGhlcndpc2UuXHJcblx0ICovXHJcblx0cHVibGljIGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcblx0XHQvKiBJZiB0aGVyZSBhcmUgbm8gc2VsZWN0ZWQgaXRlbXMsIHJldHVybiBmYWxzZSAqL1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuaXNFbXB0eSgpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgbnVtYmVyIG9mIHNlbGVjdGVkIGl0ZW1zIG1hdGNoZXMgdGhlIG51bWJlciBvZiBpdGVtcyBvbiB0aGUgY3VycmVudCBwYWdlICovXHJcblx0XHRyZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZC5sZW5ndGggPT09IHRoaXMucGFnaW5hdG9yPy5sZW5ndGg7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAbWV0aG9kIHRvZ2dsZVNlbGVjdFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBUb2dnbGVzIHRoZSBzZWxlY3Rpb24gb2YgYWxsIGl0ZW1zIGluIHRoZSBjdXJyZW50IHBhZ2UuXHJcblx0ICogSWYgaXRlbXMgYXJlIGFscmVhZHkgc2VsZWN0ZWQsIHRoZXkgYXJlIGNsZWFyZWQuIElmIG5vdCwgdGhleSBhcmUgc2VsZWN0ZWQuXHJcblx0ICogQHBhcmFtIHtNYXRDaGVja2JveENoYW5nZX0gY2hlY2tib3ggLSBUaGUgY2hlY2tib3ggY2hhbmdlIGV2ZW50LlxyXG5cdCAqIEBwYXJhbSB7RnVuY3Rpb259IHByZWRpY2F0ZSAtIE9wdGlvbmFsIHByZWRpY2F0ZSB0byBmaWx0ZXIgdGhlIGl0ZW1zIGJlZm9yZSBzZWxlY3Rpb24uXHJcblx0ICovXHJcblx0cHVibGljIHRvZ2dsZVNlbGVjdChjaGVja2JveDogTWF0Q2hlY2tib3hDaGFuZ2UsIHByZWRpY2F0ZT86ICh2YWx1ZTogVEVudGl0eSwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRFbnRpdHlbXSkgPT4gdW5rbm93bikge1xyXG5cdFx0LyogSWYgYW55IGl0ZW1zIGFyZSBzZWxlY3RlZCwgY2xlYXIgdGhlIHNlbGVjdGlvbiAqL1xyXG5cdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuaGFzVmFsdWUoKSkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XHJcblx0XHRcdGNoZWNrYm94LnNvdXJjZS5jaGVja2VkID0gZmFsc2U7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHQvKiBPdGhlcndpc2UsIHNlbGVjdCBhbGwgaXRlbXMgdGhhdCBtYXRjaCB0aGUgcHJlZGljYXRlICovXHJcblx0XHRcdHRoaXMuZGF0YS5maWx0ZXIocHJlZGljYXRlID8gcHJlZGljYXRlIDogeCA9PiB4KVxyXG5cdFx0XHRcdC5maWx0ZXIoeCA9PiAhKHggYXMgYW55KVsnbG9ja2VkJ10pXHJcblx0XHRcdFx0LmZvckVhY2goZGF0YSA9PiB0aGlzLnNlbGVjdGlvbk1vZGVsLnNlbGVjdChkYXRhKSk7XHJcblxyXG5cdFx0XHQvKiBJZiBub3QgYWxsIGl0ZW1zIGFyZSBzZWxlY3RlZCwgdW5jaGVjayB0aGUgY2hlY2tib3ggKi9cclxuXHRcdFx0aWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubGVuZ3RoICE9PSB0aGlzLnBhZ2luYXRvcj8ubGVuZ3RoKSB7XHJcblx0XHRcdFx0Y2hlY2tib3guc291cmNlLmNoZWNrZWQgPSBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQG1ldGhvZCBnZXRTZWxlY3RlZFxyXG5cdCAqIEBkZXNjcmlwdGlvbiBSZXRyaWV2ZXMgdGhlIHNlbGVjdGVkIGl0ZW1zIGJhc2VkIG9uIGEgc3BlY2lmaWMga2V5IChlLmcuLCAnaWQnKS5cclxuXHQgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSB0byBleHRyYWN0IGZyb20gdGhlIHNlbGVjdGVkIGl0ZW1zLlxyXG5cdCAqIEByZXR1cm5zIHtUVHlwZVtdfSBBbiBhcnJheSBvZiBzZWxlY3RlZCBpdGVtcy5cclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0U2VsZWN0ZWQgPSA8VFR5cGU+KGtleTogc3RyaW5nID0gJ2lkJyk6IFRUeXBlW10gPT4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3RlZC5tYXAoeCA9PiAoeCBhcyBhbnkpW2tleV0pO1xyXG59Il19
@@ -13990,6 +13990,12 @@ class TableStaticDataSource extends MatTableDataSource {
13990
13990
  * @type {BehaviorSubject<Pagination<TEntity> | any>}
13991
13991
  */
13992
13992
  onDataLoaded = new BehaviorSubject(null);
13993
+ /**
13994
+ * @property items
13995
+ * @description The list of items to be displayed in the data table.
13996
+ * @type {TEntity[]}
13997
+ */
13998
+ items = [];
13993
13999
  /**
13994
14000
  * @property selectionModel
13995
14001
  * @description A SelectionModel to handle selection of one or more items from the data-table.
@@ -14704,124 +14710,181 @@ class TableDataSource extends DataSource {
14704
14710
  paginator;
14705
14711
  sorter;
14706
14712
  /**
14707
- * Represents a value that changes over time.
14708
- * Observers can subscribe to the subject to receive filter changes
14713
+ * @property _filterChange
14714
+ * @description Represents a value that changes over time.
14715
+ * Observers can subscribe to this BehaviorSubject to receive filter changes.
14716
+ * @type {BehaviorSubject<string>}
14709
14717
  */
14710
14718
  _filterChange = new BehaviorSubject('');
14711
14719
  /**
14712
- * onDataLoaded: function($event)
14713
- * Event emitted after the data is loaded
14720
+ * @property _reloadChange
14721
+ * @description Represents a value that triggers reload actions.
14722
+ * It is used to notify when a reload should occur by emitting a new value.
14723
+ * @type {BehaviorSubject<number>}
14714
14724
  */
14715
14725
  _reloadChange = new BehaviorSubject(0);
14716
14726
  /**
14717
- * onDataLoaded: function($event)
14718
- * Event emitted after the data is loaded
14727
+ * @property onDataLoaded
14728
+ * @description Event emitted after the data is loaded.
14729
+ * It is a BehaviorSubject that holds pagination data or a null value if no data is loaded.
14730
+ * @type {BehaviorSubject<Pagination<TEntity> | any>}
14719
14731
  */
14720
14732
  onDataLoaded = new BehaviorSubject(null);
14721
14733
  /**
14722
- * Used to power selecting one or more options from a list.
14734
+ * @property selectionModel
14735
+ * @description Used to power selecting one or more options from a list.
14736
+ * @type {SelectionModel<TEntity>}
14723
14737
  */
14724
14738
  selectionModel = new SelectionModel(true, []);
14725
14739
  /**
14726
- * Gets filter
14740
+ * @property filter
14741
+ * @description Gets the current filter applied to the data.
14742
+ * @type {string}
14727
14743
  */
14728
14744
  get filter() { return this._filterChange.value; }
14729
14745
  /**
14730
- * Sets filter
14746
+ * @property filter
14747
+ * @description Sets the filter and resets the page index if the paginator exists.
14748
+ * @param {string} filter - The filter value to be applied.
14731
14749
  */
14732
14750
  set filter(filter) {
14751
+ /* If paginator exists, reset the page index */
14733
14752
  if (this.paginator) {
14734
14753
  this.paginator.pageIndex = 0;
14735
14754
  this.pageIndex = 0;
14736
14755
  }
14756
+ /* Trigger filter change */
14737
14757
  this._filterChange.next(filter);
14738
14758
  }
14739
14759
  /**
14740
- * Sort change event emitter
14760
+ * @property onSortChange
14761
+ * @description Sort change event emitter used to notify changes in sorting.
14762
+ * @type {EventEmitter<Sort>}
14741
14763
  */
14742
14764
  onSortChange = new EventEmitter();
14743
14765
  /**
14744
- * _sort: MatSort | null
14766
+ * @property _sort
14767
+ * @description Private instance of MatSort used to control the sorting of the table.
14768
+ * @type {MatSort | null}
14745
14769
  */
14746
14770
  _sort = new MatSort();
14747
14771
  /**
14748
- * Instance of the MatSort directive used by the table to control its sorting. Sort changes
14749
- * emitted by the MatSort will trigger an update to the table's rendered data.
14772
+ * @property sort
14773
+ * @description Gets or sets the MatSort instance used to control the sorting of the table.
14774
+ * Changes in sorting will trigger an update to the table’s rendered data.
14775
+ * @type {MatSort | undefined}
14750
14776
  */
14751
14777
  get sort() { return this._sort; }
14752
14778
  set sort(sort) {
14779
+ /* Set the sort and subscribe to sort changes */
14753
14780
  this._sort = sort;
14754
14781
  this._sort?.sortChange.subscribe(x => this.onSortChange.emit(x));
14755
14782
  }
14756
14783
  /**
14757
- * Gets reload token
14784
+ * @property reloadToken
14785
+ * @description Gets the current reload token, used to trigger reload events.
14786
+ * @type {number}
14758
14787
  */
14759
14788
  get reloadToken() { return this._reloadChange.value; }
14760
14789
  /**
14761
- * isConnected: boolean
14790
+ * @property isConnected
14791
+ * @description Flag indicating whether the data source is connected.
14792
+ * @type {boolean}
14762
14793
  */
14763
14794
  isConnected = false;
14764
14795
  /**
14765
- * The navigations to includes
14796
+ * @property includes
14797
+ * @description The list of navigations to be included in the data query.
14798
+ * @type {Array<string>}
14766
14799
  */
14767
14800
  includes = [];
14768
14801
  /**
14769
- * The endpoint path
14802
+ * @property path
14803
+ * @description The endpoint path for the data source.
14804
+ * @type {string | undefined}
14770
14805
  */
14771
14806
  path;
14772
14807
  /**
14773
- * projection: string | string[]
14808
+ * @property projection
14809
+ * @description Defines the fields to be included in the data query projection.
14810
+ * @type {string | string[]}
14774
14811
  */
14775
14812
  projection = '';
14776
14813
  /**
14777
- * The list of items
14814
+ * @property items
14815
+ * @description The list of items to be displayed in the data table.
14816
+ * @type {TEntity[]}
14778
14817
  */
14779
14818
  items = [];
14780
14819
  /**
14781
- * The parameters for pagination and sorting.
14820
+ * @property parameters
14821
+ * @description The parameters for pagination and sorting.
14822
+ * @type {any}
14782
14823
  */
14783
14824
  parameters;
14784
14825
  /**
14785
- * The list of facets for filtering items.
14826
+ * @property facets
14827
+ * @description The list of facets for filtering items.
14828
+ * @type {Facet[] | undefined}
14786
14829
  */
14787
14830
  facets;
14788
14831
  /**
14789
- * Used to add some field filters
14832
+ * @property fieldFilters
14833
+ * @description A set of field filters applied to the data.
14834
+ * @type {any}
14790
14835
  */
14791
14836
  fieldFilters = {};
14792
14837
  /**
14793
- * Used to add some field operators
14838
+ * @property fieldOperators
14839
+ * @description A set of field operators used for filtering.
14840
+ * @type {any}
14794
14841
  */
14795
14842
  fieldOperators = {};
14796
14843
  /**
14797
- * Used to add some static field filters
14844
+ * @property staticFieldFilters
14845
+ * @description A set of static field filters applied to the data.
14846
+ * @type {any}
14798
14847
  */
14799
14848
  staticFieldFilters = {};
14800
14849
  /**
14801
- * The current page index.
14850
+ * @property pageIndex
14851
+ * @description The current page index for pagination.
14852
+ * @type {number}
14802
14853
  */
14803
14854
  pageIndex = 0;
14804
14855
  /**
14805
- * The current total number of items being paged
14856
+ * @property total
14857
+ * @description The current total number of items being paged.
14858
+ * @type {number}
14806
14859
  */
14807
14860
  total = 0;
14808
14861
  /**
14809
- * The current page size
14862
+ * @property pageSize
14863
+ * @description The number of items displayed per page in the data-table.
14864
+ * It controls how many records are shown on a single page.
14865
+ * @type {number}
14810
14866
  */
14811
14867
  pageSize = 15;
14812
14868
  /**
14813
- * Number of pages
14869
+ * @property pageCount
14870
+ * @description The total number of pages based on pagination.
14871
+ * @type {number}
14814
14872
  */
14815
14873
  pageCount = 0;
14816
14874
  /**
14817
- * A flag to show loading process
14875
+ * @property isLoading
14876
+ * @description Flag to show the loading process when the data is being fetched.
14877
+ * @type {boolean}
14818
14878
  */
14819
14879
  isLoading = false;
14820
14880
  /**
14821
- * Constructor
14822
- * @param service
14823
- * @param paginator
14824
- * @param sort
14881
+ * @constructor
14882
+ * @description Initializes a new instance of the class and sets up the service, paginator, and sorter.
14883
+ * The paginator and sorter are optional parameters used for handling pagination and sorting logic
14884
+ * for the data displayed in the table.
14885
+ * @param {TService} service - The service used for fetching and managing data.
14886
+ * @param {MatPaginator} [paginator] - The paginator instance used for pagination functionality.
14887
+ * @param {MatSort} [sorter] - The MatSort instance used for sorting functionality.
14825
14888
  */
14826
14889
  constructor(service, paginator, sorter) {
14827
14890
  super();