@wavemaker/app-ng-runtime 12.0.0-next.45002 → 12.0.0-next.45005

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 (1480) hide show
  1. app-ng-runtime/build-task/.npmignore +2 -0
  2. app-ng-runtime/build-task/bundles/index.umd.js +341 -344
  3. app-ng-runtime/build-task/esm2022/advanced/carousel/carousel-template/carousel-template.build.mjs +5 -3
  4. app-ng-runtime/build-task/esm2022/advanced/carousel/carousel.build.mjs +1 -1
  5. app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +1 -1
  6. app-ng-runtime/build-task/esm2022/basic/progress/progress-bar/progress-bar.build.mjs +1 -1
  7. app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +1 -1
  8. app-ng-runtime/build-task/esm2022/containers/repeat-template.build.mjs +5 -3
  9. app-ng-runtime/build-task/esm2022/containers/tabs/tabs.build.mjs +1 -1
  10. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +1 -1
  11. app-ng-runtime/build-task/esm2022/data/form/form.build.mjs +5 -2
  12. app-ng-runtime/build-task/esm2022/data/list/list.build.mjs +1 -1
  13. app-ng-runtime/build-task/esm2022/data/media-list/media-list.build.mjs +1 -1
  14. app-ng-runtime/build-task/esm2022/data/table/table-column/table-column.build.mjs +1 -1
  15. app-ng-runtime/build-task/esm2022/data/table/table.build.mjs +1 -1
  16. app-ng-runtime/build-task/esm2022/dialogs/partial-dialog/partial-dialog.build.mjs +1 -1
  17. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +1 -1
  18. app-ng-runtime/build-task/esm2022/navigation/menu/menu.build.mjs +8 -3
  19. app-ng-runtime/build-task/esm2022/navigation/popover/popover.build.mjs +1 -1
  20. app-ng-runtime/build-task/esm2022/page/page-content/page-content.build.mjs +1 -1
  21. app-ng-runtime/build-task/esm2022/page/page.build.mjs +3 -2
  22. app-ng-runtime/build-task/esm2022/public_api.mjs +1 -2
  23. app-ng-runtime/build-task/esm2022/utils/utils.mjs +1 -1
  24. app-ng-runtime/build-task/fesm2022/index.mjs +340 -341
  25. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  26. app-ng-runtime/build-task/public_api.d.ts +0 -1
  27. app-ng-runtime/components/advanced/carousel/.npmignore +2 -0
  28. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +29 -18
  29. app-ng-runtime/components/advanced/carousel/carousel-template/carousel-template.directive.d.ts +3 -3
  30. app-ng-runtime/components/advanced/carousel/carousel.directive.d.ts +2 -2
  31. app-ng-runtime/components/advanced/carousel/esm2022/carousel-template/carousel-template.directive.mjs +15 -9
  32. app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +3 -2
  33. app-ng-runtime/components/advanced/carousel/esm2022/carousel.directive.mjs +12 -7
  34. app-ng-runtime/components/advanced/carousel/esm2022/carousel.module.mjs +2 -2
  35. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +28 -16
  36. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  37. app-ng-runtime/components/advanced/custom/.npmignore +2 -0
  38. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +31 -94
  39. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +2 -0
  40. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +1 -0
  41. app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +4 -5
  42. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +21 -13
  43. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +5 -2
  44. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +5 -5
  45. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +2 -9
  46. app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +1 -2
  47. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +31 -93
  48. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -1
  49. app-ng-runtime/components/advanced/custom/public_api.d.ts +0 -1
  50. app-ng-runtime/components/advanced/login/.npmignore +2 -0
  51. app-ng-runtime/components/advanced/login/bundles/index.umd.js +19 -13
  52. app-ng-runtime/components/advanced/login/esm2022/login.component.mjs +17 -10
  53. app-ng-runtime/components/advanced/login/esm2022/login.module.mjs +2 -2
  54. app-ng-runtime/components/advanced/login/fesm2022/index.mjs +18 -11
  55. app-ng-runtime/components/advanced/login/fesm2022/index.mjs.map +1 -1
  56. app-ng-runtime/components/advanced/login/login.component.d.ts +2 -2
  57. app-ng-runtime/components/advanced/marquee/.npmignore +2 -0
  58. app-ng-runtime/components/advanced/marquee/bundles/index.umd.js +11 -6
  59. app-ng-runtime/components/advanced/marquee/esm2022/marquee.directive.mjs +12 -7
  60. app-ng-runtime/components/advanced/marquee/esm2022/marquee.module.mjs +2 -2
  61. app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs +13 -8
  62. app-ng-runtime/components/advanced/marquee/fesm2022/index.mjs.map +1 -1
  63. app-ng-runtime/components/advanced/marquee/marquee.directive.d.ts +2 -2
  64. app-ng-runtime/components/base/.npmignore +2 -0
  65. app-ng-runtime/components/base/bundles/index.umd.js +400 -312
  66. app-ng-runtime/components/base/directives/show-in-device.directive.d.ts +3 -6
  67. app-ng-runtime/components/base/esm2022/components.module.mjs +2 -2
  68. app-ng-runtime/components/base/esm2022/directives/show-in-device.directive.mjs +13 -15
  69. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +35 -34
  70. app-ng-runtime/components/base/esm2022/pipes/image.pipe.mjs +2 -2
  71. app-ng-runtime/components/base/esm2022/pipes/sanitize.pipe.mjs +3 -3
  72. app-ng-runtime/components/base/esm2022/pipes/trust-as.pipe.mjs +3 -3
  73. app-ng-runtime/components/base/esm2022/pipes/wm-pipe.mjs +3 -2
  74. app-ng-runtime/components/base/esm2022/public_api.mjs +2 -1
  75. app-ng-runtime/components/base/esm2022/utils/data-utils.mjs +30 -29
  76. app-ng-runtime/components/base/esm2022/utils/form-utils.mjs +48 -42
  77. app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -7
  78. app-ng-runtime/components/base/esm2022/utils/widget-utils.mjs +28 -27
  79. app-ng-runtime/components/base/esm2022/widgets/common/base/base-container.component.mjs +8 -7
  80. app-ng-runtime/components/base/esm2022/widgets/common/base/base-field-validations.mjs +23 -22
  81. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +63 -42
  82. app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +4 -4
  83. app-ng-runtime/components/base/esm2022/widgets/common/base/dataset-aware-nav.component.mjs +52 -18
  84. app-ng-runtime/components/base/esm2022/widgets/common/base/partial-container.directive.mjs +6 -5
  85. app-ng-runtime/components/base/esm2022/widgets/common/base/stylable.component.mjs +3 -3
  86. app-ng-runtime/components/base/esm2022/widgets/common/base/text-content.directive.mjs +3 -3
  87. app-ng-runtime/components/base/esm2022/widgets/common/container/container.directive.mjs +12 -7
  88. app-ng-runtime/components/base/esm2022/widgets/common/dialog/dialog.service.mjs +5 -4
  89. app-ng-runtime/components/base/esm2022/widgets/common/item-template/item-template.directive.mjs +12 -7
  90. app-ng-runtime/components/base/esm2022/widgets/common/lazy-load/lazy-load.directive.mjs +14 -7
  91. app-ng-runtime/components/base/esm2022/widgets/common/message/message.component.mjs +16 -10
  92. app-ng-runtime/components/base/esm2022/widgets/common/partial/partial.directive.mjs +14 -8
  93. app-ng-runtime/components/base/esm2022/widgets/common/partial-param/partial-param.directive.mjs +9 -8
  94. app-ng-runtime/components/base/esm2022/widgets/common/pull-to-refresh/pull-to-refresh.mjs +1 -1
  95. app-ng-runtime/components/base/esm2022/widgets/common/redraw/redrawable.directive.mjs +4 -4
  96. app-ng-runtime/components/base/esm2022/widgets/common/repeat-template/repeat-template.directive.mjs +15 -9
  97. app-ng-runtime/components/base/esm2022/widgets/common/smooth-scroll/smooth-scroll.directive.mjs +11 -10
  98. app-ng-runtime/components/base/esm2022/widgets/framework/deviceview.mjs +1 -1
  99. app-ng-runtime/components/base/esm2022/widgets/framework/property-change-handler.mjs +3 -2
  100. app-ng-runtime/components/base/esm2022/widgets/framework/styler.mjs +1 -1
  101. app-ng-runtime/components/base/esm2022/widgets/framework/widget-props.mjs +1 -1
  102. app-ng-runtime/components/base/esm2022/widgets/framework/widget-proxy-provider.mjs +4 -3
  103. app-ng-runtime/components/base/esm2022/widgets/framework/widget-registry.mjs +1 -1
  104. app-ng-runtime/components/base/fesm2022/index.mjs +405 -315
  105. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  106. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  107. app-ng-runtime/components/base/public_api.d.ts +1 -0
  108. app-ng-runtime/components/base/utils/data-utils.d.ts +1 -0
  109. app-ng-runtime/components/base/utils/widget-utils.d.ts +2 -2
  110. app-ng-runtime/components/base/widgets/common/base/base-container.component.d.ts +1 -1
  111. app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -1
  112. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +22 -4
  113. app-ng-runtime/components/base/widgets/common/base/dataset-aware-nav.component.d.ts +1 -1
  114. app-ng-runtime/components/base/widgets/common/base/partial-container.directive.d.ts +1 -1
  115. app-ng-runtime/components/base/widgets/common/container/container.directive.d.ts +2 -2
  116. app-ng-runtime/components/base/widgets/common/item-template/item-template.directive.d.ts +2 -2
  117. app-ng-runtime/components/base/widgets/common/lazy-load/lazy-load.directive.d.ts +2 -2
  118. app-ng-runtime/components/base/widgets/common/message/message.component.d.ts +2 -2
  119. app-ng-runtime/components/base/widgets/common/partial/partial.directive.d.ts +2 -2
  120. app-ng-runtime/components/base/widgets/common/repeat-template/repeat-template.directive.d.ts +3 -3
  121. app-ng-runtime/components/basic/default/.npmignore +2 -0
  122. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +2 -2
  123. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +2 -2
  124. app-ng-runtime/components/basic/default/bundles/index.umd.js +158 -115
  125. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +31 -27
  126. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +13 -7
  127. app-ng-runtime/components/basic/default/esm2022/basic.module.mjs +2 -2
  128. app-ng-runtime/components/basic/default/esm2022/html/html.directive.mjs +13 -8
  129. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +19 -14
  130. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +15 -9
  131. app-ng-runtime/components/basic/default/esm2022/label/label.directive.mjs +15 -9
  132. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +12 -7
  133. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +1 -1
  134. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.component.mjs +34 -30
  135. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +21 -17
  136. app-ng-runtime/components/basic/default/fesm2022/index.mjs +157 -113
  137. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  138. app-ng-runtime/components/basic/default/html/html.directive.d.ts +2 -2
  139. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +2 -2
  140. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +2 -2
  141. app-ng-runtime/components/basic/default/label/label.directive.d.ts +2 -2
  142. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -2
  143. app-ng-runtime/components/basic/default/spinner/spinner.component.d.ts +2 -2
  144. app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -2
  145. app-ng-runtime/components/basic/progress/.npmignore +2 -0
  146. app-ng-runtime/components/basic/progress/bundles/index.umd.js +40 -28
  147. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +22 -15
  148. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +17 -10
  149. app-ng-runtime/components/basic/progress/esm2022/progress.module.mjs +2 -2
  150. app-ng-runtime/components/basic/progress/esm2022/utils.mjs +3 -3
  151. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +39 -26
  152. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  153. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -2
  154. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +2 -2
  155. app-ng-runtime/components/basic/rich-text-editor/.npmignore +2 -0
  156. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +19 -13
  157. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +17 -10
  158. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.module.mjs +2 -2
  159. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +18 -11
  160. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  161. app-ng-runtime/components/basic/rich-text-editor/rich-text-editor.component.d.ts +2 -2
  162. app-ng-runtime/components/basic/search/.npmignore +2 -0
  163. app-ng-runtime/components/basic/search/bundles/index.umd.js +186 -175
  164. app-ng-runtime/components/basic/search/esm2022/data-provider/data-provider.mjs +1 -1
  165. app-ng-runtime/components/basic/search/esm2022/data-provider/local-data-provider.mjs +26 -23
  166. app-ng-runtime/components/basic/search/esm2022/data-provider/remote-data-provider.mjs +12 -11
  167. app-ng-runtime/components/basic/search/esm2022/scrollable.directive.mjs +3 -3
  168. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +148 -138
  169. app-ng-runtime/components/basic/search/esm2022/search.module.mjs +2 -2
  170. app-ng-runtime/components/basic/search/fesm2022/index.mjs +186 -174
  171. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  172. app-ng-runtime/components/basic/search/search.component.d.ts +2 -2
  173. app-ng-runtime/components/basic/tree/.npmignore +2 -0
  174. app-ng-runtime/components/basic/tree/bundles/index.umd.js +23 -17
  175. app-ng-runtime/components/basic/tree/esm2022/tree.component.mjs +21 -14
  176. app-ng-runtime/components/basic/tree/esm2022/tree.module.mjs +2 -2
  177. app-ng-runtime/components/basic/tree/fesm2022/index.mjs +22 -15
  178. app-ng-runtime/components/basic/tree/fesm2022/index.mjs.map +1 -1
  179. app-ng-runtime/components/basic/tree/tree.component.d.ts +2 -2
  180. app-ng-runtime/components/chart/.npmignore +2 -0
  181. app-ng-runtime/components/chart/bundles/index.umd.js +97 -84
  182. app-ng-runtime/components/chart/chart.component.d.ts +3 -3
  183. app-ng-runtime/components/chart/chart.utils.d.ts +3 -3
  184. app-ng-runtime/components/chart/esm2022/chart.component.mjs +82 -68
  185. app-ng-runtime/components/chart/esm2022/chart.module.mjs +2 -2
  186. app-ng-runtime/components/chart/esm2022/chart.utils.mjs +14 -13
  187. app-ng-runtime/components/chart/fesm2022/index.mjs +95 -81
  188. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  189. app-ng-runtime/components/containers/accordion/.npmignore +2 -0
  190. app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +2 -2
  191. app-ng-runtime/components/containers/accordion/accordion.directive.d.ts +2 -2
  192. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +51 -40
  193. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +23 -17
  194. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.props.mjs +4 -4
  195. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +25 -19
  196. app-ng-runtime/components/containers/accordion/esm2022/accordion.module.mjs +2 -2
  197. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +50 -38
  198. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  199. app-ng-runtime/components/containers/layout-grid/.npmignore +2 -0
  200. app-ng-runtime/components/containers/layout-grid/bundles/index.umd.js +32 -17
  201. app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid-column/layout-grid-column.directive.mjs +13 -8
  202. app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid-row/layout-grid-row.directive.mjs +12 -7
  203. app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid.directive.mjs +12 -7
  204. app-ng-runtime/components/containers/layout-grid/esm2022/layout-grid.module.mjs +2 -2
  205. app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs +34 -19
  206. app-ng-runtime/components/containers/layout-grid/fesm2022/index.mjs.map +1 -1
  207. app-ng-runtime/components/containers/layout-grid/layout-grid-column/layout-grid-column.directive.d.ts +2 -2
  208. app-ng-runtime/components/containers/layout-grid/layout-grid-row/layout-grid-row.directive.d.ts +2 -2
  209. app-ng-runtime/components/containers/layout-grid/layout-grid.directive.d.ts +2 -2
  210. app-ng-runtime/components/containers/linear-layout/.npmignore +2 -0
  211. app-ng-runtime/components/containers/linear-layout/bundles/index.umd.js +21 -11
  212. app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout-item/linear-layout-item.directive.mjs +12 -7
  213. app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout.directive.mjs +12 -7
  214. app-ng-runtime/components/containers/linear-layout/esm2022/linear-layout.module.mjs +2 -2
  215. app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs +23 -13
  216. app-ng-runtime/components/containers/linear-layout/fesm2022/index.mjs.map +1 -1
  217. app-ng-runtime/components/containers/linear-layout/linear-layout-item/linear-layout-item.directive.d.ts +2 -2
  218. app-ng-runtime/components/containers/linear-layout/linear-layout.directive.d.ts +2 -2
  219. app-ng-runtime/components/containers/panel/.npmignore +2 -0
  220. app-ng-runtime/components/containers/panel/bundles/index.umd.js +85 -85
  221. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +83 -82
  222. app-ng-runtime/components/containers/panel/esm2022/panel.module.mjs +2 -2
  223. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +84 -83
  224. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  225. app-ng-runtime/components/containers/panel/panel.component.d.ts +3 -3
  226. app-ng-runtime/components/containers/tabs/.npmignore +2 -0
  227. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +74 -63
  228. app-ng-runtime/components/containers/tabs/esm2022/tab-pane/tab-pane.component.mjs +14 -8
  229. app-ng-runtime/components/containers/tabs/esm2022/tab-pane/tab-pane.props.mjs +4 -4
  230. app-ng-runtime/components/containers/tabs/esm2022/tabs.animator.mjs +1 -1
  231. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +57 -51
  232. app-ng-runtime/components/containers/tabs/esm2022/tabs.module.mjs +2 -2
  233. app-ng-runtime/components/containers/tabs/esm2022/tabs.props.mjs +1 -1
  234. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +73 -61
  235. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  236. app-ng-runtime/components/containers/tabs/tab-pane/tab-pane.component.d.ts +2 -2
  237. app-ng-runtime/components/containers/tabs/tabs.component.d.ts +2 -2
  238. app-ng-runtime/components/containers/tile/.npmignore +2 -0
  239. app-ng-runtime/components/containers/tile/bundles/index.umd.js +11 -6
  240. app-ng-runtime/components/containers/tile/esm2022/tile.directive.mjs +12 -7
  241. app-ng-runtime/components/containers/tile/esm2022/tile.module.mjs +2 -2
  242. app-ng-runtime/components/containers/tile/fesm2022/index.mjs +13 -8
  243. app-ng-runtime/components/containers/tile/fesm2022/index.mjs.map +1 -1
  244. app-ng-runtime/components/containers/tile/tile.directive.d.ts +2 -2
  245. app-ng-runtime/components/containers/wizard/.npmignore +2 -0
  246. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +102 -98
  247. app-ng-runtime/components/containers/wizard/esm2022/wizard-step/wizard-step.directive.mjs +13 -8
  248. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +92 -93
  249. app-ng-runtime/components/containers/wizard/esm2022/wizard.module.mjs +2 -2
  250. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +104 -100
  251. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  252. app-ng-runtime/components/containers/wizard/wizard-step/wizard-step.directive.d.ts +2 -2
  253. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +2 -2
  254. app-ng-runtime/components/data/card/.npmignore +2 -0
  255. app-ng-runtime/components/data/card/bundles/index.umd.js +70 -50
  256. app-ng-runtime/components/data/card/card-actions/card-actions.directive.d.ts +2 -2
  257. app-ng-runtime/components/data/card/card-content/card-content.component.d.ts +2 -2
  258. app-ng-runtime/components/data/card/card-footer/card-footer.directive.d.ts +2 -2
  259. app-ng-runtime/components/data/card/card.component.d.ts +2 -2
  260. app-ng-runtime/components/data/card/esm2022/card-actions/card-actions.directive.mjs +12 -7
  261. app-ng-runtime/components/data/card/esm2022/card-content/card-content.component.mjs +15 -9
  262. app-ng-runtime/components/data/card/esm2022/card-footer/card-footer.directive.mjs +12 -7
  263. app-ng-runtime/components/data/card/esm2022/card.component.mjs +38 -34
  264. app-ng-runtime/components/data/card/esm2022/card.module.mjs +2 -2
  265. app-ng-runtime/components/data/card/fesm2022/index.mjs +72 -52
  266. app-ng-runtime/components/data/card/fesm2022/index.mjs.map +1 -1
  267. app-ng-runtime/components/data/form/.npmignore +2 -0
  268. app-ng-runtime/components/data/form/bundles/index.umd.js +197 -184
  269. app-ng-runtime/components/data/form/esm2022/form-action/form-action.directive.mjs +15 -9
  270. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +21 -15
  271. app-ng-runtime/components/data/form/esm2022/form-field/form-field.props.mjs +1 -1
  272. app-ng-runtime/components/data/form/esm2022/form-widget.directive.mjs +4 -4
  273. app-ng-runtime/components/data/form/esm2022/form.component.mjs +138 -134
  274. app-ng-runtime/components/data/form/esm2022/form.module.mjs +2 -2
  275. app-ng-runtime/components/data/form/esm2022/form.props.mjs +1 -1
  276. app-ng-runtime/components/data/form/esm2022/live-actions/dependson.directive.mjs +4 -4
  277. app-ng-runtime/components/data/form/esm2022/live-actions/live-actions.directive.mjs +4 -4
  278. app-ng-runtime/components/data/form/esm2022/live-filter/live-filter.directive.mjs +7 -6
  279. app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +14 -13
  280. app-ng-runtime/components/data/form/fesm2022/index.mjs +201 -187
  281. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  282. app-ng-runtime/components/data/form/form-action/form-action.directive.d.ts +2 -2
  283. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +2 -2
  284. app-ng-runtime/components/data/form/form.component.d.ts +4 -4
  285. app-ng-runtime/components/data/form/live-form/live-form.directive.d.ts +1 -1
  286. app-ng-runtime/components/data/list/.npmignore +2 -0
  287. app-ng-runtime/components/data/list/bundles/index.umd.js +829 -818
  288. app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +9 -4
  289. app-ng-runtime/components/data/list/esm2022/list.animator.mjs +5 -3
  290. app-ng-runtime/components/data/list/esm2022/list.component.mjs +817 -810
  291. app-ng-runtime/components/data/list/esm2022/list.module.mjs +2 -2
  292. app-ng-runtime/components/data/list/fesm2022/index.mjs +828 -816
  293. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  294. app-ng-runtime/components/data/list/list-item.directive.d.ts +4 -0
  295. app-ng-runtime/components/data/list/list.component.d.ts +55 -54
  296. app-ng-runtime/components/data/live-table/.npmignore +2 -0
  297. app-ng-runtime/components/data/live-table/bundles/index.umd.js +13 -7
  298. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +14 -8
  299. app-ng-runtime/components/data/live-table/esm2022/live-table.module.mjs +2 -2
  300. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +15 -9
  301. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  302. app-ng-runtime/components/data/live-table/live-table.component.d.ts +2 -2
  303. app-ng-runtime/components/data/pagination/.npmignore +2 -0
  304. app-ng-runtime/components/data/pagination/bundles/index.umd.js +113 -110
  305. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +111 -107
  306. app-ng-runtime/components/data/pagination/esm2022/pagination.module.mjs +2 -2
  307. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +112 -108
  308. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  309. app-ng-runtime/components/data/pagination/pagination.component.d.ts +2 -2
  310. app-ng-runtime/components/data/table/.npmignore +2 -0
  311. app-ng-runtime/components/data/table/bundles/index.umd.js +314 -269
  312. app-ng-runtime/components/data/table/esm2022/table-action/table-action.directive.mjs +15 -9
  313. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +40 -25
  314. app-ng-runtime/components/data/table/esm2022/table-column/table-column.props.mjs +2 -2
  315. app-ng-runtime/components/data/table/esm2022/table-column-group/table-column-group.directive.mjs +13 -8
  316. app-ng-runtime/components/data/table/esm2022/table-cud.directive.mjs +10 -9
  317. app-ng-runtime/components/data/table/esm2022/table-filter.directive.mjs +56 -58
  318. app-ng-runtime/components/data/table/esm2022/table-row/table-row.directive.mjs +13 -8
  319. app-ng-runtime/components/data/table/esm2022/table-row-action/table-row-action.directive.mjs +14 -8
  320. app-ng-runtime/components/data/table/esm2022/table.component.mjs +165 -150
  321. app-ng-runtime/components/data/table/esm2022/table.module.mjs +2 -2
  322. app-ng-runtime/components/data/table/esm2022/table.props.mjs +2 -2
  323. app-ng-runtime/components/data/table/fesm2022/index.mjs +313 -267
  324. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  325. app-ng-runtime/components/data/table/table-action/table-action.directive.d.ts +2 -2
  326. app-ng-runtime/components/data/table/table-column/table-column.directive.d.ts +8 -8
  327. app-ng-runtime/components/data/table/table-column-group/table-column-group.directive.d.ts +2 -2
  328. app-ng-runtime/components/data/table/table-row/table-row.directive.d.ts +2 -2
  329. app-ng-runtime/components/data/table/table-row-action/table-row-action.directive.d.ts +2 -2
  330. app-ng-runtime/components/data/table/table.component.d.ts +4 -4
  331. app-ng-runtime/components/dialogs/alert-dialog/.npmignore +2 -0
  332. app-ng-runtime/components/dialogs/alert-dialog/alert-dialog.component.d.ts +2 -2
  333. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +15 -9
  334. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +16 -10
  335. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.module.mjs +2 -2
  336. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +17 -11
  337. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  338. app-ng-runtime/components/dialogs/confirm-dialog/.npmignore +2 -0
  339. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +17 -11
  340. app-ng-runtime/components/dialogs/confirm-dialog/confirm-dialog.component.d.ts +2 -2
  341. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +18 -12
  342. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.module.mjs +2 -2
  343. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +19 -13
  344. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  345. app-ng-runtime/components/dialogs/default/.npmignore +2 -0
  346. app-ng-runtime/components/dialogs/default/base-dialog.d.ts +2 -2
  347. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +75 -71
  348. app-ng-runtime/components/dialogs/default/dialog-footer/dialog-footer.directive.d.ts +2 -2
  349. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +14 -9
  350. app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +4 -4
  351. app-ng-runtime/components/dialogs/default/esm2022/dialog-footer/dialog-footer.directive.mjs +12 -7
  352. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +49 -55
  353. app-ng-runtime/components/dialogs/default/esm2022/dialog.module.mjs +2 -2
  354. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +76 -72
  355. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  356. app-ng-runtime/components/dialogs/design-dialog/.npmignore +2 -0
  357. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +20 -14
  358. app-ng-runtime/components/dialogs/design-dialog/dialog.component.d.ts +2 -2
  359. app-ng-runtime/components/dialogs/design-dialog/esm2022/design-dialog.module.mjs +2 -2
  360. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +21 -15
  361. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +22 -16
  362. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  363. app-ng-runtime/components/dialogs/iframe-dialog/.npmignore +2 -0
  364. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +20 -14
  365. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +21 -15
  366. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.module.mjs +2 -2
  367. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +22 -16
  368. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  369. app-ng-runtime/components/dialogs/iframe-dialog/iframe-dialog.component.d.ts +2 -2
  370. app-ng-runtime/components/dialogs/login-dialog/.npmignore +2 -0
  371. app-ng-runtime/components/dialogs/login-dialog/bundles/index.umd.js +4 -4
  372. app-ng-runtime/components/dialogs/login-dialog/esm2022/login-dialog.directive.mjs +4 -4
  373. app-ng-runtime/components/dialogs/login-dialog/esm2022/login-dialog.module.mjs +2 -2
  374. app-ng-runtime/components/dialogs/login-dialog/fesm2022/index.mjs +4 -4
  375. app-ng-runtime/components/dialogs/login-dialog/fesm2022/index.mjs.map +1 -1
  376. app-ng-runtime/components/dialogs/partial-dialog/.npmignore +2 -0
  377. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +16 -10
  378. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +17 -11
  379. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.module.mjs +2 -2
  380. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +18 -12
  381. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  382. app-ng-runtime/components/dialogs/partial-dialog/partial-dialog.component.d.ts +2 -2
  383. app-ng-runtime/components/input/calendar/.npmignore +2 -0
  384. app-ng-runtime/components/input/calendar/bundles/index.umd.js +46 -38
  385. app-ng-runtime/components/input/calendar/calendar.component.d.ts +2 -2
  386. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +44 -35
  387. app-ng-runtime/components/input/calendar/esm2022/calendar.module.mjs +2 -2
  388. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +45 -36
  389. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  390. app-ng-runtime/components/input/chips/.npmignore +2 -0
  391. app-ng-runtime/components/input/chips/bundles/index.umd.js +69 -61
  392. app-ng-runtime/components/input/chips/chips.component.d.ts +3 -3
  393. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +67 -58
  394. app-ng-runtime/components/input/chips/esm2022/chips.module.mjs +2 -2
  395. app-ng-runtime/components/input/chips/fesm2022/index.mjs +67 -58
  396. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  397. app-ng-runtime/components/input/color-picker/.npmignore +2 -0
  398. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +25 -12
  399. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +2 -2
  400. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +26 -13
  401. app-ng-runtime/components/input/color-picker/esm2022/color-picker.module.mjs +2 -2
  402. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +26 -13
  403. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  404. app-ng-runtime/components/input/currency/.npmignore +2 -0
  405. app-ng-runtime/components/input/currency/bundles/index.umd.js +18 -11
  406. app-ng-runtime/components/input/currency/currency.component.d.ts +2 -2
  407. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +19 -12
  408. app-ng-runtime/components/input/currency/esm2022/currency.module.mjs +2 -2
  409. app-ng-runtime/components/input/currency/fesm2022/index.mjs +19 -12
  410. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  411. app-ng-runtime/components/input/default/.npmignore +2 -0
  412. app-ng-runtime/components/input/default/base-form.component.d.ts +3 -3
  413. app-ng-runtime/components/input/default/bundles/index.umd.js +583 -450
  414. app-ng-runtime/components/input/default/button/button.component.d.ts +2 -2
  415. app-ng-runtime/components/input/default/button-group/button-group.directive.d.ts +2 -2
  416. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +3 -2
  417. app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +2 -2
  418. app-ng-runtime/components/input/default/composite/composite.directive.d.ts +2 -2
  419. app-ng-runtime/components/input/default/dataset-aware-form.component.d.ts +4 -4
  420. app-ng-runtime/components/input/default/esm2022/base-form-custom.component.mjs +3 -3
  421. app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +17 -11
  422. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +32 -28
  423. app-ng-runtime/components/input/default/esm2022/button-group/button-group.directive.mjs +12 -7
  424. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +5 -4
  425. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +27 -17
  426. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +107 -103
  427. app-ng-runtime/components/input/default/esm2022/composite/composite.directive.mjs +12 -7
  428. app-ng-runtime/components/input/default/esm2022/dataset-aware-form.component.mjs +32 -26
  429. app-ng-runtime/components/input/default/esm2022/input.module.mjs +2 -2
  430. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +17 -10
  431. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +105 -102
  432. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +43 -32
  433. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +38 -31
  434. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +18 -11
  435. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +23 -12
  436. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +23 -12
  437. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +20 -11
  438. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +35 -24
  439. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +21 -12
  440. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +20 -11
  441. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +21 -12
  442. app-ng-runtime/components/input/default/fesm2022/index.mjs +586 -451
  443. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  444. app-ng-runtime/components/input/default/number/number.component.d.ts +2 -2
  445. app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +2 -2
  446. app-ng-runtime/components/input/default/select/select.component.d.ts +2 -2
  447. app-ng-runtime/components/input/default/switch/switch.component.d.ts +2 -2
  448. app-ng-runtime/components/input/default/text/base/base-input.d.ts +3 -2
  449. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +2 -2
  450. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +2 -2
  451. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +2 -2
  452. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -1
  453. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +2 -2
  454. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +2 -2
  455. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +2 -2
  456. app-ng-runtime/components/input/epoch/.npmignore +2 -0
  457. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +2 -2
  458. app-ng-runtime/components/input/epoch/bundles/index.umd.js +200 -163
  459. app-ng-runtime/components/input/epoch/date/date.component.d.ts +2 -2
  460. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -2
  461. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +44 -36
  462. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +29 -21
  463. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -2
  464. app-ng-runtime/components/input/epoch/esm2022/date/imaskUtil.mjs +1 -1
  465. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +42 -41
  466. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +49 -37
  467. app-ng-runtime/components/input/epoch/esm2022/epoch.module.mjs +2 -2
  468. app-ng-runtime/components/input/epoch/esm2022/picker/picker.component.mjs +7 -5
  469. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +35 -24
  470. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +197 -159
  471. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  472. app-ng-runtime/components/input/epoch/time/time.component.d.ts +2 -2
  473. app-ng-runtime/components/input/file-upload/.npmignore +2 -0
  474. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +133 -135
  475. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +131 -132
  476. app-ng-runtime/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
  477. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +132 -133
  478. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  479. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +2 -2
  480. app-ng-runtime/components/input/rating/.npmignore +2 -0
  481. app-ng-runtime/components/input/rating/bundles/index.umd.js +60 -51
  482. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +58 -48
  483. app-ng-runtime/components/input/rating/esm2022/rating.module.mjs +2 -2
  484. app-ng-runtime/components/input/rating/fesm2022/index.mjs +58 -48
  485. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  486. app-ng-runtime/components/input/rating/rating.component.d.ts +2 -2
  487. app-ng-runtime/components/input/slider/.npmignore +2 -0
  488. app-ng-runtime/components/input/slider/bundles/index.umd.js +23 -13
  489. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +24 -14
  490. app-ng-runtime/components/input/slider/esm2022/slider.module.mjs +2 -2
  491. app-ng-runtime/components/input/slider/fesm2022/index.mjs +24 -14
  492. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  493. app-ng-runtime/components/input/slider/slider.component.d.ts +2 -2
  494. app-ng-runtime/components/navigation/breadcrumb/.npmignore +2 -0
  495. app-ng-runtime/components/navigation/breadcrumb/breadcrumb.component.d.ts +2 -2
  496. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +33 -28
  497. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +34 -29
  498. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.module.mjs +2 -2
  499. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +35 -30
  500. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  501. app-ng-runtime/components/navigation/menu/.npmignore +2 -0
  502. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +160 -145
  503. app-ng-runtime/components/navigation/menu/esm2022/menu-adapator.component.mjs +13 -7
  504. app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +5 -4
  505. app-ng-runtime/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +27 -26
  506. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +44 -40
  507. app-ng-runtime/components/navigation/menu/esm2022/menu.module.mjs +4 -3
  508. app-ng-runtime/components/navigation/menu/esm2022/nav/nav-item/nav-item.directive.mjs +14 -8
  509. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +63 -63
  510. app-ng-runtime/components/navigation/menu/esm2022/nav/navigation-control.directive.mjs +3 -3
  511. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +160 -144
  512. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  513. app-ng-runtime/components/navigation/menu/menu-adapator.component.d.ts +1 -1
  514. app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +12 -1
  515. app-ng-runtime/components/navigation/menu/menu.component.d.ts +2 -2
  516. app-ng-runtime/components/navigation/menu/nav/nav-item/nav-item.directive.d.ts +3 -3
  517. app-ng-runtime/components/navigation/menu/nav/nav.component.d.ts +3 -4
  518. app-ng-runtime/components/navigation/navbar/.npmignore +2 -0
  519. app-ng-runtime/components/navigation/navbar/bundles/index.umd.js +29 -22
  520. app-ng-runtime/components/navigation/navbar/esm2022/navbar.component.mjs +30 -23
  521. app-ng-runtime/components/navigation/navbar/esm2022/navbar.module.mjs +2 -2
  522. app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs +31 -24
  523. app-ng-runtime/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  524. app-ng-runtime/components/navigation/navbar/navbar.component.d.ts +2 -2
  525. app-ng-runtime/components/navigation/popover/.npmignore +2 -0
  526. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +18 -11
  527. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +19 -12
  528. app-ng-runtime/components/navigation/popover/esm2022/popover.module.mjs +2 -2
  529. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +20 -13
  530. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  531. app-ng-runtime/components/navigation/popover/popover.component.d.ts +2 -2
  532. app-ng-runtime/components/page/default/.npmignore +2 -0
  533. app-ng-runtime/components/page/default/bundles/index.umd.js +63 -31
  534. app-ng-runtime/components/page/default/content/content.component.d.ts +2 -2
  535. app-ng-runtime/components/page/default/esm2022/content/content.component.mjs +13 -7
  536. app-ng-runtime/components/page/default/esm2022/layout.directive.mjs +12 -7
  537. app-ng-runtime/components/page/default/esm2022/page-content/page-content.component.mjs +13 -7
  538. app-ng-runtime/components/page/default/esm2022/page.directive.mjs +12 -7
  539. app-ng-runtime/components/page/default/esm2022/page.module.mjs +2 -2
  540. app-ng-runtime/components/page/default/esm2022/router-outlet.directive.mjs +12 -7
  541. app-ng-runtime/components/page/default/esm2022/spa-page.directive.mjs +12 -7
  542. app-ng-runtime/components/page/default/fesm2022/index.mjs +65 -33
  543. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  544. app-ng-runtime/components/page/default/layout.directive.d.ts +2 -2
  545. app-ng-runtime/components/page/default/page-content/page-content.component.d.ts +2 -2
  546. app-ng-runtime/components/page/default/page.directive.d.ts +2 -2
  547. app-ng-runtime/components/page/default/router-outlet.directive.d.ts +2 -2
  548. app-ng-runtime/components/page/default/spa-page.directive.d.ts +2 -2
  549. app-ng-runtime/components/page/footer/.npmignore +2 -0
  550. app-ng-runtime/components/page/footer/bundles/index.umd.js +11 -6
  551. app-ng-runtime/components/page/footer/esm2022/footer.directive.mjs +12 -7
  552. app-ng-runtime/components/page/footer/esm2022/footer.module.mjs +2 -2
  553. app-ng-runtime/components/page/footer/fesm2022/index.mjs +13 -8
  554. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  555. app-ng-runtime/components/page/footer/footer.directive.d.ts +2 -2
  556. app-ng-runtime/components/page/header/.npmignore +2 -0
  557. app-ng-runtime/components/page/header/bundles/index.umd.js +12 -6
  558. app-ng-runtime/components/page/header/esm2022/header.component.mjs +13 -7
  559. app-ng-runtime/components/page/header/esm2022/header.module.mjs +2 -2
  560. app-ng-runtime/components/page/header/fesm2022/index.mjs +14 -8
  561. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  562. app-ng-runtime/components/page/header/header.component.d.ts +2 -2
  563. app-ng-runtime/components/page/left-panel/.npmignore +2 -0
  564. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +12 -7
  565. app-ng-runtime/components/page/left-panel/esm2022/left-panel.animator.mjs +1 -1
  566. app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +13 -8
  567. app-ng-runtime/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
  568. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +14 -9
  569. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  570. app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
  571. app-ng-runtime/components/page/right-panel/.npmignore +2 -0
  572. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +11 -6
  573. app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +12 -7
  574. app-ng-runtime/components/page/right-panel/esm2022/right-panel.module.mjs +2 -2
  575. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +13 -8
  576. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  577. app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -2
  578. app-ng-runtime/components/page/top-nav/.npmignore +2 -0
  579. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +11 -6
  580. app-ng-runtime/components/page/top-nav/esm2022/top-nav.directive.mjs +12 -7
  581. app-ng-runtime/components/page/top-nav/esm2022/top-nav.module.mjs +2 -2
  582. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +13 -8
  583. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  584. app-ng-runtime/components/page/top-nav/top-nav.directive.d.ts +2 -2
  585. app-ng-runtime/components/prefab/.npmignore +2 -0
  586. app-ng-runtime/components/prefab/bundles/index.umd.js +28 -18
  587. app-ng-runtime/components/prefab/esm2022/prefab-container/prefab-container.directive.mjs +14 -8
  588. app-ng-runtime/components/prefab/esm2022/prefab.directive.mjs +15 -9
  589. app-ng-runtime/components/prefab/esm2022/prefab.module.mjs +2 -2
  590. app-ng-runtime/components/prefab/fesm2022/index.mjs +26 -15
  591. app-ng-runtime/components/prefab/fesm2022/index.mjs.map +1 -1
  592. app-ng-runtime/components/prefab/prefab-container/prefab-container.directive.d.ts +2 -2
  593. app-ng-runtime/components/prefab/prefab.directive.d.ts +2 -2
  594. app-ng-runtime/core/.npmignore +2 -0
  595. app-ng-runtime/core/bundles/index.umd.js +158 -146
  596. app-ng-runtime/core/esm2022/core.module.mjs +2 -2
  597. app-ng-runtime/core/esm2022/public_api.mjs +3 -2
  598. app-ng-runtime/core/esm2022/services/constant.service.mjs +2 -2
  599. app-ng-runtime/core/esm2022/services/custom-icons-loader.service.mjs +26 -0
  600. app-ng-runtime/core/esm2022/services/field-type.service.mjs +5 -4
  601. app-ng-runtime/core/esm2022/services/field-widget.service.mjs +5 -4
  602. app-ng-runtime/core/esm2022/services/pagination.service.mjs +8 -7
  603. app-ng-runtime/core/esm2022/services/script-loader.service.mjs +3 -3
  604. app-ng-runtime/core/esm2022/services/state-persistence.service.mjs +18 -17
  605. app-ng-runtime/core/esm2022/services/user-custom-pipe-manager.service.mjs +2 -2
  606. app-ng-runtime/core/esm2022/services/utils.service.mjs +5 -4
  607. app-ng-runtime/core/esm2022/services/viewport.service.mjs +5 -4
  608. app-ng-runtime/core/esm2022/utils/build-utils.mjs +5 -4
  609. app-ng-runtime/core/esm2022/utils/dom.mjs +1 -1
  610. app-ng-runtime/core/esm2022/utils/event-notifier.mjs +1 -1
  611. app-ng-runtime/core/esm2022/utils/expression-parser.mjs +6 -5
  612. app-ng-runtime/core/esm2022/utils/id-generator.mjs +1 -1
  613. app-ng-runtime/core/esm2022/utils/lru-cache.mjs +3 -2
  614. app-ng-runtime/core/esm2022/utils/utils.mjs +79 -82
  615. app-ng-runtime/core/esm2022/utils/watcher.mjs +9 -7
  616. app-ng-runtime/core/esm2022/utils/wm-project-properties.mjs +1 -1
  617. app-ng-runtime/core/fesm2022/index.mjs +158 -142
  618. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  619. app-ng-runtime/core/public_api.d.ts +2 -1
  620. app-ng-runtime/core/services/custom-icons-loader.service.d.ts +7 -0
  621. app-ng-runtime/core/services/pagination.service.d.ts +1 -1
  622. app-ng-runtime/core/utils/utils.d.ts +5 -9
  623. app-ng-runtime/http/.npmignore +2 -0
  624. app-ng-runtime/http/bundles/index.umd.js +10 -10
  625. app-ng-runtime/http/esm2022/http-service.module.mjs +2 -2
  626. app-ng-runtime/http/esm2022/http.service.mjs +7 -6
  627. app-ng-runtime/http/esm2022/wm-http-request.mjs +1 -1
  628. app-ng-runtime/http/esm2022/wm-http-response.mjs +1 -1
  629. app-ng-runtime/http/fesm2022/index.mjs +7 -6
  630. app-ng-runtime/http/fesm2022/index.mjs.map +1 -1
  631. app-ng-runtime/locales/angular/global/af-na.js +4 -4
  632. app-ng-runtime/locales/angular/global/af.js +4 -4
  633. app-ng-runtime/locales/angular/global/agq.js +4 -4
  634. app-ng-runtime/locales/angular/global/ak.js +4 -4
  635. app-ng-runtime/locales/angular/global/am.js +4 -4
  636. app-ng-runtime/locales/angular/global/ar-ae.js +4 -4
  637. app-ng-runtime/locales/angular/global/ar-bh.js +4 -4
  638. app-ng-runtime/locales/angular/global/ar-dj.js +4 -4
  639. app-ng-runtime/locales/angular/global/ar-dz.js +4 -4
  640. app-ng-runtime/locales/angular/global/ar-eg.js +4 -4
  641. app-ng-runtime/locales/angular/global/ar-eh.js +4 -4
  642. app-ng-runtime/locales/angular/global/ar-er.js +4 -4
  643. app-ng-runtime/locales/angular/global/ar-il.js +4 -4
  644. app-ng-runtime/locales/angular/global/ar-iq.js +4 -4
  645. app-ng-runtime/locales/angular/global/ar-jo.js +4 -4
  646. app-ng-runtime/locales/angular/global/ar-km.js +4 -4
  647. app-ng-runtime/locales/angular/global/ar-kw.js +4 -4
  648. app-ng-runtime/locales/angular/global/ar-lb.js +4 -4
  649. app-ng-runtime/locales/angular/global/ar-ly.js +4 -4
  650. app-ng-runtime/locales/angular/global/ar-ma.js +4 -4
  651. app-ng-runtime/locales/angular/global/ar-mr.js +4 -4
  652. app-ng-runtime/locales/angular/global/ar-om.js +4 -4
  653. app-ng-runtime/locales/angular/global/ar-ps.js +4 -4
  654. app-ng-runtime/locales/angular/global/ar-qa.js +4 -4
  655. app-ng-runtime/locales/angular/global/ar-sa.js +4 -4
  656. app-ng-runtime/locales/angular/global/ar-sd.js +4 -4
  657. app-ng-runtime/locales/angular/global/ar-so.js +4 -4
  658. app-ng-runtime/locales/angular/global/ar-ss.js +4 -4
  659. app-ng-runtime/locales/angular/global/ar-sy.js +4 -4
  660. app-ng-runtime/locales/angular/global/ar-td.js +4 -4
  661. app-ng-runtime/locales/angular/global/ar-tn.js +4 -4
  662. app-ng-runtime/locales/angular/global/ar-ye.js +4 -4
  663. app-ng-runtime/locales/angular/global/ar.js +4 -4
  664. app-ng-runtime/locales/angular/global/as.js +4 -4
  665. app-ng-runtime/locales/angular/global/asa.js +4 -4
  666. app-ng-runtime/locales/angular/global/ast.js +4 -4
  667. app-ng-runtime/locales/angular/global/az-cyrl.js +4 -4
  668. app-ng-runtime/locales/angular/global/az-latn.js +4 -4
  669. app-ng-runtime/locales/angular/global/az.js +4 -4
  670. app-ng-runtime/locales/angular/global/bas.js +4 -4
  671. app-ng-runtime/locales/angular/global/be-tarask.js +4 -4
  672. app-ng-runtime/locales/angular/global/be.js +4 -4
  673. app-ng-runtime/locales/angular/global/bem.js +4 -4
  674. app-ng-runtime/locales/angular/global/bez.js +4 -4
  675. app-ng-runtime/locales/angular/global/bg.js +4 -4
  676. app-ng-runtime/locales/angular/global/bm.js +4 -4
  677. app-ng-runtime/locales/angular/global/bn-in.js +4 -4
  678. app-ng-runtime/locales/angular/global/bn.js +4 -4
  679. app-ng-runtime/locales/angular/global/bo-in.js +4 -4
  680. app-ng-runtime/locales/angular/global/bo.js +4 -4
  681. app-ng-runtime/locales/angular/global/br.js +4 -4
  682. app-ng-runtime/locales/angular/global/brx.js +4 -4
  683. app-ng-runtime/locales/angular/global/bs-cyrl.js +4 -4
  684. app-ng-runtime/locales/angular/global/bs-latn.js +4 -4
  685. app-ng-runtime/locales/angular/global/bs.js +4 -4
  686. app-ng-runtime/locales/angular/global/ca-ad.js +4 -4
  687. app-ng-runtime/locales/angular/global/ca-es-valencia.js +4 -4
  688. app-ng-runtime/locales/angular/global/ca-fr.js +4 -4
  689. app-ng-runtime/locales/angular/global/ca-it.js +4 -4
  690. app-ng-runtime/locales/angular/global/ca.js +4 -4
  691. app-ng-runtime/locales/angular/global/ccp-in.js +4 -4
  692. app-ng-runtime/locales/angular/global/ccp.js +4 -4
  693. app-ng-runtime/locales/angular/global/ce.js +4 -4
  694. app-ng-runtime/locales/angular/global/ceb.js +4 -4
  695. app-ng-runtime/locales/angular/global/cgg.js +4 -4
  696. app-ng-runtime/locales/angular/global/chr.js +4 -4
  697. app-ng-runtime/locales/angular/global/ckb-ir.js +4 -4
  698. app-ng-runtime/locales/angular/global/ckb.js +4 -4
  699. app-ng-runtime/locales/angular/global/cs.js +4 -4
  700. app-ng-runtime/locales/angular/global/cy.js +4 -4
  701. app-ng-runtime/locales/angular/global/da-gl.js +4 -4
  702. app-ng-runtime/locales/angular/global/da.js +4 -4
  703. app-ng-runtime/locales/angular/global/dav.js +4 -4
  704. app-ng-runtime/locales/angular/global/de-at.js +4 -4
  705. app-ng-runtime/locales/angular/global/de-be.js +4 -4
  706. app-ng-runtime/locales/angular/global/de-ch.js +4 -4
  707. app-ng-runtime/locales/angular/global/de-it.js +4 -4
  708. app-ng-runtime/locales/angular/global/de-li.js +4 -4
  709. app-ng-runtime/locales/angular/global/de-lu.js +4 -4
  710. app-ng-runtime/locales/angular/global/de.js +4 -4
  711. app-ng-runtime/locales/angular/global/dje.js +4 -4
  712. app-ng-runtime/locales/angular/global/doi.js +4 -4
  713. app-ng-runtime/locales/angular/global/dsb.js +4 -4
  714. app-ng-runtime/locales/angular/global/dua.js +4 -4
  715. app-ng-runtime/locales/angular/global/dyo.js +4 -4
  716. app-ng-runtime/locales/angular/global/dz.js +4 -4
  717. app-ng-runtime/locales/angular/global/ebu.js +4 -4
  718. app-ng-runtime/locales/angular/global/ee-tg.js +4 -4
  719. app-ng-runtime/locales/angular/global/ee.js +4 -4
  720. app-ng-runtime/locales/angular/global/el-cy.js +4 -4
  721. app-ng-runtime/locales/angular/global/el.js +4 -4
  722. app-ng-runtime/locales/angular/global/en-001.js +4 -4
  723. app-ng-runtime/locales/angular/global/en-150.js +4 -4
  724. app-ng-runtime/locales/angular/global/en-ae.js +4 -4
  725. app-ng-runtime/locales/angular/global/en-ag.js +4 -4
  726. app-ng-runtime/locales/angular/global/en-ai.js +4 -4
  727. app-ng-runtime/locales/angular/global/en-as.js +4 -4
  728. app-ng-runtime/locales/angular/global/en-at.js +4 -4
  729. app-ng-runtime/locales/angular/global/en-au.js +4 -4
  730. app-ng-runtime/locales/angular/global/en-bb.js +4 -4
  731. app-ng-runtime/locales/angular/global/en-be.js +4 -4
  732. app-ng-runtime/locales/angular/global/en-bi.js +4 -4
  733. app-ng-runtime/locales/angular/global/en-bm.js +4 -4
  734. app-ng-runtime/locales/angular/global/en-bs.js +4 -4
  735. app-ng-runtime/locales/angular/global/en-bw.js +4 -4
  736. app-ng-runtime/locales/angular/global/en-bz.js +4 -4
  737. app-ng-runtime/locales/angular/global/en-ca.js +4 -4
  738. app-ng-runtime/locales/angular/global/en-cc.js +4 -4
  739. app-ng-runtime/locales/angular/global/en-ch.js +4 -4
  740. app-ng-runtime/locales/angular/global/en-ck.js +4 -4
  741. app-ng-runtime/locales/angular/global/en-cm.js +4 -4
  742. app-ng-runtime/locales/angular/global/en-cx.js +4 -4
  743. app-ng-runtime/locales/angular/global/en-cy.js +4 -4
  744. app-ng-runtime/locales/angular/global/en-de.js +4 -4
  745. app-ng-runtime/locales/angular/global/en-dg.js +4 -4
  746. app-ng-runtime/locales/angular/global/en-dk.js +4 -4
  747. app-ng-runtime/locales/angular/global/en-dm.js +4 -4
  748. app-ng-runtime/locales/angular/global/en-er.js +4 -4
  749. app-ng-runtime/locales/angular/global/en-fi.js +4 -4
  750. app-ng-runtime/locales/angular/global/en-fj.js +4 -4
  751. app-ng-runtime/locales/angular/global/en-fk.js +4 -4
  752. app-ng-runtime/locales/angular/global/en-fm.js +4 -4
  753. app-ng-runtime/locales/angular/global/en-gb.js +4 -4
  754. app-ng-runtime/locales/angular/global/en-gd.js +4 -4
  755. app-ng-runtime/locales/angular/global/en-gg.js +4 -4
  756. app-ng-runtime/locales/angular/global/en-gh.js +4 -4
  757. app-ng-runtime/locales/angular/global/en-gi.js +4 -4
  758. app-ng-runtime/locales/angular/global/en-gm.js +4 -4
  759. app-ng-runtime/locales/angular/global/en-gu.js +4 -4
  760. app-ng-runtime/locales/angular/global/en-gy.js +4 -4
  761. app-ng-runtime/locales/angular/global/en-hk.js +4 -4
  762. app-ng-runtime/locales/angular/global/en-ie.js +4 -4
  763. app-ng-runtime/locales/angular/global/en-il.js +4 -4
  764. app-ng-runtime/locales/angular/global/en-im.js +4 -4
  765. app-ng-runtime/locales/angular/global/en-in.js +4 -4
  766. app-ng-runtime/locales/angular/global/en-io.js +4 -4
  767. app-ng-runtime/locales/angular/global/en-je.js +4 -4
  768. app-ng-runtime/locales/angular/global/en-jm.js +4 -4
  769. app-ng-runtime/locales/angular/global/en-ke.js +4 -4
  770. app-ng-runtime/locales/angular/global/en-ki.js +4 -4
  771. app-ng-runtime/locales/angular/global/en-kn.js +4 -4
  772. app-ng-runtime/locales/angular/global/en-ky.js +4 -4
  773. app-ng-runtime/locales/angular/global/en-lc.js +4 -4
  774. app-ng-runtime/locales/angular/global/en-lr.js +4 -4
  775. app-ng-runtime/locales/angular/global/en-ls.js +4 -4
  776. app-ng-runtime/locales/angular/global/en-mg.js +4 -4
  777. app-ng-runtime/locales/angular/global/en-mh.js +4 -4
  778. app-ng-runtime/locales/angular/global/en-mo.js +4 -4
  779. app-ng-runtime/locales/angular/global/en-mp.js +4 -4
  780. app-ng-runtime/locales/angular/global/en-ms.js +4 -4
  781. app-ng-runtime/locales/angular/global/en-mt.js +4 -4
  782. app-ng-runtime/locales/angular/global/en-mu.js +4 -4
  783. app-ng-runtime/locales/angular/global/en-mv.js +4 -4
  784. app-ng-runtime/locales/angular/global/en-mw.js +4 -4
  785. app-ng-runtime/locales/angular/global/en-my.js +4 -4
  786. app-ng-runtime/locales/angular/global/en-na.js +4 -4
  787. app-ng-runtime/locales/angular/global/en-nf.js +4 -4
  788. app-ng-runtime/locales/angular/global/en-ng.js +4 -4
  789. app-ng-runtime/locales/angular/global/en-nl.js +4 -4
  790. app-ng-runtime/locales/angular/global/en-nr.js +4 -4
  791. app-ng-runtime/locales/angular/global/en-nu.js +4 -4
  792. app-ng-runtime/locales/angular/global/en-nz.js +4 -4
  793. app-ng-runtime/locales/angular/global/en-pg.js +4 -4
  794. app-ng-runtime/locales/angular/global/en-ph.js +4 -4
  795. app-ng-runtime/locales/angular/global/en-pk.js +4 -4
  796. app-ng-runtime/locales/angular/global/en-pn.js +4 -4
  797. app-ng-runtime/locales/angular/global/en-pr.js +4 -4
  798. app-ng-runtime/locales/angular/global/en-pw.js +4 -4
  799. app-ng-runtime/locales/angular/global/en-rw.js +4 -4
  800. app-ng-runtime/locales/angular/global/en-sb.js +4 -4
  801. app-ng-runtime/locales/angular/global/en-sc.js +4 -4
  802. app-ng-runtime/locales/angular/global/en-sd.js +4 -4
  803. app-ng-runtime/locales/angular/global/en-se.js +4 -4
  804. app-ng-runtime/locales/angular/global/en-sg.js +4 -4
  805. app-ng-runtime/locales/angular/global/en-sh.js +4 -4
  806. app-ng-runtime/locales/angular/global/en-si.js +4 -4
  807. app-ng-runtime/locales/angular/global/en-sl.js +4 -4
  808. app-ng-runtime/locales/angular/global/en-ss.js +4 -4
  809. app-ng-runtime/locales/angular/global/en-sx.js +4 -4
  810. app-ng-runtime/locales/angular/global/en-sz.js +4 -4
  811. app-ng-runtime/locales/angular/global/en-tc.js +4 -4
  812. app-ng-runtime/locales/angular/global/en-tk.js +4 -4
  813. app-ng-runtime/locales/angular/global/en-to.js +4 -4
  814. app-ng-runtime/locales/angular/global/en-tt.js +4 -4
  815. app-ng-runtime/locales/angular/global/en-tv.js +4 -4
  816. app-ng-runtime/locales/angular/global/en-tz.js +4 -4
  817. app-ng-runtime/locales/angular/global/en-ug.js +4 -4
  818. app-ng-runtime/locales/angular/global/en-um.js +4 -4
  819. app-ng-runtime/locales/angular/global/en-vc.js +4 -4
  820. app-ng-runtime/locales/angular/global/en-vg.js +4 -4
  821. app-ng-runtime/locales/angular/global/en-vi.js +4 -4
  822. app-ng-runtime/locales/angular/global/en-vu.js +4 -4
  823. app-ng-runtime/locales/angular/global/en-ws.js +4 -4
  824. app-ng-runtime/locales/angular/global/en-za.js +4 -4
  825. app-ng-runtime/locales/angular/global/en-zm.js +4 -4
  826. app-ng-runtime/locales/angular/global/en-zw.js +4 -4
  827. app-ng-runtime/locales/angular/global/en.js +4 -4
  828. app-ng-runtime/locales/angular/global/eo.js +4 -4
  829. app-ng-runtime/locales/angular/global/es-419.js +4 -4
  830. app-ng-runtime/locales/angular/global/es-ar.js +4 -4
  831. app-ng-runtime/locales/angular/global/es-bo.js +4 -4
  832. app-ng-runtime/locales/angular/global/es-br.js +4 -4
  833. app-ng-runtime/locales/angular/global/es-bz.js +4 -4
  834. app-ng-runtime/locales/angular/global/es-cl.js +4 -4
  835. app-ng-runtime/locales/angular/global/es-co.js +4 -4
  836. app-ng-runtime/locales/angular/global/es-cr.js +4 -4
  837. app-ng-runtime/locales/angular/global/es-cu.js +4 -4
  838. app-ng-runtime/locales/angular/global/es-do.js +4 -4
  839. app-ng-runtime/locales/angular/global/es-ea.js +4 -4
  840. app-ng-runtime/locales/angular/global/es-ec.js +4 -4
  841. app-ng-runtime/locales/angular/global/es-gq.js +4 -4
  842. app-ng-runtime/locales/angular/global/es-gt.js +4 -4
  843. app-ng-runtime/locales/angular/global/es-hn.js +4 -4
  844. app-ng-runtime/locales/angular/global/es-ic.js +4 -4
  845. app-ng-runtime/locales/angular/global/es-mx.js +4 -4
  846. app-ng-runtime/locales/angular/global/es-ni.js +4 -4
  847. app-ng-runtime/locales/angular/global/es-pa.js +4 -4
  848. app-ng-runtime/locales/angular/global/es-pe.js +4 -4
  849. app-ng-runtime/locales/angular/global/es-ph.js +4 -4
  850. app-ng-runtime/locales/angular/global/es-pr.js +4 -4
  851. app-ng-runtime/locales/angular/global/es-py.js +4 -4
  852. app-ng-runtime/locales/angular/global/es-sv.js +4 -4
  853. app-ng-runtime/locales/angular/global/es-us.js +4 -4
  854. app-ng-runtime/locales/angular/global/es-uy.js +4 -4
  855. app-ng-runtime/locales/angular/global/es-ve.js +4 -4
  856. app-ng-runtime/locales/angular/global/es.js +4 -4
  857. app-ng-runtime/locales/angular/global/et.js +4 -4
  858. app-ng-runtime/locales/angular/global/eu.js +4 -4
  859. app-ng-runtime/locales/angular/global/ewo.js +4 -4
  860. app-ng-runtime/locales/angular/global/fa-af.js +4 -4
  861. app-ng-runtime/locales/angular/global/fa.js +4 -4
  862. app-ng-runtime/locales/angular/global/ff-adlm-bf.js +4 -4
  863. app-ng-runtime/locales/angular/global/ff-adlm-cm.js +4 -4
  864. app-ng-runtime/locales/angular/global/ff-adlm-gh.js +4 -4
  865. app-ng-runtime/locales/angular/global/ff-adlm-gm.js +4 -4
  866. app-ng-runtime/locales/angular/global/ff-adlm-gw.js +4 -4
  867. app-ng-runtime/locales/angular/global/ff-adlm-lr.js +4 -4
  868. app-ng-runtime/locales/angular/global/ff-adlm-mr.js +4 -4
  869. app-ng-runtime/locales/angular/global/ff-adlm-ne.js +4 -4
  870. app-ng-runtime/locales/angular/global/ff-adlm-ng.js +4 -4
  871. app-ng-runtime/locales/angular/global/ff-adlm-sl.js +4 -4
  872. app-ng-runtime/locales/angular/global/ff-adlm-sn.js +4 -4
  873. app-ng-runtime/locales/angular/global/ff-adlm.js +4 -4
  874. app-ng-runtime/locales/angular/global/ff-cm.js +58 -44
  875. app-ng-runtime/locales/angular/global/ff-gn.js +58 -44
  876. app-ng-runtime/locales/angular/global/ff-latn-bf.js +4 -4
  877. app-ng-runtime/locales/angular/global/ff-latn-cm.js +4 -4
  878. app-ng-runtime/locales/angular/global/ff-latn-gh.js +4 -4
  879. app-ng-runtime/locales/angular/global/ff-latn-gm.js +4 -4
  880. app-ng-runtime/locales/angular/global/ff-latn-gn.js +4 -4
  881. app-ng-runtime/locales/angular/global/ff-latn-gw.js +4 -4
  882. app-ng-runtime/locales/angular/global/ff-latn-lr.js +4 -4
  883. app-ng-runtime/locales/angular/global/ff-latn-mr.js +4 -4
  884. app-ng-runtime/locales/angular/global/ff-latn-ne.js +4 -4
  885. app-ng-runtime/locales/angular/global/ff-latn-ng.js +4 -4
  886. app-ng-runtime/locales/angular/global/ff-latn-sl.js +4 -4
  887. app-ng-runtime/locales/angular/global/ff-latn.js +4 -4
  888. app-ng-runtime/locales/angular/global/ff-mr.js +58 -44
  889. app-ng-runtime/locales/angular/global/ff.js +4 -4
  890. app-ng-runtime/locales/angular/global/fi.js +4 -4
  891. app-ng-runtime/locales/angular/global/fil.js +4 -4
  892. app-ng-runtime/locales/angular/global/fo-dk.js +4 -4
  893. app-ng-runtime/locales/angular/global/fo.js +4 -4
  894. app-ng-runtime/locales/angular/global/fr-be.js +4 -4
  895. app-ng-runtime/locales/angular/global/fr-bf.js +4 -4
  896. app-ng-runtime/locales/angular/global/fr-bi.js +4 -4
  897. app-ng-runtime/locales/angular/global/fr-bj.js +4 -4
  898. app-ng-runtime/locales/angular/global/fr-bl.js +4 -4
  899. app-ng-runtime/locales/angular/global/fr-ca.js +4 -4
  900. app-ng-runtime/locales/angular/global/fr-cd.js +4 -4
  901. app-ng-runtime/locales/angular/global/fr-cf.js +4 -4
  902. app-ng-runtime/locales/angular/global/fr-cg.js +4 -4
  903. app-ng-runtime/locales/angular/global/fr-ch.js +4 -4
  904. app-ng-runtime/locales/angular/global/fr-ci.js +4 -4
  905. app-ng-runtime/locales/angular/global/fr-cm.js +4 -4
  906. app-ng-runtime/locales/angular/global/fr-dj.js +4 -4
  907. app-ng-runtime/locales/angular/global/fr-dz.js +4 -4
  908. app-ng-runtime/locales/angular/global/fr-ga.js +4 -4
  909. app-ng-runtime/locales/angular/global/fr-gf.js +4 -4
  910. app-ng-runtime/locales/angular/global/fr-gn.js +4 -4
  911. app-ng-runtime/locales/angular/global/fr-gp.js +4 -4
  912. app-ng-runtime/locales/angular/global/fr-gq.js +4 -4
  913. app-ng-runtime/locales/angular/global/fr-ht.js +4 -4
  914. app-ng-runtime/locales/angular/global/fr-km.js +4 -4
  915. app-ng-runtime/locales/angular/global/fr-lu.js +4 -4
  916. app-ng-runtime/locales/angular/global/fr-ma.js +4 -4
  917. app-ng-runtime/locales/angular/global/fr-mc.js +4 -4
  918. app-ng-runtime/locales/angular/global/fr-mf.js +4 -4
  919. app-ng-runtime/locales/angular/global/fr-mg.js +4 -4
  920. app-ng-runtime/locales/angular/global/fr-ml.js +4 -4
  921. app-ng-runtime/locales/angular/global/fr-mq.js +4 -4
  922. app-ng-runtime/locales/angular/global/fr-mr.js +4 -4
  923. app-ng-runtime/locales/angular/global/fr-mu.js +4 -4
  924. app-ng-runtime/locales/angular/global/fr-nc.js +4 -4
  925. app-ng-runtime/locales/angular/global/fr-ne.js +4 -4
  926. app-ng-runtime/locales/angular/global/fr-pf.js +4 -4
  927. app-ng-runtime/locales/angular/global/fr-pm.js +4 -4
  928. app-ng-runtime/locales/angular/global/fr-re.js +4 -4
  929. app-ng-runtime/locales/angular/global/fr-rw.js +4 -4
  930. app-ng-runtime/locales/angular/global/fr-sc.js +4 -4
  931. app-ng-runtime/locales/angular/global/fr-sn.js +4 -4
  932. app-ng-runtime/locales/angular/global/fr-sy.js +4 -4
  933. app-ng-runtime/locales/angular/global/fr-td.js +4 -4
  934. app-ng-runtime/locales/angular/global/fr-tg.js +4 -4
  935. app-ng-runtime/locales/angular/global/fr-tn.js +4 -4
  936. app-ng-runtime/locales/angular/global/fr-vu.js +4 -4
  937. app-ng-runtime/locales/angular/global/fr-wf.js +4 -4
  938. app-ng-runtime/locales/angular/global/fr-yt.js +4 -4
  939. app-ng-runtime/locales/angular/global/fr.js +4 -4
  940. app-ng-runtime/locales/angular/global/fur.js +4 -4
  941. app-ng-runtime/locales/angular/global/fy.js +4 -4
  942. app-ng-runtime/locales/angular/global/ga-gb.js +4 -4
  943. app-ng-runtime/locales/angular/global/ga.js +4 -4
  944. app-ng-runtime/locales/angular/global/gd.js +4 -4
  945. app-ng-runtime/locales/angular/global/gl.js +4 -4
  946. app-ng-runtime/locales/angular/global/gsw-fr.js +4 -4
  947. app-ng-runtime/locales/angular/global/gsw-li.js +4 -4
  948. app-ng-runtime/locales/angular/global/gsw.js +4 -4
  949. app-ng-runtime/locales/angular/global/gu.js +4 -4
  950. app-ng-runtime/locales/angular/global/guz.js +4 -4
  951. app-ng-runtime/locales/angular/global/gv.js +4 -4
  952. app-ng-runtime/locales/angular/global/ha-gh.js +4 -4
  953. app-ng-runtime/locales/angular/global/ha-ne.js +4 -4
  954. app-ng-runtime/locales/angular/global/ha.js +4 -4
  955. app-ng-runtime/locales/angular/global/haw.js +4 -4
  956. app-ng-runtime/locales/angular/global/he.js +4 -4
  957. app-ng-runtime/locales/angular/global/hi-latn.js +4 -4
  958. app-ng-runtime/locales/angular/global/hi.js +4 -4
  959. app-ng-runtime/locales/angular/global/hr-ba.js +4 -4
  960. app-ng-runtime/locales/angular/global/hr.js +4 -4
  961. app-ng-runtime/locales/angular/global/hsb.js +4 -4
  962. app-ng-runtime/locales/angular/global/hu.js +4 -4
  963. app-ng-runtime/locales/angular/global/hy.js +4 -4
  964. app-ng-runtime/locales/angular/global/ia.js +4 -4
  965. app-ng-runtime/locales/angular/global/id.js +4 -4
  966. app-ng-runtime/locales/angular/global/ig.js +4 -4
  967. app-ng-runtime/locales/angular/global/ii.js +4 -4
  968. app-ng-runtime/locales/angular/global/is.js +4 -4
  969. app-ng-runtime/locales/angular/global/it-ch.js +4 -4
  970. app-ng-runtime/locales/angular/global/it-sm.js +4 -4
  971. app-ng-runtime/locales/angular/global/it-va.js +4 -4
  972. app-ng-runtime/locales/angular/global/it.js +4 -4
  973. app-ng-runtime/locales/angular/global/ja.js +4 -4
  974. app-ng-runtime/locales/angular/global/jgo.js +4 -4
  975. app-ng-runtime/locales/angular/global/jmc.js +4 -4
  976. app-ng-runtime/locales/angular/global/jv.js +4 -4
  977. app-ng-runtime/locales/angular/global/ka.js +4 -4
  978. app-ng-runtime/locales/angular/global/kab.js +4 -4
  979. app-ng-runtime/locales/angular/global/kam.js +4 -4
  980. app-ng-runtime/locales/angular/global/kde.js +4 -4
  981. app-ng-runtime/locales/angular/global/kea.js +4 -4
  982. app-ng-runtime/locales/angular/global/kgp.js +4 -4
  983. app-ng-runtime/locales/angular/global/khq.js +4 -4
  984. app-ng-runtime/locales/angular/global/ki.js +4 -4
  985. app-ng-runtime/locales/angular/global/kk.js +4 -4
  986. app-ng-runtime/locales/angular/global/kkj.js +4 -4
  987. app-ng-runtime/locales/angular/global/kl.js +4 -4
  988. app-ng-runtime/locales/angular/global/kln.js +4 -4
  989. app-ng-runtime/locales/angular/global/km.js +4 -4
  990. app-ng-runtime/locales/angular/global/kn.js +4 -4
  991. app-ng-runtime/locales/angular/global/ko-kp.js +4 -4
  992. app-ng-runtime/locales/angular/global/ko.js +4 -4
  993. app-ng-runtime/locales/angular/global/kok.js +4 -4
  994. app-ng-runtime/locales/angular/global/ks-arab.js +4 -4
  995. app-ng-runtime/locales/angular/global/ks-deva.js +4 -4
  996. app-ng-runtime/locales/angular/global/ks.js +4 -4
  997. app-ng-runtime/locales/angular/global/ksb.js +4 -4
  998. app-ng-runtime/locales/angular/global/ksf.js +4 -4
  999. app-ng-runtime/locales/angular/global/ksh.js +4 -4
  1000. app-ng-runtime/locales/angular/global/ku.js +4 -4
  1001. app-ng-runtime/locales/angular/global/kw.js +4 -4
  1002. app-ng-runtime/locales/angular/global/ky.js +4 -4
  1003. app-ng-runtime/locales/angular/global/lag.js +4 -4
  1004. app-ng-runtime/locales/angular/global/lb.js +4 -4
  1005. app-ng-runtime/locales/angular/global/lg.js +4 -4
  1006. app-ng-runtime/locales/angular/global/lkt.js +4 -4
  1007. app-ng-runtime/locales/angular/global/ln-ao.js +4 -4
  1008. app-ng-runtime/locales/angular/global/ln-cf.js +4 -4
  1009. app-ng-runtime/locales/angular/global/ln-cg.js +4 -4
  1010. app-ng-runtime/locales/angular/global/ln.js +4 -4
  1011. app-ng-runtime/locales/angular/global/lo.js +4 -4
  1012. app-ng-runtime/locales/angular/global/lrc-iq.js +4 -4
  1013. app-ng-runtime/locales/angular/global/lrc.js +4 -4
  1014. app-ng-runtime/locales/angular/global/lt.js +4 -4
  1015. app-ng-runtime/locales/angular/global/lu.js +4 -4
  1016. app-ng-runtime/locales/angular/global/luo.js +4 -4
  1017. app-ng-runtime/locales/angular/global/luy.js +4 -4
  1018. app-ng-runtime/locales/angular/global/lv.js +4 -4
  1019. app-ng-runtime/locales/angular/global/mai.js +4 -4
  1020. app-ng-runtime/locales/angular/global/mas-tz.js +4 -4
  1021. app-ng-runtime/locales/angular/global/mas.js +4 -4
  1022. app-ng-runtime/locales/angular/global/mer.js +4 -4
  1023. app-ng-runtime/locales/angular/global/mfe.js +4 -4
  1024. app-ng-runtime/locales/angular/global/mg.js +4 -4
  1025. app-ng-runtime/locales/angular/global/mgh.js +4 -4
  1026. app-ng-runtime/locales/angular/global/mgo.js +4 -4
  1027. app-ng-runtime/locales/angular/global/mi.js +4 -4
  1028. app-ng-runtime/locales/angular/global/mk.js +4 -4
  1029. app-ng-runtime/locales/angular/global/ml.js +4 -4
  1030. app-ng-runtime/locales/angular/global/mn.js +4 -4
  1031. app-ng-runtime/locales/angular/global/mni-beng.js +4 -4
  1032. app-ng-runtime/locales/angular/global/mni.js +4 -4
  1033. app-ng-runtime/locales/angular/global/mr.js +4 -4
  1034. app-ng-runtime/locales/angular/global/ms-bn.js +4 -4
  1035. app-ng-runtime/locales/angular/global/ms-id.js +4 -4
  1036. app-ng-runtime/locales/angular/global/ms-sg.js +4 -4
  1037. app-ng-runtime/locales/angular/global/ms.js +4 -4
  1038. app-ng-runtime/locales/angular/global/mt.js +4 -4
  1039. app-ng-runtime/locales/angular/global/mua.js +4 -4
  1040. app-ng-runtime/locales/angular/global/my.js +4 -4
  1041. app-ng-runtime/locales/angular/global/mzn.js +4 -4
  1042. app-ng-runtime/locales/angular/global/naq.js +4 -4
  1043. app-ng-runtime/locales/angular/global/nb-sj.js +4 -4
  1044. app-ng-runtime/locales/angular/global/nb.js +4 -4
  1045. app-ng-runtime/locales/angular/global/nd.js +4 -4
  1046. app-ng-runtime/locales/angular/global/nds-nl.js +4 -4
  1047. app-ng-runtime/locales/angular/global/nds.js +4 -4
  1048. app-ng-runtime/locales/angular/global/ne-in.js +4 -4
  1049. app-ng-runtime/locales/angular/global/ne.js +4 -4
  1050. app-ng-runtime/locales/angular/global/nl-aw.js +4 -4
  1051. app-ng-runtime/locales/angular/global/nl-be.js +4 -4
  1052. app-ng-runtime/locales/angular/global/nl-bq.js +4 -4
  1053. app-ng-runtime/locales/angular/global/nl-cw.js +4 -4
  1054. app-ng-runtime/locales/angular/global/nl-sr.js +4 -4
  1055. app-ng-runtime/locales/angular/global/nl-sx.js +4 -4
  1056. app-ng-runtime/locales/angular/global/nl.js +4 -4
  1057. app-ng-runtime/locales/angular/global/nmg.js +4 -4
  1058. app-ng-runtime/locales/angular/global/nn.js +4 -4
  1059. app-ng-runtime/locales/angular/global/nnh.js +4 -4
  1060. app-ng-runtime/locales/angular/global/no.js +4 -4
  1061. app-ng-runtime/locales/angular/global/nus.js +4 -4
  1062. app-ng-runtime/locales/angular/global/nyn.js +4 -4
  1063. app-ng-runtime/locales/angular/global/om-ke.js +4 -4
  1064. app-ng-runtime/locales/angular/global/om.js +4 -4
  1065. app-ng-runtime/locales/angular/global/or.js +4 -4
  1066. app-ng-runtime/locales/angular/global/os-ru.js +4 -4
  1067. app-ng-runtime/locales/angular/global/os.js +4 -4
  1068. app-ng-runtime/locales/angular/global/pa-arab.js +4 -4
  1069. app-ng-runtime/locales/angular/global/pa-guru.js +4 -4
  1070. app-ng-runtime/locales/angular/global/pa.js +4 -4
  1071. app-ng-runtime/locales/angular/global/pcm.js +4 -4
  1072. app-ng-runtime/locales/angular/global/pl.js +4 -4
  1073. app-ng-runtime/locales/angular/global/ps-pk.js +4 -4
  1074. app-ng-runtime/locales/angular/global/ps.js +4 -4
  1075. app-ng-runtime/locales/angular/global/pt-ao.js +4 -4
  1076. app-ng-runtime/locales/angular/global/pt-ch.js +4 -4
  1077. app-ng-runtime/locales/angular/global/pt-cv.js +4 -4
  1078. app-ng-runtime/locales/angular/global/pt-gq.js +4 -4
  1079. app-ng-runtime/locales/angular/global/pt-gw.js +4 -4
  1080. app-ng-runtime/locales/angular/global/pt-lu.js +4 -4
  1081. app-ng-runtime/locales/angular/global/pt-mo.js +4 -4
  1082. app-ng-runtime/locales/angular/global/pt-mz.js +4 -4
  1083. app-ng-runtime/locales/angular/global/pt-pt.js +4 -4
  1084. app-ng-runtime/locales/angular/global/pt-st.js +4 -4
  1085. app-ng-runtime/locales/angular/global/pt-tl.js +4 -4
  1086. app-ng-runtime/locales/angular/global/pt.js +4 -4
  1087. app-ng-runtime/locales/angular/global/qu-bo.js +4 -4
  1088. app-ng-runtime/locales/angular/global/qu-ec.js +4 -4
  1089. app-ng-runtime/locales/angular/global/qu.js +4 -4
  1090. app-ng-runtime/locales/angular/global/rm.js +4 -4
  1091. app-ng-runtime/locales/angular/global/rn.js +4 -4
  1092. app-ng-runtime/locales/angular/global/ro-md.js +4 -4
  1093. app-ng-runtime/locales/angular/global/ro.js +4 -4
  1094. app-ng-runtime/locales/angular/global/rof.js +4 -4
  1095. app-ng-runtime/locales/angular/global/ru-by.js +4 -4
  1096. app-ng-runtime/locales/angular/global/ru-kg.js +4 -4
  1097. app-ng-runtime/locales/angular/global/ru-kz.js +4 -4
  1098. app-ng-runtime/locales/angular/global/ru-md.js +4 -4
  1099. app-ng-runtime/locales/angular/global/ru-ua.js +4 -4
  1100. app-ng-runtime/locales/angular/global/ru.js +4 -4
  1101. app-ng-runtime/locales/angular/global/rw.js +4 -4
  1102. app-ng-runtime/locales/angular/global/rwk.js +4 -4
  1103. app-ng-runtime/locales/angular/global/sa.js +4 -4
  1104. app-ng-runtime/locales/angular/global/sah.js +4 -4
  1105. app-ng-runtime/locales/angular/global/saq.js +4 -4
  1106. app-ng-runtime/locales/angular/global/sat-olck.js +4 -4
  1107. app-ng-runtime/locales/angular/global/sat.js +4 -4
  1108. app-ng-runtime/locales/angular/global/sbp.js +4 -4
  1109. app-ng-runtime/locales/angular/global/sc.js +4 -4
  1110. app-ng-runtime/locales/angular/global/sd-arab.js +4 -4
  1111. app-ng-runtime/locales/angular/global/sd-deva.js +4 -4
  1112. app-ng-runtime/locales/angular/global/sd.js +4 -4
  1113. app-ng-runtime/locales/angular/global/se-fi.js +4 -4
  1114. app-ng-runtime/locales/angular/global/se-se.js +4 -4
  1115. app-ng-runtime/locales/angular/global/se.js +4 -4
  1116. app-ng-runtime/locales/angular/global/seh.js +4 -4
  1117. app-ng-runtime/locales/angular/global/ses.js +4 -4
  1118. app-ng-runtime/locales/angular/global/sg.js +4 -4
  1119. app-ng-runtime/locales/angular/global/shi-latn.js +4 -4
  1120. app-ng-runtime/locales/angular/global/shi-tfng.js +4 -4
  1121. app-ng-runtime/locales/angular/global/shi.js +4 -4
  1122. app-ng-runtime/locales/angular/global/si.js +4 -4
  1123. app-ng-runtime/locales/angular/global/sk.js +4 -4
  1124. app-ng-runtime/locales/angular/global/sl.js +4 -4
  1125. app-ng-runtime/locales/angular/global/smn.js +4 -4
  1126. app-ng-runtime/locales/angular/global/sn.js +4 -4
  1127. app-ng-runtime/locales/angular/global/so-dj.js +4 -4
  1128. app-ng-runtime/locales/angular/global/so-et.js +4 -4
  1129. app-ng-runtime/locales/angular/global/so-ke.js +4 -4
  1130. app-ng-runtime/locales/angular/global/so.js +4 -4
  1131. app-ng-runtime/locales/angular/global/sq-mk.js +4 -4
  1132. app-ng-runtime/locales/angular/global/sq-xk.js +4 -4
  1133. app-ng-runtime/locales/angular/global/sq.js +4 -4
  1134. app-ng-runtime/locales/angular/global/sr-cyrl-ba.js +4 -4
  1135. app-ng-runtime/locales/angular/global/sr-cyrl-me.js +4 -4
  1136. app-ng-runtime/locales/angular/global/sr-cyrl-xk.js +4 -4
  1137. app-ng-runtime/locales/angular/global/sr-cyrl.js +4 -4
  1138. app-ng-runtime/locales/angular/global/sr-latn-ba.js +4 -4
  1139. app-ng-runtime/locales/angular/global/sr-latn-me.js +4 -4
  1140. app-ng-runtime/locales/angular/global/sr-latn-xk.js +4 -4
  1141. app-ng-runtime/locales/angular/global/sr-latn.js +4 -4
  1142. app-ng-runtime/locales/angular/global/sr.js +4 -4
  1143. app-ng-runtime/locales/angular/global/su-latn.js +4 -4
  1144. app-ng-runtime/locales/angular/global/su.js +4 -4
  1145. app-ng-runtime/locales/angular/global/sv-ax.js +4 -4
  1146. app-ng-runtime/locales/angular/global/sv-fi.js +4 -4
  1147. app-ng-runtime/locales/angular/global/sv.js +4 -4
  1148. app-ng-runtime/locales/angular/global/sw-cd.js +4 -4
  1149. app-ng-runtime/locales/angular/global/sw-ke.js +4 -4
  1150. app-ng-runtime/locales/angular/global/sw-ug.js +4 -4
  1151. app-ng-runtime/locales/angular/global/sw.js +4 -4
  1152. app-ng-runtime/locales/angular/global/ta-lk.js +4 -4
  1153. app-ng-runtime/locales/angular/global/ta-my.js +4 -4
  1154. app-ng-runtime/locales/angular/global/ta-sg.js +4 -4
  1155. app-ng-runtime/locales/angular/global/ta.js +4 -4
  1156. app-ng-runtime/locales/angular/global/te.js +4 -4
  1157. app-ng-runtime/locales/angular/global/teo-ke.js +4 -4
  1158. app-ng-runtime/locales/angular/global/teo.js +4 -4
  1159. app-ng-runtime/locales/angular/global/tg.js +4 -4
  1160. app-ng-runtime/locales/angular/global/th.js +4 -4
  1161. app-ng-runtime/locales/angular/global/ti-er.js +4 -4
  1162. app-ng-runtime/locales/angular/global/ti.js +4 -4
  1163. app-ng-runtime/locales/angular/global/tk.js +4 -4
  1164. app-ng-runtime/locales/angular/global/to.js +4 -4
  1165. app-ng-runtime/locales/angular/global/tr-cy.js +4 -4
  1166. app-ng-runtime/locales/angular/global/tr.js +4 -4
  1167. app-ng-runtime/locales/angular/global/tt.js +4 -4
  1168. app-ng-runtime/locales/angular/global/twq.js +4 -4
  1169. app-ng-runtime/locales/angular/global/tzm.js +4 -4
  1170. app-ng-runtime/locales/angular/global/ug.js +4 -4
  1171. app-ng-runtime/locales/angular/global/uk.js +4 -4
  1172. app-ng-runtime/locales/angular/global/und.js +4 -4
  1173. app-ng-runtime/locales/angular/global/ur-in.js +4 -4
  1174. app-ng-runtime/locales/angular/global/ur.js +4 -4
  1175. app-ng-runtime/locales/angular/global/uz-arab.js +4 -4
  1176. app-ng-runtime/locales/angular/global/uz-cyrl.js +4 -4
  1177. app-ng-runtime/locales/angular/global/uz-latn.js +4 -4
  1178. app-ng-runtime/locales/angular/global/uz.js +4 -4
  1179. app-ng-runtime/locales/angular/global/vai-latn.js +4 -4
  1180. app-ng-runtime/locales/angular/global/vai-vaii.js +4 -4
  1181. app-ng-runtime/locales/angular/global/vai.js +4 -4
  1182. app-ng-runtime/locales/angular/global/vi.js +4 -4
  1183. app-ng-runtime/locales/angular/global/vun.js +4 -4
  1184. app-ng-runtime/locales/angular/global/wae.js +4 -4
  1185. app-ng-runtime/locales/angular/global/wo.js +4 -4
  1186. app-ng-runtime/locales/angular/global/xh.js +4 -4
  1187. app-ng-runtime/locales/angular/global/xog.js +4 -4
  1188. app-ng-runtime/locales/angular/global/yav.js +4 -4
  1189. app-ng-runtime/locales/angular/global/yi.js +4 -4
  1190. app-ng-runtime/locales/angular/global/yo-bj.js +4 -4
  1191. app-ng-runtime/locales/angular/global/yo.js +4 -4
  1192. app-ng-runtime/locales/angular/global/yrl-co.js +4 -4
  1193. app-ng-runtime/locales/angular/global/yrl-ve.js +4 -4
  1194. app-ng-runtime/locales/angular/global/yrl.js +4 -4
  1195. app-ng-runtime/locales/angular/global/yue-hans.js +4 -4
  1196. app-ng-runtime/locales/angular/global/yue-hant.js +4 -4
  1197. app-ng-runtime/locales/angular/global/yue.js +4 -4
  1198. app-ng-runtime/locales/angular/global/zgh.js +4 -4
  1199. app-ng-runtime/locales/angular/global/zh-hans-hk.js +4 -4
  1200. app-ng-runtime/locales/angular/global/zh-hans-mo.js +4 -4
  1201. app-ng-runtime/locales/angular/global/zh-hans-sg.js +4 -4
  1202. app-ng-runtime/locales/angular/global/zh-hans.js +4 -4
  1203. app-ng-runtime/locales/angular/global/zh-hant-hk.js +4 -4
  1204. app-ng-runtime/locales/angular/global/zh-hant-mo.js +4 -4
  1205. app-ng-runtime/locales/angular/global/zh-hant.js +4 -4
  1206. app-ng-runtime/locales/angular/global/zh.js +4 -4
  1207. app-ng-runtime/locales/angular/global/zu.js +4 -4
  1208. app-ng-runtime/mobile/components/basic/default/.npmignore +2 -0
  1209. app-ng-runtime/mobile/components/basic/default/bundles/index.umd.js +148 -143
  1210. app-ng-runtime/mobile/components/basic/default/esm2022/anchor/anchor.directive.mjs +8 -7
  1211. app-ng-runtime/mobile/components/basic/default/esm2022/app-update/app-update.component.mjs +7 -6
  1212. app-ng-runtime/mobile/components/basic/default/esm2022/basic.module.mjs +2 -2
  1213. app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +47 -43
  1214. app-ng-runtime/mobile/components/basic/default/esm2022/file-browser/file-selector.service.mjs +7 -5
  1215. app-ng-runtime/mobile/components/basic/default/esm2022/image-cache/image-cache.directive.mjs +6 -5
  1216. app-ng-runtime/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +49 -47
  1217. app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-management.service.mjs +2 -2
  1218. app-ng-runtime/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +31 -32
  1219. app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs +146 -140
  1220. app-ng-runtime/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
  1221. app-ng-runtime/mobile/components/basic/default/network-info-toaster/network-info-toaster.component.d.ts +2 -2
  1222. app-ng-runtime/mobile/components/basic/search/.npmignore +2 -0
  1223. app-ng-runtime/mobile/components/basic/search/bundles/index.umd.js +3 -3
  1224. app-ng-runtime/mobile/components/basic/search/esm2022/search.directive.mjs +3 -3
  1225. app-ng-runtime/mobile/components/basic/search/esm2022/search.module.mjs +2 -2
  1226. app-ng-runtime/mobile/components/basic/search/fesm2022/index.mjs +3 -3
  1227. app-ng-runtime/mobile/components/basic/search/fesm2022/index.mjs.map +1 -1
  1228. app-ng-runtime/mobile/components/containers/segmented-control/.npmignore +2 -0
  1229. app-ng-runtime/mobile/components/containers/segmented-control/bundles/index.umd.js +42 -30
  1230. app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +14 -8
  1231. app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +28 -21
  1232. app-ng-runtime/mobile/components/containers/segmented-control/esm2022/segmented-control.module.mjs +2 -2
  1233. app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs +41 -28
  1234. app-ng-runtime/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
  1235. app-ng-runtime/mobile/components/containers/segmented-control/segment-content/segment-content.component.d.ts +2 -2
  1236. app-ng-runtime/mobile/components/containers/segmented-control/segmented-control.component.d.ts +2 -2
  1237. app-ng-runtime/mobile/components/data/media-list/.npmignore +2 -0
  1238. app-ng-runtime/mobile/components/data/media-list/bundles/index.umd.js +53 -48
  1239. app-ng-runtime/mobile/components/data/media-list/esm2022/media-list-item/media-list-item.directive.mjs +2 -2
  1240. app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.component.mjs +48 -42
  1241. app-ng-runtime/mobile/components/data/media-list/esm2022/media-list.module.mjs +2 -2
  1242. app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs +50 -44
  1243. app-ng-runtime/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
  1244. app-ng-runtime/mobile/components/data/media-list/media-list.component.d.ts +2 -2
  1245. app-ng-runtime/mobile/components/device/barcode-scanner/.npmignore +2 -0
  1246. app-ng-runtime/mobile/components/device/barcode-scanner/barcode-scanner.component.d.ts +2 -2
  1247. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +14 -8
  1248. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.component.mjs +15 -9
  1249. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.module.mjs +2 -2
  1250. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +16 -10
  1251. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  1252. app-ng-runtime/mobile/components/device/camera/.npmignore +2 -0
  1253. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +15 -9
  1254. app-ng-runtime/mobile/components/device/camera/camera.component.d.ts +2 -2
  1255. app-ng-runtime/mobile/components/device/camera/esm2022/camera.component.mjs +16 -10
  1256. app-ng-runtime/mobile/components/device/camera/esm2022/camera.module.mjs +2 -2
  1257. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +17 -11
  1258. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  1259. app-ng-runtime/mobile/components/input/file-upload/.npmignore +2 -0
  1260. app-ng-runtime/mobile/components/input/file-upload/bundles/index.umd.js +3 -3
  1261. app-ng-runtime/mobile/components/input/file-upload/esm2022/file-upload.directive.mjs +3 -3
  1262. app-ng-runtime/mobile/components/input/file-upload/esm2022/file-upload.module.mjs +2 -2
  1263. app-ng-runtime/mobile/components/input/file-upload/fesm2022/index.mjs +3 -3
  1264. app-ng-runtime/mobile/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  1265. app-ng-runtime/mobile/components/page/default/.npmignore +2 -0
  1266. app-ng-runtime/mobile/components/page/default/bundles/index.umd.js +11 -10
  1267. app-ng-runtime/mobile/components/page/default/esm2022/page-content-loader/page-content-loader.component.mjs +4 -3
  1268. app-ng-runtime/mobile/components/page/default/esm2022/page.directive.mjs +5 -4
  1269. app-ng-runtime/mobile/components/page/default/esm2022/page.module.mjs +2 -2
  1270. app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs +8 -6
  1271. app-ng-runtime/mobile/components/page/default/fesm2022/index.mjs.map +1 -1
  1272. app-ng-runtime/mobile/components/page/left-panel/.npmignore +2 -0
  1273. app-ng-runtime/mobile/components/page/left-panel/bundles/index.umd.js +3 -3
  1274. app-ng-runtime/mobile/components/page/left-panel/esm2022/left-panel.directive.mjs +3 -3
  1275. app-ng-runtime/mobile/components/page/left-panel/esm2022/left-panel.module.mjs +2 -2
  1276. app-ng-runtime/mobile/components/page/left-panel/fesm2022/index.mjs +3 -3
  1277. app-ng-runtime/mobile/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  1278. app-ng-runtime/mobile/components/page/mobile-navbar/.npmignore +2 -0
  1279. app-ng-runtime/mobile/components/page/mobile-navbar/bundles/index.umd.js +40 -35
  1280. app-ng-runtime/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +41 -36
  1281. app-ng-runtime/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.module.mjs +2 -2
  1282. app-ng-runtime/mobile/components/page/mobile-navbar/fesm2022/index.mjs +41 -36
  1283. app-ng-runtime/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
  1284. app-ng-runtime/mobile/components/page/mobile-navbar/mobile-navbar.component.d.ts +2 -2
  1285. app-ng-runtime/mobile/components/page/tab-bar/.npmignore +2 -0
  1286. app-ng-runtime/mobile/components/page/tab-bar/bundles/index.umd.js +52 -46
  1287. app-ng-runtime/mobile/components/page/tab-bar/esm2022/tab-bar.module.mjs +2 -2
  1288. app-ng-runtime/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +50 -43
  1289. app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs +51 -44
  1290. app-ng-runtime/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
  1291. app-ng-runtime/mobile/components/page/tab-bar/tabbar.component.d.ts +2 -2
  1292. app-ng-runtime/mobile/core/.npmignore +2 -0
  1293. app-ng-runtime/mobile/core/bundles/index.umd.js +43 -43
  1294. app-ng-runtime/mobile/core/esm2022/core.module.mjs +3 -3
  1295. app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +1 -1
  1296. app-ng-runtime/mobile/core/esm2022/services/device-file-cache.service.mjs +3 -3
  1297. app-ng-runtime/mobile/core/esm2022/services/device-file-download.service.mjs +7 -6
  1298. app-ng-runtime/mobile/core/esm2022/services/device-file-opener.service.mjs +5 -4
  1299. app-ng-runtime/mobile/core/esm2022/services/device-file-upload.service.mjs +6 -5
  1300. app-ng-runtime/mobile/core/esm2022/services/device-file.service.mjs +8 -7
  1301. app-ng-runtime/mobile/core/esm2022/services/device.service.mjs +5 -4
  1302. app-ng-runtime/mobile/core/esm2022/services/ext-app-message.service.mjs +7 -6
  1303. app-ng-runtime/mobile/core/esm2022/services/network.service.mjs +11 -10
  1304. app-ng-runtime/mobile/core/fesm2022/index.mjs +40 -39
  1305. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  1306. app-ng-runtime/mobile/core/services/ext-app-message.service.d.ts +1 -1
  1307. app-ng-runtime/mobile/core/services/network.service.d.ts +7 -1
  1308. app-ng-runtime/mobile/offline/.npmignore +2 -0
  1309. app-ng-runtime/mobile/offline/bundles/index.umd.js +176 -159
  1310. app-ng-runtime/mobile/offline/esm2022/models/local-db-store.mjs +23 -21
  1311. app-ng-runtime/mobile/offline/esm2022/offline.module.mjs +3 -3
  1312. app-ng-runtime/mobile/offline/esm2022/services/change-log.service.mjs +9 -8
  1313. app-ng-runtime/mobile/offline/esm2022/services/local-db-data-pull.service.mjs +39 -37
  1314. app-ng-runtime/mobile/offline/esm2022/services/local-db-management.service.mjs +56 -47
  1315. app-ng-runtime/mobile/offline/esm2022/services/local-db.service.mjs +7 -6
  1316. app-ng-runtime/mobile/offline/esm2022/services/local-key-value.service.mjs +2 -2
  1317. app-ng-runtime/mobile/offline/esm2022/services/push.service.mjs +3 -3
  1318. app-ng-runtime/mobile/offline/esm2022/services/workers/error-blocker.mjs +4 -3
  1319. app-ng-runtime/mobile/offline/esm2022/services/workers/file-handler.mjs +18 -13
  1320. app-ng-runtime/mobile/offline/esm2022/services/workers/id-resolver.mjs +3 -3
  1321. app-ng-runtime/mobile/offline/esm2022/services/workers/multi-part-param-transformer.mjs +9 -5
  1322. app-ng-runtime/mobile/offline/esm2022/utils/file-upload.utils.mjs +1 -1
  1323. app-ng-runtime/mobile/offline/esm2022/utils/live-variable.utils.mjs +12 -11
  1324. app-ng-runtime/mobile/offline/esm2022/utils/query-executor.utils.mjs +5 -4
  1325. app-ng-runtime/mobile/offline/esm2022/utils/security.utils.mjs +3 -2
  1326. app-ng-runtime/mobile/offline/esm2022/utils/utils.mjs +1 -1
  1327. app-ng-runtime/mobile/offline/fesm2022/index.mjs +171 -153
  1328. app-ng-runtime/mobile/offline/fesm2022/index.mjs.map +1 -1
  1329. app-ng-runtime/mobile/placeholder/runtime/.npmignore +2 -0
  1330. app-ng-runtime/mobile/placeholder/runtime/bundles/index.umd.js +3 -2
  1331. app-ng-runtime/mobile/placeholder/runtime/esm2022/components/app-ext.component.mjs +3 -2
  1332. app-ng-runtime/mobile/placeholder/runtime/esm2022/mobile-runtime.module.mjs +2 -2
  1333. app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs +3 -2
  1334. app-ng-runtime/mobile/placeholder/runtime/fesm2022/index.mjs.map +1 -1
  1335. app-ng-runtime/mobile/placeholder/runtime-dynamic/.npmignore +2 -0
  1336. app-ng-runtime/mobile/placeholder/runtime-dynamic/bundles/index.umd.js +1 -1
  1337. app-ng-runtime/mobile/placeholder/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
  1338. app-ng-runtime/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs +1 -1
  1339. app-ng-runtime/mobile/placeholder/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  1340. app-ng-runtime/mobile/runtime/.npmignore +2 -0
  1341. app-ng-runtime/mobile/runtime/bundles/index.umd.js +21 -17
  1342. app-ng-runtime/mobile/runtime/esm2022/components/app-ext.component.mjs +4 -3
  1343. app-ng-runtime/mobile/runtime/esm2022/mobile-runtime.module.mjs +5 -4
  1344. app-ng-runtime/mobile/runtime/esm2022/services/cookie.service.mjs +7 -3
  1345. app-ng-runtime/mobile/runtime/esm2022/services/http-interceptor.service.mjs +6 -5
  1346. app-ng-runtime/mobile/runtime/esm2022/services/webprocess.service.mjs +3 -3
  1347. app-ng-runtime/mobile/runtime/fesm2022/index.mjs +18 -13
  1348. app-ng-runtime/mobile/runtime/fesm2022/index.mjs.map +1 -1
  1349. app-ng-runtime/mobile/runtime-dynamic/.npmignore +2 -0
  1350. app-ng-runtime/mobile/runtime-dynamic/bundles/index.umd.js +5 -5
  1351. app-ng-runtime/mobile/runtime-dynamic/esm2022/mobile-runtime-dynamic.module.mjs +2 -2
  1352. app-ng-runtime/mobile/runtime-dynamic/esm2022/services/live-sync.service.mjs +5 -5
  1353. app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs +5 -5
  1354. app-ng-runtime/mobile/runtime-dynamic/fesm2022/index.mjs.map +1 -1
  1355. app-ng-runtime/mobile/variables/.npmignore +2 -0
  1356. app-ng-runtime/mobile/variables/bundles/index.umd.js +28 -21
  1357. app-ng-runtime/mobile/variables/esm2022/services/camera-service.mjs +5 -5
  1358. app-ng-runtime/mobile/variables/esm2022/services/contacts-service.mjs +1 -1
  1359. app-ng-runtime/mobile/variables/esm2022/services/datasync-service.mjs +10 -9
  1360. app-ng-runtime/mobile/variables/esm2022/services/device-service/device-service.mjs +1 -1
  1361. app-ng-runtime/mobile/variables/esm2022/services/device-service/location-service.mjs +1 -1
  1362. app-ng-runtime/mobile/variables/esm2022/services/file-service.mjs +11 -3
  1363. app-ng-runtime/mobile/variables/esm2022/services/scan-service.mjs +1 -1
  1364. app-ng-runtime/mobile/variables/esm2022/variables.module.mjs +3 -3
  1365. app-ng-runtime/mobile/variables/fesm2022/index.mjs +24 -16
  1366. app-ng-runtime/mobile/variables/fesm2022/index.mjs.map +1 -1
  1367. app-ng-runtime/oAuth/.npmignore +2 -0
  1368. app-ng-runtime/oAuth/bundles/index.umd.js +15 -15
  1369. app-ng-runtime/oAuth/esm2022/oAuth.module.mjs +2 -2
  1370. app-ng-runtime/oAuth/esm2022/oAuth.service.mjs +6 -5
  1371. app-ng-runtime/oAuth/esm2022/oAuth.utils.mjs +8 -7
  1372. app-ng-runtime/oAuth/fesm2022/index.mjs +12 -11
  1373. app-ng-runtime/oAuth/fesm2022/index.mjs.map +1 -1
  1374. app-ng-runtime/package.json +1 -1
  1375. app-ng-runtime/runtime/base/.npmignore +2 -0
  1376. app-ng-runtime/runtime/base/bundles/index.umd.js +263 -247
  1377. app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +3 -1
  1378. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +1 -1
  1379. app-ng-runtime/runtime/base/directives/accessroles.directive.d.ts +4 -3
  1380. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +34 -30
  1381. app-ng-runtime/runtime/base/esm2022/components/app-spinner.component.mjs +9 -8
  1382. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +5 -5
  1383. app-ng-runtime/runtime/base/esm2022/components/base-layout.component.mjs +5 -4
  1384. app-ng-runtime/runtime/base/esm2022/components/base-page.component.mjs +16 -15
  1385. app-ng-runtime/runtime/base/esm2022/components/base-partial.component.mjs +15 -14
  1386. app-ng-runtime/runtime/base/esm2022/components/base-prefab.component.mjs +17 -16
  1387. app-ng-runtime/runtime/base/esm2022/components/base-spa-page.component.mjs +16 -15
  1388. app-ng-runtime/runtime/base/esm2022/components/custom-toaster.component.mjs +17 -15
  1389. app-ng-runtime/runtime/base/esm2022/components/empty-component/empty-page.component.mjs +4 -3
  1390. app-ng-runtime/runtime/base/esm2022/components/prefab-preview.component.mjs +4 -3
  1391. app-ng-runtime/runtime/base/esm2022/directives/accessroles.directive.mjs +24 -16
  1392. app-ng-runtime/runtime/base/esm2022/directives/prefab.directive.mjs +4 -4
  1393. app-ng-runtime/runtime/base/esm2022/guards/auth.guard.mjs +3 -3
  1394. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +3 -3
  1395. app-ng-runtime/runtime/base/esm2022/guards/page-not-found.guard.mjs +3 -3
  1396. app-ng-runtime/runtime/base/esm2022/guards/role.guard.mjs +5 -4
  1397. app-ng-runtime/runtime/base/esm2022/overrides/wm_dom_renderer.mjs +4 -4
  1398. app-ng-runtime/runtime/base/esm2022/overrides/wm_shared_styles_host.mjs +5 -5
  1399. app-ng-runtime/runtime/base/esm2022/resolves/app-extension.resolve.mjs +3 -3
  1400. app-ng-runtime/runtime/base/esm2022/resolves/app-js.resolve.mjs +3 -3
  1401. app-ng-runtime/runtime/base/esm2022/resolves/app-variables.resolve.mjs +3 -3
  1402. app-ng-runtime/runtime/base/esm2022/resolves/i18n.resolve.mjs +3 -3
  1403. app-ng-runtime/runtime/base/esm2022/resolves/metadata.resolve.mjs +3 -3
  1404. app-ng-runtime/runtime/base/esm2022/resolves/security-config.resolve.mjs +3 -3
  1405. app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +3 -3
  1406. app-ng-runtime/runtime/base/esm2022/services/app-defaults.service.mjs +3 -3
  1407. app-ng-runtime/runtime/base/esm2022/services/app.manager.service.mjs +19 -16
  1408. app-ng-runtime/runtime/base/esm2022/services/app.service.mjs +9 -8
  1409. app-ng-runtime/runtime/base/esm2022/services/dynamic-component-ref-provider.service.mjs +5 -4
  1410. app-ng-runtime/runtime/base/esm2022/services/http-interceptor.services.mjs +6 -5
  1411. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +15 -13
  1412. app-ng-runtime/runtime/base/esm2022/services/navigation.service.mjs +10 -9
  1413. app-ng-runtime/runtime/base/esm2022/services/pipe-provider.service.mjs +3 -3
  1414. app-ng-runtime/runtime/base/esm2022/services/pipe.service.mjs +3 -3
  1415. app-ng-runtime/runtime/base/esm2022/services/prefab-manager.service.mjs +5 -4
  1416. app-ng-runtime/runtime/base/esm2022/services/spinner.service.mjs +9 -8
  1417. app-ng-runtime/runtime/base/esm2022/services/toaster.service.mjs +8 -7
  1418. app-ng-runtime/runtime/base/esm2022/util/fragment-monitor.mjs +3 -3
  1419. app-ng-runtime/runtime/base/esm2022/util/wm-route-reuse-strategy.mjs +7 -8
  1420. app-ng-runtime/runtime/base/fesm2022/index.mjs +273 -256
  1421. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  1422. app-ng-runtime/runtime/base/overrides/wm_dom_renderer.d.ts +2 -2
  1423. app-ng-runtime/runtime/base/services/i18n.service.d.ts +1 -1
  1424. app-ng-runtime/runtime/dynamic/.npmignore +2 -0
  1425. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +22 -21
  1426. app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +1 -1
  1427. app-ng-runtime/runtime/dynamic/esm2022/app/components/page-wrapper.component.mjs +4 -3
  1428. app-ng-runtime/runtime/dynamic/esm2022/app/services/app-extension.service.mjs +3 -3
  1429. app-ng-runtime/runtime/dynamic/esm2022/app/services/app-js-provider.service.mjs +3 -3
  1430. app-ng-runtime/runtime/dynamic/esm2022/app/services/app-resource-manager.service.mjs +3 -3
  1431. app-ng-runtime/runtime/dynamic/esm2022/app/services/app-variables-provider.service.mjs +3 -3
  1432. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +6 -5
  1433. app-ng-runtime/runtime/dynamic/esm2022/app/services/prefab-config-provider.service.mjs +3 -3
  1434. app-ng-runtime/runtime/dynamic/esm2022/main.mjs +3 -2
  1435. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +21 -19
  1436. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  1437. app-ng-runtime/scripts/datatable/datatable.js +2 -2
  1438. app-ng-runtime/scripts/jquery-ui/ui/widgets/droppable.js +7 -7
  1439. app-ng-runtime/scripts/jquery-ui/ui/widgets/resizable.js +13 -10
  1440. app-ng-runtime/scripts/jquery-ui/ui/widgets/sortable.js +7 -7
  1441. app-ng-runtime/security/.npmignore +2 -0
  1442. app-ng-runtime/security/bundles/index.umd.js +17 -17
  1443. app-ng-runtime/security/esm2022/security.module.mjs +2 -2
  1444. app-ng-runtime/security/esm2022/security.service.mjs +14 -13
  1445. app-ng-runtime/security/fesm2022/index.mjs +14 -13
  1446. app-ng-runtime/security/fesm2022/index.mjs.map +1 -1
  1447. app-ng-runtime/security/security.service.d.ts +1 -1
  1448. app-ng-runtime/swipey/.npmignore +2 -0
  1449. app-ng-runtime/swipey/esm2022/swipe.animation.mjs +1 -1
  1450. app-ng-runtime/swipey/fesm2022/index.mjs.map +1 -1
  1451. app-ng-runtime/transpiler/.npmignore +2 -0
  1452. app-ng-runtime/transpiler/bundles/index.umd.js +10 -9
  1453. app-ng-runtime/transpiler/esm2022/build.mjs +8 -6
  1454. app-ng-runtime/transpiler/fesm2022/index.mjs +7 -5
  1455. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
  1456. app-ng-runtime/variables/.npmignore +2 -0
  1457. app-ng-runtime/variables/bundles/index.umd.js +160 -150
  1458. app-ng-runtime/variables/esm2022/factory/variable.factory.mjs +1 -1
  1459. app-ng-runtime/variables/esm2022/manager/action/login-action.manager.mjs +15 -14
  1460. app-ng-runtime/variables/esm2022/manager/action/logout-action.manager.mjs +1 -1
  1461. app-ng-runtime/variables/esm2022/manager/action/notification-action.manager.mjs +9 -8
  1462. app-ng-runtime/variables/esm2022/manager/variable/base-variable.manager.mjs +3 -2
  1463. app-ng-runtime/variables/esm2022/manager/variable/device-variable-manager.mjs +1 -1
  1464. app-ng-runtime/variables/esm2022/manager/variable/device-variable-service.mjs +1 -1
  1465. app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +11 -10
  1466. app-ng-runtime/variables/esm2022/model/action/notification-action.mjs +1 -1
  1467. app-ng-runtime/variables/esm2022/service/metadata-service/metadata.service.mjs +3 -3
  1468. app-ng-runtime/variables/esm2022/service/variables.service.mjs +9 -8
  1469. app-ng-runtime/variables/esm2022/util/action/navigation-action.utils.mjs +4 -4
  1470. app-ng-runtime/variables/esm2022/util/variable/pagination.utils.mjs +30 -23
  1471. app-ng-runtime/variables/esm2022/util/variable/service-variable.utils.mjs +29 -28
  1472. app-ng-runtime/variables/esm2022/util/variable/variables.utils.mjs +75 -70
  1473. app-ng-runtime/variables/esm2022/variables.module.mjs +2 -2
  1474. app-ng-runtime/variables/fesm2022/index.mjs +174 -163
  1475. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  1476. app-ng-runtime/variables/util/variable/service-variable.utils.d.ts +1 -1
  1477. app-ng-runtime/build-task/advanced/custom-widget-prop/custom-widget-prop.build.d.ts +0 -2
  1478. app-ng-runtime/build-task/esm2022/advanced/custom-widget-prop/custom-widget-prop.build.mjs +0 -10
  1479. app-ng-runtime/components/advanced/custom/custom-widget-container-prop/custom-widget-container-prop.directive.d.ts +0 -20
  1480. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container-prop/custom-widget-container-prop.directive.mjs +0 -70
@@ -1,7 +1,8 @@
1
- import { Component, ElementRef, Injector, ViewChild, ViewEncapsulation } from '@angular/core';
1
+ import { Component, ElementRef, Inject, Injector, Optional, ViewChild, ViewEncapsulation } from '@angular/core';
2
2
  import { AbstractI18nService, getClonedObject, getSessionStorageItem, isMobile } from '@wm/core';
3
3
  import { APPLY_STYLES_TYPE, createArrayFrom, getEvaluatedData, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';
4
4
  import { registerProps } from './calendar.props';
5
+ import { capitalize, clone, each, extend, get, includes, isDate, isEmpty, isObject, mapKeys } from "lodash-es";
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@wm/core";
7
8
  const _c0 = ["calendar"];
@@ -65,8 +66,10 @@ export class CalendarComponent extends StylableComponent {
65
66
  selectDate() {
66
67
  let start, end;
67
68
  // checks if datavalue is an object and not a Date object
68
- if (_.isObject(this.datavalue) && !_.isDate(this.datavalue)) {
69
+ if (isObject(this.datavalue) && !isDate(this.datavalue)) {
70
+ // @ts-ignore
69
71
  start = moment(this.datavalue.start);
72
+ // @ts-ignore
70
73
  end = moment(this.datavalue.end);
71
74
  }
72
75
  else {
@@ -191,7 +194,7 @@ export class CalendarComponent extends StylableComponent {
191
194
  */
192
195
  convertEventObjForOldAndNewData(eventObj) {
193
196
  const _eventMetadata = eventObj.extendedProps;
194
- _.extend(eventObj, _eventMetadata);
197
+ extend(eventObj, _eventMetadata);
195
198
  return eventObj;
196
199
  }
197
200
  eventResize(eventResizeInfo) {
@@ -235,19 +238,19 @@ export class CalendarComponent extends StylableComponent {
235
238
  const ctrls = this.controls, viewType = this.calendartype, regEx = new RegExp('\\bday\\b', 'g');
236
239
  let left = '', right = '';
237
240
  if (ctrls && viewType) {
238
- if (_.includes(ctrls, 'navigation')) {
241
+ if (includes(ctrls, 'navigation')) {
239
242
  left += ' prev next';
240
243
  }
241
- if (_.includes(ctrls, 'today')) {
244
+ if (includes(ctrls, 'today')) {
242
245
  left += ' today';
243
246
  }
244
- if (_.includes(ctrls, 'year')) {
247
+ if (includes(ctrls, 'year')) {
245
248
  right += (viewType === VIEW_TYPES.LIST) ? 'listYear' : '';
246
249
  }
247
- if (_.includes(ctrls, 'month')) {
250
+ if (includes(ctrls, 'month')) {
248
251
  right += (viewType === VIEW_TYPES.LIST) ? ' listMonth' : ' dayGridMonth';
249
252
  }
250
- if (_.includes(ctrls, 'week')) {
253
+ if (includes(ctrls, 'week')) {
251
254
  right += (viewType === VIEW_TYPES.BASIC) ? ' dayGridWeek' : (viewType === VIEW_TYPES.LIST) ? ' listWeek' : ' timeGridWeek';
252
255
  }
253
256
  if (regEx.test(ctrls)) {
@@ -259,11 +262,11 @@ export class CalendarComponent extends StylableComponent {
259
262
  if (right.charAt(0) === ' ') {
260
263
  right = right.substring(1);
261
264
  }
262
- _.extend(this.calendarOptions.calendar.headerToolbar, { 'start': left, 'end': right });
265
+ extend(this.calendarOptions.calendar.headerToolbar, { 'start': left, 'end': right });
263
266
  }
264
267
  }
265
- constructor(inj, i18nService) {
266
- super(inj, WIDGET_CONFIG);
268
+ constructor(inj, i18nService, explicitContext) {
269
+ super(inj, WIDGET_CONFIG, explicitContext);
267
270
  this.controls = 'navigation, today, year, month, week, day';
268
271
  this.eventSources = [];
269
272
  this.dataSetEvents = {
@@ -349,7 +352,7 @@ export class CalendarComponent extends StylableComponent {
349
352
  break;
350
353
  case 'view':
351
354
  if (nv !== 'month' || this.calendartype === VIEW_TYPES.LIST) {
352
- this.calendarOptions.calendar.defaultView = this.calendartype + _.capitalize(nv);
355
+ this.calendarOptions.calendar.defaultView = this.calendartype + capitalize(nv);
353
356
  }
354
357
  else {
355
358
  this.calendarOptions.calendar.defaultView = nv;
@@ -383,8 +386,8 @@ export class CalendarComponent extends StylableComponent {
383
386
  calculateHeight(height) {
384
387
  const $parent = $(this.nativeElement).parent(), elHeight = height || '650px';
385
388
  let parentHeight = $parent.css('height'), computedHeight;
386
- if (_.includes(elHeight, '%')) {
387
- if (_.includes(parentHeight, '%')) {
389
+ if (includes(elHeight, '%')) {
390
+ if (includes(parentHeight, '%')) {
388
391
  parentHeight = $parent.height();
389
392
  }
390
393
  computedHeight = (parseInt(parentHeight, 10) * Number(elHeight.replace(/\%/g, ''))) / 100;
@@ -425,23 +428,23 @@ export class CalendarComponent extends StylableComponent {
425
428
  className: this.eventclass || 'className'
426
429
  };
427
430
  eventSource.forEach((obj) => {
428
- obj._eventMetadata = _.clone(obj);
429
- if (_.isEmpty(obj._eventMetadata.url)) {
431
+ obj._eventMetadata = clone(obj);
432
+ if (isEmpty(obj._eventMetadata.url)) {
430
433
  delete obj._eventMetadata.url;
431
434
  }
432
- if (_.isEmpty(obj.url)) {
435
+ if (isEmpty(obj.url)) {
433
436
  delete obj.url;
434
437
  }
435
- _.mapKeys(properties, (value, key) => {
438
+ mapKeys(properties, (value, key) => {
436
439
  let objVal;
437
440
  if (key === 'title') {
438
441
  objVal = getEvaluatedData(obj, { expression: value }, this.viewParent);
439
442
  }
440
443
  else if (key === 'allDay') {
441
- objVal = !!_.get(obj, value);
444
+ objVal = !!get(obj, value);
442
445
  }
443
446
  else {
444
- objVal = _.get(obj, value);
447
+ objVal = get(obj, value);
445
448
  }
446
449
  if (!objVal) {
447
450
  return;
@@ -452,11 +455,11 @@ export class CalendarComponent extends StylableComponent {
452
455
  return eventSource;
453
456
  }
454
457
  setLocale() {
455
- const year = _.get(this.appLocale, 'LABEL_CALENDAR_YEAR') || BUTTON_TEXT.YEAR;
456
- const month = _.get(this.appLocale, 'LABEL_CALENDAR_MONTH') || BUTTON_TEXT.MONTH;
457
- const week = _.get(this.appLocale, 'LABEL_CALENDAR_WEEK') || BUTTON_TEXT.WEEK;
458
- const day = _.get(this.appLocale, 'LABEL_CALENDAR_DAY') || BUTTON_TEXT.DAY;
459
- const today = _.get(this.appLocale, 'LABEL_CALENDAR_TODAY') || BUTTON_TEXT.TODAY;
458
+ const year = get(this.appLocale, 'LABEL_CALENDAR_YEAR') || BUTTON_TEXT.YEAR;
459
+ const month = get(this.appLocale, 'LABEL_CALENDAR_MONTH') || BUTTON_TEXT.MONTH;
460
+ const week = get(this.appLocale, 'LABEL_CALENDAR_WEEK') || BUTTON_TEXT.WEEK;
461
+ const day = get(this.appLocale, 'LABEL_CALENDAR_DAY') || BUTTON_TEXT.DAY;
462
+ const today = get(this.appLocale, 'LABEL_CALENDAR_TODAY') || BUTTON_TEXT.TODAY;
460
463
  this.calendarOptions.calendar.buttonText = { year, month, week, day, today,
461
464
  'listYear': year,
462
465
  'listMonth': month,
@@ -469,7 +472,7 @@ export class CalendarComponent extends StylableComponent {
469
472
  * @param options
470
473
  */
471
474
  overrideDefaults(options) {
472
- if (_.isObject(options)) {
475
+ if (isObject(options)) {
473
476
  Object.entries(options).map(option => this.$fullCalendar.setOption(option[0], option[1]));
474
477
  }
475
478
  }
@@ -514,7 +517,7 @@ export class CalendarComponent extends StylableComponent {
514
517
  * @param eventObject
515
518
  */
516
519
  addEventSource(eventObject) {
517
- if (_.isEmpty(eventObject)) {
520
+ if (isEmpty(eventObject)) {
518
521
  console.warn('addEventSource method requires an object as a parameter.');
519
522
  return;
520
523
  }
@@ -581,11 +584,11 @@ export class CalendarComponent extends StylableComponent {
581
584
  const self = this;
582
585
  this.$fullCalendar.batchRendering(function () {
583
586
  const events = self.$fullCalendar.getEvents();
584
- _.each(events, function (event) {
587
+ each(events, function (event) {
585
588
  const eventData = self.$fullCalendar.getEventById(event.id);
586
589
  eventData.remove();
587
590
  });
588
- _.each(self.dataSetEvents.events, function (event) {
591
+ each(self.dataSetEvents.events, function (event) {
589
592
  self.$fullCalendar.addEvent(event);
590
593
  });
591
594
  });
@@ -595,7 +598,7 @@ export class CalendarComponent extends StylableComponent {
595
598
  this.cancelLocaleChangeSubscription();
596
599
  }
597
600
  }
598
- static { this.ɵfac = function CalendarComponent_Factory(t) { return new (t || CalendarComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.AbstractI18nService)); }; }
601
+ static { this.ɵfac = function CalendarComponent_Factory(t) { return new (t || CalendarComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.AbstractI18nService), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
599
602
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CalendarComponent, selectors: [["", "wmCalendar", ""]], viewQuery: function CalendarComponent_Query(rf, ctx) { if (rf & 1) {
600
603
  i0.ɵɵviewQuery(_c0, 5);
601
604
  i0.ɵɵviewQuery(_c1, 5);
@@ -609,18 +612,24 @@ export class CalendarComponent extends StylableComponent {
609
612
  i0.ɵɵelement(0, "div", null, 0);
610
613
  } if (rf & 2) {
611
614
  i0.ɵɵattribute("aria-label", ctx.view || "month");
612
- } }, styles: [".fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc *:before,.fc *:after{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc th,.fc td{vertical-align:top;padding:0}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format(\"truetype\");font-weight:400;font-style:normal}.fc-icon{display:inline-block;width:1em;height:1em;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-family:fcicons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fc-icon-chevron-left:before{content:\"\\e900\"}.fc-icon-chevron-right:before{content:\"\\e901\"}.fc-icon-chevrons-left:before{content:\"\\e902\"}.fc-icon-chevrons-right:before{content:\"\\e903\"}.fc-icon-minus-square:before{content:\"\\e904\"}.fc-icon-plus-square:before{content:\"\\e905\"}.fc-icon-x:before{content:\"\\e906\"}.fc .fc-button{border-radius:0;overflow:visible;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button::-moz-focus-inner{padding:0;border-style:none}.fc .fc-button{display:inline-block;font-weight:400;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{outline:0;box-shadow:0 0 0 .2rem #2c3e5040}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color, #2C3E50);border-color:#2c3e50;border-color:var(--fc-button-border-color, #2C3E50)}.fc .fc-button-primary:hover{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#1e2b37;background-color:var(--fc-button-hover-bg-color, #1e2b37);border-color:#1a252f;border-color:var(--fc-button-hover-border-color, #1a252f)}.fc .fc-button-primary:disabled{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color, #2C3E50);border-color:#2c3e50;border-color:var(--fc-button-border-color, #2C3E50)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem #4c5b6a80}.fc .fc-button-primary:not(:disabled):active,.fc .fc-button-primary:not(:disabled).fc-button-active{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#1a252f;background-color:var(--fc-button-active-bg-color, #1a252f);border-color:#151e27;border-color:var(--fc-button-active-border-color, #151e27)}.fc .fc-button-primary:not(:disabled):active:focus,.fc .fc-button-primary:not(:disabled).fc-button-active:focus{box-shadow:0 0 0 .2rem #4c5b6a80}.fc .fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc .fc-button-group{position:relative;display:inline-flex;vertical-align:middle}.fc .fc-button-group>.fc-button{position:relative;flex:1 1 auto}.fc .fc-button-group>.fc-button:hover{z-index:1}.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button.fc-button-active{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.fc .fc-toolbar{display:flex;justify-content:space-between;align-items:center}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{position:absolute;inset:0}.fc .fc-scroller-harness{position:relative;overflow:hidden;direction:ltr}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{width:100%;table-layout:fixed}.fc .fc-scrollgrid table{border-top-style:hidden;border-left-style:hidden;border-right-style:hidden}.fc .fc-scrollgrid{border-collapse:separate;border-right-width:0;border-bottom-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section{height:1px}.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section table{height:1px}.fc .fc-scrollgrid-section-liquid{height:auto}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-top-width:0;border-left-width:0}.fc .fc-scrollgrid-section-header>*,.fc .fc-scrollgrid-section-footer>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:#fff;background:var(--fc-page-bg-color, #fff);position:sticky;z-index:2}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{position:absolute;inset:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-non-business,.fc .fc-highlight{position:absolute;inset:0}.fc .fc-non-business{background:#d7d7d74d;background:var(--fc-non-business-color, rgba(215, 215, 215, .3))}.fc .fc-bg-event{background:#8fdf82;background:var(--fc-bg-event-color, rgb(143, 223, 130));opacity:.3;opacity:var(--fc-bg-event-opacity, .3)}.fc .fc-bg-event .fc-event-title{margin:.5em;font-size:.85em;font-size:var(--fc-small-font-size, .85em);font-style:italic}.fc .fc-highlight{background:#bce8f14d;background:var(--fc-highlight-color, rgba(188, 232, 241, .3))}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:#d0d0d04d;background:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event[href],.fc-event.fc-event-draggable{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px #0000004d}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event:hover .fc-event-resizer,.fc-event-selected .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{border-radius:4px;border-radius:calc(var(--fc-event-resizer-dot-total-width, 8px) / 2);border-width:1px;border-width:var(--fc-event-resizer-dot-border-width, 1px);width:8px;width:var(--fc-event-resizer-dot-total-width, 8px);height:8px;height:var(--fc-event-resizer-dot-total-width, 8px);border-style:solid;border-color:inherit;background:#fff;background:var(--fc-page-bg-color, #fff)}.fc-event-selected .fc-event-resizer:before{content:\"\";position:absolute;inset:-20px}.fc-event-selected{box-shadow:0 2px 5px #0003}.fc-event-selected:before{content:\"\";position:absolute;z-index:3;inset:0}.fc-event-selected:after{content:\"\";background:#00000040;background:var(--fc-event-selected-overlay-color, rgba(0, 0, 0, .25));position:absolute;z-index:1;inset:-1px}.fc-h-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color, #3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color, #3788d8)}.fc-h-event .fc-event-main{color:#fff;color:var(--fc-event-text-color, #fff)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;vertical-align:top;left:0;right:0;max-width:100%;overflow:hidden}.fc-h-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{top:0;bottom:0;width:8px;width:var(--fc-event-resizer-thickness, 8px)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:-4px;left:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:-4px;right:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-h-event.fc-event-selected .fc-event-resizer{top:50%;margin-top:-4px;margin-top:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:-4px;left:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:-4px;right:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}:root{--fc-daygrid-event-dot-width: 8px}.fc .fc-popover{position:fixed;top:0;box-shadow:0 2px 6px #00000026}.fc .fc-popover-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;opacity:.65;font-size:1.1em}.fc-theme-standard .fc-popover{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd);background:#fff;background:var(--fc-page-bg-color, #fff)}.fc-theme-standard .fc-popover-header{background:#d0d0d04d;background:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}.fc-daygrid-day-frame:before,.fc-daygrid-day-events:before,.fc-daygrid-event-harness:before{content:\"\";clear:both;display:table}.fc-daygrid-day-frame:after,.fc-daygrid-day-events:after,.fc-daygrid-event-harness:after{content:\"\";clear:both;display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:#ffdc2826;background-color:var(--fc-today-bg-color, rgba(255, 220, 40, .15))}.fc .fc-daygrid-day-frame{position:relative;min-height:100%}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{position:relative;z-index:4;padding:4px}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{position:absolute;left:0;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{position:relative;min-height:2em}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{position:absolute;top:0;left:0;right:0}.fc .fc-daygrid-bg-harness{position:absolute;top:0;bottom:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{z-index:6;margin-top:1px}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:2px 3px 0}.fc .fc-daygrid-more-link{position:relative;z-index:4;cursor:pointer}.fc .fc-daygrid-week-number{position:absolute;z-index:5;top:0;padding:2px;min-width:1.5em;text-align:center;background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3));color:gray;color:var(--fc-neutral-text-color, #808080)}.fc .fc-more-popover{z-index:8}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{left:0;border-radius:0 0 3px}.fc-direction-rtl .fc-daygrid-week-number{right:0;border-radius:0 0 0 3px}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{position:relative;white-space:nowrap;border-radius:3px;font-size:.85em;font-size:var(--fc-small-font-size, .85em)}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{display:flex;align-items:center;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;min-width:0;overflow:hidden;font-weight:700}.fc-daygrid-dot-event:hover,.fc-daygrid-dot-event.fc-event-mirror{background:#0000001a}.fc-daygrid-dot-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-daygrid-event-dot{margin:0 4px;box-sizing:content-box;width:0;height:0;border:4px solid #3788d8;border:calc(var(--fc-daygrid-event-dot-width, 8px) / 2) solid var(--fc-event-border-color, #3788d8);border-radius:4px;border-radius:calc(var(--fc-daygrid-event-dot-width, 8px) / 2)}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}.fc-v-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color, #3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color, #3788d8)}.fc-v-event .fc-event-main{color:#fff;color:var(--fc-event-text-color, #fff);height:100%}.fc-v-event .fc-event-main-frame{height:100%;display:flex;flex-direction:column}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{top:0;bottom:0;max-height:100%;overflow:hidden}.fc-v-event:not(.fc-event-start){border-top-width:0;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event:not(.fc-event-end){border-bottom-width:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:8px;height:var(--fc-event-resizer-thickness, 8px);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:-4px;margin-left:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{position:relative;z-index:1;min-height:100%}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table{position:relative;z-index:1}.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{height:1.5em;border-bottom:0}.fc .fc-timegrid-slot:empty:before{content:\"\\a0\"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{overflow:hidden;display:flex;align-items:center;justify-content:flex-end}.fc .fc-timegrid-axis-cushion{max-width:60px;flex-shrink:0}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{height:auto;position:absolute;inset:0}.fc .fc-timegrid-col.fc-day-today{background-color:#ffdc2826;background-color:var(--fc-today-bg-color, rgba(255, 220, 40, .15))}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-liquid-hack .fc-timegrid-col-frame{height:auto;position:absolute;inset:0}.fc-media-screen .fc-timegrid-cols{position:absolute;inset:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{position:absolute;top:0;left:0;right:0}.fc-media-screen .fc-timegrid-event-harness{position:absolute}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{position:absolute;left:0;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror{box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px var(--fc-page-bg-color, #fff)}.fc-timegrid-event{font-size:.85em;font-size:var(--fc-small-font-size, .85em);border-radius:3px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{white-space:nowrap;font-size:.85em;font-size:var(--fc-small-font-size, .85em);margin-bottom:1px}.fc-timegrid-event-condensed .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-condensed .fc-event-time:after{content:\"\\a0-\\a0\"}.fc-timegrid-event-condensed .fc-event-title{font-size:.85em;font-size:var(--fc-small-font-size, .85em)}.fc-media-screen .fc-timegrid-event{position:absolute;inset:0 0 1px}.fc .fc-timegrid-now-indicator-line{position:absolute;z-index:4;left:0;right:0;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color, red);border-width:1px 0 0}.fc .fc-timegrid-now-indicator-arrow{position:absolute;z-index:4;margin-top:-5px;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color, red)}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}:root{--fc-list-event-dot-width: 10px;--fc-list-event-hover-bg-color: #f5f5f5}.fc-theme-standard .fc-list{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc .fc-list-empty{background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3));height:100%;display:flex;justify-content:center;align-items:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{width:100%;border-style:hidden}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{position:sticky;top:0;background:#fff;background:var(--fc-page-bg-color, #fff)}.fc .fc-list-table th{padding:0}.fc .fc-list-table td,.fc .fc-list-day-cushion{padding:8px 14px}.fc .fc-list-day-cushion:after{content:\"\";clear:both;display:table}.fc-theme-standard .fc-list-day-cushion{background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:#f5f5f5;background-color:var(--fc-list-event-hover-bg-color, #f5f5f5)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{display:inline-block;box-sizing:content-box;width:0;height:0;border:5px solid #3788d8;border:calc(var(--fc-list-event-dot-width, 10px) / 2) solid var(--fc-event-border-color, #3788d8);border-radius:5px;border-radius:calc(var(--fc-list-event-dot-width, 10px) / 2)}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}.fc-theme-bootstrap a:not([href]){color:inherit}\n"], encapsulation: 2 }); }
615
+ } }, styles: [".fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc *:before,.fc *:after{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc th,.fc td{vertical-align:top;padding:0}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format(\"truetype\");font-weight:400;font-style:normal}.fc-icon{display:inline-block;width:1em;height:1em;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:fcicons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fc-icon-chevron-left:before{content:\"\\e900\"}.fc-icon-chevron-right:before{content:\"\\e901\"}.fc-icon-chevrons-left:before{content:\"\\e902\"}.fc-icon-chevrons-right:before{content:\"\\e903\"}.fc-icon-minus-square:before{content:\"\\e904\"}.fc-icon-plus-square:before{content:\"\\e905\"}.fc-icon-x:before{content:\"\\e906\"}.fc .fc-button{border-radius:0;overflow:visible;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button::-moz-focus-inner{padding:0;border-style:none}.fc .fc-button{display:inline-block;font-weight:400;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{outline:0;box-shadow:0 0 0 .2rem #2c3e5040}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color, #2C3E50);border-color:#2c3e50;border-color:var(--fc-button-border-color, #2C3E50)}.fc .fc-button-primary:hover{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#1e2b37;background-color:var(--fc-button-hover-bg-color, #1e2b37);border-color:#1a252f;border-color:var(--fc-button-hover-border-color, #1a252f)}.fc .fc-button-primary:disabled{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color, #2C3E50);border-color:#2c3e50;border-color:var(--fc-button-border-color, #2C3E50)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem #4c5b6a80}.fc .fc-button-primary:not(:disabled):active,.fc .fc-button-primary:not(:disabled).fc-button-active{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#1a252f;background-color:var(--fc-button-active-bg-color, #1a252f);border-color:#151e27;border-color:var(--fc-button-active-border-color, #151e27)}.fc .fc-button-primary:not(:disabled):active:focus,.fc .fc-button-primary:not(:disabled).fc-button-active:focus{box-shadow:0 0 0 .2rem #4c5b6a80}.fc .fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc .fc-button-group{position:relative;display:inline-flex;vertical-align:middle}.fc .fc-button-group>.fc-button{position:relative;flex:1 1 auto}.fc .fc-button-group>.fc-button:hover{z-index:1}.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button.fc-button-active{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.fc .fc-toolbar{display:flex;justify-content:space-between;align-items:center}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{position:absolute;inset:0}.fc .fc-scroller-harness{position:relative;overflow:hidden;direction:ltr}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{width:100%;table-layout:fixed}.fc .fc-scrollgrid table{border-top-style:hidden;border-left-style:hidden;border-right-style:hidden}.fc .fc-scrollgrid{border-collapse:separate;border-right-width:0;border-bottom-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section{height:1px}.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section table{height:1px}.fc .fc-scrollgrid-section-liquid{height:auto}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-top-width:0;border-left-width:0}.fc .fc-scrollgrid-section-header>*,.fc .fc-scrollgrid-section-footer>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:#fff;background:var(--fc-page-bg-color, #fff);position:-webkit-sticky;position:sticky;z-index:2}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:-webkit-sticky;position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{position:absolute;inset:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-non-business,.fc .fc-highlight{position:absolute;inset:0}.fc .fc-non-business{background:#d7d7d74d;background:var(--fc-non-business-color, rgba(215, 215, 215, .3))}.fc .fc-bg-event{background:#8fdf82;background:var(--fc-bg-event-color, rgb(143, 223, 130));opacity:.3;opacity:var(--fc-bg-event-opacity, .3)}.fc .fc-bg-event .fc-event-title{margin:.5em;font-size:.85em;font-size:var(--fc-small-font-size, .85em);font-style:italic}.fc .fc-highlight{background:#bce8f14d;background:var(--fc-highlight-color, rgba(188, 232, 241, .3))}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:#d0d0d04d;background:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event[href],.fc-event.fc-event-draggable{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px #0000004d}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event:hover .fc-event-resizer,.fc-event-selected .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{border-radius:4px;border-radius:calc(var(--fc-event-resizer-dot-total-width, 8px) / 2);border-width:1px;border-width:var(--fc-event-resizer-dot-border-width, 1px);width:8px;width:var(--fc-event-resizer-dot-total-width, 8px);height:8px;height:var(--fc-event-resizer-dot-total-width, 8px);border-style:solid;border-color:inherit;background:#fff;background:var(--fc-page-bg-color, #fff)}.fc-event-selected .fc-event-resizer:before{content:\"\";position:absolute;inset:-20px}.fc-event-selected{box-shadow:0 2px 5px #0003}.fc-event-selected:before{content:\"\";position:absolute;z-index:3;inset:0}.fc-event-selected:after{content:\"\";background:#00000040;background:var(--fc-event-selected-overlay-color, rgba(0, 0, 0, .25));position:absolute;z-index:1;inset:-1px}.fc-h-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color, #3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color, #3788d8)}.fc-h-event .fc-event-main{color:#fff;color:var(--fc-event-text-color, #fff)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;vertical-align:top;left:0;right:0;max-width:100%;overflow:hidden}.fc-h-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{top:0;bottom:0;width:8px;width:var(--fc-event-resizer-thickness, 8px)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:-4px;left:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:-4px;right:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-h-event.fc-event-selected .fc-event-resizer{top:50%;margin-top:-4px;margin-top:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:-4px;left:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:-4px;right:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}:root{--fc-daygrid-event-dot-width: 8px}.fc .fc-popover{position:fixed;top:0;box-shadow:0 2px 6px #00000026}.fc .fc-popover-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;opacity:.65;font-size:1.1em}.fc-theme-standard .fc-popover{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd);background:#fff;background:var(--fc-page-bg-color, #fff)}.fc-theme-standard .fc-popover-header{background:#d0d0d04d;background:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}.fc-daygrid-day-frame:before,.fc-daygrid-day-events:before,.fc-daygrid-event-harness:before{content:\"\";clear:both;display:table}.fc-daygrid-day-frame:after,.fc-daygrid-day-events:after,.fc-daygrid-event-harness:after{content:\"\";clear:both;display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:#ffdc2826;background-color:var(--fc-today-bg-color, rgba(255, 220, 40, .15))}.fc .fc-daygrid-day-frame{position:relative;min-height:100%}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{position:relative;z-index:4;padding:4px}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{position:absolute;left:0;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{position:relative;min-height:2em}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{position:absolute;top:0;left:0;right:0}.fc .fc-daygrid-bg-harness{position:absolute;top:0;bottom:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{z-index:6;margin-top:1px}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:2px 3px 0}.fc .fc-daygrid-more-link{position:relative;z-index:4;cursor:pointer}.fc .fc-daygrid-week-number{position:absolute;z-index:5;top:0;padding:2px;min-width:1.5em;text-align:center;background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3));color:gray;color:var(--fc-neutral-text-color, #808080)}.fc .fc-more-popover{z-index:8}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{left:0;border-radius:0 0 3px}.fc-direction-rtl .fc-daygrid-week-number{right:0;border-radius:0 0 0 3px}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{position:relative;white-space:nowrap;border-radius:3px;font-size:.85em;font-size:var(--fc-small-font-size, .85em)}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{display:flex;align-items:center;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;min-width:0;overflow:hidden;font-weight:700}.fc-daygrid-dot-event:hover,.fc-daygrid-dot-event.fc-event-mirror{background:#0000001a}.fc-daygrid-dot-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-daygrid-event-dot{margin:0 4px;box-sizing:content-box;width:0;height:0;border:4px solid #3788d8;border:calc(var(--fc-daygrid-event-dot-width, 8px) / 2) solid var(--fc-event-border-color, #3788d8);border-radius:4px;border-radius:calc(var(--fc-daygrid-event-dot-width, 8px) / 2)}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}.fc-v-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color, #3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color, #3788d8)}.fc-v-event .fc-event-main{color:#fff;color:var(--fc-event-text-color, #fff);height:100%}.fc-v-event .fc-event-main-frame{height:100%;display:flex;flex-direction:column}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{top:0;bottom:0;max-height:100%;overflow:hidden}.fc-v-event:not(.fc-event-start){border-top-width:0;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event:not(.fc-event-end){border-bottom-width:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:8px;height:var(--fc-event-resizer-thickness, 8px);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:-4px;margin-left:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{position:relative;z-index:1;min-height:100%}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table{position:relative;z-index:1}.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{height:1.5em;border-bottom:0}.fc .fc-timegrid-slot:empty:before{content:\"\\a0\"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{overflow:hidden;display:flex;align-items:center;justify-content:flex-end}.fc .fc-timegrid-axis-cushion{max-width:60px;flex-shrink:0}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{height:auto;position:absolute;inset:0}.fc .fc-timegrid-col.fc-day-today{background-color:#ffdc2826;background-color:var(--fc-today-bg-color, rgba(255, 220, 40, .15))}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-liquid-hack .fc-timegrid-col-frame{height:auto;position:absolute;inset:0}.fc-media-screen .fc-timegrid-cols{position:absolute;inset:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{position:absolute;top:0;left:0;right:0}.fc-media-screen .fc-timegrid-event-harness{position:absolute}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{position:absolute;left:0;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror{box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px var(--fc-page-bg-color, #fff)}.fc-timegrid-event{font-size:.85em;font-size:var(--fc-small-font-size, .85em);border-radius:3px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{white-space:nowrap;font-size:.85em;font-size:var(--fc-small-font-size, .85em);margin-bottom:1px}.fc-timegrid-event-condensed .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-condensed .fc-event-time:after{content:\"\\a0-\\a0\"}.fc-timegrid-event-condensed .fc-event-title{font-size:.85em;font-size:var(--fc-small-font-size, .85em)}.fc-media-screen .fc-timegrid-event{position:absolute;inset:0 0 1px}.fc .fc-timegrid-now-indicator-line{position:absolute;z-index:4;left:0;right:0;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color, red);border-width:1px 0 0}.fc .fc-timegrid-now-indicator-arrow{position:absolute;z-index:4;margin-top:-5px;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color, red)}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}:root{--fc-list-event-dot-width: 10px;--fc-list-event-hover-bg-color: #f5f5f5}.fc-theme-standard .fc-list{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc .fc-list-empty{background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3));height:100%;display:flex;justify-content:center;align-items:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{width:100%;border-style:hidden}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{position:-webkit-sticky;position:sticky;top:0;background:#fff;background:var(--fc-page-bg-color, #fff)}.fc .fc-list-table th{padding:0}.fc .fc-list-table td,.fc .fc-list-day-cushion{padding:8px 14px}.fc .fc-list-day-cushion:after{content:\"\";clear:both;display:table}.fc-theme-standard .fc-list-day-cushion{background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:#f5f5f5;background-color:var(--fc-list-event-hover-bg-color, #f5f5f5)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{display:inline-block;box-sizing:content-box;width:0;height:0;border:5px solid #3788d8;border:calc(var(--fc-list-event-dot-width, 10px) / 2) solid var(--fc-event-border-color, #3788d8);border-radius:5px;border-radius:calc(var(--fc-list-event-dot-width, 10px) / 2)}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}.fc-theme-bootstrap a:not([href]){color:inherit}\n"], encapsulation: 2 }); }
613
616
  }
614
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CalendarComponent, [{
617
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CalendarComponent, [{
615
618
  type: Component,
616
619
  args: [{ selector: '[wmCalendar]', providers: [
617
620
  provideAsWidgetRef(CalendarComponent)
618
- ], encapsulation: ViewEncapsulation.None, template: "<div #calendar [attr.aria-label]=\"view || 'month'\"></div>\n", styles: [".fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc *:before,.fc *:after{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc th,.fc td{vertical-align:top;padding:0}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format(\"truetype\");font-weight:400;font-style:normal}.fc-icon{display:inline-block;width:1em;height:1em;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-family:fcicons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fc-icon-chevron-left:before{content:\"\\e900\"}.fc-icon-chevron-right:before{content:\"\\e901\"}.fc-icon-chevrons-left:before{content:\"\\e902\"}.fc-icon-chevrons-right:before{content:\"\\e903\"}.fc-icon-minus-square:before{content:\"\\e904\"}.fc-icon-plus-square:before{content:\"\\e905\"}.fc-icon-x:before{content:\"\\e906\"}.fc .fc-button{border-radius:0;overflow:visible;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button::-moz-focus-inner{padding:0;border-style:none}.fc .fc-button{display:inline-block;font-weight:400;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{outline:0;box-shadow:0 0 0 .2rem #2c3e5040}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color, #2C3E50);border-color:#2c3e50;border-color:var(--fc-button-border-color, #2C3E50)}.fc .fc-button-primary:hover{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#1e2b37;background-color:var(--fc-button-hover-bg-color, #1e2b37);border-color:#1a252f;border-color:var(--fc-button-hover-border-color, #1a252f)}.fc .fc-button-primary:disabled{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color, #2C3E50);border-color:#2c3e50;border-color:var(--fc-button-border-color, #2C3E50)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem #4c5b6a80}.fc .fc-button-primary:not(:disabled):active,.fc .fc-button-primary:not(:disabled).fc-button-active{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#1a252f;background-color:var(--fc-button-active-bg-color, #1a252f);border-color:#151e27;border-color:var(--fc-button-active-border-color, #151e27)}.fc .fc-button-primary:not(:disabled):active:focus,.fc .fc-button-primary:not(:disabled).fc-button-active:focus{box-shadow:0 0 0 .2rem #4c5b6a80}.fc .fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc .fc-button-group{position:relative;display:inline-flex;vertical-align:middle}.fc .fc-button-group>.fc-button{position:relative;flex:1 1 auto}.fc .fc-button-group>.fc-button:hover{z-index:1}.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button.fc-button-active{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.fc .fc-toolbar{display:flex;justify-content:space-between;align-items:center}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{position:absolute;inset:0}.fc .fc-scroller-harness{position:relative;overflow:hidden;direction:ltr}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{width:100%;table-layout:fixed}.fc .fc-scrollgrid table{border-top-style:hidden;border-left-style:hidden;border-right-style:hidden}.fc .fc-scrollgrid{border-collapse:separate;border-right-width:0;border-bottom-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section{height:1px}.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section table{height:1px}.fc .fc-scrollgrid-section-liquid{height:auto}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-top-width:0;border-left-width:0}.fc .fc-scrollgrid-section-header>*,.fc .fc-scrollgrid-section-footer>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:#fff;background:var(--fc-page-bg-color, #fff);position:sticky;z-index:2}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{position:absolute;inset:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-non-business,.fc .fc-highlight{position:absolute;inset:0}.fc .fc-non-business{background:#d7d7d74d;background:var(--fc-non-business-color, rgba(215, 215, 215, .3))}.fc .fc-bg-event{background:#8fdf82;background:var(--fc-bg-event-color, rgb(143, 223, 130));opacity:.3;opacity:var(--fc-bg-event-opacity, .3)}.fc .fc-bg-event .fc-event-title{margin:.5em;font-size:.85em;font-size:var(--fc-small-font-size, .85em);font-style:italic}.fc .fc-highlight{background:#bce8f14d;background:var(--fc-highlight-color, rgba(188, 232, 241, .3))}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:#d0d0d04d;background:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event[href],.fc-event.fc-event-draggable{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px #0000004d}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event:hover .fc-event-resizer,.fc-event-selected .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{border-radius:4px;border-radius:calc(var(--fc-event-resizer-dot-total-width, 8px) / 2);border-width:1px;border-width:var(--fc-event-resizer-dot-border-width, 1px);width:8px;width:var(--fc-event-resizer-dot-total-width, 8px);height:8px;height:var(--fc-event-resizer-dot-total-width, 8px);border-style:solid;border-color:inherit;background:#fff;background:var(--fc-page-bg-color, #fff)}.fc-event-selected .fc-event-resizer:before{content:\"\";position:absolute;inset:-20px}.fc-event-selected{box-shadow:0 2px 5px #0003}.fc-event-selected:before{content:\"\";position:absolute;z-index:3;inset:0}.fc-event-selected:after{content:\"\";background:#00000040;background:var(--fc-event-selected-overlay-color, rgba(0, 0, 0, .25));position:absolute;z-index:1;inset:-1px}.fc-h-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color, #3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color, #3788d8)}.fc-h-event .fc-event-main{color:#fff;color:var(--fc-event-text-color, #fff)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;vertical-align:top;left:0;right:0;max-width:100%;overflow:hidden}.fc-h-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{top:0;bottom:0;width:8px;width:var(--fc-event-resizer-thickness, 8px)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:-4px;left:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:-4px;right:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-h-event.fc-event-selected .fc-event-resizer{top:50%;margin-top:-4px;margin-top:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:-4px;left:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:-4px;right:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}:root{--fc-daygrid-event-dot-width: 8px}.fc .fc-popover{position:fixed;top:0;box-shadow:0 2px 6px #00000026}.fc .fc-popover-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;opacity:.65;font-size:1.1em}.fc-theme-standard .fc-popover{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd);background:#fff;background:var(--fc-page-bg-color, #fff)}.fc-theme-standard .fc-popover-header{background:#d0d0d04d;background:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}.fc-daygrid-day-frame:before,.fc-daygrid-day-events:before,.fc-daygrid-event-harness:before{content:\"\";clear:both;display:table}.fc-daygrid-day-frame:after,.fc-daygrid-day-events:after,.fc-daygrid-event-harness:after{content:\"\";clear:both;display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:#ffdc2826;background-color:var(--fc-today-bg-color, rgba(255, 220, 40, .15))}.fc .fc-daygrid-day-frame{position:relative;min-height:100%}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{position:relative;z-index:4;padding:4px}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{position:absolute;left:0;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{position:relative;min-height:2em}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{position:absolute;top:0;left:0;right:0}.fc .fc-daygrid-bg-harness{position:absolute;top:0;bottom:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{z-index:6;margin-top:1px}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:2px 3px 0}.fc .fc-daygrid-more-link{position:relative;z-index:4;cursor:pointer}.fc .fc-daygrid-week-number{position:absolute;z-index:5;top:0;padding:2px;min-width:1.5em;text-align:center;background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3));color:gray;color:var(--fc-neutral-text-color, #808080)}.fc .fc-more-popover{z-index:8}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{left:0;border-radius:0 0 3px}.fc-direction-rtl .fc-daygrid-week-number{right:0;border-radius:0 0 0 3px}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{position:relative;white-space:nowrap;border-radius:3px;font-size:.85em;font-size:var(--fc-small-font-size, .85em)}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{display:flex;align-items:center;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;min-width:0;overflow:hidden;font-weight:700}.fc-daygrid-dot-event:hover,.fc-daygrid-dot-event.fc-event-mirror{background:#0000001a}.fc-daygrid-dot-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-daygrid-event-dot{margin:0 4px;box-sizing:content-box;width:0;height:0;border:4px solid #3788d8;border:calc(var(--fc-daygrid-event-dot-width, 8px) / 2) solid var(--fc-event-border-color, #3788d8);border-radius:4px;border-radius:calc(var(--fc-daygrid-event-dot-width, 8px) / 2)}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}.fc-v-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color, #3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color, #3788d8)}.fc-v-event .fc-event-main{color:#fff;color:var(--fc-event-text-color, #fff);height:100%}.fc-v-event .fc-event-main-frame{height:100%;display:flex;flex-direction:column}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{top:0;bottom:0;max-height:100%;overflow:hidden}.fc-v-event:not(.fc-event-start){border-top-width:0;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event:not(.fc-event-end){border-bottom-width:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:8px;height:var(--fc-event-resizer-thickness, 8px);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:-4px;margin-left:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{position:relative;z-index:1;min-height:100%}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table{position:relative;z-index:1}.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{height:1.5em;border-bottom:0}.fc .fc-timegrid-slot:empty:before{content:\"\\a0\"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{overflow:hidden;display:flex;align-items:center;justify-content:flex-end}.fc .fc-timegrid-axis-cushion{max-width:60px;flex-shrink:0}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{height:auto;position:absolute;inset:0}.fc .fc-timegrid-col.fc-day-today{background-color:#ffdc2826;background-color:var(--fc-today-bg-color, rgba(255, 220, 40, .15))}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-liquid-hack .fc-timegrid-col-frame{height:auto;position:absolute;inset:0}.fc-media-screen .fc-timegrid-cols{position:absolute;inset:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{position:absolute;top:0;left:0;right:0}.fc-media-screen .fc-timegrid-event-harness{position:absolute}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{position:absolute;left:0;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror{box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px var(--fc-page-bg-color, #fff)}.fc-timegrid-event{font-size:.85em;font-size:var(--fc-small-font-size, .85em);border-radius:3px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{white-space:nowrap;font-size:.85em;font-size:var(--fc-small-font-size, .85em);margin-bottom:1px}.fc-timegrid-event-condensed .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-condensed .fc-event-time:after{content:\"\\a0-\\a0\"}.fc-timegrid-event-condensed .fc-event-title{font-size:.85em;font-size:var(--fc-small-font-size, .85em)}.fc-media-screen .fc-timegrid-event{position:absolute;inset:0 0 1px}.fc .fc-timegrid-now-indicator-line{position:absolute;z-index:4;left:0;right:0;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color, red);border-width:1px 0 0}.fc .fc-timegrid-now-indicator-arrow{position:absolute;z-index:4;margin-top:-5px;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color, red)}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}:root{--fc-list-event-dot-width: 10px;--fc-list-event-hover-bg-color: #f5f5f5}.fc-theme-standard .fc-list{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc .fc-list-empty{background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3));height:100%;display:flex;justify-content:center;align-items:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{width:100%;border-style:hidden}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{position:sticky;top:0;background:#fff;background:var(--fc-page-bg-color, #fff)}.fc .fc-list-table th{padding:0}.fc .fc-list-table td,.fc .fc-list-day-cushion{padding:8px 14px}.fc .fc-list-day-cushion:after{content:\"\";clear:both;display:table}.fc-theme-standard .fc-list-day-cushion{background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:#f5f5f5;background-color:var(--fc-list-event-hover-bg-color, #f5f5f5)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{display:inline-block;box-sizing:content-box;width:0;height:0;border:5px solid #3788d8;border:calc(var(--fc-list-event-dot-width, 10px) / 2) solid var(--fc-event-border-color, #3788d8);border-radius:5px;border-radius:calc(var(--fc-list-event-dot-width, 10px) / 2)}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}.fc-theme-bootstrap a:not([href]){color:inherit}\n"] }]
619
- }], function () { return [{ type: i0.Injector }, { type: i1.AbstractI18nService }]; }, { _calendar: [{
621
+ ], encapsulation: ViewEncapsulation.None, template: "<div #calendar [attr.aria-label]=\"view || 'month'\"></div>\n", styles: [".fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc-unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc *:before,.fc *:after{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc th,.fc td{vertical-align:top;padding:0}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format(\"truetype\");font-weight:400;font-style:normal}.fc-icon{display:inline-block;width:1em;height:1em;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:fcicons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fc-icon-chevron-left:before{content:\"\\e900\"}.fc-icon-chevron-right:before{content:\"\\e901\"}.fc-icon-chevrons-left:before{content:\"\\e902\"}.fc-icon-chevrons-right:before{content:\"\\e903\"}.fc-icon-minus-square:before{content:\"\\e904\"}.fc-icon-plus-square:before{content:\"\\e905\"}.fc-icon-x:before{content:\"\\e906\"}.fc .fc-button{border-radius:0;overflow:visible;text-transform:none;margin:0;font-family:inherit;font-size:inherit;line-height:inherit}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button::-moz-focus-inner{padding:0;border-style:none}.fc .fc-button{display:inline-block;font-weight:400;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{outline:0;box-shadow:0 0 0 .2rem #2c3e5040}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color, #2C3E50);border-color:#2c3e50;border-color:var(--fc-button-border-color, #2C3E50)}.fc .fc-button-primary:hover{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#1e2b37;background-color:var(--fc-button-hover-bg-color, #1e2b37);border-color:#1a252f;border-color:var(--fc-button-hover-border-color, #1a252f)}.fc .fc-button-primary:disabled{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#2c3e50;background-color:var(--fc-button-bg-color, #2C3E50);border-color:#2c3e50;border-color:var(--fc-button-border-color, #2C3E50)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem #4c5b6a80}.fc .fc-button-primary:not(:disabled):active,.fc .fc-button-primary:not(:disabled).fc-button-active{color:#fff;color:var(--fc-button-text-color, #fff);background-color:#1a252f;background-color:var(--fc-button-active-bg-color, #1a252f);border-color:#151e27;border-color:var(--fc-button-active-border-color, #151e27)}.fc .fc-button-primary:not(:disabled):active:focus,.fc .fc-button-primary:not(:disabled).fc-button-active:focus{box-shadow:0 0 0 .2rem #4c5b6a80}.fc .fc-button .fc-icon{vertical-align:middle;font-size:1.5em}.fc .fc-button-group{position:relative;display:inline-flex;vertical-align:middle}.fc .fc-button-group>.fc-button{position:relative;flex:1 1 auto}.fc .fc-button-group>.fc-button:hover{z-index:1}.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button.fc-button-active{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.fc .fc-toolbar{display:flex;justify-content:space-between;align-items:center}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{position:absolute;inset:0}.fc .fc-scroller-harness{position:relative;overflow:hidden;direction:ltr}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{width:100%;table-layout:fixed}.fc .fc-scrollgrid table{border-top-style:hidden;border-left-style:hidden;border-right-style:hidden}.fc .fc-scrollgrid{border-collapse:separate;border-right-width:0;border-bottom-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section{height:1px}.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section table{height:1px}.fc .fc-scrollgrid-section-liquid{height:auto}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-top-width:0;border-left-width:0}.fc .fc-scrollgrid-section-header>*,.fc .fc-scrollgrid-section-footer>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:#fff;background:var(--fc-page-bg-color, #fff);position:-webkit-sticky;position:sticky;z-index:2}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:-webkit-sticky;position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{position:absolute;inset:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-non-business,.fc .fc-highlight{position:absolute;inset:0}.fc .fc-non-business{background:#d7d7d74d;background:var(--fc-non-business-color, rgba(215, 215, 215, .3))}.fc .fc-bg-event{background:#8fdf82;background:var(--fc-bg-event-color, rgb(143, 223, 130));opacity:.3;opacity:var(--fc-bg-event-opacity, .3)}.fc .fc-bg-event .fc-event-title{margin:.5em;font-size:.85em;font-size:var(--fc-small-font-size, .85em);font-style:italic}.fc .fc-highlight{background:#bce8f14d;background:var(--fc-highlight-color, rgba(188, 232, 241, .3))}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:#d0d0d04d;background:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event[href],.fc-event.fc-event-draggable{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px #0000004d}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event:hover .fc-event-resizer,.fc-event-selected .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{border-radius:4px;border-radius:calc(var(--fc-event-resizer-dot-total-width, 8px) / 2);border-width:1px;border-width:var(--fc-event-resizer-dot-border-width, 1px);width:8px;width:var(--fc-event-resizer-dot-total-width, 8px);height:8px;height:var(--fc-event-resizer-dot-total-width, 8px);border-style:solid;border-color:inherit;background:#fff;background:var(--fc-page-bg-color, #fff)}.fc-event-selected .fc-event-resizer:before{content:\"\";position:absolute;inset:-20px}.fc-event-selected{box-shadow:0 2px 5px #0003}.fc-event-selected:before{content:\"\";position:absolute;z-index:3;inset:0}.fc-event-selected:after{content:\"\";background:#00000040;background:var(--fc-event-selected-overlay-color, rgba(0, 0, 0, .25));position:absolute;z-index:1;inset:-1px}.fc-h-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color, #3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color, #3788d8)}.fc-h-event .fc-event-main{color:#fff;color:var(--fc-event-text-color, #fff)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;vertical-align:top;left:0;right:0;max-width:100%;overflow:hidden}.fc-h-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{top:0;bottom:0;width:8px;width:var(--fc-event-resizer-thickness, 8px)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:-4px;left:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:-4px;right:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-h-event.fc-event-selected .fc-event-resizer{top:50%;margin-top:-4px;margin-top:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:-4px;left:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:-4px;right:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}:root{--fc-daygrid-event-dot-width: 8px}.fc .fc-popover{position:fixed;top:0;box-shadow:0 2px 6px #00000026}.fc .fc-popover-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;opacity:.65;font-size:1.1em}.fc-theme-standard .fc-popover{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd);background:#fff;background:var(--fc-page-bg-color, #fff)}.fc-theme-standard .fc-popover-header{background:#d0d0d04d;background:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}.fc-daygrid-day-frame:before,.fc-daygrid-day-events:before,.fc-daygrid-event-harness:before{content:\"\";clear:both;display:table}.fc-daygrid-day-frame:after,.fc-daygrid-day-events:after,.fc-daygrid-event-harness:after{content:\"\";clear:both;display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:#ffdc2826;background-color:var(--fc-today-bg-color, rgba(255, 220, 40, .15))}.fc .fc-daygrid-day-frame{position:relative;min-height:100%}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{position:relative;z-index:4;padding:4px}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{position:absolute;left:0;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{position:relative;min-height:2em}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{position:absolute;top:0;left:0;right:0}.fc .fc-daygrid-bg-harness{position:absolute;top:0;bottom:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{z-index:6;margin-top:1px}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:2px 3px 0}.fc .fc-daygrid-more-link{position:relative;z-index:4;cursor:pointer}.fc .fc-daygrid-week-number{position:absolute;z-index:5;top:0;padding:2px;min-width:1.5em;text-align:center;background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3));color:gray;color:var(--fc-neutral-text-color, #808080)}.fc .fc-more-popover{z-index:8}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{left:0;border-radius:0 0 3px}.fc-direction-rtl .fc-daygrid-week-number{right:0;border-radius:0 0 0 3px}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{position:relative;white-space:nowrap;border-radius:3px;font-size:.85em;font-size:var(--fc-small-font-size, .85em)}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{display:flex;align-items:center;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;min-width:0;overflow:hidden;font-weight:700}.fc-daygrid-dot-event:hover,.fc-daygrid-dot-event.fc-event-mirror{background:#0000001a}.fc-daygrid-dot-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-daygrid-event-dot{margin:0 4px;box-sizing:content-box;width:0;height:0;border:4px solid #3788d8;border:calc(var(--fc-daygrid-event-dot-width, 8px) / 2) solid var(--fc-event-border-color, #3788d8);border-radius:4px;border-radius:calc(var(--fc-daygrid-event-dot-width, 8px) / 2)}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}.fc-v-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color, #3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color, #3788d8)}.fc-v-event .fc-event-main{color:#fff;color:var(--fc-event-text-color, #fff);height:100%}.fc-v-event .fc-event-main-frame{height:100%;display:flex;flex-direction:column}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{top:0;bottom:0;max-height:100%;overflow:hidden}.fc-v-event:not(.fc-event-start){border-top-width:0;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event:not(.fc-event-end){border-bottom-width:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:8px;height:var(--fc-event-resizer-thickness, 8px);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-thickness, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:-4px;margin-left:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-dot-total-width, 8px) / -2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{position:relative;z-index:1;min-height:100%}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table{position:relative;z-index:1}.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{height:1.5em;border-bottom:0}.fc .fc-timegrid-slot:empty:before{content:\"\\a0\"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{overflow:hidden;display:flex;align-items:center;justify-content:flex-end}.fc .fc-timegrid-axis-cushion{max-width:60px;flex-shrink:0}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{height:auto;position:absolute;inset:0}.fc .fc-timegrid-col.fc-day-today{background-color:#ffdc2826;background-color:var(--fc-today-bg-color, rgba(255, 220, 40, .15))}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-liquid-hack .fc-timegrid-col-frame{height:auto;position:absolute;inset:0}.fc-media-screen .fc-timegrid-cols{position:absolute;inset:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{position:absolute;top:0;left:0;right:0}.fc-media-screen .fc-timegrid-event-harness{position:absolute}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{position:absolute;left:0;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror{box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px var(--fc-page-bg-color, #fff)}.fc-timegrid-event{font-size:.85em;font-size:var(--fc-small-font-size, .85em);border-radius:3px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{white-space:nowrap;font-size:.85em;font-size:var(--fc-small-font-size, .85em);margin-bottom:1px}.fc-timegrid-event-condensed .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-condensed .fc-event-time:after{content:\"\\a0-\\a0\"}.fc-timegrid-event-condensed .fc-event-title{font-size:.85em;font-size:var(--fc-small-font-size, .85em)}.fc-media-screen .fc-timegrid-event{position:absolute;inset:0 0 1px}.fc .fc-timegrid-now-indicator-line{position:absolute;z-index:4;left:0;right:0;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color, red);border-width:1px 0 0}.fc .fc-timegrid-now-indicator-arrow{position:absolute;z-index:4;margin-top:-5px;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color, red)}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}:root{--fc-list-event-dot-width: 10px;--fc-list-event-hover-bg-color: #f5f5f5}.fc-theme-standard .fc-list{border:1px solid #ddd;border:1px solid var(--fc-border-color, #ddd)}.fc .fc-list-empty{background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3));height:100%;display:flex;justify-content:center;align-items:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{width:100%;border-style:hidden}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{position:-webkit-sticky;position:sticky;top:0;background:#fff;background:var(--fc-page-bg-color, #fff)}.fc .fc-list-table th{padding:0}.fc .fc-list-table td,.fc .fc-list-day-cushion{padding:8px 14px}.fc .fc-list-day-cushion:after{content:\"\";clear:both;display:table}.fc-theme-standard .fc-list-day-cushion{background-color:#d0d0d04d;background-color:var(--fc-neutral-bg-color, rgba(208, 208, 208, .3))}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:#f5f5f5;background-color:var(--fc-list-event-hover-bg-color, #f5f5f5)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{display:inline-block;box-sizing:content-box;width:0;height:0;border:5px solid #3788d8;border:calc(var(--fc-list-event-dot-width, 10px) / 2) solid var(--fc-event-border-color, #3788d8);border-radius:5px;border-radius:calc(var(--fc-list-event-dot-width, 10px) / 2)}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}.fc-theme-bootstrap a:not([href]){color:inherit}\n"] }]
622
+ }], () => [{ type: i0.Injector }, { type: i1.AbstractI18nService }, { type: undefined, decorators: [{
623
+ type: Inject,
624
+ args: ['EXPLICIT_CONTEXT']
625
+ }, {
626
+ type: Optional
627
+ }] }], { _calendar: [{
620
628
  type: ViewChild,
621
629
  args: ['calendar']
622
630
  }], _datepicker: [{
623
631
  type: ViewChild,
624
632
  args: ['datepicker']
625
633
  }] }); })();
626
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2NhbGVuZGFyL3NyYy9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFHUixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxtQkFBbUIsRUFBRSxlQUFlLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRS9GLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLGdCQUFnQixFQUVoQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7O0FBSS9DLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQztBQUNuQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUscUJBQXFCLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDL00sTUFBTSxvQkFBb0IsR0FBRztJQUN6QixLQUFLLEVBQUUsaUJBQWlCO0lBQ3hCLE1BQU0sRUFBRSxPQUFPO0lBQ2YsR0FBRyxFQUFFLHFDQUFxQztDQUM3QyxDQUFDO0FBQ0YsTUFBTSxVQUFVLEdBQUc7SUFDZixLQUFLLEVB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aUJBQWlCOzs7Ozs7OzhDQUxmO2dCQUNQLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDO2FBQ3hDO1lDOUZMLCtCQUF5RDs7WUFBMUMsaURBQW1DOzs7dUZEaUdyQyxpQkFBaUI7Y0FUN0IsU0FBUzsyQkFDSSxjQUFjLGFBR2I7b0JBQ1Asa0JBQWtCLG1CQUFtQjtpQkFDeEMsaUJBQ2MsaUJBQWlCLENBQUMsSUFBSTs2RkFLZCxTQUFTO2tCQUEvQixTQUFTO21CQUFDLFVBQVU7WUFDSSxXQUFXO2tCQUFuQyxTQUFTO21CQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3RvcixcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtBYnN0cmFjdEkxOG5TZXJ2aWNlLCBnZXRDbG9uZWRPYmplY3QsIGdldFNlc3Npb25TdG9yYWdlSXRlbSwgaXNNb2JpbGV9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHtcbiAgICBBUFBMWV9TVFlMRVNfVFlQRSxcbiAgICBjcmVhdGVBcnJheUZyb20sXG4gICAgZ2V0RXZhbHVhdGVkRGF0YSxcbiAgICBJUmVkcmF3YWJsZUNvbXBvbmVudCxcbiAgICBwcm92aWRlQXNXaWRnZXRSZWYsXG4gICAgU3R5bGFibGVDb21wb25lbnQsXG4gICAgc3R5bGVyXG59IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuXG5pbXBvcnQge3JlZ2lzdGVyUHJvcHN9IGZyb20gJy4vY2FsZW5kYXIucHJvcHMnO1xuXG5kZWNsYXJlIGNvbnN0IF8sICQsIG1vbWVudDtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWNhbGVuZGFyJztcbmNvbnN0IGRhdGVGb3JtYXRzID0gWyd5eXl5LU1NLWRkJywgJ3l5eXktTS1kZCcsICdNLWRkLXl5eXknLCAnTU0tZGQteXknLCAneXl5eSwgZGQgTU1NTScsICd5eXl5LCBNTU0gZGQnLCAnTU0vZGQveXl5eScsICdNL2QveXl5eScsICdFRUUsIGRkIE1NTSB5eXl5JywgJ0VFRSBNTU0gZGQgeXl5eScsICdFRUVFLCBNTU1NIGRkLCB5eXl5JywgJ3RpbWVzdGFtcCddO1xuY29uc3QgZGVmYXVsdEhlYWRlck9wdGlvbnMgPSB7XG4gICAgc3RhcnQ6ICdwcmV2IG5leHQgdG9kYXknLFxuICAgIGNlbnRlcjogJ3RpdGxlJyxcbiAgICBlbmQ6ICdkYXlHcmlkTW9udGggZGF5R3JpZFdlZWsgZGF5R3JpZERheSdcbn07XG5jb25zdCBWSUVXX1RZUEVTID0ge1xuICAgIEJBU0lDOiAnYmFzaWMnLFxuICAgIEFHRU5EQTogJ2FnZW5kYScsXG4gICAgTElTVDogJ2xpc3QnXG59O1xuY29uc3QgQlVUVE9OX1RFWFQgPSB7XG4gICAgWUVBUjogJ1llYXInLFxuICAgIE1PTlRIOiAnTW9udGgnLFxuICAgIFdFRUs6ICdXZWVrJyxcbiAgICBEQVk6ICdEYXknLFxuICAgIFRPREFZOiAnVG9kYXknXG59O1xuY29uc3QgU0VMRUNUSU9OX01PREVTID0ge1xuICAgIE5PTkU6ICdub25lJyxcbiAgICBTSU5HTEU6ICdzaW5nbGUnLFxuICAgIE1VTFRJUExFOiAnbXVsdGlwbGUnXG59O1xuY29uc3QgTkVYVF9EQVlfVEhSRVNIT0xEID0ge1xuICAgIFNUQVJUOiAnMDA6MDAnLFxuICAgIEVORDogJzI0OjAwJ1xufTtcbmNvbnN0IGdldEV2ZW50TW9tZW50VmFsdWUgPSAodmFsdWUsIGtleSkgPT4ge1xuICAgIGxldCBpc0RhdGUgPSBmYWxzZTtcblxuICAgIGRhdGVGb3JtYXRzLmZvckVhY2goKGZvcm1hdCkgPT4ge1xuICAgICAgICAvLyBtb21lbnQgc3VwcG9ydHMgdXBwZXJjYXNlIGZvcm1hdHNcbiAgICAgICAgaWYgKG1vbWVudCh2YWx1ZSwgZm9ybWF0LnRvVXBwZXJDYXNlKCksIHRydWUpLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgaXNEYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gaWYgdGhlIHZhbHVlIGlzIGRhdGUgdGhlbiBmb3IgZW5kIGRhdGUgdGhlIHZhbHVlIHNob3VsZCBiZSBlbmQgb2YgdGhlIGRheSBhcyB0aGUgY2FsZW5kYXIgaXMgYXBwcm94aW1hdGluZyBpdCB0byB0aGUgc3RhcnQuXG4gICAgaWYgKGlzRGF0ZSAmJiBrZXkgPT09ICdlbmQnKSB7XG4gICAgICAgIHJldHVybiBtb21lbnQodmFsdWUpLmVuZE9mKCdkYXknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9tZW50KHZhbHVlKTtcbn07XG5jb25zdCBnZXRVVENEYXRlVGltZSA9IChkYXRlT2JqKSA9PiB7XG4gICAgZGF0ZU9iaiA9IG1vbWVudChkYXRlT2JqKTtcbiAgICBjb25zdCB5ZWFyID0gZGF0ZU9iai5mb3JtYXQoJ1lZWVknKSxcbiAgICAgICAgLy8gamF2YXNjcmlwdCBzdGFydHMgdGhlIG1vbnRoIGNvdW50IGZyb20gJzAnIHdoZXJlIGFzIG1vbWVudCByZXR1cm5zIHRoZSBodW1hbiBjb3VudFxuICAgICAgICBtb250aCA9IGRhdGVPYmouZm9ybWF0KCdNTScpIC0gMSxcbiAgICAgICAgZGF5ID0gZGF0ZU9iai5mb3JtYXQoJ0REJyksXG4gICAgICAgIGhvdXJzID0gZGF0ZU9iai5mb3JtYXQoJ0hIJyksXG4gICAgICAgIG1pbnV0ZXMgPSBkYXRlT2JqLmZvcm1hdCgnbW0nKSxcbiAgICAgICAgc2Vjb25kcyA9IGRhdGVPYmouZm9ybWF0KCdzcycpO1xuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5LCBob3VycywgbWludXRlcywgc2Vjb25kcyk7XG59O1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tY2FsZW5kYXInLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcbmNvbnN0IGRhdGVGb3JtYXQgPSAnWVlZWS9NTS9ERCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ2FsZW5kYXJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZnVsbGNhbGVuZGFyL21haW4uY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihDYWxlbmRhckNvbXBvbmVudClcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95LCBJUmVkcmF3YWJsZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICAvLyBUaGUgY2FsZW5kYXIgZWxlbWVudCByZWZlcmVuY2VcbiAgICBAVmlld0NoaWxkKCdjYWxlbmRhcicpIF9jYWxlbmRhcjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdkYXRlcGlja2VyJykgX2RhdGVwaWNrZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRkYXRlczogYW55O1xuICAgIHB1YmxpYyBzZWxlY3RlZGRhdGE6IGFueTtcbiAgICBwdWJsaWMgY3VycmVudHZpZXc6IG9iamVjdDtcbiAgICBwdWJsaWMgZGF0YXNldDogYW55O1xuICAgIHB1YmxpYyBjYWxlbmRhcnR5cGU7XG4gICAgcHVibGljIGNvbnRyb2xzID0gJ25hdmlnYXRpb24sIHRvZGF5LCB5ZWFyLCBtb250aCwgd2VlaywgZGF5JztcbiAgICBwdWJsaWMgZGF0YXZhbHVlO1xuICAgIHB1YmxpYyBldmVudHRpdGxlO1xuICAgIHB1YmxpYyBldmVudHN0YXJ0O1xuICAgIHB1YmxpYyBldmVudGVuZDtcbiAgICBwdWJsaWMgZXZlbnRhbGxkYXk7XG4gICAgcHVibGljIGV2ZW50Y2xhc3M7XG5cbiAgICBwcml2YXRlIGV2ZW50U291cmNlczogQXJyYXk8YW55PiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBkYXRhU2V0RXZlbnRzID0ge1xuICAgICAgICBldmVudHM6IFtdXG4gICAgfTtcbiAgICBwcml2YXRlIG9sZERhdGE7XG4gICAgLy8gbWFwIHRoZSBmdWxsY2FsZW5kYXIgRWxlbWVudCByZW5kZXJlZFxuICAgIHByaXZhdGUgJGZ1bGxDYWxlbmRhcjtcbiAgICAvLyBtb2RlbCB0byB0aGUgbW9iaWxlIGNhbGVuZGFyXG4gICAgcHJpdmF0ZSBwcm94eU1vZGVsO1xuICAgIHByaXZhdGUgZXZlbnREYXRhO1xuICAgIHByaXZhdGUgZXZlbnRzO1xuICAgIHByaXZhdGUgY2hhbmdlc1N0YWNrID0gW107XG5cbiAgICAvLyBjYWxlbmRhck9wdGlvbnMgdG8gdGhlIGNhbGVuZGFyXG4gICAgcHJpdmF0ZSBjYWxlbmRhck9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIGhlaWdodDogNjAwLFxuICAgICAgICAgICAgZXZlbnRTb3VyY2VzOiB0aGlzLmV2ZW50U291cmNlcyxcbiAgICAgICAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0oJ3NlbGVjdGVkTG9jYWxlJykgfHwgJ2VuJyxcbiAgICAgICAgICAgIHNlbGVjdGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgbG9uZ1ByZXNzRGVsYXk6IGlzTW9iaWxlKCkgPyAxIDogMTAwMCxcbiAgICAgICAgICAgIGhlYWRlclRvb2xiYXI6IGRlZmF1bHRIZWFkZXJPcHRpb25zLFxuICAgICAgICAgICAgbmV4dERheVRocmVzaG9sZDogTkVYVF9EQVlfVEhSRVNIT0xELFxuICAgICAgICAgICAgdmlld3M6IHtcbiAgICAgICAgICAgICAgICBtb250aDoge1xuICAgICAgICAgICAgICAgICAgICBkYXlNYXhFdmVudHNSb3c6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdW5zZWxlY3RBdXRvOiBmYWxzZSxcbiAgICAgICAgICAgIGV2ZW50RHJvcDogdGhpcy5ldmVudERyb3AuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50UmVzaXplU3RhcnQ6IHRoaXMub25FdmVudENoYW5nZVN0YXJ0LmJpbmQodGhpcyksXG4gICAgICAgICAgICBldmVudERyYWdTdGFydDogdGhpcy5vbkV2ZW50Q2hhbmdlU3RhcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50UmVzaXplOiB0aGlzLmV2ZW50UmVzaXplLmJpbmQodGhpcyksXG4gICAgICAgICAgICBldmVudENsaWNrOiB0aGlzLmV2ZW50Q2xpY2suYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHNlbGVjdDogdGhpcy5zZWxlY3QuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50RGlkTW91bnQ6IHRoaXMuZXZlbnREaWRNb3VudC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdmlld0RpZE1vdW50OiB0aGlzLnZpZXdEaWRNb3VudC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZGF0ZXNTZXQ6IHRoaXMuZGF0ZXNTZXQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGRhdGVDbGljazogdGhpcy5kYXRlQ2xpY2suYmluZCh0aGlzKVxuICAgICAgICB9XG4gICAgfTtcbiAgICBwdWJsaWMgdmlldzogc3RyaW5nO1xuICAgIHByaXZhdGUgZGF5Q2xhc3M6IEFycmF5PGFueT4gPSBbXTtcbiAgICBwcml2YXRlIGNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbjtcblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gc2VsZWN0cyB0aGUgZGVmYXVsdCBkYXRlIGdpdmVuIGZvciB0aGUgY2FsZW5kYXJcbiAgICBzZWxlY3REYXRlKCkge1xuICAgICAgICBsZXQgc3RhcnQsIGVuZDtcbiAgICAgICAgLy8gY2hlY2tzIGlmIGRhdGF2YWx1ZSBpcyBhbiBvYmplY3QgYW5kIG5vdCBhIERhdGUgb2JqZWN0XG4gICAgICAgIGlmIChfLmlzT2JqZWN0KHRoaXMuZGF0YXZhbHVlKSAmJiAhXy5pc0RhdGUodGhpcy5kYXRhdmFsdWUpKSB7XG4gICAgICAgICAgICBzdGFydCA9IG1vbWVudCh0aGlzLmRhdGF2YWx1ZS5zdGFydCk7XG4gICAgICAgICAgICBlbmQgICA9IG1vbWVudCh0aGlzLmRhdGF2YWx1ZS5lbmQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnQgPSBtb21lbnQodGhpcy5kYXRhdmFsdWUpO1xuICAgICAgICAgICAgZW5kICAgPSBtb21lbnQodGhpcy5kYXRhdmFsdWUpLmFkZCgxLCAnZGF5Jykuc3RhcnRPZignZGF5Jyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuZ290b0RhdGUoIG1vbWVudChzdGFydCkuX2QpOyAvLyBhZnRlciBzZWxlY3RpbmcgdGhlIGRhdGUgZ28gdG8gdGhlIGRhdGUuXG5cbiAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLnNlbGVjdChzdGFydC52YWx1ZU9mKCksIGVuZC52YWx1ZU9mKCkpO1xuICAgIH1cblxuICAgIC8vIGNoYW5nZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGRlZmF1bHQgZGF0ZSBnaXZlbiBmb3IgdGhlIGNhbGVuZGFyLlxuICAgIHB1YmxpYyBnb3RvRGF0ZSgpIHtcbiAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmdvdG9EYXRlKCBtb21lbnQodGhpcy5kYXRhdmFsdWUpLl9kKTtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBjYWxlbmRhciB2aWV3IHRvIHRoZSBhIHllYXIgYWhlYWRcbiAgICBwdWJsaWMgZ290b05leHRZZWFyKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIubmV4dFllYXIoKTtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBjYWxlbmRhciB2aWV3IHRvIHRoZSBhIHllYXIgYmVmb3JlXG4gICAgcHVibGljIGdvdG9QcmV2WWVhcigpIHtcbiAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLnByZXZZZWFyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgY2FsZW5kYXIgdmlldyB0byB0aGUgc3BlY2lmaWVkIG1vbnRoXG4gICAgICogQHBhcmFtIG1vbnRoVmFsLCAxLTEyIHZhbHVlIG9mIG1vbnRoXG4gICAgICovXG4gICAgcHVibGljIGdvdG9Nb250aChtb250aFZhbCkge1xuICAgICAgICBsZXQgcHJlc2VudERheSA9IHRoaXMuJGZ1bGxDYWxlbmRhci5nZXREYXRlKCk7XG4gICAgICAgIGNvbnN0IHByZXNlbnRNb250aFZhbCA9IHByZXNlbnREYXkuZ2V0TW9udGgoKTtcbiAgICAgICAgcHJlc2VudERheSA9IG1vbWVudChwcmVzZW50RGF5KTtcbiAgICAgICAgaWYgKHByZXNlbnRNb250aFZhbCA8IG1vbnRoVmFsKSB7XG4gICAgICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuZ290b0RhdGUocHJlc2VudERheS5hZGQobW9udGhWYWwgLSBwcmVzZW50TW9udGhWYWwgLSAxLCAnTScpLnZhbHVlT2YoKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuZ290b0RhdGUocHJlc2VudERheS5zdWJ0cmFjdCggcHJlc2VudE1vbnRoVmFsIC0gbW9udGhWYWwgKyAxLCAnTScpLnZhbHVlT2YoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBjYWxlbmRhciB2aWV3IHRvIHRoZSBhIG1vbnRoIGFoZWFkXG4gICAgcHVibGljIGdvdG9OZXh0TW9udGgoKSB7XG4gICAgICAgIGNvbnN0IHByZXNlbnREYXkgPSBtb21lbnQodGhpcy4kZnVsbENhbGVuZGFyLmdldERhdGUoKSk7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZShwcmVzZW50RGF5LmFkZCgxLCAnTScpLnZhbHVlT2YoKSk7XG4gICAgfVxuXG4gICAgLy8gdGhpcyBmdW5jdGlvbiB0YWtlcyB0aGUgY2FsZW5kYXIgdmlldyB0byB0aGUgYSBtb250aCBiZWZvcmVcbiAgICBwdWJsaWMgZ290b1ByZXZNb250aCgpIHtcbiAgICAgICAgY29uc3QgcHJlc2VudERheSA9IG1vbWVudCh0aGlzLiRmdWxsQ2FsZW5kYXIuZ2V0RGF0ZSgpKTtcbiAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmdvdG9EYXRlKHByZXNlbnREYXkuc3VidHJhY3QoMSwgJ00nKS52YWx1ZU9mKCkpO1xuICAgIH1cblxuXG4gICAgLy8gdGhpcyBmdW5jdGlvbiByZS1yZW5kZXJzIHRoZSBldmVudHMgYXNzaWduZWQgdG8gdGhlIGNhbGVuZGFyLlxuICAgIHB1YmxpYyByZXJlbmRlckV2ZW50cygpIHtcbiAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLnJlbmRlcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2VsZWN0ZWREYXRhKHN0YXJ0LCBlbmQpIHtcbiAgICAgICAgbGV0IGRhdGFzZXQgPSB0aGlzLmRhdGFzZXQ7XG4gICAgICAgIGlmICghZGF0YXNldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsdGVyZWREYXRlcyA9IFtdO1xuICAgICAgICBjb25zdCBldmVudFN0YXJ0S2V5ID0gdGhpcy5ldmVudHN0YXJ0IHx8ICdzdGFydCc7XG4gICAgICAgIGNvbnN0IGV2ZW50RW5kS2V5ID0gdGhpcy5ldmVudGVuZCB8fCAnZW5kJztcbiAgICAgICAgY29uc3Qgc3RhcnREYXRlID0gbW9tZW50KG5ldyBEYXRlKHN0YXJ0KSkuZm9ybWF0KCdNTS9ERC9ZWVlZJyk7XG4gICAgICAgIGNvbnN0IGVuZERhdGUgPSBtb21lbnQobmV3IERhdGUoZW5kKSkuc3VidHJhY3QoMSwgJ2RheXMnKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcblxuICAgICAgICBkYXRhc2V0ID0gZGF0YXNldC5kYXRhIHx8IGRhdGFzZXQ7XG4gICAgICAgIGRhdGFzZXQuZm9yRWFjaCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmICghdmFsdWVbZXZlbnRTdGFydEtleV0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBldmVudFN0YXJ0RGF0ZSAgID0gbW9tZW50KG5ldyBEYXRlKHZhbHVlW2V2ZW50U3RhcnRLZXldKSkuZm9ybWF0KCdNTS9ERC9ZWVlZJyk7XG4gICAgICAgICAgICBjb25zdCBldmVudEVuZERhdGUgICA9IG1vbWVudChuZXcgRGF0ZSh2YWx1ZVtldmVudEVuZEtleV0gfHwgdmFsdWVbZXZlbnRTdGFydEtleV0pKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50RXhpc3RzID0gbW9tZW50KGV2ZW50U3RhcnREYXRlKS5pc1NhbWVPckFmdGVyKHN0YXJ0RGF0ZSkgJiYgbW9tZW50KGV2ZW50RW5kRGF0ZSkuaXNTYW1lT3JCZWZvcmUoZW5kRGF0ZSk7XG4gICAgICAgICAgICBpZiAoZXZlbnRFeGlzdHMpIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZERhdGVzLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkRGF0ZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBldmVudERyb3AoZXZlbnREcm9wSW5mbykge1xuICAgICAgICBsZXQgbmV3RGF0YU9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudERyb3BJbmZvLmV2ZW50KTtcbiAgICAgICAgbGV0IG9sZERhdGFPYmogPSB0aGlzLmNvbnZlcnRFdmVudE9iakZvck9sZEFuZE5ld0RhdGEoZXZlbnREcm9wSW5mby5vbGRFdmVudCk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnZXZlbnRkcm9wJywgeyRldmVudDogZXZlbnREcm9wSW5mby5qc0V2ZW50LCAkbmV3RGF0YTogbmV3RGF0YU9iaiwgJG9sZERhdGE6IG9sZERhdGFPYmosICRkZWx0YTogZXZlbnREcm9wSW5mby5kZWx0YSwgJHJldmVydEZ1bmM6IGV2ZW50RHJvcEluZm8ucmV2ZXJ0LCAkdWk6IHt9LCAkdmlldzogZXZlbnREcm9wSW5mby52aWV3fSk7XG4gICAgfVxuXG4gICAgLy8gUmV0dXJucyB0aGUgZGVmYXVsdCBkYXRlIHdoZW4gdGhlIGRhdGF2YWx1ZSBpcyBwcm92aWRlZFxuICAgIGdldERlZmF1bHREYXRlKCkge1xuICAgICAgICBpZiAodGhpcy5kYXRhdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXREZWZhdWx0T3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2FsZW5kYXJPcHRpb25zO1xuICAgIH1cblxuICAgIGdldExpYigpIHtcbiAgICAgICAgcmV0dXJuICdmdWxsY2FsZW5kYXInO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0KCRzZWxlY3Rpb25JbmZvKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRkYXRlcyA9IHtzdGFydDogZ2V0VVRDRGF0ZVRpbWUoJHNlbGVjdGlvbkluZm8uc3RhcnQpLCBlbmQ6IGdldFVUQ0RhdGVUaW1lKCRzZWxlY3Rpb25JbmZvLmVuZCl9O1xuICAgICAgICB0aGlzLnNlbGVjdGVkZGF0YSA9IHRoaXMuc2V0U2VsZWN0ZWREYXRhKCRzZWxlY3Rpb25JbmZvLnN0YXJ0LCAkc2VsZWN0aW9uSW5mby5lbmQpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ3NlbGVjdCcsIHskc3RhcnQ6ICRzZWxlY3Rpb25JbmZvLnN0YXJ0LnZhbHVlT2YoKSwgJGVuZDogJHNlbGVjdGlvbkluZm8uZW5kLnZhbHVlT2YoKSwgJHZpZXc6ICRzZWxlY3Rpb25JbmZvLnZpZXcsICRkYXRhOiB0aGlzLnNlbGVjdGVkZGF0YX0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICB0aGlzIGZ1bmN0aW9ucyB1bnNlbGVjdHMgYWxsIHRoZSBzZWxlY3Rpb25zIGluIGNhbGVuZGFyXG4gICAgICovXG4gICAgcHVibGljIHVuc2VsZWN0KCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIudW5zZWxlY3QoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0aGlzIGZ1bmN0aW9uIGlzIHRvIGFkZCBleHRlbmRlZFByb3BzIGRhdGEgdG8gdGhlIGRhdGEgb2JqZWN0LlxuICAgICAqIHRoaXMgaXMgZG9uZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAqIEBwYXJhbSBldmVudE9iaiBldmVudCBvYmplY3QgYXMgcGVyIG5ldyB2ZXJzaW9uICh2NSlcbiAgICAgKiBAcmV0dXJucyBfZXZlbnRNZXRhZGF0YSBldmVudCBvYmplY3QgYXMgcGVyIHRoZSBvbGQgdmVyc2lvbiAodjMpXG4gICAgICovXG4gICAgcHJpdmF0ZSBjb252ZXJ0RXZlbnRPYmooZXZlbnRPYmopIHtcbiAgICAgICAgaWYgKCFldmVudE9iai5leHRlbmRlZFByb3BzLl9ldmVudE1ldGFkYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gZXZlbnRPYmo7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgX2V2ZW50TWV0YWRhdGEgPSBldmVudE9iai5leHRlbmRlZFByb3BzLl9ldmVudE1ldGFkYXRhO1xuICAgICAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YoX2V2ZW50TWV0YWRhdGEsIGV2ZW50T2JqKTtcbiAgICAgICAgcmV0dXJuIF9ldmVudE1ldGFkYXRhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICB0aGlzIGZ1bmN0aW9uIGlzIHRvIGFkZCBleHRlbmRlZFByb3BzIGRhdGEgdG8gdGhlIGRhdGEgb2JqZWN0IGV4bHVkaW5nIHN0YXJ0IGVuZCB0aXRsZSBhbGxEYXkgb2JqZWN0cyBpZiB0aGUga2V5IG5hbWUgbWF0Y2hlcy5cbiAgICAgKiAqIHRoaXMgaXMgZG9uZSBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICAgICAqIEBwYXJhbSBldmVudE9iaiBldmVudCBvYmplY3QgYXMgcGVyIG5ldyB2ZXJzaW9uICh2NSlcbiAgICAgKiBAcmV0dXJucyBkYXRhIGV2ZW50IG9iamVjdCBhcyBwZXIgdGhlIG9sZCB2ZXJzaW9uICh2MylcbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbnZlcnRFdmVudE9iakZvck9sZEFuZE5ld0RhdGEoZXZlbnRPYmopIHtcbiAgICAgICAgY29uc3QgX2V2ZW50TWV0YWRhdGEgPSBldmVudE9iai5leHRlbmRlZFByb3BzO1xuICAgICAgICBfLmV4dGVuZChldmVudE9iaiwgX2V2ZW50TWV0YWRhdGEpO1xuICAgICAgICByZXR1cm4gZXZlbnRPYmo7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBldmVudFJlc2l6ZShldmVudFJlc2l6ZUluZm8pIHtcbiAgICAgICAgbGV0IG5ld0RhdGFPYmogPSB0aGlzLmNvbnZlcnRFdmVudE9iakZvck9sZEFuZE5ld0RhdGEoZXZlbnRSZXNpemVJbmZvLmV2ZW50KTtcbiAgICAgICAgbGV0IG9sZERhdGFPYmogPSB0aGlzLmNvbnZlcnRFdmVudE9iakZvck9sZEFuZE5ld0RhdGEoZXZlbnRSZXNpemVJbmZvLm9sZEV2ZW50KTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdldmVudHJlc2l6ZScsIHskZXZlbnQ6IGV2ZW50UmVzaXplSW5mby5qc0V2ZW50LCAkbmV3RGF0YTogbmV3RGF0YU9iaiwgJG9sZERhdGE6IG9sZERhdGFPYmosICRkZWx0YTogZXZlbnRSZXNpemVJbmZvLmRlbHRhLCAkcmV2ZXJ0RnVuYzogZXZlbnRSZXNpemVJbmZvLnJldmVydCwgJHVpOiB7fSwgJHZpZXc6IGV2ZW50UmVzaXplSW5mby52aWV3fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkV2ZW50Q2hhbmdlU3RhcnQoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbGREYXRhID0gZ2V0Q2xvbmVkT2JqZWN0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2ZW50Q2xpY2soZXZlbnRDbGlja0luZm8pIHtcbiAgICAgICAgbGV0IGV2ZW50T2JqID0gdGhpcy5jb252ZXJ0RXZlbnRPYmooZXZlbnRDbGlja0luZm8uZXZlbnQpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2V2ZW50Y2xpY2snLCB7JGV2ZW50OiBldmVudENsaWNrSW5mby5qc0V2ZW50LCAkZGF0YTogZXZlbnRPYmosICR2aWV3OiBldmVudENsaWNrSW5mby52aWV3fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBldmVudERpZE1vdW50KGV2ZW50KSB7XG4gICAgICAgIGxldCBldmVudE9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqKGV2ZW50LmV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuY2FsZW5kYXJ0eXBlID09PSBWSUVXX1RZUEVTLkxJU1QpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnLmZjLWxpc3QtdGFibGUnKS5hZGRDbGFzcygndGFibGUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2V2ZW50cmVuZGVyJywgeyRldmVudDogZXZlbnQuZWwsICRkYXRhOiBldmVudE9iaiwgJHZpZXc6IGV2ZW50LnZpZXd9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZpZXdEaWRNb3VudCgkdmlldykge1xuICAgICAgICBpZiAodGhpcy5jYWxlbmRhcnR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkge1xuICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCcuZmMtbGlzdC10YWJsZScpLmFkZENsYXNzKCd0YWJsZScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygndmlld3JlbmRlcicsIHskdmlldzogJHZpZXd9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIHdoZW4gdGhlIHZpZXcgb2YgdGhlIGNhbGVuZGFyIGNoYW5nZXMuXG4gICAgICogQHBhcmFtIGRhdGEgY29udGFpbnMgdGhlIHN0YXJ0IGVuZCBkYXRhIG9mIHRoZSBjYWxlbmRhciB2aWV3LlxuICAgICAqL1xuICAgIHByaXZhdGUgZGF0ZXNTZXQoZGF0YSkge1xuICAgICAgICB0aGlzLmN1cnJlbnR2aWV3ID0ge3N0YXJ0OiBtb21lbnQoZGF0YS5zdGFydCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSwgZW5kOiBtb21lbnQoZGF0YS5lbmQpLmZvcm1hdChcIllZWVktTU0tRERcIil9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZGF0ZUNsaWNrKCRpbmZvKSB7XG4gICAgICAgIGNvbnN0IGRhdGVJbmZvID0gZ2V0VVRDRGF0ZVRpbWUoJGluZm8uZGF0ZSkudmFsdWVPZigpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2RhdGVjbGljaycsIHskZGF0ZUluZm86IGRhdGVJbmZvfSk7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIHRoZSBjYWxlbmRhciBoZWFkZXIgb3B0aW9ucyBvbmNlIHRoZSBjb250cm9scyBjaGFuZ2VzXG4gICAgcHJpdmF0ZSB1cGRhdGVDYWxlbmRhckhlYWRlck9wdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IGN0cmxzID0gdGhpcy5jb250cm9scywgdmlld1R5cGUgPSB0aGlzLmNhbGVuZGFydHlwZSxcbiAgICAgICAgICAgIHJlZ0V4ID0gbmV3IFJlZ0V4cCgnXFxcXGJkYXlcXFxcYicsICdnJyk7XG4gICAgICAgIGxldCBsZWZ0ID0gJycsIHJpZ2h0ID0gJyc7XG4gICAgICAgIGlmIChjdHJscyAmJiB2aWV3VHlwZSkge1xuICAgICAgICAgICAgaWYgKF8uaW5jbHVkZXMoY3RybHMsICduYXZpZ2F0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ICs9ICcgcHJldiBuZXh0JztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKF8uaW5jbHVkZXMoY3RybHMsICd0b2RheScpKSB7XG4gICAgICAgICAgICAgICAgbGVmdCArPSAnIHRvZGF5JztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKF8uaW5jbHVkZXMoY3RybHMsICd5ZWFyJykpIHtcbiAgICAgICAgICAgICAgICByaWdodCArPSAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnbGlzdFllYXInIDogJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChfLmluY2x1ZGVzKGN0cmxzLCAnbW9udGgnKSkge1xuICAgICAgICAgICAgICAgIHJpZ2h0ICs9ICh2aWV3VHlwZSA9PT0gVklFV19UWVBFUy5MSVNUKSA/ICcgbGlzdE1vbnRoJyA6ICcgZGF5R3JpZE1vbnRoJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKF8uaW5jbHVkZXMoY3RybHMsICd3ZWVrJykpIHtcbiAgICAgICAgICAgICAgICByaWdodCArPSAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuQkFTSUMpID8gICcgZGF5R3JpZFdlZWsnIDogKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJyBsaXN0V2VlaycgOiAnIHRpbWVHcmlkV2Vlayc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZWdFeC50ZXN0KGN0cmxzKSkge1xuICAgICAgICAgICAgICAgIHJpZ2h0ICs9ICh2aWV3VHlwZSA9PT0gVklFV19UWVBFUy5CQVNJQykgPyAgJyBkYXlHcmlkRGF5JyA6ICh2aWV3VHlwZSA9PT0gVklFV19UWVBFUy5MSVNUKSA/ICcgbGlzdERheScgOiAnIHRpbWVHcmlkRGF5JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChsZWZ0LmNoYXJBdCgwKSA9PT0gJyAnKSB7XG4gICAgICAgICAgICAgICAgbGVmdCA9IGxlZnQuc3Vic3RyaW5nKDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHJpZ2h0LmNoYXJBdCgwKSA9PT0gJyAnKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgPSByaWdodC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBfLmV4dGVuZCh0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5oZWFkZXJUb29sYmFyLCB7J3N0YXJ0JzogbGVmdCwgJ2VuZCc6IHJpZ2h0fSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcpO1xuXG4gICAgICAgIHRoaXMuZXZlbnRTb3VyY2VzLnB1c2godGhpcy5kYXRhU2V0RXZlbnRzKTtcbiAgICAgICAgY29uc3QgRnVsbENhbGVuZGFyID0gd2luZG93WydGdWxsQ2FsZW5kYXInXTtcbiAgICAgICAgaWYgKCFGdWxsQ2FsZW5kYXIuX193bV9sb2NhbGVfaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgIGkxOG5TZXJ2aWNlLmluaXRDYWxlbmRhckxvY2FsZSgpO1xuICAgICAgICAgICAgRnVsbENhbGVuZGFyLl9fd21fbG9jYWxlX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2FuY2VsTG9jYWxlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5nZXRBcHBJbnN0YW5jZSgpLnN1YnNjcmliZShcImxvY2FsZS1jaGFuZ2VkXCIsIChsaWJMb2NhbGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2V0TG9jYWxlKCk7XG4gICAgICAgICAgICB0aGlzLmFwcGx5Q2FsZW5kYXJPcHRpb25zKCdvcHRpb24nLCAnbG9jYWxlJywgbGliTG9jYWxlLmZ1bGxDYWxlbmRhciB8fCAnZW4nKTtcbiAgICAgICAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLCBBUFBMWV9TVFlMRVNfVFlQRS5DT05UQUlORVIsIFsnaGVpZ2h0J10pO1xuICAgICAgICB0aGlzLnNldExvY2FsZSgpO1xuICAgIH1cblxuICAgIG9uU3R5bGVDaGFuZ2Uoa2V5LCBudiwgb3Y/KSB7XG4gICAgICAgIHN1cGVyLm9uU3R5bGVDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICBpZiAoa2V5ID09PSAnaGVpZ2h0Jykge1xuICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuaGVpZ2h0ID0gdGhpcy5jYWxjdWxhdGVIZWlnaHQobnYpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ29wdGlvbicsICdoZWlnaHQnLCB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5oZWlnaHQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdj8pIHtcbiAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIHN3aXRjaCAoa2V5KSB7XG4gICAgICAgICAgICBjYXNlICdzZWxlY3Rpb25tb2RlJzpcbiAgICAgICAgICAgICAgICBpZiAobnYgIT09IFNFTEVDVElPTl9NT0RFUy5OT05FKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLnNlbGVjdGFibGUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFyT3B0aW9ucygnb3B0aW9uJywgJ3NlbGVjdGFibGUnLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG52ID09PSBTRUxFQ1RJT05fTU9ERVMuU0lOR0xFKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5zZWxlY3RDb25zdHJhaW50ID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0VGltZTogJzAwOjAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiAnMjQ6MDAnXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ29wdGlvbicsICdzZWxlY3RDb25zdHJhaW50JywgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0Q29uc3RyYWludCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFyT3B0aW9ucygnb3B0aW9uJywgJ3NlbGVjdENvbnN0cmFpbnQnLCB7fSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5zZWxlY3RhYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdvcHRpb24nLCAnc2VsZWN0YWJsZScsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd2aWV3JzpcbiAgICAgICAgICAgICAgICBpZiAobnYgIT09ICdtb250aCcgfHwgdGhpcy5jYWxlbmRhcnR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5kZWZhdWx0VmlldyA9IHRoaXMuY2FsZW5kYXJ0eXBlICsgXy5jYXBpdGFsaXplKG52KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5kZWZhdWx0VmlldyA9IG52O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFyT3B0aW9ucygnY2hhbmdlVmlldycsIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmRlZmF1bHRWaWV3KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2NhbGVuZGFydHlwZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhcnR5cGUgPSBudiB8fCAnZGF5R3JpZCc7XG4gICAgICAgICAgICBjYXNlICdjb250cm9scyc6XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhckhlYWRlck9wdGlvbnMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2RhdGFzZXQnOlxuICAgICAgICAgICAgICAgIGxldCBkYXRhU2V0O1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YXNldCA9IG52O1xuICAgICAgICAgICAgICAgIGRhdGFTZXQgPSBjcmVhdGVBcnJheUZyb20oZ2V0Q2xvbmVkT2JqZWN0KG52KSk7XG4gICAgICAgICAgICAgICAgZGF0YVNldCA9IHRoaXMuY29uc3RydWN0Q2FsZW5kYXJEYXRhc2V0KGRhdGFTZXQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGF0YVNldEV2ZW50cy5ldmVudHMgPSBkYXRhU2V0LmZpbHRlcigoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RhcnQgPSBldmVudC5zdGFydCB8fCBldmVudC5lbmQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC5zdGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyRXZlbnREYXRhU2V0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzaG93JzpcbiAgICAgICAgICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXI/LmNoYW5nZVZpZXcodGhpcy5nZXRWaWV3VHlwZSh0aGlzLnZpZXcgPyB0aGlzLnZpZXcgOiAnZGF5R3JpZE1vbnRoJykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQgZm9yIHRoZSBldmVudCBsaW1pdCBhbmQgcGFyc2luZyB0aGUgdmFsdWUgd2hlbiBpdCBpcyBwZXJjZW50YWdlIGJhc2VkLlxuICAgIHByaXZhdGUgY2FsY3VsYXRlSGVpZ2h0KGhlaWdodCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0ICRwYXJlbnQgPSAkKHRoaXMubmF0aXZlRWxlbWVudCkucGFyZW50KCksXG4gICAgICAgICAgICBlbEhlaWdodCA9IGhlaWdodCB8fCAnNjUwcHgnO1xuXG4gICAgICAgIGxldCBwYXJlbnRIZWlnaHQgPSAkcGFyZW50LmNzcygnaGVpZ2h0JyksXG4gICAgICAgICAgICBjb21wdXRlZEhlaWdodDogbnVtYmVyO1xuXG4gICAgICAgIGlmIChfLmluY2x1ZGVzKGVsSGVpZ2h0LCAnJScpKSB7XG4gICAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhwYXJlbnRIZWlnaHQsICclJykpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRIZWlnaHQgPSAkcGFyZW50LmhlaWdodCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29tcHV0ZWRIZWlnaHQgPSAocGFyc2VJbnQocGFyZW50SGVpZ2h0LCAxMCkgKiBOdW1iZXIoZWxIZWlnaHQucmVwbGFjZSgvXFwlL2csICcnKSkpIC8gMTAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tcHV0ZWRIZWlnaHQgPSBwYXJzZUludChlbEhlaWdodCwgMTApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLnZpZXdzLm1vbnRoLmV2ZW50TGltaXQgPSBwYXJzZUludCgnJyArIGNvbXB1dGVkSGVpZ2h0IC8gMjAwLCAxMCkgKyAxO1xuICAgICAgICByZXR1cm4gY29tcHV0ZWRIZWlnaHQ7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgY29uc3QgY2FsZW5kYXJFbCA9IHRoaXMuX2NhbGVuZGFyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IEZ1bGxDYWxlbmRhciA9IHdpbmRvd1snRnVsbENhbGVuZGFyJ107XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyID0gbmV3IEZ1bGxDYWxlbmRhci5DYWxlbmRhcihjYWxlbmRhckVsLCB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhcik7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhciA9ICBjYWxlbmRhcjtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVyZW5kZXInLCB7JyRldmVudCcgOiB7fX0pO1xuICAgICAgICBjYWxlbmRhci5yZW5kZXIoKTtcblxuICAgICAgICAvLyBpZiB0aGUgY2hhbmdlcyBhcmUgYWxyZWFkeSBzdGFja2VkIGJlZm9yZSBjYWxlbmRhciByZW5kZXJzIHRoZW4gZXhlY3V0ZSB0aGVtIHdoZW4gbmVlZGVkXG4gICAgICAgIGlmICh0aGlzLmNoYW5nZXNTdGFjay5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlc1N0YWNrLmZvckVhY2goKGNoYW5nZU9iaikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlDYWxlbmRhck9wdGlvbnMoY2hhbmdlT2JqLm9wZXJhdGlvblR5cGUsIGNoYW5nZU9iai5hcmd1bWVudEtleSwgY2hhbmdlT2JqLmFyZ3VtZW50VmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXNTdGFjay5sZW5ndGggPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9XTVMtMjI0MTIgOiBjaGFuZ2UgY2FsZW5kZXIncyB2aWV3IGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9uIHNldCBmcm9tIHN0dWRpb1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5jaGFuZ2VWaWV3KHRoaXMuZ2V0Vmlld1R5cGUodGhpcy52aWV3ID8gdGhpcy52aWV3IDogJ2RheUdyaWRNb250aCcpKTtcbiAgICAgICAgfSw1MCk7XG4gICAgfVxuXG4gICAgLy8gY29uc3RydWN0cyB0aGUgY2FsZW5kYXIgZGF0YXNldCBieSBtYXBwaW5nIHRoZSBldmVudHN0YXJ0LCBldmVudGVuZCwgZXZlbnR0aXRsZSBldGMuLFxuICAgIHByaXZhdGUgY29uc3RydWN0Q2FsZW5kYXJEYXRhc2V0KGV2ZW50U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSB7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy5ldmVudHRpdGxlIHx8ICd0aXRsZScsXG4gICAgICAgICAgICBhbGxEYXk6IHRoaXMuZXZlbnRhbGxkYXkgfHwgJ2FsbGRheScsXG4gICAgICAgICAgICBzdGFydDogdGhpcy5ldmVudHN0YXJ0IHx8ICdzdGFydCcsXG4gICAgICAgICAgICBlbmQ6IHRoaXMuZXZlbnRlbmQgfHwgJ2VuZCcsXG4gICAgICAgICAgICBjbGFzc05hbWU6IHRoaXMuZXZlbnRjbGFzcyB8fCAnY2xhc3NOYW1lJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGV2ZW50U291cmNlLmZvckVhY2goKG9iaikgPT4ge1xuICAgICAgICAgICAgb2JqLl9ldmVudE1ldGFkYXRhID0gXy5jbG9uZShvYmopO1xuICAgICAgICAgICAgaWYgKF8uaXNFbXB0eShvYmouX2V2ZW50TWV0YWRhdGEudXJsKSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmouX2V2ZW50TWV0YWRhdGEudXJsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKF8uaXNFbXB0eShvYmoudXJsKSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmoudXJsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBfLm1hcEtleXMocHJvcGVydGllcywgICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IG9ialZhbDtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAndGl0bGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialZhbCA9IGdldEV2YWx1YXRlZERhdGEob2JqLCB7ZXhwcmVzc2lvbjogdmFsdWV9LCB0aGlzLnZpZXdQYXJlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYWxsRGF5Jykge1xuICAgICAgICAgICAgICAgICAgICBvYmpWYWwgPSAhIV8uZ2V0KG9iaiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialZhbCA9IF8uZ2V0KG9iaiwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoIW9ialZhbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9ialtrZXldID0gb2JqVmFsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZXZlbnRTb3VyY2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRMb2NhbGUoKSB7XG4gICAgICAgIGNvbnN0IHllYXIgPSBfLmdldCh0aGlzLmFwcExvY2FsZSwgJ0xBQkVMX0NBTEVOREFSX1lFQVInKSB8fCBCVVRUT05fVEVYVC5ZRUFSO1xuICAgICAgICBjb25zdCBtb250aCA9IF8uZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfTU9OVEgnKSB8fCBCVVRUT05fVEVYVC5NT05USDtcbiAgICAgICAgY29uc3Qgd2VlayA9IF8uZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfV0VFSycpIHx8IEJVVFRPTl9URVhULldFRUs7XG4gICAgICAgIGNvbnN0IGRheSA9IF8uZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfREFZJykgfHwgQlVUVE9OX1RFWFQuREFZO1xuICAgICAgICBjb25zdCB0b2RheSA9IF8uZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfVE9EQVknKSB8fCBCVVRUT05fVEVYVC5UT0RBWTtcbiAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuYnV0dG9uVGV4dCAgICA9IHsgeWVhciwgbW9udGgsIHdlZWssIGRheSwgdG9kYXksXG4gICAgICAgICAgICAnbGlzdFllYXInOiB5ZWFyLFxuICAgICAgICAgICAgJ2xpc3RNb250aCc6IG1vbnRoLFxuICAgICAgICAgICAgJ2xpc3RXZWVrJzogd2VlayxcbiAgICAgICAgICAgICdsaXN0RGF5JzogZGF5XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogb3ZlcnJpZGUgdGhlIGRlZmF1bHQgY2FsZW5kYXIgb3B0aW9ucyB3aXRoIHRoZSBuZXdTZXQgb2Ygb3B0aW9uc1xuICAgICAqIEBwYXJhbSBvcHRpb25zXG4gICAgICovXG4gICAgb3ZlcnJpZGVEZWZhdWx0cyhvcHRpb25zKSB7XG4gICAgICAgIGlmIChfLmlzT2JqZWN0KG9wdGlvbnMpKSB7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhvcHRpb25zKS5tYXAob3B0aW9uID0+IHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24ob3B0aW9uWzBdLCBvcHRpb25bMV0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGlmIHRoZSBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQgYmVmb3JlIHRoZSBjYWxlbmRhciByZW5kZXJzLCB0aGUgY2hhbmdlcyBhcmUgcHVzaGVkIGludG8gY2hhbmdlc1N0YWNrIGFuZCB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIHRoZSBjYWxlbmRhciBnZXRzIHJlbmRlcmVkXG4gICAgICogaWYgdGhlIGNhbGVuZGFyIGlzIGFscmVhZHkgcmVuZGVyZWQsIHRoZW4gdGhlIHNwZWNpZmljIG9wZXJhdGlvbiB3aWxsIGJlIHBlcmZvcm1lZCBhY2NvcmRpbmcgdG8gdGhlIG9wZXJhdGlvbiB0eXBlXG4gICAgICogQHBhcmFtIG9wZXJhdGlvblR5cGVcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRLZXlcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRWYWx1ZVxuICAgICAqL1xuICAgIHVwZGF0ZUNhbGVuZGFyT3B0aW9ucyhvcGVyYXRpb25UeXBlOiBzdHJpbmcsIGFyZ3VtZW50S2V5PzogYW55LCBhcmd1bWVudFZhbHVlPzogYW55KTogdm9pZCB7Ly9cbiAgICAgICAgaWYgKCF0aGlzLiRmdWxsQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlc1N0YWNrLnB1c2goe1xuICAgICAgICAgICAgICAgIG9wZXJhdGlvblR5cGU6IG9wZXJhdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgYXJndW1lbnRLZXk6IGFyZ3VtZW50S2V5LFxuICAgICAgICAgICAgICAgIGFyZ3VtZW50VmFsdWU6IGFyZ3VtZW50VmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXBwbHlDYWxlbmRhck9wdGlvbnMob3BlcmF0aW9uVHlwZSwgYXJndW1lbnRLZXksIGFyZ3VtZW50VmFsdWUpO1xuICAgIH1cblxuICAgIHJlZHJhdygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ3JlbmRlcicpO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXI/LmNoYW5nZVZpZXcodGhpcy5nZXRWaWV3VHlwZSh0aGlzLnZpZXcgPyB0aGlzLnZpZXcgOiAnZGF5R3JpZE1vbnRoJykpO1xuICAgIH1cblxuICAgIC8vIG9uIGRhdGUgY2hhbmdlIGludm9rZSB0aGUgc2VsZWN0IGV2ZW50LCBhbmQgaWYgZGF0ZSBoYXMgZXZlbnQgb24gaXQgdGhlbiBpbnZva2UgdGhlIGV2ZW50IGNsaWNrLlxuICAgIHByaXZhdGUgb25WYWx1ZUNoYW5nZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3h5TW9kZWwgPSB2YWx1ZTtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlICAgICAgICA9IHRoaXMucHJveHlNb2RlbCAmJiBtb21lbnQodGhpcy5wcm94eU1vZGVsKS5zdGFydE9mKCdkYXknKS5mb3JtYXQoZGF0ZUZvcm1hdCksXG4gICAgICAgICAgICBzZWxlY3RlZEV2ZW50RGF0YSAgID0gdGhpcy5ldmVudERhdGFbc2VsZWN0ZWREYXRlXSxcbiAgICAgICAgICAgIHN0YXJ0ICAgICAgICAgICAgICAgPSBtb21lbnQodGhpcy5wcm94eU1vZGVsKSxcbiAgICAgICAgICAgIGVuZCAgICAgICAgICAgICAgICAgPSBtb21lbnQodGhpcy5wcm94eU1vZGVsKS5lbmRPZignZGF5Jyk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRkYXRhID0gc2VsZWN0ZWRFdmVudERhdGE7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRkYXRlcyA9IHtcbiAgICAgICAgICAgICdzdGFydCc6IG1vbWVudChzZWxlY3RlZERhdGUpLnZhbHVlT2YoKSxcbiAgICAgICAgICAgICdlbmQnICA6IG1vbWVudChzZWxlY3RlZERhdGUpLmVuZE9mKCdkYXknKS52YWx1ZU9mKClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0KHN0YXJ0LnZhbHVlT2YoKSwgZW5kLnZhbHVlT2YoKSwge30sIHRoaXMsIHNlbGVjdGVkRXZlbnREYXRhKTtcbiAgICAgICAgaWYgKHNlbGVjdGVkRXZlbnREYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5ldmVudENsaWNrKHNlbGVjdGVkRXZlbnREYXRhLCB7fSwgdGhpcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIHdpbGwgcmVjZWl2ZSBhbiBvYmplY3QgY29udGFpbmluZyBzb3VyY2Ugb2YgY2FsZW5kYXIsIGFwaWtleSBhbmQgY2FsZW5kYXJJZCBhbmQgd2lsbCBpbnRlZ3JhdGUgdGhlIHJlc3BlY3RpdmUgY2FsZW5kYXIgd2l0aCBmdWxsY2FsZW5kYXIuXG4gICAgICogQHBhcmFtIGV2ZW50T2JqZWN0XG4gICAgICovXG4gICAgcHVibGljIGFkZEV2ZW50U291cmNlKGV2ZW50T2JqZWN0KSB7XG4gICAgICAgIGlmIChfLmlzRW1wdHkoZXZlbnRPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ2FkZEV2ZW50U291cmNlIG1ldGhvZCByZXF1aXJlcyBhbiBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50T2JqZWN0LnNvdXJjZSA9PT0gJ2dvb2dsZScpIHtcbiAgICAgICAgICAgIGlmICghZXZlbnRPYmplY3QuZ29vZ2xlQ2FsZW5kYXJBcGlLZXkgfHwgIWV2ZW50T2JqZWN0Lmdvb2dsZUNhbGVuZGFySWQgKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdGb3IgZ29vZ2xlIGNhbGVuZGFyIGludGVncmF0aW9uLCBcXCdnb29nbGVDYWxlbmRhckFwaUtleVxcJyBhbmQgXFwnZ29vZ2xlQ2FsZW5kYXJJZFxcJyBzaG91bGQgYmUgcGFzc2VkIGluIHRoZSBwYXJhbWV0ZXIgb2JqZWN0LicpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24oJ2dvb2dsZUNhbGVuZGFyQXBpS2V5JywgZXZlbnRPYmplY3QuZ29vZ2xlQ2FsZW5kYXJBcGlLZXkpO1xuICAgICAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmFkZEV2ZW50U291cmNlKHtcbiAgICAgICAgICAgICAgICBnb29nbGVDYWxlbmRhcklkOiBldmVudE9iamVjdC5nb29nbGVDYWxlbmRhcklkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCB0aGUgdmlld1R5cGVLZXkgYWNjb3JkaW5nIHRvIHRoZSBjYWxlbmRhclR5cGUgYW5kIHZpZXdUeXBlIHNlbGVjdGVkXG4gICAgICogQHBhcmFtIHZpZXdLZXlcbiAgICAgKi9cbiAgICBnZXRWaWV3VHlwZSh2aWV3S2V5KSB7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyVHlwZSA9IHRoaXMuY2FsZW5kYXJ0eXBlO1xuICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy52aWV3O1xuICAgICAgICBsZXQgcmVzdWx0O1xuXG4gICAgICAgIGlmICh2aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3RNb250aCcgOiAnZGF5R3JpZE1vbnRoJztcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAnd2VlaycpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IChjYWxlbmRhclR5cGUgPT09IFZJRVdfVFlQRVMuQkFTSUMpID8gICdkYXlHcmlkV2VlaycgOiAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3RXZWVrJyA6ICd0aW1lR3JpZFdlZWsnO1xuICAgICAgICB9IGVsc2UgaWYgKHZpZXcgPT09ICdkYXknKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkJBU0lDKSA/ICAnZGF5R3JpZERheScgOiAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3REYXknIDogJ3RpbWVHcmlkRGF5JztcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IChjYWxlbmRhclR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnbGlzdFllYXInIDogJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgPSB2aWV3S2V5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9wZXJhdGlvblR5cGVcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRLZXlcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRWYWx1ZVxuICAgICAqIEhhbmRsZSB2YXJpb3VzIG9wZXJhdGlvbnMgbGlrZSBSZW5kZXJpbmcgQ2FsZW5kYXIsIGNoYW5naW5nIHRoZSBjYWxlbmRhciB2aWV3VHlwZSwgc2V0dGluZyB0aGUgY2FsZW5kYXJPcHRpb25zIGFjY29yZGluZyB0byB0aGUgb3BlcmF0aW9uVHlwZS5cbiAgICAgKi9cbiAgICBhcHBseUNhbGVuZGFyT3B0aW9ucyhvcGVyYXRpb25UeXBlOiBzdHJpbmcsIGFyZ3VtZW50S2V5PzogYW55LCBhcmd1bWVudFZhbHVlPzogYW55KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAob3BlcmF0aW9uVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAncmVuZGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvcHRpb24nOlxuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24oYXJndW1lbnRLZXksIGFyZ3VtZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2hhbmdlVmlldyc6XG4gICAgICAgICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMuZ2V0Vmlld1R5cGUoYXJndW1lbnRLZXkpO1xuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5jaGFuZ2VWaWV3KHZpZXcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyB0aGUgbmV3IGV2ZW50c0RhdGFTZXQgdG8gdGhlIGNhbGVuZGFyIG9iamVjdCB3aXRoIGFkZEV2ZW50IE1ldGhvZCBhbmQgcmUtcmVuZGVycyB0aGUgY2FsZW5kYXJcbiAgICAgKi9cbiAgICByZW5kZXJFdmVudERhdGFTZXQoKSB7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuYmF0Y2hSZW5kZXJpbmcoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCBldmVudHMgPSBzZWxmLiRmdWxsQ2FsZW5kYXIuZ2V0RXZlbnRzKCk7XG4gICAgICAgICAgICBfLmVhY2goIGV2ZW50cywgZnVuY3Rpb24oIGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnREYXRhID0gc2VsZi4kZnVsbENhbGVuZGFyLmdldEV2ZW50QnlJZChldmVudC5pZCk7XG4gICAgICAgICAgICAgICAgZXZlbnREYXRhLnJlbW92ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBfLmVhY2goIHNlbGYuZGF0YVNldEV2ZW50cy5ldmVudHMsIGZ1bmN0aW9uKCBldmVudCkge1xuICAgICAgICAgICAgICAgIHNlbGYuJGZ1bGxDYWxlbmRhci5hZGRFdmVudChldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmKHRoaXMuY2FuY2VsTG9jYWxlQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAjY2FsZW5kYXIgW2F0dHIuYXJpYS1sYWJlbF09XCJ2aWV3IHx8ICdtb250aCdcIj48L2Rpdj5cbiJdfQ==
634
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CalendarComponent, { className: "CalendarComponent", filePath: "calendar.component.ts", lineNumber: 102 }); })();
635
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL2lucHV0L2NhbGVuZGFyL3NyYy9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBR1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFL0YsT0FBTyxFQUNILGlCQUFpQixFQUNqQixlQUFlLEVBQ2YsZ0JBQWdCLEVBRWhCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7Ozs7OztBQUs3RyxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUM7QUFDbkMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixF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QUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxLQUFLO2dCQUN4QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzVELFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxVQUFVLEtBQUs7Z0JBQzNDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUcsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7UUFDMUMsQ0FBQztJQUNMLENBQUM7a0ZBNW1CUSxpQkFBaUIsd0dBK1MyQyxrQkFBa0I7b0VBL1M5RSxpQkFBaUI7Ozs7Ozs7OENBTGY7Z0JBQ1Asa0JBQWtCLENBQUMsaUJBQWlCLENBQUM7YUFDeEM7WUNsR0wsK0JBQXlEOzs7OztpRkRxRzVDLGlCQUFpQjtjQVQ3QixTQUFTOzJCQUNJLGNBQWMsYUFHYjtvQkFDUCxrQkFBa0IsbUJBQW1CO2lCQUN4QyxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJOztzQkFpVHlCLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFRO3FCQTVTM0UsU0FBUztrQkFBL0IsU0FBUzttQkFBQyxVQUFVO1lBQ0ksV0FBVztrQkFBbkMsU0FBUzttQkFBQyxZQUFZOztrRkFKZCxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3QsXG4gICAgSW5qZWN0b3IsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QWJzdHJhY3RJMThuU2VydmljZSwgZ2V0Q2xvbmVkT2JqZWN0LCBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0sIGlzTW9iaWxlfSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7XG4gICAgQVBQTFlfU1RZTEVTX1RZUEUsXG4gICAgY3JlYXRlQXJyYXlGcm9tLFxuICAgIGdldEV2YWx1YXRlZERhdGEsXG4gICAgSVJlZHJhd2FibGVDb21wb25lbnQsXG4gICAgcHJvdmlkZUFzV2lkZ2V0UmVmLFxuICAgIFN0eWxhYmxlQ29tcG9uZW50LFxuICAgIHN0eWxlclxufSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHtyZWdpc3RlclByb3BzfSBmcm9tICcuL2NhbGVuZGFyLnByb3BzJztcbmltcG9ydCB7Y2FwaXRhbGl6ZSwgY2xvbmUsIGVhY2gsIGV4dGVuZCwgZ2V0LCBpbmNsdWRlcywgaXNEYXRlLCBpc0VtcHR5LCBpc09iamVjdCwgbWFwS2V5c30gZnJvbSBcImxvZGFzaC1lc1wiO1xuXG5kZWNsYXJlIGNvbnN0ICQ7XG5kZWNsYXJlIGNvbnN0IG1vbWVudDtcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWNhbGVuZGFyJztcbmNvbnN0IGRhdGVGb3JtYXRzID0gWyd5eXl5LU1NLWRkJywgJ3l5eXktTS1kZCcsICdNLWRkLXl5eXknLCAnTU0tZGQteXknLCAneXl5eSwgZGQgTU1NTScsICd5eXl5LCBNTU0gZGQnLCAnTU0vZGQveXl5eScsICdNL2QveXl5eScsICdFRUUsIGRkIE1NTSB5eXl5JywgJ0VFRSBNTU0gZGQgeXl5eScsICdFRUVFLCBNTU1NIGRkLCB5eXl5JywgJ3RpbWVzdGFtcCddO1xuY29uc3QgZGVmYXVsdEhlYWRlck9wdGlvbnMgPSB7XG4gICAgc3RhcnQ6ICdwcmV2IG5leHQgdG9kYXknLFxuICAgIGNlbnRlcjogJ3RpdGxlJyxcbiAgICBlbmQ6ICdkYXlHcmlkTW9udGggZGF5R3JpZFdlZWsgZGF5R3JpZERheSdcbn07XG5jb25zdCBWSUVXX1RZUEVTID0ge1xuICAgIEJBU0lDOiAnYmFzaWMnLFxuICAgIEFHRU5EQTogJ2FnZW5kYScsXG4gICAgTElTVDogJ2xpc3QnXG59O1xuY29uc3QgQlVUVE9OX1RFWFQgPSB7XG4gICAgWUVBUjogJ1llYXInLFxuICAgIE1PTlRIOiAnTW9udGgnLFxuICAgIFdFRUs6ICdXZWVrJyxcbiAgICBEQVk6ICdEYXknLFxuICAgIFRPREFZOiAnVG9kYXknXG59O1xuY29uc3QgU0VMRUNUSU9OX01PREVTID0ge1xuICAgIE5PTkU6ICdub25lJyxcbiAgICBTSU5HTEU6ICdzaW5nbGUnLFxuICAgIE1VTFRJUExFOiAnbXVsdGlwbGUnXG59O1xuY29uc3QgTkVYVF9EQVlfVEhSRVNIT0xEID0ge1xuICAgIFNUQVJUOiAnMDA6MDAnLFxuICAgIEVORDogJzI0OjAwJ1xufTtcbmNvbnN0IGdldEV2ZW50TW9tZW50VmFsdWUgPSAodmFsdWUsIGtleSkgPT4ge1xuICAgIGxldCBpc0RhdGUgPSBmYWxzZTtcblxuICAgIGRhdGVGb3JtYXRzLmZvckVhY2goKGZvcm1hdCkgPT4ge1xuICAgICAgICAvLyBtb21lbnQgc3VwcG9ydHMgdXBwZXJjYXNlIGZvcm1hdHNcbiAgICAgICAgaWYgKG1vbWVudCh2YWx1ZSwgZm9ybWF0LnRvVXBwZXJDYXNlKCksIHRydWUpLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgaXNEYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gaWYgdGhlIHZhbHVlIGlzIGRhdGUgdGhlbiBmb3IgZW5kIGRhdGUgdGhlIHZhbHVlIHNob3VsZCBiZSBlbmQgb2YgdGhlIGRheSBhcyB0aGUgY2FsZW5kYXIgaXMgYXBwcm94aW1hdGluZyBpdCB0byB0aGUgc3RhcnQuXG4gICAgaWYgKGlzRGF0ZSAmJiBrZXkgPT09ICdlbmQnKSB7XG4gICAgICAgIHJldHVybiBtb21lbnQodmFsdWUpLmVuZE9mKCdkYXknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9tZW50KHZhbHVlKTtcbn07XG5jb25zdCBnZXRVVENEYXRlVGltZSA9IChkYXRlT2JqKSA9PiB7XG4gICAgZGF0ZU9iaiA9IG1vbWVudChkYXRlT2JqKTtcbiAgICBjb25zdCB5ZWFyID0gZGF0ZU9iai5mb3JtYXQoJ1lZWVknKSxcbiAgICAgICAgLy8gamF2YXNjcmlwdCBzdGFydHMgdGhlIG1vbnRoIGNvdW50IGZyb20gJzAnIHdoZXJlIGFzIG1vbWVudCByZXR1cm5zIHRoZSBodW1hbiBjb3VudFxuICAgICAgICBtb250aCA9IGRhdGVPYmouZm9ybWF0KCdNTScpIC0gMSxcbiAgICAgICAgZGF5ID0gZGF0ZU9iai5mb3JtYXQoJ0REJyksXG4gICAgICAgIGhvdXJzID0gZGF0ZU9iai5mb3JtYXQoJ0hIJyksXG4gICAgICAgIG1pbnV0ZXMgPSBkYXRlT2JqLmZvcm1hdCgnbW0nKSxcbiAgICAgICAgc2Vjb25kcyA9IGRhdGVPYmouZm9ybWF0KCdzcycpO1xuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5LCBob3VycywgbWludXRlcywgc2Vjb25kcyk7XG59O1xuY29uc3QgV0lER0VUX0NPTkZJRyA9IHt3aWRnZXRUeXBlOiAnd20tY2FsZW5kYXInLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcbmNvbnN0IGRhdGVGb3JtYXQgPSAnWVlZWS9NTS9ERCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtQ2FsZW5kYXJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuLi8uLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvZnVsbGNhbGVuZGFyL21haW4uY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihDYWxlbmRhckNvbXBvbmVudClcbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95LCBJUmVkcmF3YWJsZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcbiAgICAvLyBUaGUgY2FsZW5kYXIgZWxlbWVudCByZWZlcmVuY2VcbiAgICBAVmlld0NoaWxkKCdjYWxlbmRhcicpIF9jYWxlbmRhcjogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdkYXRlcGlja2VyJykgX2RhdGVwaWNrZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRkYXRlczogYW55O1xuICAgIHB1YmxpYyBzZWxlY3RlZGRhdGE6IGFueTtcbiAgICBwdWJsaWMgY3VycmVudHZpZXc6IG9iamVjdDtcbiAgICBwdWJsaWMgZGF0YXNldDogYW55O1xuICAgIHB1YmxpYyBjYWxlbmRhcnR5cGU7XG4gICAgcHVibGljIGNvbnRyb2xzID0gJ25hdmlnYXRpb24sIHRvZGF5LCB5ZWFyLCBtb250aCwgd2VlaywgZGF5JztcbiAgICBwdWJsaWMgZGF0YXZhbHVlO1xuICAgIHB1YmxpYyBldmVudHRpdGxlO1xuICAgIHB1YmxpYyBldmVudHN0YXJ0O1xuICAgIHB1YmxpYyBldmVudGVuZDtcbiAgICBwdWJsaWMgZXZlbnRhbGxkYXk7XG4gICAgcHVibGljIGV2ZW50Y2xhc3M7XG5cbiAgICBwcml2YXRlIGV2ZW50U291cmNlczogQXJyYXk8YW55PiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBkYXRhU2V0RXZlbnRzID0ge1xuICAgICAgICBldmVudHM6IFtdXG4gICAgfTtcbiAgICBwcml2YXRlIG9sZERhdGE7XG4gICAgLy8gbWFwIHRoZSBmdWxsY2FsZW5kYXIgRWxlbWVudCByZW5kZXJlZFxuICAgIHByaXZhdGUgJGZ1bGxDYWxlbmRhcjtcbiAgICAvLyBtb2RlbCB0byB0aGUgbW9iaWxlIGNhbGVuZGFyXG4gICAgcHJpdmF0ZSBwcm94eU1vZGVsO1xuICAgIHByaXZhdGUgZXZlbnREYXRhO1xuICAgIHByaXZhdGUgZXZlbnRzO1xuICAgIHByaXZhdGUgY2hhbmdlc1N0YWNrID0gW107XG5cbiAgICAvLyBjYWxlbmRhck9wdGlvbnMgdG8gdGhlIGNhbGVuZGFyXG4gICAgcHJpdmF0ZSBjYWxlbmRhck9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgY2FsZW5kYXI6IHtcbiAgICAgICAgICAgIGhlaWdodDogNjAwLFxuICAgICAgICAgICAgZXZlbnRTb3VyY2VzOiB0aGlzLmV2ZW50U291cmNlcyxcbiAgICAgICAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgbG9jYWxlOiBnZXRTZXNzaW9uU3RvcmFnZUl0ZW0oJ3NlbGVjdGVkTG9jYWxlJykgfHwgJ2VuJyxcbiAgICAgICAgICAgIHNlbGVjdGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgbG9uZ1ByZXNzRGVsYXk6IGlzTW9iaWxlKCkgPyAxIDogMTAwMCxcbiAgICAgICAgICAgIGhlYWRlclRvb2xiYXI6IGRlZmF1bHRIZWFkZXJPcHRpb25zLFxuICAgICAgICAgICAgbmV4dERheVRocmVzaG9sZDogTkVYVF9EQVlfVEhSRVNIT0xELFxuICAgICAgICAgICAgdmlld3M6IHtcbiAgICAgICAgICAgICAgICBtb250aDoge1xuICAgICAgICAgICAgICAgICAgICBkYXlNYXhFdmVudHNSb3c6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdW5zZWxlY3RBdXRvOiBmYWxzZSxcbiAgICAgICAgICAgIGV2ZW50RHJvcDogdGhpcy5ldmVudERyb3AuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50UmVzaXplU3RhcnQ6IHRoaXMub25FdmVudENoYW5nZVN0YXJ0LmJpbmQodGhpcyksXG4gICAgICAgICAgICBldmVudERyYWdTdGFydDogdGhpcy5vbkV2ZW50Q2hhbmdlU3RhcnQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50UmVzaXplOiB0aGlzLmV2ZW50UmVzaXplLmJpbmQodGhpcyksXG4gICAgICAgICAgICBldmVudENsaWNrOiB0aGlzLmV2ZW50Q2xpY2suYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHNlbGVjdDogdGhpcy5zZWxlY3QuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGV2ZW50RGlkTW91bnQ6IHRoaXMuZXZlbnREaWRNb3VudC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdmlld0RpZE1vdW50OiB0aGlzLnZpZXdEaWRNb3VudC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgZGF0ZXNTZXQ6IHRoaXMuZGF0ZXNTZXQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIGRhdGVDbGljazogdGhpcy5kYXRlQ2xpY2suYmluZCh0aGlzKVxuICAgICAgICB9XG4gICAgfTtcbiAgICBwdWJsaWMgdmlldzogc3RyaW5nO1xuICAgIHByaXZhdGUgZGF5Q2xhc3M6IEFycmF5PGFueT4gPSBbXTtcbiAgICBwcml2YXRlIGNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbjtcblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gc2VsZWN0cyB0aGUgZGVmYXVsdCBkYXRlIGdpdmVuIGZvciB0aGUgY2FsZW5kYXJcbiAgICBzZWxlY3REYXRlKCkge1xuICAgICAgICBsZXQgc3RhcnQsIGVuZDtcbiAgICAgICAgLy8gY2hlY2tzIGlmIGRhdGF2YWx1ZSBpcyBhbiBvYmplY3QgYW5kIG5vdCBhIERhdGUgb2JqZWN0XG4gICAgICAgIGlmIChpc09iamVjdCh0aGlzLmRhdGF2YWx1ZSkgJiYgIWlzRGF0ZSh0aGlzLmRhdGF2YWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHN0YXJ0ID0gbW9tZW50KHRoaXMuZGF0YXZhbHVlLnN0YXJ0KTtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGVuZCAgID0gbW9tZW50KHRoaXMuZGF0YXZhbHVlLmVuZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdGFydCA9IG1vbWVudCh0aGlzLmRhdGF2YWx1ZSk7XG4gICAgICAgICAgICBlbmQgICA9IG1vbWVudCh0aGlzLmRhdGF2YWx1ZSkuYWRkKDEsICdkYXknKS5zdGFydE9mKCdkYXknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZSggbW9tZW50KHN0YXJ0KS5fZCk7IC8vIGFmdGVyIHNlbGVjdGluZyB0aGUgZGF0ZSBnbyB0byB0aGUgZGF0ZS5cblxuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuc2VsZWN0KHN0YXJ0LnZhbHVlT2YoKSwgZW5kLnZhbHVlT2YoKSk7XG4gICAgfVxuXG4gICAgLy8gY2hhbmdlcyB0aGUgY2FsZW5kYXIgdmlldyB0byB0aGUgZGVmYXVsdCBkYXRlIGdpdmVuIGZvciB0aGUgY2FsZW5kYXIuXG4gICAgcHVibGljIGdvdG9EYXRlKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuZ290b0RhdGUoIG1vbWVudCh0aGlzLmRhdGF2YWx1ZSkuX2QpO1xuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgeWVhciBhaGVhZFxuICAgIHB1YmxpYyBnb3RvTmV4dFllYXIoKSB7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5uZXh0WWVhcigpO1xuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgeWVhciBiZWZvcmVcbiAgICBwdWJsaWMgZ290b1ByZXZZZWFyKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucHJldlllYXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiB0aGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBjYWxlbmRhciB2aWV3IHRvIHRoZSBzcGVjaWZpZWQgbW9udGhcbiAgICAgKiBAcGFyYW0gbW9udGhWYWwsIDEtMTIgdmFsdWUgb2YgbW9udGhcbiAgICAgKi9cbiAgICBwdWJsaWMgZ290b01vbnRoKG1vbnRoVmFsKSB7XG4gICAgICAgIGxldCBwcmVzZW50RGF5ID0gdGhpcy4kZnVsbENhbGVuZGFyLmdldERhdGUoKTtcbiAgICAgICAgY29uc3QgcHJlc2VudE1vbnRoVmFsID0gcHJlc2VudERheS5nZXRNb250aCgpO1xuICAgICAgICBwcmVzZW50RGF5ID0gbW9tZW50KHByZXNlbnREYXkpO1xuICAgICAgICBpZiAocHJlc2VudE1vbnRoVmFsIDwgbW9udGhWYWwpIHtcbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZShwcmVzZW50RGF5LmFkZChtb250aFZhbCAtIHByZXNlbnRNb250aFZhbCAtIDEsICdNJykudmFsdWVPZigpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5nb3RvRGF0ZShwcmVzZW50RGF5LnN1YnRyYWN0KCBwcmVzZW50TW9udGhWYWwgLSBtb250aFZhbCArIDEsICdNJykudmFsdWVPZigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHRoaXMgZnVuY3Rpb24gdGFrZXMgdGhlIGNhbGVuZGFyIHZpZXcgdG8gdGhlIGEgbW9udGggYWhlYWRcbiAgICBwdWJsaWMgZ290b05leHRNb250aCgpIHtcbiAgICAgICAgY29uc3QgcHJlc2VudERheSA9IG1vbWVudCh0aGlzLiRmdWxsQ2FsZW5kYXIuZ2V0RGF0ZSgpKTtcbiAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmdvdG9EYXRlKHByZXNlbnREYXkuYWRkKDEsICdNJykudmFsdWVPZigpKTtcbiAgICB9XG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBjYWxlbmRhciB2aWV3IHRvIHRoZSBhIG1vbnRoIGJlZm9yZVxuICAgIHB1YmxpYyBnb3RvUHJldk1vbnRoKCkge1xuICAgICAgICBjb25zdCBwcmVzZW50RGF5ID0gbW9tZW50KHRoaXMuJGZ1bGxDYWxlbmRhci5nZXREYXRlKCkpO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuZ290b0RhdGUocHJlc2VudERheS5zdWJ0cmFjdCgxLCAnTScpLnZhbHVlT2YoKSk7XG4gICAgfVxuXG5cbiAgICAvLyB0aGlzIGZ1bmN0aW9uIHJlLXJlbmRlcnMgdGhlIGV2ZW50cyBhc3NpZ25lZCB0byB0aGUgY2FsZW5kYXIuXG4gICAgcHVibGljIHJlcmVuZGVyRXZlbnRzKCkge1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucmVuZGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRTZWxlY3RlZERhdGEoc3RhcnQsIGVuZCkge1xuICAgICAgICBsZXQgZGF0YXNldCA9IHRoaXMuZGF0YXNldDtcbiAgICAgICAgaWYgKCFkYXRhc2V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWx0ZXJlZERhdGVzID0gW107XG4gICAgICAgIGNvbnN0IGV2ZW50U3RhcnRLZXkgPSB0aGlzLmV2ZW50c3RhcnQgfHwgJ3N0YXJ0JztcbiAgICAgICAgY29uc3QgZXZlbnRFbmRLZXkgPSB0aGlzLmV2ZW50ZW5kIHx8ICdlbmQnO1xuICAgICAgICBjb25zdCBzdGFydERhdGUgPSBtb21lbnQobmV3IERhdGUoc3RhcnQpKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICAgICAgY29uc3QgZW5kRGF0ZSA9IG1vbWVudChuZXcgRGF0ZShlbmQpKS5zdWJ0cmFjdCgxLCAnZGF5cycpLmZvcm1hdCgnTU0vREQvWVlZWScpO1xuXG4gICAgICAgIGRhdGFzZXQgPSBkYXRhc2V0LmRhdGEgfHwgZGF0YXNldDtcbiAgICAgICAgZGF0YXNldC5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZVtldmVudFN0YXJ0S2V5XSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGV2ZW50U3RhcnREYXRlICAgPSBtb21lbnQobmV3IERhdGUodmFsdWVbZXZlbnRTdGFydEtleV0pKS5mb3JtYXQoJ01NL0REL1lZWVknKTtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50RW5kRGF0ZSAgID0gbW9tZW50KG5ldyBEYXRlKHZhbHVlW2V2ZW50RW5kS2V5XSB8fCB2YWx1ZVtldmVudFN0YXJ0S2V5XSkpLmZvcm1hdCgnTU0vREQvWVlZWScpO1xuICAgICAgICAgICAgY29uc3QgZXZlbnRFeGlzdHMgPSBtb21lbnQoZXZlbnRTdGFydERhdGUpLmlzU2FtZU9yQWZ0ZXIoc3RhcnREYXRlKSAmJiBtb21lbnQoZXZlbnRFbmREYXRlKS5pc1NhbWVPckJlZm9yZShlbmREYXRlKTtcbiAgICAgICAgICAgIGlmIChldmVudEV4aXN0cykge1xuICAgICAgICAgICAgICAgIGZpbHRlcmVkRGF0ZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZmlsdGVyZWREYXRlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2ZW50RHJvcChldmVudERyb3BJbmZvKSB7XG4gICAgICAgIGxldCBuZXdEYXRhT2JqID0gdGhpcy5jb252ZXJ0RXZlbnRPYmpGb3JPbGRBbmROZXdEYXRhKGV2ZW50RHJvcEluZm8uZXZlbnQpO1xuICAgICAgICBsZXQgb2xkRGF0YU9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudERyb3BJbmZvLm9sZEV2ZW50KTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdldmVudGRyb3AnLCB7JGV2ZW50OiBldmVudERyb3BJbmZvLmpzRXZlbnQsICRuZXdEYXRhOiBuZXdEYXRhT2JqLCAkb2xkRGF0YTogb2xkRGF0YU9iaiwgJGRlbHRhOiBldmVudERyb3BJbmZvLmRlbHRhLCAkcmV2ZXJ0RnVuYzogZXZlbnREcm9wSW5mby5yZXZlcnQsICR1aToge30sICR2aWV3OiBldmVudERyb3BJbmZvLnZpZXd9KTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm5zIHRoZSBkZWZhdWx0IGRhdGUgd2hlbiB0aGUgZGF0YXZhbHVlIGlzIHByb3ZpZGVkXG4gICAgZ2V0RGVmYXVsdERhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmRhdGF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuZGF0YXZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldERlZmF1bHRPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jYWxlbmRhck9wdGlvbnM7XG4gICAgfVxuXG4gICAgZ2V0TGliKCkge1xuICAgICAgICByZXR1cm4gJ2Z1bGxjYWxlbmRhcic7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWxlY3QoJHNlbGVjdGlvbkluZm8pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZGRhdGVzID0ge3N0YXJ0OiBnZXRVVENEYXRlVGltZSgkc2VsZWN0aW9uSW5mby5zdGFydCksIGVuZDogZ2V0VVRDRGF0ZVRpbWUoJHNlbGVjdGlvbkluZm8uZW5kKX07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRkYXRhID0gdGhpcy5zZXRTZWxlY3RlZERhdGEoJHNlbGVjdGlvbkluZm8uc3RhcnQsICRzZWxlY3Rpb25JbmZvLmVuZCk7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyRzdGFydDogJHNlbGVjdGlvbkluZm8uc3RhcnQudmFsdWVPZigpLCAkZW5kOiAkc2VsZWN0aW9uSW5mby5lbmQudmFsdWVPZigpLCAkdmlldzogJHNlbGVjdGlvbkluZm8udmlldywgJGRhdGE6IHRoaXMuc2VsZWN0ZWRkYXRhfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIHRoaXMgZnVuY3Rpb25zIHVuc2VsZWN0cyBhbGwgdGhlIHNlbGVjdGlvbnMgaW4gY2FsZW5kYXJcbiAgICAgKi9cbiAgICBwdWJsaWMgdW5zZWxlY3QoKSB7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci51bnNlbGVjdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHRoaXMgZnVuY3Rpb24gaXMgdG8gYWRkIGV4dGVuZGVkUHJvcHMgZGF0YSB0byB0aGUgZGF0YSBvYmplY3QuXG4gICAgICogdGhpcyBpcyBkb25lIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICogQHBhcmFtIGV2ZW50T2JqIGV2ZW50IG9iamVjdCBhcyBwZXIgbmV3IHZlcnNpb24gKHY1KVxuICAgICAqIEByZXR1cm5zIF9ldmVudE1ldGFkYXRhIGV2ZW50IG9iamVjdCBhcyBwZXIgdGhlIG9sZCB2ZXJzaW9uICh2MylcbiAgICAgKi9cbiAgICBwcml2YXRlIGNvbnZlcnRFdmVudE9iaihldmVudE9iaikge1xuICAgICAgICBpZiAoIWV2ZW50T2JqLmV4dGVuZGVkUHJvcHMuX2V2ZW50TWV0YWRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiBldmVudE9iajtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBfZXZlbnRNZXRhZGF0YSA9IGV2ZW50T2JqLmV4dGVuZGVkUHJvcHMuX2V2ZW50TWV0YWRhdGE7XG4gICAgICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihfZXZlbnRNZXRhZGF0YSwgZXZlbnRPYmopO1xuICAgICAgICByZXR1cm4gX2V2ZW50TWV0YWRhdGE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogIHRoaXMgZnVuY3Rpb24gaXMgdG8gYWRkIGV4dGVuZGVkUHJvcHMgZGF0YSB0byB0aGUgZGF0YSBvYmplY3QgZXhsdWRpbmcgc3RhcnQgZW5kIHRpdGxlIGFsbERheSBvYmplY3RzIGlmIHRoZSBrZXkgbmFtZSBtYXRjaGVzLlxuICAgICAqICogdGhpcyBpcyBkb25lIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gICAgICogQHBhcmFtIGV2ZW50T2JqIGV2ZW50IG9iamVjdCBhcyBwZXIgbmV3IHZlcnNpb24gKHY1KVxuICAgICAqIEByZXR1cm5zIGRhdGEgZXZlbnQgb2JqZWN0IGFzIHBlciB0aGUgb2xkIHZlcnNpb24gKHYzKVxuICAgICAqL1xuICAgIHByaXZhdGUgY29udmVydEV2ZW50T2JqRm9yT2xkQW5kTmV3RGF0YShldmVudE9iaikge1xuICAgICAgICBjb25zdCBfZXZlbnRNZXRhZGF0YSA9IGV2ZW50T2JqLmV4dGVuZGVkUHJvcHM7XG4gICAgICAgIGV4dGVuZChldmVudE9iaiwgX2V2ZW50TWV0YWRhdGEpO1xuICAgICAgICByZXR1cm4gZXZlbnRPYmo7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBldmVudFJlc2l6ZShldmVudFJlc2l6ZUluZm8pIHtcbiAgICAgICAgbGV0IG5ld0RhdGFPYmogPSB0aGlzLmNvbnZlcnRFdmVudE9iakZvck9sZEFuZE5ld0RhdGEoZXZlbnRSZXNpemVJbmZvLmV2ZW50KTtcbiAgICAgICAgbGV0IG9sZERhdGFPYmogPSB0aGlzLmNvbnZlcnRFdmVudE9iakZvck9sZEFuZE5ld0RhdGEoZXZlbnRSZXNpemVJbmZvLm9sZEV2ZW50KTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdldmVudHJlc2l6ZScsIHskZXZlbnQ6IGV2ZW50UmVzaXplSW5mby5qc0V2ZW50LCAkbmV3RGF0YTogbmV3RGF0YU9iaiwgJG9sZERhdGE6IG9sZERhdGFPYmosICRkZWx0YTogZXZlbnRSZXNpemVJbmZvLmRlbHRhLCAkcmV2ZXJ0RnVuYzogZXZlbnRSZXNpemVJbmZvLnJldmVydCwgJHVpOiB7fSwgJHZpZXc6IGV2ZW50UmVzaXplSW5mby52aWV3fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkV2ZW50Q2hhbmdlU3RhcnQoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5vbGREYXRhID0gZ2V0Q2xvbmVkT2JqZWN0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGV2ZW50Q2xpY2soZXZlbnRDbGlja0luZm8pIHtcbiAgICAgICAgbGV0IGV2ZW50T2JqID0gdGhpcy5jb252ZXJ0RXZlbnRPYmooZXZlbnRDbGlja0luZm8uZXZlbnQpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2V2ZW50Y2xpY2snLCB7JGV2ZW50OiBldmVudENsaWNrSW5mby5qc0V2ZW50LCAkZGF0YTogZXZlbnRPYmosICR2aWV3OiBldmVudENsaWNrSW5mby52aWV3fSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBldmVudERpZE1vdW50KGV2ZW50KSB7XG4gICAgICAgIGxldCBldmVudE9iaiA9IHRoaXMuY29udmVydEV2ZW50T2JqKGV2ZW50LmV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuY2FsZW5kYXJ0eXBlID09PSBWSUVXX1RZUEVTLkxJU1QpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnLmZjLWxpc3QtdGFibGUnKS5hZGRDbGFzcygndGFibGUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2V2ZW50cmVuZGVyJywgeyRldmVudDogZXZlbnQuZWwsICRkYXRhOiBldmVudE9iaiwgJHZpZXc6IGV2ZW50LnZpZXd9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZpZXdEaWRNb3VudCgkdmlldykge1xuICAgICAgICBpZiAodGhpcy5jYWxlbmRhcnR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkge1xuICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCcuZmMtbGlzdC10YWJsZScpLmFkZENsYXNzKCd0YWJsZScpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygndmlld3JlbmRlcicsIHskdmlldzogJHZpZXd9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIHdoZW4gdGhlIHZpZXcgb2YgdGhlIGNhbGVuZGFyIGNoYW5nZXMuXG4gICAgICogQHBhcmFtIGRhdGEgY29udGFpbnMgdGhlIHN0YXJ0IGVuZCBkYXRhIG9mIHRoZSBjYWxlbmRhciB2aWV3LlxuICAgICAqL1xuICAgIHByaXZhdGUgZGF0ZXNTZXQoZGF0YSkge1xuICAgICAgICB0aGlzLmN1cnJlbnR2aWV3ID0ge3N0YXJ0OiBtb21lbnQoZGF0YS5zdGFydCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSwgZW5kOiBtb21lbnQoZGF0YS5lbmQpLmZvcm1hdChcIllZWVktTU0tRERcIil9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZGF0ZUNsaWNrKCRpbmZvKSB7XG4gICAgICAgIGNvbnN0IGRhdGVJbmZvID0gZ2V0VVRDRGF0ZVRpbWUoJGluZm8uZGF0ZSkudmFsdWVPZigpO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2RhdGVjbGljaycsIHskZGF0ZUluZm86IGRhdGVJbmZvfSk7XG4gICAgfVxuXG4gICAgLy8gdXBkYXRlIHRoZSBjYWxlbmRhciBoZWFkZXIgb3B0aW9ucyBvbmNlIHRoZSBjb250cm9scyBjaGFuZ2VzXG4gICAgcHJpdmF0ZSB1cGRhdGVDYWxlbmRhckhlYWRlck9wdGlvbnMoKSB7XG4gICAgICAgIGNvbnN0IGN0cmxzID0gdGhpcy5jb250cm9scywgdmlld1R5cGUgPSB0aGlzLmNhbGVuZGFydHlwZSxcbiAgICAgICAgICAgIHJlZ0V4ID0gbmV3IFJlZ0V4cCgnXFxcXGJkYXlcXFxcYicsICdnJyk7XG4gICAgICAgIGxldCBsZWZ0ID0gJycsIHJpZ2h0ID0gJyc7XG4gICAgICAgIGlmIChjdHJscyAmJiB2aWV3VHlwZSkge1xuICAgICAgICAgICAgaWYgKGluY2x1ZGVzKGN0cmxzLCAnbmF2aWdhdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgbGVmdCArPSAnIHByZXYgbmV4dCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhjdHJscywgJ3RvZGF5JykpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ICs9ICcgdG9kYXknO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaW5jbHVkZXMoY3RybHMsICd5ZWFyJykpIHtcbiAgICAgICAgICAgICAgICByaWdodCArPSAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnbGlzdFllYXInIDogJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhjdHJscywgJ21vbnRoJykpIHtcbiAgICAgICAgICAgICAgICByaWdodCArPSAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnIGxpc3RNb250aCcgOiAnIGRheUdyaWRNb250aCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhjdHJscywgJ3dlZWsnKSkge1xuICAgICAgICAgICAgICAgIHJpZ2h0ICs9ICh2aWV3VHlwZSA9PT0gVklFV19UWVBFUy5CQVNJQykgPyAgJyBkYXlHcmlkV2VlaycgOiAodmlld1R5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnIGxpc3RXZWVrJyA6ICcgdGltZUdyaWRXZWVrJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlZ0V4LnRlc3QoY3RybHMpKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQgKz0gKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkJBU0lDKSA/ICAnIGRheUdyaWREYXknIDogKHZpZXdUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJyBsaXN0RGF5JyA6ICcgdGltZUdyaWREYXknO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGxlZnQuY2hhckF0KDApID09PSAnICcpIHtcbiAgICAgICAgICAgICAgICBsZWZ0ID0gbGVmdC5zdWJzdHJpbmcoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAocmlnaHQuY2hhckF0KDApID09PSAnICcpIHtcbiAgICAgICAgICAgICAgICByaWdodCA9IHJpZ2h0LnN1YnN0cmluZygxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGV4dGVuZCh0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5oZWFkZXJUb29sYmFyLCB7J3N0YXJ0JzogbGVmdCwgJ2VuZCc6IHJpZ2h0fSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBpMThuU2VydmljZTogQWJzdHJhY3RJMThuU2VydmljZSwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcblxuICAgICAgICB0aGlzLmV2ZW50U291cmNlcy5wdXNoKHRoaXMuZGF0YVNldEV2ZW50cyk7XG4gICAgICAgIGNvbnN0IEZ1bGxDYWxlbmRhciA9IHdpbmRvd1snRnVsbENhbGVuZGFyJ107XG4gICAgICAgIGlmICghRnVsbENhbGVuZGFyLl9fd21fbG9jYWxlX2luaXRpYWxpemVkKSB7XG4gICAgICAgICAgICBpMThuU2VydmljZS5pbml0Q2FsZW5kYXJMb2NhbGUoKTtcbiAgICAgICAgICAgIEZ1bGxDYWxlbmRhci5fX3dtX2xvY2FsZV9pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuZ2V0QXBwSW5zdGFuY2UoKS5zdWJzY3JpYmUoXCJsb2NhbGUtY2hhbmdlZFwiLCAobGliTG9jYWxlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNldExvY2FsZSgpO1xuICAgICAgICAgICAgdGhpcy5hcHBseUNhbGVuZGFyT3B0aW9ucygnb3B0aW9uJywgJ2xvY2FsZScsIGxpYkxvY2FsZS5mdWxsQ2FsZW5kYXIgfHwgJ2VuJyk7XG4gICAgICAgICAgICB0aGlzLnJlZHJhdygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcywgQVBQTFlfU1RZTEVTX1RZUEUuQ09OVEFJTkVSLCBbJ2hlaWdodCddKTtcbiAgICAgICAgdGhpcy5zZXRMb2NhbGUoKTtcbiAgICB9XG5cbiAgICBvblN0eWxlQ2hhbmdlKGtleSwgbnYsIG92Pykge1xuICAgICAgICBzdXBlci5vblN0eWxlQ2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2hlaWdodCcpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmhlaWdodCA9IHRoaXMuY2FsY3VsYXRlSGVpZ2h0KG52KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdvcHRpb24nLCAnaGVpZ2h0JywgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3Y/KSB7XG4gICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnc2VsZWN0aW9ubW9kZSc6XG4gICAgICAgICAgICAgICAgaWYgKG52ICE9PSBTRUxFQ1RJT05fTU9ERVMuTk9ORSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5zZWxlY3RhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ29wdGlvbicsICdzZWxlY3RhYmxlJywgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChudiA9PT0gU0VMRUNUSU9OX01PREVTLlNJTkdMRSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0Q29uc3RyYWludCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6ICcwMDowMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kVGltZTogJzI0OjAwJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdvcHRpb24nLCAnc2VsZWN0Q29uc3RyYWludCcsIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLnNlbGVjdENvbnN0cmFpbnQpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVDYWxlbmRhck9wdGlvbnMoJ29wdGlvbicsICdzZWxlY3RDb25zdHJhaW50Jywge30pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuc2VsZWN0YWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFyT3B0aW9ucygnb3B0aW9uJywgJ3NlbGVjdGFibGUnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndmlldyc6XG4gICAgICAgICAgICAgICAgaWYgKG52ICE9PSAnbW9udGgnIHx8IHRoaXMuY2FsZW5kYXJ0eXBlID09PSBWSUVXX1RZUEVTLkxJU1QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuZGVmYXVsdFZpZXcgPSB0aGlzLmNhbGVuZGFydHlwZSArIGNhcGl0YWxpemUobnYpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmRlZmF1bHRWaWV3ID0gbnY7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlQ2FsZW5kYXJPcHRpb25zKCdjaGFuZ2VWaWV3JywgdGhpcy5jYWxlbmRhck9wdGlvbnMuY2FsZW5kYXIuZGVmYXVsdFZpZXcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2FsZW5kYXJ0eXBlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGVuZGFydHlwZSA9IG52IHx8ICdkYXlHcmlkJztcbiAgICAgICAgICAgIGNhc2UgJ2NvbnRyb2xzJzpcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFySGVhZGVyT3B0aW9ucygpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF0YXNldCc6XG4gICAgICAgICAgICAgICAgbGV0IGRhdGFTZXQ7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhc2V0ID0gbnY7XG4gICAgICAgICAgICAgICAgZGF0YVNldCA9IGNyZWF0ZUFycmF5RnJvbShnZXRDbG9uZWRPYmplY3QobnYpKTtcbiAgICAgICAgICAgICAgICBkYXRhU2V0ID0gdGhpcy5jb25zdHJ1Y3RDYWxlbmRhckRhdGFzZXQoZGF0YVNldCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhU2V0RXZlbnRzLmV2ZW50cyA9IGRhdGFTZXQuZmlsdGVyKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdGFydCA9IGV2ZW50LnN0YXJ0IHx8IGV2ZW50LmVuZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnN0YXJ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJFdmVudERhdGFTZXQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Nob3cnOlxuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhcj8uY2hhbmdlVmlldyh0aGlzLmdldFZpZXdUeXBlKHRoaXMudmlldyA/IHRoaXMudmlldyA6ICdkYXlHcmlkTW9udGgnKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0byBjYWxjdWxhdGUgdGhlIGhlaWdodCBmb3IgdGhlIGV2ZW50IGxpbWl0IGFuZCBwYXJzaW5nIHRoZSB2YWx1ZSB3aGVuIGl0IGlzIHBlcmNlbnRhZ2UgYmFzZWQuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVIZWlnaHQoaGVpZ2h0KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgJHBhcmVudCA9ICQodGhpcy5uYXRpdmVFbGVtZW50KS5wYXJlbnQoKSxcbiAgICAgICAgICAgIGVsSGVpZ2h0ID0gaGVpZ2h0IHx8ICc2NTBweCc7XG5cbiAgICAgICAgbGV0IHBhcmVudEhlaWdodDogYW55ID0gJHBhcmVudC5jc3MoJ2hlaWdodCcpLFxuICAgICAgICAgICAgY29tcHV0ZWRIZWlnaHQ6IG51bWJlcjtcblxuICAgICAgICBpZiAoaW5jbHVkZXMoZWxIZWlnaHQsICclJykpIHtcbiAgICAgICAgICAgIGlmIChpbmNsdWRlcyhwYXJlbnRIZWlnaHQsICclJykpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRIZWlnaHQgPSAkcGFyZW50LmhlaWdodCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29tcHV0ZWRIZWlnaHQgPSAocGFyc2VJbnQocGFyZW50SGVpZ2h0LCAxMCkgKiBOdW1iZXIoZWxIZWlnaHQucmVwbGFjZSgvXFwlL2csICcnKSkpIC8gMTAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tcHV0ZWRIZWlnaHQgPSBwYXJzZUludChlbEhlaWdodCwgMTApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLnZpZXdzLm1vbnRoLmV2ZW50TGltaXQgPSBwYXJzZUludCgnJyArIGNvbXB1dGVkSGVpZ2h0IC8gMjAwLCAxMCkgKyAxO1xuICAgICAgICByZXR1cm4gY29tcHV0ZWRIZWlnaHQ7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgY29uc3QgY2FsZW5kYXJFbCA9IHRoaXMuX2NhbGVuZGFyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IEZ1bGxDYWxlbmRhciA9IHdpbmRvd1snRnVsbENhbGVuZGFyJ107XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyID0gbmV3IEZ1bGxDYWxlbmRhci5DYWxlbmRhcihjYWxlbmRhckVsLCB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhcik7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhciA9ICBjYWxlbmRhcjtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdiZWZvcmVyZW5kZXInLCB7JyRldmVudCcgOiB7fX0pO1xuICAgICAgICBjYWxlbmRhci5yZW5kZXIoKTtcblxuICAgICAgICAvLyBpZiB0aGUgY2hhbmdlcyBhcmUgYWxyZWFkeSBzdGFja2VkIGJlZm9yZSBjYWxlbmRhciByZW5kZXJzIHRoZW4gZXhlY3V0ZSB0aGVtIHdoZW4gbmVlZGVkXG4gICAgICAgIGlmICh0aGlzLmNoYW5nZXNTdGFjay5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlc1N0YWNrLmZvckVhY2goKGNoYW5nZU9iaikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlDYWxlbmRhck9wdGlvbnMoY2hhbmdlT2JqLm9wZXJhdGlvblR5cGUsIGNoYW5nZU9iai5hcmd1bWVudEtleSwgY2hhbmdlT2JqLmFyZ3VtZW50VmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZXNTdGFjay5sZW5ndGggPSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9XTVMtMjI0MTIgOiBjaGFuZ2UgY2FsZW5kZXIncyB2aWV3IGJhc2VkIG9uIHRoZSBjb25maWd1cmF0aW9uIHNldCBmcm9tIHN0dWRpb1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5jaGFuZ2VWaWV3KHRoaXMuZ2V0Vmlld1R5cGUodGhpcy52aWV3ID8gdGhpcy52aWV3IDogJ2RheUdyaWRNb250aCcpKTtcbiAgICAgICAgfSw1MCk7XG4gICAgfVxuXG4gICAgLy8gY29uc3RydWN0cyB0aGUgY2FsZW5kYXIgZGF0YXNldCBieSBtYXBwaW5nIHRoZSBldmVudHN0YXJ0LCBldmVudGVuZCwgZXZlbnR0aXRsZSBldGMuLFxuICAgIHByaXZhdGUgY29uc3RydWN0Q2FsZW5kYXJEYXRhc2V0KGV2ZW50U291cmNlKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSB7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy5ldmVudHRpdGxlIHx8ICd0aXRsZScsXG4gICAgICAgICAgICBhbGxEYXk6IHRoaXMuZXZlbnRhbGxkYXkgfHwgJ2FsbGRheScsXG4gICAgICAgICAgICBzdGFydDogdGhpcy5ldmVudHN0YXJ0IHx8ICdzdGFydCcsXG4gICAgICAgICAgICBlbmQ6IHRoaXMuZXZlbnRlbmQgfHwgJ2VuZCcsXG4gICAgICAgICAgICBjbGFzc05hbWU6IHRoaXMuZXZlbnRjbGFzcyB8fCAnY2xhc3NOYW1lJ1xuICAgICAgICB9O1xuXG4gICAgICAgIGV2ZW50U291cmNlLmZvckVhY2goKG9iaikgPT4ge1xuICAgICAgICAgICAgb2JqLl9ldmVudE1ldGFkYXRhID0gY2xvbmUob2JqKTtcbiAgICAgICAgICAgIGlmIChpc0VtcHR5KG9iai5fZXZlbnRNZXRhZGF0YS51cmwpKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG9iai5fZXZlbnRNZXRhZGF0YS51cmw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNFbXB0eShvYmoudXJsKSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBvYmoudXJsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtYXBLZXlzKHByb3BlcnRpZXMsICh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IG9ialZhbDtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAndGl0bGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ialZhbCA9IGdldEV2YWx1YXRlZERhdGEob2JqLCB7ZXhwcmVzc2lvbjogdmFsdWV9LCB0aGlzLnZpZXdQYXJlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYWxsRGF5Jykge1xuICAgICAgICAgICAgICAgICAgICBvYmpWYWwgPSAhIWdldChvYmosIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBvYmpWYWwgPSBnZXQob2JqLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICghb2JqVmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb2JqW2tleV0gPSBvYmpWYWw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBldmVudFNvdXJjZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExvY2FsZSgpIHtcbiAgICAgICAgY29uc3QgeWVhciA9IGdldCh0aGlzLmFwcExvY2FsZSwgJ0xBQkVMX0NBTEVOREFSX1lFQVInKSB8fCBCVVRUT05fVEVYVC5ZRUFSO1xuICAgICAgICBjb25zdCBtb250aCA9IGdldCh0aGlzLmFwcExvY2FsZSwgJ0xBQkVMX0NBTEVOREFSX01PTlRIJykgfHwgQlVUVE9OX1RFWFQuTU9OVEg7XG4gICAgICAgIGNvbnN0IHdlZWsgPSBnZXQodGhpcy5hcHBMb2NhbGUsICdMQUJFTF9DQUxFTkRBUl9XRUVLJykgfHwgQlVUVE9OX1RFWFQuV0VFSztcbiAgICAgICAgY29uc3QgZGF5ID0gZ2V0KHRoaXMuYXBwTG9jYWxlLCAnTEFCRUxfQ0FMRU5EQVJfREFZJykgfHwgQlVUVE9OX1RFWFQuREFZO1xuICAgICAgICBjb25zdCB0b2RheSA9IGdldCh0aGlzLmFwcExvY2FsZSwgJ0xBQkVMX0NBTEVOREFSX1RPREFZJykgfHwgQlVUVE9OX1RFWFQuVE9EQVk7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmJ1dHRvblRleHQgICAgPSB7IHllYXIsIG1vbnRoLCB3ZWVrLCBkYXksIHRvZGF5LFxuICAgICAgICAgICAgJ2xpc3RZZWFyJzogeWVhcixcbiAgICAgICAgICAgICdsaXN0TW9udGgnOiBtb250aCxcbiAgICAgICAgICAgICdsaXN0V2Vlayc6IHdlZWssXG4gICAgICAgICAgICAnbGlzdERheSc6IGRheVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGNhbGVuZGFyIG9wdGlvbnMgd2l0aCB0aGUgbmV3U2V0IG9mIG9wdGlvbnNcbiAgICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgICAqL1xuICAgIG92ZXJyaWRlRGVmYXVsdHMob3B0aW9ucykge1xuICAgICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykpIHtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKG9wdGlvbnMpLm1hcChvcHRpb24gPT4gdGhpcy4kZnVsbENhbGVuZGFyLnNldE9wdGlvbihvcHRpb25bMF0sIG9wdGlvblsxXSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaWYgdGhlIG9wZXJhdGlvbnMgYXJlIHBlcmZvcm1lZCBiZWZvcmUgdGhlIGNhbGVuZGFyIHJlbmRlcnMsIHRoZSBjaGFuZ2VzIGFyZSBwdXNoZWQgaW50byBjaGFuZ2VzU3RhY2sgYW5kIHdpbGwgYmUgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGNhbGVuZGFyIGdldHMgcmVuZGVyZWRcbiAgICAgKiBpZiB0aGUgY2FsZW5kYXIgaXMgYWxyZWFkeSByZW5kZXJlZCwgdGhlbiB0aGUgc3BlY2lmaWMgb3BlcmF0aW9uIHdpbGwgYmUgcGVyZm9ybWVkIGFjY29yZGluZyB0byB0aGUgb3BlcmF0aW9uIHR5cGVcbiAgICAgKiBAcGFyYW0gb3BlcmF0aW9uVHlwZVxuICAgICAqIEBwYXJhbSBhcmd1bWVudEtleVxuICAgICAqIEBwYXJhbSBhcmd1bWVudFZhbHVlXG4gICAgICovXG4gICAgdXBkYXRlQ2FsZW5kYXJPcHRpb25zKG9wZXJhdGlvblR5cGU6IHN0cmluZywgYXJndW1lbnRLZXk/OiBhbnksIGFyZ3VtZW50VmFsdWU/OiBhbnkpOiB2b2lkIHsvL1xuICAgICAgICBpZiAoIXRoaXMuJGZ1bGxDYWxlbmRhcikge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VzU3RhY2sucHVzaCh7XG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uVHlwZTogb3BlcmF0aW9uVHlwZSxcbiAgICAgICAgICAgICAgICBhcmd1bWVudEtleTogYXJndW1lbnRLZXksXG4gICAgICAgICAgICAgICAgYXJndW1lbnRWYWx1ZTogYXJndW1lbnRWYWx1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcHBseUNhbGVuZGFyT3B0aW9ucyhvcGVyYXRpb25UeXBlLCBhcmd1bWVudEtleSwgYXJndW1lbnRWYWx1ZSk7XG4gICAgfVxuXG4gICAgcmVkcmF3KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUNhbGVuZGFyT3B0aW9ucygncmVuZGVyJyk7XG4gICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhcj8uY2hhbmdlVmlldyh0aGlzLmdldFZpZXdUeXBlKHRoaXMudmlldyA/IHRoaXMudmlldyA6ICdkYXlHcmlkTW9udGgnKSk7XG4gICAgfVxuXG4gICAgLy8gb24gZGF0ZSBjaGFuZ2UgaW52b2tlIHRoZSBzZWxlY3QgZXZlbnQsIGFuZCBpZiBkYXRlIGhhcyBldmVudCBvbiBpdCB0aGVuIGludm9rZSB0aGUgZXZlbnQgY2xpY2suXG4gICAgcHJpdmF0ZSBvblZhbHVlQ2hhbmdlKHZhbHVlOiBEYXRlKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJveHlNb2RlbCA9IHZhbHVlO1xuICAgICAgICBjb25zdCBzZWxlY3RlZERhdGUgICAgICAgID0gdGhpcy5wcm94eU1vZGVsICYmIG1vbWVudCh0aGlzLnByb3h5TW9kZWwpLnN0YXJ0T2YoJ2RheScpLmZvcm1hdChkYXRlRm9ybWF0KSxcbiAgICAgICAgICAgIHNlbGVjdGVkRXZlbnREYXRhICAgPSB0aGlzLmV2ZW50RGF0YVtzZWxlY3RlZERhdGVdLFxuICAgICAgICAgICAgc3RhcnQgICAgICAgICAgICAgICA9IG1vbWVudCh0aGlzLnByb3h5TW9kZWwpLFxuICAgICAgICAgICAgZW5kICAgICAgICAgICAgICAgICA9IG1vbWVudCh0aGlzLnByb3h5TW9kZWwpLmVuZE9mKCdkYXknKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZGRhdGEgPSBzZWxlY3RlZEV2ZW50RGF0YTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZGRhdGVzID0ge1xuICAgICAgICAgICAgJ3N0YXJ0JzogbW9tZW50KHNlbGVjdGVkRGF0ZSkudmFsdWVPZigpLFxuICAgICAgICAgICAgJ2VuZCcgIDogbW9tZW50KHNlbGVjdGVkRGF0ZSkuZW5kT2YoJ2RheScpLnZhbHVlT2YoKVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmNhbGVuZGFyT3B0aW9ucy5jYWxlbmRhci5zZWxlY3Qoc3RhcnQudmFsdWVPZigpLCBlbmQudmFsdWVPZigpLCB7fSwgdGhpcywgc2VsZWN0ZWRFdmVudERhdGEpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRFdmVudERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuY2FsZW5kYXJPcHRpb25zLmNhbGVuZGFyLmV2ZW50Q2xpY2soc2VsZWN0ZWRFdmVudERhdGEsIHt9LCB0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gd2lsbCByZWNlaXZlIGFuIG9iamVjdCBjb250YWluaW5nIHNvdXJjZSBvZiBjYWxlbmRhciwgYXBpa2V5IGFuZCBjYWxlbmRhcklkIGFuZCB3aWxsIGludGVncmF0ZSB0aGUgcmVzcGVjdGl2ZSBjYWxlbmRhciB3aXRoIGZ1bGxjYWxlbmRhci5cbiAgICAgKiBAcGFyYW0gZXZlbnRPYmplY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRXZlbnRTb3VyY2UoZXZlbnRPYmplY3QpIHtcbiAgICAgICAgaWYgKGlzRW1wdHkoZXZlbnRPYmplY3QpKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ2FkZEV2ZW50U291cmNlIG1ldGhvZCByZXF1aXJlcyBhbiBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50T2JqZWN0LnNvdXJjZSA9PT0gJ2dvb2dsZScpIHtcbiAgICAgICAgICAgIGlmICghZXZlbnRPYmplY3QuZ29vZ2xlQ2FsZW5kYXJBcGlLZXkgfHwgIWV2ZW50T2JqZWN0Lmdvb2dsZUNhbGVuZGFySWQgKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKCdGb3IgZ29vZ2xlIGNhbGVuZGFyIGludGVncmF0aW9uLCBcXCdnb29nbGVDYWxlbmRhckFwaUtleVxcJyBhbmQgXFwnZ29vZ2xlQ2FsZW5kYXJJZFxcJyBzaG91bGQgYmUgcGFzc2VkIGluIHRoZSBwYXJhbWV0ZXIgb2JqZWN0LicpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24oJ2dvb2dsZUNhbGVuZGFyQXBpS2V5JywgZXZlbnRPYmplY3QuZ29vZ2xlQ2FsZW5kYXJBcGlLZXkpO1xuICAgICAgICAgICAgdGhpcy4kZnVsbENhbGVuZGFyLmFkZEV2ZW50U291cmNlKHtcbiAgICAgICAgICAgICAgICBnb29nbGVDYWxlbmRhcklkOiBldmVudE9iamVjdC5nb29nbGVDYWxlbmRhcklkXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCB0aGUgdmlld1R5cGVLZXkgYWNjb3JkaW5nIHRvIHRoZSBjYWxlbmRhclR5cGUgYW5kIHZpZXdUeXBlIHNlbGVjdGVkXG4gICAgICogQHBhcmFtIHZpZXdLZXlcbiAgICAgKi9cbiAgICBnZXRWaWV3VHlwZSh2aWV3S2V5KSB7XG4gICAgICAgIGNvbnN0IGNhbGVuZGFyVHlwZSA9IHRoaXMuY2FsZW5kYXJ0eXBlO1xuICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy52aWV3O1xuICAgICAgICBsZXQgcmVzdWx0O1xuXG4gICAgICAgIGlmICh2aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3RNb250aCcgOiAnZGF5R3JpZE1vbnRoJztcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAnd2VlaycpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IChjYWxlbmRhclR5cGUgPT09IFZJRVdfVFlQRVMuQkFTSUMpID8gICdkYXlHcmlkV2VlaycgOiAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3RXZWVrJyA6ICd0aW1lR3JpZFdlZWsnO1xuICAgICAgICB9IGVsc2UgaWYgKHZpZXcgPT09ICdkYXknKSB7XG4gICAgICAgICAgICByZXN1bHQgPSAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkJBU0lDKSA/ICAnZGF5R3JpZERheScgOiAoY2FsZW5kYXJUeXBlID09PSBWSUVXX1RZUEVTLkxJU1QpID8gJ2xpc3REYXknIDogJ3RpbWVHcmlkRGF5JztcbiAgICAgICAgfSBlbHNlIGlmICh2aWV3ID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IChjYWxlbmRhclR5cGUgPT09IFZJRVdfVFlQRVMuTElTVCkgPyAnbGlzdFllYXInIDogJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgPSB2aWV3S2V5O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9wZXJhdGlvblR5cGVcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRLZXlcbiAgICAgKiBAcGFyYW0gYXJndW1lbnRWYWx1ZVxuICAgICAqIEhhbmRsZSB2YXJpb3VzIG9wZXJhdGlvbnMgbGlrZSBSZW5kZXJpbmcgQ2FsZW5kYXIsIGNoYW5naW5nIHRoZSBjYWxlbmRhciB2aWV3VHlwZSwgc2V0dGluZyB0aGUgY2FsZW5kYXJPcHRpb25zIGFjY29yZGluZyB0byB0aGUgb3BlcmF0aW9uVHlwZS5cbiAgICAgKi9cbiAgICBhcHBseUNhbGVuZGFyT3B0aW9ucyhvcGVyYXRpb25UeXBlOiBzdHJpbmcsIGFyZ3VtZW50S2V5PzogYW55LCBhcmd1bWVudFZhbHVlPzogYW55KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAob3BlcmF0aW9uVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAncmVuZGVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIucmVuZGVyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvcHRpb24nOlxuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5zZXRPcHRpb24oYXJndW1lbnRLZXksIGFyZ3VtZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY2hhbmdlVmlldyc6XG4gICAgICAgICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMuZ2V0Vmlld1R5cGUoYXJndW1lbnRLZXkpO1xuICAgICAgICAgICAgICAgIHRoaXMuJGZ1bGxDYWxlbmRhci5jaGFuZ2VWaWV3KHZpZXcpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyB0aGUgbmV3IGV2ZW50c0RhdGFTZXQgdG8gdGhlIGNhbGVuZGFyIG9iamVjdCB3aXRoIGFkZEV2ZW50IE1ldGhvZCBhbmQgcmUtcmVuZGVycyB0aGUgY2FsZW5kYXJcbiAgICAgKi9cbiAgICByZW5kZXJFdmVudERhdGFTZXQoKSB7XG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgICAgICB0aGlzLiRmdWxsQ2FsZW5kYXIuYmF0Y2hSZW5kZXJpbmcoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCBldmVudHMgPSBzZWxmLiRmdWxsQ2FsZW5kYXIuZ2V0RXZlbnRzKCk7XG4gICAgICAgICAgICBlYWNoKGV2ZW50cywgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnREYXRhID0gc2VsZi4kZnVsbENhbGVuZGFyLmdldEV2ZW50QnlJZChldmVudC5pZCk7XG4gICAgICAgICAgICAgICAgZXZlbnREYXRhLnJlbW92ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBlYWNoKHNlbGYuZGF0YVNldEV2ZW50cy5ldmVudHMsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgIHNlbGYuJGZ1bGxDYWxlbmRhci5hZGRFdmVudChldmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmKHRoaXMuY2FuY2VsTG9jYWxlQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNhbmNlbExvY2FsZUNoYW5nZVN1YnNjcmlwdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAjY2FsZW5kYXIgW2F0dHIuYXJpYS1sYWJlbF09XCJ2aWV3IHx8ICdtb250aCdcIj48L2Rpdj5cbiJdfQ==