qms-angular 1.0.78 → 1.0.82

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.
@@ -151,7 +151,7 @@ export class SelectOneDialog {
151
151
  }
152
152
  }
153
153
  getModuleFilteredOptions() {
154
- if (this.listChildrenSelectOne.length) {
154
+ if (this.listChildrenSelectOne.length && this.disabledList.length) {
155
155
  for (let index = 0; index < this.listChildrenSelectOne.length; index++) {
156
156
  const firstEl = this.listChildrenSelectOne[index];
157
157
  for (let j = 0; j < this.filteredOptions.length; j++) {
@@ -171,31 +171,45 @@ export class SelectOneDialog {
171
171
  return related ? related.itemName : undefined;
172
172
  }
173
173
  selectItemSearched(item) {
174
- var _a;
175
- if ((_a = this.treeConfig) === null || _a === void 0 ? void 0 : _a.selectOne) {
176
- this.disabledList = [];
177
- }
178
174
  // reset to root
179
175
  this.expandToChildNode = [''];
180
176
  this.checkedNodeList = [];
181
177
  let position = -1;
182
178
  let node;
183
179
  let typeId;
184
- position = this.treeData.findIndex(x => {
185
- return x.rootId === item.id;
186
- });
180
+ let treeNodeDup;
181
+ if (this.treeConfig.canHaveDupId) {
182
+ position = this.treeData.findIndex(x => {
183
+ return x.rootId === item.parentId && x.childId === item.id;
184
+ });
185
+ }
186
+ else {
187
+ position = this.treeData.findIndex(x => {
188
+ return x.rootId === item.id;
189
+ });
190
+ }
187
191
  typeId = item.itemType;
188
192
  if (position >= 0) {
189
193
  node = this.treeData[position];
190
194
  this.checkedNodeList.push({
191
195
  moduleId: this.moduleId,
192
- id: node.rootId,
193
- itemName: node.rootName || node.subName,
196
+ id: this.treeConfig.canHaveDupId ? node.childId : node.rootId,
197
+ itemName: this.treeConfig.canHaveDupId ? node.childName : node.rootName || node.subName,
194
198
  itemType: typeId,
195
199
  itemNumberId: item.itemNumberId,
196
- levelType: item.levelType
200
+ levelType: item.levelType,
201
+ parentId: node.rootId,
202
+ parentName: node.rootName
197
203
  });
198
204
  }
205
+ if (this.treeConfig.canHaveDupId) {
206
+ treeNodeDup = {
207
+ id: node.childId,
208
+ name: !!node.rootId ? node.subName : node.rootName,
209
+ children: [],
210
+ parentId: node.rootId
211
+ };
212
+ }
199
213
  const treeNode = {
200
214
  id: node.rootId,
201
215
  name: !!node.rootId ? node.subName : node.rootName,
@@ -203,15 +217,20 @@ export class SelectOneDialog {
203
217
  parentId: node.parentId
204
218
  };
205
219
  setTimeout(() => {
206
- this.dataTrees.toArray()[0].todoFolderSelection([treeNode]);
207
- this.expandAndScrollToNode(treeNode, node);
220
+ this.dataTrees.toArray()[0].todoFolderSelection([this.treeConfig.canHaveDupId ? treeNodeDup : treeNode]);
221
+ this.expandAndScrollToNode(this.treeConfig.canHaveDupId ? treeNodeDup : treeNode, node);
208
222
  }, 500);
209
223
  return;
210
224
  }
211
225
  expandAndScrollToNode(treeNode, node) {
212
226
  let parent;
213
227
  let parentList = [];
214
- parent = this.treeData.find(x => x.rootId === node.parentId);
228
+ if (this.treeConfig.canHaveDupId) {
229
+ parent = this.treeData.find(x => x.rootId === node.rootId && x.childId === node.childId);
230
+ }
231
+ else {
232
+ parent = this.treeData.find(x => x.rootId === node.parentId);
233
+ }
215
234
  if (parent) {
216
235
  parentList.push({
217
236
  id: parent.rootId,
@@ -220,24 +239,20 @@ export class SelectOneDialog {
220
239
  });
221
240
  parentList = this.getParentLineOfNode(parentList, parent);
222
241
  }
223
- if (parentList.length) {
224
- parentList.reverse().forEach(x => {
225
- this.focusEditItem(x);
226
- });
227
- }
228
- else {
229
- this.focusEditItem(treeNode);
230
- }
242
+ parentList.unshift(treeNode);
243
+ parentList.reverse().forEach(x => {
244
+ this.focusEditItem(x);
245
+ });
231
246
  }
232
247
  getParentLineOfNode(listParent, node) {
233
248
  let parent;
234
249
  parent = this.treeData.find(x => x.rootId === node.parentId);
235
250
  if (parent) {
236
- listParent = [...listParent, {
237
- id: parent.rootId,
238
- itemName: parent.rootName,
239
- parentId: parent.parentId
240
- }];
251
+ listParent.push({
252
+ id: parent.rootId,
253
+ itemName: parent.rootName,
254
+ parentId: parent.parentId
255
+ });
241
256
  this.getParentLineOfNode(listParent, parent);
242
257
  }
243
258
  return listParent;
@@ -375,7 +390,7 @@ export class SelectOneDialog {
375
390
  SelectOneDialog.decorators = [
376
391
  { type: Component, args: [{
377
392
  selector: 'qms-select-one',
378
- template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <span>{{ moduleName }}</span>\r\n </div>\r\n </div>\r\n\r\n <div\r\n id=\"qmslib_related_popup_search\"\r\n class=\"input__field\"\r\n (click)=\"showSearchResult()\"\r\n >\r\n <input\r\n #name\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n #autoCompleteInputSearch\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayRelated\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n class=\"related-viewport\"\r\n *ngIf=\"filteredOptions.length\"\r\n >\r\n <div class=\"search__module-result\" *ngIf=\"filteredOptions.length\">\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions()\"\r\n [value]=\"option\"\r\n (click)=\"selectItemSearched(option)\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(option)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"caption\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(searchItemResult) ? option.parentName : ''\r\n }}\"\r\n mode=\"dark\"\r\n *ngIf=\"getParentName(option)\"\r\n >\r\n <span #searchItemResult class=\"search__result__parent-name\">\r\n {{ option.parentName }}\r\n </span>\r\n </div>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-containe\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar col-12 qmslib_related_popup_content\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\"\r\n >\r\n <mat-expansion-panel\r\n hideToggle\r\n id=\"qmslib_related_popup_common_001\"\r\n [expanded]=\"isCommonExpanded\"\r\n (opened)=\"isCommonExpanded = true\"\r\n (closed)=\"isCommonExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData\"\r\n [treeConfig]=\"treeConfig\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"false\"\r\n [expandToChildNode]=\"expandToChildNode\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)\r\n }}</span>\r\n <mat-icon (click)=\"removeCheckedNodeList()\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n </div> -->\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n",
393
+ template: "<div id=\"qmslib_related_popup\" class=\"qmslib__related__popup__container\">\r\n <div id=\"qmslib_related_popup_header\">\r\n <span mat-icon-button class=\"button__close\" (click)=\"onCloseClick()\">\r\n <mat-icon mat-icon>close</mat-icon>\r\n </span>\r\n <div id=\"qmslib_related_popup_header_001\" mat-dialog-content>\r\n <span>{{ moduleName }}</span>\r\n </div>\r\n </div>\r\n\r\n <div\r\n id=\"qmslib_related_popup_search\"\r\n class=\"input__field\"\r\n (click)=\"showSearchResult()\"\r\n >\r\n <input\r\n #name\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\r\n #autoCompleteInputSearch\r\n />\r\n <mat-icon>search</mat-icon>\r\n </div>\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n [displayWith]=\"displayRelated\"\r\n class=\"mat-autocomplete_related-viewport\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n class=\"related-viewport\"\r\n *ngIf=\"filteredOptions.length\"\r\n >\r\n <div class=\"search__module-result\" *ngIf=\"filteredOptions.length\">\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions()\"\r\n [value]=\"option\"\r\n (click)=\"selectItemSearched(option)\"\r\n >\r\n <qms-list-item type=\"image-square\">\r\n <mat-icon\r\n leading-icon\r\n type=\"image-square\"\r\n [svgIcon]=\"getNodeIcon(option)\"\r\n ></mat-icon>\r\n <div qms-list-header>\r\n <div\r\n qms-line\r\n type=\"caption\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(searchItemResult) ? option.parentName : ''\r\n }}\"\r\n mode=\"dark\"\r\n *ngIf=\"getParentName(option)\"\r\n >\r\n <span #searchItemResult class=\"search__result__parent-name\">\r\n {{ option.parentName }}\r\n </span>\r\n </div>\r\n <div qms-line type=\"subtitle\" class=\"search__option-name\">\r\n {{ option.itemName }}\r\n </div>\r\n <div\r\n class=\"caption\"\r\n *ngIf=\"option.breadcumbs && option.breadcumbs.length\"\r\n >\r\n <qms-breadcrumb\r\n class=\"breadcrumb-containe\"\r\n type=\"table\"\r\n numDisplayItem=\"1\"\r\n [nodes]=\"option.breadcumbs\"\r\n >\r\n </qms-breadcrumb>\r\n </div>\r\n </div>\r\n <div qms-line color=\"default-subtitle\" *ngIf=\"getItemId(option)\">\r\n <span class=\"material-icons-outlined search__description-icon\">\r\n local_offer\r\n </span>\r\n {{ getItemId(option) }}\r\n </div>\r\n </qms-list-item>\r\n </mat-option>\r\n </div>\r\n </cdk-virtual-scroll-viewport>\r\n </mat-autocomplete>\r\n\r\n <div class=\"row\">\r\n <div\r\n class=\"qms-scrollbar col-12 qmslib_related_popup_content panel__content_item\"\r\n >\r\n <mat-expansion-panel\r\n hideToggle\r\n id=\"qmslib_related_popup_common_001\"\r\n [expanded]=\"isCommonExpanded\"\r\n (opened)=\"isCommonExpanded = true\"\r\n (closed)=\"isCommonExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree\r\n [treeData]=\"treeData\"\r\n [treeConfig]=\"treeConfig\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n [expandOnTitleClick]=\"false\"\r\n [expandToChildNode]=\"expandToChildNode\"\r\n ></qms-tree>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"panel__item qms-scrollbar\">\r\n <div class=\"related__item__inline\" *ngFor=\"let item of checkedNodeList\">\r\n <button\r\n *ngIf=\"item.itemName\"\r\n mat-button\r\n class=\"related__item__content\"\r\n qms-tool-tip=\"{{\r\n isEllipsisActive(itemName) ? getItemChipName(item) : ''\r\n }}\"\r\n mode=\"dark\"\r\n >\r\n <span class=\"related__item__content_name\" #itemName>{{\r\n getItemChipName(item)\r\n }}</span>\r\n <mat-icon (click)=\"removeCheckedNodeList()\">cancel</mat-icon>\r\n </button>\r\n </div>\r\n </div> -->\r\n\r\n <div class=\"line__divider\"></div>\r\n\r\n <div class=\"confirm__button__groups\">\r\n <button\r\n *ngIf=\"!checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 7px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }}\r\n </button>\r\n <button\r\n *ngIf=\"checkedNodeList.length\"\r\n qms-btn\r\n style=\"margin-top: 0px\"\r\n (click)=\"onAddClick()\"\r\n >\r\n {{ LANG.ADD }} ({{ checkedNodeList.length }})\r\n </button>\r\n <button\r\n qms-btn-text\r\n [ngStyle]=\"{ 'margin-top': checkedNodeList.length ? '0px' : '7px' }\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n {{ LANG.CANCEL }}\r\n </button>\r\n </div>\r\n</div>\r\n",
379
394
  encapsulation: ViewEncapsulation.None,
380
395
  styles: [".qms-scrollbar::-webkit-scrollbar{width:12px}.qms-scrollbar::-webkit-scrollbar-track{background:rgba(0,0,0,.12);background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}.qms-scrollbar::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms-scrollbar.none-scroll-bg::-webkit-scrollbar-track{background:transparent;background-clip:content-box}.qms__popup .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qms__danger button{border:none;color:#fff;padding:0;text-align:center;text-decoration:none;display:inline-block;cursor:pointer;height:20px;width:20px;font-family:Open Sans;font-size:12px;font-weight:600;font-style:normal;line-height:16px}.qms__danger .red{background-color:#9e360f;margin-left:10px}.qms__danger .yellow{background-color:#e4cf53;margin-left:10px;color:#323232}.qms__danger .green{background-color:#00804c;margin-left:10px}.confirm__button__groups{margin-top:11px}.confirm__button__groups button{min-height:36px;width:auto;font-family:Open Sans;font-weight:500;font-size:14px;letter-spacing:1px;line-height:16px;padding-left:15px;padding-right:15px;margin-right:5px;float:right}.confirm__button__groups .confirm{background:#f8f9f9}.confirm__button__groups .confirm:hover{background:#001983;color:#fff}.confirm__button__groups .confirm:disabled{cursor:not-allowed}.confirm__button__groups .cancel{background:#f8f9f9}.confirm__button__groups .cancel:hover{background:#001983;color:#fff}.qmslib__related__popup__container .input__field{display:flex;align-items:center}.qmslib__related__popup__container .input__field input{width:100%;padding:10px;outline:none;border:none;background:#eee}.qmslib__related__popup__container .input__field .mat-icon{margin-left:-30px;cursor:pointer;vertical-align:middle}.qmslib__related__popup__container .line__divider{border-bottom:1px solid #ccc;height:1px;margin-top:10px;min-width:300px;max-width:100%}.qmslib__related__popup__container .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qmslib__related__popup__container .panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .panel-tree .mat-expansion-panel-body{padding:0 12px 12px}.qmslib__related__popup__container .mat-expansion-panel-header{height:30px;font-size:12px;letter-spacing:1px;font-family:Raleway;font-weight:600;padding:0}.qmslib__related__popup__container .mat-expansion-panel-header .mat-expansion-panel-header-title{align-items:center;margin-left:12px}.qmslib__related__popup__container .mat-expansion-panel-header .related_popup_toggle-btn{width:1.5rem;height:1.5rem;line-height:1.5rem}.qmslib__related__popup__container .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:none}.qmslib__related__popup__container .panel__item{height:100px;margin-top:12px;overflow-x:hidden;overflow-y:auto;padding-right:5px;width:100%;max-width:100%;display:flex;flex-wrap:wrap;align-content:flex-start}.qmslib__related__popup__container .panel__item .related__item__inline{max-width:100%}.qmslib__related__popup__container .panel__item .related__item__content{height:32px;line-height:32px;background-color:#e5e5e5;max-width:100%;margin-bottom:5px;margin-left:2.5px;margin-right:2.5px}.qmslib__related__popup__container .panel__item .related__item__content .mat-icon{color:#8e8e8e;font-size:24px}.qmslib__related__popup__container .panel__item .related__item__content span.related__item__content_name{display:inline-block;min-width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}cdk-virtual-scroll-viewport{overflow-x:hidden}cdk-virtual-scroll-viewport .search__module-result{margin:1.5rem;padding:0 0 .5rem}cdk-virtual-scroll-viewport .search__module-result .search__module-title{font-size:14px;font-weight:600}cdk-virtual-scroll-viewport .search__module-result .search__option{height:auto;line-height:normal;padding:8px 0;border-bottom:1px solid #e0e0e0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item.mat-2-line.image-item{height:auto}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content{margin:0;border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square{width:2.5rem;height:100%;background:transparent;align-self:center;margin-right:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .wrap-image.image-square img{width:24px;height:24px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .material-icons-outlined.leading-icon,cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content mat-icon.leading-icon{padding:4px 0 4px 4px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .subtitle{font-weight:400}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption{overflow:hidden;line-height:normal;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0;margin:0}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .caption span.search__result__parent-name{display:inline-block;width:auto;width:calc(100% - 13px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .default-subtitle{color:rgba(0,0,0,.38)}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .search__description-icon{margin-right:0;width:12px;height:12px;font-size:12px}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .qms-list-text{border-bottom:none}cdk-virtual-scroll-viewport .search__module-result .search__option .qms-list-item-content .breadcrumb-containe .qms-breadcrumb-item .mat-icon{font-size:16px!important;padding-bottom:1px}cdk-virtual-scroll-viewport .search__module-result svg{display:block}#qmslib_related_popup_header_001{margin-bottom:20px;padding:0;font-weight:600;font-family:Raleway}.padding-5{padding:5px}.mat-autocomplete_related-viewport{height:100%;max-height:100%!important}.mat-autocomplete_related-viewport .cdk-virtual-scroll-content-wrapper{width:100%}.mat-autocomplete_related-viewport .related-viewport{min-height:10.25rem}"]
381
396
  },] }
@@ -395,4 +410,4 @@ SelectOneDialog.propDecorators = {
395
410
  autoComplete: [{ type: ViewChild, args: ['autoCompleteInputSearch', { read: MatAutocompleteTrigger, static: true },] }],
396
411
  onMessage: [{ type: HostListener, args: ['window:message', ['$event'],] }]
397
412
  };
398
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0LW9uZS9zZWxlY3Qtb25lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFhLFNBQVMsRUFBRSxpQkFBaUIsRUFBK0IsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2hLLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx5QkFB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ImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgQWZ0ZXJWaWV3Q2hlY2tlZCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRTVNJY29uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vYXBwLWljb24vaWNvbi1yZWdpc3RyeS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi9jb21tb24vZGF0YS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBEb2N1bWVudE5vZGVUeXBlIH0gZnJvbSAnLi9jb21tb24vZG9jdW1lbnQtZm9sZGVyLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IE1vZHVsZVR5cGUgfSBmcm9tICcuL2NvbW1vbi9tb2R1bGUtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgU2hvd0hpZGVTZWFyY2hSZXN1bHRDb25zdCB9IGZyb20gJy4vY29tbW9uL3Nob3ctaGlkZS1zZWFyY2gtcmVzdWx0LmNvbnN0JztcclxuaW1wb3J0IHsgU2VsZWN0T25lUG9wdXBEYXRhIH0gZnJvbSAnLi9jb21tb24vc2VsZWN0b25lLXBvcHVwLWRhdGEubW9kZWwnO1xyXG5pbXBvcnQgeyBJU2VsZWN0T25lSXRlbSB9IGZyb20gJy4vY29tbW9uL3NlbGVjdC1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0ZWROb2RlIH0gZnJvbSAnLi9jb21tb24vc2VsZWN0ZWQtbm9kZS5tb2RlbCc7XHJcbmltcG9ydCB7IFFNU1NlbGVjdE9uZUdsb2JhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2Uvc2VsZWN0LW9uZS1nbG9iYWwuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBUcmVlQ29uZmlnIH0gZnJvbSAnLi4vdHJlZS9tb2RlbC90cmVlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFRyZWVGbGF0Tm9kZSB9IGZyb20gJy4uL3RyZWUvbW9kZWwvdHJlZS1mbGF0LW5vZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4uL3RyZWUvbW9kZWwvdHJlZS1ub2RlLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU1vZGVsIH0gZnJvbSAnLi4vdHJlZS9tb2RlbC90cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZUNvbXBvbmVudCB9IGZyb20gJy4uL3RyZWUvdHJlZS5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncW1zLXNlbGVjdC1vbmUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1vbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LW9uZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0T25lRGlhbG9nIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQge1xyXG4gICAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgTEFORzogYW55O1xyXG4gICAgbW9kdWxlSWQgPSAwO1xyXG4gICAgbW9kdWxlTmFtZSA9ICcnO1xyXG4gICAgdHJlZURhdGE6IEFycmF5PFRyZWVNb2RlbD4gPSBbXTtcclxuICAgIHRyZWVDb25maWc6IFRyZWVDb25maWc7XHJcblxyXG4gICAgY2hlY2tlZE5vZGVMaXN0OiBBcnJheTxTZWxlY3RlZE5vZGU+ID0gW107XHJcbiAgICBzZWxlY3RlZE5vZGU6IEFycmF5PFNlbGVjdGVkTm9kZT4gPSBbXTtcclxuICAgIHNlbGVjdGVkRGF0YTogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG5cclxuICAgIG1vZHVsZSA9IE1vZHVsZVR5cGU7XHJcbiAgICBkYXRhVHlwZSA9IERhdGFUeXBlO1xyXG4gICAgaXRlbVR5cGUgPSAwO1xyXG4gICAgc2VsZWN0ZWRSaXNrRGF0YTogYW55ID0gW107XHJcbiAgICBkaXNhYmxlZExpc3Q6IGFueSA9IFtdO1xyXG4gICAgZXhwYW5kVG9DaGlsZE5vZGU6IGFueSA9IFtdO1xyXG5cclxuICAgIGlzQ29tbW9uRXhwYW5kZWQgPSB0cnVlO1xyXG5cclxuICAgIG15Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICAgZmlsdGVyZWRPcHRpb25zOiBJU2VsZWN0T25lSXRlbVtdID0gW107XHJcbiAgICBpc0lucHV0VmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgICBzZWxlY3RlZEZvbGRlcjogVHJlZUZsYXROb2RlID0gbnVsbDtcclxuICAgIGxpc3RDaGlsZHJlblNlbGVjdE9uZTogYW55ID0gW107XHJcblxyXG4gICAgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBvbkV4cGFuZEZvbGRlciA9IG5ldyBFdmVudEVtaXR0ZXI8SVNlbGVjdE9uZUl0ZW0+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihUcmVlQ29tcG9uZW50LCB7fSkgZGF0YVRyZWVzOiBRdWVyeUxpc3Q8VHJlZUNvbXBvbmVudD47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnYXV0b0NvbXBsZXRlSW5wdXRTZWFyY2gnLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgYXV0b0NvbXBsZXRlOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNlbGVjdE9uZURpYWxvZz4sXHJcbiAgICAgICAgcHVibGljIGdsb2JhbFNlcnZpY2U6IFFNU1NlbGVjdE9uZUdsb2JhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBpY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSxcclxuICAgICAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgICAgIHByaXZhdGUgYXBwSWNvblNlcnZpY2U6IFFNU0ljb25SZWdpc3RyeVNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBTZWxlY3RPbmVQb3B1cERhdGFcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMubW9kdWxlSWQgPSBkYXRhLm1vZHVsZUlkO1xyXG4gICAgICAgIHRoaXMubW9kdWxlTmFtZSA9IGRhdGEubW9kdWxlTmFtZTtcclxuICAgICAgICB0aGlzLnRyZWVEYXRhID0gZGF0YS50cmVlRGF0YTtcclxuICAgICAgICB0aGlzLnRyZWVDb25maWcgPSBkYXRhLnRyZWVDb25maWc7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJpc2tEYXRhID0gZGF0YT8uc2VsZWN0ZWROb2RlIHx8IFtdO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWRMaXN0ID0gZGF0YS5kaXNhYmxlZExpc3QgfHwgW107XHJcbiAgICAgICAgdGhpcy5leHBhbmRUb0NoaWxkTm9kZSA9IGRhdGEuZXhwYW5kVG9DaGlsZE5vZGU7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJQcm9jZXNzSWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJQcm9jZXNzQXJlYUljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRG9jdW1lbnRJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlckZvbGRlckljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRGV2aWF0aW9uSWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJDaGVja2xpc3RJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlclJpc2tJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZXRTZWFyY2hSZWxhdGVkKFtdKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRm9sZGVyID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bWVzc2FnZScsIFsnJGV2ZW50J10pXHJcbiAgICBvbk1lc3NhZ2UoZXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gU2hvd0hpZGVTZWFyY2hSZXN1bHRDb25zdC5ISURFX1NFQVJDSF9SRVNVTFQpIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGUuY2xvc2VQYW5lbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXRMYW5ndWFnZVN1YmplY3QkLnBpcGUoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLnNlYXJjaFJlbGF0ZWQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHJlcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLm15Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwMCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNJbnB1dFZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5vblNlYXJjaFJlbGF0ZWQodmFsKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5pdGVtVHlwZSA9IHRoaXMuZ2V0RGF0YVR5cGVJZCh0aGlzLm1vZHVsZUlkKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyZWRPcHRpb25zICYmIHRoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZS5vcGVuUGFuZWwoKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRSZXN1bHRIZWlnaHQoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLmNsb3NlUGFuZWwoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0YVR5cGVJZChtb2R1bGVJZDogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1UeXBlO1xyXG4gICAgICAgIHN3aXRjaCAobW9kdWxlSWQpIHtcclxuICAgICAgICAgICAgY2FzZSBNb2R1bGVUeXBlLmRvY3VtZW50UHJvY2VzczpcclxuICAgICAgICAgICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5wcm9jZXNzO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgTW9kdWxlVHlwZS5kZXZpYXRpb246XHJcbiAgICAgICAgICAgICAgICBpdGVtVHlwZSA9IHRoaXMuZGF0YVR5cGUuZGV2aWF0aW9uO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgTW9kdWxlVHlwZS5jaGVja2xpc3Q6XHJcbiAgICAgICAgICAgICAgICBpdGVtVHlwZSA9IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0O1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgTW9kdWxlVHlwZS5yaXNrOlxyXG4gICAgICAgICAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLnJpc2s7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5kb2N1bWVudDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbVR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UmVzdWx0SGVpZ2h0KGFycj86IElTZWxlY3RPbmVJdGVtW10pIHtcclxuICAgICAgICBsZXQgbWF4SGVpZ2h0ID0gNDg0O1xyXG4gICAgICAgIGNvbnN0IHBvcHVwX2NvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdxbXNsaWJfcmVsYXRlZF9wb3B1cF9jb250ZW50JylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgbGluZV9fZGl2aWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmVfX2RpdmlkZXInKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAocG9wdXBfY29udGVudCAmJiBsaW5lX19kaXZpZGVyKSB7XHJcbiAgICAgICAgICAgIG1heEhlaWdodCA9IHRoaXMuZ2V0T2Zmc2V0SGVpZ2h0KHBvcHVwX2NvbnRlbnQsIHRydWUpICsgdGhpcy5nZXRPZmZzZXRIZWlnaHQobGluZV9fZGl2aWRlciwgdHJ1ZSkgKiAyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY29udGVudFJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2Nkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXInKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBjb25zdCB2aWV3cmVwb3J0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3JlbGF0ZWQtdmlld3BvcnQnKVswXSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKHZpZXdyZXBvcnRzKSB7XHJcbiAgICAgICAgICAgIGlmIChjb250ZW50UmVzdWx0Lm9mZnNldEhlaWdodCA8PSBtYXhIZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke2NvbnRlbnRSZXN1bHQub2Zmc2V0SGVpZ2h0fXB4YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWFyY2hSZWxhdGVkKF92YWw6IGFueSkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gW107XHJcbiAgICAgICAgaWYgKHR5cGVvZiAoX3ZhbCkgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXlDb250cm9sLnNldFZhbHVlKCcnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIChfdmFsKSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKCEhX3ZhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KF92YWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldE1vZHVsZUZpbHRlcmVkT3B0aW9ucygpIHtcclxuICAgICAgICBpZiAodGhpcy5saXN0Q2hpbGRyZW5TZWxlY3RPbmUubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmxpc3RDaGlsZHJlblNlbGVjdE9uZS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0RWwgPSB0aGlzLmxpc3RDaGlsZHJlblNlbGVjdE9uZVtpbmRleF07XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2Vjb25kRWwgPSB0aGlzLmZpbHRlcmVkT3B0aW9uc1tqXTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RFbC5pZCA9PT0gc2Vjb25kRWwuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMuc3BsaWNlKGosIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRPcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHNob3dTZWFyY2hSZXN1bHQoKSB7XHJcbiAgICAgICAgdGhpcy5hdXRvQ29tcGxldGUub3BlblBhbmVsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzcGxheVJlbGF0ZWQocmVsYXRlZD86IElTZWxlY3RPbmVJdGVtKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gcmVsYXRlZCA/IHJlbGF0ZWQuaXRlbU5hbWUgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0SXRlbVNlYXJjaGVkKGl0ZW06IElTZWxlY3RPbmVJdGVtKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZz8uc2VsZWN0T25lKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRMaXN0ID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHJlc2V0IHRvIHJvb3RcclxuICAgICAgICB0aGlzLmV4cGFuZFRvQ2hpbGROb2RlID0gWycnXTtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFtdO1xyXG5cclxuICAgICAgICBsZXQgcG9zaXRpb24gPSAtMTtcclxuICAgICAgICBsZXQgbm9kZTogYW55O1xyXG4gICAgICAgIGxldCB0eXBlSWQ6IG51bWJlcjtcclxuXHJcbiAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHgucm9vdElkID09PSBpdGVtLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHR5cGVJZCA9IGl0ZW0uaXRlbVR5cGU7XHJcblxyXG4gICAgICAgIGlmIChwb3NpdGlvbiA+PSAwKSB7XHJcbiAgICAgICAgICAgIG5vZGUgPSB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tlZE5vZGVMaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgICAgICBpZDogbm9kZS5yb290SWQsXHJcbiAgICAgICAgICAgICAgICBpdGVtTmFtZTogbm9kZS5yb290TmFtZSB8fCBub2RlLnN1Yk5hbWUsXHJcbiAgICAgICAgICAgICAgICBpdGVtVHlwZTogdHlwZUlkLFxyXG4gICAgICAgICAgICAgICAgaXRlbU51bWJlcklkOiBpdGVtLml0ZW1OdW1iZXJJZCxcclxuICAgICAgICAgICAgICAgIGxldmVsVHlwZTogaXRlbS5sZXZlbFR5cGVcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0cmVlTm9kZSA9IHtcclxuICAgICAgICAgICAgaWQ6IG5vZGUucm9vdElkLFxyXG4gICAgICAgICAgICBuYW1lOiAhIW5vZGUucm9vdElkID8gbm9kZS5zdWJOYW1lIDogbm9kZS5yb290TmFtZSxcclxuICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgICBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZFxyXG4gICAgICAgIH07XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS50b2RvRm9sZGVyU2VsZWN0aW9uKFt0cmVlTm9kZV0pO1xyXG4gICAgICAgICAgICB0aGlzLmV4cGFuZEFuZFNjcm9sbFRvTm9kZSh0cmVlTm9kZSwgbm9kZSk7XHJcbiAgICAgICAgfSwgNTAwKTtcclxuXHJcblxyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBleHBhbmRBbmRTY3JvbGxUb05vZGUodHJlZU5vZGU6IFRyZWVOb2RlLCBub2RlOiBUcmVlTW9kZWwpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIGxldCBwYXJlbnRMaXN0ID0gW107XHJcbiAgICAgICAgcGFyZW50ID0gdGhpcy50cmVlRGF0YS5maW5kKHggPT4geC5yb290SWQgPT09IG5vZGUucGFyZW50SWQpO1xyXG4gICAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICAgICAgcGFyZW50TGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiBwYXJlbnQucm9vdElkLFxyXG4gICAgICAgICAgICAgICAgaXRlbU5hbWU6IHBhcmVudC5yb290TmFtZSxcclxuICAgICAgICAgICAgICAgIHBhcmVudElkOiBwYXJlbnQucGFyZW50SWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHBhcmVudExpc3QgPSB0aGlzLmdldFBhcmVudExpbmVPZk5vZGUocGFyZW50TGlzdCwgcGFyZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHBhcmVudExpc3QubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHBhcmVudExpc3QucmV2ZXJzZSgpLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzRWRpdEl0ZW0oeCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNFZGl0SXRlbSh0cmVlTm9kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldFBhcmVudExpbmVPZk5vZGUobGlzdFBhcmVudCwgbm9kZTogVHJlZU1vZGVsKSB7XHJcbiAgICAgICAgbGV0IHBhcmVudDtcclxuICAgICAgICBwYXJlbnQgPSB0aGlzLnRyZWVEYXRhLmZpbmQoeCA9PiB4LnJvb3RJZCA9PT0gbm9kZS5wYXJlbnRJZCk7XHJcbiAgICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgICAgICBsaXN0UGFyZW50ID0gWy4uLmxpc3RQYXJlbnQsIHtcclxuICAgICAgICAgICAgICAgIGlkOiBwYXJlbnQucm9vdElkLFxyXG4gICAgICAgICAgICAgICAgaXRlbU5hbWU6IHBhcmVudC5yb290TmFtZSxcclxuICAgICAgICAgICAgICAgIHBhcmVudElkOiBwYXJlbnQucGFyZW50SWRcclxuICAgICAgICAgICAgfV07XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UGFyZW50TGluZU9mTm9kZShsaXN0UGFyZW50LCBwYXJlbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbGlzdFBhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICBmb2N1c0VkaXRJdGVtKHNlbGVjdGVkT3B0aW9uKSB7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS5nZXROb2RlQnlJZEFuZFBhcmVudElkKHNlbGVjdGVkT3B0aW9uLmlkLCBzZWxlY3RlZE9wdGlvbi5wYXJlbnRJZCk7XHJcblxyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS5leHBhbmROb2RlKG5vZGUpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYF8ke25vZGUucGFyZW50SWQgPyBub2RlLnBhcmVudElkLnRvTG93ZXJDYXNlKCkgOiAnJ31fJHtub2RlLmlkLnRvTG93ZXJDYXNlKCl9XyR7bm9kZS5sZXZlbH1gKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZvbGRlciA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH07XHJcblxyXG4gICAgb25BZGRDbGljaygpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRm9sZGVyID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmNoZWNrZWROb2RlTGlzdCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0T2Zmc2V0SGVpZ2h0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBpbmNsdWRlTWFyZ2luOiBib29sZWFuKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgZWxtSGVpZ2h0ID0gMCwgZWxtTWFyZ2luID0gMDtcclxuXHJcbiAgICAgICAgZWxtSGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgaWYgKGluY2x1ZGVNYXJnaW4pIHtcclxuICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcclxuICAgICAgICAgICAgZWxtTWFyZ2luID0gcGFyc2VGbG9hdChzdHlsZS5tYXJnaW5Ub3AucmVwbGFjZSgncHgnLCAnJykpICsgcGFyc2VGbG9hdChzdHlsZS5tYXJnaW5Cb3R0b20ucmVwbGFjZSgncHgnLCAnJykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIChlbG1IZWlnaHQgKyBlbG1NYXJnaW4pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1DaGlwTmFtZShpdGVtOiBTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICBpZiAoaXRlbS5pdGVtVHlwZSA9PT0gRGF0YVR5cGUuY2hlY2tsaXN0IHx8IGl0ZW0uaXRlbVR5cGUgPT09IERhdGFUeXBlLmRldmlhdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gKGl0ZW0ucGFyZW50TmFtZSAmJiBpdGVtLml0ZW1OYW1lICE9PSBpdGVtLnBhcmVudE5hbWUpID8gYCR7aXRlbS5wYXJlbnROYW1lfS8ke2l0ZW0uaXRlbU5hbWV9YCA6IGl0ZW0uaXRlbU5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtLml0ZW1OYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRWxsaXBzaXNBY3RpdmUoZTogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZSA/IChlLmNsaWVudFdpZHRoIDwgZS5zY3JvbGxXaWR0aCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXROb2RlSWNvbihpdGVtOiBJU2VsZWN0T25lSXRlbSkge1xyXG4gICAgICAgIHN3aXRjaCAoaXRlbS5pdGVtVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIERhdGFUeXBlLmZvbGRlcjoge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChpdGVtLmxldmVsVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5EZXBhcnRtZW50Rm9sZGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2RlcGFydG1lbnRfZm9sZGVyX291dGxpbmVkJztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuUmVnaW9uYWxGb2xkZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAncmVnaW9uYWxfZm9sZGVyX291dGxpbmVkJztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuVG9wRm9sZGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2VudGVycHJpc2VfZm9sZGVyX291dGxpbmVkJztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRm9sZGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2xvY2FsX2ZvbGRlcl9vdXRsaW5lZCc7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdmb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgRGF0YVR5cGUuZG9jdW1lbnQ6IHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5sZXZlbFR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRGVwYXJ0bWVudEZvbGRlcjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9kZXBhcnRtZW50JztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuUmVnaW9uYWxGb2xkZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfcmVnaW9uYWwnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5Ub3BGb2xkZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfZW50ZXJwcmlzZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLkZvbGRlcjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9sb2NhbCc7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudCc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSBEYXRhVHlwZS5hcmVhOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdwcm9jZXNzX2FyZWFfb3V0bGluZWQnO1xyXG4gICAgICAgICAgICBjYXNlIERhdGFUeXBlLnByb2Nlc3M6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3Byb2Nlc3MnO1xyXG4gICAgICAgICAgICBjYXNlIERhdGFUeXBlLmRldmlhdGlvbjpcclxuICAgICAgICAgICAgICAgIHJldHVybiAnZGV2aWF0aW9uJztcclxuICAgICAgICAgICAgY2FzZSBEYXRhVHlwZS5jaGVja2xpc3Q6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2NoZWNrbGlzdCc7XHJcbiAgICAgICAgICAgIGNhc2UgRGF0YVR5cGUucmlzazpcclxuICAgICAgICAgICAgICAgIHJldHVybiAncmlzayc7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2ZvbGRlcl9vdXRsaW5lZCc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBnZXRQYXJlbnROYW1lKGl0ZW06IElTZWxlY3RPbmVJdGVtKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0IHx8IGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZGV2aWF0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtLnBhcmVudE5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1JZChpdGVtOiBJU2VsZWN0T25lSXRlbSkge1xyXG4gICAgICAgIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLnByb2Nlc3MpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuTEFORy5QUk9DRVNTX0lEfTogJHtpdGVtLml0ZW1OdW1iZXJJZH07ICR7aXRlbS5zdGF0dXNOYW1lfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZG9jdW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuTEFORy5ET0NVTUVOVF9JRH06ICR7aXRlbS5pdGVtTnVtYmVySWR9OyAke2l0ZW0uc3RhdHVzTmFtZX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc2VsZWN0Tm9kZVRyZWVFdmVudChub2RlKSB7XHJcbiAgICAgICAgbGV0IHBvc2l0aW9uID0gLTE7XHJcbiAgICAgICAgbGV0IHBhcmVudE5hbWUgPSAnJztcclxuICAgICAgICBsZXQgaXRlbU51bWJlcklkID0gJyc7XHJcblxyXG4gICAgICAgIHBvc2l0aW9uID0gIW5vZGUuZXhwYW5kYWJsZSA/IHRoaXMudHJlZURhdGEuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBub2RlLmlkICYmIHAucm9vdElkID09PSBub2RlLnBhcmVudElkKSA6XHJcbiAgICAgICAgICAgIHRoaXMudHJlZURhdGEuZmluZEluZGV4KHAgPT4gcC5yb290SWQgPT09IG5vZGUuaWQpO1xyXG4gICAgICAgIHBhcmVudE5hbWUgPSB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5wYXJlbnRJZCA/IHRoaXMudHJlZURhdGFbcG9zaXRpb25dLnN1Yk5hbWUgOiB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5yb290TmFtZTtcclxuICAgICAgICBpdGVtTnVtYmVySWQgPSB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXT8uZGlzcGxheUlkPy50b1N0cmluZygpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgIGlkOiBub2RlLmlkLFxyXG4gICAgICAgICAgICBpdGVtTmFtZTogbm9kZS5uYW1lLFxyXG4gICAgICAgICAgICBpdGVtVHlwZTogbm9kZS5pdGVtVHlwZSxcclxuICAgICAgICAgICAgcGFyZW50SWQ6IG5vZGUucGFyZW50SWQsXHJcbiAgICAgICAgICAgIHBhcmVudE5hbWU6IHBhcmVudE5hbWUsXHJcbiAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbU51bWJlcklkLFxyXG4gICAgICAgICAgICBsZXZlbFR5cGU6IG5vZGUubGV2ZWxUeXBlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2hpbGROb2RlU2VsZWN0T25lKGxpc3RDaGlsZHJlbikge1xyXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuU2VsZWN0T25lID0gW107XHJcbiAgICAgICAgdGhpcy5saXN0Q2hpbGRyZW5TZWxlY3RPbmUgPSBsaXN0Q2hpbGRyZW47XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQ2hlY2tlZE5vZGVMaXN0KCkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW06IFRyZWVGbGF0Tm9kZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IFsuLi5bXSwgaXRlbV07XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICAgICAgfSwgNTAwKTtcclxuICAgIH1cclxufVxyXG4iXX0=
413
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0LW9uZS9zZWxlY3Qtb25lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFhLFNBQVMsRUFBRSxpQkFBaUIsRUFBK0IsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBQ2hLLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx5QkFB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Q0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgQWZ0ZXJWaWV3Q2hlY2tlZCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRJY29uUmVnaXN0cnkgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVMaWJyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRTVNJY29uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vYXBwLWljb24vaWNvbi1yZWdpc3RyeS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi9jb21tb24vZGF0YS10eXBlLmVudW0nO1xyXG5pbXBvcnQgeyBEb2N1bWVudE5vZGVUeXBlIH0gZnJvbSAnLi9jb21tb24vZG9jdW1lbnQtZm9sZGVyLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7IE1vZHVsZVR5cGUgfSBmcm9tICcuL2NvbW1vbi9tb2R1bGUtdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgU2hvd0hpZGVTZWFyY2hSZXN1bHRDb25zdCB9IGZyb20gJy4vY29tbW9uL3Nob3ctaGlkZS1zZWFyY2gtcmVzdWx0LmNvbnN0JztcclxuaW1wb3J0IHsgU2VsZWN0T25lUG9wdXBEYXRhIH0gZnJvbSAnLi9jb21tb24vc2VsZWN0b25lLXBvcHVwLWRhdGEubW9kZWwnO1xyXG5pbXBvcnQgeyBJU2VsZWN0T25lSXRlbSB9IGZyb20gJy4vY29tbW9uL3NlbGVjdC1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0ZWROb2RlIH0gZnJvbSAnLi9jb21tb24vc2VsZWN0ZWQtbm9kZS5tb2RlbCc7XHJcbmltcG9ydCB7IFFNU1NlbGVjdE9uZUdsb2JhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2Uvc2VsZWN0LW9uZS1nbG9iYWwuc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBUcmVlQ29uZmlnIH0gZnJvbSAnLi4vdHJlZS9tb2RlbC90cmVlLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IFRyZWVGbGF0Tm9kZSB9IGZyb20gJy4uL3RyZWUvbW9kZWwvdHJlZS1mbGF0LW5vZGUubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4uL3RyZWUvbW9kZWwvdHJlZS1ub2RlLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU1vZGVsIH0gZnJvbSAnLi4vdHJlZS9tb2RlbC90cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZUNvbXBvbmVudCB9IGZyb20gJy4uL3RyZWUvdHJlZS5jb21wb25lbnQnO1xyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncW1zLXNlbGVjdC1vbmUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1vbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LW9uZS5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0T25lRGlhbG9nIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQge1xyXG4gICAgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgTEFORzogYW55O1xyXG4gICAgbW9kdWxlSWQgPSAwO1xyXG4gICAgbW9kdWxlTmFtZSA9ICcnO1xyXG4gICAgdHJlZURhdGE6IEFycmF5PFRyZWVNb2RlbD4gPSBbXTtcclxuICAgIHRyZWVDb25maWc6IFRyZWVDb25maWc7XHJcblxyXG4gICAgY2hlY2tlZE5vZGVMaXN0OiBBcnJheTxTZWxlY3RlZE5vZGU+ID0gW107XHJcbiAgICBzZWxlY3RlZE5vZGU6IEFycmF5PFNlbGVjdGVkTm9kZT4gPSBbXTtcclxuICAgIHNlbGVjdGVkRGF0YTogQXJyYXk8VHJlZUZsYXROb2RlPiA9IFtdO1xyXG5cclxuICAgIG1vZHVsZSA9IE1vZHVsZVR5cGU7XHJcbiAgICBkYXRhVHlwZSA9IERhdGFUeXBlO1xyXG4gICAgaXRlbVR5cGUgPSAwO1xyXG4gICAgc2VsZWN0ZWRSaXNrRGF0YTogYW55ID0gW107XHJcbiAgICBkaXNhYmxlZExpc3Q6IGFueSA9IFtdO1xyXG4gICAgZXhwYW5kVG9DaGlsZE5vZGU6IGFueSA9IFtdO1xyXG5cclxuICAgIGlzQ29tbW9uRXhwYW5kZWQgPSB0cnVlO1xyXG5cclxuICAgIG15Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICAgZmlsdGVyZWRPcHRpb25zOiBJU2VsZWN0T25lSXRlbVtdID0gW107XHJcbiAgICBpc0lucHV0VmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgICBzZWxlY3RlZEZvbGRlcjogVHJlZUZsYXROb2RlID0gbnVsbDtcclxuICAgIGxpc3RDaGlsZHJlblNlbGVjdE9uZTogYW55ID0gW107XHJcblxyXG4gICAgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICBvbkV4cGFuZEZvbGRlciA9IG5ldyBFdmVudEVtaXR0ZXI8SVNlbGVjdE9uZUl0ZW0+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihUcmVlQ29tcG9uZW50LCB7fSkgZGF0YVRyZWVzOiBRdWVyeUxpc3Q8VHJlZUNvbXBvbmVudD47XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnYXV0b0NvbXBsZXRlSW5wdXRTZWFyY2gnLCB7IHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsIHN0YXRpYzogdHJ1ZSB9KVxyXG4gICAgYXV0b0NvbXBsZXRlOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlTGlicmFyeVNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNlbGVjdE9uZURpYWxvZz4sXHJcbiAgICAgICAgcHVibGljIGdsb2JhbFNlcnZpY2U6IFFNU1NlbGVjdE9uZUdsb2JhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBpY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSxcclxuICAgICAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgICAgIHByaXZhdGUgYXBwSWNvblNlcnZpY2U6IFFNU0ljb25SZWdpc3RyeVNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBTZWxlY3RPbmVQb3B1cERhdGFcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMubW9kdWxlSWQgPSBkYXRhLm1vZHVsZUlkO1xyXG4gICAgICAgIHRoaXMubW9kdWxlTmFtZSA9IGRhdGEubW9kdWxlTmFtZTtcclxuICAgICAgICB0aGlzLnRyZWVEYXRhID0gZGF0YS50cmVlRGF0YTtcclxuICAgICAgICB0aGlzLnRyZWVDb25maWcgPSBkYXRhLnRyZWVDb25maWc7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJpc2tEYXRhID0gZGF0YT8uc2VsZWN0ZWROb2RlIHx8IFtdO1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWRMaXN0ID0gZGF0YS5kaXNhYmxlZExpc3QgfHwgW107XHJcbiAgICAgICAgdGhpcy5leHBhbmRUb0NoaWxkTm9kZSA9IGRhdGEuZXhwYW5kVG9DaGlsZE5vZGU7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJQcm9jZXNzSWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJQcm9jZXNzQXJlYUljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRG9jdW1lbnRJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlckZvbGRlckljb24oaWNvblJlZ2lzdHJ5LCBzYW5pdGl6ZXIpO1xyXG4gICAgICAgIGFwcEljb25TZXJ2aWNlLnJlZ2lzdGVyRGV2aWF0aW9uSWNvbihpY29uUmVnaXN0cnksIHNhbml0aXplcik7XHJcbiAgICAgICAgYXBwSWNvblNlcnZpY2UucmVnaXN0ZXJDaGVja2xpc3RJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgICAgICBhcHBJY29uU2VydmljZS5yZWdpc3RlclJpc2tJY29uKGljb25SZWdpc3RyeSwgc2FuaXRpemVyKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xyXG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIHRoaXMuZ2xvYmFsU2VydmljZS5zZXRTZWFyY2hSZWxhdGVkKFtdKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRm9sZGVyID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6bWVzc2FnZScsIFsnJGV2ZW50J10pXHJcbiAgICBvbk1lc3NhZ2UoZXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gU2hvd0hpZGVTZWFyY2hSZXN1bHRDb25zdC5ISURFX1NFQVJDSF9SRVNVTFQpIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRvQ29tcGxldGUuY2xvc2VQYW5lbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXRMYW5ndWFnZVN1YmplY3QkLnBpcGUoKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkxBTkcgPSB0aGlzLnRyYW5zbGF0ZS5nZXRPYmplY3RMYW5nKHJlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5nbG9iYWxTZXJ2aWNlLnNlYXJjaFJlbGF0ZWQucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHJlcztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLm15Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMTAwMCkpLnN1YnNjcmliZSgodmFsKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNJbnB1dFZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5vblNlYXJjaFJlbGF0ZWQodmFsKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5pdGVtVHlwZSA9IHRoaXMuZ2V0RGF0YVR5cGVJZCh0aGlzLm1vZHVsZUlkKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyZWRPcHRpb25zICYmIHRoaXMuZmlsdGVyZWRPcHRpb25zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmF1dG9Db21wbGV0ZS5vcGVuUGFuZWwoKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRSZXN1bHRIZWlnaHQoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXV0b0NvbXBsZXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLmNsb3NlUGFuZWwoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0YVR5cGVJZChtb2R1bGVJZDogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IGl0ZW1UeXBlO1xyXG4gICAgICAgIHN3aXRjaCAobW9kdWxlSWQpIHtcclxuICAgICAgICAgICAgY2FzZSBNb2R1bGVUeXBlLmRvY3VtZW50UHJvY2VzczpcclxuICAgICAgICAgICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5wcm9jZXNzO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgTW9kdWxlVHlwZS5kZXZpYXRpb246XHJcbiAgICAgICAgICAgICAgICBpdGVtVHlwZSA9IHRoaXMuZGF0YVR5cGUuZGV2aWF0aW9uO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgTW9kdWxlVHlwZS5jaGVja2xpc3Q6XHJcbiAgICAgICAgICAgICAgICBpdGVtVHlwZSA9IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0O1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgTW9kdWxlVHlwZS5yaXNrOlxyXG4gICAgICAgICAgICAgICAgaXRlbVR5cGUgPSB0aGlzLmRhdGFUeXBlLnJpc2s7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGl0ZW1UeXBlID0gdGhpcy5kYXRhVHlwZS5kb2N1bWVudDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbVR5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0UmVzdWx0SGVpZ2h0KGFycj86IElTZWxlY3RPbmVJdGVtW10pIHtcclxuICAgICAgICBsZXQgbWF4SGVpZ2h0ID0gNDg0O1xyXG4gICAgICAgIGNvbnN0IHBvcHVwX2NvbnRlbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdxbXNsaWJfcmVsYXRlZF9wb3B1cF9jb250ZW50JylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgY29uc3QgbGluZV9fZGl2aWRlciA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2xpbmVfX2RpdmlkZXInKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBpZiAocG9wdXBfY29udGVudCAmJiBsaW5lX19kaXZpZGVyKSB7XHJcbiAgICAgICAgICAgIG1heEhlaWdodCA9IHRoaXMuZ2V0T2Zmc2V0SGVpZ2h0KHBvcHVwX2NvbnRlbnQsIHRydWUpICsgdGhpcy5nZXRPZmZzZXRIZWlnaHQobGluZV9fZGl2aWRlciwgdHJ1ZSkgKiAyO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY29udGVudFJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2Nkay12aXJ0dWFsLXNjcm9sbC1jb250ZW50LXdyYXBwZXInKVswXSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICBjb25zdCB2aWV3cmVwb3J0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3JlbGF0ZWQtdmlld3BvcnQnKVswXSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKHZpZXdyZXBvcnRzKSB7XHJcbiAgICAgICAgICAgIGlmIChjb250ZW50UmVzdWx0Lm9mZnNldEhlaWdodCA8PSBtYXhIZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke2NvbnRlbnRSZXN1bHQub2Zmc2V0SGVpZ2h0fXB4YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHZpZXdyZXBvcnRzLnN0eWxlLmhlaWdodCA9IGAke21heEhlaWdodH1weGA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWFyY2hSZWxhdGVkKF92YWw6IGFueSkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gW107XHJcbiAgICAgICAgaWYgKHR5cGVvZiAoX3ZhbCkgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIHRoaXMubXlDb250cm9sLnNldFZhbHVlKCcnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIChfdmFsKSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgaWYgKCEhX3ZhbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KF92YWwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldE1vZHVsZUZpbHRlcmVkT3B0aW9ucygpIHtcclxuICAgICAgICBpZiAodGhpcy5saXN0Q2hpbGRyZW5TZWxlY3RPbmUubGVuZ3RoICYmIHRoaXMuZGlzYWJsZWRMaXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5saXN0Q2hpbGRyZW5TZWxlY3RPbmUubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBmaXJzdEVsID0gdGhpcy5saXN0Q2hpbGRyZW5TZWxlY3RPbmVbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGlzLmZpbHRlcmVkT3B0aW9ucy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlY29uZEVsID0gdGhpcy5maWx0ZXJlZE9wdGlvbnNbal07XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0RWwuaWQgPT09IHNlY29uZEVsLmlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zLnNwbGljZShqLCAxKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkT3B0aW9ucztcclxuICAgIH1cclxuXHJcbiAgICBzaG93U2VhcmNoUmVzdWx0KCkge1xyXG4gICAgICAgIHRoaXMuYXV0b0NvbXBsZXRlLm9wZW5QYW5lbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGRpc3BsYXlSZWxhdGVkKHJlbGF0ZWQ/OiBJU2VsZWN0T25lSXRlbSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHJlbGF0ZWQgPyByZWxhdGVkLml0ZW1OYW1lIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdEl0ZW1TZWFyY2hlZChpdGVtOiBJU2VsZWN0T25lSXRlbSkge1xyXG4gICAgICAgIC8vIHJlc2V0IHRvIHJvb3RcclxuICAgICAgICB0aGlzLmV4cGFuZFRvQ2hpbGROb2RlID0gWycnXTtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdCA9IFtdO1xyXG5cclxuICAgICAgICBsZXQgcG9zaXRpb24gPSAtMTtcclxuICAgICAgICBsZXQgbm9kZTogYW55O1xyXG4gICAgICAgIGxldCB0eXBlSWQ6IG51bWJlcjtcclxuICAgICAgICBsZXQgdHJlZU5vZGVEdXA6IGFueTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZy5jYW5IYXZlRHVwSWQpIHtcclxuICAgICAgICAgICAgcG9zaXRpb24gPSB0aGlzLnRyZWVEYXRhLmZpbmRJbmRleCh4ID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB4LnJvb3RJZCA9PT0gaXRlbS5wYXJlbnRJZCAmJiB4LmNoaWxkSWQgPT09IGl0ZW0uaWQ7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uID0gdGhpcy50cmVlRGF0YS5maW5kSW5kZXgoeCA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geC5yb290SWQgPT09IGl0ZW0uaWQ7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0eXBlSWQgPSBpdGVtLml0ZW1UeXBlO1xyXG5cclxuICAgICAgICBpZiAocG9zaXRpb24gPj0gMCkge1xyXG4gICAgICAgICAgICBub2RlID0gdGhpcy50cmVlRGF0YVtwb3NpdGlvbl07XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgIG1vZHVsZUlkOiB0aGlzLm1vZHVsZUlkLFxyXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMudHJlZUNvbmZpZy5jYW5IYXZlRHVwSWQgPyBub2RlLmNoaWxkSWQgOiBub2RlLnJvb3RJZCxcclxuICAgICAgICAgICAgICAgIGl0ZW1OYW1lOiB0aGlzLnRyZWVDb25maWcuY2FuSGF2ZUR1cElkID8gbm9kZS5jaGlsZE5hbWUgOiBub2RlLnJvb3ROYW1lIHx8IG5vZGUuc3ViTmFtZSxcclxuICAgICAgICAgICAgICAgIGl0ZW1UeXBlOiB0eXBlSWQsXHJcbiAgICAgICAgICAgICAgICBpdGVtTnVtYmVySWQ6IGl0ZW0uaXRlbU51bWJlcklkLFxyXG4gICAgICAgICAgICAgICAgbGV2ZWxUeXBlOiBpdGVtLmxldmVsVHlwZSxcclxuICAgICAgICAgICAgICAgIHBhcmVudElkOiBub2RlLnJvb3RJZCxcclxuICAgICAgICAgICAgICAgIHBhcmVudE5hbWU6IG5vZGUucm9vdE5hbWVcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZy5jYW5IYXZlRHVwSWQpIHtcclxuICAgICAgICAgICAgdHJlZU5vZGVEdXAgPSB7XHJcbiAgICAgICAgICAgICAgICBpZDogbm9kZS5jaGlsZElkLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogISFub2RlLnJvb3RJZCA/IG5vZGUuc3ViTmFtZSA6IG5vZGUucm9vdE5hbWUsXHJcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogW10sXHJcbiAgICAgICAgICAgICAgICBwYXJlbnRJZDogbm9kZS5yb290SWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0cmVlTm9kZSA9IHtcclxuICAgICAgICAgICAgaWQ6IG5vZGUucm9vdElkLFxyXG4gICAgICAgICAgICBuYW1lOiAhIW5vZGUucm9vdElkID8gbm9kZS5zdWJOYW1lIDogbm9kZS5yb290TmFtZSxcclxuICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgICBwYXJlbnRJZDogbm9kZS5wYXJlbnRJZFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFUcmVlcy50b0FycmF5KClbMF0udG9kb0ZvbGRlclNlbGVjdGlvbihbdGhpcy50cmVlQ29uZmlnLmNhbkhhdmVEdXBJZCA/IHRyZWVOb2RlRHVwIDogdHJlZU5vZGVdKTtcclxuICAgICAgICAgICAgdGhpcy5leHBhbmRBbmRTY3JvbGxUb05vZGUodGhpcy50cmVlQ29uZmlnLmNhbkhhdmVEdXBJZCA/IHRyZWVOb2RlRHVwIDogdHJlZU5vZGUsIG5vZGUpO1xyXG4gICAgICAgIH0sIDUwMCk7XHJcblxyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBleHBhbmRBbmRTY3JvbGxUb05vZGUodHJlZU5vZGU6IFRyZWVOb2RlLCBub2RlOiBUcmVlTW9kZWwpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIGxldCBwYXJlbnRMaXN0ID0gW107XHJcbiAgICAgICAgaWYgKHRoaXMudHJlZUNvbmZpZy5jYW5IYXZlRHVwSWQpIHtcclxuICAgICAgICAgICAgcGFyZW50ID0gdGhpcy50cmVlRGF0YS5maW5kKHggPT4geC5yb290SWQgPT09IG5vZGUucm9vdElkICYmIHguY2hpbGRJZCA9PT0gbm9kZS5jaGlsZElkKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBwYXJlbnQgPSB0aGlzLnRyZWVEYXRhLmZpbmQoeCA9PiB4LnJvb3RJZCA9PT0gbm9kZS5wYXJlbnRJZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgICAgICAgIHBhcmVudExpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBpZDogcGFyZW50LnJvb3RJZCxcclxuICAgICAgICAgICAgICAgIGl0ZW1OYW1lOiBwYXJlbnQucm9vdE5hbWUsXHJcbiAgICAgICAgICAgICAgICBwYXJlbnRJZDogcGFyZW50LnBhcmVudElkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBwYXJlbnRMaXN0ID0gdGhpcy5nZXRQYXJlbnRMaW5lT2ZOb2RlKHBhcmVudExpc3QsIHBhcmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhcmVudExpc3QudW5zaGlmdCh0cmVlTm9kZSk7XHJcblxyXG4gICAgICAgIHBhcmVudExpc3QucmV2ZXJzZSgpLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNFZGl0SXRlbSh4KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGFyZW50TGluZU9mTm9kZShsaXN0UGFyZW50LCBub2RlOiBUcmVlTW9kZWwpIHtcclxuICAgICAgICBsZXQgcGFyZW50O1xyXG4gICAgICAgIHBhcmVudCA9IHRoaXMudHJlZURhdGEuZmluZCh4ID0+IHgucm9vdElkID09PSBub2RlLnBhcmVudElkKTtcclxuXHJcbiAgICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgICAgICBsaXN0UGFyZW50LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWQ6IHBhcmVudC5yb290SWQsXHJcbiAgICAgICAgICAgICAgICBpdGVtTmFtZTogcGFyZW50LnJvb3ROYW1lLFxyXG4gICAgICAgICAgICAgICAgcGFyZW50SWQ6IHBhcmVudC5wYXJlbnRJZFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5nZXRQYXJlbnRMaW5lT2ZOb2RlKGxpc3RQYXJlbnQsIHBhcmVudCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbGlzdFBhcmVudDtcclxuICAgIH1cclxuXHJcbiAgICBmb2N1c0VkaXRJdGVtKHNlbGVjdGVkT3B0aW9uKSB7XHJcbiAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS5nZXROb2RlQnlJZEFuZFBhcmVudElkKHNlbGVjdGVkT3B0aW9uLmlkLCBzZWxlY3RlZE9wdGlvbi5wYXJlbnRJZCk7XHJcblxyXG4gICAgICAgIGlmIChub2RlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVRyZWVzLnRvQXJyYXkoKVswXS5leHBhbmROb2RlKG5vZGUpO1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYF8ke25vZGUucGFyZW50SWQgPyBub2RlLnBhcmVudElkLnRvTG93ZXJDYXNlKCkgOiAnJ31fJHtub2RlLmlkLnRvTG93ZXJDYXNlKCl9XyR7bm9kZS5sZXZlbH1gKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChlbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkNsb3NlQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZvbGRlciA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH07XHJcblxyXG4gICAgb25BZGRDbGljaygpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRm9sZGVyID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh0aGlzLmNoZWNrZWROb2RlTGlzdCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0T2Zmc2V0SGVpZ2h0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBpbmNsdWRlTWFyZ2luOiBib29sZWFuKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgZWxtSGVpZ2h0ID0gMCwgZWxtTWFyZ2luID0gMDtcclxuXHJcbiAgICAgICAgZWxtSGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICAgICAgaWYgKGluY2x1ZGVNYXJnaW4pIHtcclxuICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcclxuICAgICAgICAgICAgZWxtTWFyZ2luID0gcGFyc2VGbG9hdChzdHlsZS5tYXJnaW5Ub3AucmVwbGFjZSgncHgnLCAnJykpICsgcGFyc2VGbG9hdChzdHlsZS5tYXJnaW5Cb3R0b20ucmVwbGFjZSgncHgnLCAnJykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIChlbG1IZWlnaHQgKyBlbG1NYXJnaW4pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1DaGlwTmFtZShpdGVtOiBTZWxlY3RlZE5vZGUpIHtcclxuICAgICAgICBpZiAoaXRlbS5pdGVtVHlwZSA9PT0gRGF0YVR5cGUuY2hlY2tsaXN0IHx8IGl0ZW0uaXRlbVR5cGUgPT09IERhdGFUeXBlLmRldmlhdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gKGl0ZW0ucGFyZW50TmFtZSAmJiBpdGVtLml0ZW1OYW1lICE9PSBpdGVtLnBhcmVudE5hbWUpID8gYCR7aXRlbS5wYXJlbnROYW1lfS8ke2l0ZW0uaXRlbU5hbWV9YCA6IGl0ZW0uaXRlbU5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpdGVtLml0ZW1OYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRWxsaXBzaXNBY3RpdmUoZTogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZSA/IChlLmNsaWVudFdpZHRoIDwgZS5zY3JvbGxXaWR0aCkgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXROb2RlSWNvbihpdGVtOiBJU2VsZWN0T25lSXRlbSkge1xyXG4gICAgICAgIHN3aXRjaCAoaXRlbS5pdGVtVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIERhdGFUeXBlLmZvbGRlcjoge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChpdGVtLmxldmVsVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5EZXBhcnRtZW50Rm9sZGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2RlcGFydG1lbnRfZm9sZGVyX291dGxpbmVkJztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuUmVnaW9uYWxGb2xkZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAncmVnaW9uYWxfZm9sZGVyX291dGxpbmVkJztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuVG9wRm9sZGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2VudGVycHJpc2VfZm9sZGVyX291dGxpbmVkJztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRm9sZGVyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2xvY2FsX2ZvbGRlcl9vdXRsaW5lZCc7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdmb2xkZXJfb3V0bGluZWQnO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgRGF0YVR5cGUuZG9jdW1lbnQ6IHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5sZXZlbFR5cGUpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuRGVwYXJ0bWVudEZvbGRlcjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9kZXBhcnRtZW50JztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIERvY3VtZW50Tm9kZVR5cGUuUmVnaW9uYWxGb2xkZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfcmVnaW9uYWwnO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROb2RlVHlwZS5Ub3BGb2xkZXI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZG9jdW1lbnRfZW50ZXJwcmlzZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBEb2N1bWVudE5vZGVUeXBlLkZvbGRlcjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudF9sb2NhbCc7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdkb2N1bWVudCc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSBEYXRhVHlwZS5hcmVhOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdwcm9jZXNzX2FyZWFfb3V0bGluZWQnO1xyXG4gICAgICAgICAgICBjYXNlIERhdGFUeXBlLnByb2Nlc3M6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3Byb2Nlc3MnO1xyXG4gICAgICAgICAgICBjYXNlIERhdGFUeXBlLmRldmlhdGlvbjpcclxuICAgICAgICAgICAgICAgIHJldHVybiAnZGV2aWF0aW9uJztcclxuICAgICAgICAgICAgY2FzZSBEYXRhVHlwZS5jaGVja2xpc3Q6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2NoZWNrbGlzdCc7XHJcbiAgICAgICAgICAgIGNhc2UgRGF0YVR5cGUucmlzazpcclxuICAgICAgICAgICAgICAgIHJldHVybiAncmlzayc7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2ZvbGRlcl9vdXRsaW5lZCc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBnZXRQYXJlbnROYW1lKGl0ZW06IElTZWxlY3RPbmVJdGVtKSB7XHJcbiAgICAgICAgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuY2hlY2tsaXN0IHx8IGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZGV2aWF0aW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtLnBhcmVudE5hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEl0ZW1JZChpdGVtOiBJU2VsZWN0T25lSXRlbSkge1xyXG4gICAgICAgIGlmIChpdGVtLml0ZW1UeXBlID09PSB0aGlzLmRhdGFUeXBlLnByb2Nlc3MpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuTEFORy5QUk9DRVNTX0lEfTogJHtpdGVtLml0ZW1OdW1iZXJJZH07ICR7aXRlbS5zdGF0dXNOYW1lfWA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGl0ZW0uaXRlbVR5cGUgPT09IHRoaXMuZGF0YVR5cGUuZG9jdW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGAke3RoaXMuTEFORy5ET0NVTUVOVF9JRH06ICR7aXRlbS5pdGVtTnVtYmVySWR9OyAke2l0ZW0uc3RhdHVzTmFtZX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgc2VsZWN0Tm9kZVRyZWVFdmVudChub2RlKSB7XHJcbiAgICAgICAgbGV0IHBvc2l0aW9uID0gLTE7XHJcbiAgICAgICAgbGV0IHBhcmVudE5hbWUgPSAnJztcclxuICAgICAgICBsZXQgaXRlbU51bWJlcklkID0gJyc7XHJcblxyXG4gICAgICAgIHBvc2l0aW9uID0gIW5vZGUuZXhwYW5kYWJsZSA/IHRoaXMudHJlZURhdGEuZmluZEluZGV4KHAgPT4gcC5jaGlsZElkID09PSBub2RlLmlkICYmIHAucm9vdElkID09PSBub2RlLnBhcmVudElkKSA6XHJcbiAgICAgICAgICAgIHRoaXMudHJlZURhdGEuZmluZEluZGV4KHAgPT4gcC5yb290SWQgPT09IG5vZGUuaWQpO1xyXG4gICAgICAgIHBhcmVudE5hbWUgPSB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5wYXJlbnRJZCA/IHRoaXMudHJlZURhdGFbcG9zaXRpb25dLnN1Yk5hbWUgOiB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXS5yb290TmFtZTtcclxuICAgICAgICBpdGVtTnVtYmVySWQgPSB0aGlzLnRyZWVEYXRhW3Bvc2l0aW9uXT8uZGlzcGxheUlkPy50b1N0cmluZygpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLmNoZWNrZWROb2RlTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgbW9kdWxlSWQ6IHRoaXMubW9kdWxlSWQsXHJcbiAgICAgICAgICAgIGlkOiBub2RlLmlkLFxyXG4gICAgICAgICAgICBpdGVtTmFtZTogbm9kZS5uYW1lLFxyXG4gICAgICAgICAgICBpdGVtVHlwZTogbm9kZS5pdGVtVHlwZSxcclxuICAgICAgICAgICAgcGFyZW50SWQ6IG5vZGUucGFyZW50SWQsXHJcbiAgICAgICAgICAgIHBhcmVudE5hbWU6IHBhcmVudE5hbWUsXHJcbiAgICAgICAgICAgIGl0ZW1OdW1iZXJJZDogaXRlbU51bWJlcklkLFxyXG4gICAgICAgICAgICBsZXZlbFR5cGU6IG5vZGUubGV2ZWxUeXBlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q2hpbGROb2RlU2VsZWN0T25lKGxpc3RDaGlsZHJlbikge1xyXG4gICAgICAgIHRoaXMubGlzdENoaWxkcmVuU2VsZWN0T25lID0gW107XHJcbiAgICAgICAgdGhpcy5saXN0Q2hpbGRyZW5TZWxlY3RPbmUgPSBsaXN0Q2hpbGRyZW47XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQ2hlY2tlZE5vZGVMaXN0KCkge1xyXG4gICAgICAgIGNvbnN0IGl0ZW06IFRyZWVGbGF0Tm9kZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jaGVja2VkTm9kZUxpc3QgPSBbXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0YSA9IFsuLi5bXSwgaXRlbV07XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICAgICAgfSwgNTAwKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -10,4 +10,4 @@ export class SelectProcessDocumentPopupData {
10
10
  this.splitView = false;
11
11
  }
12
12
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXVwLWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0LXByb2Nlc3MtZG9jdW1lbnQvbW9kZWxzL3BvcC11cC1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyw4QkFBOEI7SUFjekM7UUFDRSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgVHJlZUNvbmZpZyB9IGZyb20gXCIuLi8uLi90cmVlL21vZGVsL3RyZWUtY29uZmlnLm1vZGVsXCI7XHJcbmltcG9ydCB7IE5ld1RyZWVNb2RlbCB9IGZyb20gXCIuLi8uLi90cmVlTmV3L21vZGVsL3RyZWUubW9kZWxcIjtcclxuZXhwb3J0IGNsYXNzIFNlbGVjdFByb2Nlc3NEb2N1bWVudFBvcHVwRGF0YSB7XHJcbiAgbW9kdWxlSWQ6IG51bWJlcjtcclxuICBtb2R1bGVOYW1lOiBzdHJpbmc7XHJcbiAgdHJlZURhdGExOiBBcnJheTxOZXdUcmVlTW9kZWw+O1xyXG4gIHRyZWVEYXRhMjogQXJyYXk8TmV3VHJlZU1vZGVsPjtcclxuICB0cmVlQ29uZmlnMTogVHJlZUNvbmZpZztcclxuICB0cmVlQ29uZmlnMjogVHJlZUNvbmZpZztcclxuICBzZWxlY3RlZE5vZGU/OiBBcnJheTxhbnk+O1xyXG4gIGRpc2FibGVkTGlzdD86IEFycmF5PGFueT47XHJcbiAgZGlzYWJsZWRMaXN0Mj86IEFycmF5PGFueT47XHJcbiAgc3BsaXRWaWV3PzogYm9vbGVhbjtcclxuICBpc1NlbGVjdE9uZT86IGJvb2xlYW47XHJcbiAgY2FuT25seVNlbGVjdEl0ZW0/OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMubW9kdWxlSWQgPSAwO1xyXG4gICAgdGhpcy5tb2R1bGVOYW1lID0gJyc7XHJcbiAgICB0aGlzLnRyZWVEYXRhMSA9IFtdO1xyXG4gICAgdGhpcy50cmVlRGF0YTIgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0ZWROb2RlID0gW107XHJcbiAgICB0aGlzLmRpc2FibGVkTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5kaXNhYmxlZExpc3QyID0gW107XHJcbiAgICB0aGlzLnNwbGl0VmlldyA9IGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wLXVwLWRhdGEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0LXByb2Nlc3MtZG9jdW1lbnQvbW9kZWxzL3BvcC11cC1kYXRhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyw4QkFBOEI7SUFlekM7UUFDRSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgVHJlZUNvbmZpZyB9IGZyb20gXCIuLi8uLi90cmVlL21vZGVsL3RyZWUtY29uZmlnLm1vZGVsXCI7XHJcbmltcG9ydCB7IE5ld1RyZWVNb2RlbCB9IGZyb20gXCIuLi8uLi90cmVlTmV3L21vZGVsL3RyZWUubW9kZWxcIjtcclxuZXhwb3J0IGNsYXNzIFNlbGVjdFByb2Nlc3NEb2N1bWVudFBvcHVwRGF0YSB7XHJcbiAgbW9kdWxlSWQ6IG51bWJlcjtcclxuICBtb2R1bGVOYW1lOiBzdHJpbmc7XHJcbiAgdHJlZURhdGExOiBBcnJheTxOZXdUcmVlTW9kZWw+O1xyXG4gIHRyZWVEYXRhMjogQXJyYXk8TmV3VHJlZU1vZGVsPjtcclxuICB0cmVlQ29uZmlnMTogVHJlZUNvbmZpZztcclxuICB0cmVlQ29uZmlnMjogVHJlZUNvbmZpZztcclxuICBzZWxlY3RlZE5vZGU/OiBBcnJheTxhbnk+O1xyXG4gIGRpc2FibGVkTGlzdD86IEFycmF5PGFueT47XHJcbiAgZGlzYWJsZWRMaXN0Mj86IEFycmF5PGFueT47XHJcbiAgc3BsaXRWaWV3PzogYm9vbGVhbjtcclxuICBpc1NlbGVjdE9uZT86IGJvb2xlYW47XHJcbiAgY2FuT25seVNlbGVjdEl0ZW0/OiBib29sZWFuO1xyXG4gIGhpZGVTcGxpdHZpZXdDaGVja2JveD86IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5tb2R1bGVJZCA9IDA7XHJcbiAgICB0aGlzLm1vZHVsZU5hbWUgPSAnJztcclxuICAgIHRoaXMudHJlZURhdGExID0gW107XHJcbiAgICB0aGlzLnRyZWVEYXRhMiA9IFtdO1xyXG4gICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBbXTtcclxuICAgIHRoaXMuZGlzYWJsZWRMaXN0ID0gW107XHJcbiAgICB0aGlzLmRpc2FibGVkTGlzdDIgPSBbXTtcclxuICAgIHRoaXMuc3BsaXRWaWV3ID0gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==