qms-angular 1.0.55 → 1.0.56

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 (411) hide show
  1. package/bundles/qms-angular.umd.js +4003 -12241
  2. package/bundles/qms-angular.umd.js.map +1 -1
  3. package/esm2015/lib/components/app-icon/app-icon.module.js +16 -29
  4. package/esm2015/lib/components/app-icon/icon-registry.service.js +7 -9
  5. package/esm2015/lib/components/badges/qms-badges.component.js +15 -24
  6. package/esm2015/lib/components/badges/qms-badges.module.js +18 -33
  7. package/esm2015/lib/components/banner/qms-banner/qms-banner.component.js +16 -28
  8. package/esm2015/lib/components/banner/qms-banner/qms-banner.module.js +19 -36
  9. package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.js +16 -28
  10. package/esm2015/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.js +19 -36
  11. package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.component.js +13 -19
  12. package/esm2015/lib/components/banner/qms-banner-loading/qms-banner-loading.module.js +17 -30
  13. package/esm2015/lib/components/breadcrumb/breadcrumb-direction-icon.directive.js +10 -11
  14. package/esm2015/lib/components/breadcrumb/breadcrumb-item.directive.js +17 -20
  15. package/esm2015/lib/components/breadcrumb/breadcrumb.js +28 -40
  16. package/esm2015/lib/components/breadcrumb/breadcrumb.module.js +26 -50
  17. package/esm2015/lib/components/button/button-toggle.js +85 -120
  18. package/esm2015/lib/components/button/button.js +78 -86
  19. package/esm2015/lib/components/button/button.module.js +27 -51
  20. package/esm2015/lib/components/comment/comment.js +18 -29
  21. package/esm2015/lib/components/dialog/dialog.js +28 -38
  22. package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.js +16 -24
  23. package/esm2015/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.js +31 -71
  24. package/esm2015/lib/components/list/list.js +89 -101
  25. package/esm2015/lib/components/list/list.module.js +50 -94
  26. package/esm2015/lib/components/qms-app-bar/qms-app-bar.component.js +29 -55
  27. package/esm2015/lib/components/qms-app-bar/qms-app-bar.module.js +20 -39
  28. package/esm2015/lib/components/qms-stepper/qms-stepper.component.js +22 -32
  29. package/esm2015/lib/components/qms-stepper/qms-stepper.module.js +25 -35
  30. package/esm2015/lib/components/related/content/related-content.component.js +12 -19
  31. package/esm2015/lib/components/related/list-other-related/list-related.component.js +25 -29
  32. package/esm2015/lib/components/related/popup/related-popup.component.js +33 -50
  33. package/esm2015/lib/components/related/related.module.js +43 -96
  34. package/esm2015/lib/components/related/risk/analysis/analysis.component.js +17 -23
  35. package/esm2015/lib/components/related/risk/list/list.component.js +18 -22
  36. package/esm2015/lib/components/related/risk/result/result.component.js +16 -23
  37. package/esm2015/lib/components/related/service/related-global.service.js +6 -7
  38. package/esm2015/lib/components/related/sidenav/sidenav.component.js +12 -21
  39. package/esm2015/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.js +18 -22
  40. package/esm2015/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.js +18 -22
  41. package/esm2015/lib/components/reports/qms-reports.module.js +20 -29
  42. package/esm2015/lib/components/rich-text/rich-text.js +32 -47
  43. package/esm2015/lib/components/rich-text/rich-text.module.js +21 -35
  44. package/esm2015/lib/components/select-dialog/select-dialog.js +16 -31
  45. package/esm2015/lib/components/select-include-children/select-include-children.component.js +33 -47
  46. package/esm2015/lib/components/select-include-children/select-include-children.module.js +33 -78
  47. package/esm2015/lib/components/select-include-children/services/select-global.service.js +6 -7
  48. package/esm2015/lib/components/suffix-field/suffix-field.directive.js +21 -22
  49. package/esm2015/lib/components/table/table-action.js +31 -31
  50. package/esm2015/lib/components/table/table.module.js +21 -37
  51. package/esm2015/lib/components/test-only/test-only.component.js +11 -14
  52. package/esm2015/lib/components/tooltip/tooltip.js +19 -24
  53. package/esm2015/lib/components/tooltip/tooltip.module.js +20 -38
  54. package/esm2015/lib/components/tree/tree.component.js +33 -46
  55. package/esm2015/lib/components/tree/tree.module.js +30 -69
  56. package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.js +16 -22
  57. package/esm2015/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.js +31 -71
  58. package/esm2015/lib/directives/chip-input/chip-input-chip-list.directive.js +13 -13
  59. package/esm2015/lib/directives/chip-input/chip-input-field.directive.js +10 -11
  60. package/esm2015/lib/directives/chip-input/chip-input-select-dropdown.directive.js +10 -11
  61. package/esm2015/lib/directives/chip-input/chip-input-select-field.directive.js +14 -17
  62. package/esm2015/lib/directives/chip-input/chip-input-select-trigger.directive.js +13 -14
  63. package/esm2015/lib/directives/chips/chip-body.directive.js +10 -11
  64. package/esm2015/lib/directives/chips/chip.directive.js +13 -13
  65. package/esm2015/lib/directives/dropdown-menu/dropdown-item.directive.js +14 -16
  66. package/esm2015/lib/directives/file-upload/file-upload-attachment-list.directive.js +10 -11
  67. package/esm2015/lib/directives/file-upload/file-upload-display.directive.js +16 -19
  68. package/esm2015/lib/directives/file-upload/file-upload-multiple-display.directive.js +14 -16
  69. package/esm2015/lib/directives/file-upload/file-upload-multiple-selector.directive.js +20 -26
  70. package/esm2015/lib/directives/file-upload/file-upload-multiple.directive.js +15 -19
  71. package/esm2015/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.js +10 -11
  72. package/esm2015/lib/directives/file-upload/file-upload-selector.directive.js +18 -25
  73. package/esm2015/lib/directives/file-upload/file-upload.directive.js +20 -24
  74. package/esm2015/lib/directives/form.directive.js +51 -48
  75. package/esm2015/lib/directives/margin.directive.js +14 -15
  76. package/esm2015/lib/directives/range-slider/range-slider-lockup.directive.js +10 -11
  77. package/esm2015/lib/directives/range-slider/range-slider.directive.js +14 -17
  78. package/esm2015/lib/directives/scroll-selected/scroll-to-selected.directive.js +15 -16
  79. package/esm2015/lib/directives/scrollbar/scrollbar.directive.js +13 -13
  80. package/esm2015/lib/directives/search-field.directive.js +22 -21
  81. package/esm2015/lib/directives/side-sheet/drawer-content.directive.js +10 -11
  82. package/esm2015/lib/directives/side-sheet/drawer-header-action.directive.js +10 -11
  83. package/esm2015/lib/directives/side-sheet/drawer-header.directive.js +10 -11
  84. package/esm2015/lib/directives/side-sheet/drawer.directive.js +10 -11
  85. package/esm2015/lib/directives/tab/tab-group-advanced.directive.js +14 -15
  86. package/esm2015/lib/directives/tab/tab-group.directive.js +10 -11
  87. package/esm2015/lib/directives/tab/tab-label.directive.js +10 -11
  88. package/esm2015/lib/directives/text-block/text-block-line.directive.js +16 -20
  89. package/esm2015/lib/directives/text-block/text-block.directive.js +14 -17
  90. package/esm2015/lib/directives/tooltip/tooltip-image.directive.js +13 -14
  91. package/esm2015/lib/directives/tooltip/tooltip-renderer.directive.js +22 -35
  92. package/esm2015/lib/material-module.js +16 -35
  93. package/esm2015/lib/model/en.js +4 -35
  94. package/esm2015/lib/model/no.js +3 -34
  95. package/esm2015/lib/pipe/dateFormat.pipe.js +10 -11
  96. package/esm2015/lib/qms-angular.component.js +11 -13
  97. package/esm2015/lib/qms-angular.module.js +121 -232
  98. package/esm2015/lib/qms-angular.service.js +8 -9
  99. package/esm2015/lib/qms-ckeditor-components/common/bpmn/toolbar.function.js +12 -32
  100. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.js +1 -5
  101. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.js +1 -10
  102. package/esm2015/lib/qms-ckeditor-components/common/enums/document-type.enum.js +1 -2
  103. package/esm2015/lib/qms-ckeditor-components/common/functions/common.function.js +2 -2
  104. package/esm2015/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.js +16 -23
  105. package/esm2015/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.js +19 -34
  106. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.js +53 -577
  107. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.js +35 -69
  108. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.js +8 -12
  109. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.js +30 -39
  110. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.js +18 -22
  111. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.js +20 -29
  112. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.js +18 -22
  113. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.js +23 -35
  114. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.js +20 -30
  115. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.js +18 -27
  116. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor-base.component.js +4 -7
  117. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.component.js +44 -118
  118. package/esm2015/lib/qms-ckeditor-components/qms-ckeditor.module.js +55 -131
  119. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.js +10 -10
  120. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.js +9 -9
  121. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.js +26 -66
  122. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.js +8 -9
  123. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.js +9 -9
  124. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.js +9 -9
  125. package/esm2015/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.js +9 -9
  126. package/esm2015/lib/services/translation-registry.service.js +8 -9
  127. package/esm2015/lib/shared.module.js +4 -9
  128. package/esm2015/public-api.js +1 -16
  129. package/esm2015/qms-angular.js +9 -1
  130. package/fesm2015/qms-angular.js +3031 -11134
  131. package/fesm2015/qms-angular.js.map +1 -1
  132. package/lib/components/app-icon/app-icon.module.d.ts +0 -7
  133. package/lib/components/app-icon/icon-registry.service.d.ts +0 -3
  134. package/lib/components/badges/qms-badges.component.d.ts +0 -3
  135. package/lib/components/badges/qms-badges.module.d.ts +0 -9
  136. package/lib/components/banner/qms-banner/qms-banner.component.d.ts +0 -3
  137. package/lib/components/banner/qms-banner/qms-banner.module.d.ts +0 -10
  138. package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.component.d.ts +0 -3
  139. package/lib/components/banner/qms-banner-confirm/qms-banner-confirm.module.d.ts +0 -10
  140. package/lib/components/banner/qms-banner-loading/qms-banner-loading.component.d.ts +0 -3
  141. package/lib/components/banner/qms-banner-loading/qms-banner-loading.module.d.ts +0 -8
  142. package/lib/components/breadcrumb/breadcrumb-direction-icon.directive.d.ts +0 -3
  143. package/lib/components/breadcrumb/breadcrumb-item.directive.d.ts +0 -3
  144. package/lib/components/breadcrumb/breadcrumb.d.ts +0 -3
  145. package/lib/components/breadcrumb/breadcrumb.module.d.ts +0 -13
  146. package/lib/components/button/button-toggle.d.ts +0 -5
  147. package/lib/components/button/button.d.ts +0 -7
  148. package/lib/components/button/button.module.d.ts +0 -9
  149. package/lib/components/comment/comment.d.ts +0 -3
  150. package/lib/components/dialog/dialog.d.ts +0 -5
  151. package/lib/components/edit-file-name-dialog/edit-file-name-dialog.d.ts +0 -3
  152. package/lib/components/edit-file-name-dialog/edit-file-name-dialog.module.d.ts +0 -16
  153. package/lib/components/list/list.d.ts +0 -15
  154. package/lib/components/list/list.module.d.ts +0 -11
  155. package/lib/components/qms-app-bar/qms-app-bar.component.d.ts +0 -3
  156. package/lib/components/qms-app-bar/qms-app-bar.module.d.ts +0 -12
  157. package/lib/components/qms-stepper/qms-stepper.component.d.ts +0 -3
  158. package/lib/components/qms-stepper/qms-stepper.module.d.ts +0 -8
  159. package/lib/components/related/content/related-content.component.d.ts +0 -3
  160. package/lib/components/related/list-other-related/list-related.component.d.ts +0 -3
  161. package/lib/components/related/popup/related-popup.component.d.ts +0 -3
  162. package/lib/components/related/related.module.d.ts +0 -29
  163. package/lib/components/related/risk/analysis/analysis.component.d.ts +0 -3
  164. package/lib/components/related/risk/list/list.component.d.ts +0 -3
  165. package/lib/components/related/risk/result/result.component.d.ts +0 -3
  166. package/lib/components/related/service/related-global.service.d.ts +0 -3
  167. package/lib/components/related/sidenav/sidenav.component.d.ts +0 -3
  168. package/lib/components/reports/qms-report-content-portrait/qms-report-content-portrait.component.d.ts +0 -3
  169. package/lib/components/reports/qms-report-cover-portrait/qms-report-cover-portrait.component.d.ts +0 -3
  170. package/lib/components/reports/qms-reports.module.d.ts +0 -7
  171. package/lib/components/rich-text/rich-text.d.ts +0 -3
  172. package/lib/components/rich-text/rich-text.module.d.ts +0 -8
  173. package/lib/components/select-dialog/select-dialog.d.ts +0 -3
  174. package/lib/components/select-include-children/select-include-children.component.d.ts +0 -3
  175. package/lib/components/select-include-children/select-include-children.module.d.ts +0 -25
  176. package/lib/components/select-include-children/services/select-global.service.d.ts +0 -3
  177. package/lib/components/suffix-field/suffix-field.directive.d.ts +0 -5
  178. package/lib/components/table/table-action.d.ts +0 -5
  179. package/lib/components/table/table.module.d.ts +0 -8
  180. package/lib/components/test-only/test-only.component.d.ts +0 -3
  181. package/lib/components/tooltip/tooltip.d.ts +0 -3
  182. package/lib/components/tooltip/tooltip.module.d.ts +0 -9
  183. package/lib/components/tree/tree.component.d.ts +0 -3
  184. package/lib/components/tree/tree.module.d.ts +0 -22
  185. package/lib/components/upload-file-error-dialog/upload-file-error-dialog.d.ts +0 -3
  186. package/lib/components/upload-file-error-dialog/upload-file-error-dialog.module.d.ts +0 -16
  187. package/lib/directives/chip-input/chip-input-chip-list.directive.d.ts +0 -3
  188. package/lib/directives/chip-input/chip-input-field.directive.d.ts +0 -3
  189. package/lib/directives/chip-input/chip-input-select-dropdown.directive.d.ts +0 -3
  190. package/lib/directives/chip-input/chip-input-select-field.directive.d.ts +0 -3
  191. package/lib/directives/chip-input/chip-input-select-trigger.directive.d.ts +0 -3
  192. package/lib/directives/chips/chip-body.directive.d.ts +0 -3
  193. package/lib/directives/chips/chip.directive.d.ts +0 -3
  194. package/lib/directives/dropdown-menu/dropdown-item.directive.d.ts +0 -3
  195. package/lib/directives/file-upload/file-upload-attachment-list.directive.d.ts +0 -3
  196. package/lib/directives/file-upload/file-upload-display.directive.d.ts +0 -3
  197. package/lib/directives/file-upload/file-upload-multiple-display.directive.d.ts +0 -3
  198. package/lib/directives/file-upload/file-upload-multiple-selector.directive.d.ts +0 -3
  199. package/lib/directives/file-upload/file-upload-multiple.directive.d.ts +0 -3
  200. package/lib/directives/file-upload/file-upload-scrollable-attachment-list.directive.d.ts +0 -3
  201. package/lib/directives/file-upload/file-upload-selector.directive.d.ts +0 -3
  202. package/lib/directives/file-upload/file-upload.directive.d.ts +0 -5
  203. package/lib/directives/form.directive.d.ts +0 -11
  204. package/lib/directives/margin.directive.d.ts +0 -3
  205. package/lib/directives/range-slider/range-slider-lockup.directive.d.ts +0 -3
  206. package/lib/directives/range-slider/range-slider.directive.d.ts +0 -3
  207. package/lib/directives/scroll-selected/scroll-to-selected.directive.d.ts +0 -3
  208. package/lib/directives/scrollbar/scrollbar.directive.d.ts +0 -3
  209. package/lib/directives/search-field.directive.d.ts +0 -5
  210. package/lib/directives/side-sheet/drawer-content.directive.d.ts +0 -3
  211. package/lib/directives/side-sheet/drawer-header-action.directive.d.ts +0 -3
  212. package/lib/directives/side-sheet/drawer-header.directive.d.ts +0 -3
  213. package/lib/directives/side-sheet/drawer.directive.d.ts +0 -3
  214. package/lib/directives/tab/tab-group-advanced.directive.d.ts +0 -3
  215. package/lib/directives/tab/tab-group.directive.d.ts +0 -3
  216. package/lib/directives/tab/tab-label.directive.d.ts +0 -3
  217. package/lib/directives/text-block/text-block-line.directive.d.ts +0 -3
  218. package/lib/directives/text-block/text-block.directive.d.ts +0 -3
  219. package/lib/directives/tooltip/tooltip-image.directive.d.ts +0 -3
  220. package/lib/directives/tooltip/tooltip-renderer.directive.d.ts +0 -3
  221. package/lib/material-module.d.ts +0 -12
  222. package/lib/model/en.d.ts +0 -31
  223. package/lib/model/no.d.ts +0 -31
  224. package/lib/pipe/dateFormat.pipe.d.ts +0 -3
  225. package/lib/qms-angular.component.d.ts +0 -3
  226. package/lib/qms-angular.module.d.ts +0 -49
  227. package/lib/qms-angular.service.d.ts +0 -3
  228. package/lib/qms-ckeditor-components/common/bpmn/toolbar.function.d.ts +2 -2
  229. package/lib/qms-ckeditor-components/common/constants/ckeditorEvent.constant.d.ts +0 -4
  230. package/lib/qms-ckeditor-components/common/constants/ckeditorFlowchart.const.d.ts +0 -9
  231. package/lib/qms-ckeditor-components/common/enums/document-type.enum.d.ts +0 -1
  232. package/lib/qms-ckeditor-components/common/module/confirm/qms-ckeditor-confirm.component.d.ts +0 -3
  233. package/lib/qms-ckeditor-components/common/module/tree/qms-ckeditor-tree.component.d.ts +0 -3
  234. package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.d.ts +4 -88
  235. package/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/save-template/save-template.component.d.ts +2 -11
  236. package/lib/qms-ckeditor-components/components/qms-ckeditor-fullscreen/qms-ckeditor-fullscreen.component.d.ts +0 -3
  237. package/lib/qms-ckeditor-components/components/qms-ckeditor-imagemap/qms-ckeditor-imagemap.component.d.ts +0 -3
  238. package/lib/qms-ckeditor-components/components/qms-ckeditor-link/attachments/link-attachment.component.d.ts +0 -3
  239. package/lib/qms-ckeditor-components/components/qms-ckeditor-link/qms-ckeditor-link.component.d.ts +0 -3
  240. package/lib/qms-ckeditor-components/components/qms-ckeditor-load-template/qms-ckeditor-load-template.component.d.ts +0 -3
  241. package/lib/qms-ckeditor-components/components/qms-ckeditor-relation/qmsckeditor-related.component.d.ts +0 -4
  242. package/lib/qms-ckeditor-components/components/qms-ckeditor-template/qms-ckeditor-template.component.d.ts +0 -3
  243. package/lib/qms-ckeditor-components/components/qms-ckeditor-tooltip/qms-ckeditor-tooltip.component.d.ts +0 -3
  244. package/lib/qms-ckeditor-components/qms-ckeditor-base.component.d.ts +0 -3
  245. package/lib/qms-ckeditor-components/qms-ckeditor.component.d.ts +0 -8
  246. package/lib/qms-ckeditor-components/qms-ckeditor.module.d.ts +0 -44
  247. package/lib/qms-ckeditor-components/services/qms-ckeditor-base.service.d.ts +0 -3
  248. package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn-api.service.d.ts +0 -3
  249. package/lib/qms-ckeditor-components/services/qms-ckeditor-bpmn.service.d.ts +0 -4
  250. package/lib/qms-ckeditor-components/services/qms-ckeditor-global.service.d.ts +0 -3
  251. package/lib/qms-ckeditor-components/services/qms-ckeditor-link.service.d.ts +0 -3
  252. package/lib/qms-ckeditor-components/services/qms-ckeditor-tree.service.d.ts +0 -3
  253. package/lib/qms-ckeditor-components/services/qms-ckedtior-template.service.d.ts +0 -3
  254. package/lib/services/translation-registry.service.d.ts +0 -3
  255. package/lib/shared.module.d.ts +0 -4
  256. package/lib.theme.scss +0 -8
  257. package/package.json +2 -1
  258. package/public-api.d.ts +0 -14
  259. package/qms-angular.d.ts +8 -1
  260. package/qms-angular.metadata.json +1 -0
  261. package/src/assets/jointjs/scss/bpmn.scss +35 -36
  262. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js +1 -1
  263. package/src/assets/qms-ckeditor-plugin/build/ckeditor.js.map +1 -1
  264. package/src/assets/qms-ckeditor-plugin/build/translations/ar.js +1 -1
  265. package/src/assets/qms-ckeditor-plugin/build/translations/az.js +1 -1
  266. package/src/assets/qms-ckeditor-plugin/build/translations/bg.js +1 -1
  267. package/src/assets/qms-ckeditor-plugin/build/translations/cs.js +1 -1
  268. package/src/assets/qms-ckeditor-plugin/build/translations/da.js +1 -1
  269. package/src/assets/qms-ckeditor-plugin/build/translations/de-ch.js +1 -1
  270. package/src/assets/qms-ckeditor-plugin/build/translations/de.js +1 -1
  271. package/src/assets/qms-ckeditor-plugin/build/translations/en-au.js +1 -1
  272. package/src/assets/qms-ckeditor-plugin/build/translations/en-gb.js +1 -1
  273. package/src/assets/qms-ckeditor-plugin/build/translations/es.js +1 -1
  274. package/src/assets/qms-ckeditor-plugin/build/translations/et.js +1 -1
  275. package/src/assets/qms-ckeditor-plugin/build/translations/fa.js +1 -1
  276. package/src/assets/qms-ckeditor-plugin/build/translations/fi.js +1 -1
  277. package/src/assets/qms-ckeditor-plugin/build/translations/fr.js +1 -1
  278. package/src/assets/qms-ckeditor-plugin/build/translations/gl.js +1 -1
  279. package/src/assets/qms-ckeditor-plugin/build/translations/he.js +1 -1
  280. package/src/assets/qms-ckeditor-plugin/build/translations/hi.js +1 -1
  281. package/src/assets/qms-ckeditor-plugin/build/translations/hr.js +1 -1
  282. package/src/assets/qms-ckeditor-plugin/build/translations/hu.js +1 -1
  283. package/src/assets/qms-ckeditor-plugin/build/translations/id.js +1 -1
  284. package/src/assets/qms-ckeditor-plugin/build/translations/it.js +1 -1
  285. package/src/assets/qms-ckeditor-plugin/build/translations/ja.js +1 -1
  286. package/src/assets/qms-ckeditor-plugin/build/translations/ko.js +1 -1
  287. package/src/assets/qms-ckeditor-plugin/build/translations/ku.js +1 -1
  288. package/src/assets/qms-ckeditor-plugin/build/translations/lt.js +1 -1
  289. package/src/assets/qms-ckeditor-plugin/build/translations/lv.js +1 -1
  290. package/src/assets/qms-ckeditor-plugin/build/translations/nb.js +1 -1
  291. package/src/assets/qms-ckeditor-plugin/build/translations/ne.js +1 -1
  292. package/src/assets/qms-ckeditor-plugin/build/translations/nl.js +1 -1
  293. package/src/assets/qms-ckeditor-plugin/build/translations/no.js +1 -1
  294. package/src/assets/qms-ckeditor-plugin/build/translations/pl.js +1 -1
  295. package/src/assets/qms-ckeditor-plugin/build/translations/pt-br.js +1 -1
  296. package/src/assets/qms-ckeditor-plugin/build/translations/ro.js +1 -1
  297. package/src/assets/qms-ckeditor-plugin/build/translations/ru.js +1 -1
  298. package/src/assets/qms-ckeditor-plugin/build/translations/sk.js +1 -1
  299. package/src/assets/qms-ckeditor-plugin/build/translations/sl.js +1 -1
  300. package/src/assets/qms-ckeditor-plugin/build/translations/sq.js +1 -1
  301. package/src/assets/qms-ckeditor-plugin/build/translations/sr-latn.js +1 -1
  302. package/src/assets/qms-ckeditor-plugin/build/translations/sr.js +1 -1
  303. package/src/assets/qms-ckeditor-plugin/build/translations/sv.js +1 -1
  304. package/src/assets/qms-ckeditor-plugin/build/translations/th.js +1 -1
  305. package/src/assets/qms-ckeditor-plugin/build/translations/tk.js +1 -1
  306. package/src/assets/qms-ckeditor-plugin/build/translations/tr.js +1 -1
  307. package/src/assets/qms-ckeditor-plugin/build/translations/ug.js +1 -1
  308. package/src/assets/qms-ckeditor-plugin/build/translations/uk.js +1 -1
  309. package/src/assets/qms-ckeditor-plugin/build/translations/vi.js +1 -1
  310. package/src/assets/qms-ckeditor-plugin/build/translations/zh-cn.js +1 -1
  311. package/src/assets/qms-ckeditor-plugin/build/translations/zh.js +1 -1
  312. package/src/assets/qms-ckeditor-plugin/package-lock.json +12177 -17
  313. package/src/assets/qms-ckeditor-plugin/package.json +0 -1
  314. package/src/assets/qms-ckeditor-plugin/src/ckeditor.js +3 -22
  315. package/src/assets/qms-ckeditor-plugin/src/dist/ckeditor.dev.js +173 -0
  316. package/src/assets/qms-ckeditor-plugin/src/plugins/bpmn/qmsCKEditorBpmnPlugin.js +5 -24
  317. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorConstant.js +1 -7
  318. package/src/assets/qms-ckeditor-plugin/src/plugins/common/qmsCKEditorService.js +0 -20
  319. package/src/assets/qms-ckeditor-plugin/src/plugins/fullscreen/dist/qmsCKEditorFullscreenPlugin.dev.js +87 -0
  320. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapediting.js +43 -47
  321. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/imagemapui.js +1 -1
  322. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/insertimagemapcommand.js +108 -72
  323. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/resizeimagemapcommand.js +3 -4
  324. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/utils.js +0 -13
  325. package/src/assets/qms-ckeditor-plugin/src/plugins/timestamp/timestamp.js +8 -8
  326. package/src/assets/qms-ckeditor-plugin/src/plugins/tooltip/tooltipui.js +24 -23
  327. package/src/assets/qms-ckeditor-plugin/src/themes/icons/information.svg +50 -1
  328. package/src/assets/qms-ckeditor-plugin/src/themes/icons/timestamp.svg +1 -1
  329. package/src/lib/components/tree/tree.component.scss +1 -1
  330. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-bpmn/qms-ckeditor-bpmn.component.scss +1 -15
  331. package/src/lib/qms-ckeditor-components/styles/_layout.scss +0 -24
  332. package/src/lib/qms-ckeditor-components/styles/_modules.scss +0 -8
  333. package/esm2015/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.js +0 -7
  334. package/esm2015/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.js +0 -8
  335. package/esm2015/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.js +0 -16
  336. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/halo-service.js +0 -105
  337. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.js +0 -3762
  338. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.js +0 -68
  339. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.js +0 -372
  340. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.js +0 -1041
  341. package/esm2015/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.js +0 -326
  342. package/esm2015/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.js +0 -318
  343. package/esm2015/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.js +0 -80
  344. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.js +0 -9
  345. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.js +0 -9
  346. package/esm2015/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.js +0 -3
  347. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.js +0 -43
  348. package/esm2015/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.js +0 -322
  349. package/esm2015/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.js +0 -8
  350. package/esm2015/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.js +0 -26
  351. package/lib/qms-ckeditor-components/common/constants/ckeditorLink.constant.d.ts +0 -6
  352. package/lib/qms-ckeditor-components/common/enums/shape-flow-chart-connection-type.d.ts +0 -6
  353. package/lib/qms-ckeditor-components/common/flowchart/sample/sample-graphs.d.ts +0 -14
  354. package/lib/qms-ckeditor-components/common/flowchart/service/halo-service.d.ts +0 -48
  355. package/lib/qms-ckeditor-components/common/flowchart/service/inspector-service.d.ts +0 -18
  356. package/lib/qms-ckeditor-components/common/flowchart/service/keyboard-service.d.ts +0 -17
  357. package/lib/qms-ckeditor-components/common/flowchart/service/kitchensink-service.d.ts +0 -62
  358. package/lib/qms-ckeditor-components/common/flowchart/service/stencil-service.d.ts +0 -1183
  359. package/lib/qms-ckeditor-components/common/flowchart/service/toolbar-service.d.ts +0 -216
  360. package/lib/qms-ckeditor-components/common/flowchart/shapes/app-shapes.d.ts +0 -61
  361. package/lib/qms-ckeditor-components/common/flowchart/themes/theme-picker.d.ts +0 -36
  362. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart-template.model.d.ts +0 -7
  363. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-flowchart.model.d.ts +0 -7
  364. package/lib/qms-ckeditor-components/common/models/qms-ckeditor-save-as-template.model.d.ts +0 -7
  365. package/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.d.ts +0 -18
  366. package/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.d.ts +0 -44
  367. package/lib/qms-ckeditor-components/models/qms-ckeditor-bpmn-data.model.d.ts +0 -7
  368. package/lib/qms-ckeditor-components/services/qms-ckeditor-flowchart.service.d.ts +0 -13
  369. package/src/assets/images/ckeditor5.svg +0 -1
  370. package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Bold.ttf +0 -0
  371. package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Light.ttf +0 -0
  372. package/src/assets/jointjs/fonts/Alegreya_Sans/AlegreyaSans-Regular.ttf +0 -0
  373. package/src/assets/jointjs/fonts/Alegreya_Sans/OFL.txt +0 -92
  374. package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Bold.ttf +0 -0
  375. package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Light.ttf +0 -0
  376. package/src/assets/jointjs/fonts/Averia_Libre/AveriaLibre-Regular.ttf +0 -0
  377. package/src/assets/jointjs/fonts/Averia_Libre/OFL.txt +0 -93
  378. package/src/assets/jointjs/fonts/Roboto_Condensed/LICENSE.txt +0 -202
  379. package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf +0 -0
  380. package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Light.ttf +0 -0
  381. package/src/assets/jointjs/fonts/Roboto_Condensed/RobotoCondensed-Regular.ttf +0 -0
  382. package/src/assets/jointjs/images/delete-icon-modern.png +0 -0
  383. package/src/assets/jointjs/images/image-icon1.svg +0 -1
  384. package/src/assets/jointjs/images/image-icon2.svg +0 -6
  385. package/src/assets/jointjs/images/image-icon3.svg +0 -11
  386. package/src/assets/jointjs/images/image-icon4.svg +0 -8
  387. package/src/assets/jointjs/images/member-female.png +0 -0
  388. package/src/assets/jointjs/images/member-male.png +0 -0
  389. package/src/assets/jointjs/images/no-color-icon.svg +0 -72
  390. package/src/assets/jointjs/images/reset-icon-modern.png +0 -0
  391. package/src/assets/jointjs/images/save-icon-modern.png +0 -0
  392. package/src/assets/jointjs/images/to-front-icon-modern.png +0 -0
  393. package/src/assets/jointjs/images/toback-icon-modern.png +0 -0
  394. package/src/assets/jointjs/images/toolbar-icons-dark.woff +0 -0
  395. package/src/assets/jointjs/images/toolbar-icons-material.png +0 -0
  396. package/src/assets/jointjs/images/toolbar-icons-modern.png +0 -0
  397. package/src/assets/jointjs/images/transparent-icon.svg +0 -50
  398. package/src/assets/jointjs/scss/style.dark.scss +0 -233
  399. package/src/assets/jointjs/scss/style.material.scss +0 -234
  400. package/src/assets/jointjs/scss/style.modern.scss +0 -225
  401. package/src/assets/jointjs/scss/style.scss +0 -216
  402. package/src/assets/jointjs/scss/theme-picker.scss +0 -21
  403. package/src/assets/qms-ckeditor-plugin/src/plugins/aboutckeditor/aboutckeditor.js +0 -28
  404. package/src/assets/qms-ckeditor-plugin/src/plugins/flowchart/qmsCKEditorFlowchartPlugin.js +0 -63
  405. package/src/assets/qms-ckeditor-plugin/src/plugins/imagemap/openimagemapcommand.js +0 -58
  406. package/src/assets/qms-ckeditor-plugin/src/themes/icons/flowchart.svg +0 -507
  407. package/src/assets/qms-ckeditor-plugin/src/themes/icons/tooltip.svg +0 -1
  408. package/src/lib/components/select-one/select-one.component.scss +0 -240
  409. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-about/qms-ckeditor-about.component.scss +0 -16
  410. package/src/lib/qms-ckeditor-components/components/qms-ckeditor-flowchart/qms-ckeditor-flowchart.component.scss +0 -5
  411. package/src/themes/_non-bg-srcollbar.scss +0 -4
@@ -4,11 +4,6 @@ import { FlatTreeControl } from '@angular/cdk/tree';
4
4
  import { Component, EventEmitter, Input, Output } from '@angular/core';
5
5
  // eslint-disable-next-line import/no-extraneous-dependencies
6
6
  import { MatTreeFlatDataSource, MatTreeFlattener } from '@angular/material/tree';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/material/tree";
9
- import * as i2 from "@angular/material/button";
10
- import * as i3 from "@angular/material/icon";
11
- import * as i4 from "@angular/common";
12
7
  export class QMSCKEditorTreeComponent {
13
8
  constructor() {
14
9
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -210,32 +205,22 @@ export class QMSCKEditorTreeComponent {
210
205
  this.dataSource.data = data;
211
206
  }
212
207
  }
213
- QMSCKEditorTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: QMSCKEditorTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
214
- QMSCKEditorTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.5", type: QMSCKEditorTreeComponent, selector: "qms-ckeditor-tree", inputs: { rawData: "rawData", treeData: "treeData", useExpandFeature: "useExpandFeature", docType: "docType", allowSelectFolder: "allowSelectFolder", listParentObj: "listParentObj", areaOfCurrentProcess: "areaOfCurrentProcess" }, outputs: { selectNodeEvent: "selectNodeEvent", selectFolderEvent: "selectFolderEvent" }, usesOnChanges: true, ngImport: i0, template: "<mat-tree\r\n id=\"qmsckeditor_tree\"\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"qmsckeditor__tree__container\"\r\n>\r\n <mat-tree-node\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodeToggle\r\n matTreeNodePadding\r\n >\r\n <button *ngIf=\"node.name\" mat-icon-button disabled></button>\r\n <button\r\n *ngIf=\"node.name\"\r\n mat-icon-button\r\n class=\"button\"\r\n (click)=\"selectNode(node)\"\r\n >\r\n <img\r\n *ngIf=\"docType === 1\"\r\n class=\"mat-icon\"\r\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkAQMAAADbzgrbAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRFAAAA ////pdmf3QAAAAJ0Uk5TAP9bkSK1AAAAM0lEQVR4nGNgwADM//+AyX9g8j+IbJBvAJMHwOQDMPkBTP4Ak3/QSQYZmpL/QU5EJjEAAPNBJPOR0BWRAAAAAElFTkSuQmCC\"\r\n />\r\n <img\r\n *ngIf=\"docType === 2\"\r\n class=\"mat-icon\"\r\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAQMAAADaua+7AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRFAAAA9snIm6mQKAAAAAJ0Uk5TAP9bkSK1AAAAKUlEQVR4nGNgQALyjT/AWPL/DDCG8dmAclgx4w8wZgeqBWEGIBuMEQAAaJkRERdvY48AAAAASUVORK5CYII=\"\r\n />\r\n {{ node.name }}\r\n </button>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding>\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 (click)=\"onExpandNode(node, treeControl.isExpanded(node))\"\r\n >\r\n <mat-icon [hidden]=\"!node.hasChild\" class=\"mat-icon-rtl-mirror\">\r\n {{ treeControl.isExpanded(node) ? \"arrow_drop_down\" : \"arrow_right\" }}\r\n </mat-icon>\r\n </button>\r\n <button\r\n *ngIf=\"!allowSelectFolder\"\r\n mat-icon-button\r\n class=\"button-boder\"\r\n [disableRipple]=\"true\"\r\n >\r\n <mat-icon\r\n [ngClass]=\"{\r\n 'document-icon': docType === 1,\r\n 'folder-icon': docType === 2\r\n }\"\r\n >\r\n {{ treeControl.isExpanded(node) ? \"folder_filled\" : \"folder_filled\" }}\r\n </mat-icon>\r\n {{ node.name }}\r\n </button>\r\n <button\r\n *ngIf=\"allowSelectFolder\"\r\n mat-icon-button\r\n class=\"button-folder-boder\"\r\n (click)=\"selectFolder(node)\"\r\n [disableRipple]=\"true\"\r\n >\r\n <mat-icon\r\n [ngClass]=\"{\r\n 'document-icon': docType === 1,\r\n 'folder-icon': docType === 2\r\n }\"\r\n >\r\n {{ treeControl.isExpanded(node) ? \"folder_filled\" : \"folder_filled\" }}\r\n </mat-icon>\r\n {{ node.name }}\r\n </button>\r\n </mat-tree-node>\r\n</mat-tree>\r\n", styles: [".qmsckeditor__tree__container .mat-tree{background:#00283a}.qmsckeditor__tree__container .mat-tree-node{color:#fff;min-height:0}.qmsckeditor__tree__container .folder-icon{color:#a4b0de}.qmsckeditor__tree__container .document-icon{color:#4acaff}.qmsckeditor__tree__container .button:focus,.qmsckeditor__tree__container .button:hover{color:#000;background-color:#009ef2;border-radius:2px;width:auto}.qmsckeditor__tree__container .button-boder:focus,.qmsckeditor__tree__container .button:focus{outline:0}.qmsckeditor__tree__container .button-folder-boder:focus{outline:0;background-color:#009ef2;border-radius:2px;width:auto}.qmsckeditor__tree__container .button-folder-boder:hover{color:#000;background-color:#009ef2;border-radius:2px;width:auto}"], components: [{ type: i1.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i1.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { type: i1.MatTreeNode, selector: "mat-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { type: i1.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { type: i1.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: QMSCKEditorTreeComponent, decorators: [{
216
- type: Component,
217
- args: [{
218
- selector: 'qms-ckeditor-tree',
219
- templateUrl: './qms-ckeditor-tree.component.html',
220
- styleUrls: ['./qms-ckeditor-tree.component.scss']
221
- }]
222
- }], propDecorators: { rawData: [{
223
- type: Input
224
- }], treeData: [{
225
- type: Input
226
- }], useExpandFeature: [{
227
- type: Input
228
- }], docType: [{
229
- type: Input
230
- }], allowSelectFolder: [{
231
- type: Input
232
- }], selectNodeEvent: [{
233
- type: Output
234
- }], selectFolderEvent: [{
235
- type: Output
236
- }], listParentObj: [{
237
- type: Input
238
- }], areaOfCurrentProcess: [{
239
- type: Input
240
- }] } });
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vbW9kdWxlL3RyZWUvcW1zLWNrZWRpdG9yLXRyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vbW9kdWxlL3RyZWUvcW1zLWNrZWRpdG9yLXRyZWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkRBQTZEO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCw2REFBNkQ7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRiw2REFBNkQ7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQXNCakYsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQU1FLDhEQUE4RDtRQUNyRCxZQUFPLEdBQWUsRUFBRSxDQUFDO1FBRWxDLDhEQUE4RDtRQUNyRCxhQUFRLEdBQWUsRUFBRSxDQUFDO1FBUXpCLG9CQUFlLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0Qsc0JBQWlCLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFLdkUsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUl4QiwyQ0FBMkM7UUFDM0MsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FDL0IsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDLEVBQ0QsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDLENBQ0YsQ0FBQztRQVFNLGdCQUFXLEdBQUcsQ0FBQyxJQUFjLEVBQUUsS0FBYSxFQUFFLEVBQUU7WUFDdEQsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsQixhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQ3ZCO2lCQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUNqRixhQUFhLEdBQUcsS0FBSyxDQUFDO2FBQ3ZCO1lBQ0QsMkNBQTJDO2lCQUN0QyxJQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQzFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTTtnQkFDN0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsS0FBSyxJQUFJLENBQUMsb0JBQW9CLEVBQ2hEO2dCQUNBLGFBQWEsR0FBRyxLQUFLLENBQUM7YUFDdkI7WUFFRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDeEMsYUFBYSxHQUFHLEtBQUssQ0FBQzthQUN2QjtZQUVELE9BQU87Z0JBQ0wsVUFBVSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUM7Z0JBQ3ZELElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixLQUFLO2dCQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDWCxRQUFRLEVBQUUsYUFBYTthQUN4QixDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRUYsOERBQThEO1FBQzlELGtCQUFhLEdBQUcsSUFBSSxnQkFBZ0IsQ0FDbEMsSUFBSSxDQUFDLFdBQVcsRUFDaEIsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDLEVBQ0QsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDLEVBQ0QsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN2QixDQUFDLENBQ0YsQ0FBQztRQUVGLDhEQUE4RDtRQUM5RCxlQUFVLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU3RSxhQUFRLEdBQUcsQ0FBQyxDQUFTLEVBQUUsSUFBa0IsRUFBRSxFQUFFO1lBQzNDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN6QixDQUFDLENBQUM7S0E4Skg7SUF0TkMsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQXNERCxVQUFVLENBQUMsSUFBa0I7UUFDM0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBa0I7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFrQixFQUFFLFlBQXNCO1FBQ3JELHFFQUFxRTtRQUNyRSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzNDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUU7b0JBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDNUI7YUFDRjtZQUVELE9BQU87U0FDUjtRQUVELDBEQUEwRDtRQUMxRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzdCO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDN0I7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzNDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxhQUF1QixDQUFDO1FBQzVCLElBQUksWUFBd0IsQ0FBQztRQUM3QixJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNCLE9BQU87U0FDUjtRQUNELFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMxQixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFO2dCQUMxQixPQUFPO2FBQ1I7WUFFRCwwQ0FBMEM7WUFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBRXJCLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUYsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsT0FBTzthQUNSO1lBRUQsZ0NBQWdDO1lBQ2hDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRSxJQUFJLGFBQWEsRUFBRTtnQkFDakIsaUZBQWlGO2dCQUNqRixJQUFJLENBQUMsUUFBUSxFQUFFO29CQUNiLFlBQVksR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUNuQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2lCQUNqQjtnQkFDRCx3QkFBd0I7Z0JBQ3hCLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxRQUFRLEdBQUcsSUFBSSxDQUFDO2FBQ2pCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxrQ0FBa0M7UUFDbEMsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUMvQztRQUVELG1EQUFtRDtRQUNuRCxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUM3QixLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3RGLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7WUFDSCxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxhQUF3QjtRQUNyQyxJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxhQUF3QixFQUFFLFlBQXlCO1FBQzdELElBQUksWUFBWSxFQUFFO1lBQ2hCLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDekIsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCw4REFBOEQ7SUFDOUQsWUFBWSxDQUFDLEVBQVUsRUFBRSxLQUFjLEVBQUUsSUFBWTtRQUNuRCxJQUFJLEtBQUssRUFBRTtZQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUMxQixPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDO1lBQzFDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMxQixPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDhEQUE4RDtJQUM5RCxZQUFZLENBQUMsTUFBYyxFQUFFLElBQVM7UUFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ25DLE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQWMsQ0FBQztRQUNsRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDbEUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxjQUFjLENBQUMsRUFBVSxFQUFFLElBQWdCO1FBQ3pDLGdEQUFnRDtRQUNoRCxLQUFLLE1BQU0sYUFBYSxJQUFJLElBQUksRUFBRTtZQUNoQyxJQUFJLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUMzQixPQUFPLGFBQWEsQ0FBQzthQUN0QjtZQUVELElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtnQkFDMUIsTUFBTSxZQUFZLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDckQsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDckIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxZQUFZLEVBQUU7b0JBQ2hCLE9BQU8sWUFBWSxDQUFDO2lCQUNyQjtnQkFFRCxnREFBZ0Q7Z0JBQ2hELEtBQUssTUFBTSxhQUFhLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtvQkFDbEQsSUFBSSxFQUFFLEtBQUssYUFBYSxDQUFDLEVBQUUsRUFBRTt3QkFDM0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUMvRCxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7NEJBQ3BCLE9BQU8sTUFBTSxDQUFDO3lCQUNmO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7O3FIQXZQVSx3QkFBd0I7eUdBQXhCLHdCQUF3Qiw2WUMzQnJDLHl4RkFnRkE7MkZEckRhLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixXQUFXLEVBQUUsb0NBQW9DO29CQUNqRCxTQUFTLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQztpQkFDbEQ7OEJBR1UsT0FBTztzQkFBZixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTTtnQkFFRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBR0UsYUFBYTtzQkFBckIsS0FBSztnQkFJRyxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXHJcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcclxuaW1wb3J0IHsgTWF0VHJlZUZsYXREYXRhU291cmNlLCBNYXRUcmVlRmxhdHRlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XHJcblxyXG5pbnRlcmZhY2UgVHJlZU5vZGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNoaWxkcmVuPzogVHJlZU5vZGVbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFRyZWVGbGF0Tm9kZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGV2ZWw6IG51bWJlcjtcclxuICBleHBhbmRhYmxlOiBib29sZWFuO1xyXG4gIGhhc0NoaWxkOiBib29sZWFuO1xyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Ftcy1ja2VkaXRvci10cmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcW1zLWNrZWRpdG9yLXRyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Ftcy1ja2VkaXRvci10cmVlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFFNU0NLRWRpdG9yVHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBASW5wdXQoKSByYXdEYXRhOiBBcnJheTxhbnk+ID0gW107XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQElucHV0KCkgdHJlZURhdGE6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgdXNlRXhwYW5kRmVhdHVyZTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgZG9jVHlwZTogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKSBhbGxvd1NlbGVjdEZvbGRlcjogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpIHNlbGVjdE5vZGVFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3RGb2xkZXJFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQElucHV0KCkgbGlzdFBhcmVudE9iajogYW55O1xyXG5cclxuICBhcnJJbmRleDogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgYXJlYU9mQ3VycmVudFByb2Nlc3M6IHN0cmluZztcclxuXHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1lbWJlci1vcmRlcmluZ1xyXG4gIHRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxUcmVlRmxhdE5vZGU+KFxyXG4gICAgKG5vZGUpID0+IHtcclxuICAgICAgcmV0dXJuIG5vZGUubGV2ZWw7XHJcbiAgICB9LFxyXG4gICAgKG5vZGUpID0+IHtcclxuICAgICAgcmV0dXJuIG5vZGUuZXhwYW5kYWJsZTtcclxuICAgIH1cclxuICApO1xyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnRyZWVEYXRhKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy50cmVlRGF0YTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNmb3JtZXIgPSAobm9kZTogVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcclxuICAgIGxldCBjaGVja0hhc0NoaWxkID0gdHJ1ZTtcclxuICAgIGlmICghbm9kZS5jaGlsZHJlbikge1xyXG4gICAgICBjaGVja0hhc0NoaWxkID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKCEoISFub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkpIHtcclxuICAgICAgY2hlY2tIYXNDaGlsZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxyXG4gICAgZWxzZSBpZiAoXHJcbiAgICAgICEhbm9kZS5jaGlsZHJlbiAmJlxyXG4gICAgICBub2RlLmNoaWxkcmVuLmxlbmd0aCAmJlxyXG4gICAgICBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMSAmJlxyXG4gICAgICAhbm9kZS5jaGlsZHJlblswXS5uYW1lLmxlbmd0aCAmJlxyXG4gICAgICBub2RlLmlkLnRvU3RyaW5nKCkgPT09IHRoaXMuYXJlYU9mQ3VycmVudFByb2Nlc3NcclxuICAgICkge1xyXG4gICAgICBjaGVja0hhc0NoaWxkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCEodGhpcy5saXN0UGFyZW50T2JqW25vZGUuaWRdID09PSAxKSkge1xyXG4gICAgICBjaGVja0hhc0NoaWxkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZXhwYW5kYWJsZTogISFub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCxcclxuICAgICAgbmFtZTogbm9kZS5uYW1lLFxyXG4gICAgICBsZXZlbCxcclxuICAgICAgaWQ6IG5vZGUuaWQsXHJcbiAgICAgIGhhc0NoaWxkOiBjaGVja0hhc0NoaWxkXHJcbiAgICB9O1xyXG4gIH07XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgdHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxyXG4gICAgdGhpcy50cmFuc2Zvcm1lcixcclxuICAgIChub2RlKSA9PiB7XHJcbiAgICAgIHJldHVybiBub2RlLmxldmVsO1xyXG4gICAgfSxcclxuICAgIChub2RlKSA9PiB7XHJcbiAgICAgIHJldHVybiBub2RlLmV4cGFuZGFibGU7XHJcbiAgICB9LFxyXG4gICAgKG5vZGUpID0+IHtcclxuICAgICAgcmV0dXJuIG5vZGUuY2hpbGRyZW47XHJcbiAgICB9XHJcbiAgKTtcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICBkYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSh0aGlzLnRyZWVDb250cm9sLCB0aGlzLnRyZWVGbGF0dGVuZXIpO1xyXG5cclxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IFRyZWVGbGF0Tm9kZSkgPT4ge1xyXG4gICAgcmV0dXJuIG5vZGUuZXhwYW5kYWJsZTtcclxuICB9O1xyXG5cclxuICBzZWxlY3ROb2RlKG5vZGU6IFRyZWVGbGF0Tm9kZSkge1xyXG4gICAgdGhpcy5zZWxlY3ROb2RlRXZlbnQuZW1pdChub2RlLmlkKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEZvbGRlcihub2RlOiBUcmVlRmxhdE5vZGUpIHtcclxuICAgIHRoaXMuc2VsZWN0Rm9sZGVyRXZlbnQuZW1pdChub2RlLmlkKTtcclxuICB9XHJcblxyXG4gIG9uRXhwYW5kTm9kZShub2RlOiBUcmVlRmxhdE5vZGUsIGlzRXhwYW5kTm9kZT86IGJvb2xlYW4pIHtcclxuICAgIC8vIHNldCB1c2VFeHBhbmRGZWF0dXJlID0gdHJ1ZSB0byBpbXByb3ZlIHBlcmZvcm1hbmNlIG9mIHRyZWUgbG9hZGluZ1xyXG4gICAgaWYgKCFpc0V4cGFuZE5vZGUgfHwgIXRoaXMudXNlRXhwYW5kRmVhdHVyZSkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYXJySW5kZXgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodGhpcy5hcnJJbmRleFtpXSA9PT0gbm9kZS5pZCkge1xyXG4gICAgICAgICAgdGhpcy5hcnJJbmRleC5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZ2V0IGFycmF5IGluZGV4IHRvIGV4cGFuZCBub2RlIGFmdGVyIHJlZnJlc2ggZGF0YXNvdXJjZVxyXG4gICAgbGV0IGluZGV4ID0gMDtcclxuICAgIGxldCBpc0NoYW5nZSA9IGZhbHNlO1xyXG4gICAgbGV0IGlzUmVtb3ZlID0gZmFsc2U7XHJcbiAgICBpZiAobm9kZS5sZXZlbCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmFyckluZGV4LnB1c2gobm9kZS5pZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFyckluZGV4LnB1c2gobm9kZS5pZCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY2hpbGRBcnJheSA9IHRoaXMucmF3RGF0YS5maWx0ZXIoKHgpID0+IHtcclxuICAgICAgcmV0dXJuIHgucGFyZW50SWQgPT09IG5vZGUuaWQ7XHJcbiAgICB9KTtcclxuICAgIGxldCByb290SWQgPSAwO1xyXG4gICAgbGV0IHBhcmVudEVsZW1lbnQ6IFRyZWVOb2RlO1xyXG4gICAgbGV0IGNoaWxkcmVuTGlzdDogVHJlZU5vZGVbXTtcclxuICAgIGlmIChjaGlsZEFycmF5Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjaGlsZEFycmF5LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaWYgKGl0ZW0ucm9vdElkID09PSByb290SWQpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGdldCBjaGlsZCBub2RlIGZyb20gb3JpZ2luYWwgZGF0YXNvdXJjZVxyXG4gICAgICBjb25zdCBjaGlsZCA9IHRoaXMuZ2V0Q2hpbGROb2RlKGl0ZW0ucm9vdElkLCBjaGlsZEFycmF5KTtcclxuICAgICAgcm9vdElkID0gaXRlbS5yb290SWQ7XHJcblxyXG4gICAgICBpbmRleCA9IHRoaXMuZ2V0Tm9kZUluZGV4KGNoaWxkLmlkLCB1bmRlZmluZWQsIHRoaXMuZGF0YVNvdXJjZVsnX3RyZWVDb250cm9sJ10uZGF0YU5vZGVzKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGFkZCBjaGlsZCBub2RlIHRvIGV4cGFuZCBub2RlXHJcbiAgICAgIHBhcmVudEVsZW1lbnQgPSB0aGlzLmZpbmRQYXJlbnROb2RlKG5vZGUuaWQsIHRoaXMuZGF0YVNvdXJjZS5kYXRhKTtcclxuICAgICAgaWYgKHBhcmVudEVsZW1lbnQpIHtcclxuICAgICAgICAvLyB0ZW1wb3JhcnkgcmVtb3ZlIGFsbCBub2RlIHdpdGhvdXQgY2hpbGRyZW4gPT4gcHVycG9zZSB0byBhZGQgbm9kZSBmb2xkZXIgZmlyc3RcclxuICAgICAgICBpZiAoIWlzUmVtb3ZlKSB7XHJcbiAgICAgICAgICBjaGlsZHJlbkxpc3QgPSBbLi4ucGFyZW50RWxlbWVudC5jaGlsZHJlbl07XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkcmVuKHBhcmVudEVsZW1lbnQpO1xyXG4gICAgICAgICAgaXNSZW1vdmUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBhZGQgbm9kZSBmb2xkZXIgZmlyc3RcclxuICAgICAgICBwYXJlbnRFbGVtZW50LmNoaWxkcmVuLnB1c2goY2hpbGQpO1xyXG4gICAgICAgIGlzQ2hhbmdlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyBhZGQgbm9kZSB3aXRob3V0IGNoaWxkcmVuIGFnYWluXHJcbiAgICBpZiAoaXNSZW1vdmUpIHtcclxuICAgICAgdGhpcy5hZGRDaGlsZHJlbihwYXJlbnRFbGVtZW50LCBjaGlsZHJlbkxpc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHJlZnJlc2ggZGF0YSBhbmQgZXhwYW5kIHRyZWUgbm9kZSBmcm9tIHJvb3Qgbm9kZVxyXG4gICAgaWYgKGlzQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMucmVmcmVzaFRyZWVEYXRhKCk7XHJcbiAgICAgIHRoaXMuYXJySW5kZXguZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGluZGV4ID0gdGhpcy5nZXROb2RlSW5kZXgoaXRlbSwgdW5kZWZpbmVkLCB0aGlzLmRhdGFTb3VyY2VbJ190cmVlQ29udHJvbCddLmRhdGFOb2Rlcyk7XHJcbiAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaW5kZXhdKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlzQ2hhbmdlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVDaGlsZHJlbihwYXJlbnRFbGVtZW50PzogVHJlZU5vZGUpIHtcclxuICAgIGlmIChwYXJlbnRFbGVtZW50LmNoaWxkcmVuKSB7XHJcbiAgICAgIHBhcmVudEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID0gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZENoaWxkcmVuKHBhcmVudEVsZW1lbnQ/OiBUcmVlTm9kZSwgY2hpbGRyZW5MaXN0PzogVHJlZU5vZGVbXSkge1xyXG4gICAgaWYgKGNoaWxkcmVuTGlzdCkge1xyXG4gICAgICBjaGlsZHJlbkxpc3QuZm9yRWFjaCgoZSkgPT4ge1xyXG4gICAgICAgIHBhcmVudEVsZW1lbnQuY2hpbGRyZW4ucHVzaChlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldE5vZGVJbmRleChpZDogc3RyaW5nLCBsZXZlbD86IG51bWJlciwgZGF0YT86IGFueVtdKSB7XHJcbiAgICBpZiAobGV2ZWwpIHtcclxuICAgICAgcmV0dXJuIGRhdGEuZmluZEluZGV4KCh4KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHguaWQgPT09IGlkICYmIHgubGV2ZWwgPT09IGxldmVsO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0YS5maW5kSW5kZXgoKHgpID0+IHtcclxuICAgICAgcmV0dXJuIHguaWQgPT09IGlkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldENoaWxkTm9kZShyb290SWQ6IHN0cmluZywgZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBjaGlsZEFycmF5ID0gZGF0YS5maWx0ZXIoKHgpID0+IHtcclxuICAgICAgcmV0dXJuIHgucm9vdElkID09PSByb290SWQ7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGNoaWxkID0geyBpZDogY2hpbGRBcnJheVswXS5yb290SWQsIG5hbWU6IGNoaWxkQXJyYXlbMF0uc3ViTmFtZSwgY2hpbGRyZW46IFtdIH0gYXMgVHJlZU5vZGU7XHJcbiAgICBjaGlsZEFycmF5LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgY2hpbGQuY2hpbGRyZW4ucHVzaCh7IGlkOiBpdGVtLmNoaWxkSWQsIG5hbWU6IGl0ZW0uY2hpbGROYW1lIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY2hpbGQ7XHJcbiAgfVxyXG5cclxuICBmaW5kUGFyZW50Tm9kZShpZDogc3RyaW5nLCBkYXRhOiBUcmVlTm9kZVtdKSB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcclxuICAgIGZvciAoY29uc3QgY3VycmVudEZhdGhlciBvZiBkYXRhKSB7XHJcbiAgICAgIGlmIChjdXJyZW50RmF0aGVyLmlkID09PSBpZCkge1xyXG4gICAgICAgIHJldHVybiBjdXJyZW50RmF0aGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY3VycmVudEZhdGhlci5jaGlsZHJlbikge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRDaGlsZCA9IGN1cnJlbnRGYXRoZXIuY2hpbGRyZW4uZmluZCgoeCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHguaWQgPT09IGlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChjdXJyZW50Q2hpbGQpIHtcclxuICAgICAgICAgIHJldHVybiBjdXJyZW50Q2hpbGQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcclxuICAgICAgICBmb3IgKGNvbnN0IGN1cnJlbnRDaGlsZDEgb2YgY3VycmVudEZhdGhlci5jaGlsZHJlbikge1xyXG4gICAgICAgICAgaWYgKGlkICE9PSBjdXJyZW50Q2hpbGQxLmlkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZmluZFBhcmVudE5vZGUoaWQsIGN1cnJlbnRGYXRoZXIuY2hpbGRyZW4pO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hUcmVlRGF0YSgpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gW107XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtdHJlZVxyXG4gIGlkPVwicW1zY2tlZGl0b3JfdHJlZVwiXHJcbiAgW2RhdGFTb3VyY2VdPVwiZGF0YVNvdXJjZVwiXHJcbiAgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCJcclxuICBjbGFzcz1cInFtc2NrZWRpdG9yX190cmVlX19jb250YWluZXJcIlxyXG4+XHJcbiAgPG1hdC10cmVlLW5vZGVcclxuICAgICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlXCJcclxuICAgIG1hdFRyZWVOb2RlVG9nZ2xlXHJcbiAgICBtYXRUcmVlTm9kZVBhZGRpbmdcclxuICA+XHJcbiAgICA8YnV0dG9uICpuZ0lmPVwibm9kZS5uYW1lXCIgbWF0LWljb24tYnV0dG9uIGRpc2FibGVkPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAqbmdJZj1cIm5vZGUubmFtZVwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBjbGFzcz1cImJ1dHRvblwiXHJcbiAgICAgIChjbGljayk9XCJzZWxlY3ROb2RlKG5vZGUpXCJcclxuICAgID5cclxuICAgICAgPGltZ1xyXG4gICAgICAgICpuZ0lmPVwiZG9jVHlwZSA9PT0gMVwiXHJcbiAgICAgICAgY2xhc3M9XCJtYXQtaWNvblwiXHJcbiAgICAgICAgc3JjPVwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDUUFBQUFrQVFNQUFBRGJ6Z3JiQUFBQUFYTlNSMElCMmNrc2Z3QUFBQWx3U0ZsekFBQUxFd0FBQ3hNQkFKcWNHQUFBQUFaUVRGUkZBQUFBIC8vLy9wZG1mM1FBQUFBSjBVazVUQVA5YmtTSzFBQUFBTTBsRVFWUjRuR05nd0FETS8vK0F5WDlnOGorSWJKQnZBSk1Id09RRE1Qa0JUUDRBazMvUVNRWVptcEwvUVU1RUpqRUFBUE5CSlBPUjBCV1JBQUFBQUVsRlRrU3VRbUNDXCJcclxuICAgICAgLz5cclxuICAgICAgPGltZ1xyXG4gICAgICAgICpuZ0lmPVwiZG9jVHlwZSA9PT0gMlwiXHJcbiAgICAgICAgY2xhc3M9XCJtYXQtaWNvblwiXHJcbiAgICAgICAgc3JjPVwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQVFNQUFBRGF1YSs3QUFBQUFYTlNSMElCMmNrc2Z3QUFBQWx3U0ZsekFBQUxFd0FBQ3hNQkFKcWNHQUFBQUFaUVRGUkZBQUFBOXNuSW02bVFLQUFBQUFKMFVrNVRBUDlia1NLMUFBQUFLVWxFUVZSNG5HTmdRQUx5alQvQVdQTC9ERENHOGRtQWNsZ3g0dzh3WmdlcUJXRUdJQnVNRVFBQWFKa1JFUmR2WTQ4QUFBQUFTVVZPUks1Q1lJST1cIlxyXG4gICAgICAvPlxyXG4gICAgICB7eyBub2RlLm5hbWUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvbWF0LXRyZWUtbm9kZT5cclxuXHJcbiAgPG1hdC10cmVlLW5vZGUgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGU7IHdoZW46IGhhc0NoaWxkXCIgbWF0VHJlZU5vZGVQYWRkaW5nPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBjbGFzcz1cImJ1dHRvbi1ib2RlclwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBtYXRUcmVlTm9kZVRvZ2dsZVxyXG4gICAgICBbZGlzYWJsZVJpcHBsZV09XCIhbm9kZS5oYXNDaGlsZFwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3RvZ2dsZSAnICsgbm9kZS5maWxlbmFtZVwiXHJcbiAgICAgIChjbGljayk9XCJvbkV4cGFuZE5vZGUobm9kZSwgdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSlcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LWljb24gW2hpZGRlbl09XCIhbm9kZS5oYXNDaGlsZFwiIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPlxyXG4gICAgICAgIHt7IHRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyBcImFycm93X2Ryb3BfZG93blwiIDogXCJhcnJvd19yaWdodFwiIH19XHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgKm5nSWY9XCIhYWxsb3dTZWxlY3RGb2xkZXJcIlxyXG4gICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgY2xhc3M9XCJidXR0b24tYm9kZXJcIlxyXG4gICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcclxuICAgID5cclxuICAgICAgPG1hdC1pY29uXHJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgJ2RvY3VtZW50LWljb24nOiBkb2NUeXBlID09PSAxLFxyXG4gICAgICAgICAgJ2ZvbGRlci1pY29uJzogZG9jVHlwZSA9PT0gMlxyXG4gICAgICAgIH1cIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgdHJlZUNvbnRyb2wuaXNFeHBhbmRlZChub2RlKSA/IFwiZm9sZGVyX2ZpbGxlZFwiIDogXCJmb2xkZXJfZmlsbGVkXCIgfX1cclxuICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAge3sgbm9kZS5uYW1lIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b25cclxuICAgICAgKm5nSWY9XCJhbGxvd1NlbGVjdEZvbGRlclwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICBjbGFzcz1cImJ1dHRvbi1mb2xkZXItYm9kZXJcIlxyXG4gICAgICAoY2xpY2spPVwic2VsZWN0Rm9sZGVyKG5vZGUpXCJcclxuICAgICAgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtaWNvblxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICdkb2N1bWVudC1pY29uJzogZG9jVHlwZSA9PT0gMSxcclxuICAgICAgICAgICdmb2xkZXItaWNvbic6IGRvY1R5cGUgPT09IDJcclxuICAgICAgICB9XCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHRyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyBcImZvbGRlcl9maWxsZWRcIiA6IFwiZm9sZGVyX2ZpbGxlZFwiIH19XHJcbiAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgIHt7IG5vZGUubmFtZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9tYXQtdHJlZS1ub2RlPlxyXG48L21hdC10cmVlPlxyXG4iXX0=
208
+ QMSCKEditorTreeComponent.decorators = [
209
+ { type: Component, args: [{
210
+ selector: 'qms-ckeditor-tree',
211
+ template: "<mat-tree\r\n id=\"qmsckeditor_tree\"\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"qmsckeditor__tree__container\"\r\n>\r\n <mat-tree-node\r\n *matTreeNodeDef=\"let node\"\r\n matTreeNodeToggle\r\n matTreeNodePadding\r\n >\r\n <button *ngIf=\"node.name\" mat-icon-button disabled></button>\r\n <button\r\n *ngIf=\"node.name\"\r\n mat-icon-button\r\n class=\"button\"\r\n (click)=\"selectNode(node)\"\r\n >\r\n <img\r\n *ngIf=\"docType === 1\"\r\n class=\"mat-icon\"\r\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkAQMAAADbzgrbAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRFAAAA ////pdmf3QAAAAJ0Uk5TAP9bkSK1AAAAM0lEQVR4nGNgwADM//+AyX9g8j+IbJBvAJMHwOQDMPkBTP4Ak3/QSQYZmpL/QU5EJjEAAPNBJPOR0BWRAAAAAElFTkSuQmCC\"\r\n />\r\n <img\r\n *ngIf=\"docType === 2\"\r\n class=\"mat-icon\"\r\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYAQMAAADaua+7AAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAZQTFRFAAAA9snIm6mQKAAAAAJ0Uk5TAP9bkSK1AAAAKUlEQVR4nGNgQALyjT/AWPL/DDCG8dmAclgx4w8wZgeqBWEGIBuMEQAAaJkRERdvY48AAAAASUVORK5CYII=\"\r\n />\r\n {{ node.name }}\r\n </button>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding>\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 (click)=\"onExpandNode(node, treeControl.isExpanded(node))\"\r\n >\r\n <mat-icon [hidden]=\"!node.hasChild\" class=\"mat-icon-rtl-mirror\">\r\n {{ treeControl.isExpanded(node) ? \"arrow_drop_down\" : \"arrow_right\" }}\r\n </mat-icon>\r\n </button>\r\n <button\r\n *ngIf=\"!allowSelectFolder\"\r\n mat-icon-button\r\n class=\"button-boder\"\r\n [disableRipple]=\"true\"\r\n >\r\n <mat-icon\r\n [ngClass]=\"{\r\n 'document-icon': docType === 1,\r\n 'folder-icon': docType === 2\r\n }\"\r\n >\r\n {{ treeControl.isExpanded(node) ? \"folder_filled\" : \"folder_filled\" }}\r\n </mat-icon>\r\n {{ node.name }}\r\n </button>\r\n <button\r\n *ngIf=\"allowSelectFolder\"\r\n mat-icon-button\r\n class=\"button-folder-boder\"\r\n (click)=\"selectFolder(node)\"\r\n [disableRipple]=\"true\"\r\n >\r\n <mat-icon\r\n [ngClass]=\"{\r\n 'document-icon': docType === 1,\r\n 'folder-icon': docType === 2\r\n }\"\r\n >\r\n {{ treeControl.isExpanded(node) ? \"folder_filled\" : \"folder_filled\" }}\r\n </mat-icon>\r\n {{ node.name }}\r\n </button>\r\n </mat-tree-node>\r\n</mat-tree>\r\n",
212
+ styles: [".qmsckeditor__tree__container .mat-tree{background:#00283a}.qmsckeditor__tree__container .mat-tree-node{color:#fff;min-height:0}.qmsckeditor__tree__container .folder-icon{color:#a4b0de}.qmsckeditor__tree__container .document-icon{color:#4acaff}.qmsckeditor__tree__container .button:focus,.qmsckeditor__tree__container .button:hover{color:#000;background-color:#009ef2;border-radius:2px;width:auto}.qmsckeditor__tree__container .button-boder:focus,.qmsckeditor__tree__container .button:focus{outline:0}.qmsckeditor__tree__container .button-folder-boder:focus{outline:0;background-color:#009ef2;border-radius:2px;width:auto}.qmsckeditor__tree__container .button-folder-boder:hover{color:#000;background-color:#009ef2;border-radius:2px;width:auto}"]
213
+ },] }
214
+ ];
215
+ QMSCKEditorTreeComponent.propDecorators = {
216
+ rawData: [{ type: Input }],
217
+ treeData: [{ type: Input }],
218
+ useExpandFeature: [{ type: Input }],
219
+ docType: [{ type: Input }],
220
+ allowSelectFolder: [{ type: Input }],
221
+ selectNodeEvent: [{ type: Output }],
222
+ selectFolderEvent: [{ type: Output }],
223
+ listParentObj: [{ type: Input }],
224
+ areaOfCurrentProcess: [{ type: Input }]
225
+ };
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicW1zLWNrZWRpdG9yLXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcW1zLWFuZ3VsYXIvc3JjL2xpYi9xbXMtY2tlZGl0b3ItY29tcG9uZW50cy9jb21tb24vbW9kdWxlL3RyZWUvcW1zLWNrZWRpdG9yLXRyZWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZEQUE2RDtBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsNkRBQTZEO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsNkRBQTZEO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBc0JqRixNQUFNLE9BQU8sd0JBQXdCO0lBTHJDO1FBTUUsOERBQThEO1FBQ3JELFlBQU8sR0FBZSxFQUFFLENBQUM7UUFFbEMsOERBQThEO1FBQ3JELGFBQVEsR0FBZSxFQUFFLENBQUM7UUFRekIsb0JBQWUsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUzRCxzQkFBaUIsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUt2RSxhQUFRLEdBQWEsRUFBRSxDQUFDO1FBSXhCLDJDQUEyQztRQUMzQyxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUMvQixDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUMsRUFDRCxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3pCLENBQUMsQ0FDRixDQUFDO1FBUU0sZ0JBQVcsR0FBRyxDQUFDLElBQWMsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUN0RCxJQUFJLGFBQWEsR0FB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QUFFLEVBQUU7d0JBQzNCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQzt3QkFDL0QsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFOzRCQUNwQixPQUFPLE1BQU0sQ0FBQzt5QkFDZjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUM5QixDQUFDOzs7WUE1UEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLG15RkFBaUQ7O2FBRWxEOzs7c0JBR0UsS0FBSzt1QkFHTCxLQUFLOytCQUVMLEtBQUs7c0JBRUwsS0FBSztnQ0FFTCxLQUFLOzhCQUVMLE1BQU07Z0NBRU4sTUFBTTs0QkFHTixLQUFLO21DQUlMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzXHJcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9uby1leHRyYW5lb3VzLWRlcGVuZGVuY2llc1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXNcclxuaW1wb3J0IHsgTWF0VHJlZUZsYXREYXRhU291cmNlLCBNYXRUcmVlRmxhdHRlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdHJlZSc7XHJcblxyXG5pbnRlcmZhY2UgVHJlZU5vZGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNoaWxkcmVuPzogVHJlZU5vZGVbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIFRyZWVGbGF0Tm9kZSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGV2ZWw6IG51bWJlcjtcclxuICBleHBhbmRhYmxlOiBib29sZWFuO1xyXG4gIGhhc0NoaWxkOiBib29sZWFuO1xyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3Ftcy1ja2VkaXRvci10cmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcW1zLWNrZWRpdG9yLXRyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Ftcy1ja2VkaXRvci10cmVlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFFNU0NLRWRpdG9yVHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBASW5wdXQoKSByYXdEYXRhOiBBcnJheTxhbnk+ID0gW107XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQElucHV0KCkgdHJlZURhdGE6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgdXNlRXhwYW5kRmVhdHVyZTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgZG9jVHlwZTogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKSBhbGxvd1NlbGVjdEZvbGRlcjogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpIHNlbGVjdE5vZGVFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3RGb2xkZXJFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQElucHV0KCkgbGlzdFBhcmVudE9iajogYW55O1xyXG5cclxuICBhcnJJbmRleDogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgYXJlYU9mQ3VycmVudFByb2Nlc3M6IHN0cmluZztcclxuXHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1lbWJlci1vcmRlcmluZ1xyXG4gIHRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxUcmVlRmxhdE5vZGU+KFxyXG4gICAgKG5vZGUpID0+IHtcclxuICAgICAgcmV0dXJuIG5vZGUubGV2ZWw7XHJcbiAgICB9LFxyXG4gICAgKG5vZGUpID0+IHtcclxuICAgICAgcmV0dXJuIG5vZGUuZXhwYW5kYWJsZTtcclxuICAgIH1cclxuICApO1xyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnRyZWVEYXRhKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy50cmVlRGF0YTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhbnNmb3JtZXIgPSAobm9kZTogVHJlZU5vZGUsIGxldmVsOiBudW1iZXIpID0+IHtcclxuICAgIGxldCBjaGVja0hhc0NoaWxkID0gdHJ1ZTtcclxuICAgIGlmICghbm9kZS5jaGlsZHJlbikge1xyXG4gICAgICBjaGVja0hhc0NoaWxkID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKCEoISFub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCkpIHtcclxuICAgICAgY2hlY2tIYXNDaGlsZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxyXG4gICAgZWxzZSBpZiAoXHJcbiAgICAgICEhbm9kZS5jaGlsZHJlbiAmJlxyXG4gICAgICBub2RlLmNoaWxkcmVuLmxlbmd0aCAmJlxyXG4gICAgICBub2RlLmNoaWxkcmVuLmxlbmd0aCA9PT0gMSAmJlxyXG4gICAgICAhbm9kZS5jaGlsZHJlblswXS5uYW1lLmxlbmd0aCAmJlxyXG4gICAgICBub2RlLmlkLnRvU3RyaW5nKCkgPT09IHRoaXMuYXJlYU9mQ3VycmVudFByb2Nlc3NcclxuICAgICkge1xyXG4gICAgICBjaGVja0hhc0NoaWxkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCEodGhpcy5saXN0UGFyZW50T2JqW25vZGUuaWRdID09PSAxKSkge1xyXG4gICAgICBjaGVja0hhc0NoaWxkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZXhwYW5kYWJsZTogISFub2RlLmNoaWxkcmVuICYmIG5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMCxcclxuICAgICAgbmFtZTogbm9kZS5uYW1lLFxyXG4gICAgICBsZXZlbCxcclxuICAgICAgaWQ6IG5vZGUuaWQsXHJcbiAgICAgIGhhc0NoaWxkOiBjaGVja0hhc0NoaWxkXHJcbiAgICB9O1xyXG4gIH07XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgdHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxyXG4gICAgdGhpcy50cmFuc2Zvcm1lcixcclxuICAgIChub2RlKSA9PiB7XHJcbiAgICAgIHJldHVybiBub2RlLmxldmVsO1xyXG4gICAgfSxcclxuICAgIChub2RlKSA9PiB7XHJcbiAgICAgIHJldHVybiBub2RlLmV4cGFuZGFibGU7XHJcbiAgICB9LFxyXG4gICAgKG5vZGUpID0+IHtcclxuICAgICAgcmV0dXJuIG5vZGUuY2hpbGRyZW47XHJcbiAgICB9XHJcbiAgKTtcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICBkYXRhU291cmNlID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSh0aGlzLnRyZWVDb250cm9sLCB0aGlzLnRyZWVGbGF0dGVuZXIpO1xyXG5cclxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIG5vZGU6IFRyZWVGbGF0Tm9kZSkgPT4ge1xyXG4gICAgcmV0dXJuIG5vZGUuZXhwYW5kYWJsZTtcclxuICB9O1xyXG5cclxuICBzZWxlY3ROb2RlKG5vZGU6IFRyZWVGbGF0Tm9kZSkge1xyXG4gICAgdGhpcy5zZWxlY3ROb2RlRXZlbnQuZW1pdChub2RlLmlkKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdEZvbGRlcihub2RlOiBUcmVlRmxhdE5vZGUpIHtcclxuICAgIHRoaXMuc2VsZWN0Rm9sZGVyRXZlbnQuZW1pdChub2RlLmlkKTtcclxuICB9XHJcblxyXG4gIG9uRXhwYW5kTm9kZShub2RlOiBUcmVlRmxhdE5vZGUsIGlzRXhwYW5kTm9kZT86IGJvb2xlYW4pIHtcclxuICAgIC8vIHNldCB1c2VFeHBhbmRGZWF0dXJlID0gdHJ1ZSB0byBpbXByb3ZlIHBlcmZvcm1hbmNlIG9mIHRyZWUgbG9hZGluZ1xyXG4gICAgaWYgKCFpc0V4cGFuZE5vZGUgfHwgIXRoaXMudXNlRXhwYW5kRmVhdHVyZSkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYXJySW5kZXgubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAodGhpcy5hcnJJbmRleFtpXSA9PT0gbm9kZS5pZCkge1xyXG4gICAgICAgICAgdGhpcy5hcnJJbmRleC5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZ2V0IGFycmF5IGluZGV4IHRvIGV4cGFuZCBub2RlIGFmdGVyIHJlZnJlc2ggZGF0YXNvdXJjZVxyXG4gICAgbGV0IGluZGV4ID0gMDtcclxuICAgIGxldCBpc0NoYW5nZSA9IGZhbHNlO1xyXG4gICAgbGV0IGlzUmVtb3ZlID0gZmFsc2U7XHJcbiAgICBpZiAobm9kZS5sZXZlbCA9PT0gMCkge1xyXG4gICAgICB0aGlzLmFyckluZGV4LnB1c2gobm9kZS5pZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFyckluZGV4LnB1c2gobm9kZS5pZCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY2hpbGRBcnJheSA9IHRoaXMucmF3RGF0YS5maWx0ZXIoKHgpID0+IHtcclxuICAgICAgcmV0dXJuIHgucGFyZW50SWQgPT09IG5vZGUuaWQ7XHJcbiAgICB9KTtcclxuICAgIGxldCByb290SWQgPSAwO1xyXG4gICAgbGV0IHBhcmVudEVsZW1lbnQ6IFRyZWVOb2RlO1xyXG4gICAgbGV0IGNoaWxkcmVuTGlzdDogVHJlZU5vZGVbXTtcclxuICAgIGlmIChjaGlsZEFycmF5Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjaGlsZEFycmF5LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaWYgKGl0ZW0ucm9vdElkID09PSByb290SWQpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGdldCBjaGlsZCBub2RlIGZyb20gb3JpZ2luYWwgZGF0YXNvdXJjZVxyXG4gICAgICBjb25zdCBjaGlsZCA9IHRoaXMuZ2V0Q2hpbGROb2RlKGl0ZW0ucm9vdElkLCBjaGlsZEFycmF5KTtcclxuICAgICAgcm9vdElkID0gaXRlbS5yb290SWQ7XHJcblxyXG4gICAgICBpbmRleCA9IHRoaXMuZ2V0Tm9kZUluZGV4KGNoaWxkLmlkLCB1bmRlZmluZWQsIHRoaXMuZGF0YVNvdXJjZVsnX3RyZWVDb250cm9sJ10uZGF0YU5vZGVzKTtcclxuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIGFkZCBjaGlsZCBub2RlIHRvIGV4cGFuZCBub2RlXHJcbiAgICAgIHBhcmVudEVsZW1lbnQgPSB0aGlzLmZpbmRQYXJlbnROb2RlKG5vZGUuaWQsIHRoaXMuZGF0YVNvdXJjZS5kYXRhKTtcclxuICAgICAgaWYgKHBhcmVudEVsZW1lbnQpIHtcclxuICAgICAgICAvLyB0ZW1wb3JhcnkgcmVtb3ZlIGFsbCBub2RlIHdpdGhvdXQgY2hpbGRyZW4gPT4gcHVycG9zZSB0byBhZGQgbm9kZSBmb2xkZXIgZmlyc3RcclxuICAgICAgICBpZiAoIWlzUmVtb3ZlKSB7XHJcbiAgICAgICAgICBjaGlsZHJlbkxpc3QgPSBbLi4ucGFyZW50RWxlbWVudC5jaGlsZHJlbl07XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUNoaWxkcmVuKHBhcmVudEVsZW1lbnQpO1xyXG4gICAgICAgICAgaXNSZW1vdmUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBhZGQgbm9kZSBmb2xkZXIgZmlyc3RcclxuICAgICAgICBwYXJlbnRFbGVtZW50LmNoaWxkcmVuLnB1c2goY2hpbGQpO1xyXG4gICAgICAgIGlzQ2hhbmdlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyBhZGQgbm9kZSB3aXRob3V0IGNoaWxkcmVuIGFnYWluXHJcbiAgICBpZiAoaXNSZW1vdmUpIHtcclxuICAgICAgdGhpcy5hZGRDaGlsZHJlbihwYXJlbnRFbGVtZW50LCBjaGlsZHJlbkxpc3QpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHJlZnJlc2ggZGF0YSBhbmQgZXhwYW5kIHRyZWUgbm9kZSBmcm9tIHJvb3Qgbm9kZVxyXG4gICAgaWYgKGlzQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMucmVmcmVzaFRyZWVEYXRhKCk7XHJcbiAgICAgIHRoaXMuYXJySW5kZXguZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGluZGV4ID0gdGhpcy5nZXROb2RlSW5kZXgoaXRlbSwgdW5kZWZpbmVkLCB0aGlzLmRhdGFTb3VyY2VbJ190cmVlQ29udHJvbCddLmRhdGFOb2Rlcyk7XHJcbiAgICAgICAgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXNbaW5kZXhdKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGlzQ2hhbmdlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVDaGlsZHJlbihwYXJlbnRFbGVtZW50PzogVHJlZU5vZGUpIHtcclxuICAgIGlmIChwYXJlbnRFbGVtZW50LmNoaWxkcmVuKSB7XHJcbiAgICAgIHBhcmVudEVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID0gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZENoaWxkcmVuKHBhcmVudEVsZW1lbnQ/OiBUcmVlTm9kZSwgY2hpbGRyZW5MaXN0PzogVHJlZU5vZGVbXSkge1xyXG4gICAgaWYgKGNoaWxkcmVuTGlzdCkge1xyXG4gICAgICBjaGlsZHJlbkxpc3QuZm9yRWFjaCgoZSkgPT4ge1xyXG4gICAgICAgIHBhcmVudEVsZW1lbnQuY2hpbGRyZW4ucHVzaChlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldE5vZGVJbmRleChpZDogc3RyaW5nLCBsZXZlbD86IG51bWJlciwgZGF0YT86IGFueVtdKSB7XHJcbiAgICBpZiAobGV2ZWwpIHtcclxuICAgICAgcmV0dXJuIGRhdGEuZmluZEluZGV4KCh4KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHguaWQgPT09IGlkICYmIHgubGV2ZWwgPT09IGxldmVsO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGF0YS5maW5kSW5kZXgoKHgpID0+IHtcclxuICAgICAgcmV0dXJuIHguaWQgPT09IGlkO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGdldENoaWxkTm9kZShyb290SWQ6IHN0cmluZywgZGF0YTogYW55KSB7XHJcbiAgICBjb25zdCBjaGlsZEFycmF5ID0gZGF0YS5maWx0ZXIoKHgpID0+IHtcclxuICAgICAgcmV0dXJuIHgucm9vdElkID09PSByb290SWQ7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGNoaWxkID0geyBpZDogY2hpbGRBcnJheVswXS5yb290SWQsIG5hbWU6IGNoaWxkQXJyYXlbMF0uc3ViTmFtZSwgY2hpbGRyZW46IFtdIH0gYXMgVHJlZU5vZGU7XHJcbiAgICBjaGlsZEFycmF5LmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgY2hpbGQuY2hpbGRyZW4ucHVzaCh7IGlkOiBpdGVtLmNoaWxkSWQsIG5hbWU6IGl0ZW0uY2hpbGROYW1lIH0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY2hpbGQ7XHJcbiAgfVxyXG5cclxuICBmaW5kUGFyZW50Tm9kZShpZDogc3RyaW5nLCBkYXRhOiBUcmVlTm9kZVtdKSB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcclxuICAgIGZvciAoY29uc3QgY3VycmVudEZhdGhlciBvZiBkYXRhKSB7XHJcbiAgICAgIGlmIChjdXJyZW50RmF0aGVyLmlkID09PSBpZCkge1xyXG4gICAgICAgIHJldHVybiBjdXJyZW50RmF0aGVyO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY3VycmVudEZhdGhlci5jaGlsZHJlbikge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRDaGlsZCA9IGN1cnJlbnRGYXRoZXIuY2hpbGRyZW4uZmluZCgoeCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHguaWQgPT09IGlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChjdXJyZW50Q2hpbGQpIHtcclxuICAgICAgICAgIHJldHVybiBjdXJyZW50Q2hpbGQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcclxuICAgICAgICBmb3IgKGNvbnN0IGN1cnJlbnRDaGlsZDEgb2YgY3VycmVudEZhdGhlci5jaGlsZHJlbikge1xyXG4gICAgICAgICAgaWYgKGlkICE9PSBjdXJyZW50Q2hpbGQxLmlkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZmluZFBhcmVudE5vZGUoaWQsIGN1cnJlbnRGYXRoZXIuY2hpbGRyZW4pO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0ICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hUcmVlRGF0YSgpIHtcclxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gW107XHJcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XHJcbiAgfVxyXG59XHJcbiJdfQ==