tango-app-ui-shared 3.0.49-dev → 3.0.50-dev

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.
@@ -128,7 +128,18 @@ export class FiltersComponent {
128
128
  }
129
129
  searchData(event, i) {
130
130
  const searchTerm = event.target.value.trim(); // Trim whitespace
131
- const filteredIssues = this.dummyArray[i].Issues.filter((item) => new RegExp(searchTerm, 'i').test(item.text));
131
+ const filteredIssues = this.dummyArray[i].Issues.filter((item) => {
132
+ let findChecked = this.dataObject[i].Issues.find((issue) => issue.text == item.text);
133
+ if (findChecked) {
134
+ if (findChecked.checked) {
135
+ item.checked = findChecked.checked;
136
+ }
137
+ return new RegExp(searchTerm, 'i').test(item.text);
138
+ }
139
+ else {
140
+ return new RegExp(searchTerm, 'i').test(item.text);
141
+ }
142
+ });
132
143
  this.dataObject[i].Issues = filteredIssues;
133
144
  if (filteredIssues.length) {
134
145
  this.noFilter = false;
@@ -158,4 +169,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
158
169
  type: HostListener,
159
170
  args: ['document:click', ['$event']]
160
171
  }] } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9jb21tb24vZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUXBILE1BQU0sT0FBTyxnQkFBZ0I7SUFrQlA7SUFDVjtJQUNBO0lBbkJELFVBQVUsR0FBVSxFQUFFLENBQUM7SUFDdEIsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDN0MsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUU5QixZQUFZLENBQU07SUFDbEIsY0FBYyxHQUFhLEVBQUUsQ0FBQztJQUM5QixXQUFXLEdBQWEsRUFBRSxDQUFDO0lBQzNCLG1CQUFtQixHQUFVLEVBQUUsQ0FBQztJQUNoQyxXQUFXLENBQUs7SUFDaEIsWUFBWSxDQUFLO0lBQ2pCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsVUFBVSxHQUFTLEVBQUUsQ0FBQztJQUN0QixRQUFRLEdBQVcsS0FBSyxDQUFDO0lBQ3pCLGFBQWEsR0FBUyxFQUFFLENBQUE7SUFDeEIsYUFBYSxDQUFNO0lBQ25CLE9BQU8sQ0FBTTtJQUNiLG9CQUFvQixDQUFTO0lBQzdCLFlBQW9CLFVBQXNCLEVBQ2hDLFFBQW1CLEVBQ25CLE1BQWM7UUFGSixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsV0FBTSxHQUFOLE1B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SyxDQUFDO1NBQ3RCO2FBQUk7WUFDSCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN0QjtJQUNELENBQUM7SUFFSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFRLEVBQUMsS0FBUyxFQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFBO1FBQ3RGLENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQzdDLENBQUM7dUdBekpVLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLHNNQ1I3QixveUxBc0VNOzsyRkQ5RE8sZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWE7NEhBS2QsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQXNCUCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG4gXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZpbHRlcnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZmlsdGVycy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbHRlcnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGRhdGFPYmplY3Q6IGFueVtdID0gW107XHJcbiAgQE91dHB1dCgpIGFwcGxpZWRGaWx0ZXJzID0gbmV3IEV2ZW50RW1pdHRlcigpXHJcbiAgT3BlbmRyb3Bkb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiBcclxuICBzaG93ZHJvcGRvd246IGFueTtcclxuICBzZWxlY3RlZFZhbHVlczogc3RyaW5nW10gPSBbXTtcclxuICBzZWFyY2hUZXJtczogc3RyaW5nW10gPSBbXTtcclxuICBzZWxlY3RlZFZhbHVlc0FycmF5OiBhbnlbXSA9IFtdO1xyXG4gIHNlYXJjaFZhbHVlOmFueTtcclxuICBzZWxlY3RlZEl0ZW06YW55O1xyXG4gIGRyb3BEb3duOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZHVtbXlBcnJheTphbnlbXSA9IFtdO1xyXG4gIG5vRmlsdGVyOmJvb2xlYW4gPSBmYWxzZTtcclxuICByZXNwb25zZUFycmF5OmFueVtdID0gW11cclxuICBwcm9kdWN0TW9kdWxlOiBhbnk7XHJcbiAgcHJvZHVjdDogYW55O1xyXG4gIHNlbGVjdGVkUHJvZHVjdENvdW50OiBzdHJpbmc7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgIH1cclxuIFxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrIChldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3RcclxuICAgICAgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYoIXRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd24xJykpIHtcclxuICAgICAgdGhpcy5PcGVuZHJvcGRvd24gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmKCF0YXJnZXQuY2xvc2VzdCgnLmRyb3Bkb3duLWNvbnRlbnQnKSl7XHJcbiAgICAgIHRoaXMuZGF0YU9iamVjdC5mb3JFYWNoKChpdGVtOiBhbnksIGk6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaXRlbS5pc09wZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRhdGFPYmplY3QuZm9yRWFjaCgoaXRlbTphbnkpPT57XHJcbiAgICAgIGxldCBzZWxlY3RlZExpc3QgPSBpdGVtPy5Jc3N1ZXMuZmlsdGVyKChkYXRhOmFueSk9PiBkYXRhPy5jaGVja2VkKVxyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXkucHVzaChzZWxlY3RlZExpc3QpXHJcbiAgICB9KVxyXG4gICAgdGhpcy5kdW1teUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKVxyXG4gICAgdGhpcy5yZXNwb25zZUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKVxyXG4gIH1cclxuIFxyXG4gIHNlbGVjdEl0ZW0oZXZlbnQ6YW55LGluZGV4OmFueSxzdWJJbmRleDphbnkpe1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IHRoaXMuZGF0YU9iamVjdFtpbmRleF0uSXNzdWVzW3N1YkluZGV4XTtcclxuICB9XHJcblxyXG4gIG9wZW5Ecm9wZG93bihldmVudDpNb3VzZUV2ZW50LGluZGV4OmFueSl7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZGF0YU9iamVjdC5mb3JFYWNoKChpdGVtOiBhbnksIGk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoaSAhPT0gaW5kZXgpIHtcclxuICAgICAgICBpdGVtLmlzT3BlbiA9IGZhbHNlOyAvLyBDbG9zZSBvdGhlciBkcm9wZG93bnNcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGFPYmplY3RbaW5kZXhdLmlzT3BlbiA9ICF0aGlzLmRhdGFPYmplY3RbaW5kZXhdLmlzT3BlbjtcclxuICB9XHJcbiBcclxuIFxyXG4gIG9wZW5kcm9wZG93bihlOk1vdXNlRXZlbnQpIHtcclxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLk9wZW5kcm9wZG93biA9ICF0aGlzLk9wZW5kcm9wZG93bjtcclxuICB9XHJcbiBcclxuICBEcm9wZG93bih2YWx1ZTogYW55LCBpbmRleDogbnVtYmVyLGV2ZW50Ok1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5kYXRhT2JqZWN0LmZvckVhY2goKGl0ZW06IGFueSwgaTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpICE9PSBpbmRleCkge1xyXG4gICAgICAgIGl0ZW0uaXNPcGVuID0gZmFsc2U7IC8vIENsb3NlIG90aGVyIGRyb3Bkb3duc1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0YU9iamVjdFtpbmRleF0uaXNPcGVuID0gIXRoaXMuZGF0YU9iamVjdFtpbmRleF0uaXNPcGVuO1xyXG4gIH1cclxuIFxyXG4gIHRvZ2dsZUNoZWNrYm94KGV2ZW50OiBhbnksIGlzc3VlOiBhbnksIGluZGV4OiBudW1iZXIsIHN1YkluZGV4OiBudW1iZXIpIHtcclxuIFxyXG4gICAgY29uc3QgY3VycmVudElzc3VlcyA9IHRoaXMuZGF0YU9iamVjdFtpbmRleF0uSXNzdWVzO1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gfHwgW107XHJcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF07IC8vIFJldHJpZXZlIHNlbGVjdGVkIHZhbHVlcyBhcnJheSBmb3IgdGhlIGN1cnJlbnQgZHJvcGRvd24gaW5kZXhcclxuICAgIGlmIChpc3N1ZSA9PT0gJ1NlbGVjdCBBbGwnKSB7XHJcbiAgICAgIGNvbnN0IGNoZWNrZWRTdGF0ZSA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xyXG4gICAgICB0aGlzLmRhdGFPYmplY3RbaW5kZXhdLklzc3Vlcy5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpdGVtLmNoZWNrZWQgPSBjaGVja2VkU3RhdGU7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGNoZWNrZWRTdGF0ZSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPSBjdXJyZW50SXNzdWVzLnNsaWNlKCk7IC8vIENvcHkgYWxsIGl0ZW1zXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IFtdOyAvLyBEZXNlbGVjdCBhbGwgaXRlbXNcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5Jc3N1ZXNbc3ViSW5kZXhdLmNoZWNrZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgICAgbGV0IGNoZWNrZWREYXRhID0gdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5Jc3N1ZXNbc3ViSW5kZXhdO1xyXG5cclxuICAgICAgaWYodGhpcy5kYXRhT2JqZWN0W2luZGV4XS5Jc3N1ZXNbc3ViSW5kZXhdLmNoZWNrZWQpe1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0ucHVzaChjaGVja2VkRGF0YSlcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0uZmlsdGVyKChlbDphbnkpPT5cclxuICAgICAgICBlbD8uY2hlY2tlZCA9PT0gdHJ1ZVxyXG4gICAgICAgIClcclxuICAgICAgfSAgXHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNlbGVjdEFsbElkID0gYHNlbGVjdGFsbCR7aW5kZXh9YDtcclxuICAgIGNvbnN0IHNlbGVjdEFsbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWxlY3RBbGxJZCkgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmIChzZWxlY3RBbGxFbGVtZW50KSB7XHJcbiAgICAgIHNlbGVjdEFsbEVsZW1lbnQuY2hlY2tlZCA9IHNlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gY3VycmVudElzc3Vlcy5sZW5ndGg7XHJcbiAgICB9XHJcbiBcclxuICAgIC8vIFVwZGF0ZSBjaGVja2JveGVzIGJhc2VkIG9uIHNlbGVjdGVkIHZhbHVlc1xyXG4gICAgY3VycmVudElzc3Vlcy5mb3JFYWNoKChpdGVtOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgaXNDaGVja2VkID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XS5pbmNsdWRlcyhpdGVtKTtcclxuICAgICAgY29uc3QgY2hlY2tib3hJZCA9IGBvcHRpb24ke2l0ZW19YDtcclxuICAgICAgY29uc3QgY2hlY2tib3hFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoY2hlY2tib3hJZCkgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgICAgaWYgKGNoZWNrYm94RWxlbWVudCkge1xyXG4gICAgICAgIGNoZWNrYm94RWxlbWVudC5jaGVja2VkID0gaXNDaGVja2VkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgXHJcbiAgfVxyXG4gIFJlc2V0KCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5LmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgIGlmKGl0ZW0/Lmxlbmd0aCl7aXRlbS5mb3JFYWNoKChkYXRhOmFueSk9PntkYXRhLmNoZWNrZWQgPSBmYWxzZTt9KVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5ID0gW107XHJcbiAgICB0aGlzLk9wZW5kcm9wZG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5yZXNwb25zZUFycmF5LmZvckVhY2goKGl0ZW06YW55LGluZGV4OmFueSk9PntcclxuICAgICAgaXRlbS5Jc3N1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID8gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA6W11cclxuICAgfSlcclxuICAgdGhpcy5hcHBsaWVkRmlsdGVycy5lbWl0KHRoaXMucmVzcG9uc2VBcnJheSlcclxuICB9XHJcbiAgc2VhcmNoRGF0YShldmVudDphbnksaTphbnkpe1xyXG4gICAgY29uc3Qgc2VhcmNoVGVybSA9IGV2ZW50LnRhcmdldC52YWx1ZS50cmltKCk7IC8vIFRyaW0gd2hpdGVzcGFjZVxyXG4gICAgY29uc3QgZmlsdGVyZWRJc3N1ZXMgPSB0aGlzLmR1bW15QXJyYXlbaV0uSXNzdWVzLmZpbHRlcigoaXRlbTphbnkpID0+ICBuZXcgUmVnRXhwKHNlYXJjaFRlcm0sJ2knKS50ZXN0KGl0ZW0udGV4dCkpXHJcbiAgICB0aGlzLmRhdGFPYmplY3RbaV0uSXNzdWVzID0gZmlsdGVyZWRJc3N1ZXM7XHJcbiAgICBpZihmaWx0ZXJlZElzc3Vlcy5sZW5ndGgpe1xyXG4gICAgICB0aGlzLm5vRmlsdGVyID1mYWxzZTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLm5vRmlsdGVyID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIH1cclxuXHJcbiAgQXBwbHkoKSB7XHJcbiAgICB0aGlzLk9wZW5kcm9wZG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5yZXNwb25zZUFycmF5LmZvckVhY2goKGl0ZW06YW55LGluZGV4OmFueSk9PntcclxuICAgICAgaXRlbS5Jc3N1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID8gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA6W11cclxuICAgfSlcclxuICAgdGhpcy5hcHBsaWVkRmlsdGVycy5lbWl0KHRoaXMucmVzcG9uc2VBcnJheSlcclxuICB9XHJcbn1cclxuICIsIjxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3BlbmRyb3Bkb3duKCRldmVudClcIlxyXG4gICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+PHN2Z1xyXG4gICAgICBjbGFzcz1cInBsLTNcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgPHBhdGggZD1cIk01IDEwSDE1TTIuNSA1SDE3LjVNNy41IDE1SDEyLjVcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICA8L3N2Zz5cclxuICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPkZpbHRlcjwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBwLTUgZHJvcGRvd24xIHBvc2l0aW9uLWFic29sdXRlIHotMiBlbmQtMFwiICpuZ0lmPVwiT3BlbmRyb3Bkb3duXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi10aXRsZVwiPkZpbHRlciBPcHRpb25zPC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBib3JkZXIgYm9yZGVyLWdyYXkgbXQtM1wiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJweS0zXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YU9iamVjdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlICE9PSAnc2luZ2xlJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duIGZvcm0tc2VsZWN0IHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiIChjbGljayk9XCJEcm9wZG93bihpdGVtLkRlc2NyaXB0aW9uLGksJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJcIj57eyBzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggIT09IG51bGwgJiYgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSB1bmRlZmluZWQgPyBzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggKyAnICcgKyBpdGVtLkRlc2NyaXB0aW9uLnNwbGl0KCcgJykucG9wKCkgKyAnIFNlbGVjdGVkJyA6IGl0ZW0uRGVzY3JpcHRpb24gfX08L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0uRGVzY3JpcHRpb259fTwvc3Bhbj4gPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggIT09IG51bGwgJiYgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSB1bmRlZmluZWQgJiYgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSAwXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCI+e3tzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uaXNPcGVuXCIgY2xhc3M9XCJkcm9wZG93bi1jb250ZW50IHBvc2l0aW9uLWFic29sdXRlIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBweS0zIHB0LTMgcHMtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJTZWxlY3QgQWxsXCIgaWQ9XCJzZWxlY3RhbGx7e2l9fVwiICBbY2hlY2tlZF09XCJzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggPT09IGl0ZW0uSXNzdWVzLmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVDaGVja2JveCgkZXZlbnQsJ1NlbGVjdCBBbGwnLCBpLDApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcHgtMlwiIGZvcj1cInNlbGVjdGFsbHt7aX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3QgQWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXkgbXQtMyBcIj48L2Rpdj5cclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtMyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTdcIiB2aWV3Qm94PVwiMCAwIDE2IDE3XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE0IDE0LjVMMTEuMSAxMS42TTEyLjY2NjcgNy44MzMzM0MxMi42NjY3IDEwLjc3ODkgMTAuMjc4OSAxMy4xNjY3IDcuMzMzMzMgMTMuMTY2N0M0LjM4NzgxIDEzLjE2NjcgMiAxMC43Nzg5IDIgNy44MzMzM0MyIDQuODg3ODEgNC4zODc4MSAyLjUgNy4zMzMzMyAyLjVDMTAuMjc4OSAyLjUgMTIuNjY2NyA0Ljg4NzgxIDEyLjY2NjcgNy44MzMzM1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImRhdGFPYmplY3RbaV0uc2VsZWN0ZWRWYWx1ZVwiIChpbnB1dCk9XCJzZWFyY2hEYXRhKCRldmVudCxpKVwiIFtpZF09XCJpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgc2VhcmNoaW5wdXQgcHMtMTQgcHktMiBtZS0yIG10LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpc3N1ZSBvZiBpdGVtLklzc3VlcztsZXQgaj1pbmRleFwiICBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBweS0zIHB0LTMgcHMtMCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBbdmFsdWVdPVwiaXNzdWUudGV4dFwiIGlkPVwib3B0aW9ue3tpc3N1ZS50ZXh0fX1cIiBbY2hlY2tlZF09XCJpc3N1ZS5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlQ2hlY2tib3goJGV2ZW50LGlzc3VlLnRleHQsaSxqKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHB4LTJcIiBmb3I9XCJvcHRpb257e2lzc3VlLnRleHR9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXNzdWUudGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiICpuZ0lmPVwibm9GaWx0ZXJcIj4gTm8gZmlsdGVycyBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdzaW5nbGUnXCIgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQsaSlcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgdy0xMDAgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj4ge3tzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy50ZXh0ID8gc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8udGV4dCA6IGl0ZW0uRGVzY3JpcHRpb259fVxyXG4gICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uaXNPcGVuXCIgY2xhc3M9XCJjYXJkIHB5LTEgdy0xMDAgZHJvcGRvd24tc2luZ2xlIHBvc2l0aW9uLWFic29sdXRlIHotMSB0b3AtNTBweCBlbmQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbS5Jc3N1ZXM7IGxldCBqID0gaW5kZXhcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/LnRleHQgPT09IGl0ZW0udGV4dCA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cImNhbWVyYSBweC01IGl0ZW1zIGZ3LXNlbWlib2xkIGN1cnNvci1wb2ludGVyIHB5LTJcIiAoY2xpY2spPVwic2VsZWN0SXRlbSgkZXZlbnQsaSxqKVwiPnt7aXRlbS50ZXh0fX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiByb2xlPVwiZ3JvdXBcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG1lLTJcIiAoY2xpY2spPVwiUmVzZXQoKVwiPiBSZXNldCA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtcy0yXCIgKGNsaWNrKT1cIkFwcGx5KClcIj5BcHBseTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9jb21tb24vZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL2xpYi9tb2R1bGVzL2NvbW1vbi9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUXBILE1BQU0sT0FBTyxnQkFBZ0I7SUFrQlA7SUFDVjtJQUNBO0lBbkJELFVBQVUsR0FBVSxFQUFFLENBQUM7SUFDdEIsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUE7SUFDN0MsWUFBWSxHQUFZLEtBQUssQ0FBQztJQUU5QixZQUFZLENBQU07SUFDbEIsY0FBYyxHQUFhLEVBQUUsQ0FBQztJQUM5QixXQUFXLEdBQWEsRUFBRSxDQUFDO0lBQzNCLG1CQUFtQixHQUFVLEVBQUUsQ0FBQztJQUNoQyxXQUFXLENBQUs7SUFDaEIsWUFBWSxDQUFLO0lBQ2pCLFFBQVEsR0FBWSxLQUFLLENBQUM7SUFDMUIsVUFBVSxHQUFTLEVBQUUsQ0FBQztJQUN0QixRQUFRLEdBQVcsS0FBSyxDQUFDO0lBQ3pCLGFBQWEsR0FBUyxFQUFFLENBQUE7SUFDeEIsYUFBYSxDQUFNO0lBQ25CLE9BQU8sQ0FBTTtJQUNiLG9CQUFvQixDQUFTO0lBQzdCLFlBQW9CLFVBQXNCLEVBQ2hDLFFBQW1CLEVBQ25CLE1BQWM7UUFGSixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ2hDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBR0osT0FBTyxDQUFFLEtBQWlCO1FBQ3hCLE1BQ0UsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO1FBQ3ZDLElBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1NBQzNCO1FBQ0QsSUFBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBQztZQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxDQUFNLEVBQUUsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDdEIsQ0FBQyxDQUNGLENBQUM7U0FDSDtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFRLEVBQUMsRUFBRTtZQUNsQyxJQUFJLFlBQVksR0FBRyxJQUFJLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVEsRUFBQyxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1lBQ2xFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDN0MsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtRQUM3RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVMsRUFBQyxLQUFTLEVBQUMsUUFBWTtRQUN6QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFnQixFQUFDLEtBQVM7UUFDckMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLENBQU0sRUFBRSxFQUFFO1lBQzVDLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRTtnQkFDZixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLHdCQUF3QjthQUM5QztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqRSxDQUFDO0lBR0QsWUFBWSxDQUFDLENBQVk7UUFDdkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVSxFQUFFLEtBQWEsRUFBQyxLQUFnQjtRQUNqRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsQ0FBTSxFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFO2dCQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsd0JBQXdCO2FBQzlDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVSxFQUFFLEtBQVUsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7UUFFcEUsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDcEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZ0VBQWdFO1FBQ3hILElBQUksS0FBSyxLQUFLLFlBQVksRUFBRTtZQUMxQixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLFlBQVksRUFBRTtnQkFDaEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjthQUMzRTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMscUJBQXFCO2FBQzVEO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUN2RSxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUUxRCxJQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBQztnQkFDakQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTthQUNsRDtpQkFBSTtnQkFDSCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQU0sRUFBQyxFQUFFLENBQ25GLEVBQUUsRUFBRSxPQUFPLEtBQUssSUFBSSxDQUNuQixDQUFBO2FBQ0Y7U0FFRjtRQUVELE1BQU0sV0FBVyxHQUFHLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDeEMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBcUIsQ0FBQztRQUNsRixJQUFJLGdCQUFnQixFQUFFO1lBQ3BCLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxjQUFjLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxNQUFNLENBQUM7U0FDM0U7UUFFRCw2Q0FBNkM7UUFDN0MsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakUsTUFBTSxVQUFVLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUNuQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBcUIsQ0FBQztZQUNoRixJQUFJLGVBQWUsRUFBRTtnQkFDbkIsZUFBZSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVEsRUFBRSxFQUFFO1lBQzVDLElBQUcsSUFBSSxFQUFFLE1BQU0sRUFBQztnQkFBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUSxFQUFDLEVBQUUsR0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFBO2FBQ2pFO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUSxFQUFDLEtBQVMsRUFBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLEVBQUUsQ0FBQTtRQUN0RixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUM3QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLEtBQVMsRUFBQyxDQUFLO1FBQ3hCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsa0JBQWtCO1FBQ2hFLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVEsRUFBRSxFQUFFO1lBQ25FLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQVMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFFLENBQUM7WUFDMUYsSUFBRyxXQUFXLEVBQUU7Z0JBQ2QsSUFBRyxXQUFXLENBQUMsT0FBTyxFQUFHO29CQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7aUJBQ3BDO2dCQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDbkQ7aUJBQ0k7Z0JBQ0gsT0FBTyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuRDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDO1FBQzNDLElBQUcsY0FBYyxDQUFDLE1BQU0sRUFBQztZQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN2QjthQUFJO1lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDdEI7SUFDRCxDQUFDO0lBRUgsS0FBSztRQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUSxFQUFDLEtBQVMsRUFBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBLEVBQUUsQ0FBQTtRQUN0RixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUM3QyxDQUFDO3VHQXBLVSxnQkFBZ0I7MkZBQWhCLGdCQUFnQixzTUNSN0Isb3lMQXNFTTs7MkZEOURPLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhOzRIQUtkLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFzQlAsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuIFxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1maWx0ZXJzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2ZpbHRlcnMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBkYXRhT2JqZWN0OiBhbnlbXSA9IFtdO1xyXG4gIEBPdXRwdXQoKSBhcHBsaWVkRmlsdGVycyA9IG5ldyBFdmVudEVtaXR0ZXIoKVxyXG4gIE9wZW5kcm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gXHJcbiAgc2hvd2Ryb3Bkb3duOiBhbnk7XHJcbiAgc2VsZWN0ZWRWYWx1ZXM6IHN0cmluZ1tdID0gW107XHJcbiAgc2VhcmNoVGVybXM6IHN0cmluZ1tdID0gW107XHJcbiAgc2VsZWN0ZWRWYWx1ZXNBcnJheTogYW55W10gPSBbXTtcclxuICBzZWFyY2hWYWx1ZTphbnk7XHJcbiAgc2VsZWN0ZWRJdGVtOmFueTtcclxuICBkcm9wRG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGR1bW15QXJyYXk6YW55W10gPSBbXTtcclxuICBub0ZpbHRlcjpib29sZWFuID0gZmFsc2U7XHJcbiAgcmVzcG9uc2VBcnJheTphbnlbXSA9IFtdXHJcbiAgcHJvZHVjdE1vZHVsZTogYW55O1xyXG4gIHByb2R1Y3Q6IGFueTtcclxuICBzZWxlY3RlZFByb2R1Y3RDb3VudDogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgICB9XHJcbiBcclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25DbGljayAoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0XHJcbiAgICAgIHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmKCF0YXJnZXQuY2xvc2VzdCgnLmRyb3Bkb3duMScpKSB7XHJcbiAgICAgIHRoaXMuT3BlbmRyb3Bkb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZighdGFyZ2V0LmNsb3Nlc3QoJy5kcm9wZG93bi1jb250ZW50Jykpe1xyXG4gICAgICB0aGlzLmRhdGFPYmplY3QuZm9yRWFjaCgoaXRlbTogYW55LCBpOiBhbnkpID0+IHtcclxuICAgICAgICAgIGl0ZW0uaXNPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuIFxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kYXRhT2JqZWN0LmZvckVhY2goKGl0ZW06YW55KT0+e1xyXG4gICAgICBsZXQgc2VsZWN0ZWRMaXN0ID0gaXRlbT8uSXNzdWVzLmZpbHRlcigoZGF0YTphbnkpPT4gZGF0YT8uY2hlY2tlZClcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5LnB1c2goc2VsZWN0ZWRMaXN0KVxyXG4gICAgfSlcclxuICAgIHRoaXMuZHVtbXlBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSlcclxuICAgIHRoaXMucmVzcG9uc2VBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSlcclxuICB9XHJcbiBcclxuICBzZWxlY3RJdGVtKGV2ZW50OmFueSxpbmRleDphbnksc3ViSW5kZXg6YW55KXtcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPSB0aGlzLmRhdGFPYmplY3RbaW5kZXhdLklzc3Vlc1tzdWJJbmRleF07XHJcbiAgfVxyXG5cclxuICBvcGVuRHJvcGRvd24oZXZlbnQ6TW91c2VFdmVudCxpbmRleDphbnkpe1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmRhdGFPYmplY3QuZm9yRWFjaCgoaXRlbTogYW55LCBpOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGkgIT09IGluZGV4KSB7XHJcbiAgICAgICAgaXRlbS5pc09wZW4gPSBmYWxzZTsgLy8gQ2xvc2Ugb3RoZXIgZHJvcGRvd25zXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5pc09wZW4gPSAhdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5pc09wZW47XHJcbiAgfVxyXG4gXHJcbiBcclxuICBvcGVuZHJvcGRvd24oZTpNb3VzZUV2ZW50KSB7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5PcGVuZHJvcGRvd24gPSAhdGhpcy5PcGVuZHJvcGRvd247XHJcbiAgfVxyXG4gXHJcbiAgRHJvcGRvd24odmFsdWU6IGFueSwgaW5kZXg6IG51bWJlcixldmVudDpNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZGF0YU9iamVjdC5mb3JFYWNoKChpdGVtOiBhbnksIGk6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoaSAhPT0gaW5kZXgpIHtcclxuICAgICAgICBpdGVtLmlzT3BlbiA9IGZhbHNlOyAvLyBDbG9zZSBvdGhlciBkcm9wZG93bnNcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRhdGFPYmplY3RbaW5kZXhdLmlzT3BlbiA9ICF0aGlzLmRhdGFPYmplY3RbaW5kZXhdLmlzT3BlbjtcclxuICB9XHJcbiBcclxuICB0b2dnbGVDaGVja2JveChldmVudDogYW55LCBpc3N1ZTogYW55LCBpbmRleDogbnVtYmVyLCBzdWJJbmRleDogbnVtYmVyKSB7XHJcbiBcclxuICAgIGNvbnN0IGN1cnJlbnRJc3N1ZXMgPSB0aGlzLmRhdGFPYmplY3RbaW5kZXhdLklzc3VlcztcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdIHx8IFtdO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdOyAvLyBSZXRyaWV2ZSBzZWxlY3RlZCB2YWx1ZXMgYXJyYXkgZm9yIHRoZSBjdXJyZW50IGRyb3Bkb3duIGluZGV4XHJcbiAgICBpZiAoaXNzdWUgPT09ICdTZWxlY3QgQWxsJykge1xyXG4gICAgICBjb25zdCBjaGVja2VkU3RhdGUgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgICAgdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5Jc3N1ZXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaXRlbS5jaGVja2VkID0gY2hlY2tlZFN0YXRlO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmIChjaGVja2VkU3RhdGUpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gY3VycmVudElzc3Vlcy5zbGljZSgpOyAvLyBDb3B5IGFsbCBpdGVtc1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPSBbXTsgLy8gRGVzZWxlY3QgYWxsIGl0ZW1zXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGF0YU9iamVjdFtpbmRleF0uSXNzdWVzW3N1YkluZGV4XS5jaGVja2VkID0gZXZlbnQudGFyZ2V0LmNoZWNrZWQ7XHJcbiAgICAgIGxldCBjaGVja2VkRGF0YSA9IHRoaXMuZGF0YU9iamVjdFtpbmRleF0uSXNzdWVzW3N1YkluZGV4XTtcclxuXHJcbiAgICAgIGlmKHRoaXMuZGF0YU9iamVjdFtpbmRleF0uSXNzdWVzW3N1YkluZGV4XS5jaGVja2VkKXtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdLnB1c2goY2hlY2tlZERhdGEpXHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdLmZpbHRlcigoZWw6YW55KT0+XHJcbiAgICAgICAgZWw/LmNoZWNrZWQgPT09IHRydWVcclxuICAgICAgICApXHJcbiAgICAgIH0gIFxyXG5cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzZWxlY3RBbGxJZCA9IGBzZWxlY3RhbGwke2luZGV4fWA7XHJcbiAgICBjb25zdCBzZWxlY3RBbGxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2VsZWN0QWxsSWQpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBpZiAoc2VsZWN0QWxsRWxlbWVudCkge1xyXG4gICAgICBzZWxlY3RBbGxFbGVtZW50LmNoZWNrZWQgPSBzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IGN1cnJlbnRJc3N1ZXMubGVuZ3RoO1xyXG4gICAgfVxyXG4gXHJcbiAgICAvLyBVcGRhdGUgY2hlY2tib3hlcyBiYXNlZCBvbiBzZWxlY3RlZCB2YWx1ZXNcclxuICAgIGN1cnJlbnRJc3N1ZXMuZm9yRWFjaCgoaXRlbTogc3RyaW5nKSA9PiB7XHJcbiAgICAgIGNvbnN0IGlzQ2hlY2tlZCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0uaW5jbHVkZXMoaXRlbSk7XHJcbiAgICAgIGNvbnN0IGNoZWNrYm94SWQgPSBgb3B0aW9uJHtpdGVtfWA7XHJcbiAgICAgIGNvbnN0IGNoZWNrYm94RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNoZWNrYm94SWQpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgIGlmIChjaGVja2JveEVsZW1lbnQpIHtcclxuICAgICAgICBjaGVja2JveEVsZW1lbnQuY2hlY2tlZCA9IGlzQ2hlY2tlZDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgIFxyXG4gIH1cclxuICBSZXNldCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheS5mb3JFYWNoKChpdGVtOmFueSkgPT4ge1xyXG4gICAgICBpZihpdGVtPy5sZW5ndGgpe2l0ZW0uZm9yRWFjaCgoZGF0YTphbnkpPT57ZGF0YS5jaGVja2VkID0gZmFsc2U7fSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheSA9IFtdO1xyXG4gICAgdGhpcy5PcGVuZHJvcGRvd24gPSBmYWxzZTtcclxuICAgIHRoaXMucmVzcG9uc2VBcnJheS5mb3JFYWNoKChpdGVtOmFueSxpbmRleDphbnkpPT57XHJcbiAgICAgIGl0ZW0uSXNzdWVzID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA/IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gOltdXHJcbiAgIH0pXHJcbiAgIHRoaXMuYXBwbGllZEZpbHRlcnMuZW1pdCh0aGlzLnJlc3BvbnNlQXJyYXkpXHJcbiAgfVxyXG4gIHNlYXJjaERhdGEoZXZlbnQ6YW55LGk6YW55KXtcclxuICAgIGNvbnN0IHNlYXJjaFRlcm0gPSBldmVudC50YXJnZXQudmFsdWUudHJpbSgpOyAvLyBUcmltIHdoaXRlc3BhY2VcclxuICAgIGNvbnN0IGZpbHRlcmVkSXNzdWVzID0gdGhpcy5kdW1teUFycmF5W2ldLklzc3Vlcy5maWx0ZXIoKGl0ZW06YW55KSA9PiAge1xyXG4gICAgICBsZXQgZmluZENoZWNrZWQgPSB0aGlzLmRhdGFPYmplY3RbaV0uSXNzdWVzLmZpbmQoKGlzc3VlOmFueSkgPT4gaXNzdWUudGV4dCA9PSBpdGVtLnRleHQgKTtcclxuICAgICAgaWYoZmluZENoZWNrZWQpIHtcclxuICAgICAgICBpZihmaW5kQ2hlY2tlZC5jaGVja2VkICkge1xyXG4gICAgICAgICAgaXRlbS5jaGVja2VkID0gZmluZENoZWNrZWQuY2hlY2tlZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyBSZWdFeHAoc2VhcmNoVGVybSwnaScpLnRlc3QoaXRlbS50ZXh0KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cChzZWFyY2hUZXJtLCdpJykudGVzdChpdGVtLnRleHQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0YU9iamVjdFtpXS5Jc3N1ZXMgPSBmaWx0ZXJlZElzc3VlcztcclxuICAgIGlmKGZpbHRlcmVkSXNzdWVzLmxlbmd0aCl7XHJcbiAgICAgIHRoaXMubm9GaWx0ZXIgPSBmYWxzZTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLm5vRmlsdGVyID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIH1cclxuXHJcbiAgQXBwbHkoKSB7XHJcbiAgICB0aGlzLk9wZW5kcm9wZG93biA9IGZhbHNlO1xyXG4gICAgdGhpcy5yZXNwb25zZUFycmF5LmZvckVhY2goKGl0ZW06YW55LGluZGV4OmFueSk9PntcclxuICAgICAgaXRlbS5Jc3N1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID8gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA6W11cclxuICAgfSlcclxuICAgdGhpcy5hcHBsaWVkRmlsdGVycy5lbWl0KHRoaXMucmVzcG9uc2VBcnJheSlcclxuICB9XHJcbn1cclxuICIsIjxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgXHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3BlbmRyb3Bkb3duKCRldmVudClcIlxyXG4gICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+PHN2Z1xyXG4gICAgICBjbGFzcz1cInBsLTNcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgPHBhdGggZD1cIk01IDEwSDE1TTIuNSA1SDE3LjVNNy41IDE1SDEyLjVcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMlwiXHJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICA8L3N2Zz5cclxuICAgIDxzcGFuIGNsYXNzPVwibXMtMlwiPkZpbHRlcjwvc3Bhbj4gPC9idXR0b24+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZCBwLTUgZHJvcGRvd24xIHBvc2l0aW9uLWFic29sdXRlIHotMiBlbmQtMFwiICpuZ0lmPVwiT3BlbmRyb3Bkb3duXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi10aXRsZVwiPkZpbHRlciBPcHRpb25zPC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBib3JkZXIgYm9yZGVyLWdyYXkgbXQtM1wiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJweS0zXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YU9iamVjdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlICE9PSAnc2luZ2xlJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duIGZvcm0tc2VsZWN0IHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiIChjbGljayk9XCJEcm9wZG93bihpdGVtLkRlc2NyaXB0aW9uLGksJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJcIj57eyBzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggIT09IG51bGwgJiYgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSB1bmRlZmluZWQgPyBzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggKyAnICcgKyBpdGVtLkRlc2NyaXB0aW9uLnNwbGl0KCcgJykucG9wKCkgKyAnIFNlbGVjdGVkJyA6IGl0ZW0uRGVzY3JpcHRpb24gfX08L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0uRGVzY3JpcHRpb259fTwvc3Bhbj4gPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggIT09IG51bGwgJiYgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSB1bmRlZmluZWQgJiYgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSAwXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0XCI+e3tzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGh9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uaXNPcGVuXCIgY2xhc3M9XCJkcm9wZG93bi1jb250ZW50IHBvc2l0aW9uLWFic29sdXRlIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBweS0zIHB0LTMgcHMtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJTZWxlY3QgQWxsXCIgaWQ9XCJzZWxlY3RhbGx7e2l9fVwiICBbY2hlY2tlZF09XCJzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggPT09IGl0ZW0uSXNzdWVzLmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVDaGVja2JveCgkZXZlbnQsJ1NlbGVjdCBBbGwnLCBpLDApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgcHgtMlwiIGZvcj1cInNlbGVjdGFsbHt7aX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3QgQWxsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXkgbXQtMyBcIj48L2Rpdj5cclxuICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtMyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTdcIiB2aWV3Qm94PVwiMCAwIDE2IDE3XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE0IDE0LjVMMTEuMSAxMS42TTEyLjY2NjcgNy44MzMzM0MxMi42NjY3IDEwLjc3ODkgMTAuMjc4OSAxMy4xNjY3IDcuMzMzMzMgMTMuMTY2N0M0LjM4NzgxIDEzLjE2NjcgMiAxMC43Nzg5IDIgNy44MzMzM0MyIDQuODg3ODEgNC4zODc4MSAyLjUgNy4zMzMzMyAyLjVDMTAuMjc4OSAyLjUgMTIuNjY2NyA0Ljg4NzgxIDEyLjY2NjcgNy44MzMzM1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImRhdGFPYmplY3RbaV0uc2VsZWN0ZWRWYWx1ZVwiIChpbnB1dCk9XCJzZWFyY2hEYXRhKCRldmVudCxpKVwiIFtpZF09XCJpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgc2VhcmNoaW5wdXQgcHMtMTQgcHktMiBtZS0yIG10LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpc3N1ZSBvZiBpdGVtLklzc3VlcztsZXQgaj1pbmRleFwiICBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBweS0zIHB0LTMgcHMtMCBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBbdmFsdWVdPVwiaXNzdWUudGV4dFwiIGlkPVwib3B0aW9ue3tpc3N1ZS50ZXh0fX1cIiBbY2hlY2tlZF09XCJpc3N1ZS5jaGVja2VkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlQ2hlY2tib3goJGV2ZW50LGlzc3VlLnRleHQsaSxqKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHB4LTJcIiBmb3I9XCJvcHRpb257e2lzc3VlLnRleHR9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXNzdWUudGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiICpuZ0lmPVwibm9GaWx0ZXJcIj4gTm8gZmlsdGVycyBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdzaW5nbGUnXCIgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQsaSlcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgdy0xMDAgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj4ge3tzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy50ZXh0ID8gc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8udGV4dCA6IGl0ZW0uRGVzY3JpcHRpb259fVxyXG4gICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0uaXNPcGVuXCIgY2xhc3M9XCJjYXJkIHB5LTEgdy0xMDAgZHJvcGRvd24tc2luZ2xlIHBvc2l0aW9uLWFic29sdXRlIHotMSB0b3AtNTBweCBlbmQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbS5Jc3N1ZXM7IGxldCBqID0gaW5kZXhcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/LnRleHQgPT09IGl0ZW0udGV4dCA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cImNhbWVyYSBweC01IGl0ZW1zIGZ3LXNlbWlib2xkIGN1cnNvci1wb2ludGVyIHB5LTJcIiAoY2xpY2spPVwic2VsZWN0SXRlbSgkZXZlbnQsaSxqKVwiPnt7aXRlbS50ZXh0fX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiByb2xlPVwiZ3JvdXBcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG1lLTJcIiAoY2xpY2spPVwiUmVzZXQoKVwiPiBSZXNldCA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtcy0yXCIgKGNsaWNrKT1cIkFwcGx5KClcIj5BcHBseTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -180,7 +180,7 @@ export class ClassicComponent {
180
180
  // }
181
181
  // }
182
182
  searchData(event, i) {
183
- const filteredIssues = this.dummyArray[i].Issues.filter((item) => new RegExp(event.target.value, "i").test(item.clientName));
183
+ const filteredIssues = this.dummyArray[i].Issues.filter((item) => new RegExp(event.target.value, "i").test(item.clientName) || this.selectedValuesArray[i].includes(item.clientName));
184
184
  this.dataObject[i].Issues = filteredIssues;
185
185
  if (filteredIssues.length) {
186
186
  this.noFilter = false;
@@ -238,7 +238,7 @@ export class ClassicComponent {
238
238
  var selectedValue = [];
239
239
  for (let i = 0; i < this.selectedValuesArray.length; i++) {
240
240
  const selectedValues = this.selectedValuesArray[i];
241
- const issues = this.dataObject[i].Issues;
241
+ const issues = this.dummyArray[i].Issues; // const issues = this.dataObject[i].Issues;
242
242
  if (selectedValues) {
243
243
  this.selectedValuesArray[i] = selectedValues.map((selectedId) => {
244
244
  const issue = issues.find((issueItem) => issueItem.clientId === selectedId);
@@ -257,6 +257,7 @@ export class ClassicComponent {
257
257
  ? this.selectedValuesArray[index]
258
258
  : [];
259
259
  });
260
+ console.log(this.responseArray[0].Issues);
260
261
  this.selectedFilters.clients = this.responseArray[0].Issues;
261
262
  this.globalService.dataRangeValue.next(this.selectedFilters);
262
263
  this.cd.detectChanges();
@@ -329,4 +330,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
329
330
  type: HostListener,
330
331
  args: ["document:click", ["$event"]]
331
332
  }] } });
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvdG9vbGJhci9jbGFzc2ljL2NsYXNzaWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvY2xhc3NpYy9jbGFzc2ljLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxHQUliLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMzQixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBSTdDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQU12QixNQUFNLE9BQU8sZ0JBQWdCO0lBZ0JqQjtJQUNBO0lBQ0E7SUFDQTtJQWxCVixLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ0wsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFFekMsVUFBVSxHQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTNELFlBQVksR0FBRyxDQUFDLENBQWMsRUFBRSxFQUFFO1FBQ2hDLE1BQU0sV0FBVyxHQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxD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QUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzNHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzRDtRQUNELFNBQVM7UUFDVCwyQ0FBMkM7UUFDM0MscURBQXFEO1FBQ3JELE9BQU87UUFDUCxvREFBb0Q7UUFDcEQsb0VBQW9FO1FBQ3BFLG1EQUFtRDtRQUVuRCxXQUFXO1FBQ1gsaUNBQWlDO1FBQ2pDLGlEQUFpRDtRQUNqRCw4Q0FBOEM7UUFDOUMsUUFBUTtRQUVSLE1BQU07UUFDTixJQUFJO1FBQ0osc0RBQXNEO0lBQ3hELENBQUM7dUdBNVdVLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLGlIQ3pCN0IsdzNKQW9FMEQ7OzJGRDNDN0MsZ0JBQWdCO2tCQUw1QixTQUFTOytCQUNFLGFBQWE7NktBOEp2QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcbmltcG9ydCAgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcImRheWpzL2xvY2FsZS9lblwiO1xyXG5pbXBvcnQgdXRjIGZyb20gXCJkYXlqcy9wbHVnaW4vdXRjXCI7XHJcbmltcG9ydCB0aW1lem9uZSBmcm9tIFwiZGF5anMvcGx1Z2luL3RpbWV6b25lXCI7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcblxyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuZGF5anMuZXh0ZW5kKHRpbWV6b25lKTtcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLWNsYXNzaWNcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2NsYXNzaWMuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vY2xhc3NpYy5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENsYXNzaWNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGF5anMgPSBkYXlqc1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGRhdGFPYmplY3Q6IGFueSA9IFt7IERlc2NyaXB0aW9uOiBcIkNsaWVudHNcIiwgSXNzdWVzOiBbXSB9XTtcclxuXHJcbiAgaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9ICBtID4gdGhpcy5kYXlqcygpOyAgICBcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbn1cclxuICBkdW1teUFycmF5OiBhbnkgPSBbXTtcclxuICBub0ZpbHRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHNlYXJjaFZhbHVlOiBhbnk7XHJcbiAgcmVzcG9uc2VBcnJheTogYW55ID0gW107XHJcbiAgZ2V0Q2xpZW50TGlzdDogYW55ID0gW107XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxheW91dDogTGF5b3V0U2VydmljZSxcclxuICAgIHByaXZhdGUgZ2xvYmFsU2VydmljZTogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUuZm9yRWFjaCgoc2IpID0+IHNiLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuICAvLyBASW5wdXQoKSBkYXRhT2JqZWN0OiBhbnlbXSA9IFtdO1xyXG4gIE9wZW5kcm9wZG93bjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwZXJtaXNzaW9uID0gW1xyXG4gICAge1xyXG4gICAgICBncm91cDogXCJTdXBlciBBZG1pblwiLFxyXG4gICAgICBkZXNjcmlwdGlvbjogXCJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgXCIsXHJcbiAgICB9LFxyXG4gICAgeyBncm91cDogXCJBZG1pblwiLCBkZXNjcmlwdGlvbjogXCJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgXCIgfSxcclxuICAgIHsgZ3JvdXA6IFwiVXNlclwiLCBkZXNjcmlwdGlvbjogXCJMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgXCIgfSxcclxuICBdO1xyXG5cclxuICBzaG93ZHJvcGRvd246IGFueTtcclxuICBzZWxlY3RlZFZhbHVlczogc3RyaW5nW10gPSBbXTtcclxuICBzZWxlY3RlZFZhbHVlc0FycmF5OiBhbnlbXSA9IFtdO1xyXG4gIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7fTtcclxuICBzZWxlY3RlZEZpbHRlcnM6IGFueSA9IHtcclxuICAgIGNsaWVudDogbnVsbCxcclxuICAgIGNsaWVudHM6IFtdLFxyXG4gICAgc3RvcmU6IG51bGwsXHJcbiAgICBzdG9yZXM6IFtdLFxyXG4gICAgZGF0ZTogbnVsbCxcclxuICB9O1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldENsaWVudHMoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLmdldENsaWVudExpc3QgPSByZXM/LmRhdGE/LnJlc3VsdDtcclxuICAgICAgICBpZiAoXCJoZWFkZXItZmlsdGVyc1wiIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgY29uc3QgaGVhZGVyRmlsdGVyczogYW55ID0gSlNPTi5wYXJzZShcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJoZWFkZXItZmlsdGVyc1wiKSB8fCBcInt9XCJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZihoZWFkZXJGaWx0ZXJzLmNsaWVudHMubGVuZ3RoID4wICYmIGhlYWRlckZpbHRlcnMuZGF0ZT8uc3RhcnREYXRlKXtcclxuICAgICAgICAgICAgdGhpcy5kYXRhT2JqZWN0WzBdLklzc3VlcyA9IHRoaXMuZ2V0Q2xpZW50TGlzdDtcclxuICAgICAgICAgIHRoaXMudG9nZ2xlQ2hlY2tib3goXCJTZWxlY3QgQWxsXCIsIDApO1xyXG4gICAgICAgICAgdGhpcy5kdW1teUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKTtcclxuICAgICAgICAgIHRoaXMucmVzcG9uc2VBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJc3N1ZXMgPSAgdGhpcy5kdW1teUFycmF5WzBdLklzc3Vlcy5tYXAoXHJcbiAgICAgICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5jbGllbnRJZCBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50cyA9IGN1cnJlbnRJc3N1ZXM7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9ICBoZWFkZXJGaWx0ZXJzLmNsaWVudDtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuc3RvcmUgPSAgaGVhZGVyRmlsdGVycy5zdG9yZTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IGhlYWRlckZpbHRlcnMuZGF0ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhcnREYXRlOnRoaXMuZGF5anMoIGhlYWRlckZpbHRlcnMuZGF0ZS5zdGFydERhdGUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoIGhlYWRlckZpbHRlcnMuZGF0ZS5lbmREYXRlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgIFwiaGVhZGVyLWZpbHRlcnNcIixcclxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycylcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLmRhdGFSYW5nZVZhbHVlLm5leHQodGhpcy5zZWxlY3RlZEZpbHRlcnMpO1xyXG4gICAgICAgICAgLy8gdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YU9iamVjdFswXS5Jc3N1ZXMgPSB0aGlzLmdldENsaWVudExpc3Q7XHJcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlQ2hlY2tib3goXCJTZWxlY3QgQWxsXCIsIDApO1xyXG4gICAgICAgICAgICB0aGlzLmR1bW15QXJyYXkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YU9iamVjdCkpO1xyXG4gICAgICAgICAgICB0aGlzLnJlc3BvbnNlQXJyYXkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YU9iamVjdCkpO1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXNzdWVzID0gIHRoaXMuZHVtbXlBcnJheVswXS5Jc3N1ZXMubWFwKFxyXG4gICAgICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uY2xpZW50SWQgXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudHMgPSBjdXJyZW50SXNzdWVzO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnQgPSAgaGVhZGVyRmlsdGVycy5jbGllbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnN0b3JlID0gIGhlYWRlckZpbHRlcnMuc3RvcmU7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAgICAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgdmFyIGRhdGV0aW1lID0ge1xyXG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBkYXRldGltZTtcclxuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgICAgICAgXCJoZWFkZXItZmlsdGVyc1wiLFxyXG4gICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmdsb2JhbFNlcnZpY2UuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgdGhpcy5kYXRhT2JqZWN0WzBdLklzc3VlcyA9IHRoaXMuZ2V0Q2xpZW50TGlzdDtcclxuICAgICAgICAgIHRoaXMudG9nZ2xlQ2hlY2tib3goXCJTZWxlY3QgQWxsXCIsIDApO1xyXG4gICAgICAgICAgdGhpcy5kdW1teUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKTtcclxuICAgICAgICAgIHRoaXMucmVzcG9uc2VBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSk7XHJcbiAgICAgICAgICBjb25zdCBjdXJyZW50SXNzdWVzID0gIHRoaXMuZHVtbXlBcnJheVswXS5Jc3N1ZXMubWFwKFxyXG4gICAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmNsaWVudElkIFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudHMgPSBjdXJyZW50SXNzdWVzO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50ID0gIGN1cnJlbnRJc3N1ZXNbMF07XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB2YXIgZGF0ZXRpbWUgPSB7XHJcbiAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBkYXRldGltZTtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICBcImhlYWRlci1maWx0ZXJzXCIsXHJcbiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgc3Vic2NyID0gdGhpcy5sYXlvdXQubGF5b3V0Q29uZmlnU3ViamVjdFxyXG4gICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5wdXNoKHN1YnNjcik7XHJcbiAgfVxyXG5cclxuICBnZXRjbGllbnRzKCl7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0Q2xpZW50cygpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0Q2xpZW50TGlzdCA9IHJlcz8uZGF0YT8ucmVzdWx0O1xyXG4gICAgICAgIHRoaXMudG9nZ2xlQ2hlY2tib3goXCJTZWxlY3QgQWxsXCIsIDApO1xyXG4gICAgICAgIHRoaXMuZHVtbXlBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSk7XHJcbiAgICAgICAgdGhpcy5yZXNwb25zZUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKTtcclxuICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6Y2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghdGFyZ2V0LmNsb3Nlc3QoXCIuZHJvcGRvd24xXCIpKSB7XHJcbiAgICAgIHRoaXMuT3BlbmRyb3Bkb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KFwiLmRyb3Bkb3duLWNvbnRlbnRcIikpIHtcclxuICAgICAgdGhpcy5kYXRhT2JqZWN0LmZvckVhY2goKGl0ZW06IGFueSwgaTogYW55KSA9PiB7XHJcbiAgICAgICAgaXRlbS5pc09wZW4gPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuZHJvcGRvd24oZTogTW91c2VFdmVudCkge1xyXG4gICAgY29uc29sZS5sb2coNjg3KTtcclxuXHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5PcGVuZHJvcGRvd24gPSAhdGhpcy5PcGVuZHJvcGRvd247XHJcbiAgfVxyXG5cclxuICBEcm9wZG93bih2YWx1ZTogYW55LCBpbmRleDogbnVtYmVyLCBldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmRhdGFPYmplY3QuZm9yRWFjaCgoaXRlbTogYW55LCBpOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGkgIT09IGluZGV4KSB7XHJcbiAgICAgICAgaXRlbS5pc09wZW4gPSBmYWxzZTsgXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5pc09wZW4gPSAhdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5pc09wZW47XHJcblxyXG4gICAgLy8gaWYgKHRoaXMuZGF0YU9iamVjdFtpbmRleF0uaXNPcGVuKSB7XHJcbiAgICAvLyAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbGlja091dHNpZGVEcm9wZG93bkNvbnRlbnQuYmluZCh0aGlzLCBpbmRleCkpO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrT3V0c2lkZURyb3Bkb3duQ29udGVudC5iaW5kKHRoaXMsIGluZGV4KSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICAvLyBjbGlja091dHNpZGVEcm9wZG93bkNvbnRlbnQoaW5kZXg6IG51bWJlciwgZXZlbnQ6IEV2ZW50KSB7XHJcbiAgLy8gICBpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSkge1xyXG4gIC8vICAgICB0aGlzLmRhdGFPYmplY3RbaW5kZXhdLmlzT3BlbiA9IGZhbHNlO1xyXG4gIC8vICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xpY2tPdXRzaWRlRHJvcGRvd25Db250ZW50LmJpbmQodGhpcywgaW5kZXgpKTtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcbiAgc2VhcmNoRGF0YShldmVudDogYW55LCBpOiBhbnkpIHtcclxuICAgIGNvbnN0IGZpbHRlcmVkSXNzdWVzID0gdGhpcy5kdW1teUFycmF5W2ldLklzc3Vlcy5maWx0ZXIoKGl0ZW06IGFueSkgPT5cclxuICAgICAgbmV3IFJlZ0V4cChldmVudC50YXJnZXQudmFsdWUsIFwiaVwiKS50ZXN0KGl0ZW0uY2xpZW50TmFtZSlcclxuICAgICk7XHJcbiAgICB0aGlzLmRhdGFPYmplY3RbaV0uSXNzdWVzID0gZmlsdGVyZWRJc3N1ZXM7XHJcbiAgICBpZiAoZmlsdGVyZWRJc3N1ZXMubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMubm9GaWx0ZXIgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9GaWx0ZXIgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuICB0b2dnbGVDaGVja2JveChpc3N1ZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBjdXJyZW50SXNzdWVzID0gdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5Jc3N1ZXM7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSB8fCBbXTtcclxuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWVzID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XTsgLy8gUmV0cmlldmUgc2VsZWN0ZWQgdmFsdWVzIGFycmF5IGZvciB0aGUgY3VycmVudCBkcm9wZG93biBpbmRleFxyXG5cclxuICAgIGlmIChpc3N1ZSA9PT0gXCJTZWxlY3QgQWxsXCIpIHtcclxuICAgICAgY29uc3QgY3VycmVudElzc3VlcyA9IHRoaXMuZGF0YU9iamVjdFtpbmRleF0uSXNzdWVzLm1hcChcclxuICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmNsaWVudElkXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IGN1cnJlbnRJc3N1ZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgLy8gSWYgYWxsIGl0ZW1zIGFyZSBhbHJlYWR5IHNlbGVjdGVkLCBkZXNlbGVjdCBhbGxcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gW107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gT3RoZXJ3aXNlLCBzZWxlY3QgYWxsIGl0ZW1zXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IFsuLi5jdXJyZW50SXNzdWVzXTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZFZhbHVlcy5pbmNsdWRlcyhpc3N1ZSkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdID0gc2VsZWN0ZWRWYWx1ZXMuZmlsdGVyKFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbSAhPT0gaXNzdWVcclxuICAgICAgICApOyAvLyBEZXNlbGVjdCB0aGUgaW5kaXZpZHVhbCBpdGVtIGlmIGFscmVhZHkgc2VsZWN0ZWRcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdLnB1c2goaXNzdWUpOyAvLyBTZWxlY3QgdGhlIGluZGl2aWR1YWwgaXRlbSBpZiBub3QgYWxyZWFkeSBzZWxlY3RlZFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXBkYXRlIFwiU2VsZWN0IEFsbFwiIGNoZWNrYm94IHN0YXR1cyBiYXNlZCBvbiBzZWxlY3RlZCB2YWx1ZXNcclxuICAgIGNvbnN0IHNlbGVjdEFsbElkID0gYHNlbGVjdGFsbCR7aW5kZXh9YDtcclxuICAgIGNvbnN0IHNlbGVjdEFsbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcclxuICAgICAgc2VsZWN0QWxsSWRcclxuICAgICkgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmIChzZWxlY3RBbGxFbGVtZW50KSB7XHJcbiAgICAgIHNlbGVjdEFsbEVsZW1lbnQuY2hlY2tlZCBcclxuICAgICAgLy89IHNlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gY3VycmVudElzc3Vlcy5sZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXBkYXRlIGNoZWNrYm94ZXMgYmFzZWQgb24gc2VsZWN0ZWQgdmFsdWVzXHJcbiAgICBjdXJyZW50SXNzdWVzLmZvckVhY2goKGl0ZW06IHN0cmluZykgPT4ge1xyXG4gICAgICBjb25zdCBpc0NoZWNrZWQgPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdLmluY2x1ZGVzKGl0ZW0pO1xyXG4gICAgICBjb25zdCBjaGVja2JveElkID0gYG9wdGlvbiR7aXRlbX1gO1xyXG4gICAgICBjb25zdCBjaGVja2JveEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcclxuICAgICAgICBjaGVja2JveElkXHJcbiAgICAgICkgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgICAgaWYgKGNoZWNrYm94RWxlbWVudCkge1xyXG4gICAgICAgIGNoZWNrYm94RWxlbWVudC5jaGVja2VkID0gaXNDaGVja2VkO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIFJlc2V0KCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5ID0gW107XHJcbiAgICB0aGlzLk9wZW5kcm9wZG93biA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgQXBwbHkoKSB7XHJcbiAgICBcclxuICAgIHZhciBzZWxlY3RlZFZhbHVlOiBhbnkgPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkVmFsdWVzID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2ldO1xyXG4gICAgICBjb25zdCBpc3N1ZXMgPSB0aGlzLmRhdGFPYmplY3RbaV0uSXNzdWVzO1xyXG5cclxuICAgICAgaWYgKHNlbGVjdGVkVmFsdWVzKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2ldID0gc2VsZWN0ZWRWYWx1ZXMubWFwKChzZWxlY3RlZElkOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGlzc3VlID0gaXNzdWVzLmZpbmQoXHJcbiAgICAgICAgICAgIChpc3N1ZUl0ZW06IGFueSkgPT4gaXNzdWVJdGVtLmNsaWVudElkID09PSBzZWxlY3RlZElkXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgc2VsZWN0ZWRWYWx1ZS5wdXNoKGlzc3VlKTtcclxuICAgICAgICAgIHJldHVybiBpc3N1ZSA/IGlzc3VlIDogXCJcIjsgLy8gR2V0IHRoZSB0ZXh0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGlkXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5PcGVuZHJvcGRvd24gPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheS5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgaXRlbSA9IGl0ZW0ubWFwKChlbGU6IGFueSkgPT4gZWxlLmNsaWVudElkKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IGl0ZW07XHJcbiAgICB9KTtcclxuICAgIHRoaXMucmVzcG9uc2VBcnJheS5mb3JFYWNoKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgaXRlbS5Jc3N1ZXMgPSB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdXHJcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXlbaW5kZXhdXHJcbiAgICAgICAgOiBbXTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50cyA9IHRoaXMucmVzcG9uc2VBcnJheVswXS5Jc3N1ZXM7XHJcbiAgICB0aGlzLmdsb2JhbFNlcnZpY2UuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHJhbmdlczogYW55ID0ge1xyXG4gICAgXCJUb2RheVwiOiBbdGhpcy5kYXlqcygpLCB0aGlzLmRheWpzKCldLFxyXG4gICAgXCJZZXN0ZXJkYXlcIjogW3RoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCBcImRheXNcIiksIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCBcImRheXNcIildLFxyXG4gICAgXCJUaGlzIFdlZWtcIjogW3RoaXMuZGF5anMoKS5zdWJ0cmFjdCg2LCBcImRheXNcIiksIGRheWpzKCldLFxyXG4gICAgXCJMYXN0IFdlZWtcIjogW1xyXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMTQsIFwiZGF5c1wiKS5zdGFydE9mKFwiZGF5c1wiKSxcclxuICAgICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDgsIFwiZGF5c1wiKS5lbmRPZihcImRheXNcIiksXHJcbiAgICBdLFxyXG4gICAgXCJUaGlzIE1vbnRoXCI6IFt0aGlzLmRheWpzKCkuc3RhcnRPZihcIm1vbnRoXCIpLCB0aGlzLmRheWpzKCkuZW5kT2YoXCJtb250aFwiKV0sXHJcbiAgICBcIkxhc3QgTW9udGhcIjogW1xyXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoMSwgXCJtb250aFwiKS5zdGFydE9mKFwibW9udGhcIiksXHJcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCBcIm1vbnRoXCIpLmVuZE9mKFwibW9udGhcIiksXHJcbiAgICBdLFxyXG4gIH07XHJcblxyXG4gIG9uU3RhcnREYXRlQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZSkuaXNWYWxpZCgpKSB7XHJcbiAgICAgIHRoaXMuaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXNWYWxpZERhdGUgPVxyXG4gICAgICAgICAgbSA+IHRoaXMuZGF5anMoKSB8fCBtID4gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUuYWRkKDkwLCBcImRheXNcIikpO1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/IFwiaW52YWxpZC1kYXRlXCIgOiBmYWxzZTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRhdGVjaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgXHJcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuc3RhcnREYXRlICYmIGV2ZW50LmVuZERhdGUpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkgJiZcclxuICAgICAgICB0aGlzLmRheWpzKGV2ZW50LmVuZERhdGUpLmlzVmFsaWQoKVxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZSA9IGV2ZW50LnN0YXJ0RGF0ZVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IGV2ZW50LmVuZERhdGVcclxuICAgICAgICB2YXIgZGF0ZXRpbWUgPSB7XHJcbiAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlLFwiREQtTU0tWVlZWVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcyhldmVudC5lbmREYXRlLFwiREQtTU0tWVlZWVwiKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZSA9IGRhdGV0aW1lO1xyXG4gICAgICB9XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgIFwiaGVhZGVyLWZpbHRlcnNcIixcclxuICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycylcclxuICAgICAgKTtcclxuICAgIH0gIGVsc2Uge1xyXG4gICAgICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gdGhpcy5kYXlqcyhoZWFkZXJGaWx0ZXJzLmRhdGU/LnN0YXJ0RGF0ZSxcIllZWVktTU0tRERcIikuZm9ybWF0KFwiREQtTU0tWVlZWVwiKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UuZW5kRGF0ZSA9IHRoaXMuZGF5anMoaGVhZGVyRmlsdGVycy5kYXRlPy5lbmREYXRlLFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpO1xyXG4gICAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLmRhdGFSYW5nZVZhbHVlLm5leHQoaGVhZGVyRmlsdGVycyk7XHJcbiAgICB9XHJcbiAgICAvLyBlbHNlIHtcclxuICAgIC8vICAgY29uc3QgaGVhZGVyRmlsdGVyczogYW55ID0gSlNPTi5wYXJzZShcclxuICAgIC8vICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgLy8gICApO1xyXG4gICAgLy8gICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gaGVhZGVyRmlsdGVycy5kYXRlO1xyXG4gICAgLy8gICBpZihoZWFkZXJGaWx0ZXJzLmRhdGU/LnN0YXJ0RGF0ZSYmaGVhZGVyRmlsdGVycy5kYXRlPy5lbmREYXRlKXtcclxuICAgIC8vICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0gaGVhZGVyRmlsdGVycy5kYXRlO1xyXG4gXHJcbiAgICAvLyAgIH1lbHNle1xyXG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSB7XHJcbiAgICAvLyAgICAgICBzdGFydERhdGU6IGRheWpzKCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgIC8vICAgICAgIGVuZERhdGU6IGRheWpzKCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKVxyXG4gICAgLy8gICAgIH1cclxuIFxyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gdGhpcy5zZWxlY3RlZERhdGVSYW5nZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInB5LTMgZHJvcGRvd24xIGN1cnNvci1wb2ludGVyXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YU9iamVjdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duIGZvcm0tc2VsZWN0XCIgKGNsaWNrKT1cIkRyb3Bkb3duKCdDbGllbnRzJyxpLCRldmVudClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIlwiPnt7IHNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/Lmxlbmd0aCAhPT0gbnVsbCAmJiBzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggIT09IHVuZGVmaW5lZCA/XHJcbiAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/Lmxlbmd0aCArICcgJyArICdDbGllbnRzJy5zcGxpdCgnICcpLnBvcCgpIDogJ0NsaWVudHMnIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXRlbS5pc09wZW5cIiBjbGFzcz1cImRyb3Bkb3duLWNvbnRlbnQgcG9zaXRpb24tYWJzb2x1dGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHB0LTMgcHgtNVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJTZWxlY3QgQWxsXCIgaWQ9XCJzZWxlY3RhbGx7e2l9fVwiXHJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFZhbHVlc0FycmF5W2ldPy5sZW5ndGggPT09IGl0ZW0uSXNzdWVzLmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZUNoZWNrYm94KCdTZWxlY3QgQWxsJywgaSlcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBweC0zXCIgZm9yPVwic2VsZWN0YWxse3tpfX1cIj5cclxuICAgICAgICAgICAgICAgIFNlbGVjdCBBbGxcclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheSBtdC0zXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBteC0yXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxN1wiIHZpZXdCb3g9XCIwIDAgMTYgMTdcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQgMTQuNUwxMS4xIDExLjZNMTIuNjY2NyA3LjgzMzMzQzEyLjY2NjcgMTAuNzc4OSAxMC4yNzg5IDEzLjE2NjcgNy4zMzMzMyAxMy4xNjY3QzQuMzg3ODEgMTMuMTY2NyAyIDEwLjc3ODkgMiA3LjgzMzMzQzIgNC44ODc4MSA0LjM4NzgxIDIuNSA3LjMzMzMzIDIuNUMxMC4yNzg5IDIuNSAxMi42NjY3IDQuODg3ODEgMTIuNjY2NyA3LjgzMzMzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiIChpbnB1dCk9XCJzZWFyY2hEYXRhKCRldmVudCxpKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBzZWFyY2hpbnB1dCBwcy0xNCBweS0yICBtdC0yXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIiBhdXRvY29tcGxldGU9XCJvZmZcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGlzc3VlIG9mIGl0ZW0uSXNzdWVzXCIgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcHktMyBweC01XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwiY2hlY2tib3hcIiBbdmFsdWVdPVwiaXNzdWUuY2xpZW50TmFtZVwiIGlkPVwib3B0aW9ue3tpc3N1ZS5jbGllbnRJZH19XCJcclxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/LmluY2x1ZGVzKGlzc3VlLmNsaWVudElkKVwiIChjaGFuZ2UpPVwidG9nZ2xlQ2hlY2tib3goaXNzdWUuY2xpZW50SWQsaSlcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBweC0zIGN1cnNvci1wb2ludGVyXCIgZm9yPVwib3B0aW9ue3tpc3N1ZS5jbGllbnRJZH19XCI+XHJcbiAgICAgICAgICAgICAgICB7eyBpc3N1ZS5jbGllbnROYW1lIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTUgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIG1iLTNcIiAqbmdJZj1cIm5vRmlsdGVyXCI+IE5vIGZpbHRlcnMgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICA8L3NwYW4+XHJcbiAgICA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHN0eWxlPVwibWluLXdpZHRoOiAyNjBweCAhaW1wb3J0YW50O1wiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgW2Ryb3BzXT1cIidkb3duJ1wiXHJcbiAgICAgICAgW29wZW5zXT1cIidyaWdodCdcIiBbcmFuZ2VzXT1cInJhbmdlc1wiIFtzaG93Q3VzdG9tUmFuZ2VMYWJlbF09XCJ0cnVlXCIgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIiBbc2hvd0NhbmNlbF09XCJ0cnVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVSYW5nZVwiICAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgIFtpc0N1c3RvbURhdGVdPVwiaXNDdXN0b21EYXRlXCJcclxuICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbjwvZGl2PlxyXG5cclxuXHJcbjwhLS0gPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFxyXG4gICAgW3NpbmdsZURhdGVQaWNrZXJdPVwidHJ1ZVwiXHJcbiAgICBbZHJvcHNdPVwiJ2Rvd24nXCJcclxuICAgIFtvcGVuc109XCIncmlnaHQnXCJcclxuICAgIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgIFtrZWVwQ2FsZW5kYXJPcGVuaW5nV2l0aFJhbmdlXT1cInRydWVcIlxyXG4gICAgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiXHJcbiAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZERhdGVcIlxyXG4gICAgW2xvY2FsZV09XCJ7IGZvcm1hdDogJ0RELU1NLVlZWVknLCBmaXJzdERheTogMSwgbW9udGhOYW1lczogWydKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywgJ0p1bHknLCAnQXVndXN0JywgJ1NlcHRlbWJlcicsICdPY3RvYmVyJywgJ05vdmVtYmVyJywgJ0RlY2VtYmVyJ10gfVwiXHJcbiAgICAoc2VsZWN0ZWQpPVwib25EYXRlU2VsZWN0KCRldmVudClcIlxyXG4gICAgbmFtZT1cImRhdGVyYW5nZVwiIC8+IC0tPlxyXG5cclxuPGRpdiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJBcHBseSgpXCI+QXBwbHk8L2Rpdj4iXX0=
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NpYy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9saWIvbW9kdWxlcy9sYXlvdXQvdG9vbGJhci9jbGFzc2ljL2NsYXNzaWMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYXBwLXNoYXJlZC9zcmMvbGliL21vZHVsZXMvbGF5b3V0L3Rvb2xiYXIvY2xhc3NpYy9jbGFzc2ljLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxHQUliLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQVEsS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMzQixPQUFPLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sR0FBRyxNQUFNLGtCQUFrQixDQUFDO0FBQ25DLE9BQU8sUUFBUSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBSTdDLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQU12QixNQUFNLE9BQU8sZ0JBQWdCO0lBZ0JqQjtJQUNBO0lBQ0E7SUFDQTtJQWxCVixLQUFLLEdBQUcsS0FBSyxDQUFBO0lBQ0wsV0FBVyxHQUFtQixFQUFFLENBQUM7SUFFekMsVUFBVSxHQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTNELFlBQVksR0FBRyxDQUFDLENBQWMsRUFBRSxFQUFFO1FBQ2hDLE1BQU0sV0FBVyxHQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxD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QkFBaUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDL0csSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMzRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDM0Q7UUFDRCxTQUFTO1FBQ1QsMkNBQTJDO1FBQzNDLHFEQUFxRDtRQUNyRCxPQUFPO1FBQ1Asb0RBQW9EO1FBQ3BELG9FQUFvRTtRQUNwRSxtREFBbUQ7UUFFbkQsV0FBVztRQUNYLGlDQUFpQztRQUNqQyxpREFBaUQ7UUFDakQsOENBQThDO1FBQzlDLFFBQVE7UUFFUixNQUFNO1FBQ04sSUFBSTtRQUNKLHNEQUFzRDtJQUN4RCxDQUFDO3VHQTdXVSxnQkFBZ0I7MkZBQWhCLGdCQUFnQixpSEN6QjdCLHczSkFvRTBEOzsyRkQzQzdDLGdCQUFnQjtrQkFMNUIsU0FBUzsrQkFDRSxhQUFhOzZLQThKdkIsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQgIGRheWpzIGZyb20gXCJkYXlqc1wiO1xyXG5pbXBvcnQgXCJkYXlqcy9sb2NhbGUvZW5cIjtcclxuaW1wb3J0IHV0YyBmcm9tIFwiZGF5anMvcGx1Z2luL3V0Y1wiO1xyXG5pbXBvcnQgdGltZXpvbmUgZnJvbSBcImRheWpzL3BsdWdpbi90aW1lem9uZVwiO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuZGF5anMuZXh0ZW5kKHV0Yyk7XHJcbmRheWpzLmV4dGVuZCh0aW1lem9uZSk7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImxpYi1jbGFzc2ljXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9jbGFzc2ljLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2NsYXNzaWMuY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbGFzc2ljQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGRheWpzID0gZGF5anNcclxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBkYXRhT2JqZWN0OiBhbnkgPSBbeyBEZXNjcmlwdGlvbjogXCJDbGllbnRzXCIsIElzc3VlczogW10gfV07XHJcblxyXG4gIGlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgY29uc3QgaXNWYWxpZERhdGUgPSAgbSA+IHRoaXMuZGF5anMoKTsgICAgXHJcbiAgICByZXR1cm4gaXNWYWxpZERhdGUgPyAnaW52YWxpZC1kYXRlJyA6IGZhbHNlO1xyXG59XHJcbiAgZHVtbXlBcnJheTogYW55ID0gW107XHJcbiAgbm9GaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWFyY2hWYWx1ZTogYW55O1xyXG4gIHJlc3BvbnNlQXJyYXk6IGFueSA9IFtdO1xyXG4gIGdldENsaWVudExpc3Q6IGFueSA9IFtdO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsYXlvdXQ6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdsb2JhbFNlcnZpY2U6IEdsb2JhbFN0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgc2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLmZvckVhY2goKHNiKSA9PiBzYi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcbiAgLy8gQElucHV0KCkgZGF0YU9iamVjdDogYW55W10gPSBbXTtcclxuICBPcGVuZHJvcGRvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcGVybWlzc2lvbiA9IFtcclxuICAgIHtcclxuICAgICAgZ3JvdXA6IFwiU3VwZXIgQWRtaW5cIixcclxuICAgICAgZGVzY3JpcHRpb246IFwiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIFwiLFxyXG4gICAgfSxcclxuICAgIHsgZ3JvdXA6IFwiQWRtaW5cIiwgZGVzY3JpcHRpb246IFwiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIFwiIH0sXHJcbiAgICB7IGdyb3VwOiBcIlVzZXJcIiwgZGVzY3JpcHRpb246IFwiTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIFwiIH0sXHJcbiAgXTtcclxuXHJcbiAgc2hvd2Ryb3Bkb3duOiBhbnk7XHJcbiAgc2VsZWN0ZWRWYWx1ZXM6IHN0cmluZ1tdID0gW107XHJcbiAgc2VsZWN0ZWRWYWx1ZXNBcnJheTogYW55W10gPSBbXTtcclxuICBzZWxlY3RlZERhdGVSYW5nZTogYW55ID0ge307XHJcbiAgc2VsZWN0ZWRGaWx0ZXJzOiBhbnkgPSB7XHJcbiAgICBjbGllbnQ6IG51bGwsXHJcbiAgICBjbGllbnRzOiBbXSxcclxuICAgIHN0b3JlOiBudWxsLFxyXG4gICAgc3RvcmVzOiBbXSxcclxuICAgIGRhdGU6IG51bGwsXHJcbiAgfTtcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5nZXRDbGllbnRzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5nZXRDbGllbnRMaXN0ID0gcmVzPy5kYXRhPy5yZXN1bHQ7XHJcbiAgICAgICAgaWYgKFwiaGVhZGVyLWZpbHRlcnNcIiBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYoaGVhZGVyRmlsdGVycy5jbGllbnRzLmxlbmd0aCA+MCAmJiBoZWFkZXJGaWx0ZXJzLmRhdGU/LnN0YXJ0RGF0ZSl7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YU9iamVjdFswXS5Jc3N1ZXMgPSB0aGlzLmdldENsaWVudExpc3Q7XHJcbiAgICAgICAgICB0aGlzLnRvZ2dsZUNoZWNrYm94KFwiU2VsZWN0IEFsbFwiLCAwKTtcclxuICAgICAgICAgIHRoaXMuZHVtbXlBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSk7XHJcbiAgICAgICAgICB0aGlzLnJlc3BvbnNlQXJyYXkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YU9iamVjdCkpO1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXNzdWVzID0gIHRoaXMuZHVtbXlBcnJheVswXS5Jc3N1ZXMubWFwKFxyXG4gICAgICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uY2xpZW50SWQgXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudHMgPSBjdXJyZW50SXNzdWVzO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnQgPSAgaGVhZGVyRmlsdGVycy5jbGllbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLnN0b3JlID0gIGhlYWRlckZpbHRlcnMuc3RvcmU7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTp0aGlzLmRheWpzKCBoZWFkZXJGaWx0ZXJzLmRhdGUuc3RhcnREYXRlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCBoZWFkZXJGaWx0ZXJzLmRhdGUuZW5kRGF0ZSwgXCJZWVlZLU1NLUREXCIpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgIFxyXG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICAgICAgICBcImhlYWRlci1maWx0ZXJzXCIsXHJcbiAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZEZpbHRlcnMpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICAgICAgICAgIC8vIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFPYmplY3RbMF0uSXNzdWVzID0gdGhpcy5nZXRDbGllbnRMaXN0O1xyXG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUNoZWNrYm94KFwiU2VsZWN0IEFsbFwiLCAwKTtcclxuICAgICAgICAgICAgdGhpcy5kdW1teUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKTtcclxuICAgICAgICAgICAgdGhpcy5yZXNwb25zZUFycmF5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGFPYmplY3QpKTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudElzc3VlcyA9ICB0aGlzLmR1bW15QXJyYXlbMF0uSXNzdWVzLm1hcChcclxuICAgICAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmNsaWVudElkIFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnRzID0gY3VycmVudElzc3VlcztcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlcnMuY2xpZW50ID0gIGhlYWRlckZpbHRlcnMuY2xpZW50O1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5zdG9yZSA9ICBoZWFkZXJGaWx0ZXJzLnN0b3JlO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHZhciBkYXRldGltZSA9IHtcclxuICAgICAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgICAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gZGF0ZXRpbWU7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgICAgICAgIFwiaGVhZGVyLWZpbHRlcnNcIixcclxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycylcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLmRhdGFSYW5nZVZhbHVlLm5leHQodGhpcy5zZWxlY3RlZEZpbHRlcnMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuZGF0YU9iamVjdFswXS5Jc3N1ZXMgPSB0aGlzLmdldENsaWVudExpc3Q7XHJcbiAgICAgICAgICB0aGlzLnRvZ2dsZUNoZWNrYm94KFwiU2VsZWN0IEFsbFwiLCAwKTtcclxuICAgICAgICAgIHRoaXMuZHVtbXlBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSk7XHJcbiAgICAgICAgICB0aGlzLnJlc3BvbnNlQXJyYXkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YU9iamVjdCkpO1xyXG4gICAgICAgICAgY29uc3QgY3VycmVudElzc3VlcyA9ICB0aGlzLmR1bW15QXJyYXlbMF0uSXNzdWVzLm1hcChcclxuICAgICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5jbGllbnRJZCBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnRzID0gY3VycmVudElzc3VlcztcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmNsaWVudCA9ICBjdXJyZW50SXNzdWVzWzBdO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgICAgICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgdmFyIGRhdGV0aW1lID0ge1xyXG4gICAgICAgICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gZGF0ZXRpbWU7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcclxuICAgICAgICAgICAgXCJoZWFkZXItZmlsdGVyc1wiLFxyXG4gICAgICAgICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnNlbGVjdGVkRmlsdGVycylcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmdsb2JhbFNlcnZpY2UuZGF0YVJhbmdlVmFsdWUubmV4dCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHN1YnNjciA9IHRoaXMubGF5b3V0LmxheW91dENvbmZpZ1N1YmplY3RcclxuICAgICAgLmFzT2JzZXJ2YWJsZSgpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUucHVzaChzdWJzY3IpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Y2xpZW50cygpe1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldENsaWVudHMoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmdldENsaWVudExpc3QgPSByZXM/LmRhdGE/LnJlc3VsdDtcclxuICAgICAgICB0aGlzLnRvZ2dsZUNoZWNrYm94KFwiU2VsZWN0IEFsbFwiLCAwKTtcclxuICAgICAgICB0aGlzLmR1bW15QXJyYXkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YU9iamVjdCkpO1xyXG4gICAgICAgIHRoaXMucmVzcG9uc2VBcnJheSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhT2JqZWN0KSk7XHJcbiAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmNsaWNrXCIsIFtcIiRldmVudFwiXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KFwiLmRyb3Bkb3duMVwiKSkge1xyXG4gICAgICB0aGlzLk9wZW5kcm9wZG93biA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0YXJnZXQuY2xvc2VzdChcIi5kcm9wZG93bi1jb250ZW50XCIpKSB7XHJcbiAgICAgIHRoaXMuZGF0YU9iamVjdC5mb3JFYWNoKChpdGVtOiBhbnksIGk6IGFueSkgPT4ge1xyXG4gICAgICAgIGl0ZW0uaXNPcGVuID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlbmRyb3Bkb3duKGU6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnNvbGUubG9nKDY4Nyk7XHJcblxyXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuT3BlbmRyb3Bkb3duID0gIXRoaXMuT3BlbmRyb3Bkb3duO1xyXG4gIH1cclxuXHJcbiAgRHJvcGRvd24odmFsdWU6IGFueSwgaW5kZXg6IG51bWJlciwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5kYXRhT2JqZWN0LmZvckVhY2goKGl0ZW06IGFueSwgaTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpICE9PSBpbmRleCkge1xyXG4gICAgICAgIGl0ZW0uaXNPcGVuID0gZmFsc2U7IFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0YU9iamVjdFtpbmRleF0uaXNPcGVuID0gIXRoaXMuZGF0YU9iamVjdFtpbmRleF0uaXNPcGVuO1xyXG5cclxuICAgIC8vIGlmICh0aGlzLmRhdGFPYmplY3RbaW5kZXhdLmlzT3Blbikge1xyXG4gICAgLy8gICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuY2xpY2tPdXRzaWRlRHJvcGRvd25Db250ZW50LmJpbmQodGhpcywgaW5kZXgpKTtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5jbGlja091dHNpZGVEcm9wZG93bkNvbnRlbnQuYmluZCh0aGlzLCBpbmRleCkpO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgLy8gY2xpY2tPdXRzaWRlRHJvcGRvd25Db250ZW50KGluZGV4OiBudW1iZXIsIGV2ZW50OiBFdmVudCkge1xyXG4gIC8vICAgaWYgKCF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcclxuICAvLyAgICAgdGhpcy5kYXRhT2JqZWN0W2luZGV4XS5pc09wZW4gPSBmYWxzZTtcclxuICAvLyAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrT3V0c2lkZURyb3Bkb3duQ29udGVudC5iaW5kKHRoaXMsIGluZGV4KSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG4gIHNlYXJjaERhdGEoZXZlbnQ6IGFueSwgaTogYW55KSB7XHJcbiAgICBjb25zdCBmaWx0ZXJlZElzc3VlcyA9IHRoaXMuZHVtbXlBcnJheVtpXS5Jc3N1ZXMuZmlsdGVyKChpdGVtOiBhbnkpID0+XHJcbiAgICAgIG5ldyBSZWdFeHAoZXZlbnQudGFyZ2V0LnZhbHVlLCBcImlcIikudGVzdChpdGVtLmNsaWVudE5hbWUpIHx8IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXS5pbmNsdWRlcyhpdGVtLmNsaWVudE5hbWUpXHJcbiAgICApO1xyXG4gICAgdGhpcy5kYXRhT2JqZWN0W2ldLklzc3VlcyA9IGZpbHRlcmVkSXNzdWVzO1xyXG4gICAgaWYgKGZpbHRlcmVkSXNzdWVzLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLm5vRmlsdGVyID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm5vRmlsdGVyID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgdG9nZ2xlQ2hlY2tib3goaXNzdWU6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgY3VycmVudElzc3VlcyA9IHRoaXMuZGF0YU9iamVjdFtpbmRleF0uSXNzdWVzO1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gfHwgW107XHJcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF07IC8vIFJldHJpZXZlIHNlbGVjdGVkIHZhbHVlcyBhcnJheSBmb3IgdGhlIGN1cnJlbnQgZHJvcGRvd24gaW5kZXhcclxuXHJcbiAgICBpZiAoaXNzdWUgPT09IFwiU2VsZWN0IEFsbFwiKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRJc3N1ZXMgPSB0aGlzLmRhdGFPYmplY3RbaW5kZXhdLklzc3Vlcy5tYXAoXHJcbiAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5jbGllbnRJZFxyXG4gICAgICApO1xyXG4gICAgICBpZiAoc2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSBjdXJyZW50SXNzdWVzLmxlbmd0aCkge1xyXG4gICAgICAgIC8vIElmIGFsbCBpdGVtcyBhcmUgYWxyZWFkeSBzZWxlY3RlZCwgZGVzZWxlY3QgYWxsXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IFtdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIE90aGVyd2lzZSwgc2VsZWN0IGFsbCBpdGVtc1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPSBbLi4uY3VycmVudElzc3Vlc107XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRWYWx1ZXMuaW5jbHVkZXMoaXNzdWUpKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XSA9IHNlbGVjdGVkVmFsdWVzLmZpbHRlcihcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0gIT09IGlzc3VlXHJcbiAgICAgICAgKTsgLy8gRGVzZWxlY3QgdGhlIGluZGl2aWR1YWwgaXRlbSBpZiBhbHJlYWR5IHNlbGVjdGVkXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XS5wdXNoKGlzc3VlKTsgLy8gU2VsZWN0IHRoZSBpbmRpdmlkdWFsIGl0ZW0gaWYgbm90IGFscmVhZHkgc2VsZWN0ZWRcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFVwZGF0ZSBcIlNlbGVjdCBBbGxcIiBjaGVja2JveCBzdGF0dXMgYmFzZWQgb24gc2VsZWN0ZWQgdmFsdWVzXHJcbiAgICBjb25zdCBzZWxlY3RBbGxJZCA9IGBzZWxlY3RhbGwke2luZGV4fWA7XHJcbiAgICBjb25zdCBzZWxlY3RBbGxFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXHJcbiAgICAgIHNlbGVjdEFsbElkXHJcbiAgICApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBpZiAoc2VsZWN0QWxsRWxlbWVudCkge1xyXG4gICAgICBzZWxlY3RBbGxFbGVtZW50LmNoZWNrZWQgXHJcbiAgICAgIC8vPSBzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IGN1cnJlbnRJc3N1ZXMubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFVwZGF0ZSBjaGVja2JveGVzIGJhc2VkIG9uIHNlbGVjdGVkIHZhbHVlc1xyXG4gICAgY3VycmVudElzc3Vlcy5mb3JFYWNoKChpdGVtOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgaXNDaGVja2VkID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XS5pbmNsdWRlcyhpdGVtKTtcclxuICAgICAgY29uc3QgY2hlY2tib3hJZCA9IGBvcHRpb24ke2l0ZW19YDtcclxuICAgICAgY29uc3QgY2hlY2tib3hFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXHJcbiAgICAgICAgY2hlY2tib3hJZFxyXG4gICAgICApIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgIGlmIChjaGVja2JveEVsZW1lbnQpIHtcclxuICAgICAgICBjaGVja2JveEVsZW1lbnQuY2hlY2tlZCA9IGlzQ2hlY2tlZDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBSZXNldCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheSA9IFtdO1xyXG4gICAgdGhpcy5PcGVuZHJvcGRvd24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIEFwcGx5KCkge1xyXG4gICAgXHJcbiAgICB2YXIgc2VsZWN0ZWRWYWx1ZTogYW55ID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXTtcclxuICAgICAgY29uc3QgaXNzdWVzID0gdGhpcy5kdW1teUFycmF5W2ldLklzc3VlczsgLy8gY29uc3QgaXNzdWVzID0gdGhpcy5kYXRhT2JqZWN0W2ldLklzc3VlcztcclxuXHJcbiAgICAgIGlmIChzZWxlY3RlZFZhbHVlcykge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXSA9IHNlbGVjdGVkVmFsdWVzLm1hcCgoc2VsZWN0ZWRJZDogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBpc3N1ZSA9IGlzc3Vlcy5maW5kKFxyXG4gICAgICAgICAgICAoaXNzdWVJdGVtOiBhbnkpID0+IGlzc3VlSXRlbS5jbGllbnRJZCA9PT0gc2VsZWN0ZWRJZFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHNlbGVjdGVkVmFsdWUucHVzaChpc3N1ZSk7XHJcbiAgICAgICAgICByZXR1cm4gaXNzdWUgPyBpc3N1ZSA6IFwiXCI7IC8vIEdldCB0aGUgdGV4dCBjb3JyZXNwb25kaW5nIHRvIHRoZSBpZFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuT3BlbmRyb3Bkb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVzQXJyYXkuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGl0ZW0gPSBpdGVtLm1hcCgoZWxlOiBhbnkpID0+IGVsZS5jbGllbnRJZCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXNBcnJheVtpbmRleF0gPSBpdGVtO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlc3BvbnNlQXJyYXkuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGl0ZW0uSXNzdWVzID0gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XVxyXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFZhbHVlc0FycmF5W2luZGV4XVxyXG4gICAgICAgIDogW107XHJcbiAgICB9KTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2VBcnJheVswXS5Jc3N1ZXMpXHJcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5jbGllbnRzID0gdGhpcy5yZXNwb25zZUFycmF5WzBdLklzc3VlcztcclxuICAgIHRoaXMuZ2xvYmFsU2VydmljZS5kYXRhUmFuZ2VWYWx1ZS5uZXh0KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcmFuZ2VzOiBhbnkgPSB7XHJcbiAgICBcIlRvZGF5XCI6IFt0aGlzLmRheWpzKCksIHRoaXMuZGF5anMoKV0sXHJcbiAgICBcIlllc3RlcmRheVwiOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwiZGF5c1wiKSwgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwiZGF5c1wiKV0sXHJcbiAgICBcIlRoaXMgV2Vla1wiOiBbdGhpcy5kYXlqcygpLnN1YnRyYWN0KDYsIFwiZGF5c1wiKSwgZGF5anMoKV0sXHJcbiAgICBcIkxhc3QgV2Vla1wiOiBbXHJcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxNCwgXCJkYXlzXCIpLnN0YXJ0T2YoXCJkYXlzXCIpLFxyXG4gICAgICB0aGlzLmRheWpzKCkuc3VidHJhY3QoOCwgXCJkYXlzXCIpLmVuZE9mKFwiZGF5c1wiKSxcclxuICAgIF0sXHJcbiAgICBcIlRoaXMgTW9udGhcIjogW3RoaXMuZGF5anMoKS5zdGFydE9mKFwibW9udGhcIiksIHRoaXMuZGF5anMoKS5lbmRPZihcIm1vbnRoXCIpXSxcclxuICAgIFwiTGFzdCBNb250aFwiOiBbXHJcbiAgICAgIHRoaXMuZGF5anMoKS5zdWJ0cmFjdCgxLCBcIm1vbnRoXCIpLnN0YXJ0T2YoXCJtb250aFwiKSxcclxuICAgICAgdGhpcy5kYXlqcygpLnN1YnRyYWN0KDEsIFwibW9udGhcIikuZW5kT2YoXCJtb250aFwiKSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcbiAgb25TdGFydERhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9XHJcbiAgICAgICAgICBtID4gdGhpcy5kYXlqcygpIHx8IG0gPiB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZS5hZGQoOTAsIFwiZGF5c1wiKSk7XHJcbiAgICAgICAgcmV0dXJuIGlzVmFsaWREYXRlID8gXCJpbnZhbGlkLWRhdGVcIiA6IGZhbHNlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGF0ZWNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBcclxuICAgIGlmIChldmVudCAmJiBldmVudC5zdGFydERhdGUgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLmlzVmFsaWQoKSAmJlxyXG4gICAgICAgIHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkuaXNWYWxpZCgpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gZXZlbnQuc3RhcnREYXRlXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gZXZlbnQuZW5kRGF0ZVxyXG4gICAgICAgIHZhciBkYXRldGltZSA9IHtcclxuICAgICAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgICBlbmREYXRlOiB0aGlzLmRheWpzKGV2ZW50LmVuZERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgfTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gZGF0ZXRpbWU7XHJcbiAgICAgIH1cclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgXCJoZWFkZXItZmlsdGVyc1wiLFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWx0ZXJzKVxyXG4gICAgICApO1xyXG4gICAgfSAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGhlYWRlckZpbHRlcnM6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGUgPSB0aGlzLmRheWpzKGhlYWRlckZpbHRlcnMuZGF0ZT8uc3RhcnREYXRlLFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gdGhpcy5kYXlqcyhoZWFkZXJGaWx0ZXJzLmRhdGU/LmVuZERhdGUsXCJZWVlZLU1NLUREXCIpLmZvcm1hdChcIkRELU1NLVlZWVlcIik7XHJcbiAgICAgICAgICB0aGlzLmdsb2JhbFNlcnZpY2UuZGF0YVJhbmdlVmFsdWUubmV4dChoZWFkZXJGaWx0ZXJzKTtcclxuICAgIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICBjb25zdCBoZWFkZXJGaWx0ZXJzOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgLy8gICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICAvLyAgICk7XHJcbiAgICAvLyAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBoZWFkZXJGaWx0ZXJzLmRhdGU7XHJcbiAgICAvLyAgIGlmKGhlYWRlckZpbHRlcnMuZGF0ZT8uc3RhcnREYXRlJiZoZWFkZXJGaWx0ZXJzLmRhdGU/LmVuZERhdGUpe1xyXG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2UgPSBoZWFkZXJGaWx0ZXJzLmRhdGU7XHJcbiBcclxuICAgIC8vICAgfWVsc2V7XHJcbiAgICAvLyAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgIC8vICAgICAgIHN0YXJ0RGF0ZTogZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgLy8gICAgICAgZW5kRGF0ZTogZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpXHJcbiAgICAvLyAgICAgfVxyXG4gXHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicHktMyBkcm9wZG93bjEgY3Vyc29yLXBvaW50ZXJcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhT2JqZWN0OyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24gZm9ybS1zZWxlY3RcIiAoY2xpY2spPVwiRHJvcGRvd24oJ0NsaWVudHMnLGksJGV2ZW50KVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiXCI+e3sgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICE9PSBudWxsICYmIHNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/Lmxlbmd0aCAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8ubGVuZ3RoICsgJyAnICsgJ0NsaWVudHMnLnNwbGl0KCcgJykucG9wKCkgOiAnQ2xpZW50cycgfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJpdGVtLmlzT3BlblwiIGNsYXNzPVwiZHJvcGRvd24tY29udGVudCBwb3NpdGlvbi1hYnNvbHV0ZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcHQtMyBweC01XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cIlNlbGVjdCBBbGxcIiBpZD1cInNlbGVjdGFsbHt7aX19XCJcclxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkVmFsdWVzQXJyYXlbaV0/Lmxlbmd0aCA9PT0gaXRlbS5Jc3N1ZXMubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlQ2hlY2tib3goJ1NlbGVjdCBBbGwnLCBpKVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHB4LTNcIiBmb3I9XCJzZWxlY3RhbGx7e2l9fVwiPlxyXG4gICAgICAgICAgICAgICAgU2VsZWN0IEFsbFxyXG4gICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5IG10LTNcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG14LTJcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE3XCIgdmlld0JveD1cIjAgMCAxNiAxN1wiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNCAxNC41TDExLjEgMTEuNk0xMi42NjY3IDcuODMzMzNDMTIuNjY2NyAxMC43Nzg5IDEwLjI3ODkgMTMuMTY2NyA3LjMzMzMzIDEzLjE2NjdDNC4zODc4MSAxMy4xNjY3IDIgMTAuNzc4OSAyIDcuODMzMzNDMiA0Ljg4NzgxIDQuMzg3ODEgMi41IDcuMzMzMzMgMi41QzEwLjI3ODkgMi41IDEyLjY2NjcgNC44ODc4MSAxMi42NjY3IDcuODMzMzNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFZhbHVlXCIgKGlucHV0KT1cInNlYXJjaERhdGEoJGV2ZW50LGkpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHNlYXJjaGlucHV0IHBzLTE0IHB5LTIgIG10LTJcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXNzdWUgb2YgaXRlbS5Jc3N1ZXNcIiBjbGFzcz1cImZvcm0tY2hlY2sgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBweS0zIHB4LTVcIj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJjaGVja2JveFwiIFt2YWx1ZV09XCJpc3N1ZS5jbGllbnROYW1lXCIgaWQ9XCJvcHRpb257e2lzc3VlLmNsaWVudElkfX1cIlxyXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0ZWRWYWx1ZXNBcnJheVtpXT8uaW5jbHVkZXMoaXNzdWUuY2xpZW50SWQpXCIgKGNoYW5nZSk9XCJ0b2dnbGVDaGVja2JveChpc3N1ZS5jbGllbnRJZCxpKVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHB4LTMgY3Vyc29yLXBvaW50ZXJcIiBmb3I9XCJvcHRpb257e2lzc3VlLmNsaWVudElkfX1cIj5cclxuICAgICAgICAgICAgICAgIHt7IGlzc3VlLmNsaWVudE5hbWUgfX1cclxuICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgbWItM1wiICpuZ0lmPVwibm9GaWx0ZXJcIj4gTm8gZmlsdGVycyBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgIDwvc3Bhbj5cclxuICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgc3R5bGU9XCJtaW4td2lkdGg6IDI2MHB4ICFpbXBvcnRhbnQ7XCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZCBbZHJvcHNdPVwiJ2Rvd24nXCJcclxuICAgICAgICBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFtyYW5nZXNdPVwicmFuZ2VzXCIgW3Nob3dDdXN0b21SYW5nZUxhYmVsXT1cInRydWVcIiBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiXHJcbiAgICAgICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVJhbmdlXCIgIChzdGFydERhdGVDaGFuZ2VkKT1cIm9uU3RhcnREYXRlQ2hhbmdlKCRldmVudClcIiAgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiIFtyZWFkb25seV09XCJ0cnVlXCIgLz5cclxuPC9kaXY+XHJcblxyXG5cclxuPCEtLSA8aW5wdXQgY2xhc3M9XCJmeC1kYXRlLXJhbmdlIGZvcm0tY29udHJvbCBwcy0xNFwiIHR5cGU9XCJ0ZXh0XCIgbWF0SW5wdXQgbmd4RGF0ZXJhbmdlcGlja2VyTWQgXHJcbiAgICBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCJcclxuICAgIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgW29wZW5zXT1cIidyaWdodCdcIlxyXG4gICAgW2Fsd2F5c1Nob3dDYWxlbmRhcnNdPVwiZmFsc2VcIlxyXG4gICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiXHJcbiAgICBbc2hvd0NhbmNlbF09XCJ0cnVlXCJcclxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVwiXHJcbiAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgIChzZWxlY3RlZCk9XCJvbkRhdGVTZWxlY3QoJGV2ZW50KVwiXHJcbiAgICBuYW1lPVwiZGF0ZXJhbmdlXCIgLz4gLS0+XHJcblxyXG48ZGl2IGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cIkFwcGx5KClcIj5BcHBseTwvZGl2PiJdfQ==
@@ -1902,7 +1902,7 @@ class ClassicComponent {
1902
1902
  // }
1903
1903
  // }
1904
1904
  searchData(event, i) {
1905
- const filteredIssues = this.dummyArray[i].Issues.filter((item) => new RegExp(event.target.value, "i").test(item.clientName));
1905
+ const filteredIssues = this.dummyArray[i].Issues.filter((item) => new RegExp(event.target.value, "i").test(item.clientName) || this.selectedValuesArray[i].includes(item.clientName));
1906
1906
  this.dataObject[i].Issues = filteredIssues;
1907
1907
  if (filteredIssues.length) {
1908
1908
  this.noFilter = false;
@@ -1960,7 +1960,7 @@ class ClassicComponent {
1960
1960
  var selectedValue = [];
1961
1961
  for (let i = 0; i < this.selectedValuesArray.length; i++) {
1962
1962
  const selectedValues = this.selectedValuesArray[i];
1963
- const issues = this.dataObject[i].Issues;
1963
+ const issues = this.dummyArray[i].Issues; // const issues = this.dataObject[i].Issues;
1964
1964
  if (selectedValues) {
1965
1965
  this.selectedValuesArray[i] = selectedValues.map((selectedId) => {
1966
1966
  const issue = issues.find((issueItem) => issueItem.clientId === selectedId);
@@ -1979,6 +1979,7 @@ class ClassicComponent {
1979
1979
  ? this.selectedValuesArray[index]
1980
1980
  : [];
1981
1981
  });
1982
+ console.log(this.responseArray[0].Issues);
1982
1983
  this.selectedFilters.clients = this.responseArray[0].Issues;
1983
1984
  this.globalService.dataRangeValue.next(this.selectedFilters);
1984
1985
  this.cd.detectChanges();
@@ -3871,7 +3872,18 @@ class FiltersComponent {
3871
3872
  }
3872
3873
  searchData(event, i) {
3873
3874
  const searchTerm = event.target.value.trim(); // Trim whitespace
3874
- const filteredIssues = this.dummyArray[i].Issues.filter((item) => new RegExp(searchTerm, 'i').test(item.text));
3875
+ const filteredIssues = this.dummyArray[i].Issues.filter((item) => {
3876
+ let findChecked = this.dataObject[i].Issues.find((issue) => issue.text == item.text);
3877
+ if (findChecked) {
3878
+ if (findChecked.checked) {
3879
+ item.checked = findChecked.checked;
3880
+ }
3881
+ return new RegExp(searchTerm, 'i').test(item.text);
3882
+ }
3883
+ else {
3884
+ return new RegExp(searchTerm, 'i').test(item.text);
3885
+ }
3886
+ });
3875
3887
  this.dataObject[i].Issues = filteredIssues;
3876
3888
  if (filteredIssues.length) {
3877
3889
  this.noFilter = false;