qms-angular 1.0.88 → 1.0.91

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/bundles/qms-angular.umd.js +199 -100
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/common/themes.const.js +3 -0
  4. package/esm2015/lib/components/banner/models/qms-banner.model.js +9 -1
  5. package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.js +4 -3
  6. package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.js +7 -4
  7. package/esm2015/lib/components/button/button-toggle.js +1 -1
  8. package/esm2015/lib/components/button/button.js +3 -3
  9. package/esm2015/lib/components/comment/comment.js +1 -1
  10. package/esm2015/lib/components/list/list.js +5 -3
  11. package/esm2015/lib/components/related/content/related-content.component.js +1 -1
  12. package/esm2015/lib/components/related/list-other-related/list-related.component.js +1 -1
  13. package/esm2015/lib/components/related/popup/related-popup.component.js +1 -1
  14. package/esm2015/lib/components/related/risk/analysis/analysis.component.js +1 -1
  15. package/esm2015/lib/components/related/risk/list/list.component.js +1 -1
  16. package/esm2015/lib/components/related/risk/result/result.component.js +1 -1
  17. package/esm2015/lib/components/rich-text/rich-text.js +1 -1
  18. package/esm2015/lib/components/select-dialog/select-dialog.js +1 -1
  19. package/esm2015/lib/components/select-include-children/select-include-children.component.js +1 -1
  20. package/esm2015/lib/components/select-one/select-one.component.js +1 -1
  21. package/esm2015/lib/components/select-process-document/select-process-document.component.js +1 -1
  22. package/esm2015/lib/components/table/table-action.js +2 -2
  23. package/esm2015/lib/components/tree/tree.component.js +1 -1
  24. package/esm2015/lib/components/treeNew/tree.component.js +1 -1
  25. package/esm2015/lib/directives/text-truncate/text-truncate.directive.js +7 -3
  26. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.js +1 -1
  27. package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +32 -1
  28. package/esm2015/lib/qms-ckeditor-components/common/helper/fileHelper.js +15 -0
  29. package/esm2015/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.js +1 -1
  30. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.js +1 -1
  31. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +5 -18
  32. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.js +9 -3
  33. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +1 -1
  34. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.js +1 -1
  35. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +1 -1
  36. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +1 -1
  37. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.js +1 -1
  38. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.js +1 -1
  39. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +1 -1
  40. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +6 -4
  41. package/esm2015/lib/services/theming.service.js +36 -0
  42. package/esm2015/lib/shared.module.js +1 -1
  43. package/esm2015/public-api.js +3 -1
  44. package/fesm2015/qms-angular.js +157 -67
  45. package/fesm2015/qms-angular.js.map +1 -1
  46. package/lib/common/themes.const.d.ts +2 -0
  47. package/lib/components/banner/models/qms-banner.model.d.ts +7 -0
  48. package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.d.ts +2 -1
  49. package/lib/components/list/list.d.ts +1 -1
  50. package/lib/directives/text-truncate/text-truncate.directive.d.ts +2 -1
  51. package/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.d.ts +1 -1
  52. package/lib/qms-ckeditor-components/common/functions/common.function.d.ts +12 -0
  53. package/lib/qms-ckeditor-components/common/helper/fileHelper.d.ts +1 -0
  54. package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +0 -1
  55. package/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.d.ts +3 -1
  56. package/lib/services/theming.service.d.ts +7 -0
  57. package/lib.theme.scss +11 -9
  58. package/package.json +1 -1
  59. package/public-api.d.ts +2 -0
  60. package/qms-angular.metadata.json +1 -1
  61. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
  62. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  63. package/src/assets/qms-ckeditor-plugin/build/translations/ar.js +1 -1
  64. package/src/assets/qms-ckeditor-plugin/build/translations/az.js +1 -1
  65. package/src/assets/qms-ckeditor-plugin/build/translations/bg.js +1 -1
  66. package/src/assets/qms-ckeditor-plugin/build/translations/ca.js +1 -1
  67. package/src/assets/qms-ckeditor-plugin/build/translations/cs.js +1 -1
  68. package/src/assets/qms-ckeditor-plugin/build/translations/da.js +1 -1
  69. package/src/assets/qms-ckeditor-plugin/build/translations/de.js +1 -1
  70. package/src/assets/qms-ckeditor-plugin/build/translations/el.js +1 -1
  71. package/src/assets/qms-ckeditor-plugin/build/translations/en-au.js +1 -1
  72. package/src/assets/qms-ckeditor-plugin/build/translations/en-gb.js +1 -1
  73. package/src/assets/qms-ckeditor-plugin/build/translations/eo.js +1 -1
  74. package/src/assets/qms-ckeditor-plugin/build/translations/es.js +1 -1
  75. package/src/assets/qms-ckeditor-plugin/build/translations/et.js +1 -1
  76. package/src/assets/qms-ckeditor-plugin/build/translations/eu.js +1 -1
  77. package/src/assets/qms-ckeditor-plugin/build/translations/fa.js +1 -1
  78. package/src/assets/qms-ckeditor-plugin/build/translations/fi.js +1 -1
  79. package/src/assets/qms-ckeditor-plugin/build/translations/fr.js +1 -1
  80. package/src/assets/qms-ckeditor-plugin/build/translations/gl.js +1 -1
  81. package/src/assets/qms-ckeditor-plugin/build/translations/he.js +1 -1
  82. package/src/assets/qms-ckeditor-plugin/build/translations/hi.js +1 -1
  83. package/src/assets/qms-ckeditor-plugin/build/translations/hr.js +1 -1
  84. package/src/assets/qms-ckeditor-plugin/build/translations/hu.js +1 -1
  85. package/src/assets/qms-ckeditor-plugin/build/translations/id.js +1 -1
  86. package/src/assets/qms-ckeditor-plugin/build/translations/it.js +1 -1
  87. package/src/assets/qms-ckeditor-plugin/build/translations/ja.js +1 -1
  88. package/src/assets/qms-ckeditor-plugin/build/translations/km.js +1 -1
  89. package/src/assets/qms-ckeditor-plugin/build/translations/kn.js +1 -1
  90. package/src/assets/qms-ckeditor-plugin/build/translations/ko.js +1 -1
  91. package/src/assets/qms-ckeditor-plugin/build/translations/ku.js +1 -1
  92. package/src/assets/qms-ckeditor-plugin/build/translations/lt.js +1 -1
  93. package/src/assets/qms-ckeditor-plugin/build/translations/lv.js +1 -1
  94. package/src/assets/qms-ckeditor-plugin/build/translations/nb.js +1 -1
  95. package/src/assets/qms-ckeditor-plugin/build/translations/ne.js +1 -1
  96. package/src/assets/qms-ckeditor-plugin/build/translations/nl.js +1 -1
  97. package/src/assets/qms-ckeditor-plugin/build/translations/no.js +1 -1
  98. package/src/assets/qms-ckeditor-plugin/build/translations/pl.js +1 -1
  99. package/src/assets/qms-ckeditor-plugin/build/translations/pt-br.js +1 -1
  100. package/src/assets/qms-ckeditor-plugin/build/translations/pt.js +1 -1
  101. package/src/assets/qms-ckeditor-plugin/build/translations/ro.js +1 -1
  102. package/src/assets/qms-ckeditor-plugin/build/translations/ru.js +1 -1
  103. package/src/assets/qms-ckeditor-plugin/build/translations/sk.js +1 -1
  104. package/src/assets/qms-ckeditor-plugin/build/translations/sl.js +1 -1
  105. package/src/assets/qms-ckeditor-plugin/build/translations/sq.js +1 -1
  106. package/src/assets/qms-ckeditor-plugin/build/translations/sr-latn.js +1 -1
  107. package/src/assets/qms-ckeditor-plugin/build/translations/sr.js +1 -1
  108. package/src/assets/qms-ckeditor-plugin/build/translations/sv.js +1 -1
  109. package/src/assets/qms-ckeditor-plugin/build/translations/th.js +1 -1
  110. package/src/assets/qms-ckeditor-plugin/build/translations/tk.js +1 -1
  111. package/src/assets/qms-ckeditor-plugin/build/translations/tr.js +1 -1
  112. package/src/assets/qms-ckeditor-plugin/build/translations/ug.js +1 -1
  113. package/src/assets/qms-ckeditor-plugin/build/translations/uk.js +1 -1
  114. package/src/assets/qms-ckeditor-plugin/build/translations/vi.js +1 -1
  115. package/src/assets/qms-ckeditor-plugin/build/translations/zh-cn.js +1 -1
  116. package/src/assets/qms-ckeditor-plugin/build/translations/zh.js +1 -1
  117. package/src/assets/qms-ckeditor-plugin/package-lock.json +0 -1
  118. package/src/assets/qms-ckeditor-plugin/package.json +0 -1
  119. package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +1 -1
  120. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/heading.js +119 -0
  121. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/headingbuttonsui.js +103 -0
  122. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/headingcommand.js +96 -0
  123. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/headingediting.js +163 -0
  124. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/headingui.js +115 -0
  125. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/index.js +22 -0
  126. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/heading.css +35 -0
  127. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/icons/heading1.svg +1 -0
  128. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/icons/heading2.svg +1 -0
  129. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/icons/heading3.svg +1 -0
  130. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/icons/heading4.svg +1 -0
  131. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/icons/heading5.svg +1 -0
  132. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/theme/icons/heading6.svg +1 -0
  133. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/title.js +598 -0
  134. package/src/assets/qms-ckeditor-plugin/src/plugins/heading/utils.js +42 -0
  135. package/src/lib/components/breadcrumb/breadcrumb.scss +2 -1
  136. package/src/lib/components/button/_button-base.scss +45 -52
  137. package/src/lib/components/button/_button-theme.scss +4 -2
  138. package/src/lib/components/button/button-icon.scss +17 -14
  139. package/src/lib/components/button/button-toggle.scss +64 -115
  140. package/src/lib/components/comment/comment.scss +3 -2
  141. package/src/lib/components/dialog/dialog.scss +2 -1
  142. package/src/lib/components/list/_list-base.scss +2 -2
  143. package/src/lib/components/list/_list-expansion.scss +37 -7
  144. package/src/lib/components/list/list.scss +21 -4
  145. package/src/lib/components/related/content/related-content.component.scss +4 -2
  146. package/src/lib/components/related/list-other-related/list-related.component.scss +7 -6
  147. package/src/lib/components/related/popup/related-popup.component.scss +10 -10
  148. package/src/lib/components/related/risk/analysis/analysis.component.scss +4 -3
  149. package/src/lib/components/related/risk/list/list.component.scss +7 -6
  150. package/src/lib/components/related/risk/result/result.component.scss +9 -8
  151. package/src/lib/components/rich-text/rich-text.scss +3 -2
  152. package/src/lib/components/select-dialog/select-dialog.scss +5 -5
  153. package/src/lib/components/select-include-children/select-include-children.component.scss +10 -10
  154. package/src/lib/components/select-one/select-one.component.scss +5 -4
  155. package/src/lib/components/select-process-document/select-process-document.component.scss +12 -13
  156. package/src/lib/components/substance-conflict/substance-conflict.component.scss +4 -3
  157. package/src/lib/components/table/table.scss +4 -3
  158. package/src/lib/components/tooltip/tooltip.scss +3 -1
  159. package/src/lib/components/tree/tree.component.scss +12 -12
  160. package/src/lib/components/treeNew/tree.component.scss +11 -18
  161. package/src/lib/qms-ckeditor-components/qms-ckeditor.component.scss +3 -2
  162. package/src/lib/qms-ckeditor-components/styles/_modules.scss +9 -0
  163. package/src/themes/_non-bg-scrollbar.scss +4 -3
  164. package/src/themes/core/_app-bar.scss +5 -4
  165. package/src/themes/core/_button.scss +14 -12
  166. package/src/themes/core/_checkbox.scss +9 -24
  167. package/src/themes/core/_chip-input.scss +29 -27
  168. package/src/themes/core/_chip.scss +12 -10
  169. package/src/themes/core/_date-picker.scss +9 -8
  170. package/src/themes/core/_dropdown-menu.scss +12 -11
  171. package/src/themes/core/_file-upload.scss +12 -11
  172. package/src/themes/core/_form-prefix.scss +6 -4
  173. package/src/themes/core/_form.scss +28 -27
  174. package/src/themes/core/_progress.scss +5 -3
  175. package/src/themes/core/_radio.scss +13 -15
  176. package/src/themes/core/_range-slider.scss +34 -33
  177. package/src/themes/core/_scrollbar.scss +25 -34
  178. package/src/themes/core/_search-field.scss +5 -3
  179. package/src/themes/core/_select.scss +5 -2
  180. package/src/themes/core/_slide-toggle.scss +10 -11
  181. package/src/themes/core/_styles.scss +19 -17
  182. package/src/themes/core/_tab.scss +88 -87
  183. package/src/themes/core/_table.scss +35 -19
  184. package/src/themes/core/_text-block.scss +3 -1
  185. package/src/themes/theme/_mixins.scss +18 -0
  186. package/src/themes/theme/_theme.scss +17 -0
  187. package/src/themes/theme/_variable.scss +303 -0
  188. package/src/themes/_color.scss +0 -61
  189. package/src/themes/_scrollbar.scss +0 -27
  190. package/src/themes/core/_colors.scss +0 -60
@@ -782,7 +782,7 @@ SelectProcessDocumentPopupComponent.decorators = [
782
782
  selector: 'qms-select-process-document',
783
783
  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 | uppercase }}</span>\r\n </div>\r\n </div>\r\n\r\n <div id=\"qmslib_related_popup_search\" class=\"input__field\">\r\n <input\r\n type=\"text\"\r\n placeholder=\"{{ LANG.SEARCH }}\"\r\n matInput\r\n [formControl]=\"myControl\"\r\n [matAutocomplete]=\"auto\"\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 class=\"mat-autocomplete_related-viewport\"\r\n (optionSelected)=\"selectRelated($event.option.value)\"\r\n [displayWith]=\"displayWhenSelectRelatedOption\"\r\n >\r\n <cdk-virtual-scroll-viewport\r\n qms-scrollbar\r\n itemSize=\"10\"\r\n [class.related-viewport]=\"isInputValue\"\r\n *ngIf=\"filteredOptions.length\"\r\n >\r\n <ng-container *ngFor=\"let type of searchOrder\">\r\n <div\r\n class=\"search__module-result\"\r\n *ngIf=\"canShowSearchOption(type.value)\"\r\n >\r\n <span class=\"search__module-title\">{{ getTitle(type.value) }}</span>\r\n <mat-option\r\n class=\"search__option\"\r\n *ngFor=\"let option of getModuleFilteredOptions(type.value)\"\r\n [value]=\"option\"\r\n [disabled]=\"option.disabled\"\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 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 </ng-container>\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 qmslib_related_popup_content\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length,\r\n 'col-6': splitView,\r\n 'col-12': !splitView\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 <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title *ngIf=\"moduleId === module.documentProcess\">\r\n {{ LANG.PROCESSES | uppercase }}\r\n </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isCommonExpanded ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\"\r\n }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_common_002\">\r\n <qms-tree-new\r\n [treeData]=\"treeData1\"\r\n [treeConfig]=\"treeConfig1\"\r\n [selectedData]=\"selectedData\"\r\n [selectedRiskData]=\"selectedRiskData\"\r\n [disabledList]=\"disabledList\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.area)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n (selectFolderEvent)=\"getItemOfFolder($event, dataType.area)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeProcess($event)\"\r\n ></qms-tree-new>\r\n </div>\r\n </mat-expansion-panel>\r\n\r\n <div\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n class=\"line__divider\"\r\n ></div>\r\n\r\n <mat-expansion-panel\r\n hideToggle\r\n *ngIf=\"moduleId === module.documentProcess\"\r\n id=\"qmslib_related_popup_document_001\"\r\n [expanded]=\"isDocumentExpanded\"\r\n (opened)=\"isDocumentExpanded = true\"\r\n (closed)=\"isDocumentExpanded = false\"\r\n class=\"panel-tree\"\r\n >\r\n <mat-expansion-panel-header class=\"padding-5\">\r\n <mat-panel-title> {{ LANG.DOCUMENTS | uppercase }} </mat-panel-title>\r\n <button qms-btn-icon class=\"related_popup_toggle-btn\">\r\n <mat-icon>\r\n {{\r\n isDocumentExpanded ? \"keyboard_arrow_up\" : \"keyboard_arrow_down\"\r\n }}\r\n </mat-icon>\r\n </button>\r\n </mat-expansion-panel-header>\r\n <div id=\"qmslib_related_popup_document_002\">\r\n <qms-tree-new\r\n [treeData]=\"treeData2\"\r\n [treeConfig]=\"treeConfig2\"\r\n [selectedData]=\"selectedData2\"\r\n [disabledList]=\"disabledList2\"\r\n (nodeExpandEvent)=\"getChildrenOfFolder($event, dataType.folder)\"\r\n (selectNodeEvent)=\"selectNodeTreeEvent($event)\"\r\n (getChildNodeSelectOne)=\"getChildNodeSelectOne($event)\"\r\n (selectFolderEvent)=\"getItemOfFolder($event, dataType.folder)\"\r\n [expandOnTitleClick]=\"!splitView\"\r\n [parentNodeOnClick]=\"parentNodeSelected\"\r\n (treeControlNodes)=\"selectTreeControlNodeDocument($event)\"\r\n ></qms-tree-new>\r\n </div>\r\n </mat-expansion-panel>\r\n </div>\r\n <div\r\n *ngIf=\"splitView\"\r\n class=\"qms-scrollbar qmslib-related-popup-splitview qmslib_related_popup_content col-6\"\r\n [ngClass]=\"{\r\n panel__content_item: checkedNodeList.length,\r\n panel__content: !checkedNodeList.length\r\n }\"\r\n >\r\n <div class=\"splitview-header\" *ngIf=\"selectedFolder\">\r\n {{ splitViewTitle }}\r\n </div>\r\n <div class=\"expand-node\" *ngFor=\"let node of itemInSplitview\">\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n [checked]=\"isNodeSelected(node)\"\r\n (change)=\"toggleSelectItem(node)\"\r\n *ngIf=\"!hideSplitviewCheckbox\"\r\n >\r\n </mat-checkbox>\r\n <button\r\n class=\"button-boder\"\r\n mat-icon-button\r\n [disableRipple]=\"true\"\r\n (click)=\"toggleSelectItem(node)\"\r\n *ngIf=\"node.itemName\"\r\n >\r\n <mat-icon\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n >\r\n </mat-icon>\r\n </button>\r\n <span\r\n class=\"text-node-item\"\r\n style=\"cursor: pointer\"\r\n (click)=\"toggleSelectItem(node)\"\r\n [class.bgSelected]=\"\r\n isSelectOne &&\r\n idCheckIconSplitView == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >\r\n <span\r\n class=\"text-node\"\r\n [class.select-one-checked]=\"\r\n isSelectOne &&\r\n idCheckIconSplitView == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >{{ node.itemName }}</span\r\n >\r\n <mat-icon\r\n class=\"select-one-checked\"\r\n *ngIf=\"\r\n isSelectOne &&\r\n idCheckIconSplitView == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >\r\n done\r\n </mat-icon>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"checkedNodeList.length\" class=\"line__divider\"></div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-12\">\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\r\n *ngIf=\"!(treeConfig1?.selectOne || treeConfig2?.selectOne)\"\r\n (click)=\"removeCheckedNodeList(item)\"\r\n >cancel</mat-icon\r\n >\r\n </button>\r\n </div>\r\n </div>\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",
784
784
  encapsulation: ViewEncapsulation.None,
785
- 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:278px}.qmslib__related__popup__container .qmslib-related-popup-splitview{background-color:#fff;border-left:1px solid #ccc;height:450px;overflow-y:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview .splitview-header{height:30px;font-size:12px;letter-spacing:1px;font-family:RALEWAY;font-weight:600;display:flex;align-items:center}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options{padding:0}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node{margin-left:8px;display:flex;align-items:center;min-height:40px}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .text-node-item{margin-left:8px;display:flex;align-items:center;min-height:32px;justify-content:space-between;width:100%}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .text-node-item .select-one-checked{color:#1954a9}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:300px}"]
785
+ styles: ["::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:rgba(0,0,0,.12);background-clip:content-box}::-webkit-scrollbar-thumb{background:rgba(0,0,0,.38);border-radius:20px;width:4px;border:4px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.5);background-clip:content-box;border:4px solid transparent}.qms__popup .button__close{float:right;top:-24px;right:-24px;cursor:pointer}.qms__danger button{border:none;color:var(--text-white);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:var(--button-red-background);margin-left:10px}.qms__danger .yellow{background-color:var(--button-yellow-background);margin-left:10px;color:var(--popup-title-color)}.qms__danger .green{background-color:var(--button-green-background);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:var(--button-background)}.confirm__button__groups .confirm:hover{background:var(--primary-button-background-color);color:var(--primary-button-text-color)}.confirm__button__groups .confirm:disabled{cursor:not-allowed}.confirm__button__groups .cancel{background:var(--button-background)}.confirm__button__groups .cancel:hover{background:var(--primary-button-background-color);color:var(--primary-button-text-color)}.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:var(--background-input-text)}.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:var(--related-item-background);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:var(--related-mat-icon-color);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:278px}.qmslib__related__popup__container .qmslib-related-popup-splitview{background-color:#fff;border-left:1px solid #ccc;height:450px;overflow-y:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content{height:450px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview.panel__content_item{height:350px;overflow:auto;margin-top:12px}.qmslib__related__popup__container .qmslib-related-popup-splitview .splitview-header{font-size:12px;letter-spacing:1px;font-family:RALEWAY;font-weight:600;display:flex;align-items:center}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options{padding:0}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.qmslib__related__popup__container .qmslib-related-popup-splitview .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node{margin-left:8px;display:flex;align-items:center;min-height:40px}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .text-node-item{margin-left:8px;display:flex;align-items:center;min-height:32px;justify-content:space-between;width:100%}.qmslib__related__popup__container .qmslib-related-popup-splitview .expand-node .text-node-item .select-one-checked{color:var(--primary)}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:300px}"]
786
786
  },] }
787
787
  ];
788
788
  SelectProcessDocumentPopupComponent.ctorParameters = () => [
@@ -12,7 +12,7 @@ QMSTableAction.decorators = [
12
12
  host: { 'class': 'qms-table-action' },
13
13
  encapsulation: ViewEncapsulation.None,
14
14
  changeDetection: ChangeDetectionStrategy.OnPush,
15
- styles: [".qms-table-action{border:1px solid #e4e4e4;box-sizing:border-box;border-radius:4px;display:flex;justify-content:space-between;align-items:center;height:46px;width:100%}.qms-table-action .qms-table-action-block{height:inherit;display:inline-flex}.qms-table-action .qms-table-action-block:first-child .qms-button-toggle-group:first-child,.qms-table-action .qms-table-action-block:first-child button:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.qms-table-action .qms-table-action-block:first-child .qms-button-toggle-group:not(:first-child),.qms-table-action .qms-table-action-block:first-child button:not(:first-child){border-left:none}.qms-table-action .qms-table-action-block:last-child .qms-button-toggle-group:last-child,.qms-table-action .qms-table-action-block:last-child button:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.qms-table-action .qms-table-action-block:last-child .qms-button-toggle-group:not(:last-child),.qms-table-action .qms-table-action-block:last-child button:not(:last-child){border-right:none}.qms-table-action [class*=qms-btn],.qms-table-action [class*=qms-button]{height:100%;border-radius:0}.qms-table-action .qms-button-toggle-label-content{line-height:44px;padding:0 9px}.qms-table-action .mat-form-field.qms-search-field .mat-form-field-suffix .mat-icon-button{margin-bottom:0;width:1.5rem;height:1.5rem}.qms-table-action .mat-form-field.qms-search-field .mat-form-field-flex{align-items:center!important;border-radius:0!important;height:46px;border-bottom:none}button.btn-more{display:none}button.btn-more mat-icon{color:#1954a9;vertical-align:middle}#block1,#block2,#block3,#block4{display:none}#block1:checked+.block1,#block2:checked+.block2,#block3:checked+.block3,#block4:checked+.block4,.block1,.block2,.block3,.block4{display:inline-flex}@media (max-width:1199.98px){button.btn-block1{display:inline-block}.block1{display:none}}@media (max-width:991.98px){button.btn-block2{display:inline-block}.block2{display:none}}@media (max-width:767.98px){button.btn-block3{display:inline-block}.block3{display:none}}@media (max-width:575.98px){button.btn-block4{display:inline-block}.block4{display:none}}"]
15
+ styles: [".qms-table-action{border:1px solid #e4e4e4;box-sizing:border-box;border-radius:4px;display:flex;justify-content:space-between;align-items:center;height:46px;width:100%}.qms-table-action .qms-table-action-block{height:inherit;display:inline-flex}.qms-table-action .qms-table-action-block:first-child .qms-button-toggle-group:first-child,.qms-table-action .qms-table-action-block:first-child button:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.qms-table-action .qms-table-action-block:first-child .qms-button-toggle-group:not(:first-child),.qms-table-action .qms-table-action-block:first-child button:not(:first-child){border-left:none}.qms-table-action .qms-table-action-block:last-child .qms-button-toggle-group:last-child,.qms-table-action .qms-table-action-block:last-child button:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.qms-table-action .qms-table-action-block:last-child .qms-button-toggle-group:not(:last-child),.qms-table-action .qms-table-action-block:last-child button:not(:last-child){border-right:none}.qms-table-action [class*=qms-btn],.qms-table-action [class*=qms-button]{height:100%;border-radius:0}.qms-table-action .qms-button-toggle-label-content{line-height:44px;padding:0 9px}.qms-table-action .mat-form-field.qms-search-field .mat-form-field-suffix .mat-icon-button{margin-bottom:0;width:1.5rem;height:1.5rem}.qms-table-action .mat-form-field.qms-search-field .mat-form-field-flex{align-items:center!important;border-radius:0!important;height:46px;border-bottom:none}button.btn-more{display:none}button.btn-more mat-icon{color:var(--primary);vertical-align:middle}#block1,#block2,#block3,#block4{display:none}#block1:checked+.block1,#block2:checked+.block2,#block3:checked+.block3,#block4:checked+.block4,.block1,.block2,.block3,.block4{display:inline-flex}@media (max-width:1199.98px){button.btn-block1{display:inline-block}.block1{display:none}}@media (max-width:991.98px){button.btn-block2{display:inline-block}.block2{display:none}}@media (max-width:767.98px){button.btn-block3{display:inline-block}.block3{display:none}}@media (max-width:575.98px){button.btn-block4{display:inline-block}.block4{display:none}}"]
16
16
  },] }
17
17
  ];
18
18
  QMSTableAction.ctorParameters = () => [
@@ -35,7 +35,7 @@ QMSTableActionBlock.decorators = [
35
35
  },
36
36
  encapsulation: ViewEncapsulation.None,
37
37
  changeDetection: ChangeDetectionStrategy.OnPush,
38
- styles: [".qms-table-action{border:1px solid #e4e4e4;box-sizing:border-box;border-radius:4px;display:flex;justify-content:space-between;align-items:center;height:46px;width:100%}.qms-table-action .qms-table-action-block{height:inherit;display:inline-flex}.qms-table-action .qms-table-action-block:first-child .qms-button-toggle-group:first-child,.qms-table-action .qms-table-action-block:first-child button:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.qms-table-action .qms-table-action-block:first-child .qms-button-toggle-group:not(:first-child),.qms-table-action .qms-table-action-block:first-child button:not(:first-child){border-left:none}.qms-table-action .qms-table-action-block:last-child .qms-button-toggle-group:last-child,.qms-table-action .qms-table-action-block:last-child button:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.qms-table-action .qms-table-action-block:last-child .qms-button-toggle-group:not(:last-child),.qms-table-action .qms-table-action-block:last-child button:not(:last-child){border-right:none}.qms-table-action [class*=qms-btn],.qms-table-action [class*=qms-button]{height:100%;border-radius:0}.qms-table-action .qms-button-toggle-label-content{line-height:44px;padding:0 9px}.qms-table-action .mat-form-field.qms-search-field .mat-form-field-suffix .mat-icon-button{margin-bottom:0;width:1.5rem;height:1.5rem}.qms-table-action .mat-form-field.qms-search-field .mat-form-field-flex{align-items:center!important;border-radius:0!important;height:46px;border-bottom:none}button.btn-more{display:none}button.btn-more mat-icon{color:#1954a9;vertical-align:middle}#block1,#block2,#block3,#block4{display:none}#block1:checked+.block1,#block2:checked+.block2,#block3:checked+.block3,#block4:checked+.block4,.block1,.block2,.block3,.block4{display:inline-flex}@media (max-width:1199.98px){button.btn-block1{display:inline-block}.block1{display:none}}@media (max-width:991.98px){button.btn-block2{display:inline-block}.block2{display:none}}@media (max-width:767.98px){button.btn-block3{display:inline-block}.block3{display:none}}@media (max-width:575.98px){button.btn-block4{display:inline-block}.block4{display:none}}"]
38
+ styles: [".qms-table-action{border:1px solid #e4e4e4;box-sizing:border-box;border-radius:4px;display:flex;justify-content:space-between;align-items:center;height:46px;width:100%}.qms-table-action .qms-table-action-block{height:inherit;display:inline-flex}.qms-table-action .qms-table-action-block:first-child .qms-button-toggle-group:first-child,.qms-table-action .qms-table-action-block:first-child button:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px}.qms-table-action .qms-table-action-block:first-child .qms-button-toggle-group:not(:first-child),.qms-table-action .qms-table-action-block:first-child button:not(:first-child){border-left:none}.qms-table-action .qms-table-action-block:last-child .qms-button-toggle-group:last-child,.qms-table-action .qms-table-action-block:last-child button:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px}.qms-table-action .qms-table-action-block:last-child .qms-button-toggle-group:not(:last-child),.qms-table-action .qms-table-action-block:last-child button:not(:last-child){border-right:none}.qms-table-action [class*=qms-btn],.qms-table-action [class*=qms-button]{height:100%;border-radius:0}.qms-table-action .qms-button-toggle-label-content{line-height:44px;padding:0 9px}.qms-table-action .mat-form-field.qms-search-field .mat-form-field-suffix .mat-icon-button{margin-bottom:0;width:1.5rem;height:1.5rem}.qms-table-action .mat-form-field.qms-search-field .mat-form-field-flex{align-items:center!important;border-radius:0!important;height:46px;border-bottom:none}button.btn-more{display:none}button.btn-more mat-icon{color:var(--primary);vertical-align:middle}#block1,#block2,#block3,#block4{display:none}#block1:checked+.block1,#block2:checked+.block2,#block3:checked+.block3,#block4:checked+.block4,.block1,.block2,.block3,.block4{display:inline-flex}@media (max-width:1199.98px){button.btn-block1{display:inline-block}.block1{display:none}}@media (max-width:991.98px){button.btn-block2{display:inline-block}.block2{display:none}}@media (max-width:767.98px){button.btn-block3{display:inline-block}.block3{display:none}}@media (max-width:575.98px){button.btn-block4{display:inline-block}.block4{display:none}}"]
39
39
  },] }
40
40
  ];
41
41
  QMSTableActionBlock.ctorParameters = () => [
@@ -762,7 +762,7 @@ TreeComponent.decorators = [
762
762
  selector: 'qms-tree',
763
763
  template: "<mat-tree\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"tree__container\"\r\n>\r\n <mat-tree-node\r\n class=\"tree-branch\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodeToggle\r\n matTreeNodePadding\r\n >\r\n <!-- form thu 1 - child -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n >\r\n </mat-checkbox>\r\n\r\n <!-- form thu 2 -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"ml-10 checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <div\r\n class=\"expand-node\"\r\n *ngIf=\"node.name && !onlyFolder\"\r\n [class.bgSelected]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n (click)=\"selectNode(node)\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <div class=\"expand-node__text\">\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.name\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n >\r\n {{ itemIcon }}\r\n </mat-icon>\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.svg\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"itemIconSvg\"\r\n >\r\n </mat-icon>\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.path\"\r\n class=\"mat-icon\"\r\n [src]=\"itemIconPath\"\r\n />\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.base64\"\r\n class=\"mat-icon image-base64\"\r\n [src]=\"getImagePath()\"\r\n />\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.none\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getItemIcon(node)\"\r\n ></mat-icon>\r\n <span\r\n class=\"text-node\"\r\n [class.select-one-checked]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >{{ node.name }}</span\r\n >\r\n </div>\r\n <mat-icon\r\n class=\"select-one-checked\"\r\n *ngIf=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >done</mat-icon\r\n >\r\n </div>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding>\r\n <!-- form thu 1 - parent -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild\"\r\n [checked]=\"descendantsAllSelected(node)\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <button\r\n class=\"button-boder\"\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [disableRipple]=\"!node.hasChild\"\r\n [attr.aria-label]=\"'toggle ' + node.filename\"\r\n *ngIf=\"node.name\"\r\n >\r\n <mat-icon\r\n *ngIf=\"openIcon && closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : closeIconColor\r\n }\"\r\n >{{ getNodeIcon(node) }}</mat-icon\r\n >\r\n <mat-icon\r\n *ngIf=\"!openIcon || !closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngClass]=\"{\r\n 'open-icon': treeControl.isExpanded(node),\r\n 'not-department-icon': moduleId !== dataType.document\r\n }\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n >\r\n </mat-icon>\r\n </button>\r\n <span\r\n *ngIf=\"expandOnTitleClick\"\r\n matTreeNodeToggle\r\n class=\"text-node-parent\"\r\n style=\"cursor: pointer\"\r\n (click)=\"onExpandNode(node)\"\r\n [id]=\"getNodeId(node)\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : '#000000'\r\n }\"\r\n >\r\n <span>{{ node.name }}</span>\r\n </span>\r\n <span\r\n *ngIf=\"!expandOnTitleClick\"\r\n class=\"text-node-parent\"\r\n (click)=\"selectFolderNode(node)\"\r\n style=\"cursor: pointer\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <span\r\n [class.select-one-checked]=\"\r\n treeConfig.selectOne &&\r\n treeConfig.allowSelectFolder &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >{{ node.name }}</span\r\n >\r\n <mat-icon\r\n class=\"select-one-checked\"\r\n *ngIf=\"\r\n treeConfig.selectOne &&\r\n treeConfig.allowSelectFolder &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >done</mat-icon\r\n >\r\n </span>\r\n </mat-tree-node>\r\n</mat-tree>\r\n",
764
764
  encapsulation: ViewEncapsulation.None,
765
- styles: [".tree__container{font-family:Open Sans;font-style:normal;font-weight:400;font-size:.875rem;line-height:19px;color:#323232}.tree__container .mat-tree-node{color:#000;min-height:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options{padding:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.tree__container .button{margin-left:6px}.tree__container .button:focus,.tree__container .button:hover{background-color:#009ef2;border-radius:2px;width:auto}.tree__container .button-boder:focus,.tree__container .button:focus{outline:0}.tree__container .button-folder-boder:focus{outline:0}.tree__container .button-folder-boder:focus,.tree__container .button-folder-boder:hover{background-color:#009ef2;border-radius:2px;width:auto}.tree__container .expand-node{margin-left:8px;min-height:32px;justify-content:space-between;width:100%}.tree__container .expand-node,.tree__container .expand-node .expand-node__text{display:flex;align-items:center}.tree__container .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node.bgSelected .select-one-checked{color:#1954a9}.tree__container .text-node-parent{width:100%;display:flex;align-items:center;justify-content:space-between;margin-left:10px;cursor:pointer}.tree__container .text-node-parent.active-item{color:#1954a9!important}.tree__container .text-node-parent .select-one-checked{color:#1954a9}.tree__container .mr-11{margin-right:11px}.tree__container .ml-10{margin-left:10px}.tree__container .tree-branch:hover{background-color:#e5eefb}.tree__container .image-base64{width:20px;height:20px}.tree__container .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}::ng-deep .mat-tree .mat-checkbox.qms-group-options{padding:0}::ng-deep .mat-tree .mat-checkbox.qms-group-options.mat-checkbox-checked{background-color:transparent}::ng-deep .mat-tree .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:0}svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.open-icon.not-department-icon svg path,.open-icon svg path:first-child{fill:#1954a9}.mat-checkbox.mat-checkbox-disabled.qms-group-options.mat-checkbox-checked .mat-checkbox-background{background-color:#e0e0e0!important}"]
765
+ styles: [".tree__container{font-family:Open Sans;font-style:normal;font-weight:400;font-size:.875rem;line-height:19px;color:var(--default-color)}.tree__container .mat-tree-node{color:var(--tree-node-color);min-height:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options{padding:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.tree__container .button{margin-left:6px}.tree__container .button:focus,.tree__container .button:hover{background-color:var(--tree-node-background-color);border-radius:2px;width:auto}.tree__container .button-boder:focus,.tree__container .button:focus{outline:0}.tree__container .button-folder-boder:focus{outline:0}.tree__container .button-folder-boder:focus,.tree__container .button-folder-boder:hover{background-color:var(--tree-node-boder-color);border-radius:2px;width:auto}.tree__container .expand-node{margin-left:8px;min-height:32px;justify-content:space-between;width:100%}.tree__container .expand-node,.tree__container .expand-node .expand-node__text{display:flex;align-items:center}.tree__container .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node.bgSelected .select-one-checked{color:var(--primary)}.tree__container .text-node-parent{width:100%;display:flex;align-items:center;justify-content:space-between;margin-left:10px;cursor:pointer}.tree__container .text-node-parent.active-item{color:#1954a9!important}.tree__container .text-node-parent .select-one-checked{color:var(--primary)}.tree__container .mr-11{margin-right:11px}.tree__container .ml-10{margin-left:10px}.tree__container .tree-branch:hover{background-color:var(--primary-light-12-opacity)}.tree__container .image-base64{width:20px;height:20px}.tree__container .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}::ng-deep .mat-tree .mat-checkbox.qms-group-options{padding:0}::ng-deep .mat-tree .mat-checkbox.qms-group-options.mat-checkbox-checked{background-color:transparent}::ng-deep .mat-tree .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:0}svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.open-icon.not-department-icon svg path,.open-icon svg path:first-child{fill:#1954a9}.mat-checkbox.mat-checkbox-disabled.qms-group-options.mat-checkbox-checked .mat-checkbox-background{background-color:#e0e0e0!important}"]
766
766
  },] }
767
767
  ];
768
768
  TreeComponent.ctorParameters = () => [
@@ -797,7 +797,7 @@ NewTreeComponent.decorators = [
797
797
  selector: 'qms-tree-new',
798
798
  template: "<mat-tree\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"tree__container\"\r\n>\r\n <mat-tree-node\r\n class=\"tree-branch\"\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodeToggle\r\n matTreeNodePadding\r\n >\r\n <!-- form thu 1 - child -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n >\r\n </mat-checkbox>\r\n\r\n <!-- form thu 2 -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && onlyCheckBoxForChild && !onlyFolder\"\r\n class=\"ml-10 checklist-leaf-node\"\r\n [checked]=\"checklistSelection.isSelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <div\r\n class=\"expand-node\"\r\n *ngIf=\"node.name && !onlyFolder\"\r\n [class.bgSelected]=\"treeConfig.selectOne && idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\"\r\n (click)=\"selectNode(node)\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <div class=\"expand-node__text\">\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.name && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n >\r\n {{ itemIcon }}\r\n </mat-icon>\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.svg && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"itemIconSvg\"\r\n >\r\n </mat-icon>\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.path && !onlyCheckBoxForChild\"\r\n class=\"mat-icon\"\r\n [src]=\"itemIconPath\"\r\n />\r\n\r\n <img\r\n *ngIf=\"displayType === itemIconType.base64 && !onlyCheckBoxForChild\"\r\n class=\"mat-icon image-base64\"\r\n [src]=\"getImagePath()\"\r\n />\r\n\r\n <mat-icon\r\n *ngIf=\"displayType === itemIconType.none && !onlyCheckBoxForChild\"\r\n class=\"mat-icon-rtl-mirror material-icons-outlined\"\r\n [svgIcon]=\"getItemIcon(node)\"\r\n ></mat-icon>\r\n <span class=\"text-node\"\r\n [class.select-one-checked]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\">\r\n {{ node.name }}\r\n </span>\r\n </div>\r\n <mat-icon\r\n class=\"select-one-checked\"\r\n *ngIf=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >done</mat-icon>\r\n </div>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding>\r\n <!-- form thu 1 - parent -->\r\n <mat-checkbox\r\n qms-group-options\r\n [disabled]=\"node.disabled\"\r\n color=\"default\"\r\n *ngIf=\"node.name && showCheckBox && !onlyCheckBoxForChild\"\r\n [checked]=\"descendantsAllSelected(node)\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\"\r\n (change)=\"todoItemSelectionToggle(node)\"\r\n ></mat-checkbox>\r\n <button\r\n class=\"button-boder\"\r\n mat-icon-button\r\n matTreeNodeToggle\r\n [disableRipple]=\"!node.hasChild\"\r\n [attr.aria-label]=\"'toggle ' + node.filename\"\r\n *ngIf=\"node.name\"\r\n (click)=\"onExpandNode(node, treeControl.isExpanded(node))\"\r\n >\r\n <mat-icon\r\n *ngIf=\"openIcon && closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : closeIconColor\r\n }\"\r\n >{{ getNodeIcon(node) }}</mat-icon\r\n >\r\n <mat-icon\r\n *ngIf=\"!openIcon || !closeIcon\"\r\n class=\"mat-icon-rtl-mirror\"\r\n [ngClass]=\"{\r\n 'open-icon': treeControl.isExpanded(node),\r\n 'not-department-icon': moduleId !== dataType.document\r\n }\"\r\n [svgIcon]=\"getNodeIcon(node)\"\r\n >\r\n </mat-icon>\r\n </button>\r\n <span\r\n *ngIf=\"expandOnTitleClick\"\r\n matTreeNodeToggle\r\n class=\"text-node-parent\"\r\n style=\"cursor: pointer\"\r\n (click)=\"onExpandNode(node, treeControl.isExpanded(node))\"\r\n [ngStyle]=\"{\r\n color: treeControl.isExpanded(node) ? openIconColor : '#000000'\r\n }\"\r\n >\r\n <span [class.select-one-checked]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \">{{ node.name }}</span>\r\n <mat-icon\r\n class=\"select-one-checked\"\r\n *ngIf=\"treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\"\r\n >done</mat-icon\r\n >\r\n </span>\r\n <span\r\n *ngIf=\"!expandOnTitleClick\"\r\n class=\"text-node-parent\"\r\n (click)=\"selectFolder(node)\"\r\n style=\"cursor: pointer\"\r\n [id]=\"getNodeId(node)\"\r\n >\r\n <span [class.select-one-checked]=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \">{{ node.name }}</span>\r\n <mat-icon\r\n class=\"select-one-checked\"\r\n *ngIf=\"\r\n treeConfig.selectOne &&\r\n idCheckIcon == idToCheckSelectOne(node.id, node.parentId)\r\n \"\r\n >done</mat-icon>\r\n </span>\r\n </mat-tree-node>\r\n</mat-tree>\r\n",
799
799
  encapsulation: ViewEncapsulation.None,
800
- styles: [".tree__container{font-family:Open Sans;font-style:normal;font-weight:400;font-size:.875rem;line-height:19px;color:#323232}.tree__container .mat-tree-node{color:#000;min-height:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options{padding:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.tree__container .button{margin-left:6px}.tree__container .button:focus,.tree__container .button:hover{background-color:#009ef2;border-radius:2px;width:auto}.tree__container .button-boder:focus,.tree__container .button:focus{outline:0}.tree__container .button-folder-boder:focus{outline:0}.tree__container .button-folder-boder:focus,.tree__container .button-folder-boder:hover{background-color:#009ef2;border-radius:2px;width:auto}.tree__container .expand-node{margin-left:8px;min-height:32px;justify-content:space-between;width:100%}.tree__container .expand-node,.tree__container .expand-node .expand-node__text{display:flex;align-items:center}.tree__container .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node.bgSelected .select-one-checked{color:#1954a9}.tree__container .text-node-parent{width:100%;display:flex;align-items:center;justify-content:space-between;margin-left:10px;cursor:pointer}.tree__container .text-node-parent.active-item{color:#1954a9!important}.tree__container .text-node-parent .select-one-checked{color:#1954a9}.tree__container .mr-11{margin-right:11px}.tree__container .ml-10{margin-left:10px}.tree__container .tree-branch:hover{background-color:#e5eefb}.tree__container .image-base64{width:20px;height:20px}.tree__container .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}::ng-deep .mat-tree .mat-checkbox.qms-group-options{padding:0}::ng-deep .mat-tree .mat-checkbox.qms-group-options.mat-checkbox-checked{background-color:transparent}::ng-deep .mat-tree .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:0}svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.open-icon.not-department-icon svg path,.open-icon svg path:first-child{fill:#1954a9}"]
800
+ styles: [".tree__container{font-family:Open Sans;font-style:normal;font-weight:400;font-size:.875rem;line-height:19px;color:var(--default-color)}.tree__container .mat-tree-node{color:var(--tree-node-color);min-height:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options{padding:0}.tree__container .mat-tree-node .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:11px}.tree__container .button{margin-left:6px}.tree__container .button:focus,.tree__container .button:hover{background-color:var(--tree-node-background-color);border-radius:2px;width:auto}.tree__container .button-boder:focus,.tree__container .button:focus{outline:0}.tree__container .button-folder-boder:focus{outline:0}.tree__container .button-folder-boder:focus,.tree__container .button-folder-boder:hover{background-color:var(--tree-node-boder-color);border-radius:2px;width:auto}.tree__container .expand-node{margin-left:8px;min-height:32px;justify-content:space-between;width:100%}.tree__container .expand-node,.tree__container .expand-node .expand-node__text{display:flex;align-items:center}.tree__container .expand-node .mat-icon{color:rgba(0,0,0,.6);margin-right:17px;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node .mat-icon svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.tree__container .expand-node.bgSelected .select-one-checked{color:var(--primary)}.tree__container .text-node-parent{width:100%;display:flex;align-items:center;justify-content:space-between;margin-left:10px;cursor:pointer}.tree__container .text-node-parent.active-item{color:#1954a9!important}.tree__container .text-node-parent .select-one-checked{color:var(--primary)}.tree__container .mr-11{margin-right:11px}.tree__container .ml-10{margin-left:10px}.tree__container .tree-branch:hover{background-color:var(--primary-light-12-opacity)}.tree__container .image-base64{width:20px;height:20px}.tree__container .mat-checkbox.qms-group-options.mat-checkbox-checked{background:transparent!important}::ng-deep .mat-tree .mat-checkbox.qms-group-options{padding:0}::ng-deep .mat-tree .mat-checkbox.qms-group-options.mat-checkbox-checked{background-color:transparent}::ng-deep .mat-tree .mat-checkbox.qms-group-options .mat-checkbox-inner-container{margin-right:0}svg{display:block;min-width:-webkit-fit-content;min-width:-moz-fit-content;min-width:fit-content}.open-icon.not-department-icon svg path,.open-icon svg path:first-child{fill:#1954a9}"]
801
801
  },] }
802
802
  ];
803
803
  NewTreeComponent.ctorParameters = () => [
@@ -1,4 +1,4 @@
1
- import { Directive, ElementRef, EventEmitter, Input, Output, Renderer2 } from "@angular/core";
1
+ import { Directive, ElementRef, EventEmitter, HostListener, Input, Output, Renderer2 } from "@angular/core";
2
2
  export class QMSTextTruncateDirective {
3
3
  constructor(_el, renderer) {
4
4
  this._el = _el;
@@ -6,7 +6,10 @@ export class QMSTextTruncateDirective {
6
6
  this._maxLines = 1;
7
7
  this.showToolTipChange = new EventEmitter();
8
8
  }
9
- ngAfterViewChecked() {
9
+ ngAfterViewInit() {
10
+ this._truncate();
11
+ }
12
+ onWindowResize() {
10
13
  this._truncate();
11
14
  }
12
15
  set maxLines(value) {
@@ -47,8 +50,9 @@ QMSTextTruncateDirective.ctorParameters = () => [
47
50
  { type: Renderer2 }
48
51
  ];
49
52
  QMSTextTruncateDirective.propDecorators = {
53
+ onWindowResize: [{ type: HostListener, args: ['window:resize',] }],
50
54
  maxLines: [{ type: Input }],
51
55
  showToolTip: [{ type: Input }],
52
56
  showToolTipChange: [{ type: Output }]
53
57
  };
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC10cnVuY2F0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvdGV4dC10cnVuY2F0ZS90ZXh0LXRydW5jYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQWUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0csTUFBTSxPQUFPLHdCQUF3QjtJQUlqQyxZQUFvQixHQUFlLEVBQVUsUUFBbUI7UUFBNUMsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFGeEQsY0FBUyxHQUFXLENBQUMsQ0FBQztRQWVwQixzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBWjFELENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELElBQ0ksUUFBUSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUtELElBQVksRUFBRTtRQUNWLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFDbEMsQ0FBQztJQUVPLFNBQVM7UUFDYixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUztZQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWhELElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFckMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2RCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNoRyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDNUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEdBQUcsWUFBWSxJQUFJLENBQUM7UUFDOUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUMsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLE9BQU8sU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEdBQUcsWUFBWSxFQUFFO1lBQ2hFLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDbkIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxHQUFHLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksR0FBRyxZQUFZO1lBQUUsV0FBVyxHQUFHLElBQUksQ0FBQztRQUU1RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7OztZQWhESixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFO2FBQ3pDOzs7WUFMbUIsVUFBVTtZQUE0QyxTQUFTOzs7dUJBaUI5RSxLQUFLOzBCQUtMLEtBQUs7Z0NBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE91dHB1dCwgUmVuZGVyZXIyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbcW1zLXRleHQtdHJ1bmNhdGVdJyxcclxuICAgIGhvc3Q6IHsgJ2NsYXNzJzogJ3Ftcy10ZXh0LXRydW5jYXRlJyB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBRTVNUZXh0VHJ1bmNhdGVEaXJlY3RpdmUge1xyXG4gICAgcHJpdmF0ZSBfb3JpZ2luVGV4dDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfbWF4TGluZXM6IG51bWJlciA9IDE7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl90cnVuY2F0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgbWF4TGluZXModmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXMuX21heExpbmVzID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCkgc2hvd1Rvb2xUaXA6IGJvb2xlYW47XHJcbiAgICBAT3V0cHV0KCkgc2hvd1Rvb2xUaXBDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgZWwoKTogSFRNTEVsZW1lbnQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3RydW5jYXRlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9vcmlnaW5UZXh0ID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIHRoaXMuX29yaWdpblRleHQgPSB0aGlzLmVsLmlubmVyVGV4dC50cmltKCk7XHJcblxyXG4gICAgICAgIHRoaXMuZWwuaW5uZXJUZXh0ID0gdGhpcy5fb3JpZ2luVGV4dDtcclxuXHJcbiAgICAgICAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuZWwpO1xyXG4gICAgICAgIGNvbnN0IGxpbmVIZWlnaHQgPSBwYXJzZUludChjb21wdXRlZFN0eWxlLmxpbmVIZWlnaHQpO1xyXG4gICAgICAgIGNvbnN0IHBhZGRpbmdZID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdUb3ApICsgcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLnBhZGRpbmdCb3R0b20pO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldEhlaWdodCA9IHRoaXMuX21heExpbmVzICogbGluZUhlaWdodCArIHBhZGRpbmdZO1xyXG4gICAgICAgIHRoaXMuZWwuc3R5bGUubWF4SGVpZ2h0ID0gYCR7dGFyZ2V0SGVpZ2h0fXB4YDtcclxuICAgICAgICBjb25zdCB3b3JkQXJyYXkgPSB0aGlzLl9vcmlnaW5UZXh0LnNwbGl0KCcgJyk7XHJcbiAgICAgICAgbGV0IHNob3dUb29sdGlwID0gZmFsc2U7XHJcbiAgICAgICAgd2hpbGUgKHdvcmRBcnJheS5sZW5ndGggPiAxICYmIHRoaXMuZWwuc2Nyb2xsSGVpZ2h0ID4gdGFyZ2V0SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgIHNob3dUb29sdGlwID0gdHJ1ZTtcclxuICAgICAgICAgICAgd29yZEFycmF5LnBvcCgpO1xyXG4gICAgICAgICAgICB0aGlzLmVsLmlubmVyVGV4dCA9IGAke3dvcmRBcnJheS5qb2luKCcgJyl94oCmYDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZWwuc2Nyb2xsSGVpZ2h0ID4gdGFyZ2V0SGVpZ2h0KSBzaG93VG9vbHRpcCA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd1Rvb2xUaXBDaGFuZ2UuZW1pdChzaG93VG9vbHRpcCk7XHJcbiAgICB9XHJcbn0iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC10cnVuY2F0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9xbXMtYW5ndWxhci9zcmMvbGliL2RpcmVjdGl2ZXMvdGV4dC10cnVuY2F0ZS90ZXh0LXRydW5jYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTTVHLE1BQU0sT0FBTyx3QkFBd0I7SUFJakMsWUFBb0IsR0FBZSxFQUFVLFFBQW1CO1FBQTVDLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRnhELGNBQVMsR0FBVyxDQUFDLENBQUM7UUFvQnBCLHNCQUFpQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFqQjFELENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFHTyxjQUFjO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFDSSxRQUFRLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUMzQixDQUFDO0lBS0QsSUFBWSxFQUFFO1FBQ1YsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztJQUNsQyxDQUFDO0lBRU8sU0FBUztRQUNiLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTO1lBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFaEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUVyQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hHLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUM1RCxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsR0FBRyxZQUFZLElBQUksQ0FBQztRQUM5QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDeEIsT0FBTyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksR0FBRyxZQUFZLEVBQUU7WUFDaEUsV0FBVyxHQUFHLElBQUksQ0FBQztZQUNuQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEdBQUcsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7U0FDakQ7UUFDRCxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxHQUFHLFlBQVk7WUFBRSxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBRTVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7O1lBckRKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUU7YUFDekM7OztZQUxtQixVQUFVO1lBQTZDLFNBQVM7Ozs2QkFpQi9FLFlBQVksU0FBQyxlQUFlO3VCQUs1QixLQUFLOzBCQUtMLEtBQUs7Z0NBQ0wsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIFJlbmRlcmVyMiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW3Ftcy10ZXh0LXRydW5jYXRlXScsXHJcbiAgICBob3N0OiB7ICdjbGFzcyc6ICdxbXMtdGV4dC10cnVuY2F0ZScgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUU1TVGV4dFRydW5jYXRlRGlyZWN0aXZlIHtcclxuICAgIHByaXZhdGUgX29yaWdpblRleHQ6IHN0cmluZztcclxuICAgIHByaXZhdGUgX21heExpbmVzOiBudW1iZXIgPSAxO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdHJ1bmNhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICAgIHByaXZhdGUgb25XaW5kb3dSZXNpemUoKSB7XHJcbiAgICAgICAgdGhpcy5fdHJ1bmNhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IG1heExpbmVzKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9tYXhMaW5lcyA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpIHNob3dUb29sVGlwOiBib29sZWFuO1xyXG4gICAgQE91dHB1dCgpIHNob3dUb29sVGlwQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIHByaXZhdGUgZ2V0IGVsKCk6IEhUTUxFbGVtZW50IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZWwubmF0aXZlRWxlbWVudDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF90cnVuY2F0ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fb3JpZ2luVGV4dCA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgICB0aGlzLl9vcmlnaW5UZXh0ID0gdGhpcy5lbC5pbm5lclRleHQudHJpbSgpO1xyXG5cclxuICAgICAgICB0aGlzLmVsLmlubmVyVGV4dCA9IHRoaXMuX29yaWdpblRleHQ7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsKTtcclxuICAgICAgICBjb25zdCBsaW5lSGVpZ2h0ID0gcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5saW5lSGVpZ2h0KTtcclxuICAgICAgICBjb25zdCBwYWRkaW5nWSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nVG9wKSArIHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5wYWRkaW5nQm90dG9tKTtcclxuICAgICAgICBjb25zdCB0YXJnZXRIZWlnaHQgPSB0aGlzLl9tYXhMaW5lcyAqIGxpbmVIZWlnaHQgKyBwYWRkaW5nWTtcclxuICAgICAgICB0aGlzLmVsLnN0eWxlLm1heEhlaWdodCA9IGAke3RhcmdldEhlaWdodH1weGA7XHJcbiAgICAgICAgY29uc3Qgd29yZEFycmF5ID0gdGhpcy5fb3JpZ2luVGV4dC5zcGxpdCgnICcpO1xyXG4gICAgICAgIGxldCBzaG93VG9vbHRpcCA9IGZhbHNlO1xyXG4gICAgICAgIHdoaWxlICh3b3JkQXJyYXkubGVuZ3RoID4gMSAmJiB0aGlzLmVsLnNjcm9sbEhlaWdodCA+IHRhcmdldEhlaWdodCkge1xyXG4gICAgICAgICAgICBzaG93VG9vbHRpcCA9IHRydWU7XHJcbiAgICAgICAgICAgIHdvcmRBcnJheS5wb3AoKTtcclxuICAgICAgICAgICAgdGhpcy5lbC5pbm5lclRleHQgPSBgJHt3b3JkQXJyYXkuam9pbignICcpfeKApmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmVsLnNjcm9sbEhlaWdodCA+IHRhcmdldEhlaWdodCkgc2hvd1Rvb2x0aXAgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLnNob3dUb29sVGlwQ2hhbmdlLmVtaXQoc2hvd1Rvb2x0aXApO1xyXG4gICAgfVxyXG59Il19
@@ -409,4 +409,4 @@ class KitchenSinkService {
409
409
  }
410
410
  }
411
411
  export default KitchenSinkService;
412
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0Y2hlbnNpbmstc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL2Zsb3djaGFydC9zZXJ2aWNlL2tpdGNoZW5zaW5rLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7b0ZBVW9GOztBQUVwRiw0Q0FBNEM7QUFDNUMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLFlBQVksTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLGVBQWUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLGdCQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8saUJBQWlCLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXpFLE1BQU0sa0JBQWtCO0lBNkJwQixZQUNJLEVBQVcsRUFDWCxlQUFnQyxFQUNoQyxJQUFTO1FBNFdiLDJDQUEyQztRQUMzQyxxQkFBZ0IsR0FBRyxtREFBbUQsQ0FBQztRQTNXbkUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFFYiwrQkFBK0I7UUFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNoQiw2QkFBNkIsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7U0FDNUQsQ0FBQyxDQUFDO1FBRUgsSUFB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QUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDOUQ7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBSztRQUNsQixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUNoRCxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM5RDthQUNJO1lBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUNoRCxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM3RDtJQUNMLENBQUM7Q0FDSjtBQUVELGVBQWUsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgUmFwcGlkIHYzLjMuMCAtIEhUTUw1IERpYWdyYW1taW5nIEZyYW1ld29ya1xyXG5cclxuQ29weXJpZ2h0IChjKSAyMDIxIGNsaWVudCBJT1xyXG5cclxuIDIwMjEtMDItMTIgXHJcblxyXG5cclxuVGhpcyBTb3VyY2UgQ29kZSBGb3JtIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoZSBSYXBwaWQgTGljZW5zZVxyXG4sIHYuIDIuMC4gSWYgYSBjb3B5IG9mIHRoZSBSYXBwaWQgTGljZW5zZSB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpc1xyXG5maWxlLCBZb3UgY2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL2pvaW50anMuY29tL2xpY2Vuc2UvcmFwcGlkX3YyLnR4dFxyXG4gb3IgZnJvbSB0aGUgUmFwcGlkIGFyY2hpdmUgYXMgd2FzIGRpc3RyaWJ1dGVkIGJ5IGNsaWVudCBJTy4gU2VlIHRoZSBMSUNFTlNFIGZpbGUuKi9cclxuXHJcbi8vIGltcG9ydCAqIGFzIGpvaW50IGZyb20gJ0BjbGllbnRpby9yYXBwaWQnXHJcbmltcG9ydCAqIGFzIGRhZ3JlIGZyb20gJ2RhZ3JlJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBLZXlib2FyZFNlcnZpY2UgfSBmcm9tICcuL2tleWJvYXJkLXNlcnZpY2UnO1xyXG5pbXBvcnQgKiBhcyBhcHBTaGFwZXMgZnJvbSAnLi4vbW9kZWxzL2FwcC1zaGFwZXMnO1xyXG5pbXBvcnQgSGFsb0Z1bmN0aW9uIGZyb20gJy4uL2NvbmZpZy9oYWxvLmZ1bmN0aW9uJztcclxuaW1wb3J0IFN0ZW5jaWxGdW5jdGlvbiBmcm9tICcuLi9jb25maWcvc3RlbmNpbC5mdW5jdGlvbic7XHJcbmltcG9ydCBUb29sYmFydEZ1bmN0aW9uIGZyb20gJy4uL2NvbmZpZy90b29sYmFyLmZ1bmN0aW9uJztcclxuaW1wb3J0IEluc3BlY3RvckZ1bmN0aW9uIGZyb20gJy4uL2NvbmZpZy9pbnNwZWN0b3IuZnVuY3Rpb24nO1xyXG5pbXBvcnQgeyBGbG93Q2hhcnRDb25zdCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ja2VkaXRvckZsb3djaGFydC5jb25zdCc7XHJcbmRlY2xhcmUgdmFyIGpvaW50OiBhbnk7XHJcbmNsYXNzIEtpdGNoZW5TaW5rU2VydmljZSB7XHJcbiAgICBMQU5HOiBhbnlcclxuICAgIGVsOiBFbGVtZW50O1xyXG5cclxuICAgIC8vIGdyYXBoOiBqb2ludC5kaWEuR3JhcGg7XHJcbiAgICAvLyBwYXBlcjogam9pbnQuZGlhLlBhcGVyO1xyXG4gICAgLy8gcGFwZXJTY3JvbGxlcjogam9pbnQudWkuUGFwZXJTY3JvbGxlcjtcclxuXHJcbiAgICAvLyBjb21tYW5kTWFuYWdlcjogam9pbnQuZGlhLkNvbW1hbmRNYW5hZ2VyO1xyXG4gICAgLy8gc25hcGxpbmVzOiBqb2ludC51aS5TbmFwbGluZXM7XHJcbiAgICAvLyBjbGlwYm9hcmQ6IGpvaW50LnVpLkNsaXBib2FyZDtcclxuICAgIC8vIHNlbGVjdGlvbjogam9pbnQudWkuU2VsZWN0aW9uO1xyXG4gICAgLy8gbmF2aWdhdG9yOiBqb2ludC51aS5OYXZpZ2F0b3I7XHJcbiAgICAvLyBzdGVuY2lsOiBqb2ludC51aS5TdGVuY2lsXHJcbiAgICAvLyB0b29sYmFyOiBqb2ludC51aS5Ub29sYmFyXHJcbiAgICBncmFwaDogYW55O1xyXG4gICAgcGFwZXI6IGFueTtcclxuICAgIHBhcGVyU2Nyb2xsZXI6IGFueTtcclxuXHJcbiAgICBjb21tYW5kTWFuYWdlcjogYW55O1xyXG4gICAgc25hcGxpbmVzOiBhbnk7XHJcbiAgICBjbGlwYm9hcmQ6IGFueTtcclxuICAgIHNlbGVjdGlvbjogYW55O1xyXG4gICAgbmF2aWdhdG9yOiBhbnk7XHJcbiAgICBzdGVuY2lsOiBhbnk7XHJcbiAgICB0b29sYmFyOiBhbnk7XHJcblxyXG4gICAga2V5Ym9hcmRTZXJ2aWNlOiBLZXlib2FyZFNlcnZpY2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgZWw6IEVsZW1lbnQsXHJcbiAgICAgICAga2V5Ym9hcmRTZXJ2aWNlOiBLZXlib2FyZFNlcnZpY2UsXHJcbiAgICAgICAgTEFORzogYW55XHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLmVsID0gZWw7XHJcblxyXG4gICAgICAgIC8vIGFwcGx5IGN1cnJlbnQgam9pbnQganMgdGhlbWVcclxuICAgICAgICBjb25zdCB2aWV3ID0gbmV3IGpvaW50Lm12Yy5WaWV3KHsgZWwgfSk7XHJcbiAgICAgICAgdmlldy5kZWxlZ2F0ZUV2ZW50cyh7XHJcbiAgICAgICAgICAgICdtb3VzZXVwIGlucHV0W3R5cGU9XCJyYW5nZVwiXSc6IChldnQpID0+IGV2dC50YXJnZXQuYmx1cigpXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMua2V5Ym9hcmRTZXJ2aWNlID0ga2V5Ym9hcmRTZXJ2aWNlO1xyXG4gICAgICAgIHRoaXMuTEFORyA9IExBTkdcclxuICAgIH1cclxuXHJcbiAgICBzdGFydFJhcHBpZCgpIHtcclxuXHJcbiAgICAgICAgam9pbnQuc2V0VGhlbWUoJ21vZGVybicpO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRpYWxpemVQYXBlcigpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVN0ZW5jaWwoKTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVTZWxlY3Rpb24oKTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVUb29sc0FuZEluc3BlY3RvcigpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZU5hdmlnYXRvcigpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRvb2xiYXIoKTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVLZXlib2FyZFNob3J0Y3V0cygpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRvb2x0aXBzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZVBhcGVyKCkge1xyXG5cclxuICAgICAgICBjb25zdCBncmFwaCA9IHRoaXMuZ3JhcGggPSBuZXcgam9pbnQuZGlhLkdyYXBoKHt9LCB7XHJcbiAgICAgICAgICAgIGNlbGxOYW1lc3BhY2U6IGFwcFNoYXBlc1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBncmFwaC5vbignYWRkJywgKGNlbGw6IGFueSwgY29sbGVjdGlvbjogYW55LCBvcHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAob3B0LnN0ZW5jaWwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqb2ludC51aS5JbnNwZWN0b3IuY3JlYXRlKCcuaW5zcGVjdG9yLWNvbnRhaW5lcicsIF8uZXh0ZW5kKHtcclxuICAgICAgICAgICAgICAgICAgICBjZWxsOiBjZWxsXHJcbiAgICAgICAgICAgICAgICB9LCBJbnNwZWN0b3JGdW5jdGlvbi5nZXRJbnNwZWN0b3JDb25maWd1cmF0aW9uKHRoaXMuTEFORylbY2VsbC5nZXQoJ3R5cGUnKV0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyID0gbmV3IGpvaW50LmRpYS5Db21tYW5kTWFuYWdlcih7IGdyYXBoOiBncmFwaCB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFwZXIgPSB0aGlzLnBhcGVyID0gbmV3IGpvaW50LmRpYS5QYXBlcih7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAwLFxyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMDAsXHJcbiAgICAgICAgICAgIGdyaWRTaXplOiAxMCxcclxuICAgICAgICAgICAgZHJhd0dyaWQ6IHRydWUsXHJcbiAgICAgICAgICAgIG1vZGVsOiBncmFwaCxcclxuICAgICAgICAgICAgY2VsbFZpZXdOYW1lc3BhY2U6IGFwcFNoYXBlcyxcclxuICAgICAgICAgICAgZGVmYXVsdExpbms6IDx1bmtub3duPm5ldyBhcHBTaGFwZXMuYXBwLkxpbmsoKSxcclxuICAgICAgICAgICAgZGVmYXVsdENvbm5lY3Rpb25Qb2ludDogYXBwU2hhcGVzLmFwcC5MaW5rLmNvbm5lY3Rpb25Qb2ludCxcclxuICAgICAgICAgICAgaW50ZXJhY3RpdmU6IHsgbGlua01vdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgICAgIGFzeW5jOiB0cnVlLFxyXG4gICAgICAgICAgICBzb3J0aW5nOiBqb2ludC5kaWEuUGFwZXIuc29ydGluZy5BUFBST1hcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcGFwZXIub24oJ2JsYW5rOm1vdXNld2hlZWwnLCBfLnBhcnRpYWwodGhpcy5vbk1vdXNld2hlZWwsIG51bGwpLCB0aGlzKTtcclxuICAgICAgICBwYXBlci5vbignY2VsbDptb3VzZXdoZWVsJywgdGhpcy5vbk1vdXNld2hlZWwuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgICAgIHRoaXMuc25hcGxpbmVzID0gbmV3IGpvaW50LnVpLlNuYXBsaW5lcyh7IHBhcGVyOiBwYXBlciB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFwZXJTY3JvbGxlciA9IHRoaXMucGFwZXJTY3JvbGxlciA9IG5ldyBqb2ludC51aS5QYXBlclNjcm9sbGVyKHtcclxuICAgICAgICAgICAgcGFwZXIsXHJcbiAgICAgICAgICAgIGF1dG9SZXNpemVQYXBlcjogdHJ1ZSxcclxuICAgICAgICAgICAgc2Nyb2xsV2hpbGVEcmFnZ2luZzogdHJ1ZSxcclxuICAgICAgICAgICAgY3Vyc29yOiAnZ3JhYidcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJQbHVnaW4oJy5wYXBlci1jb250YWluZXInLCBwYXBlclNjcm9sbGVyKTtcclxuICAgICAgICBwYXBlclNjcm9sbGVyLnJlbmRlcigpLmNlbnRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemVTdGVuY2lsKCkge1xyXG5cclxuICAgICAgICB0aGlzLnN0ZW5jaWwgPSBuZXcgam9pbnQudWkuU3RlbmNpbCh7XHJcbiAgICAgICAgICAgIHBhcGVyOiB0aGlzLnBhcGVyU2Nyb2xsZXIsXHJcbiAgICAgICAgICAgIHNuYXBsaW5lczogdGhpcy5zbmFwbGluZXMsXHJcbiAgICAgICAgICAgIHdpZHRoOiAyNDAsXHJcbiAgICAgICAgICAgIGdyb3VwczogU3RlbmNpbEZ1bmN0aW9uLmdldFN0ZW5jaWxHcm91cHMoKSxcclxuICAgICAgICAgICAgZHJvcEFuaW1hdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgZ3JvdXBzVG9nZ2xlQnV0dG9uczogdHJ1ZSxcclxuICAgICAgICAgICAgcGFwZXJPcHRpb25zOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZGVsOiBuZXcgam9pbnQuZGlhLkdyYXBoKHt9LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxOYW1lc3BhY2U6IGFwcFNoYXBlc1xyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgIGNlbGxWaWV3TmFtZXNwYWNlOiBhcHBTaGFwZXNcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNlYXJjaDoge1xyXG4gICAgICAgICAgICAgICAgJyonOiBbJ3R5cGUnLCAnYXR0cnMvdGV4dC90ZXh0JywgJ2F0dHJzL3Jvb3QvZGF0YVRvb2x0aXAnLCAnYXR0cnMvbGFiZWwvdGV4dCddLFxyXG4gICAgICAgICAgICAgICAgJ29yZy5NZW1iZXInOiBbJ2F0dHJzLy5yYW5rL3RleHQnLCAnYXR0cnMvcm9vdC9kYXRhVG9vbHRpcCcsICdhdHRycy8ubmFtZS90ZXh0J11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy8gVXNlIGRlZmF1bHQgR3JpZCBMYXlvdXRcclxuICAgICAgICAgICAgbGF5b3V0OiB0cnVlLFxyXG4gICAgICAgICAgICAvLyBSZW1vdmUgdG9vbHRpcCBkZWZpbml0aW9uIGZyb20gY2xvbmVcclxuICAgICAgICAgICAgZHJhZ1N0YXJ0Q2xvbmU6IChjZWxsOiBhbnkpID0+IGNlbGwuY2xvbmUoKS5yZW1vdmVBdHRyKCdyb290L2RhdGFUb29sdGlwJylcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnJlbmRlclBsdWdpbignLnN0ZW5jaWwtY29udGFpbmVyJywgdGhpcy5zdGVuY2lsKTtcclxuICAgICAgICB0aGlzLnN0ZW5jaWwubG9hZChTdGVuY2lsRnVuY3Rpb24uZ2V0U3RlbmNpbFNoYXBlcyh0aGlzLkxBTkcpKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplU2VsZWN0aW9uKCkge1xyXG5cclxuICAgICAgICB0aGlzLmNsaXBib2FyZCA9IG5ldyBqb2ludC51aS5DbGlwYm9hcmQoKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IG5ldyBqb2ludC51aS5TZWxlY3Rpb24oeyBwYXBlcjogdGhpcy5wYXBlciwgdXNlTW9kZWxHZW9tZXRyeTogdHJ1ZSB9KTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLm9uKCdyZXNldCBhZGQgcmVtb3ZlJywgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAgICAgY29uc3Qga2V5Ym9hcmQgPSB0aGlzLmtleWJvYXJkU2VydmljZS5rZXlib2FyZDtcclxuXHJcbiAgICAgICAgLy8gSW5pdGlhdGUgc2VsZWN0aW5nIHdoZW4gdGhlIHVzZXIgZ3JhYnMgdGhlIGJsYW5rIGFyZWEgb2YgdGhlIHBhcGVyIHdoaWxlIHRoZSBTaGlmdCBrZXkgaXMgcHJlc3NlZC5cclxuICAgICAgICAvLyBPdGhlcndpc2UsIGluaXRpYXRlIHBhcGVyIHBhbi5cclxuICAgICAgICB0aGlzLnBhcGVyLm9uKCdibGFuazpwb2ludGVyZG93bicsIChldnQ6IGFueSwgeDogbnVtYmVyLCB5OiBudW1iZXIpID0+IHtcclxuXHJcbiAgICAgICAgICAgIGlmIChrZXlib2FyZC5pc0FjdGl2ZSgnc2hpZnQnLCBldnQpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zdGFydFNlbGVjdGluZyhldnQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY29sbGVjdGlvbi5yZXNldChbXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcGVyU2Nyb2xsZXIuc3RhcnRQYW5uaW5nKGV2dCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcGVyLnJlbW92ZVRvb2xzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXBlci5vbignZWxlbWVudDpwb2ludGVyZG93bicsIChlbGVtZW50VmlldzogYW55LCBldnQ6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgLy8gU2VsZWN0IGFuIGVsZW1lbnQgaWYgQ1RSTC9NZXRhIGtleSBpcyBwcmVzc2VkIHdoaWxlIHRoZSBlbGVtZW50IGlzIGNsaWNrZWQuXHJcbiAgICAgICAgICAgIGlmIChrZXlib2FyZC5pc0FjdGl2ZSgnY3RybCBtZXRhJywgZXZ0KSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uLmNvbGxlY3Rpb24uZmluZChmdW5jdGlvbiAoY2VsbCkgeyByZXR1cm4gY2VsbC5pc0xpbmsoKSB9KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCBhbGxvdyBtaXhpbmcgbGlua3MgYW5kIGVsZW1lbnRzIGluIHRoZSBzZWxlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLnJlc2V0KFtlbGVtZW50Vmlldy5tb2RlbF0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLmFkZChlbGVtZW50Vmlldy5tb2RlbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLm9uKCdzZWxlY3Rpb24tYm94OnBvaW50ZXJkb3duJywgKGVsZW1lbnRWaWV3OiBhbnksIGV2dDogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBVbnNlbGVjdCBhbiBlbGVtZW50IGlmIHRoZSBDVFJML01ldGEga2V5IGlzIHByZXNzZWQgd2hpbGUgYSBzZWxlY3RlZCBlbGVtZW50IGlzIGNsaWNrZWQuXHJcbiAgICAgICAgICAgIGlmIChrZXlib2FyZC5pc0FjdGl2ZSgnY3RybCBtZXRhJywgZXZ0KSkge1xyXG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLnJlbW92ZShlbGVtZW50Vmlldy5tb2RlbCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0SW1hZ2VDb250ZW50KCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBhcGVyLnRvUE5HKChpbWFnZURhdGEpID0+IHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoaW1hZ2VEYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SnNvbkNvbnRlbnQoKSB7XHJcbiAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuZ3JhcGgudG9KU09OKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VsZWN0aW9uQ2hhbmdlKCkge1xyXG4gICAgICAgIGNvbnN0IHsgcGFwZXIsIHNlbGVjdGlvbiB9ID0gdGhpcztcclxuICAgICAgICBjb25zdCB7IGNvbGxlY3Rpb24gfSA9IHNlbGVjdGlvbjtcclxuICAgICAgICBwYXBlci5yZW1vdmVUb29scygpO1xyXG4gICAgICAgIGpvaW50LnVpLkhhbG8uY2xlYXIocGFwZXIpO1xyXG4gICAgICAgIGpvaW50LnVpLkZyZWVUcmFuc2Zvcm0uY2xlYXIocGFwZXIpO1xyXG4gICAgICAgIGpvaW50LnVpLkluc3BlY3Rvci5jbG9zZSgpO1xyXG4gICAgICAgIGlmIChjb2xsZWN0aW9uLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBjb25zdCBwcmltYXJ5Q2VsbDogYW55ID0gY29sbGVjdGlvbi5maXJzdCgpO1xyXG4gICAgICAgICAgICBjb25zdCBwcmltYXJ5Q2VsbFZpZXcgPSBwYXBlci5yZXF1aXJlVmlldyhwcmltYXJ5Q2VsbCk7XHJcbiAgICAgICAgICAgIHNlbGVjdGlvbi5kZXN0cm95U2VsZWN0aW9uQm94KHByaW1hcnlDZWxsKTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RQcmltYXJ5Q2VsbChwcmltYXJ5Q2VsbFZpZXcpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29sbGVjdGlvbi5sZW5ndGggPT09IDIpIHtcclxuICAgICAgICAgICAgY29sbGVjdGlvbi5lYWNoKGZ1bmN0aW9uIChjZWxsOiBhbnkpIHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdGlvbi5jcmVhdGVTZWxlY3Rpb25Cb3goY2VsbCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RQcmltYXJ5Q2VsbChjZWxsVmlldzogYW55KSB7XHJcbiAgICAgICAgY29uc3QgY2VsbCA9IGNlbGxWaWV3Lm1vZGVsO1xyXG4gICAgICAgIGlmIChjZWxsLmlzRWxlbWVudCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0UHJpbWFyeUVsZW1lbnQoY2VsbFZpZXcpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0UHJpbWFyeUxpbmsoY2VsbFZpZXcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBqb2ludC51aS5JbnNwZWN0b3IuY3JlYXRlKCcuaW5zcGVjdG9yLWNvbnRhaW5lcicsIF8uZXh0ZW5kKHtcclxuICAgICAgICAgICAgY2VsbDogY2VsbFxyXG4gICAgICAgIH0sIEluc3BlY3RvckZ1bmN0aW9uLmdldEluc3BlY3RvckNvbmZpZ3VyYXRpb24odGhpcy5MQU5HKVtjZWxsLmdldCgndHlwZScpXSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdFByaW1hcnlFbGVtZW50KGVsZW1lbnRWaWV3OiBhbnkpIHtcclxuXHJcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRWaWV3Lm1vZGVsO1xyXG5cclxuICAgICAgICBuZXcgam9pbnQudWkuRnJlZVRyYW5zZm9ybSh7XHJcbiAgICAgICAgICAgIGNlbGxWaWV3OiBlbGVtZW50VmlldyxcclxuICAgICAgICAgICAgYWxsb3dSb3RhdGlvbjogZmFsc2UsXHJcbiAgICAgICAgICAgIHByZXNlcnZlQXNwZWN0UmF0aW86ICEhZWxlbWVudC5nZXQoJ3ByZXNlcnZlQXNwZWN0UmF0aW8nKSxcclxuICAgICAgICAgICAgYWxsb3dPcnRob2dvbmFsUmVzaXplOiBlbGVtZW50LmdldCgnYWxsb3dPcnRob2dvbmFsUmVzaXplJykgIT09IGZhbHNlXHJcbiAgICAgICAgfSkucmVuZGVyKCk7XHJcblxyXG4gICAgICAgIG5ldyBqb2ludC51aS5IYWxvKHtcclxuICAgICAgICAgICAgY2VsbFZpZXc6IGVsZW1lbnRWaWV3LFxyXG4gICAgICAgICAgICBoYW5kbGVzOiBIYWxvRnVuY3Rpb24uZ2V0SGFsb0NvbmZpZ3VyYXRpb24odGhpcy5MQU5HKSxcclxuICAgICAgICAgICAgdXNlTW9kZWxHZW9tZXRyeTogdHJ1ZVxyXG4gICAgICAgIH0pLnJlbmRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdFByaW1hcnlMaW5rKGxpbmtWaWV3OiBhbnkpIHtcclxuXHJcbiAgICAgICAgY29uc3QgbnMgPSBqb2ludC5saW5rVG9vbHM7XHJcbiAgICAgICAgY29uc3QgdG9vbHNWaWV3ID0gbmV3IGpvaW50LmRpYS5Ub29sc1ZpZXcoe1xyXG4gICAgICAgICAgICBuYW1lOiAnbGluay1wb2ludGVyZG93bicsXHJcbiAgICAgICAgICAgIHRvb2xzOiBbXHJcbiAgICAgICAgICAgICAgICBuZXcgbnMuVmVydGljZXMoKSxcclxuICAgICAgICAgICAgICAgIG5ldyBucy5Tb3VyY2VBbmNob3IoKSxcclxuICAgICAgICAgICAgICAgIG5ldyBucy5UYXJnZXRBbmNob3IoKSxcclxuICAgICAgICAgICAgICAgIG5ldyBucy5Tb3VyY2VBcnJvd2hlYWQoKSxcclxuICAgICAgICAgICAgICAgIG5ldyBucy5UYXJnZXRBcnJvd2hlYWQoKSxcclxuICAgICAgICAgICAgICAgIG5ldyBucy5TZWdtZW50cyxcclxuICAgICAgICAgICAgICAgIG5ldyBucy5Cb3VuZGFyeSh7IHBhZGRpbmc6IDE1IH0pLFxyXG4gICAgICAgICAgICAgICAgbmV3IG5zLlJlbW92ZSh7IG9mZnNldDogLTIwLCBkaXN0YW5jZTogNDAgfSlcclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBsaW5rVmlldy5hZGRUb29scyh0b29sc1ZpZXcpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemVUb29sc0FuZEluc3BlY3RvcigpIHtcclxuXHJcbiAgICAgICAgdGhpcy5wYXBlci5vbignY2VsbDpwb2ludGVydXAnLCAoY2VsbFZpZXc6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjZWxsID0gY2VsbFZpZXcubW9kZWw7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgY29sbGVjdGlvbiB9ID0gdGhpcy5zZWxlY3Rpb247XHJcbiAgICAgICAgICAgIGlmIChjb2xsZWN0aW9uLmluY2x1ZGVzKGNlbGwpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICBjb2xsZWN0aW9uLnJlc2V0KFtjZWxsXSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMucGFwZXIub24oJ2xpbms6bW91c2VlbnRlcicsIChsaW5rVmlldzogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBPcGVuIHRvb2wgb25seSBpZiB0aGVyZSBpcyBub25lIHlldFxyXG4gICAgICAgICAgICBpZiAobGlua1ZpZXcuaGFzVG9vbHMoKSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG5zID0gam9pbnQubGlua1Rvb2xzO1xyXG4gICAgICAgICAgICBjb25zdCB0b29sc1ZpZXcgPSBuZXcgam9pbnQuZGlhLlRvb2xzVmlldyh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnbGluay1ob3ZlcicsXHJcbiAgICAgICAgICAgICAgICB0b29sczogW1xyXG4gICAgICAgICAgICAgICAgICAgIG5ldyBucy5WZXJ0aWNlcyh7IHZlcnRleEFkZGluZzogZmFsc2UgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IG5zLlNvdXJjZUFycm93aGVhZCgpLFxyXG4gICAgICAgICAgICAgICAgICAgIG5ldyBucy5UYXJnZXRBcnJvd2hlYWQoKVxyXG4gICAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGxpbmtWaWV3LmFkZFRvb2xzKHRvb2xzVmlldyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMucGFwZXIub24oJ2xpbms6bW91c2VsZWF2ZScsIChsaW5rVmlldzogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBSZW1vdmUgb25seSB0aGUgaG92ZXIgdG9vbCwgbm90IHRoZSBwb2ludGVyZG93biB0b29sXHJcbiAgICAgICAgICAgIGlmIChsaW5rVmlldy5oYXNUb29scygnbGluay1ob3ZlcicpKSB7XHJcbiAgICAgICAgICAgICAgICBsaW5rVmlldy5yZW1vdmVUb29scygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZ3JhcGgub24oJ2NoYW5nZScsIChjZWxsOiBhbnksIG9wdDogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNlbGwuaXNMaW5rKCkgfHwgIW9wdC5pbnNwZWN0b3IpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBucyA9IGpvaW50LmxpbmtUb29scztcclxuICAgICAgICAgICAgY29uc3QgdG9vbHNWaWV3ID0gbmV3IGpvaW50LmRpYS5Ub29sc1ZpZXcoe1xyXG4gICAgICAgICAgICAgICAgbmFtZTogJ2xpbmstaW5zcGVjdGVkJyxcclxuICAgICAgICAgICAgICAgIHRvb2xzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IG5zLkJvdW5kYXJ5KHsgcGFkZGluZzogMTUgfSksXHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgY2VsbC5maW5kVmlldyh0aGlzLnBhcGVyKS5hZGRUb29scyh0b29sc1ZpZXcpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemVOYXZpZ2F0b3IoKSB7XHJcblxyXG4gICAgICAgIGNvbnN0IG5hdmlnYXRvciA9IHRoaXMubmF2aWdhdG9yID0gbmV3IGpvaW50LnVpLk5hdmlnYXRvcih7XHJcbiAgICAgICAgICAgIHdpZHRoOiAyNDAsXHJcbiAgICAgICAgICAgIGhlaWdodDogMTE1LFxyXG4gICAgICAgICAgICBwYXBlclNjcm9sbGVyOiB0aGlzLnBhcGVyU2Nyb2xsZXIsXHJcbiAgICAgICAgICAgIHpvb206IGZhbHNlLFxyXG4gICAgICAgICAgICBwYXBlck9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIGFzeW5jOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgc29ydGluZzogam9pbnQuZGlhLlBhcGVyLnNvcnRpbmcuTk9ORSxcclxuICAgICAgICAgICAgICAgIGVsZW1lbnRWaWV3OiBhcHBTaGFwZXMuTmF2aWdhdG9yRWxlbWVudFZpZXcsXHJcbiAgICAgICAgICAgICAgICBsaW5rVmlldzogYXBwU2hhcGVzLk5hdmlnYXRvckxpbmtWaWV3LFxyXG4gICAgICAgICAgICAgICAgY2VsbFZpZXdOYW1lc3BhY2U6IHsgLyogbm8gb3RoZXIgdmlld3MgYXJlIGFjY2Vzc2libGUgaW4gdGhlIG5hdmlnYXRvciAqLyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJQbHVnaW4oJy5uYXZpZ2F0b3ItY29udGFpbmVyJywgbmF2aWdhdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplVG9vbGJhcigpIHtcclxuICAgICAgICBjb25zdCB7IGdyb3VwcywgdG9vbHMgfSA9IFRvb2xiYXJ0RnVuY3Rpb24uZ2V0VG9vbGJhckNvbmZpZ3VyYXRpb24odGhpcy5MQU5HKTtcclxuICAgICAgICB0aGlzLnRvb2xiYXIgPSBuZXcgam9pbnQudWkuVG9vbGJhcih7XHJcbiAgICAgICAgICAgIGdyb3VwcyxcclxuICAgICAgICAgICAgdG9vbHMsXHJcbiAgICAgICAgICAgIGF1dG9Ub2dnbGU6IHRydWUsXHJcbiAgICAgICAgICAgIHJlZmVyZW5jZXM6IHtcclxuICAgICAgICAgICAgICAgIHBhcGVyU2Nyb2xsZXI6IHRoaXMucGFwZXJTY3JvbGxlcixcclxuICAgICAgICAgICAgICAgIGNvbW1hbmRNYW5hZ2VyOiB0aGlzLmNvbW1hbmRNYW5hZ2VyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnRvb2xiYXIub24oe1xyXG4gICAgICAgICAgICAnc3ZnOnBvaW50ZXJjbGljayc6IHRoaXMub3BlbkFzU1ZHLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICdwbmc6cG9pbnRlcmNsaWNrJzogdGhpcy5vcGVuQXNQTkcuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgJ3RvLWZyb250OnBvaW50ZXJjbGljayc6IHRoaXMuYXBwbHlPblNlbGVjdGlvbi5iaW5kKHRoaXMsICd0b0Zyb250JyksXHJcbiAgICAgICAgICAgICd0by1iYWNrOnBvaW50ZXJjbGljayc6IHRoaXMuYXBwbHlPblNlbGVjdGlvbi5iaW5kKHRoaXMsICd0b0JhY2snKSxcclxuICAgICAgICAgICAgJ2xheW91dDpwb2ludGVyY2xpY2snOiB0aGlzLmxheW91dERpcmVjdGVkR3JhcGguYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgJ3NuYXBsaW5lOmNoYW5nZSc6IHRoaXMuY2hhbmdlU25hcExpbmVzLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgICdjbGVhcjpwb2ludGVyY2xpY2snOiB0aGlzLmdyYXBoLmNsZWFyLmJpbmQodGhpcy5ncmFwaCksXHJcbiAgICAgICAgICAgICdwcmludDpwb2ludGVyY2xpY2snOiB0aGlzLnBhcGVyLnByaW50LmJpbmQodGhpcy5wYXBlciksXHJcbiAgICAgICAgICAgICdncmlkLXNpemU6Y2hhbmdlJzogdGhpcy5wYXBlci5zZXRHcmlkU2l6ZS5iaW5kKHRoaXMucGFwZXIpLFxyXG4gICAgICAgICAgICAnc2VsZWN0VGVtcGxhdGU6b3B0aW9uOnNlbGVjdCc6IHRoaXMub25DaGFuZ2VUZW1wbGF0ZSxcclxuICAgICAgICAgICAgJ2RlbGV0ZVRlbXBsYXRlOnBvaW50ZXJjbGljayc6IHRoaXMub25EZWxldGVUZW1wbGF0ZSxcclxuICAgICAgICAgICAgJ3NhdmVBc1RlbXBsYXRlOnBvaW50ZXJjbGljayc6IHRoaXMub25TYXZlQXNUZW1wbGF0ZSxcclxuICAgICAgICAgICAgJ3Jlc2V0VGVtcGxhdGU6cG9pbnRlcmNsaWNrJzogdGhpcy5vblJlc2V0VGVtcGxhdGVcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJQbHVnaW4oJy50b29sYmFyLWNvbnRhaW5lcicsIHRoaXMudG9vbGJhcik7XHJcbiAgICB9XHJcblxyXG4gICAgYXBwbHlPblNlbGVjdGlvbihtZXRob2Q6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuZ3JhcGguc3RhcnRCYXRjaCgnc2VsZWN0aW9uJyk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uY29sbGVjdGlvbi5tb2RlbHMuZm9yRWFjaChmdW5jdGlvbiAobW9kZWw6IGFueSkgeyBtb2RlbFttZXRob2RdKCk7IH0pO1xyXG4gICAgICAgIHRoaXMuZ3JhcGguc3RvcEJhdGNoKCdzZWxlY3Rpb24nKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VTbmFwTGluZXMoY2hlY2tlZDogYm9vbGVhbikge1xyXG5cclxuICAgICAgICBpZiAoY2hlY2tlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNuYXBsaW5lcy5zdGFydExpc3RlbmluZygpO1xyXG4gICAgICAgICAgICB0aGlzLnN0ZW5jaWwub3B0aW9ucy5zbmFwbGluZXMgPSB0aGlzLnNuYXBsaW5lcztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnNuYXBsaW5lcy5zdG9wTGlzdGVuaW5nKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RlbmNpbC5vcHRpb25zLnNuYXBsaW5lcyA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemVLZXlib2FyZFNob3J0Y3V0cygpIHtcclxuXHJcbiAgICAgICAgdGhpcy5rZXlib2FyZFNlcnZpY2UuY3JlYXRlKFxyXG4gICAgICAgICAgICB0aGlzLmdyYXBoLCB0aGlzLmNsaXBib2FyZCwgdGhpcy5zZWxlY3Rpb24sIHRoaXMucGFwZXJTY3JvbGxlciwgdGhpcy5jb21tYW5kTWFuYWdlcik7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZVRvb2x0aXBzKCk6IGFueSB7XHJcblxyXG4gICAgICAgIHJldHVybiBuZXcgam9pbnQudWkuVG9vbHRpcCh7XHJcbiAgICAgICAgICAgIHJvb3RUYXJnZXQ6IGRvY3VtZW50LmJvZHksXHJcbiAgICAgICAgICAgIHRhcmdldDogJ1tkYXRhLXRvb2x0aXBdJyxcclxuICAgICAgICAgICAgZGlyZWN0aW9uOiBqb2ludC51aS5Ub29sdGlwLlRvb2x0aXBBcnJvd1Bvc2l0aW9uLkF1dG8sXHJcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIG9sZGVyIHNoYXBlc1xyXG4gICAgZXhwb3J0U3R5bGVzaGVldCA9ICcuc2NhbGFibGUgKiB7IHZlY3Rvci1lZmZlY3Q6IG5vbi1zY2FsaW5nLXN0cm9rZSB9JztcclxuXHJcbiAgICBvcGVuQXNTVkcoKSB7XHJcblxyXG4gICAgICAgIHRoaXMucGFwZXIuaGlkZVRvb2xzKCkudG9TVkcoKHN2Zzogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIG5ldyBqb2ludC51aS5MaWdodGJveCh7XHJcbiAgICAgICAgICAgICAgICBpbWFnZTogJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwnICsgZW5jb2RlVVJJQ29tcG9uZW50KHN2ZyksXHJcbiAgICAgICAgICAgICAgICBkb3dubG9hZGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBmaWxlTmFtZTogJ1JhcHBpZCdcclxuICAgICAgICAgICAgfSkub3BlbigpO1xyXG4gICAgICAgICAgICB0aGlzLnBhcGVyLnNob3dUb29scygpO1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgICAgcHJlc2VydmVEaW1lbnNpb25zOiB0cnVlLFxyXG4gICAgICAgICAgICBjb252ZXJ0SW1hZ2VzVG9EYXRhVXJpczogdHJ1ZSxcclxuICAgICAgICAgICAgdXNlQ29tcHV0ZWRTdHlsZXM6IGZhbHNlLFxyXG4gICAgICAgICAgICBzdHlsZXNoZWV0OiB0aGlzLmV4cG9ydFN0eWxlc2hlZXRcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvcGVuQXNQTkcoKSB7XHJcblxyXG4gICAgICAgIHRoaXMucGFwZXIuaGlkZVRvb2xzKCkudG9QTkcoKGRhdGFVUkw6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICBuZXcgam9pbnQudWkuTGlnaHRib3goe1xyXG4gICAgICAgICAgICAgICAgaW1hZ2U6IGRhdGFVUkwsXHJcbiAgICAgICAgICAgICAgICBkb3dubG9hZGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBmaWxlTmFtZTogJ1JhcHBpZCdcclxuICAgICAgICAgICAgfSkub3BlbigpO1xyXG4gICAgICAgICAgICB0aGlzLnBhcGVyLnNob3dUb29scygpO1xyXG4gICAgICAgIH0sIHtcclxuICAgICAgICAgICAgcGFkZGluZzogMTAsXHJcbiAgICAgICAgICAgIHVzZUNvbXB1dGVkU3R5bGVzOiBmYWxzZSxcclxuICAgICAgICAgICAgc3R5bGVzaGVldDogdGhpcy5leHBvcnRTdHlsZXNoZWV0XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Nb3VzZXdoZWVsKGNlbGxWaWV3OiBhbnksIGV2dDogYW55LCBveDogbnVtYmVyLCBveTogbnVtYmVyLCBkZWx0YTogbnVtYmVyKSB7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmtleWJvYXJkU2VydmljZS5rZXlib2FyZC5pc0FjdGl2ZSgnYWx0JywgZXZ0KSkge1xyXG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgdGhpcy5wYXBlclNjcm9sbGVyLnpvb20oZGVsdGEgKiAwLjIsIHsgbWluOiAwLjIsIG1heDogNSwgZ3JpZDogMC4yLCBveCwgb3kgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxheW91dERpcmVjdGVkR3JhcGgoKSB7XHJcblxyXG4gICAgICAgIGpvaW50LmxheW91dC5EaXJlY3RlZEdyYXBoLmxheW91dCh0aGlzLmdyYXBoLCB7XHJcbiAgICAgICAgICAgIGdyYXBobGliOiBkYWdyZS5ncmFwaGxpYixcclxuICAgICAgICAgICAgZGFncmU6IGRhZ3JlLFxyXG4gICAgICAgICAgICBzZXRWZXJ0aWNlczogdHJ1ZSxcclxuICAgICAgICAgICAgcmFua0RpcjogJ1RCJyxcclxuICAgICAgICAgICAgbWFyZ2luWDogMTAwLFxyXG4gICAgICAgICAgICBtYXJnaW5ZOiAxMDBcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXBlclNjcm9sbGVyLmNlbnRlckNvbnRlbnQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW5kZXJQbHVnaW4oc2VsZWN0b3I6IHN0cmluZywgcGx1Z2luOiBhbnkpOiB2b2lkIHtcclxuXHJcbiAgICAgICAgdGhpcy5lbC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKS5hcHBlbmRDaGlsZChwbHVnaW4uZWwpO1xyXG4gICAgICAgIHBsdWdpbi5yZW5kZXIoKTtcclxuICAgIH1cclxuICAgIG9uQ2hhbmdlVGVtcGxhdGUoZXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQuanNvbkNvbnRlbnQpIHtcclxuICAgICAgICAgICAgd2luZG93W0Zsb3dDaGFydENvbnN0LktTX1NFTEVDVEVEX0ZMT1dDSEFSVF9JRF0gPSBldmVudC5mbG93Q2hhcnRJZDtcclxuICAgICAgICAgICAgd2luZG93W0Zsb3dDaGFydENvbnN0LktTX1NFTEVDVEVEX0pTT05DT05URU5UXSA9IGV2ZW50Lmpzb25Db250ZW50O1xyXG4gICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UoRmxvd0NoYXJ0Q29uc3QuS1NfQ0hBTkdFX1RFTVBMQVRFLCAnKicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbkRlbGV0ZVRlbXBsYXRlKGV2ZW50KSB7XHJcbiAgICAgICAgaWYgKHdpbmRvd1tGbG93Q2hhcnRDb25zdC5LU19JU19TRUxFQ1RFRF9URU1QTEFURV0pIHtcclxuICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKEZsb3dDaGFydENvbnN0LktTX0RFTEVURV9URU1QTEFURSwgJyonKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShGbG93Q2hhcnRDb25zdC5NVVNUX1NFTEVDVF9URU1QTEFURSwgJyonKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25TYXZlQXNUZW1wbGF0ZSgpIHtcclxuICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UoRmxvd0NoYXJ0Q29uc3QuS1NfU0FWRV9BU19URU1QTEFURSwgJyonKTtcclxuICAgIH1cclxuXHJcbiAgICBvblJlc2V0VGVtcGxhdGUoKSB7XHJcbiAgICAgICAgaWYgKHdpbmRvd1tGbG93Q2hhcnRDb25zdC5LU19JU19TRUxFQ1RFRF9URU1QTEFURV0pIHtcclxuICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKEZsb3dDaGFydENvbnN0LktTX1JFU0VUX1RFTVBMQVRFLCAnKicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgS2l0Y2hlblNpbmtTZXJ2aWNlO1xyXG4iXX0=
412
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2l0Y2hlbnNpbmstc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL2Zsb3djaGFydC9zZXJ2aWNlL2tpdGNoZW5zaW5rLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7b0ZBVW9GOztBQUVwRiw0Q0FBNEM7QUFDNUMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFFNUIsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLFlBQVksTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLGVBQWUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RCxPQUFPLGdCQUFnQixNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8saUJBQWlCLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXpFLE1BQU0sa0JBQWtCO0lBNkJwQixZQUNJLEVBQVcsRUFDWCxlQUFnQyxFQUNoQyxJQUFTO1FBNFdiLDJDQUEyQztRQUMzQyxxQkFBZ0IsR0FBRyxtREFBbUQsQ0FBQztRQTNXbkUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFFYiwrQkFBK0I7UUFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUNoQiw2QkFBNkIsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7U0FDNUQsQ0FBQyxDQUFDO1FBRUgsSUFB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QUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDOUQ7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBSztRQUNsQixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUNoRCxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM5RDthQUNJO1lBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDaEU7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUNoRCxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM3RDtJQUNMLENBQUM7Q0FDSjtBQUVELGVBQWUsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiEgUmFwcGlkIHYzLjMuMCAtIEhUTUw1IERpYWdyYW1taW5nIEZyYW1ld29ya1xyXG5cclxuQ29weXJpZ2h0IChjKSAyMDIxIGNsaWVudCBJT1xyXG5cclxuIDIwMjEtMDItMTIgXHJcblxyXG5cclxuVGhpcyBTb3VyY2UgQ29kZSBGb3JtIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoZSBSYXBwaWQgTGljZW5zZVxyXG4sIHYuIDIuMC4gSWYgYSBjb3B5IG9mIHRoZSBSYXBwaWQgTGljZW5zZSB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpc1xyXG5maWxlLCBZb3UgY2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL2pvaW50anMuY29tL2xpY2Vuc2UvcmFwcGlkX3YyLnR4dFxyXG4gb3IgZnJvbSB0aGUgUmFwcGlkIGFyY2hpdmUgYXMgd2FzIGRpc3RyaWJ1dGVkIGJ5IGNsaWVudCBJTy4gU2VlIHRoZSBMSUNFTlNFIGZpbGUuKi9cclxuXHJcbi8vIGltcG9ydCAqIGFzIGpvaW50IGZyb20gJ0BjbGllbnRpby9yYXBwaWQnXHJcbmltcG9ydCAqIGFzIGRhZ3JlIGZyb20gJ2RhZ3JlJztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBLZXlib2FyZFNlcnZpY2UgfSBmcm9tICcuL2tleWJvYXJkLXNlcnZpY2UnO1xyXG5pbXBvcnQgKiBhcyBhcHBTaGFwZXMgZnJvbSAnLi4vbW9kZWxzL2FwcC1zaGFwZXMnO1xyXG5pbXBvcnQgSGFsb0Z1bmN0aW9uIGZyb20gJy4uL2NvbmZpZy9oYWxvLmZ1bmN0aW9uJztcclxuaW1wb3J0IFN0ZW5jaWxGdW5jdGlvbiBmcm9tICcuLi9jb25maWcvc3RlbmNpbC5mdW5jdGlvbic7XHJcbmltcG9ydCBUb29sYmFydEZ1bmN0aW9uIGZyb20gJy4uL2NvbmZpZy90b29sYmFyLmZ1bmN0aW9uJztcclxuaW1wb3J0IEluc3BlY3RvckZ1bmN0aW9uIGZyb20gJy4uL2NvbmZpZy9pbnNwZWN0b3IuZnVuY3Rpb24nO1xyXG5pbXBvcnQgeyBGbG93Q2hhcnRDb25zdCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9ja2VkaXRvckZsb3djaGFydC5jb25zdCc7XHJcbmRlY2xhcmUgdmFyIGpvaW50OiBhbnk7XHJcbmNsYXNzIEtpdGNoZW5TaW5rU2VydmljZSB7XHJcbiAgICBMQU5HOiBhbnlcclxuICAgIGVsOiBFbGVtZW50O1xyXG5cclxuICAgIC8vIGdyYXBoOiBqb2ludC5kaWEuR3JhcGg7XHJcbiAgICAvLyBwYXBlcjogam9pbnQuZGlhLlBhcGVyO1xyXG4gICAgLy8gcGFwZXJTY3JvbGxlcjogam9pbnQudWkuUGFwZXJTY3JvbGxlcjtcclxuXHJcbiAgICAvLyBjb21tYW5kTWFuYWdlcjogam9pbnQuZGlhLkNvbW1hbmRNYW5hZ2VyO1xyXG4gICAgLy8gc25hcGxpbmVzOiBqb2ludC51aS5TbmFwbGluZXM7XHJcbiAgICAvLyBjbGlwYm9hcmQ6IGpvaW50LnVpLkNsaXBib2FyZDtcclxuICAgIC8vIHNlbGVjdGlvbjogam9pbnQudWkuU2VsZWN0aW9uO1xyXG4gICAgLy8gbmF2aWdhdG9yOiBqb2ludC51aS5OYXZpZ2F0b3I7XHJcbiAgICAvLyBzdGVuY2lsOiBqb2ludC51aS5TdGVuY2lsXHJcbiAgICAvLyB0b29sYmFyOiBqb2ludC51aS5Ub29sYmFyXHJcbiAgICBncmFwaDogYW55O1xyXG4gICAgcGFwZXI6IGFueTtcclxuICAgIHBhcGVyU2Nyb2xsZXI6IGFueTtcclxuXHJcbiAgICBjb21tYW5kTWFuYWdlcjogYW55O1xyXG4gICAgc25hcGxpbmVzOiBhbnk7XHJcbiAgICBjbGlwYm9hcmQ6IGFueTtcclxuICAgIHNlbGVjdGlvbjogYW55O1xyXG4gICAgbmF2aWdhdG9yOiBhbnk7XHJcbiAgICBzdGVuY2lsOiBhbnk7XHJcbiAgICB0b29sYmFyOiBhbnk7XHJcblxyXG4gICAga2V5Ym9hcmRTZXJ2aWNlOiBLZXlib2FyZFNlcnZpY2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgZWw6IEVsZW1lbnQsXHJcbiAgICAgICAga2V5Ym9hcmRTZXJ2aWNlOiBLZXlib2FyZFNlcnZpY2UsXHJcbiAgICAgICAgTEFORzogYW55XHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLmVsID0gZWw7XHJcblxyXG4gICAgICAgIC8vIGFwcGx5IGN1cnJlbnQgam9pbnQganMgdGhlbWVcclxuICAgICAgICBjb25zdCB2aWV3ID0gbmV3IGpvaW50Lm12Yy5WaWV3KHsgZWwgfSk7XHJcbiAgICAgICAgdmlldy5kZWxlZ2F0ZUV2ZW50cyh7XHJcbiAgICAgICAgICAgICdtb3VzZXVwIGlucHV0W3R5cGU9XCJyYW5nZVwiXSc6IChldnQpID0+IGV2dC50YXJnZXQuYmx1cigpXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMua2V5Ym9hcmRTZXJ2aWNlID0ga2V5Ym9hcmRTZXJ2aWNlO1xyXG4gICAgICAgIHRoaXMuTEFORyA9IExBTkdcclxuICAgIH1cclxuXHJcbiAgICBzdGFydFJhcHBpZCgpIHtcclxuXHJcbiAgICAgICAgam9pbnQuc2V0VGhlbWUoJ21vZGVybicpO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRpYWxpemVQYXBlcigpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVN0ZW5jaWwoKTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVTZWxlY3Rpb24oKTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVUb29sc0FuZEluc3BlY3RvcigpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZU5hdmlnYXRvcigpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRvb2xiYXIoKTtcclxuICAgICAgICB0aGlzLmluaXRpYWxpemVLZXlib2FyZFNob3J0Y3V0cygpO1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRvb2x0aXBzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZVBhcGVyKCkge1xyXG5cclxuICAgICAgICBjb25zdCBncmFwaCA9IHRoaXMuZ3JhcGggPSBuZXcgam9pbnQuZGlhLkdyYXBoKHt9LCB7XHJcbiAgICAgICAgICAgIGNlbGxOYW1lc3BhY2U6IGFwcFNoYXBlc1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBncmFwaC5vbignYWRkJywgKGNlbGw6IGFueSwgY29sbGVjdGlvbjogYW55LCBvcHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAob3B0LnN0ZW5jaWwpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBqb2ludC51aS5JbnNwZWN0b3IuY3JlYXRlKCcuaW5zcGVjdG9yLWNvbnRhaW5lcicsIF8uZXh0ZW5kKHtcclxuICAgICAgICAgICAgICAgICAgICBjZWxsOiBjZWxsXHJcbiAgICAgICAgICAgICAgICB9LCBJbnNwZWN0b3JGdW5jdGlvbi5nZXRJbnNwZWN0b3JDb25maWd1cmF0aW9uKHRoaXMuTEFORylbY2VsbC5nZXQoJ3R5cGUnKV0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmNvbW1hbmRNYW5hZ2VyID0gbmV3IGpvaW50LmRpYS5Db21tYW5kTWFuYWdlcih7IGdyYXBoOiBncmFwaCB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFwZXIgPSB0aGlzLnBhcGVyID0gbmV3IGpvaW50LmRpYS5QYXBlcih7XHJcbiAgICAgICAgICAgIHdpZHRoOiAxMDAwLFxyXG4gICAgICAgICAgICBoZWlnaHQ6IDEwMDAsXHJcbiAgICAgICAgICAgIGdyaWRTaXplOiAxMCxcclxuICAgICAgICAgICAgZHJhd0dyaWQ6IHRydWUsXHJcbiAgICAgICAgICAgIG1vZGVsOiBncmFwaCxcclxuICAgICAgICAgICAgY2VsbFZpZXdOYW1lc3BhY2U6IGFwcFNoYXBlcyxcclxuICAgICAgICAgICAgZGVmYXVsdExpbms6IDx1bmtub3duPm5ldyBhcHBTaGFwZXMuYXBwLkxpbmsoKSxcclxuICAgICAgICAgICAgZGVmYXVsdENvbm5lY3Rpb25Qb2ludDogYXBwU2hhcGVzLmFwcC5MaW5rLmNvbm5lY3Rpb25Qb2ludCxcclxuICAgICAgICAgICAgaW50ZXJhY3RpdmU6IHsgbGlua01vdmU6IGZhbHNlIH0sXHJcbiAgICAgICAgICAgIGFzeW5jOiB0cnVlLFxyXG4gICAgICAgICAgICBzb3J0aW5nOiBqb2ludC5kaWEuUGFwZXIuc29ydGluZy5BUFBST1hcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcGFwZXIub24oJ2JsYW5rOm1vdXNld2hlZWwnLCBfLnBhcnRpYWwodGhpcy5vbk1vdXNld2hlZWwsIG51bGwpLCB0aGlzKTtcclxuICAgICAgICBwYXBlci5vbignY2VsbDptb3VzZXdoZWVsJywgdGhpcy5vbk1vdXNld2hlZWwuYmluZCh0aGlzKSk7XHJcblxyXG4gICAgICAgIHRoaXMuc25hcGxpbmVzID0gbmV3IGpvaW50LnVpLlNuYXBsaW5lcyh7IHBhcGVyOiBwYXBlciB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFwZXJTY3JvbGxlciA9IHRoaXMucGFwZXJTY3JvbGxlciA9IG5ldyBqb2ludC51aS5QYXBlclNjcm9sbGVyKHtcclxuICAgICAgICAgICAgcGFwZXIsXHJcbiAgICAgICAgICAgIGF1dG9SZXNpemVQYXBlcjogdHJ1ZSxcclxuICAgICAgICAgICAgc2Nyb2xsV2hpbGVEcmFnZ2luZzogdHJ1ZSxcclxuICAgICAgICAgICAgY3Vyc29yOiAnZ3JhYidcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJQbHVnaW4oJy5wYXBlci1jb250YWluZXInLCBwYXBlclNjcm9sbGVyKTtcclxuICAgICAgICBwYXBlclNjcm9sbGVyLnJlbmRlcigpLmNlbnRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemVTdGVuY2lsKCkge1xyXG5cclxuICAgICAgICB0aGlzLnN0ZW5jaWwgPSBuZXcgam9pbnQudWkuU3RlbmNpbCh7XHJcbiAgICAgICAgICAgIHBhcGVyOiB0aGlzLnBhcGVyU2Nyb2xsZXIsXHJcbiAgICAgICAgICAgIHNuYXBsaW5lczogdGhpcy5zbmFwbGluZXMsXHJcbiAgICAgICAgICAgIHdpZHRoOiAyNDAsXHJcbiAgICAgICAgICAgIGdyb3VwczogU3RlbmNpbEZ1bmN0aW9uLmdldFN0ZW5jaWxHcm91cHMoKSxcclxuICAgICAgICAgICAgZHJvcEFuaW1hdGlvbjogdHJ1ZSxcclxuICAgICAgICAgICAgZ3JvdXBzVG9nZ2xlQnV0dG9uczogdHJ1ZSxcclxuICAgICAgICAgICAgcGFwZXJPcHRpb25zOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZGVsOiBuZXcgam9pbnQuZGlhLkdyYXBoKHt9LCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNlbGxOYW1lc3BhY2U6IGFwcFNoYXBlc1xyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgIGNlbGxWaWV3TmFtZXNwYWNlOiBhcHBTaGFwZXNcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNlYXJjaDoge1xyXG4gICAgICAgICAgICAgICAgJyonOiBbJ3R5cGUnLCAnYXR0cnMvdGV4dC90ZXh0JywgJ2F0dHJzL3Jvb3QvZGF0YVRvb2x0aXAnLCAnYXR0cnMvbGFiZWwvdGV4dCddLFxyXG4gICAgICAgICAgICAgICAgJ29yZy5NZW1iZXInOiBbJ2F0dHJzLy5yYW5rL3RleHQnLCAnYXR0cnMvcm9vdC9kYXRhVG9vbHRpcCcsICdhdHRycy8ubmFtZS90ZXh0J11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgLy8gVXNlIGRlZmF1bHQgR3JpZCBMYXlvdXRcclxuICAgICAgICAgICAgbGF5b3V0OiB0cnVlLFxyXG4gICAgICAgICAgICAvLyBSZW1vdmUgdG9vbHRpcCBkZWZpbml0aW9uIGZyb20gY2xvbmVcclxuICAgICAgICAgICAgZHJhZ1N0YXJ0Q2xvbmU6IChjZWxsOiBhbnkpID0+IGNlbGwuY2xvbmUoKS5yZW1vdmVBdHRyKCdyb290L2RhdGFUb29sdGlwJylcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnJlbmRlclBsdWdpbignLnN0ZW5jaWwtY29udGFpbmVyJywgdGhpcy5zdGVuY2lsKTtcclxuICAgICAgICB0aGlzLnN0ZW5jaWwubG9hZChTdGVuY2lsRnVuY3Rpb24uZ2V0U3RlbmNpbFNoYXBlcyh0aGlzLkxBTkcpKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplU2VsZWN0aW9uKCkge1xyXG5cclxuICAgICAgICB0aGlzLmNsaXBib2FyZCA9IG5ldyBqb2ludC51aS5DbGlwYm9hcmQoKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IG5ldyBqb2ludC51aS5TZWxlY3Rpb24oeyBwYXBlcjogdGhpcy5wYXBlciwgdXNlTW9kZWxHZW9tZXRyeTogdHJ1ZSB9KTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLm9uKCdyZXNldCBhZGQgcmVtb3ZlJywgdGhpcy5vblNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpKTtcclxuXHJcbiAgICAgICAgY29uc3Qga2V5Ym9hcmQgPSB0aGlzLmtleWJvYXJkU2VydmljZS5rZXlib2FyZDtcclxuXHJcbiAgICAgICAgLy8gSW5pdGlhdGUgc2VsZWN0aW5nIHdoZW4gdGhlIHVzZXIgZ3JhYnMgdGhlIGJsYW5rIGFyZWEgb2YgdGhlIHBhcGVyIHdoaWxlIHRoZSBTaGlmdCBrZXkgaXMgcHJlc3NlZC5cclxuICAgICAgICAvLyBPdGhlcndpc2UsIGluaXRpYXRlIHBhcGVyIHBhbi5cclxuICAgICAgICB0aGlzLnBhcGVyLm9uKCdibGFuazpwb2ludGVyZG93bicsIChldnQ6IGFueSwgeDogbnVtYmVyLCB5OiBudW1iZXIpID0+IHtcclxuXHJcbiAgICAgICAgICAgIGlmIChrZXlib2FyZC5pc0FjdGl2ZSgnc2hpZnQnLCBldnQpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zdGFydFNlbGVjdGluZyhldnQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY29sbGVjdGlvbi5yZXNldChbXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcGVyU2Nyb2xsZXIuc3RhcnRQYW5uaW5nKGV2dCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcGVyLnJlbW92ZVRvb2xzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXBlci5vbignZWxlbWVudDpwb2ludGVyZG93bicsIChlbGVtZW50VmlldzogYW55LCBldnQ6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgLy8gU2VsZWN0IGFuIGVsZW1lbnQgaWYgQ1RSTC9NZXRhIGtleSBpcyBwcmVzc2VkIHdoaWxlIHRoZSBlbGVtZW50IGlzIGNsaWNrZWQuXHJcbiAgICAgICAgICAgIGlmIChrZXlib2FyZC5pc0FjdGl2ZSgnY3RybCBtZXRhJywgZXZ0KSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uLmNvbGxlY3Rpb24uZmluZChmdW5jdGlvbiAoY2VsbCkgeyByZXR1cm4gY2VsbC5pc0xpbmsoKSB9KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCBhbGxvdyBtaXhpbmcgbGlua3MgYW5kIGVsZW1lbnRzIGluIHRoZSBzZWxlY3Rpb25cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLnJlc2V0KFtlbGVtZW50Vmlldy5tb2RlbF0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLmFkZChlbGVtZW50Vmlldy5tb2RlbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLm9uKCdzZWxlY3Rpb24tYm94OnBvaW50ZXJkb3duJywgKGVsZW1lbnRWaWV3OiBhbnksIGV2dDogYW55KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAvLyBVbnNlbGVjdCBhbiBlbGVtZW50IGlmIHRoZSBDVFJML01ldGEga2V5IGlzIHByZXNzZWQgd2hpbGUgYSBzZWxlY3RlZCBlbGVtZW50IGlzIGNsaWNrZWQuXHJcbiAgICAgICAgICAgIGlmIChrZXlib2FyZC5pc0FjdGl2ZSgnY3RybCBtZXRhJywgZXZ0KSkge1xyXG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLnJlbW92ZShlbGVtZW50Vmlldy5tb2RlbCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgZ2V0SW1hZ2VDb250ZW50KCkge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGFwZXIudG9QTkcoKGltYWdlRGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShpbWFnZURhdGEpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRKc29uQ29udGVudCgpIHtcclxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5ncmFwaC50b0pTT04oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TZWxlY3Rpb25DaGFuZ2UoKSB7XHJcbiAgICAgICAgY29uc3QgeyBwYXBlciwgc2VsZWN0aW9uIH0gPSB0aGlzO1xyXG4gICAgICAgIGNvbnN0IHsgY29sbGVjdGlvbiB9ID0gc2VsZWN0aW9uO1xyXG4gICAgICAgIHBhcGVyLnJlbW92ZVRvb2xzKCk7XHJcbiAgICAgICAgam9pbnQudWkuSGFsby5jbGVhcihwYXBlcik7XHJcbiAgICAgICAgam9pbnQudWkuRnJlZVRyYW5zZm9ybS5jbGVhcihwYXBlcik7XHJcbiAgICAgICAgam9pbnQudWkuSW5zcGVjdG9yLmNsb3NlKCk7XHJcbiAgICAgICAgaWYgKGNvbGxlY3Rpb24ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByaW1hcnlDZWxsOiBhbnkgPSBjb2xsZWN0aW9uLmZpcnN0KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHByaW1hcnlDZWxsVmlldyA9IHBhcGVyLnJlcXVpcmVWaWV3KHByaW1hcnlDZWxsKTtcclxuICAgICAgICAgICAgc2VsZWN0aW9uLmRlc3Ryb3lTZWxlY3Rpb25Cb3gocHJpbWFyeUNlbGwpO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdFByaW1hcnlDZWxsKHByaW1hcnlDZWxsVmlldyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjb2xsZWN0aW9uLmxlbmd0aCA9PT0gMikge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uLmVhY2goZnVuY3Rpb24gKGNlbGw6IGFueSkge1xyXG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uLmNyZWF0ZVNlbGVjdGlvbkJveChjZWxsKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdFByaW1hcnlDZWxsKGNlbGxWaWV3OiBhbnkpIHtcclxuICAgICAgICBjb25zdCBjZWxsID0gY2VsbFZpZXcubW9kZWw7XHJcbiAgICAgICAgaWYgKGNlbGwuaXNFbGVtZW50KCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RQcmltYXJ5RWxlbWVudChjZWxsVmlldyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RQcmltYXJ5TGluayhjZWxsVmlldyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGpvaW50LnVpLkluc3BlY3Rvci5jcmVhdGUoJy5pbnNwZWN0b3ItY29udGFpbmVyJywgXy5leHRlbmQoe1xyXG4gICAgICAgICAgICBjZWxsOiBjZWxsXHJcbiAgICAgICAgfSwgSW5zcGVjdG9yRnVuY3Rpb24uZ2V0SW5zcGVjdG9yQ29uZmlndXJhdGlvbih0aGlzLkxBTkcpW2NlbGwuZ2V0KCd0eXBlJyldKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0UHJpbWFyeUVsZW1lbnQoZWxlbWVudFZpZXc6IGFueSkge1xyXG5cclxuICAgICAgICBjb25zdCBlbGVtZW50ID0gZWxlbWVudFZpZXcubW9kZWw7XHJcblxyXG4gICAgICAgIG5ldyBqb2ludC51aS5GcmVlVHJhbnNmb3JtKHtcclxuICAgICAgICAgICAgY2VsbFZpZXc6IGVsZW1lbnRWaWV3LFxyXG4gICAgICAgICAgICBhbGxvd1JvdGF0aW9uOiBmYWxzZSxcclxuICAgICAgICAgICAgcHJlc2VydmVBc3BlY3RSYXRpbzogISFlbGVtZW50LmdldCgncHJlc2VydmVBc3BlY3RSYXRpbycpLFxyXG4gICAgICAgICAgICBhbGxvd09ydGhvZ29uYWxSZXNpemU6IGVsZW1lbnQuZ2V0KCdhbGxvd09ydGhvZ29uYWxSZXNpemUnKSAhPT0gZmFsc2VcclxuICAgICAgICB9KS5yZW5kZXIoKTtcclxuXHJcbiAgICAgICAgbmV3IGpvaW50LnVpLkhhbG8oe1xyXG4gICAgICAgICAgICBjZWxsVmlldzogZWxlbWVudFZpZXcsXHJcbiAgICAgICAgICAgIGhhbmRsZXM6IEhhbG9GdW5jdGlvbi5nZXRIYWxvQ29uZmlndXJhdGlvbih0aGlzLkxBTkcpLFxyXG4gICAgICAgICAgICB1c2VNb2RlbEdlb21ldHJ5OiB0cnVlXHJcbiAgICAgICAgfSkucmVuZGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0UHJpbWFyeUxpbmsobGlua1ZpZXc6IGFueSkge1xyXG5cclxuICAgICAgICBjb25zdCBucyA9IGpvaW50LmxpbmtUb29scztcclxuICAgICAgICBjb25zdCB0b29sc1ZpZXcgPSBuZXcgam9pbnQuZGlhLlRvb2xzVmlldyh7XHJcbiAgICAgICAgICAgIG5hbWU6ICdsaW5rLXBvaW50ZXJkb3duJyxcclxuICAgICAgICAgICAgdG9vbHM6IFtcclxuICAgICAgICAgICAgICAgIG5ldyBucy5WZXJ0aWNlcygpLFxyXG4gICAgICAgICAgICAgICAgbmV3IG5zLlNvdXJjZUFuY2hvcigpLFxyXG4gICAgICAgICAgICAgICAgbmV3IG5zLlRhcmdldEFuY2hvcigpLFxyXG4gICAgICAgICAgICAgICAgbmV3IG5zLlNvdXJjZUFycm93aGVhZCgpLFxyXG4gICAgICAgICAgICAgICAgbmV3IG5zLlRhcmdldEFycm93aGVhZCgpLFxyXG4gICAgICAgICAgICAgICAgbmV3IG5zLlNlZ21lbnRzLFxyXG4gICAgICAgICAgICAgICAgbmV3IG5zLkJvdW5kYXJ5KHsgcGFkZGluZzogMTUgfSksXHJcbiAgICAgICAgICAgICAgICBuZXcgbnMuUmVtb3ZlKHsgb2Zmc2V0OiAtMjAsIGRpc3RhbmNlOiA0MCB9KVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGxpbmtWaWV3LmFkZFRvb2xzKHRvb2xzVmlldyk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZVRvb2xzQW5kSW5zcGVjdG9yKCkge1xyXG5cclxuICAgICAgICB0aGlzLnBhcGVyLm9uKCdjZWxsOnBvaW50ZXJ1cCcsIChjZWxsVmlldzogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNlbGwgPSBjZWxsVmlldy5tb2RlbDtcclxuICAgICAgICAgICAgY29uc3QgeyBjb2xsZWN0aW9uIH0gPSB0aGlzLnNlbGVjdGlvbjtcclxuICAgICAgICAgICAgaWYgKGNvbGxlY3Rpb24uaW5jbHVkZXMoY2VsbCkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb24ucmVzZXQoW2NlbGxdKTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXBlci5vbignbGluazptb3VzZWVudGVyJywgKGxpbmtWaWV3OiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgICAgIC8vIE9wZW4gdG9vbCBvbmx5IGlmIHRoZXJlIGlzIG5vbmUgeWV0XHJcbiAgICAgICAgICAgIGlmIChsaW5rVmlldy5oYXNUb29scygpKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgbnMgPSBqb2ludC5saW5rVG9vbHM7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvb2xzVmlldyA9IG5ldyBqb2ludC5kaWEuVG9vbHNWaWV3KHtcclxuICAgICAgICAgICAgICAgIG5hbWU6ICdsaW5rLWhvdmVyJyxcclxuICAgICAgICAgICAgICAgIHRvb2xzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IG5zLlZlcnRpY2VzKHsgdmVydGV4QWRkaW5nOiBmYWxzZSB9KSxcclxuICAgICAgICAgICAgICAgICAgICBuZXcgbnMuU291cmNlQXJyb3doZWFkKCksXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IG5zLlRhcmdldEFycm93aGVhZCgpXHJcbiAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgbGlua1ZpZXcuYWRkVG9vbHModG9vbHNWaWV3KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXBlci5vbignbGluazptb3VzZWxlYXZlJywgKGxpbmtWaWV3OiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgICAgIC8vIFJlbW92ZSBvbmx5IHRoZSBob3ZlciB0b29sLCBub3QgdGhlIHBvaW50ZXJkb3duIHRvb2xcclxuICAgICAgICAgICAgaWYgKGxpbmtWaWV3Lmhhc1Rvb2xzKCdsaW5rLWhvdmVyJykpIHtcclxuICAgICAgICAgICAgICAgIGxpbmtWaWV3LnJlbW92ZVRvb2xzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5ncmFwaC5vbignY2hhbmdlJywgKGNlbGw6IGFueSwgb3B0OiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgICAgIGlmICghY2VsbC5pc0xpbmsoKSB8fCAhb3B0Lmluc3BlY3RvcikgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IG5zID0gam9pbnQubGlua1Rvb2xzO1xyXG4gICAgICAgICAgICBjb25zdCB0b29sc1ZpZXcgPSBuZXcgam9pbnQuZGlhLlRvb2xzVmlldyh7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnbGluay1pbnNwZWN0ZWQnLFxyXG4gICAgICAgICAgICAgICAgdG9vbHM6IFtcclxuICAgICAgICAgICAgICAgICAgICBuZXcgbnMuQm91bmRhcnkoeyBwYWRkaW5nOiAxNSB9KSxcclxuICAgICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBjZWxsLmZpbmRWaWV3KHRoaXMucGFwZXIpLmFkZFRvb2xzKHRvb2xzVmlldyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZU5hdmlnYXRvcigpIHtcclxuXHJcbiAgICAgICAgY29uc3QgbmF2aWdhdG9yID0gdGhpcy5uYXZpZ2F0b3IgPSBuZXcgam9pbnQudWkuTmF2aWdhdG9yKHtcclxuICAgICAgICAgICAgd2lkdGg6IDI0MCxcclxuICAgICAgICAgICAgaGVpZ2h0OiAxMTUsXHJcbiAgICAgICAgICAgIHBhcGVyU2Nyb2xsZXI6IHRoaXMucGFwZXJTY3JvbGxlcixcclxuICAgICAgICAgICAgem9vbTogZmFsc2UsXHJcbiAgICAgICAgICAgIHBhcGVyT3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgYXN5bmM6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBzb3J0aW5nOiBqb2ludC5kaWEuUGFwZXIuc29ydGluZy5OT05FLFxyXG4gICAgICAgICAgICAgICAgZWxlbWVudFZpZXc6IGFwcFNoYXBlcy5OYXZpZ2F0b3JFbGVtZW50VmlldyxcclxuICAgICAgICAgICAgICAgIGxpbmtWaWV3OiBhcHBTaGFwZXMuTmF2aWdhdG9yTGlua1ZpZXcsXHJcbiAgICAgICAgICAgICAgICBjZWxsVmlld05hbWVzcGFjZTogeyAvKiBubyBvdGhlciB2aWV3cyBhcmUgYWNjZXNzaWJsZSBpbiB0aGUgbmF2aWdhdG9yICovIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnJlbmRlclBsdWdpbignLm5hdmlnYXRvci1jb250YWluZXInLCBuYXZpZ2F0b3IpO1xyXG4gICAgfVxyXG5cclxuICAgIGluaXRpYWxpemVUb29sYmFyKCkge1xyXG4gICAgICAgIGNvbnN0IHsgZ3JvdXBzLCB0b29scyB9ID0gVG9vbGJhcnRGdW5jdGlvbi5nZXRUb29sYmFyQ29uZmlndXJhdGlvbih0aGlzLkxBTkcpO1xyXG4gICAgICAgIHRoaXMudG9vbGJhciA9IG5ldyBqb2ludC51aS5Ub29sYmFyKHtcclxuICAgICAgICAgICAgZ3JvdXBzLFxyXG4gICAgICAgICAgICB0b29scyxcclxuICAgICAgICAgICAgYXV0b1RvZ2dsZTogdHJ1ZSxcclxuICAgICAgICAgICAgcmVmZXJlbmNlczoge1xyXG4gICAgICAgICAgICAgICAgcGFwZXJTY3JvbGxlcjogdGhpcy5wYXBlclNjcm9sbGVyLFxyXG4gICAgICAgICAgICAgICAgY29tbWFuZE1hbmFnZXI6IHRoaXMuY29tbWFuZE1hbmFnZXJcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudG9vbGJhci5vbih7XHJcbiAgICAgICAgICAgICdzdmc6cG9pbnRlcmNsaWNrJzogdGhpcy5vcGVuQXNTVkcuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgJ3BuZzpwb2ludGVyY2xpY2snOiB0aGlzLm9wZW5Bc1BORy5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAndG8tZnJvbnQ6cG9pbnRlcmNsaWNrJzogdGhpcy5hcHBseU9uU2VsZWN0aW9uLmJpbmQodGhpcywgJ3RvRnJvbnQnKSxcclxuICAgICAgICAgICAgJ3RvLWJhY2s6cG9pbnRlcmNsaWNrJzogdGhpcy5hcHBseU9uU2VsZWN0aW9uLmJpbmQodGhpcywgJ3RvQmFjaycpLFxyXG4gICAgICAgICAgICAnbGF5b3V0OnBvaW50ZXJjbGljayc6IHRoaXMubGF5b3V0RGlyZWN0ZWRHcmFwaC5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgICAnc25hcGxpbmU6Y2hhbmdlJzogdGhpcy5jaGFuZ2VTbmFwTGluZXMuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgJ2NsZWFyOnBvaW50ZXJjbGljayc6IHRoaXMuZ3JhcGguY2xlYXIuYmluZCh0aGlzLmdyYXBoKSxcclxuICAgICAgICAgICAgJ3ByaW50OnBvaW50ZXJjbGljayc6IHRoaXMucGFwZXIucHJpbnQuYmluZCh0aGlzLnBhcGVyKSxcclxuICAgICAgICAgICAgJ2dyaWQtc2l6ZTpjaGFuZ2UnOiB0aGlzLnBhcGVyLnNldEdyaWRTaXplLmJpbmQodGhpcy5wYXBlciksXHJcbiAgICAgICAgICAgICdzZWxlY3RUZW1wbGF0ZTpvcHRpb246c2VsZWN0JzogdGhpcy5vbkNoYW5nZVRlbXBsYXRlLFxyXG4gICAgICAgICAgICAnZGVsZXRlVGVtcGxhdGU6cG9pbnRlcmNsaWNrJzogdGhpcy5vbkRlbGV0ZVRlbXBsYXRlLFxyXG4gICAgICAgICAgICAnc2F2ZUFzVGVtcGxhdGU6cG9pbnRlcmNsaWNrJzogdGhpcy5vblNhdmVBc1RlbXBsYXRlLFxyXG4gICAgICAgICAgICAncmVzZXRUZW1wbGF0ZTpwb2ludGVyY2xpY2snOiB0aGlzLm9uUmVzZXRUZW1wbGF0ZVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnJlbmRlclBsdWdpbignLnRvb2xiYXItY29udGFpbmVyJywgdGhpcy50b29sYmFyKTtcclxuICAgIH1cclxuXHJcbiAgICBhcHBseU9uU2VsZWN0aW9uKG1ldGhvZDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5ncmFwaC5zdGFydEJhdGNoKCdzZWxlY3Rpb24nKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jb2xsZWN0aW9uLm1vZGVscy5mb3JFYWNoKGZ1bmN0aW9uIChtb2RlbDogYW55KSB7IG1vZGVsW21ldGhvZF0oKTsgfSk7XHJcbiAgICAgICAgdGhpcy5ncmFwaC5zdG9wQmF0Y2goJ3NlbGVjdGlvbicpO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZVNuYXBMaW5lcyhjaGVja2VkOiBib29sZWFuKSB7XHJcblxyXG4gICAgICAgIGlmIChjaGVja2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc25hcGxpbmVzLnN0YXJ0TGlzdGVuaW5nKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc3RlbmNpbC5vcHRpb25zLnNuYXBsaW5lcyA9IHRoaXMuc25hcGxpbmVzO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc25hcGxpbmVzLnN0b3BMaXN0ZW5pbmcoKTtcclxuICAgICAgICAgICAgdGhpcy5zdGVuY2lsLm9wdGlvbnMuc25hcGxpbmVzID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZUtleWJvYXJkU2hvcnRjdXRzKCkge1xyXG5cclxuICAgICAgICB0aGlzLmtleWJvYXJkU2VydmljZS5jcmVhdGUoXHJcbiAgICAgICAgICAgIHRoaXMuZ3JhcGgsIHRoaXMuY2xpcGJvYXJkLCB0aGlzLnNlbGVjdGlvbiwgdGhpcy5wYXBlclNjcm9sbGVyLCB0aGlzLmNvbW1hbmRNYW5hZ2VyKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplVG9vbHRpcHMoKTogYW55IHtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ldyBqb2ludC51aS5Ub29sdGlwKHtcclxuICAgICAgICAgICAgcm9vdFRhcmdldDogZG9jdW1lbnQuYm9keSxcclxuICAgICAgICAgICAgdGFyZ2V0OiAnW2RhdGEtdG9vbHRpcF0nLFxyXG4gICAgICAgICAgICBkaXJlY3Rpb246IGpvaW50LnVpLlRvb2x0aXAuVG9vbHRpcEFycm93UG9zaXRpb24uQXV0byxcclxuICAgICAgICAgICAgcGFkZGluZzogMTBcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBmb3Igb2xkZXIgc2hhcGVzXHJcbiAgICBleHBvcnRTdHlsZXNoZWV0ID0gJy5zY2FsYWJsZSAqIHsgdmVjdG9yLWVmZmVjdDogbm9uLXNjYWxpbmctc3Ryb2tlIH0nO1xyXG5cclxuICAgIG9wZW5Bc1NWRygpIHtcclxuXHJcbiAgICAgICAgdGhpcy5wYXBlci5oaWRlVG9vbHMoKS50b1NWRygoc3ZnOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgbmV3IGpvaW50LnVpLkxpZ2h0Ym94KHtcclxuICAgICAgICAgICAgICAgIGltYWdlOiAnZGF0YTppbWFnZS9zdmcreG1sLCcgKyBlbmNvZGVVUklDb21wb25lbnQoc3ZnKSxcclxuICAgICAgICAgICAgICAgIGRvd25sb2FkYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGZpbGVOYW1lOiAnUmFwcGlkJ1xyXG4gICAgICAgICAgICB9KS5vcGVuKCk7XHJcbiAgICAgICAgICAgIHRoaXMucGFwZXIuc2hvd1Rvb2xzKCk7XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgICBwcmVzZXJ2ZURpbWVuc2lvbnM6IHRydWUsXHJcbiAgICAgICAgICAgIGNvbnZlcnRJbWFnZXNUb0RhdGFVcmlzOiB0cnVlLFxyXG4gICAgICAgICAgICB1c2VDb21wdXRlZFN0eWxlczogZmFsc2UsXHJcbiAgICAgICAgICAgIHN0eWxlc2hlZXQ6IHRoaXMuZXhwb3J0U3R5bGVzaGVldFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5Bc1BORygpIHtcclxuXHJcbiAgICAgICAgdGhpcy5wYXBlci5oaWRlVG9vbHMoKS50b1BORygoZGF0YVVSTDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIG5ldyBqb2ludC51aS5MaWdodGJveCh7XHJcbiAgICAgICAgICAgICAgICBpbWFnZTogZGF0YVVSTCxcclxuICAgICAgICAgICAgICAgIGRvd25sb2FkYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGZpbGVOYW1lOiAnUmFwcGlkJ1xyXG4gICAgICAgICAgICB9KS5vcGVuKCk7XHJcbiAgICAgICAgICAgIHRoaXMucGFwZXIuc2hvd1Rvb2xzKCk7XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgICBwYWRkaW5nOiAxMCxcclxuICAgICAgICAgICAgdXNlQ29tcHV0ZWRTdHlsZXM6IGZhbHNlLFxyXG4gICAgICAgICAgICBzdHlsZXNoZWV0OiB0aGlzLmV4cG9ydFN0eWxlc2hlZXRcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbk1vdXNld2hlZWwoY2VsbFZpZXc6IGFueSwgZXZ0OiBhbnksIG94OiBudW1iZXIsIG95OiBudW1iZXIsIGRlbHRhOiBudW1iZXIpIHtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMua2V5Ym9hcmRTZXJ2aWNlLmtleWJvYXJkLmlzQWN0aXZlKCdhbHQnLCBldnQpKSB7XHJcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICB0aGlzLnBhcGVyU2Nyb2xsZXIuem9vbShkZWx0YSAqIDAuMiwgeyBtaW46IDAuMiwgbWF4OiA1LCBncmlkOiAwLjIsIG94LCBveSB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbGF5b3V0RGlyZWN0ZWRHcmFwaCgpIHtcclxuXHJcbiAgICAgICAgam9pbnQubGF5b3V0LkRpcmVjdGVkR3JhcGgubGF5b3V0KHRoaXMuZ3JhcGgsIHtcclxuICAgICAgICAgICAgZ3JhcGhsaWI6IGRhZ3JlLmdyYXBobGliLFxyXG4gICAgICAgICAgICBkYWdyZTogZGFncmUsXHJcbiAgICAgICAgICAgIHNldFZlcnRpY2VzOiB0cnVlLFxyXG4gICAgICAgICAgICByYW5rRGlyOiAnVEInLFxyXG4gICAgICAgICAgICBtYXJnaW5YOiAxMDAsXHJcbiAgICAgICAgICAgIG1hcmdpblk6IDEwMFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnBhcGVyU2Nyb2xsZXIuY2VudGVyQ29udGVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlclBsdWdpbihzZWxlY3Rvcjogc3RyaW5nLCBwbHVnaW46IGFueSk6IHZvaWQge1xyXG5cclxuICAgICAgICB0aGlzLmVsLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpLmFwcGVuZENoaWxkKHBsdWdpbi5lbCk7XHJcbiAgICAgICAgcGx1Z2luLnJlbmRlcigpO1xyXG4gICAgfVxyXG4gICAgb25DaGFuZ2VUZW1wbGF0ZShldmVudCkge1xyXG4gICAgICAgIGlmIChldmVudC5qc29uQ29udGVudCkge1xyXG4gICAgICAgICAgICB3aW5kb3dbRmxvd0NoYXJ0Q29uc3QuS1NfU0VMRUNURURfRkxPV0NIQVJUX0lEXSA9IGV2ZW50LmZsb3dDaGFydElkO1xyXG4gICAgICAgICAgICB3aW5kb3dbRmxvd0NoYXJ0Q29uc3QuS1NfU0VMRUNURURfSlNPTkNPTlRFTlRdID0gZXZlbnQuanNvbkNvbnRlbnQ7XHJcbiAgICAgICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShGbG93Q2hhcnRDb25zdC5LU19DSEFOR0VfVEVNUExBVEUsICcqJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uRGVsZXRlVGVtcGxhdGUoZXZlbnQpIHtcclxuICAgICAgICBpZiAod2luZG93W0Zsb3dDaGFydENvbnN0LktTX0lTX1NFTEVDVEVEX1RFTVBMQVRFXSkge1xyXG4gICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UoRmxvd0NoYXJ0Q29uc3QuS1NfREVMRVRFX1RFTVBMQVRFLCAnKicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgd2luZG93LnBvc3RNZXNzYWdlKEZsb3dDaGFydENvbnN0Lk1VU1RfU0VMRUNUX1RFTVBMQVRFLCAnKicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblNhdmVBc1RlbXBsYXRlKCkge1xyXG4gICAgICAgIHdpbmRvdy5wb3N0TWVzc2FnZShGbG93Q2hhcnRDb25zdC5LU19TQVZFX0FTX1RFTVBMQVRFLCAnKicpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uUmVzZXRUZW1wbGF0ZSgpIHtcclxuICAgICAgICBpZiAod2luZG93W0Zsb3dDaGFydENvbnN0LktTX0lTX1NFTEVDVEVEX1RFTVBMQVRFXSkge1xyXG4gICAgICAgICAgICB3aW5kb3cucG9zdE1lc3NhZ2UoRmxvd0NoYXJ0Q29uc3QuS1NfUkVTRVRfVEVNUExBVEUsICcqJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBLaXRjaGVuU2lua1NlcnZpY2U7XHJcbiJdfQ==
@@ -259,6 +259,25 @@ function getCKEditorConfiguration(itemToolbar) {
259
259
  }
260
260
  }
261
261
  ]
262
+ },
263
+ fontSize: {
264
+ options: [
265
+ generatePtSetting(8),
266
+ generatePtSetting(9),
267
+ generatePtSetting(10),
268
+ generatePtSetting(11),
269
+ generatePtSetting(12),
270
+ generatePtSetting(14),
271
+ generatePtSetting(16),
272
+ generatePtSetting(18),
273
+ generatePtSetting(20),
274
+ generatePtSetting(22),
275
+ generatePtSetting(24),
276
+ generatePtSetting(26),
277
+ generatePtSetting(28),
278
+ generatePtSetting(36),
279
+ generatePtSetting(48)
280
+ ]
262
281
  }
263
282
  };
264
283
  if (itemToolbar) {
@@ -272,5 +291,17 @@ function getCKEditorConfiguration(itemToolbar) {
272
291
  const CKEditorCommonFunctions = {
273
292
  getCKEditorConfiguration
274
293
  };
294
+ function generatePtSetting(size) {
295
+ return {
296
+ model: size,
297
+ title: size,
298
+ view: {
299
+ name: 'span',
300
+ styles: {
301
+ 'font-size': `${size}pt`
302
+ }
303
+ }
304
+ };
305
+ }
275
306
  export default CKEditorCommonFunctions;
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vZnVuY3Rpb25zL2NvbW1vbi5mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQztBQUM5QyxJQUFJLE9BQU8sR0FBRyx3QkFBd0IsQ0FBQztBQUV2QyxTQUFTLHdCQUF3QixDQUFDLFdBQW1CO0lBQ25ELE1BQU0sY0FBYyxHQUFHO1FBQ3JCLE9BQU8sRUFBRTtZQUNQLEtBQUssRUFBRSxFQUFFO1lBQ1QsV0FBVyxFQUFFLEVBQUU7WUFDZixpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLHNCQUFzQixFQUFFLElBQUk7U0FDN0I7UUFDRCxRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRTtZQUNMLGNBQWMsRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLENBQUM7U0FDekc7UUFDRCxLQUFLLEVBQUU7WUFDTCxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQztZQUNsRCxPQUFPLEVBQUU7Z0JBQ1AsZ0JBQWdCO2dCQUNoQixnQkFBZ0I7Z0JBQ2hCLGdCQUFnQjtnQkFDaEIsc0JBQXNCO2dCQUN0QixzQkFBc0I7Z0JBQ3RCLHdCQUF3QjtnQkFDeEIsdUJBQXVCO2dCQUN2QixHQUFHO2dCQUNILHNCQUFzQjtnQkFDdEIsR0FBRztnQkFDSCxXQUFXO2dCQUNYLEdBQUc7Z0JBQ0gsVUFBVTtnQkFDVixHQUFHO2dCQUNILGNBQWM7Z0JBQ2QsR0FBRztnQkFDSCxTQUFTO2FBQ1Y7WUFDRCxhQUFhLEVBQUU7Z0JBQ2I7b0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjtvQkFDNUIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsS0FBSyxFQUFFLFVBQVU7b0JBQ2pCLElBQUksRUFBRSxVQUFVO2lCQUNqQjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixLQUFLLEVBQUUsRUFBRTtvQkFDVCxLQUFLLEVBQUUsS0FBSztvQkFDWixJQUFJLEVBQUUsT0FBTztpQkFDZDtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixLQUFLLEVBQUUsRUFBRTtvQkFDVCxLQUFLLEVBQUUsS0FBSztvQkFDWixJQUFJLEVBQUUsUUFBUTtpQkFDZjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixLQUFLLEVBQUUsRUFBRTtvQkFDVCxLQUFLLEVBQUUsS0FBSztvQkFDWixJQUFJLEVBQUUsUUFBUTtpQkFDZjthQUNGO1NBQ0Y7UUFDRCxLQUFLLEVBQUU7WUFDTCxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQztZQUNsRCxVQUFVLEVBQUUsR0FBRztZQUNmLE9BQU8sRUFBRTtnQkFDUCxhQUFhO2dCQUNiLEdBQUc7Z0JBQ0gsZ0JBQWdCO2dCQUNoQixnQkFBZ0I7Z0JBQ2hCLGdCQUFnQjtnQkFDaEIsc0JBQXNCO2dCQUN0QixzQkFBc0I7Z0JBQ3RCLHdCQUF3QjtnQkFDeEIsdUJBQXVCO2FBQ3hCO1lBQ0QsYUFBYSxFQUFFO2dCQUNiO29CQUNFLElBQUksRUFBRSxzQkFBc0I7b0JBQzVCLEtBQUssRUFBRSxJQUFJO29CQUNYLEtBQUssRUFBRSxVQUFVO29CQUNqQixJQUFJLEVBQUUsVUFBVTtpQkFDakI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsS0FBSyxFQUFFLEtBQUs7b0JBQ1osSUFBSSxFQUFFLE9BQU87aUJBQ2Q7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsS0FBSyxFQUFFLEtBQUs7b0JBQ1osSUFBSSxFQUFFLFFBQVE7aUJBQ2Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLGdCQUFnQjtvQkFDdEIsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsS0FBSyxFQUFFLEtBQUs7b0JBQ1osSUFBSSxFQUFFLE9BQU87aUJBQ2Q7YUFDRjtTQUNGO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUM7WUFDbEQsVUFBVSxFQUFFLEdBQUc7WUFDZixPQUFPLEVBQUU7Z0JBQ1AsYUFBYTtnQkFDYixHQUFHO2dCQUNILGdCQUFnQjtnQkFDaEIsZ0JBQWdCO2dCQUNoQixnQkFBZ0I7Z0JBQ2hCLHNCQUFzQjtnQkFDdEIsc0JBQXNCO2dCQUN0Qix3QkFBd0I7Z0JBQ3hCLHVCQUF1QjthQUN4QjtZQUNELGFBQWEsRUFBRTtnQkFDYjtvQkFDRSxJQUFJLEVBQUUsc0JBQXNCO29CQUM1QixLQUFLLEVBQUUsSUFBSTtvQkFDWCxLQUFLLEVBQUUsVUFBVTtvQkFDakIsSUFBSSxFQUFFLFVBQVU7aUJBQ2pCO2dCQUNEO29CQUNFLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLEtBQUssRUFBRSxFQUFFO29CQUNULEtBQUssRUFBRSxLQUFLO29CQUNaLElBQUksRUFBRSxPQUFPO2lCQUNkO2dCQUNEO29CQUNFLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLEtBQUssRUFBRSxFQUFFO29CQUNULEtBQUssRUFBRSxLQUFLO29CQUNaLElBQUksRUFBRSxRQUFRO2lCQUNmO2dCQUNEO29CQUNFLElBQUksRUFBRSxnQkFBZ0I7b0JBQ3RCLEtBQUssRUFBRSxFQUFFO29CQUNULEtBQUssRUFBRSxLQUFLO29CQUNaLElBQUksRUFBRSxPQUFPO2lCQUNkO2FBQ0Y7U0FDRjtRQUNELGlEQUFpRDtRQUNqRCxVQUFVLEVBQUU7WUFDViw2RkFBNkY7WUFDN0YsK0ZBQStGO1lBQy9GLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsWUFBWSxDQUFDO1lBQ2xELFVBQVUsRUFBRSxHQUFHO1lBQ2YsT0FBTyxFQUFFO2dCQUNQLGFBQWE7Z0JBQ2IsR0FBRztnQkFDSCxnQkFBZ0I7Z0JBQ2hCLGdCQUFnQjtnQkFDaEIsZ0JBQWdCO2dCQUNoQixzQkFBc0I7Z0JBQ3RCLHNCQUFzQjtnQkFDdEIsd0JBQXdCO2dCQUN4Qix1QkFBdUI7YUFDeEI7WUFDRCxhQUFhLEVBQUU7Z0JBQ2I7b0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjtvQkFDNUIsS0FBSyxFQUFFLElBQUk7b0JBQ1gsS0FBSyxFQUFFLFVBQVU7b0JBQ2pCLElBQUksRUFBRSxVQUFVO2lCQUNqQjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixLQUFLLEVBQUUsRUFBRTtvQkFDVCxLQUFLLEVBQUUsS0FBSztvQkFDWixJQUFJLEVBQUUsT0FBTztpQkFDZDtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixLQUFLLEVBQUUsRUFBRTtvQkFDVCxLQUFLLEVBQUUsS0FBSztvQkFDWixJQUFJLEVBQUUsUUFBUTtpQkFDZjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixLQUFLLEVBQUUsRUFBRTtvQkFDVCxLQUFLLEVBQUUsS0FBSztvQkFDWixJQUFJLEVBQUUsT0FBTztpQkFDZDthQUNGO1lBQ0QsZUFBZTtZQUNmLE1BQU07WUFDTixrR0FBa0c7WUFDbEcsaUNBQWlDO1lBQ2pDLG1EQUFtRDtZQUNuRCxpQkFBaUI7WUFFakIsdUJBQXVCO1lBQ3ZCLDhCQUE4QjtZQUU5QixzR0FBc0c7WUFDdEcsMEZBQTBGO1lBQzFGLGtFQUFrRTtZQUVsRSxpQkFBaUI7WUFDakIsNkdBQTZHO1lBQzdHLDJDQUEyQztZQUMzQyxnREFBZ0Q7WUFDaEQsMENBQTBDO1lBQzFDLGlGQUFpRjtZQUNqRix3QkFBd0I7WUFDeEIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixXQUFXO1lBQ1gsUUFBUTtZQUNSLE1BQU07WUFDTixJQUFJO1NBQ0w7UUFDRCxJQUFJLEVBQUU7WUFDSix3QkFBd0IsRUFBRSxLQUFLO1lBQy9CLFVBQVUsRUFBRTtnQkFDVjtvQkFDRSxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsWUFBWTtvQkFDbkIsVUFBVSxFQUFFO3dCQUNWLE1BQU0sRUFBRSxRQUFRO3dCQUNoQixZQUFZLEVBQUUsSUFBSTt3QkFDbEIsR0FBRyxFQUFFLEtBQUs7cUJBQ1g7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLGdCQUFnQjtvQkFDdkIsVUFBVSxFQUFFO3dCQUNWLE1BQU0sRUFBRSxNQUFNO3dCQUNkLFlBQVksRUFBRSxJQUFJO3dCQUNsQixHQUFHLEVBQUUsS0FBSztxQkFDWDtpQkFDRjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsYUFBYTtvQkFDcEIsVUFBVSxFQUFFO3dCQUNWLE1BQU0sRUFBRSxPQUFPO3dCQUNmLFlBQVksRUFBRSxJQUFJO3dCQUNsQixHQUFHLEVBQUUsS0FBSztxQkFDWDtpQkFDRjtnQkFDRDtvQkFDRSxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsZUFBZTtvQkFDdEIsVUFBVSxFQUFFO3dCQUNWLE1BQU0sRUFBRSxTQUFTO3dCQUNqQixZQUFZLEVBQUUsSUFBSTt3QkFDbEIsR0FBRyxFQUFFLEtBQUs7cUJBQ1g7aUJBQ0Y7Z0JBQ0Q7b0JBQ0Usa0NBQWtDO29CQUNsQyxJQUFJLEVBQUUsUUFBUTtvQkFDZCxLQUFLLEVBQUUsY0FBYztvQkFDckIsVUFBVSxFQUFFO3dCQUNWLGFBQWEsRUFBRSxJQUFJO3FCQUNwQjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsSUFBSSxXQUFXLEVBQUU7UUFDZixNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxPQUFPLGNBQWMsQ0FBQztBQUN4QixDQUFDO0FBRUQsTUFBTSx1QkFBdUIsR0FBRztJQUM5Qix3QkFBd0I7Q0FDekIsQ0FBQztBQUNGLGVBQWUsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgSUZSQU1FX1NSQyA9ICcvL2Nkbi5pZnJhbWUubHkvYXBpL2lmcmFtZSc7XHJcbnZhciBBUElfS0VZID0gJ2I0OTllOTJlODU3ZjQzNWMzOWMxNGQnO1xyXG5cclxuZnVuY3Rpb24gZ2V0Q0tFZGl0b3JDb25maWd1cmF0aW9uKGl0ZW1Ub29sYmFyOiBzdHJpbmcpIHtcclxuICBjb25zdCBja2VkaXRvckNvbmZpZyA9IHtcclxuICAgIHRvb2xiYXI6IHtcclxuICAgICAgaXRlbXM6IFtdLFxyXG4gICAgICByZW1vdmVJdGVtczogW10sXHJcbiAgICAgIHZpZXdwb3J0VG9wT2Zmc2V0OiAzMCxcclxuICAgICAgc2hvdWxkTm90R3JvdXBXaGVuRnVsbDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIGxhbmd1YWdlOiAnZW4nLFxyXG4gICAgdGFibGU6IHtcclxuICAgICAgY29udGVudFRvb2xiYXI6IFsndGFibGVDb2x1bW4nLCAndGFibGVSb3cnLCAnbWVyZ2VUYWJsZUNlbGxzJywgJ3RhYmxlUHJvcGVydGllcycsICd0YWJsZUNlbGxQcm9wZXJ0aWVzJ11cclxuICAgIH0sXHJcbiAgICBpbWFnZToge1xyXG4gICAgICBzdHlsZXM6IFsnYWxpZ25MZWZ0JywgJ2FsaWduQ2VudGVyJywgJ2FsaWduUmlnaHQnXSxcclxuICAgICAgdG9vbGJhcjogW1xyXG4gICAgICAgICdpbWFnZVJlc2l6ZToyNScsXHJcbiAgICAgICAgJ2ltYWdlUmVzaXplOjUwJyxcclxuICAgICAgICAnaW1hZ2VSZXNpemU6NzUnLFxyXG4gICAgICAgICdpbWFnZVJlc2l6ZTpvcmlnaW5hbCcsXHJcbiAgICAgICAgJ2ltYWdlU3R5bGU6YWxpZ25MZWZ0JyxcclxuICAgICAgICAnaW1hZ2VTdHlsZTphbGlnbkNlbnRlcicsXHJcbiAgICAgICAgJ2ltYWdlU3R5bGU6YWxpZ25SaWdodCcsXHJcbiAgICAgICAgJ3wnLFxyXG4gICAgICAgICdpbWFnZVRleHRBbHRlcm5hdGl2ZScsXHJcbiAgICAgICAgJ3wnLFxyXG4gICAgICAgICdsaW5rSW1hZ2UnLFxyXG4gICAgICAgICd8JyxcclxuICAgICAgICAnaW1hZ2VNYXAnLFxyXG4gICAgICAgICd8JyxcclxuICAgICAgICAncW1zRmxvd2NoYXJ0JyxcclxuICAgICAgICAnfCcsXHJcbiAgICAgICAgJ3Ftc0JwbW4nXHJcbiAgICAgIF0sXHJcbiAgICAgIHJlc2l6ZU9wdGlvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAnaW1hZ2VSZXNpemU6b3JpZ2luYWwnLFxyXG4gICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICBsYWJlbDogJ09yaWdpbmFsJyxcclxuICAgICAgICAgIGljb246ICdvcmlnaW5hbCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdpbWFnZVJlc2l6ZToyNScsXHJcbiAgICAgICAgICB2YWx1ZTogMjUsXHJcbiAgICAgICAgICBsYWJlbDogJzI1JScsXHJcbiAgICAgICAgICBpY29uOiAnc21hbGwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAnaW1hZ2VSZXNpemU6NTAnLFxyXG4gICAgICAgICAgdmFsdWU6IDUwLFxyXG4gICAgICAgICAgbGFiZWw6ICc1MCUnLFxyXG4gICAgICAgICAgaWNvbjogJ21lZGl1bSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdpbWFnZVJlc2l6ZTo3NScsXHJcbiAgICAgICAgICB2YWx1ZTogNzUsXHJcbiAgICAgICAgICBsYWJlbDogJzc1JScsXHJcbiAgICAgICAgICBpY29uOiAnbWVkaXVtJ1xyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIHZpZGVvOiB7XHJcbiAgICAgIHN0eWxlczogWydhbGlnbkxlZnQnLCAnYWxpZ25DZW50ZXInLCAnYWxpZ25SaWdodCddLFxyXG4gICAgICByZXNpemVVbml0OiAnJScsXHJcbiAgICAgIHRvb2xiYXI6IFtcclxuICAgICAgICAndmlkZW9SZXNpemUnLFxyXG4gICAgICAgICd8JyxcclxuICAgICAgICAndmlkZW9SZXNpemU6MjUnLFxyXG4gICAgICAgICd2aWRlb1Jlc2l6ZTo1MCcsXHJcbiAgICAgICAgJ3ZpZGVvUmVzaXplOjc1JyxcclxuICAgICAgICAndmlkZW9SZXNpemU6b3JpZ2luYWwnLFxyXG4gICAgICAgICd2aWRlb1N0eWxlOmFsaWduTGVmdCcsXHJcbiAgICAgICAgJ3ZpZGVvU3R5bGU6YWxpZ25DZW50ZXInLFxyXG4gICAgICAgICd2aWRlb1N0eWxlOmFsaWduUmlnaHQnXHJcbiAgICAgIF0sXHJcbiAgICAgIHJlc2l6ZU9wdGlvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAndmlkZW9SZXNpemU6b3JpZ2luYWwnLFxyXG4gICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICBsYWJlbDogJ09yaWdpbmFsJyxcclxuICAgICAgICAgIGljb246ICdvcmlnaW5hbCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICd2aWRlb1Jlc2l6ZToyNScsXHJcbiAgICAgICAgICB2YWx1ZTogMjUsXHJcbiAgICAgICAgICBsYWJlbDogJzI1JScsXHJcbiAgICAgICAgICBpY29uOiAnc21hbGwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAndmlkZW9SZXNpemU6NTAnLFxyXG4gICAgICAgICAgdmFsdWU6IDUwLFxyXG4gICAgICAgICAgbGFiZWw6ICc1MCUnLFxyXG4gICAgICAgICAgaWNvbjogJ21lZGl1bSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICd2aWRlb1Jlc2l6ZTo3NScsXHJcbiAgICAgICAgICB2YWx1ZTogNzUsXHJcbiAgICAgICAgICBsYWJlbDogJzc1JScsXHJcbiAgICAgICAgICBpY29uOiAnbGFyZ2UnXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAgbWVkaWE6IHtcclxuICAgICAgc3R5bGVzOiBbJ2FsaWduTGVmdCcsICdhbGlnbkNlbnRlcicsICdhbGlnblJpZ2h0J10sXHJcbiAgICAgIHJlc2l6ZVVuaXQ6ICclJyxcclxuICAgICAgdG9vbGJhcjogW1xyXG4gICAgICAgICdtZWRpYVJlc2l6ZScsXHJcbiAgICAgICAgJ3wnLFxyXG4gICAgICAgICdtZWRpYVJlc2l6ZToyNScsXHJcbiAgICAgICAgJ21lZGlhUmVzaXplOjUwJyxcclxuICAgICAgICAnbWVkaWFSZXNpemU6NzUnLFxyXG4gICAgICAgICdtZWRpYVJlc2l6ZTpvcmlnaW5hbCcsXHJcbiAgICAgICAgJ21lZGlhU3R5bGU6YWxpZ25MZWZ0JyxcclxuICAgICAgICAnbWVkaWFTdHlsZTphbGlnbkNlbnRlcicsXHJcbiAgICAgICAgJ21lZGlhU3R5bGU6YWxpZ25SaWdodCdcclxuICAgICAgXSxcclxuICAgICAgcmVzaXplT3B0aW9uczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdtZWRpYVJlc2l6ZTpvcmlnaW5hbCcsXHJcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgIGxhYmVsOiAnT3JpZ2luYWwnLFxyXG4gICAgICAgICAgaWNvbjogJ29yaWdpbmFsJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ21lZGlhUmVzaXplOjI1JyxcclxuICAgICAgICAgIHZhbHVlOiAyNSxcclxuICAgICAgICAgIGxhYmVsOiAnMjUlJyxcclxuICAgICAgICAgIGljb246ICdzbWFsbCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdtZWRpYVJlc2l6ZTo1MCcsXHJcbiAgICAgICAgICB2YWx1ZTogNTAsXHJcbiAgICAgICAgICBsYWJlbDogJzUwJScsXHJcbiAgICAgICAgICBpY29uOiAnbWVkaXVtJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ21lZGlhUmVzaXplOjc1JyxcclxuICAgICAgICAgIHZhbHVlOiA3NSxcclxuICAgICAgICAgIGxhYmVsOiAnNzUlJyxcclxuICAgICAgICAgIGljb246ICdsYXJnZSdcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICAvLyBDb25maWd1cmUgJ21lZGlhRW1iZWQnIHdpdGggSWZyYW1lbHkgcHJldmlld3MuXHJcbiAgICBtZWRpYUVtYmVkOiB7XHJcbiAgICAgIC8vIFByZXZpZXdzIGFyZSBhbHdheXMgZW5hYmxlZCBpZiB0aGVyZeKAmXMgYSBwcm92aWRlciBmb3IgYSBVUkwgKGJlbG93IHJlZ2V4IGNhdGNoZXMgYWxsIFVSTHMpXHJcbiAgICAgIC8vIEJ5IGRlZmF1bHQgYHByZXZpZXdzSW5EYXRhYCBhcmUgZGlzYWJsZWQsIGJ1dCBsZXTigJlzIHNldCBpdCB0byBgZmFsc2VgIGV4cGxpY2l0ZWx5IHRvIGJlIHN1cmVcclxuICAgICAgcHJldmlld3NJbkRhdGE6IHRydWUsXHJcbiAgICAgIHN0eWxlczogWydhbGlnbkxlZnQnLCAnYWxpZ25DZW50ZXInLCAnYWxpZ25SaWdodCddLFxyXG4gICAgICByZXNpemVVbml0OiAnJScsXHJcbiAgICAgIHRvb2xiYXI6IFtcclxuICAgICAgICAnbWVkaWFSZXNpemUnLFxyXG4gICAgICAgICd8JyxcclxuICAgICAgICAnbWVkaWFSZXNpemU6MjUnLFxyXG4gICAgICAgICdtZWRpYVJlc2l6ZTo1MCcsXHJcbiAgICAgICAgJ21lZGlhUmVzaXplOjc1JyxcclxuICAgICAgICAnbWVkaWFSZXNpemU6b3JpZ2luYWwnLFxyXG4gICAgICAgICdtZWRpYVN0eWxlOmFsaWduTGVmdCcsXHJcbiAgICAgICAgJ21lZGlhU3R5bGU6YWxpZ25DZW50ZXInLFxyXG4gICAgICAgICdtZWRpYVN0eWxlOmFsaWduUmlnaHQnXHJcbiAgICAgIF0sXHJcbiAgICAgIHJlc2l6ZU9wdGlvbnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAnbWVkaWFSZXNpemU6b3JpZ2luYWwnLFxyXG4gICAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgICBsYWJlbDogJ09yaWdpbmFsJyxcclxuICAgICAgICAgIGljb246ICdvcmlnaW5hbCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdtZWRpYVJlc2l6ZToyNScsXHJcbiAgICAgICAgICB2YWx1ZTogMjUsXHJcbiAgICAgICAgICBsYWJlbDogJzI1JScsXHJcbiAgICAgICAgICBpY29uOiAnc21hbGwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAnbWVkaWFSZXNpemU6NTAnLFxyXG4gICAgICAgICAgdmFsdWU6IDUwLFxyXG4gICAgICAgICAgbGFiZWw6ICc1MCUnLFxyXG4gICAgICAgICAgaWNvbjogJ21lZGl1bSdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdtZWRpYVJlc2l6ZTo3NScsXHJcbiAgICAgICAgICB2YWx1ZTogNzUsXHJcbiAgICAgICAgICBsYWJlbDogJzc1JScsXHJcbiAgICAgICAgICBpY29uOiAnbGFyZ2UnXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICAvLyBwcm92aWRlcnM6IFtcclxuICAgICAgLy8gICB7XHJcbiAgICAgIC8vICAgICAvLyBoaW50OiB0aGlzIGlzIGp1c3QgZm9yIHByZXZpZXdzLiBHZXQgYWN0dWFsIEhUTUwgY29kZXMgYnkgbWFraW5nIEFQSSBjYWxscyBmcm9tIHlvdXIgQ01TXHJcbiAgICAgIC8vICAgICBuYW1lOiAnaWZyYW1lbHkgcHJldmlld3MnLFxyXG4gICAgICAvLyAgICAgLy8gTWF0Y2ggYWxsIFVSTHMgb3IganVzdCB0aGUgb25lcyB5b3UgbmVlZDpcclxuICAgICAgLy8gICAgIHVybDogLy4rLyxcclxuXHJcbiAgICAgIC8vICAgICBodG1sOiBtYXRjaCA9PiB7XHJcbiAgICAgIC8vICAgICAgIGNvbnN0IHVybCA9IG1hdGNoWzBdO1xyXG5cclxuICAgICAgLy8gICAgICAgdmFyIGlmcmFtZVVybCA9IElGUkFNRV9TUkMgKyAnP2FwcD0xJmFwaV9rZXk9JyArIEFQSV9LRVkgKyAnJnVybD0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHVybCk7XHJcbiAgICAgIC8vICAgICAgIC8vIGFsdGVybmF0aXZlbHksIHVzZSAma2V5PSBpbnN0ZWFkIG9mICZhcGlfa2V5IHdpdGggdGhlIE1ENSBoYXNoIG9mIHlvdXIgYXBpX2tleVxyXG4gICAgICAvLyAgICAgICAvLyBtb3JlIGFib3V0IGl0OiBodHRwczovL2lmcmFtZWx5LmNvbS9kb2NzL2FsbG93LW9yaWdpbnNcclxuXHJcbiAgICAgIC8vICAgICAgIHJldHVybiAoXHJcbiAgICAgIC8vICAgICAgICAgLy8gSWYgeW91IG5lZWQsIHNldCBtYXh3aWR0aCBhbmQgb3RoZXIgc3R5bGVzIGZvciAnaWZyYW1lbHktZW1iZWQnIGNsYXNzIC0gaXQncyB5b3VycyB0byBjdXN0b21pemVcclxuICAgICAgLy8gICAgICAgICAnPGRpdiBjbGFzcz1cImlmcmFtZWx5LWVtYmVkXCI+JyArXHJcbiAgICAgIC8vICAgICAgICAgJzxkaXYgY2xhc3M9XCJpZnJhbWVseS1yZXNwb25zaXZlXCI+JyArXHJcbiAgICAgIC8vICAgICAgICAgYDxpZnJhbWUgc3JjPVwiJHtpZnJhbWVVcmx9XCIgYCArXHJcbiAgICAgIC8vICAgICAgICAgJ2ZyYW1lYm9yZGVyPVwiMFwiIGFsbG93PVwiYXV0b3BsYXk7IGVuY3J5cHRlZC1tZWRpYVwiIGFsbG93ZnVsbHNjcmVlbj4nICtcclxuICAgICAgLy8gICAgICAgICAnPC9pZnJhbWU+JyArXHJcbiAgICAgIC8vICAgICAgICAgJzwvZGl2PicgK1xyXG4gICAgICAvLyAgICAgICAgICc8L2Rpdj4nXHJcbiAgICAgIC8vICAgICAgICk7XHJcbiAgICAgIC8vICAgICB9XHJcbiAgICAgIC8vICAgfVxyXG4gICAgICAvLyBdXHJcbiAgICB9LFxyXG4gICAgbGluazoge1xyXG4gICAgICBhZGRUYXJnZXRUb0V4dGVybmFsTGlua3M6IGZhbHNlLFxyXG4gICAgICBkZWNvcmF0b3JzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbW9kZTogJ21hbnVhbCcsXHJcbiAgICAgICAgICBsYWJlbDogJ05ldyB3aW5kb3cnLFxyXG4gICAgICAgICAgYXR0cmlidXRlczoge1xyXG4gICAgICAgICAgICB0YXJnZXQ6ICdfYmxhbmsnLFxyXG4gICAgICAgICAgICBtYW51YWxUYXJnZXQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogJ3VybCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG1vZGU6ICdtYW51YWwnLFxyXG4gICAgICAgICAgbGFiZWw6ICdUb3Btb3N0IHdpbmRvdycsXHJcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XHJcbiAgICAgICAgICAgIHRhcmdldDogJ190b3AnLFxyXG4gICAgICAgICAgICBtYW51YWxUYXJnZXQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogJ3VybCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG1vZGU6ICdtYW51YWwnLFxyXG4gICAgICAgICAgbGFiZWw6ICdTYW1lIHdpbmRvdycsXHJcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XHJcbiAgICAgICAgICAgIHRhcmdldDogJ19zZWxmJyxcclxuICAgICAgICAgICAgbWFudWFsVGFyZ2V0OiB0cnVlLFxyXG4gICAgICAgICAgICB1cmw6ICd1cmwnXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBtb2RlOiAnbWFudWFsJyxcclxuICAgICAgICAgIGxhYmVsOiAnUGFyZW50IHdpbmRvdycsXHJcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XHJcbiAgICAgICAgICAgIHRhcmdldDogJ19wYXJlbnQnLFxyXG4gICAgICAgICAgICBtYW51YWxUYXJnZXQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogJ3VybCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIC8vIGFsd2F5IHB1dCB0aGlzIG9uZSBhIHRoZSBib3R0b21cclxuICAgICAgICAgIG1vZGU6ICdtYW51YWwnLFxyXG4gICAgICAgICAgbGFiZWw6ICdTZWxlY3QgcmFuZ2UnLFxyXG4gICAgICAgICAgYXR0cmlidXRlczoge1xyXG4gICAgICAgICAgICBzZWxlY3RlZFJhbmdlOiB0cnVlXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgaWYgKGl0ZW1Ub29sYmFyKSB7XHJcbiAgICBjb25zdCBpdGVtQXJyYXkgPSBpdGVtVG9vbGJhci5zcGxpdCgnLCcpO1xyXG4gICAgaXRlbUFycmF5LmZvckVhY2goaSA9PiB7XHJcbiAgICAgIGNrZWRpdG9yQ29uZmlnLnRvb2xiYXIuaXRlbXMucHVzaChpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNrZWRpdG9yQ29uZmlnO1xyXG59XHJcblxyXG5jb25zdCBDS0VkaXRvckNvbW1vbkZ1bmN0aW9ucyA9IHtcclxuICBnZXRDS0VkaXRvckNvbmZpZ3VyYXRpb25cclxufTtcclxuZXhwb3J0IGRlZmF1bHQgQ0tFZGl0b3JDb21tb25GdW5jdGlvbnM7XHJcbiJdfQ==
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vZnVuY3Rpb25zL2NvbW1vbi5mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQztBQUM5QyxJQUFJLE9BQU8sR0FBRyx3QkFBd0IsQ0FBQztBQUV2QyxTQUFTLHdCQUF3QixDQUFDLFdBQW1CO0lBQ25ELE1BQU0sY0FBYyxHQUFHO1FBQ3JCLE9BQU8sRUFBRTtZQUNQLEtBQUssRUFBRSxFQUFFO1lBQ1QsV0FBVyxFQUFFLEVBQUU7WUFDZixpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLHNCQUFzQixFQUFFLElBQUk7U0FDN0I7UUFDRCxRQUFRLEVBQUUsSUFBSTtRQUNkLEtBQUssRUFBRTtZQUNMLGNBQWMsRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLENBQUM7U0FDekc7UUFDRCxLQUFLLEVBQUU7WUFDTCxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQztZQUNsRCxPQUFPLEVBQUU7Z0JBQ1AsZ0JBQWdCO2dCQUNoQixnQkFBZ0I7Z0JBQ2hCLGdCQUFnQjtnQkFDaEIsc0JBQXNCO2dCQUN0QixzQkFBc0I7Z0JBQ3RCLHdCQUF3QjtnQkFDeEIsdUJBQXVCO2dCQUN2QixHQUFHO2dCQUNILHNCQUFzQjtnQkFDdEIsR0FBRztnQkFDSCxXQUFXO2dCQUNYLEdBQUc7Z0JBQ0gsVUFBVTtnQkFDVixHQUFHO2dCQUNILGNBQWM7Z0JBQ2QsR0FBRztnQkFDSCxTQUFTO2FBQ1Y7WUFDRCxhQUFhLEVBQUU7Z0JBQ2I7b0JBQ0UsSUFBSSxFQUFFLHNCQUFzQjtvQkFDNUIsS0FBSyxFQUFF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LEVBQUUsQ0FBQztnQkFDckIsaUJBQWlCLENBQUMsRUFBRSxDQUFDO2dCQUNyQixpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztnQkFDckIsaUJBQWlCLENBQUMsRUFBRSxDQUFDO2dCQUNyQixpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztnQkFDckIsaUJBQWlCLENBQUMsRUFBRSxDQUFDO2dCQUNyQixpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLGlCQUFpQixDQUFDLEVBQUUsQ0FBQzthQUN0QjtTQUNKO0tBQ0EsQ0FBQztJQUVGLElBQUksV0FBVyxFQUFFO1FBQ2YsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN6QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3BCLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztLQUNKO0lBRUQsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsd0JBQXdCO0NBQ3pCLENBQUM7QUFFRixTQUFTLGlCQUFpQixDQUFFLElBQVk7SUFDdkMsT0FBTztRQUNOLEtBQUssRUFBRSxJQUFJO1FBQ1gsS0FBSyxFQUFFLElBQUk7UUFDWCxJQUFJLEVBQUU7WUFDTCxJQUFJLEVBQUUsTUFBTTtZQUNaLE1BQU0sRUFBRTtnQkFDUCxXQUFXLEVBQUUsR0FBSSxJQUFLLElBQUk7YUFDMUI7U0FDRDtLQUNELENBQUM7QUFDSCxDQUFDO0FBRUQsZUFBZSx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbInZhciBJRlJBTUVfU1JDID0gJy8vY2RuLmlmcmFtZS5seS9hcGkvaWZyYW1lJztcclxudmFyIEFQSV9LRVkgPSAnYjQ5OWU5MmU4NTdmNDM1YzM5YzE0ZCc7XHJcblxyXG5mdW5jdGlvbiBnZXRDS0VkaXRvckNvbmZpZ3VyYXRpb24oaXRlbVRvb2xiYXI6IHN0cmluZykge1xyXG4gIGNvbnN0IGNrZWRpdG9yQ29uZmlnID0ge1xyXG4gICAgdG9vbGJhcjoge1xyXG4gICAgICBpdGVtczogW10sXHJcbiAgICAgIHJlbW92ZUl0ZW1zOiBbXSxcclxuICAgICAgdmlld3BvcnRUb3BPZmZzZXQ6IDMwLFxyXG4gICAgICBzaG91bGROb3RHcm91cFdoZW5GdWxsOiB0cnVlXHJcbiAgICB9LFxyXG4gICAgbGFuZ3VhZ2U6ICdlbicsXHJcbiAgICB0YWJsZToge1xyXG4gICAgICBjb250ZW50VG9vbGJhcjogWyd0YWJsZUNvbHVtbicsICd0YWJsZVJvdycsICdtZXJnZVRhYmxlQ2VsbHMnLCAndGFibGVQcm9wZXJ0aWVzJywgJ3RhYmxlQ2VsbFByb3BlcnRpZXMnXVxyXG4gICAgfSxcclxuICAgIGltYWdlOiB7XHJcbiAgICAgIHN0eWxlczogWydhbGlnbkxlZnQnLCAnYWxpZ25DZW50ZXInLCAnYWxpZ25SaWdodCddLFxyXG4gICAgICB0b29sYmFyOiBbXHJcbiAgICAgICAgJ2ltYWdlUmVzaXplOjI1JyxcclxuICAgICAgICAnaW1hZ2VSZXNpemU6NTAnLFxyXG4gICAgICAgICdpbWFnZVJlc2l6ZTo3NScsXHJcbiAgICAgICAgJ2ltYWdlUmVzaXplOm9yaWdpbmFsJyxcclxuICAgICAgICAnaW1hZ2VTdHlsZTphbGlnbkxlZnQnLFxyXG4gICAgICAgICdpbWFnZVN0eWxlOmFsaWduQ2VudGVyJyxcclxuICAgICAgICAnaW1hZ2VTdHlsZTphbGlnblJpZ2h0JyxcclxuICAgICAgICAnfCcsXHJcbiAgICAgICAgJ2ltYWdlVGV4dEFsdGVybmF0aXZlJyxcclxuICAgICAgICAnfCcsXHJcbiAgICAgICAgJ2xpbmtJbWFnZScsXHJcbiAgICAgICAgJ3wnLFxyXG4gICAgICAgICdpbWFnZU1hcCcsXHJcbiAgICAgICAgJ3wnLFxyXG4gICAgICAgICdxbXNGbG93Y2hhcnQnLFxyXG4gICAgICAgICd8JyxcclxuICAgICAgICAncW1zQnBtbidcclxuICAgICAgXSxcclxuICAgICAgcmVzaXplT3B0aW9uczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdpbWFnZVJlc2l6ZTpvcmlnaW5hbCcsXHJcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgIGxhYmVsOiAnT3JpZ2luYWwnLFxyXG4gICAgICAgICAgaWNvbjogJ29yaWdpbmFsJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ2ltYWdlUmVzaXplOjI1JyxcclxuICAgICAgICAgIHZhbHVlOiAyNSxcclxuICAgICAgICAgIGxhYmVsOiAnMjUlJyxcclxuICAgICAgICAgIGljb246ICdzbWFsbCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdpbWFnZVJlc2l6ZTo1MCcsXHJcbiAgICAgICAgICB2YWx1ZTogNTAsXHJcbiAgICAgICAgICBsYWJlbDogJzUwJScsXHJcbiAgICAgICAgICBpY29uOiAnbWVkaXVtJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ2ltYWdlUmVzaXplOjc1JyxcclxuICAgICAgICAgIHZhbHVlOiA3NSxcclxuICAgICAgICAgIGxhYmVsOiAnNzUlJyxcclxuICAgICAgICAgIGljb246ICdtZWRpdW0nXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9LFxyXG4gICAgdmlkZW86IHtcclxuICAgICAgc3R5bGVzOiBbJ2FsaWduTGVmdCcsICdhbGlnbkNlbnRlcicsICdhbGlnblJpZ2h0J10sXHJcbiAgICAgIHJlc2l6ZVVuaXQ6ICclJyxcclxuICAgICAgdG9vbGJhcjogW1xyXG4gICAgICAgICd2aWRlb1Jlc2l6ZScsXHJcbiAgICAgICAgJ3wnLFxyXG4gICAgICAgICd2aWRlb1Jlc2l6ZToyNScsXHJcbiAgICAgICAgJ3ZpZGVvUmVzaXplOjUwJyxcclxuICAgICAgICAndmlkZW9SZXNpemU6NzUnLFxyXG4gICAgICAgICd2aWRlb1Jlc2l6ZTpvcmlnaW5hbCcsXHJcbiAgICAgICAgJ3ZpZGVvU3R5bGU6YWxpZ25MZWZ0JyxcclxuICAgICAgICAndmlkZW9TdHlsZTphbGlnbkNlbnRlcicsXHJcbiAgICAgICAgJ3ZpZGVvU3R5bGU6YWxpZ25SaWdodCdcclxuICAgICAgXSxcclxuICAgICAgcmVzaXplT3B0aW9uczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICd2aWRlb1Jlc2l6ZTpvcmlnaW5hbCcsXHJcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgIGxhYmVsOiAnT3JpZ2luYWwnLFxyXG4gICAgICAgICAgaWNvbjogJ29yaWdpbmFsJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ3ZpZGVvUmVzaXplOjI1JyxcclxuICAgICAgICAgIHZhbHVlOiAyNSxcclxuICAgICAgICAgIGxhYmVsOiAnMjUlJyxcclxuICAgICAgICAgIGljb246ICdzbWFsbCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICd2aWRlb1Jlc2l6ZTo1MCcsXHJcbiAgICAgICAgICB2YWx1ZTogNTAsXHJcbiAgICAgICAgICBsYWJlbDogJzUwJScsXHJcbiAgICAgICAgICBpY29uOiAnbWVkaXVtJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ3ZpZGVvUmVzaXplOjc1JyxcclxuICAgICAgICAgIHZhbHVlOiA3NSxcclxuICAgICAgICAgIGxhYmVsOiAnNzUlJyxcclxuICAgICAgICAgIGljb246ICdsYXJnZSdcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICBtZWRpYToge1xyXG4gICAgICBzdHlsZXM6IFsnYWxpZ25MZWZ0JywgJ2FsaWduQ2VudGVyJywgJ2FsaWduUmlnaHQnXSxcclxuICAgICAgcmVzaXplVW5pdDogJyUnLFxyXG4gICAgICB0b29sYmFyOiBbXHJcbiAgICAgICAgJ21lZGlhUmVzaXplJyxcclxuICAgICAgICAnfCcsXHJcbiAgICAgICAgJ21lZGlhUmVzaXplOjI1JyxcclxuICAgICAgICAnbWVkaWFSZXNpemU6NTAnLFxyXG4gICAgICAgICdtZWRpYVJlc2l6ZTo3NScsXHJcbiAgICAgICAgJ21lZGlhUmVzaXplOm9yaWdpbmFsJyxcclxuICAgICAgICAnbWVkaWFTdHlsZTphbGlnbkxlZnQnLFxyXG4gICAgICAgICdtZWRpYVN0eWxlOmFsaWduQ2VudGVyJyxcclxuICAgICAgICAnbWVkaWFTdHlsZTphbGlnblJpZ2h0J1xyXG4gICAgICBdLFxyXG4gICAgICByZXNpemVPcHRpb25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ21lZGlhUmVzaXplOm9yaWdpbmFsJyxcclxuICAgICAgICAgIHZhbHVlOiBudWxsLFxyXG4gICAgICAgICAgbGFiZWw6ICdPcmlnaW5hbCcsXHJcbiAgICAgICAgICBpY29uOiAnb3JpZ2luYWwnXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAnbWVkaWFSZXNpemU6MjUnLFxyXG4gICAgICAgICAgdmFsdWU6IDI1LFxyXG4gICAgICAgICAgbGFiZWw6ICcyNSUnLFxyXG4gICAgICAgICAgaWNvbjogJ3NtYWxsJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ21lZGlhUmVzaXplOjUwJyxcclxuICAgICAgICAgIHZhbHVlOiA1MCxcclxuICAgICAgICAgIGxhYmVsOiAnNTAlJyxcclxuICAgICAgICAgIGljb246ICdtZWRpdW0nXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lOiAnbWVkaWFSZXNpemU6NzUnLFxyXG4gICAgICAgICAgdmFsdWU6IDc1LFxyXG4gICAgICAgICAgbGFiZWw6ICc3NSUnLFxyXG4gICAgICAgICAgaWNvbjogJ2xhcmdlJ1xyXG4gICAgICAgIH1cclxuICAgICAgXVxyXG4gICAgfSxcclxuICAgIC8vIENvbmZpZ3VyZSAnbWVkaWFFbWJlZCcgd2l0aCBJZnJhbWVseSBwcmV2aWV3cy5cclxuICAgIG1lZGlhRW1iZWQ6IHtcclxuICAgICAgLy8gUHJldmlld3MgYXJlIGFsd2F5cyBlbmFibGVkIGlmIHRoZXJl4oCZcyBhIHByb3ZpZGVyIGZvciBhIFVSTCAoYmVsb3cgcmVnZXggY2F0Y2hlcyBhbGwgVVJMcylcclxuICAgICAgLy8gQnkgZGVmYXVsdCBgcHJldmlld3NJbkRhdGFgIGFyZSBkaXNhYmxlZCwgYnV0IGxldOKAmXMgc2V0IGl0IHRvIGBmYWxzZWAgZXhwbGljaXRlbHkgdG8gYmUgc3VyZVxyXG4gICAgICBwcmV2aWV3c0luRGF0YTogdHJ1ZSxcclxuICAgICAgc3R5bGVzOiBbJ2FsaWduTGVmdCcsICdhbGlnbkNlbnRlcicsICdhbGlnblJpZ2h0J10sXHJcbiAgICAgIHJlc2l6ZVVuaXQ6ICclJyxcclxuICAgICAgdG9vbGJhcjogW1xyXG4gICAgICAgICdtZWRpYVJlc2l6ZScsXHJcbiAgICAgICAgJ3wnLFxyXG4gICAgICAgICdtZWRpYVJlc2l6ZToyNScsXHJcbiAgICAgICAgJ21lZGlhUmVzaXplOjUwJyxcclxuICAgICAgICAnbWVkaWFSZXNpemU6NzUnLFxyXG4gICAgICAgICdtZWRpYVJlc2l6ZTpvcmlnaW5hbCcsXHJcbiAgICAgICAgJ21lZGlhU3R5bGU6YWxpZ25MZWZ0JyxcclxuICAgICAgICAnbWVkaWFTdHlsZTphbGlnbkNlbnRlcicsXHJcbiAgICAgICAgJ21lZGlhU3R5bGU6YWxpZ25SaWdodCdcclxuICAgICAgXSxcclxuICAgICAgcmVzaXplT3B0aW9uczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdtZWRpYVJlc2l6ZTpvcmlnaW5hbCcsXHJcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICAgIGxhYmVsOiAnT3JpZ2luYWwnLFxyXG4gICAgICAgICAgaWNvbjogJ29yaWdpbmFsJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ21lZGlhUmVzaXplOjI1JyxcclxuICAgICAgICAgIHZhbHVlOiAyNSxcclxuICAgICAgICAgIGxhYmVsOiAnMjUlJyxcclxuICAgICAgICAgIGljb246ICdzbWFsbCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWU6ICdtZWRpYVJlc2l6ZTo1MCcsXHJcbiAgICAgICAgICB2YWx1ZTogNTAsXHJcbiAgICAgICAgICBsYWJlbDogJzUwJScsXHJcbiAgICAgICAgICBpY29uOiAnbWVkaXVtJ1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbmFtZTogJ21lZGlhUmVzaXplOjc1JyxcclxuICAgICAgICAgIHZhbHVlOiA3NSxcclxuICAgICAgICAgIGxhYmVsOiAnNzUlJyxcclxuICAgICAgICAgIGljb246ICdsYXJnZSdcclxuICAgICAgICB9XHJcbiAgICAgIF0sXHJcbiAgICAgIC8vIHByb3ZpZGVyczogW1xyXG4gICAgICAvLyAgIHtcclxuICAgICAgLy8gICAgIC8vIGhpbnQ6IHRoaXMgaXMganVzdCBmb3IgcHJldmlld3MuIEdldCBhY3R1YWwgSFRNTCBjb2RlcyBieSBtYWtpbmcgQVBJIGNhbGxzIGZyb20geW91ciBDTVNcclxuICAgICAgLy8gICAgIG5hbWU6ICdpZnJhbWVseSBwcmV2aWV3cycsXHJcbiAgICAgIC8vICAgICAvLyBNYXRjaCBhbGwgVVJMcyBvciBqdXN0IHRoZSBvbmVzIHlvdSBuZWVkOlxyXG4gICAgICAvLyAgICAgdXJsOiAvLisvLFxyXG5cclxuICAgICAgLy8gICAgIGh0bWw6IG1hdGNoID0+IHtcclxuICAgICAgLy8gICAgICAgY29uc3QgdXJsID0gbWF0Y2hbMF07XHJcblxyXG4gICAgICAvLyAgICAgICB2YXIgaWZyYW1lVXJsID0gSUZSQU1FX1NSQyArICc/YXBwPTEmYXBpX2tleT0nICsgQVBJX0tFWSArICcmdXJsPScgKyBlbmNvZGVVUklDb21wb25lbnQodXJsKTtcclxuICAgICAgLy8gICAgICAgLy8gYWx0ZXJuYXRpdmVseSwgdXNlICZrZXk9IGluc3RlYWQgb2YgJmFwaV9rZXkgd2l0aCB0aGUgTUQ1IGhhc2ggb2YgeW91ciBhcGlfa2V5XHJcbiAgICAgIC8vICAgICAgIC8vIG1vcmUgYWJvdXQgaXQ6IGh0dHBzOi8vaWZyYW1lbHkuY29tL2RvY3MvYWxsb3ctb3JpZ2luc1xyXG5cclxuICAgICAgLy8gICAgICAgcmV0dXJuIChcclxuICAgICAgLy8gICAgICAgICAvLyBJZiB5b3UgbmVlZCwgc2V0IG1heHdpZHRoIGFuZCBvdGhlciBzdHlsZXMgZm9yICdpZnJhbWVseS1lbWJlZCcgY2xhc3MgLSBpdCdzIHlvdXJzIHRvIGN1c3RvbWl6ZVxyXG4gICAgICAvLyAgICAgICAgICc8ZGl2IGNsYXNzPVwiaWZyYW1lbHktZW1iZWRcIj4nICtcclxuICAgICAgLy8gICAgICAgICAnPGRpdiBjbGFzcz1cImlmcmFtZWx5LXJlc3BvbnNpdmVcIj4nICtcclxuICAgICAgLy8gICAgICAgICBgPGlmcmFtZSBzcmM9XCIke2lmcmFtZVVybH1cIiBgICtcclxuICAgICAgLy8gICAgICAgICAnZnJhbWVib3JkZXI9XCIwXCIgYWxsb3c9XCJhdXRvcGxheTsgZW5jcnlwdGVkLW1lZGlhXCIgYWxsb3dmdWxsc2NyZWVuPicgK1xyXG4gICAgICAvLyAgICAgICAgICc8L2lmcmFtZT4nICtcclxuICAgICAgLy8gICAgICAgICAnPC9kaXY+JyArXHJcbiAgICAgIC8vICAgICAgICAgJzwvZGl2PidcclxuICAgICAgLy8gICAgICAgKTtcclxuICAgICAgLy8gICAgIH1cclxuICAgICAgLy8gICB9XHJcbiAgICAgIC8vIF1cclxuICAgIH0sXHJcbiAgICBsaW5rOiB7XHJcbiAgICAgIGFkZFRhcmdldFRvRXh0ZXJuYWxMaW5rczogZmFsc2UsXHJcbiAgICAgIGRlY29yYXRvcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBtb2RlOiAnbWFudWFsJyxcclxuICAgICAgICAgIGxhYmVsOiAnTmV3IHdpbmRvdycsXHJcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XHJcbiAgICAgICAgICAgIHRhcmdldDogJ19ibGFuaycsXHJcbiAgICAgICAgICAgIG1hbnVhbFRhcmdldDogdHJ1ZSxcclxuICAgICAgICAgICAgdXJsOiAndXJsJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbW9kZTogJ21hbnVhbCcsXHJcbiAgICAgICAgICBsYWJlbDogJ1RvcG1vc3Qgd2luZG93JyxcclxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcclxuICAgICAgICAgICAgdGFyZ2V0OiAnX3RvcCcsXHJcbiAgICAgICAgICAgIG1hbnVhbFRhcmdldDogdHJ1ZSxcclxuICAgICAgICAgICAgdXJsOiAndXJsJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbW9kZTogJ21hbnVhbCcsXHJcbiAgICAgICAgICBsYWJlbDogJ1NhbWUgd2luZG93JyxcclxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcclxuICAgICAgICAgICAgdGFyZ2V0OiAnX3NlbGYnLFxyXG4gICAgICAgICAgICBtYW51YWxUYXJnZXQ6IHRydWUsXHJcbiAgICAgICAgICAgIHVybDogJ3VybCdcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG1vZGU6ICdtYW51YWwnLFxyXG4gICAgICAgICAgbGFiZWw6ICdQYXJlbnQgd2luZG93JyxcclxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHtcclxuICAgICAgICAgICAgdGFyZ2V0OiAnX3BhcmVudCcsXHJcbiAgICAgICAgICAgIG1hbnVhbFRhcmdldDogdHJ1ZSxcclxuICAgICAgICAgICAgdXJsOiAndXJsJ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgLy8gYWx3YXkgcHV0IHRoaXMgb25lIGEgdGhlIGJvdHRvbVxyXG4gICAgICAgICAgbW9kZTogJ21hbnVhbCcsXHJcbiAgICAgICAgICBsYWJlbDogJ1NlbGVjdCByYW5nZScsXHJcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XHJcbiAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2U6IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICBmb250U2l6ZToge1xyXG4gICAgICBvcHRpb25zOiBbXHJcbiAgICAgICAgZ2VuZXJhdGVQdFNldHRpbmcoOCksXHJcbiAgICAgICAgZ2VuZXJhdGVQdFNldHRpbmcoOSksXHJcbiAgICAgICAgZ2VuZXJhdGVQdFNldHRpbmcoMTApLFxyXG4gICAgICAgIGdlbmVyYXRlUHRTZXR0aW5nKDExKSxcclxuICAgICAgICBnZW5lcmF0ZVB0U2V0dGluZygxMiksXHJcbiAgICAgICAgZ2VuZXJhdGVQdFNldHRpbmcoMTQpLFxyXG4gICAgICAgIGdlbmVyYXRlUHRTZXR0aW5nKDE2KSxcclxuICAgICAgICBnZW5lcmF0ZVB0U2V0dGluZygxOCksXHJcbiAgICAgICAgZ2VuZXJhdGVQdFNldHRpbmcoMjApLFxyXG4gICAgICAgIGdlbmVyYXRlUHRTZXR0aW5nKDIyKSxcclxuICAgICAgICBnZW5lcmF0ZVB0U2V0dGluZygyNCksXHJcbiAgICAgICAgZ2VuZXJhdGVQdFNldHRpbmcoMjYpLFxyXG4gICAgICAgIGdlbmVyYXRlUHRTZXR0aW5nKDI4KSxcclxuICAgICAgICBnZW5lcmF0ZVB0U2V0dGluZygzNiksXHJcbiAgICAgICAgZ2VuZXJhdGVQdFNldHRpbmcoNDgpXHJcbiAgICAgIF1cclxuICB9XHJcbiAgfTtcclxuXHJcbiAgaWYgKGl0ZW1Ub29sYmFyKSB7XHJcbiAgICBjb25zdCBpdGVtQXJyYXkgPSBpdGVtVG9vbGJhci5zcGxpdCgnLCcpO1xyXG4gICAgaXRlbUFycmF5LmZvckVhY2goaSA9PiB7XHJcbiAgICAgIGNrZWRpdG9yQ29uZmlnLnRvb2xiYXIuaXRlbXMucHVzaChpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNrZWRpdG9yQ29uZmlnO1xyXG59XHJcblxyXG5jb25zdCBDS0VkaXRvckNvbW1vbkZ1bmN0aW9ucyA9IHtcclxuICBnZXRDS0VkaXRvckNvbmZpZ3VyYXRpb25cclxufTtcclxuXHJcbmZ1bmN0aW9uIGdlbmVyYXRlUHRTZXR0aW5nKCBzaXplOiBudW1iZXIgKSB7XHJcblx0cmV0dXJuIHtcclxuXHRcdG1vZGVsOiBzaXplLFxyXG5cdFx0dGl0bGU6IHNpemUsXHJcblx0XHR2aWV3OiB7XHJcblx0XHRcdG5hbWU6ICdzcGFuJyxcclxuXHRcdFx0c3R5bGVzOiB7XHJcblx0XHRcdFx0J2ZvbnQtc2l6ZSc6IGAkeyBzaXplIH1wdGBcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IENLRWRpdG9yQ29tbW9uRnVuY3Rpb25zO1xyXG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { Buffer } from 'buffer';
2
+ export function base64StringToFile(base64String, filename) {
3
+ const arr = base64String.split(',');
4
+ if (arr.length < 2) {
5
+ return undefined;
6
+ }
7
+ const mimeArr = arr[0].match(/:(.*?);/);
8
+ if (!mimeArr || mimeArr.length < 2) {
9
+ return undefined;
10
+ }
11
+ const mime = mimeArr[1];
12
+ const buff = Buffer.from(arr[1], 'base64');
13
+ return new File([buff], filename, { type: mime });
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZUhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Ftcy1hbmd1bGFyL3NyYy9saWIvcW1zLWNrZWRpdG9yLWNvbXBvbmVudHMvY29tbW9uL2hlbHBlci9maWxlSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFaEMsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFlBQW9CLEVBQUUsUUFBZ0I7SUFDdkUsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7S0FBRTtJQUN6QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLElBQUksQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7UUFBRSxPQUFPLFNBQVMsQ0FBQztLQUFFO0lBQ3pELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzQyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYmFzZTY0U3RyaW5nVG9GaWxlKGJhc2U2NFN0cmluZzogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nKTogRmlsZSB8IHVuZGVmaW5lZCB7XHJcbiAgY29uc3QgYXJyID0gYmFzZTY0U3RyaW5nLnNwbGl0KCcsJyk7XHJcbiAgaWYgKGFyci5sZW5ndGggPCAyKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cclxuICBjb25zdCBtaW1lQXJyID0gYXJyWzBdLm1hdGNoKC86KC4qPyk7Lyk7XHJcbiAgaWYgKCFtaW1lQXJyIHx8IG1pbWVBcnIubGVuZ3RoIDwgMikgeyByZXR1cm4gdW5kZWZpbmVkOyB9XHJcbiAgY29uc3QgbWltZSA9IG1pbWVBcnJbMV07XHJcbiAgY29uc3QgYnVmZiA9IEJ1ZmZlci5mcm9tKGFyclsxXSwgJ2Jhc2U2NCcpO1xyXG4gIHJldHVybiBuZXcgRmlsZShbYnVmZl0sIGZpbGVuYW1lLCB7IHR5cGU6IG1pbWUgfSk7XHJcbn1cclxuIl19