@acorex/components 20.2.0-next.12 → 20.2.0-next.13

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 (222) hide show
  1. package/action-sheet/index.d.ts +1 -10
  2. package/alert/index.d.ts +1 -3
  3. package/avatar/index.d.ts +1 -2
  4. package/badge/index.d.ts +1 -2
  5. package/bottom-navigation/index.d.ts +10 -2
  6. package/breadcrumbs/index.d.ts +1 -3
  7. package/button/index.d.ts +56 -17
  8. package/button-group/index.d.ts +3 -5
  9. package/calendar/index.d.ts +1 -6
  10. package/check-box/index.d.ts +1 -4
  11. package/chips/index.d.ts +1 -2
  12. package/collapse/index.d.ts +1 -3
  13. package/color-box/index.d.ts +4 -8
  14. package/color-palette/index.d.ts +19 -24
  15. package/datetime-box/index.d.ts +1 -7
  16. package/datetime-input/index.d.ts +1 -4
  17. package/datetime-picker/index.d.ts +1 -10
  18. package/fesm2022/acorex-components-accordion.mjs +10 -10
  19. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  20. package/fesm2022/acorex-components-action-sheet.mjs +16 -45
  21. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  22. package/fesm2022/acorex-components-alert.mjs +9 -11
  23. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  24. package/fesm2022/acorex-components-audio-wave.mjs +7 -7
  25. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  26. package/fesm2022/acorex-components-autocomplete.mjs +7 -7
  27. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  28. package/fesm2022/acorex-components-avatar.mjs +11 -13
  29. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  30. package/fesm2022/acorex-components-badge.mjs +8 -9
  31. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  32. package/fesm2022/acorex-components-bottom-navigation.mjs +17 -13
  33. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  34. package/fesm2022/acorex-components-breadcrumbs.mjs +12 -13
  35. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  36. package/fesm2022/acorex-components-button-group.mjs +13 -15
  37. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  38. package/fesm2022/acorex-components-button.mjs +73 -30
  39. package/fesm2022/acorex-components-button.mjs.map +1 -1
  40. package/fesm2022/acorex-components-calendar.mjs +17 -19
  41. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  42. package/fesm2022/acorex-components-check-box.mjs +8 -10
  43. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  44. package/fesm2022/acorex-components-chips.mjs +8 -9
  45. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  46. package/fesm2022/acorex-components-circular-progress.mjs +7 -7
  47. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  48. package/fesm2022/acorex-components-collapse.mjs +14 -15
  49. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  50. package/fesm2022/acorex-components-color-box.mjs +27 -29
  51. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  52. package/fesm2022/acorex-components-color-palette.mjs +53 -73
  53. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  54. package/fesm2022/acorex-components-comment.mjs +28 -28
  55. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  56. package/fesm2022/acorex-components-conversation.mjs +49 -49
  57. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  58. package/fesm2022/acorex-components-cron-job.mjs +46 -46
  59. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  60. package/fesm2022/acorex-components-data-pager.mjs +31 -31
  61. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  62. package/fesm2022/acorex-components-data-table.mjs +37 -37
  63. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  64. package/fesm2022/acorex-components-datetime-box.mjs +13 -28
  65. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  66. package/fesm2022/acorex-components-datetime-input.mjs +10 -13
  67. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  68. package/fesm2022/acorex-components-datetime-picker.mjs +16 -37
  69. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  70. package/fesm2022/acorex-components-decorators.mjs +25 -25
  71. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  72. package/fesm2022/acorex-components-dialog.mjs +10 -10
  73. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  74. package/fesm2022/acorex-components-drawer-2.mjs +10 -10
  75. package/fesm2022/acorex-components-drawer-2.mjs.map +1 -1
  76. package/fesm2022/acorex-components-drawer.mjs +13 -13
  77. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  78. package/fesm2022/acorex-components-dropdown-button.mjs +7 -7
  79. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  80. package/fesm2022/acorex-components-dropdown.mjs +13 -13
  81. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  82. package/fesm2022/acorex-components-file-explorer.mjs +25 -25
  83. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  84. package/fesm2022/acorex-components-flow-chart.mjs +16 -16
  85. package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
  86. package/fesm2022/acorex-components-form.mjs +16 -16
  87. package/fesm2022/acorex-components-form.mjs.map +1 -1
  88. package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
  89. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  90. package/fesm2022/acorex-components-image-editor.mjs +34 -34
  91. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  92. package/fesm2022/acorex-components-image.mjs +7 -7
  93. package/fesm2022/acorex-components-image.mjs.map +1 -1
  94. package/fesm2022/acorex-components-json-viewer.mjs +7 -7
  95. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  96. package/fesm2022/acorex-components-kanban.mjs +4 -4
  97. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  98. package/fesm2022/acorex-components-kbd.mjs +10 -10
  99. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  100. package/fesm2022/acorex-components-label.mjs +7 -7
  101. package/fesm2022/acorex-components-label.mjs.map +1 -1
  102. package/fesm2022/acorex-components-list.mjs +8 -8
  103. package/fesm2022/acorex-components-list.mjs.map +1 -1
  104. package/fesm2022/acorex-components-loading-dialog.mjs +10 -10
  105. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  106. package/fesm2022/acorex-components-loading.mjs +16 -16
  107. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  108. package/fesm2022/acorex-components-map.mjs +189 -29
  109. package/fesm2022/acorex-components-map.mjs.map +1 -1
  110. package/fesm2022/acorex-components-media-viewer.mjs +34 -34
  111. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  112. package/fesm2022/acorex-components-menu.mjs +16 -16
  113. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  114. package/fesm2022/{acorex-components-modal-acorex-components-modal-C_TpX235.mjs → acorex-components-modal-acorex-components-modal-DykbEbg0.mjs} +21 -21
  115. package/fesm2022/{acorex-components-modal-acorex-components-modal-C_TpX235.mjs.map → acorex-components-modal-acorex-components-modal-DykbEbg0.mjs.map} +1 -1
  116. package/fesm2022/{acorex-components-modal-modal-content.component-BRhLxoBk.mjs → acorex-components-modal-modal-content.component-73xLTLTg.mjs} +5 -5
  117. package/fesm2022/{acorex-components-modal-modal-content.component-BRhLxoBk.mjs.map → acorex-components-modal-modal-content.component-73xLTLTg.mjs.map} +1 -1
  118. package/fesm2022/acorex-components-modal.mjs +1 -1
  119. package/fesm2022/acorex-components-navbar.mjs +7 -7
  120. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  121. package/fesm2022/acorex-components-notification.mjs +10 -10
  122. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  123. package/fesm2022/acorex-components-number-box-2.mjs +3 -3
  124. package/fesm2022/acorex-components-number-box-2.mjs.map +1 -1
  125. package/fesm2022/acorex-components-number-box.mjs +7 -7
  126. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  127. package/fesm2022/acorex-components-otp.mjs +7 -7
  128. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  129. package/fesm2022/acorex-components-page.mjs +10 -10
  130. package/fesm2022/acorex-components-page.mjs.map +1 -1
  131. package/fesm2022/acorex-components-paint.mjs +25 -25
  132. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  133. package/fesm2022/acorex-components-password-box.mjs +10 -10
  134. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  135. package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
  136. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  137. package/fesm2022/acorex-components-phone-box.mjs +7 -7
  138. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  139. package/fesm2022/acorex-components-picker.mjs +13 -13
  140. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  141. package/fesm2022/acorex-components-popover.mjs +7 -7
  142. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  143. package/fesm2022/acorex-components-popup.mjs +10 -10
  144. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  145. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  146. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  147. package/fesm2022/acorex-components-qrcode.mjs +7 -7
  148. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  149. package/fesm2022/acorex-components-query-builder.mjs +7 -7
  150. package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
  151. package/fesm2022/acorex-components-radio.mjs +7 -7
  152. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  153. package/fesm2022/acorex-components-rail-navigation.mjs +13 -13
  154. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  155. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  156. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  157. package/fesm2022/acorex-components-rate-picker.mjs +7 -7
  158. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  159. package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
  160. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  161. package/fesm2022/acorex-components-result.mjs +7 -7
  162. package/fesm2022/acorex-components-result.mjs.map +1 -1
  163. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  164. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  165. package/fesm2022/acorex-components-rrule.mjs +6 -6
  166. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  167. package/fesm2022/acorex-components-scheduler.mjs +31 -31
  168. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  169. package/fesm2022/acorex-components-scss.mjs +4 -4
  170. package/fesm2022/acorex-components-scss.mjs.map +1 -1
  171. package/fesm2022/acorex-components-search-box.mjs +7 -7
  172. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  173. package/fesm2022/acorex-components-select-box.mjs +7 -7
  174. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  175. package/fesm2022/acorex-components-selection-list-2.mjs +7 -7
  176. package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
  177. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  178. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  179. package/fesm2022/acorex-components-side-menu.mjs +98 -43
  180. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  181. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  182. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  183. package/fesm2022/acorex-components-slider.mjs +7 -7
  184. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  185. package/fesm2022/acorex-components-sliding-item.mjs +13 -13
  186. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  187. package/fesm2022/acorex-components-step-wizard.mjs +13 -13
  188. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  189. package/fesm2022/acorex-components-switch.mjs +10 -10
  190. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  191. package/fesm2022/acorex-components-tabs.mjs +13 -13
  192. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  193. package/fesm2022/acorex-components-tag-box.mjs +7 -7
  194. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  195. package/fesm2022/acorex-components-tag.mjs +7 -7
  196. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  197. package/fesm2022/acorex-components-text-area.mjs +7 -7
  198. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  199. package/fesm2022/acorex-components-text-box.mjs +10 -10
  200. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  201. package/fesm2022/acorex-components-time-duration.mjs +7 -7
  202. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  203. package/fesm2022/acorex-components-time-line.mjs +10 -10
  204. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  205. package/fesm2022/acorex-components-toast.mjs +10 -10
  206. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  207. package/fesm2022/acorex-components-toolbar.mjs +7 -7
  208. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  209. package/fesm2022/acorex-components-tooltip.mjs +12 -11
  210. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  211. package/fesm2022/acorex-components-tree-view.mjs +10 -10
  212. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  213. package/fesm2022/acorex-components-uploader.mjs +22 -22
  214. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  215. package/fesm2022/acorex-components-video-player.mjs +7 -7
  216. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  217. package/fesm2022/acorex-components-wysiwyg.mjs +33 -33
  218. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  219. package/map/index.d.ts +25 -0
  220. package/package.json +5 -5
  221. package/side-menu/index.d.ts +15 -6
  222. package/tooltip/index.d.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-datetime-picker.mjs","sources":["../tmp-esm2022/datetime-picker/lib/datetime-picker.config.js","../tmp-esm2022/datetime-picker/lib/datetime-picker.component.js","../tmp-esm2022/datetime-picker/lib/datetime-picker.module.js","../tmp-esm2022/datetime-picker/acorex-components-datetime-picker.js"],"sourcesContent":["import { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\nexport const AX_DATETIME_PICKER_CONFIG = new InjectionToken('AX_DATETIME_PICKER_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'datetime-picker', AX_DATETIME_PICKER_CONFIG);\n return AXDateTimePickerDefaultConfig;\n },\n});\nexport const AXDateTimePickerDefaultConfig = {\n currentTimeButton: true,\n};\nexport function dateTimePickerConfig(config = {}) {\n const result = {\n ...AXDateTimePickerDefaultConfig,\n ...config,\n };\n return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTWhDLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUF5QiwyQkFBMkIsRUFBRTtJQUMvRyxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsR0FBRyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFELE9BQU8sNkJBQTZCLENBQUM7SUFDdkMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUEyQjtJQUNuRSxpQkFBaUIsRUFBRSxJQUFJO0NBQ3hCLENBQUM7QUFJRixNQUFNLFVBQVUsb0JBQW9CLENBQUMsU0FBc0MsRUFBRTtJQUMzRSxNQUFNLE1BQU0sR0FBRztRQUNiLEdBQUcsNkJBQTZCO1FBQ2hDLEdBQUcsTUFBTTtLQUNWLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhfR0xPQkFMX0NPTkZJRyB9IGZyb20gJ0BhY29yZXgvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWERhdGVUaW1lUGlja2VyQ29uZmlnIHtcbiAgY3VycmVudFRpbWVCdXR0b246IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEFYRGF0ZVRpbWVQaWNrZXJDb25maWc+KCdBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICBjb25zdCBnbG9iYWwgPSBpbmplY3QoQVhfR0xPQkFMX0NPTkZJRyk7XG4gICAgc2V0KGdsb2JhbCwgJ2RhdGV0aW1lLXBpY2tlcicsIEFYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcpO1xuICAgIHJldHVybiBBWERhdGVUaW1lUGlja2VyRGVmYXVsdENvbmZpZztcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQVhEYXRlVGltZVBpY2tlckRlZmF1bHRDb25maWc6IEFYRGF0ZVRpbWVQaWNrZXJDb25maWcgPSB7XG4gIGN1cnJlbnRUaW1lQnV0dG9uOiB0cnVlLFxufTtcblxuZXhwb3J0IHR5cGUgUGFydGlhbERhdGVUaW1lUGlja2VyQ29uZmlnID0gUGFydGlhbDxBWERhdGVUaW1lUGlja2VyQ29uZmlnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUaW1lUGlja2VyQ29uZmlnKGNvbmZpZzogUGFydGlhbERhdGVUaW1lUGlja2VyQ29uZmlnID0ge30pOiBBWERhdGVUaW1lUGlja2VyQ29uZmlnIHtcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIC4uLkFYRGF0ZVRpbWVQaWNrZXJEZWZhdWx0Q29uZmlnLFxuICAgIC4uLmNvbmZpZyxcbiAgfTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==","import { AXComponent, AXFocusableComponent, AXValuableComponent, MXValueComponent, } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXCalendarComponent, MXCalendarBaseComponent, } from '@acorex/components/calendar';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXPickerContainerComponent, AXPickerItemsComponent, AXPickerTitleComponent } from '@acorex/components/picker';\nimport { AXTabItemComponent, AXTabsComponent } from '@acorex/components/tabs';\nimport { AXFormatPipe, AXFormatService } from '@acorex/core/format';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation, computed, effect, forwardRef, inject, input, linkedSignal, signal, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AX_DATETIME_PICKER_CONFIG } from './datetime-picker.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\n/**\n * allows users to select a date and time from a calendar and time picker interface.\n *\n * @category Components\n */\nexport class AXDateTimePickerComponent extends classes(MXCalendarBaseComponent, (MXValueComponent)) {\n constructor() {\n super(...arguments);\n this.formatService = inject(AXFormatService);\n this.buttonText = computed(() => (this._activePart() === 'date' ? 'dateTime.today' : 'dateTime.now'), ...(ngDevMode ? [{ debugName: \"buttonText\" }] : []));\n this.defaultConfig = inject(AX_DATETIME_PICKER_CONFIG);\n this.pickerHoursMinValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerHoursMinValue\" }] : []));\n this.pickerHoursMaxValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerHoursMaxValue\" }] : []));\n this.pickerMinuteMinValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerMinuteMinValue\" }] : []));\n this.pickerMinuteMaxValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerMinuteMaxValue\" }] : []));\n this.pickerSecondMinValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerSecondMinValue\" }] : []));\n this.pickerSecondMaxValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerSecondMaxValue\" }] : []));\n /**\n * @ignore\n */\n this._currentTimeButton = this.defaultConfig.currentTimeButton;\n /**\n * @ignore\n */\n this.hours = Array(24)\n .fill(0)\n .map((m, i) => ({ id: i, text: i }));\n this.minutes = Array(60)\n .fill(0)\n .map((m, i) => ({ id: i, text: i }));\n /**\n * @ignore\n */\n this._parts = {\n year: {\n key: 'year',\n placeholder: 'yyyy',\n placeholders: ['YY', 'yy', 'YYYY', 'yyyy'],\n enabled: false,\n default: 2023,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.year.placeholder),\n },\n month: {\n key: 'month',\n placeholder: 'MM',\n placeholders: ['MMM', 'MMMM', 'MM', 'M'],\n enabled: false,\n default: 1,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.month.placeholder),\n },\n day: {\n key: 'day',\n placeholder: 'dd',\n placeholders: ['dd', 'd', 'E', 'dddd'],\n enabled: false,\n default: 1,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.day.placeholder),\n },\n hour: {\n key: 'hour',\n placeholder: 'HH',\n placeholders: ['HH', 'H', 'hh', 'h'],\n enabled: false,\n default: 0,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.hour.placeholder),\n },\n minute: {\n key: 'minute',\n placeholder: 'mm',\n placeholders: ['mm', 'm'],\n enabled: false,\n default: 0,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.minute.placeholder),\n },\n second: {\n key: 'second',\n placeholder: 'ss',\n placeholders: ['ss', 's'],\n enabled: false,\n default: 0,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.second.placeholder),\n },\n AMPM: {\n key: 'AMPM',\n placeholder: 'a',\n placeholders: ['a', 'A'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.AMPM.placeholder),\n },\n };\n /**\n * @ignore\n */\n this._activePart = signal('date', ...(ngDevMode ? [{ debugName: \"_activePart\" }] : []));\n // /**\n // * @ignore\n // */\n this._editingDateObj = linkedSignal(() => this.calendarService.now(this.calendar()));\n /**\n * @description The calendar type to use for the datetime input.\n */\n this.calendar = input(null, ...(ngDevMode ? [{ debugName: \"calendar\" }] : []));\n this._calendarSystem = linkedSignal(() => this.calendar() ?? this.type);\n this.picker = input('datetime', ...(ngDevMode ? [{ debugName: \"picker\" }] : []));\n this.#effectPicker = effect(() => {\n if (this.picker() === 'time') {\n this.checkSelectedMinValue(this.calendarService.convert(this.minValue, this.calendar()));\n this.checkSelectedMaxValue(this.calendarService.convert(this.maxValue, this.calendar()));\n this._activePart.set('time');\n }\n else if (this.picker() === 'date') {\n this._activePart.set('date');\n }\n }, ...(ngDevMode ? [{ debugName: \"#effectPicker\" }] : []));\n this._format = linkedSignal(() => this.format() ?? this.localeService.activeProfile().formats[this.picker()]?.short ?? '');\n /**\n * @deprecated use locale & mode instead\n */\n this.format = input(...(ngDevMode ? [undefined, { debugName: \"format\" }] : []));\n this.#effect = effect(() => {\n const profile = this.localeService.activeProfile();\n //\n if (!this.format()) {\n this._format.set(this.format() ?? profile.formats[this.picker()]?.short ?? '');\n }\n //\n if (!this.calendar()) {\n this._calendarSystem.set(profile.calendar.system);\n }\n //\n this.type = this._calendarSystem();\n //\n this._detectParts();\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n }\n /**\n * Determines whether a button for selecting the current time is displayed.\n */\n get currentTimeButton() {\n return this._currentTimeButton;\n }\n /**\n * Sets whether the button for selecting the current time is displayed.\n */\n set currentTimeButton(v) {\n this.setOption({\n name: 'currentTimeButton',\n value: v,\n });\n }\n /**\n * @ignore\n */\n get _hasDatePart() {\n return ['year', 'month', 'day'].some((k) => this._parts[k].enabled);\n }\n /**\n * @ignore\n */\n get _hasTimePart() {\n return ['hour', 'minute', 'second'].some((k) => this._parts[k].enabled);\n }\n #effectPicker;\n #effect;\n /**\n * @ignore\n */\n async ngOnInit() {\n super.ngOnInit();\n this._detectParts();\n }\n /**\n * Handles changes to the internal value of the component.\n * @param value - The new date value. If not provided, defaults to the current date.\n */\n internalValueChanged(value) {\n try {\n if (this.calendarService.isValidDate(value)) {\n this._editingDateObj.set(this.calendarService.create(value, this.calendar()));\n }\n else {\n throw new Error();\n }\n }\n catch {\n this._editingDateObj.set(this.calendarService.now(this.calendar()));\n }\n }\n /**\n * @ignore\n */\n _handleViewChanged(e) {\n this._activePart.set(e.tab.key);\n }\n /**\n * @ignore\n */\n _handlePickerOnValueChanged(e, part) {\n if (e.isUserInteraction) {\n this._editingDateObj.set(this._editingDateObj().set(part, Number(e.value['id'])));\n if (this.minValue) {\n const minv = this.calendarService.convert(this.minValue, this.calendar());\n if (this._editingDateObj().hour > minv.hour) {\n this.pickerMinuteMinValue.set(null);\n }\n else {\n this.pickerMinuteMinValue.set(minv.minute);\n }\n }\n if (this.maxValue) {\n const maxv = this.calendarService.convert(this.maxValue, this.calendar());\n if (this._editingDateObj().hour < maxv.hour) {\n this.pickerMinuteMaxValue.set(null);\n }\n else {\n this.pickerMinuteMaxValue.set(maxv.minute);\n }\n }\n }\n }\n /**\n * @ignore\n */\n _handleCalendarOnNavigate(e) {\n this.onNavigate.emit(e);\n }\n /**\n * @ignore\n */\n _handleCalendarOnValueChanged(e) {\n if (e.isUserInteraction) {\n const selectedValue = this.calendarService.create(e.value, this.calendar());\n const currentValue = this.calendarService\n .create(e.value, this.calendar())\n .set('day', selectedValue.dayOfMonth)\n .set('month', selectedValue.monthOfYear)\n .set('year', selectedValue.year);\n this._editingDateObj.set(currentValue);\n if (this._hasTimePart) {\n this._activePart.set('time');\n if (this.tabs && this._hasDatePart && this._hasTimePart) {\n this.tabs.select(1);\n }\n else {\n this.commitValue(this._editingDateObj().date, true);\n }\n }\n else {\n this.commitValue(this._editingDateObj().date, true);\n }\n this.checkSelectedMinValue(selectedValue);\n this.checkSelectedMaxValue(selectedValue);\n }\n }\n checkSelectedMinValue(selectedValue) {\n if (!this.minValue)\n return;\n if (!this.calendarService.isValidDate(this.minValue))\n return;\n if (selectedValue.isAfter(this.minValue, 'day')) {\n this.pickerHoursMinValue.set(null);\n this.pickerMinuteMinValue.set(null);\n this.pickerSecondMinValue.set(null);\n }\n else {\n const minv = this.calendarService.convert(this.minValue, this.calendar());\n this.pickerHoursMinValue.set(minv.hour);\n this.pickerMinuteMinValue.set(minv.minute);\n this.pickerSecondMinValue.set(minv.second);\n }\n }\n checkSelectedMaxValue(selectedValue) {\n if (!this.maxValue)\n return;\n if (!this.calendarService.isValidDate(this.maxValue))\n return;\n if (selectedValue.isBefore(this.maxValue, 'day')) {\n this.pickerHoursMaxValue.set(null);\n this.pickerMinuteMaxValue.set(null);\n this.pickerSecondMaxValue.set(null);\n }\n else {\n const maxv = this.calendarService.convert(this.maxValue, this.calendar());\n this.pickerHoursMaxValue.set(maxv.hour);\n this.pickerMinuteMaxValue.set(maxv.minute);\n this.pickerSecondMaxValue.set(maxv.second);\n }\n }\n /**\n * @ignore\n */\n _detectParts() {\n Object.values(this._parts).forEach((e) => {\n e.enabled = false;\n });\n const formatParts = this._format().split(/[^a-zA-Z]+/);\n formatParts.forEach((f) => {\n const found = Object.values(this._parts).find((c) => c.placeholders.some((d) => d == f));\n if (found) {\n found.enabled = true;\n found.placeholder = f;\n }\n });\n //this.cdr.markForCheck();\n }\n /**\n * @ignore\n */\n _handleSetClick() {\n this.commitValue(this._editingDateObj().date, true);\n this.checkSelectedMinValue(this._editingDateObj());\n this.checkSelectedMaxValue(this._editingDateObj());\n }\n /**\n * @ignore\n */\n _handleNowClick() {\n this._editingDateObj.set(this.calendarService.now(this.calendar()));\n this.commitValue(this._editingDateObj().date, true);\n this.checkSelectedMinValue(this._editingDateObj());\n this.checkSelectedMaxValue(this._editingDateObj());\n }\n /**\n * @ignore\n */\n isDisabled(date) {\n if (Array.isArray(this.disabledDates) && this.disabledDates.length != 0) {\n return this.disabledDates.some((d) => date.equal(d, 'day'));\n }\n else if (typeof this.disabledDates == 'function') {\n return this.disabledDates(date.date);\n }\n return false;\n }\n /**\n * @ignore\n */\n internalSetValue(value) {\n if (!value || !this.calendarService.isValidDate(value)) {\n return null;\n }\n const v = this.calendarService.convert(value, this.calendar());\n this.checkSelectedMinValue(this.calendarService.convert(v, this.calendar()));\n this.checkSelectedMaxValue(this.calendarService.convert(v, this.calendar()));\n if (this.isDisabled(v)) {\n return null;\n }\n if (this.minValue && this.calendarService.isValidDate(this.minValue) && v.isBefore(this.minValue)) {\n return this.minValue;\n }\n if (this.maxValue && this.calendarService.isValidDate(this.maxValue) && v.isAfter(this.maxValue)) {\n return this.maxValue;\n }\n return v.date;\n }\n isTodayDisabled() {\n const disabledDates = this.disabledDates;\n if (!disabledDates || !Array.isArray(disabledDates)) {\n return false;\n }\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return disabledDates.some((disabledDate) => {\n const disabled = new Date(disabledDate);\n disabled.setHours(0, 0, 0, 0);\n return today.getTime() === disabled.getTime();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: AXDateTimePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.7\", type: AXDateTimePickerComponent, isStandalone: true, selector: \"ax-datetime-picker\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: \"state\", publicName: \"state\", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: false, isRequired: false, transformFunction: null }, depth: { classPropertyName: \"depth\", publicName: \"depth\", isSignal: false, isRequired: false, transformFunction: null }, activeView: { classPropertyName: \"activeView\", publicName: \"activeView\", isSignal: false, isRequired: false, transformFunction: null }, minValue: { classPropertyName: \"minValue\", publicName: \"minValue\", isSignal: false, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: \"maxValue\", publicName: \"maxValue\", isSignal: false, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: \"disabledDates\", publicName: \"disabledDates\", isSignal: false, isRequired: false, transformFunction: null }, holidayDates: { classPropertyName: \"holidayDates\", publicName: \"holidayDates\", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: \"type\", publicName: \"type\", isSignal: false, isRequired: false, transformFunction: null }, cellTemplate: { classPropertyName: \"cellTemplate\", publicName: \"cellTemplate\", isSignal: false, isRequired: false, transformFunction: null }, cellClass: { classPropertyName: \"cellClass\", publicName: \"cellClass\", isSignal: false, isRequired: false, transformFunction: null }, showNavigation: { classPropertyName: \"showNavigation\", publicName: \"showNavigation\", isSignal: false, isRequired: false, transformFunction: null }, currentTimeButton: { classPropertyName: \"currentTimeButton\", publicName: \"currentTimeButton\", isSignal: false, isRequired: false, transformFunction: null }, calendar: { classPropertyName: \"calendar\", publicName: \"calendar\", isSignal: true, isRequired: false, transformFunction: null }, picker: { classPropertyName: \"picker\", publicName: \"picker\", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: \"format\", publicName: \"format\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: \"valueChange\", stateChange: \"stateChange\", onValueChanged: \"onValueChanged\", onBlur: \"onBlur\", onFocus: \"onFocus\", onClick: \"onClick\", readonlyChange: \"readonlyChange\", disabledChange: \"disabledChange\", depthChange: \"depthChange\", typeChange: \"typeChange\", activeViewChange: \"activeViewChange\", disabledDatesChange: \"disabledDatesChange\", holidayDatesChange: \"holidayDatesChange\", onNavigate: \"onNavigate\", onSlotClick: \"onSlotClick\" }, providers: [\n { provide: AXComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimePickerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimePickerComponent),\n multi: true,\n },\n ], viewQueries: [{ propertyName: \"tabs\", first: true, predicate: AXTabsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: \"@if (_hasDatePart && _hasTimePart) {\\n <div class=\\\"ax-header\\\">\\n <ax-tabs [look]=\\\"'default'\\\" [fitParent]=\\\"true\\\" [location]=\\\"'top'\\\" (onActiveTabChanged)=\\\"_handleViewChanged($event)\\\">\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.date' | translate | async\\\"\\n [key]=\\\"'date'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.time' | translate | async\\\"\\n [key]=\\\"'time'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n </ax-tabs>\\n </div>\\n}\\n<div class=\\\"ax-content\\\">\\n @if (_activePart() === 'date') {\\n <div class=\\\"ax-calendar-part\\\">\\n <ax-calendar\\n #calendar\\n id=\\\"calendar\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [ngModel]=\\\"_editingDateObj().date\\\"\\n [minValue]=\\\"minValue\\\"\\n [maxValue]=\\\"maxValue\\\"\\n [disabledDates]=\\\"disabledDates\\\"\\n [holidayDates]=\\\"holidayDates\\\"\\n [depth]=\\\"depth\\\"\\n (onNavigate)=\\\"_handleCalendarOnNavigate($event)\\\"\\n (onValueChanged)=\\\"_handleCalendarOnValueChanged($event)\\\"\\n [type]=\\\"_calendarSystem()\\\"\\n >\\n </ax-calendar>\\n </div>\\n }\\n\\n @if (_activePart() === 'time') {\\n <div class=\\\"ax-picker-part\\\">\\n <div class=\\\"ax-header\\\">\\n @if (picker() === 'datetime') {\\n {{ _editingDateObj() | format: 'time' : 'medium' | async }}\\n {{ _editingDateObj() | format: 'date' : 'medium' | async }}\\n } @else {\\n {{ _editingDateObj() | format: picker() : 'medium' | async }}\\n }\\n </div>\\n <div dir=\\\"ltr\\\" class=\\\"ax-picker-time-container\\\">\\n @if (_parts.hour.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"hourRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.minute.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"minuteRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.second.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"secondRef\\\"> </ng-container>\\n }\\n </div>\\n </div>\\n }\\n</div>\\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\\n <div class=\\\"ax-footer\\\">\\n <div>\\n @if (currentTimeButton) {\\n <ax-button\\n [text]=\\\"`@acorex:${buttonText()}` | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleNowClick()\\\"\\n [disabled]=\\\"isTodayDisabled()\\\"\\n ></ax-button>\\n }\\n </div>\\n <div>\\n @if (_hasTimePart) {\\n <ax-button\\n color=\\\"primary\\\"\\n [text]=\\\"'@acorex:dateTime.set' | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleSetClick()\\\"\\n ></ax-button>\\n }\\n </div>\\n </div>\\n}\\n\\n<ng-template #hourRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.hour' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"hours\\\"\\n [ngModel]=\\\"_editingDateObj().hour\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'hour')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerHoursMinValue()\\\"\\n [maxValue]=\\\"pickerHoursMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #minuteRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.minute' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"_editingDateObj().minute\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'minute')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerMinuteMinValue()\\\"\\n [maxValue]=\\\"pickerMinuteMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #secondRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.second' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"_editingDateObj().second\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'second')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerSecondMinValue()\\\"\\n [maxValue]=\\\"pickerSecondMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\", styles: [\"ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-top:var(--ax-comp-datetime-picker-header-padding-t, .5rem);padding-left:var(--ax-comp-datetime-picker-header-padding-x, .5rem);padding-right:var(--ax-comp-datetime-picker-header-padding-x, .5rem)}ax-datetime-picker>.ax-content{width:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:var(--ax-comp-datetime-picker-md-width, 20rem)}}ax-datetime-picker>.ax-content .ax-picker-part{width:100%;display:flex;flex-direction:column;height:var(--ax-comp-datetime-picker-picker-part-height, 376px)}ax-datetime-picker>.ax-content .ax-picker-part .ax-picker-time-container{display:flex;height:100%}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{font-weight:500;text-align:center;padding:var(--ax-comp-datetime-picker-picker-part-header-padding, .75rem);font-size:var(--ax-comp-datetime-picker-picker-part-header-font-size, 1rem);border-bottom:solid;border-bottom-width:var(--ax-comp-datetime-picker-picker-part-header-border-width, 1px);border-bottom-color:rgba(var(--ax-comp-datetime-picker-picker-part-header-border-color, var(--ax-sys-color-border-surface)))}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{width:100%;padding-top:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem);padding-bottom:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem)}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;padding:var(--ax-comp-datetime-picker-footer-padding, .5rem);border-color:rgba(var(--ax-comp-datetime-picker-footer-border-color, var(--ax-sys-color-border-surface)));border-top-width:var(--ax-comp-datetime-picker-footer-border-top-width, 1px)}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\\n\"], dependencies: [{ kind: \"component\", type: AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: AXTabItemComponent, selector: \"ax-tab-item\", inputs: [\"disabled\", \"text\", \"key\", \"headerTemplate\", \"active\"], outputs: [\"disabledChange\", \"onClick\", \"onBlur\", \"onFocus\", \"activeChange\"] }, { kind: \"component\", type: AXCalendarComponent, selector: \"ax-calendar\", inputs: [\"rtl\", \"readonly\", \"value\", \"name\", \"disabled\", \"depth\", \"activeView\", \"minValue\", \"maxValue\", \"disabledDates\", \"holidayDates\", \"type\", \"cellTemplate\", \"cellClass\", \"showNavigation\", \"count\", \"id\"], outputs: [\"onOptionChanged\", \"valueChange\", \"onValueChanged\", \"minValueChange\", \"maxValueChange\", \"onBlur\", \"onFocus\", \"depthChange\", \"typeChange\", \"activeViewChange\", \"disabledDatesChange\", \"holidayDatesChange\", \"onNavigate\", \"onSlotClick\", \"countChange\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXPickerContainerComponent, selector: \"ax-picker-container\", inputs: [\"class\"] }, { kind: \"component\", type: AXPickerTitleComponent, selector: \"ax-picker-title\" }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXPickerItemsComponent, selector: \"ax-picker-items\", inputs: [\"disabled\", \"readonly\", \"readonlyChange\", \"disabledChange\", \"items\", \"valueField\", \"textField\", \"slidesPerGroup\", \"loop\", \"minValue\", \"maxValue\"], outputs: [\"onValueChanged\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXFormatPipe, name: \"format\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: AXDateTimePickerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-datetime-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [\n 'disabled',\n 'readonly',\n 'tabIndex',\n 'placeholder',\n 'value',\n 'state',\n 'name',\n 'id',\n 'depth',\n 'activeView',\n 'minValue',\n 'maxValue',\n 'disabledDates',\n 'holidayDates',\n 'type',\n 'cellTemplate',\n 'cellClass',\n 'showNavigation',\n ], outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'onClick',\n 'readonlyChange',\n 'disabledChange',\n 'depthChange',\n 'typeChange',\n 'activeViewChange',\n 'disabledDatesChange',\n 'holidayDatesChange',\n 'onNavigate',\n 'onSlotClick',\n ], providers: [\n { provide: AXComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimePickerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimePickerComponent),\n multi: true,\n },\n ], imports: [\n AXTabsComponent,\n AXTabItemComponent,\n AXCalendarComponent,\n FormsModule,\n NgTemplateOutlet,\n AXButtonComponent,\n AXPickerContainerComponent,\n AXPickerTitleComponent,\n AXDecoratorGenericComponent,\n AXPickerItemsComponent,\n AsyncPipe,\n AXFormatPipe,\n AXTranslatorPipe,\n ], template: \"@if (_hasDatePart && _hasTimePart) {\\n <div class=\\\"ax-header\\\">\\n <ax-tabs [look]=\\\"'default'\\\" [fitParent]=\\\"true\\\" [location]=\\\"'top'\\\" (onActiveTabChanged)=\\\"_handleViewChanged($event)\\\">\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.date' | translate | async\\\"\\n [key]=\\\"'date'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.time' | translate | async\\\"\\n [key]=\\\"'time'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n </ax-tabs>\\n </div>\\n}\\n<div class=\\\"ax-content\\\">\\n @if (_activePart() === 'date') {\\n <div class=\\\"ax-calendar-part\\\">\\n <ax-calendar\\n #calendar\\n id=\\\"calendar\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [ngModel]=\\\"_editingDateObj().date\\\"\\n [minValue]=\\\"minValue\\\"\\n [maxValue]=\\\"maxValue\\\"\\n [disabledDates]=\\\"disabledDates\\\"\\n [holidayDates]=\\\"holidayDates\\\"\\n [depth]=\\\"depth\\\"\\n (onNavigate)=\\\"_handleCalendarOnNavigate($event)\\\"\\n (onValueChanged)=\\\"_handleCalendarOnValueChanged($event)\\\"\\n [type]=\\\"_calendarSystem()\\\"\\n >\\n </ax-calendar>\\n </div>\\n }\\n\\n @if (_activePart() === 'time') {\\n <div class=\\\"ax-picker-part\\\">\\n <div class=\\\"ax-header\\\">\\n @if (picker() === 'datetime') {\\n {{ _editingDateObj() | format: 'time' : 'medium' | async }}\\n {{ _editingDateObj() | format: 'date' : 'medium' | async }}\\n } @else {\\n {{ _editingDateObj() | format: picker() : 'medium' | async }}\\n }\\n </div>\\n <div dir=\\\"ltr\\\" class=\\\"ax-picker-time-container\\\">\\n @if (_parts.hour.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"hourRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.minute.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"minuteRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.second.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"secondRef\\\"> </ng-container>\\n }\\n </div>\\n </div>\\n }\\n</div>\\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\\n <div class=\\\"ax-footer\\\">\\n <div>\\n @if (currentTimeButton) {\\n <ax-button\\n [text]=\\\"`@acorex:${buttonText()}` | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleNowClick()\\\"\\n [disabled]=\\\"isTodayDisabled()\\\"\\n ></ax-button>\\n }\\n </div>\\n <div>\\n @if (_hasTimePart) {\\n <ax-button\\n color=\\\"primary\\\"\\n [text]=\\\"'@acorex:dateTime.set' | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleSetClick()\\\"\\n ></ax-button>\\n }\\n </div>\\n </div>\\n}\\n\\n<ng-template #hourRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.hour' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"hours\\\"\\n [ngModel]=\\\"_editingDateObj().hour\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'hour')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerHoursMinValue()\\\"\\n [maxValue]=\\\"pickerHoursMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #minuteRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.minute' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"_editingDateObj().minute\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'minute')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerMinuteMinValue()\\\"\\n [maxValue]=\\\"pickerMinuteMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #secondRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.second' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"_editingDateObj().second\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'second')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerSecondMinValue()\\\"\\n [maxValue]=\\\"pickerSecondMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\", styles: [\"ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-top:var(--ax-comp-datetime-picker-header-padding-t, .5rem);padding-left:var(--ax-comp-datetime-picker-header-padding-x, .5rem);padding-right:var(--ax-comp-datetime-picker-header-padding-x, .5rem)}ax-datetime-picker>.ax-content{width:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:var(--ax-comp-datetime-picker-md-width, 20rem)}}ax-datetime-picker>.ax-content .ax-picker-part{width:100%;display:flex;flex-direction:column;height:var(--ax-comp-datetime-picker-picker-part-height, 376px)}ax-datetime-picker>.ax-content .ax-picker-part .ax-picker-time-container{display:flex;height:100%}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{font-weight:500;text-align:center;padding:var(--ax-comp-datetime-picker-picker-part-header-padding, .75rem);font-size:var(--ax-comp-datetime-picker-picker-part-header-font-size, 1rem);border-bottom:solid;border-bottom-width:var(--ax-comp-datetime-picker-picker-part-header-border-width, 1px);border-bottom-color:rgba(var(--ax-comp-datetime-picker-picker-part-header-border-color, var(--ax-sys-color-border-surface)))}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{width:100%;padding-top:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem);padding-bottom:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem)}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;padding:var(--ax-comp-datetime-picker-footer-padding, .5rem);border-color:rgba(var(--ax-comp-datetime-picker-footer-border-color, var(--ax-sys-color-border-surface)));border-top-width:var(--ax-comp-datetime-picker-footer-border-top-width, 1px)}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\\n\"] }]\n }], propDecorators: { currentTimeButton: [{\n type: Input\n }], tabs: [{\n type: ViewChild,\n args: [AXTabsComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUVuQixnQkFBZ0IsR0FDakIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsbUJBQW1CLEVBR25CLHVCQUF1QixHQUN4QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxrQkFBa0IsRUFBMEIsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1Ys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QUNWLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxNQUFNO3dCQUNOLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxnQkFBZ0I7cUJBQ2pCLFdBQ1E7d0JBQ1AsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixTQUFTO3dCQUNULFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixZQUFZO3dCQUNaLGFBQWE7cUJBQ2QsYUFDVTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVywyQkFBMkIsRUFBRTt3QkFDaEUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVywyQkFBMkIsRUFBRTt3QkFDekUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVywyQkFBMkIsRUFBRTt3QkFDeEU7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLFdBQ1E7d0JBQ1AsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsMEJBQTBCO3dCQUMxQixzQkFBc0I7d0JBQ3RCLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0QixTQUFTO3dCQUNULFlBQVk7d0JBQ1osZ0JBQWdCO3FCQUNqQjs4QkE0QlUsaUJBQWlCO3NCQUQzQixLQUFLO2dCQW1CSSxJQUFJO3NCQURiLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29tcG9uZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1ZUNoYW5nZWRFdmVudCxcbiAgTVhWYWx1ZUNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1xuICBBWENhbGVuZGFyQ29tcG9uZW50LFxuICBBWENhbGVuZGFyTmF2aWdhdGVFdmVudCxcbiAgQVhEYXRlVGltZVBpY2tlclR5cGUsXG4gIE1YQ2FsZW5kYXJCYXNlQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2FsZW5kYXInO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQaWNrZXJDb250YWluZXJDb21wb25lbnQsIEFYUGlja2VySXRlbXNDb21wb25lbnQsIEFYUGlja2VyVGl0bGVDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcGlja2VyJztcbmltcG9ydCB7IEFYVGFiSXRlbUNvbXBvbmVudCwgQVhUYWJTdHJpcENoYW5nZWRFdmVudCwgQVhUYWJzQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhEYXRlVGltZSwgQVhEYXRlVGltZVBhcnRzLCBUaW1lVW5pdCB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlLXRpbWUnO1xuaW1wb3J0IHsgQVhGb3JtYXRQaXBlLCBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIGxpbmtlZFNpZ25hbCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBBWERhdGVUaW1lUGlja2VyQ29uZmlnLCBBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHIH0gZnJvbSAnLi9kYXRldGltZS1waWNrZXIuY29uZmlnJztcblxuLyoqXG4gKiBhbGxvd3MgdXNlcnMgdG8gc2VsZWN0IGEgZGF0ZSBhbmQgdGltZSBmcm9tIGEgY2FsZW5kYXIgYW5kIHRpbWUgcGlja2VyIGludGVyZmFjZS5cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1kYXRldGltZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3RhYkluZGV4JyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICd2YWx1ZScsXG4gICAgJ3N0YXRlJyxcbiAgICAnbmFtZScsXG4gICAgJ2lkJyxcbiAgICAnZGVwdGgnLFxuICAgICdhY3RpdmVWaWV3JyxcbiAgICAnbWluVmFsdWUnLFxuICAgICdtYXhWYWx1ZScsXG4gICAgJ2Rpc2FibGVkRGF0ZXMnLFxuICAgICdob2xpZGF5RGF0ZXMnLFxuICAgICd0eXBlJyxcbiAgICAnY2VsbFRlbXBsYXRlJyxcbiAgICAnY2VsbENsYXNzJyxcbiAgICAnc2hvd05hdmlnYXRpb24nLFxuICBdLFxuICBvdXRwdXRzOiBbXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcbiAgICAnc3RhdGVDaGFuZ2UnLFxuICAgICdvblZhbHVlQ2hhbmdlZCcsXG4gICAgJ29uQmx1cicsXG4gICAgJ29uRm9jdXMnLFxuICAgICdvbkNsaWNrJyxcbiAgICAncmVhZG9ubHlDaGFuZ2UnLFxuICAgICdkaXNhYmxlZENoYW5nZScsXG4gICAgJ2RlcHRoQ2hhbmdlJyxcbiAgICAndHlwZUNoYW5nZScsXG4gICAgJ2FjdGl2ZVZpZXdDaGFuZ2UnLFxuICAgICdkaXNhYmxlZERhdGVzQ2hhbmdlJyxcbiAgICAnaG9saWRheURhdGVzQ2hhbmdlJyxcbiAgICAnb25OYXZpZ2F0ZScsXG4gICAgJ29uU2xvdENsaWNrJyxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIEFYVGFic0NvbXBvbmVudCxcbiAgICBBWFRhYkl0ZW1Db21wb25lbnQsXG4gICAgQVhDYWxlbmRhckNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEFYQnV0dG9uQ29tcG9uZW50LFxuICAgIEFYUGlja2VyQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEFYUGlja2VyVGl0bGVDb21wb25lbnQsXG4gICAgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LFxuICAgIEFYUGlja2VySXRlbXNDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYRm9ybWF0UGlwZSxcbiAgICBBWFRyYW5zbGF0b3JQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50XG4gIGV4dGVuZHMgY2xhc3NlcyhNWENhbGVuZGFyQmFzZUNvbXBvbmVudCwgTVhWYWx1ZUNvbXBvbmVudDxEYXRlPilcbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGJ1dHRvblRleHQgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5fYWN0aXZlUGFydCgpID09PSAnZGF0ZScgPyAnZGF0ZVRpbWUudG9kYXknIDogJ2RhdGVUaW1lLm5vdycpKTtcblxuICBwcml2YXRlIGRlZmF1bHRDb25maWc6IEFYRGF0ZVRpbWVQaWNrZXJDb25maWcgPSBpbmplY3QoQVhfREFURVRJTUVfUElDS0VSX0NPTkZJRyk7XG5cbiAgcHJvdGVjdGVkIHBpY2tlckhvdXJzTWluVmFsdWUgPSBzaWduYWw8bnVtYmVyPihudWxsKTtcbiAgcHJvdGVjdGVkIHBpY2tlckhvdXJzTWF4VmFsdWUgPSBzaWduYWw8bnVtYmVyPihudWxsKTtcbiAgcHJvdGVjdGVkIHBpY2tlck1pbnV0ZU1pblZhbHVlID0gc2lnbmFsPG51bWJlcj4obnVsbCk7XG4gIHByb3RlY3RlZCBwaWNrZXJNaW51dGVNYXhWYWx1ZSA9IHNpZ25hbDxudW1iZXI+KG51bGwpO1xuICBwcm90ZWN0ZWQgcGlja2VyU2Vjb25kTWluVmFsdWUgPSBzaWduYWw8bnVtYmVyPihudWxsKTtcbiAgcHJvdGVjdGVkIHBpY2tlclNlY29uZE1heFZhbHVlID0gc2lnbmFsPG51bWJlcj4obnVsbCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9jdXJyZW50VGltZUJ1dHRvbjogYm9vbGVhbiA9IHRoaXMuZGVmYXVsdENvbmZpZy5jdXJyZW50VGltZUJ1dHRvbjtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgYnV0dG9uIGZvciBzZWxlY3RpbmcgdGhlIGN1cnJlbnQgdGltZSBpcyBkaXNwbGF5ZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGN1cnJlbnRUaW1lQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VGltZUJ1dHRvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHdoZXRoZXIgdGhlIGJ1dHRvbiBmb3Igc2VsZWN0aW5nIHRoZSBjdXJyZW50IHRpbWUgaXMgZGlzcGxheWVkLlxuICAgKi9cbiAgcHVibGljIHNldCBjdXJyZW50VGltZUJ1dHRvbih2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2N1cnJlbnRUaW1lQnV0dG9uJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKEFYVGFic0NvbXBvbmVudClcbiAgcHJvdGVjdGVkIHRhYnM6IEFYVGFic0NvbXBvbmVudDtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBob3VyczogYW55W10gPSBBcnJheSgyNClcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKG0sIGkpID0+ICh7IGlkOiBpLCB0ZXh0OiBpIH0pKTtcbiAgbWludXRlczogYW55W10gPSBBcnJheSg2MClcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKG0sIGkpID0+ICh7IGlkOiBpLCB0ZXh0OiBpIH0pKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfcGFydHM6IEFYRGF0ZVRpbWVQYXJ0cyA9IHtcbiAgICB5ZWFyOiB7XG4gICAgICBrZXk6ICd5ZWFyJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAneXl5eScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnWVknLCAneXknLCAnWVlZWScsICd5eXl5J10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDIwMjMsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5fZWRpdGluZ0RhdGVPYmooKSwgJ2RhdGV0aW1lJywgdGhpcy5fcGFydHMueWVhci5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgbW9udGg6IHtcbiAgICAgIGtleTogJ21vbnRoJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnTU0nLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ01NTScsICdNTU1NJywgJ01NJywgJ00nXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMSxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLl9lZGl0aW5nRGF0ZU9iaigpLCAnZGF0ZXRpbWUnLCB0aGlzLl9wYXJ0cy5tb250aC5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgZGF5OiB7XG4gICAgICBrZXk6ICdkYXknLFxuICAgICAgcGxhY2Vob2xkZXI6ICdkZCcsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnZGQnLCAnZCcsICdFJywgJ2RkZGQnXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMSxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLl9lZGl0aW5nRGF0ZU9iaigpLCAnZGF0ZXRpbWUnLCB0aGlzLl9wYXJ0cy5kYXkucGxhY2Vob2xkZXIgYXMgYW55KSxcbiAgICB9LFxuICAgIGhvdXI6IHtcbiAgICAgIGtleTogJ2hvdXInLFxuICAgICAgcGxhY2Vob2xkZXI6ICdISCcsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnSEgnLCAnSCcsICdoaCcsICdoJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5fZWRpdGluZ0RhdGVPYmooKSwgJ2RhdGV0aW1lJywgdGhpcy5fcGFydHMuaG91ci5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgbWludXRlOiB7XG4gICAgICBrZXk6ICdtaW51dGUnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdtbScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnbW0nLCAnbSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PlxuICAgICAgICB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX2VkaXRpbmdEYXRlT2JqKCksICdkYXRldGltZScsIHRoaXMuX3BhcnRzLm1pbnV0ZS5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgc2Vjb25kOiB7XG4gICAgICBrZXk6ICdzZWNvbmQnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdzcycsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnc3MnLCAncyddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PlxuICAgICAgICB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX2VkaXRpbmdEYXRlT2JqKCksICdkYXRldGltZScsIHRoaXMuX3BhcnRzLnNlY29uZC5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgQU1QTToge1xuICAgICAga2V5OiAnQU1QTScsXG4gICAgICBwbGFjZWhvbGRlcjogJ2EnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ2EnLCAnQSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgdHlwZWRWYWx1ZTogbnVsbCxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLl9lZGl0aW5nRGF0ZU9iaigpLCAnZGF0ZXRpbWUnLCB0aGlzLl9wYXJ0cy5BTVBNLnBsYWNlaG9sZGVyIGFzIGFueSksXG4gICAgfSxcbiAgfTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfYWN0aXZlUGFydCA9IHNpZ25hbDwnZGF0ZScgfCAndGltZSc+KCdkYXRlJyk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IF9oYXNEYXRlUGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gWyd5ZWFyJywgJ21vbnRoJywgJ2RheSddLnNvbWUoKGspID0+IHRoaXMuX3BhcnRzW2tdLmVuYWJsZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IF9oYXNUaW1lUGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gWydob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnXS5zb21lKChrKSA9PiB0aGlzLl9wYXJ0c1trXS5lbmFibGVkKTtcbiAgfVxuXG4gIC8vIC8qKlxuICAvLyAgKiAgQGlnbm9yZVxuICAvLyAgKi9cbiAgcHJvdGVjdGVkIF9lZGl0aW5nRGF0ZU9iaiA9IGxpbmtlZFNpZ25hbDxBWERhdGVUaW1lPigoKSA9PiB0aGlzLmNhbGVuZGFyU2VydmljZS5ub3codGhpcy5jYWxlbmRhcigpKSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgY2FsZW5kYXIgdHlwZSB0byB1c2UgZm9yIHRoZSBkYXRldGltZSBpbnB1dC5cbiAgICovXG4gIGNhbGVuZGFyID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIF9jYWxlbmRhclN5c3RlbSA9IGxpbmtlZFNpZ25hbDxzdHJpbmcgfCBudWxsPigoKSA9PiB0aGlzLmNhbGVuZGFyKCkgPz8gdGhpcy50eXBlKTtcblxuICBwaWNrZXIgPSBpbnB1dDxBWERhdGVUaW1lUGlja2VyVHlwZT4oJ2RhdGV0aW1lJyk7XG5cbiAgI2VmZmVjdFBpY2tlciA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMucGlja2VyKCkgPT09ICd0aW1lJykge1xuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkTWluVmFsdWUodGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh0aGlzLm1pblZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpKTtcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1heFZhbHVlKHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodGhpcy5tYXhWYWx1ZSwgdGhpcy5jYWxlbmRhcigpKSk7XG4gICAgICB0aGlzLl9hY3RpdmVQYXJ0LnNldCgndGltZScpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5waWNrZXIoKSA9PT0gJ2RhdGUnKSB7XG4gICAgICB0aGlzLl9hY3RpdmVQYXJ0LnNldCgnZGF0ZScpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSBfZm9ybWF0ID0gbGlua2VkU2lnbmFsPHN0cmluZz4oXG4gICAgKCkgPT4gdGhpcy5mb3JtYXQoKSA/PyB0aGlzLmxvY2FsZVNlcnZpY2UuYWN0aXZlUHJvZmlsZSgpLmZvcm1hdHNbdGhpcy5waWNrZXIoKV0/LnNob3J0ID8/ICcnLFxuICApO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgbG9jYWxlICYgbW9kZSBpbnN0ZWFkXG4gICAqL1xuICBmb3JtYXQgPSBpbnB1dDxzdHJpbmcgfCBudWxsPigpO1xuXG4gICNlZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHByb2ZpbGUgPSB0aGlzLmxvY2FsZVNlcnZpY2UuYWN0aXZlUHJvZmlsZSgpO1xuICAgIC8vXG4gICAgaWYgKCF0aGlzLmZvcm1hdCgpKSB7XG4gICAgICB0aGlzLl9mb3JtYXQuc2V0KHRoaXMuZm9ybWF0KCkgPz8gcHJvZmlsZS5mb3JtYXRzW3RoaXMucGlja2VyKCldPy5zaG9ydCA/PyAnJyk7XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKCF0aGlzLmNhbGVuZGFyKCkpIHtcbiAgICAgIHRoaXMuX2NhbGVuZGFyU3lzdGVtLnNldChwcm9maWxlLmNhbGVuZGFyLnN5c3RlbSk7XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy50eXBlID0gdGhpcy5fY2FsZW5kYXJTeXN0ZW0oKTtcbiAgICAvL1xuICAgIHRoaXMuX2RldGVjdFBhcnRzKCk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLl9kZXRlY3RQYXJ0cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgY2hhbmdlcyB0byB0aGUgaW50ZXJuYWwgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIG5ldyBkYXRlIHZhbHVlLiBJZiBub3QgcHJvdmlkZWQsIGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGRhdGUuXG4gICAqL1xuICBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCh2YWx1ZT86IERhdGUpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmlzVmFsaWREYXRlKHZhbHVlKSkge1xuICAgICAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iai5zZXQodGhpcy5jYWxlbmRhclNlcnZpY2UuY3JlYXRlKHZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmouc2V0KHRoaXMuY2FsZW5kYXJTZXJ2aWNlLm5vdyh0aGlzLmNhbGVuZGFyKCkpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlVmlld0NoYW5nZWQoZTogQVhUYWJTdHJpcENoYW5nZWRFdmVudCkge1xuICAgIHRoaXMuX2FjdGl2ZVBhcnQuc2V0KGUudGFiLmtleSBhcyAnZGF0ZScgfCAndGltZScpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4sIHBhcnQ6IHN0cmluZykge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iai5zZXQodGhpcy5fZWRpdGluZ0RhdGVPYmooKS5zZXQocGFydCBhcyBUaW1lVW5pdCwgTnVtYmVyKGUudmFsdWVbJ2lkJ10pKSk7XG5cbiAgICAgIGlmICh0aGlzLm1pblZhbHVlKSB7XG4gICAgICAgIGNvbnN0IG1pbnYgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jb252ZXJ0KHRoaXMubWluVmFsdWUsIHRoaXMuY2FsZW5kYXIoKSk7XG4gICAgICAgIGlmICh0aGlzLl9lZGl0aW5nRGF0ZU9iaigpLmhvdXIgPiBtaW52LmhvdXIpIHtcbiAgICAgICAgICB0aGlzLnBpY2tlck1pbnV0ZU1pblZhbHVlLnNldChudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnBpY2tlck1pbnV0ZU1pblZhbHVlLnNldChtaW52Lm1pbnV0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubWF4VmFsdWUpIHtcbiAgICAgICAgY29uc3QgbWF4diA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodGhpcy5tYXhWYWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICAgICAgaWYgKHRoaXMuX2VkaXRpbmdEYXRlT2JqKCkuaG91ciA8IG1heHYuaG91cikge1xuICAgICAgICAgIHRoaXMucGlja2VyTWludXRlTWF4VmFsdWUuc2V0KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucGlja2VyTWludXRlTWF4VmFsdWUuc2V0KG1heHYubWludXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uTmF2aWdhdGUoZTogQVhDYWxlbmRhck5hdmlnYXRlRXZlbnQpIHtcbiAgICB0aGlzLm9uTmF2aWdhdGUuZW1pdChlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4pIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZShlLnZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5jYWxlbmRhclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShlLnZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpXG4gICAgICAgIC5zZXQoJ2RheScsIHNlbGVjdGVkVmFsdWUuZGF5T2ZNb250aClcbiAgICAgICAgLnNldCgnbW9udGgnLCBzZWxlY3RlZFZhbHVlLm1vbnRoT2ZZZWFyKVxuICAgICAgICAuc2V0KCd5ZWFyJywgc2VsZWN0ZWRWYWx1ZS55ZWFyKTtcblxuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmouc2V0KGN1cnJlbnRWYWx1ZSk7XG4gICAgICBpZiAodGhpcy5faGFzVGltZVBhcnQpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlUGFydC5zZXQoJ3RpbWUnKTtcbiAgICAgICAgaWYgKHRoaXMudGFicyAmJiB0aGlzLl9oYXNEYXRlUGFydCAmJiB0aGlzLl9oYXNUaW1lUGFydCkge1xuICAgICAgICAgIHRoaXMudGFicy5zZWxlY3QoMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLl9lZGl0aW5nRGF0ZU9iaigpLmRhdGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuX2VkaXRpbmdEYXRlT2JqKCkuZGF0ZSwgdHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1pblZhbHVlKHNlbGVjdGVkVmFsdWUpO1xuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkTWF4VmFsdWUoc2VsZWN0ZWRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1NlbGVjdGVkTWluVmFsdWUoc2VsZWN0ZWRWYWx1ZTogQVhEYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5taW5WYWx1ZSkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5jYWxlbmRhclNlcnZpY2UuaXNWYWxpZERhdGUodGhpcy5taW5WYWx1ZSkpIHJldHVybjtcblxuICAgIGlmIChzZWxlY3RlZFZhbHVlLmlzQWZ0ZXIodGhpcy5taW5WYWx1ZSwgJ2RheScpKSB7XG4gICAgICB0aGlzLnBpY2tlckhvdXJzTWluVmFsdWUuc2V0KG51bGwpO1xuICAgICAgdGhpcy5waWNrZXJNaW51dGVNaW5WYWx1ZS5zZXQobnVsbCk7XG4gICAgICB0aGlzLnBpY2tlclNlY29uZE1pblZhbHVlLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWludiA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodGhpcy5taW5WYWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICAgIHRoaXMucGlja2VySG91cnNNaW5WYWx1ZS5zZXQobWludi5ob3VyKTtcbiAgICAgIHRoaXMucGlja2VyTWludXRlTWluVmFsdWUuc2V0KG1pbnYubWludXRlKTtcbiAgICAgIHRoaXMucGlja2VyU2Vjb25kTWluVmFsdWUuc2V0KG1pbnYuc2Vjb25kKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrU2VsZWN0ZWRNYXhWYWx1ZShzZWxlY3RlZFZhbHVlOiBBWERhdGVUaW1lKSB7XG4gICAgaWYgKCF0aGlzLm1heFZhbHVlKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmNhbGVuZGFyU2VydmljZS5pc1ZhbGlkRGF0ZSh0aGlzLm1heFZhbHVlKSkgcmV0dXJuO1xuXG4gICAgaWYgKHNlbGVjdGVkVmFsdWUuaXNCZWZvcmUodGhpcy5tYXhWYWx1ZSwgJ2RheScpKSB7XG4gICAgICB0aGlzLnBpY2tlckhvdXJzTWF4VmFsdWUuc2V0KG51bGwpO1xuICAgICAgdGhpcy5waWNrZXJNaW51dGVNYXhWYWx1ZS5zZXQobnVsbCk7XG4gICAgICB0aGlzLnBpY2tlclNlY29uZE1heFZhbHVlLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWF4diA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodGhpcy5tYXhWYWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICAgIHRoaXMucGlja2VySG91cnNNYXhWYWx1ZS5zZXQobWF4di5ob3VyKTtcbiAgICAgIHRoaXMucGlja2VyTWludXRlTWF4VmFsdWUuc2V0KG1heHYubWludXRlKTtcbiAgICAgIHRoaXMucGlja2VyU2Vjb25kTWF4VmFsdWUuc2V0KG1heHYuc2Vjb25kKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX2RldGVjdFBhcnRzKCkge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5fcGFydHMpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGUuZW5hYmxlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIGNvbnN0IGZvcm1hdFBhcnRzID0gdGhpcy5fZm9ybWF0KCkuc3BsaXQoL1teYS16QS1aXSsvKTtcbiAgICBmb3JtYXRQYXJ0cy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICBjb25zdCBmb3VuZCA9IE9iamVjdC52YWx1ZXModGhpcy5fcGFydHMpLmZpbmQoKGMpID0+IGMucGxhY2Vob2xkZXJzLnNvbWUoKGQpID0+IGQgPT0gZikpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIGZvdW5kLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgICBmb3VuZC5wbGFjZWhvbGRlciA9IGY7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy90aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVTZXRDbGljaygpIHtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuX2VkaXRpbmdEYXRlT2JqKCkuZGF0ZSwgdHJ1ZSk7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkTWluVmFsdWUodGhpcy5fZWRpdGluZ0RhdGVPYmooKSk7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkTWF4VmFsdWUodGhpcy5fZWRpdGluZ0RhdGVPYmooKSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlTm93Q2xpY2soKSB7XG4gICAgdGhpcy5fZWRpdGluZ0RhdGVPYmouc2V0KHRoaXMuY2FsZW5kYXJTZXJ2aWNlLm5vdyh0aGlzLmNhbGVuZGFyKCkpKTtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuX2VkaXRpbmdEYXRlT2JqKCkuZGF0ZSwgdHJ1ZSk7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkTWluVmFsdWUodGhpcy5fZWRpdGluZ0RhdGVPYmooKSk7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkTWF4VmFsdWUodGhpcy5fZWRpdGluZ0RhdGVPYmooKSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkKGRhdGU6IEFYRGF0ZVRpbWUpOiBib29sZWFuIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRpc2FibGVkRGF0ZXMpICYmIHRoaXMuZGlzYWJsZWREYXRlcy5sZW5ndGggIT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcy5zb21lKChkKSA9PiBkYXRlLmVxdWFsKGQsICdkYXknKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5kaXNhYmxlZERhdGVzID09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMoZGF0ZS5kYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaW50ZXJuYWxTZXRWYWx1ZSh2YWx1ZTogRGF0ZSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlIHx8ICF0aGlzLmNhbGVuZGFyU2VydmljZS5pc1ZhbGlkRGF0ZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCB2ID0gdGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh2YWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICB0aGlzLmNoZWNrU2VsZWN0ZWRNaW5WYWx1ZSh0aGlzLmNhbGVuZGFyU2VydmljZS5jb252ZXJ0KHYsIHRoaXMuY2FsZW5kYXIoKSkpO1xuICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1heFZhbHVlKHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodiwgdGhpcy5jYWxlbmRhcigpKSk7XG5cbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKHYpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5taW5WYWx1ZSAmJiB0aGlzLmNhbGVuZGFyU2VydmljZS5pc1ZhbGlkRGF0ZSh0aGlzLm1pblZhbHVlKSAmJiB2LmlzQmVmb3JlKHRoaXMubWluVmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5taW5WYWx1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4VmFsdWUgJiYgdGhpcy5jYWxlbmRhclNlcnZpY2UuaXNWYWxpZERhdGUodGhpcy5tYXhWYWx1ZSkgJiYgdi5pc0FmdGVyKHRoaXMubWF4VmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdi5kYXRlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzVG9kYXlEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBkaXNhYmxlZERhdGVzID0gdGhpcy5kaXNhYmxlZERhdGVzO1xuXG4gICAgaWYgKCFkaXNhYmxlZERhdGVzIHx8ICFBcnJheS5pc0FycmF5KGRpc2FibGVkRGF0ZXMpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIHRvZGF5LnNldEhvdXJzKDAsIDAsIDAsIDApO1xuXG4gICAgcmV0dXJuIGRpc2FibGVkRGF0ZXMuc29tZSgoZGlzYWJsZWREYXRlOiBEYXRlKSA9PiB7XG4gICAgICBjb25zdCBkaXNhYmxlZCA9IG5ldyBEYXRlKGRpc2FibGVkRGF0ZSk7XG4gICAgICBkaXNhYmxlZC5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgIHJldHVybiB0b2RheS5nZXRUaW1lKCkgPT09IGRpc2FibGVkLmdldFRpbWUoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmIChfaGFzRGF0ZVBhcnQgJiYgX2hhc1RpbWVQYXJ0KSB7XG4gIDxkaXYgY2xhc3M9XCJheC1oZWFkZXJcIj5cbiAgICA8YXgtdGFicyBbbG9va109XCInZGVmYXVsdCdcIiBbZml0UGFyZW50XT1cInRydWVcIiBbbG9jYXRpb25dPVwiJ3RvcCdcIiAob25BY3RpdmVUYWJDaGFuZ2VkKT1cIl9oYW5kbGVWaWV3Q2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICA8YXgtdGFiLWl0ZW1cbiAgICAgICAgW3RleHRdPVwiJ0BhY29yZXg6ZGF0ZVRpbWUuZGF0ZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgIFtrZXldPVwiJ2RhdGUnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgID48L2F4LXRhYi1pdGVtPlxuICAgICAgPGF4LXRhYi1pdGVtXG4gICAgICAgIFt0ZXh0XT1cIidAYWNvcmV4OmRhdGVUaW1lLnRpbWUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICBba2V5XT1cIid0aW1lJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICA+PC9heC10YWItaXRlbT5cbiAgICA8L2F4LXRhYnM+XG4gIDwvZGl2PlxufVxuPGRpdiBjbGFzcz1cImF4LWNvbnRlbnRcIj5cbiAgQGlmIChfYWN0aXZlUGFydCgpID09PSAnZGF0ZScpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItcGFydFwiPlxuICAgICAgPGF4LWNhbGVuZGFyXG4gICAgICAgICNjYWxlbmRhclxuICAgICAgICBpZD1cImNhbGVuZGFyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW25nTW9kZWxdPVwiX2VkaXRpbmdEYXRlT2JqKCkuZGF0ZVwiXG4gICAgICAgIFttaW5WYWx1ZV09XCJtaW5WYWx1ZVwiXG4gICAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZVwiXG4gICAgICAgIFtkaXNhYmxlZERhdGVzXT1cImRpc2FibGVkRGF0ZXNcIlxuICAgICAgICBbaG9saWRheURhdGVzXT1cImhvbGlkYXlEYXRlc1wiXG4gICAgICAgIFtkZXB0aF09XCJkZXB0aFwiXG4gICAgICAgIChvbk5hdmlnYXRlKT1cIl9oYW5kbGVDYWxlbmRhck9uTmF2aWdhdGUoJGV2ZW50KVwiXG4gICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlQ2FsZW5kYXJPblZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgW3R5cGVdPVwiX2NhbGVuZGFyU3lzdGVtKClcIlxuICAgICAgPlxuICAgICAgPC9heC1jYWxlbmRhcj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoX2FjdGl2ZVBhcnQoKSA9PT0gJ3RpbWUnKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LXBpY2tlci1wYXJ0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtaGVhZGVyXCI+XG4gICAgICAgIEBpZiAocGlja2VyKCkgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICB7eyBfZWRpdGluZ0RhdGVPYmooKSB8IGZvcm1hdDogJ3RpbWUnIDogJ21lZGl1bScgfCBhc3luYyB9fVxuICAgICAgICAgIHt7IF9lZGl0aW5nRGF0ZU9iaigpIHwgZm9ybWF0OiAnZGF0ZScgOiAnbWVkaXVtJyB8IGFzeW5jIH19XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIHt7IF9lZGl0aW5nRGF0ZU9iaigpIHwgZm9ybWF0OiBwaWNrZXIoKSA6ICdtZWRpdW0nIHwgYXN5bmMgfX1cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGRpcj1cImx0clwiIGNsYXNzPVwiYXgtcGlja2VyLXRpbWUtY29udGFpbmVyXCI+XG4gICAgICAgIEBpZiAoX3BhcnRzLmhvdXIuZW5hYmxlZCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaG91clJlZlwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoX3BhcnRzLm1pbnV0ZS5lbmFibGVkKSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtaW51dGVSZWZcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKF9wYXJ0cy5zZWNvbmQuZW5hYmxlZCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2Vjb25kUmVmXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG5AaWYgKCFkaXNhYmxlZCAmJiAhcmVhZG9ubHkgJiYgKGN1cnJlbnRUaW1lQnV0dG9uIHx8IF9oYXNUaW1lUGFydCkpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWZvb3RlclwiPlxuICAgIDxkaXY+XG4gICAgICBAaWYgKGN1cnJlbnRUaW1lQnV0dG9uKSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBbdGV4dF09XCJgQGFjb3JleDoke2J1dHRvblRleHQoKX1gIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgIChvbkNsaWNrKT1cIl9oYW5kbGVOb3dDbGljaygpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNUb2RheURpc2FibGVkKClcIlxuICAgICAgICA+PC9heC1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIEBpZiAoX2hhc1RpbWVQYXJ0KSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFt0ZXh0XT1cIidAYWNvcmV4OmRhdGVUaW1lLnNldCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiX2hhbmRsZVNldENsaWNrKClcIlxuICAgICAgICA+PC9heC1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufVxuXG48bmctdGVtcGxhdGUgI2hvdXJSZWY+XG4gIDxheC1waWNrZXItY29udGFpbmVyPlxuICAgIDxheC1waWNrZXItdGl0bGU+XG4gICAgICA8YXgtdGV4dD57eyAnQGFjb3JleDpkYXRlVGltZS51bml0cy5ob3VyJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC10ZXh0PlxuICAgIDwvYXgtcGlja2VyLXRpdGxlPlxuICAgIDxheC1waWNrZXItaXRlbXNcbiAgICAgIFtpdGVtc109XCJob3Vyc1wiXG4gICAgICBbbmdNb2RlbF09XCJfZWRpdGluZ0RhdGVPYmooKS5ob3VyXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUGlja2VyT25WYWx1ZUNoYW5nZWQoJGV2ZW50LCAnaG91cicpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW21pblZhbHVlXT1cInBpY2tlckhvdXJzTWluVmFsdWUoKVwiXG4gICAgICBbbWF4VmFsdWVdPVwicGlja2VySG91cnNNYXhWYWx1ZSgpXCJcbiAgICA+PC9heC1waWNrZXItaXRlbXM+XG4gIDwvYXgtcGlja2VyLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbWludXRlUmVmPlxuICA8YXgtcGlja2VyLWNvbnRhaW5lcj5cbiAgICA8YXgtcGlja2VyLXRpdGxlPlxuICAgICAgPGF4LXRleHQ+e3sgJ0BhY29yZXg6ZGF0ZVRpbWUudW5pdHMubWludXRlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC10ZXh0PlxuICAgIDwvYXgtcGlja2VyLXRpdGxlPlxuICAgIDxheC1waWNrZXItaXRlbXNcbiAgICAgIFtpdGVtc109XCJtaW51dGVzXCJcbiAgICAgIFtuZ01vZGVsXT1cIl9lZGl0aW5nRGF0ZU9iaigpLm1pbnV0ZVwiXG4gICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKCRldmVudCwgJ21pbnV0ZScpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW21pblZhbHVlXT1cInBpY2tlck1pbnV0ZU1pblZhbHVlKClcIlxuICAgICAgW21heFZhbHVlXT1cInBpY2tlck1pbnV0ZU1heFZhbHVlKClcIlxuICAgID48L2F4LXBpY2tlci1pdGVtcz5cbiAgPC9heC1waWNrZXItY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzZWNvbmRSZWY+XG4gIDxheC1waWNrZXItY29udGFpbmVyPlxuICAgIDxheC1waWNrZXItdGl0bGU+XG4gICAgICA8YXgtdGV4dD57eyAnQGFjb3JleDpkYXRlVGltZS51bml0cy5zZWNvbmQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LXRleHQ+XG4gICAgPC9heC1waWNrZXItdGl0bGU+XG4gICAgPGF4LXBpY2tlci1pdGVtc1xuICAgICAgW2l0ZW1zXT1cIm1pbnV0ZXNcIlxuICAgICAgW25nTW9kZWxdPVwiX2VkaXRpbmdEYXRlT2JqKCkuc2Vjb25kXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUGlja2VyT25WYWx1ZUNoYW5nZWQoJGV2ZW50LCAnc2Vjb25kJylcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbbWluVmFsdWVdPVwicGlja2VyU2Vjb25kTWluVmFsdWUoKVwiXG4gICAgICBbbWF4VmFsdWVdPVwicGlja2VyU2Vjb25kTWF4VmFsdWUoKVwiXG4gICAgPjwvYXgtcGlja2VyLWl0ZW1zPlxuICA8L2F4LXBpY2tlci1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19","import { AXButtonModule } from '@acorex/components/button';\nimport { AXCalendarModule } from '@acorex/components/calendar';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXPickerModule } from '@acorex/components/picker';\nimport { AXTabsModule } from '@acorex/components/tabs';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXDateTimePickerComponent } from './datetime-picker.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXDateTimePickerComponent];\nconst MODULES = [\n CommonModule,\n FormsModule,\n AXTabsModule,\n AXDateTimeModule,\n AXButtonModule,\n AXCalendarModule,\n AXPickerModule,\n AXTranslationModule,\n AXDecoratorModule,\n];\nexport class AXDateTimePickerModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: AXDateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.7\", ngImport: i0, type: AXDateTimePickerModule, imports: [CommonModule,\n FormsModule,\n AXTabsModule,\n AXDateTimeModule,\n AXButtonModule,\n AXCalendarModule,\n AXPickerModule,\n AXTranslationModule,\n AXDecoratorModule, AXDateTimePickerComponent], exports: [AXDateTimePickerComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: AXDateTimePickerModule, imports: [MODULES, COMPONENT] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: AXDateTimePickerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRXhFLE1BQU0sU0FBUyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUM5QyxNQUFNLE9BQU8sR0FBRztJQUNkLFlBQVk7SUFDWixXQUFXO0lBQ1gsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLGNBQWM7SUFDZCxtQkFBbUI7SUFDbkIsaUJBQWlCO0NBQ2xCLENBQUM7QUFPRixNQUFNLE9BQU8sc0JBQXNCOzhHQUF0QixzQkFBc0I7K0dBQXRCLHNCQUFzQixZQWhCakMsWUFBWTtZQUNaLFdBQVc7WUFDWCxZQUFZO1lBQ1osZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxnQkFBZ0I7WUFDaEIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixpQkFBaUIsRUFWQSx5QkFBeUIsYUFBekIseUJBQXlCOytHQWtCL0Isc0JBQXNCLFlBSnBCLE9BQU8sRUFBSyxTQUFTOzsyRkFJdkIsc0JBQXNCO2tCQUxsQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDYWxlbmRhck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jYWxlbmRhcic7XG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYUGlja2VyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BpY2tlcic7XG5pbXBvcnQgeyBBWFRhYnNNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWERhdGVUaW1lTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGUtdGltZSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnRdO1xuY29uc3QgTU9EVUxFUyA9IFtcbiAgQ29tbW9uTW9kdWxlLFxuICBGb3Jtc01vZHVsZSxcbiAgQVhUYWJzTW9kdWxlLFxuICBBWERhdGVUaW1lTW9kdWxlLFxuICBBWEJ1dHRvbk1vZHVsZSxcbiAgQVhDYWxlbmRhck1vZHVsZSxcbiAgQVhQaWNrZXJNb2R1bGUsXG4gIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gIEFYRGVjb3JhdG9yTW9kdWxlLFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogWy4uLk1PRFVMRVMsIC4uLkNPTVBPTkVOVF0sXG4gIGV4cG9ydHM6IFsuLi5DT01QT05FTlRdLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lUGlja2VyTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtZGF0ZXRpbWUtcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvc3JjL2Fjb3JleC1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAGY,MAAC,yBAAyB,GAAG,IAAI,cAAc,CAAC,2BAA2B,EAAE;AACzF,IAAI,UAAU,EAAE,MAAM;AACtB,IAAI,OAAO,EAAE,MAAM;AACnB,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC/C,QAAQ,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,yBAAyB,CAAC;AACjE,QAAQ,OAAO,6BAA6B;AAC5C,KAAK;AACL,CAAC;AACW,MAAC,6BAA6B,GAAG;AAC7C,IAAI,iBAAiB,EAAE,IAAI;AAC3B;AACO,SAAS,oBAAoB,CAAC,MAAM,GAAG,EAAE,EAAE;AAClD,IAAI,MAAM,MAAM,GAAG;AACnB,QAAQ,GAAG,6BAA6B;AACxC,QAAQ,GAAG,MAAM;AACjB,KAAK;AACL,IAAI,OAAO,MAAM;AACjB;;ACLA;AACA;AACA;AACA;AACA;AACO,MAAM,yBAAyB,SAAS,OAAO,CAAC,uBAAuB,GAAG,gBAAgB,EAAE,CAAC;AACpG,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC;AACpD,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,GAAG,gBAAgB,GAAG,cAAc,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClK,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAC9D,QAAQ,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7G,QAAQ,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,qBAAqB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7G,QAAQ,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/G,QAAQ,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/G,QAAQ,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/G,QAAQ,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,sBAAsB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/G;AACA;AACA;AACA,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB;AACtE;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE;AAC7B,aAAa,IAAI,CAAC,CAAC;AACnB,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE;AAC/B,aAAa,IAAI,CAAC,CAAC;AACnB,aAAa,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;AAChD;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,YAAY,IAAI,EAAE;AAClB,gBAAgB,GAAG,EAAE,MAAM;AAC3B,gBAAgB,WAAW,EAAE,MAAM;AACnC,gBAAgB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;AAC1D,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,OAAO,EAAE,IAAI;AAC7B,gBAAgB,SAAS,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AAC5H,aAAa;AACb,YAAY,KAAK,EAAE;AACnB,gBAAgB,GAAG,EAAE,OAAO;AAC5B,gBAAgB,WAAW,EAAE,IAAI;AACjC,gBAAgB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC;AACxD,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,OAAO,EAAE,CAAC;AAC1B,gBAAgB,SAAS,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;AAC7H,aAAa;AACb,YAAY,GAAG,EAAE;AACjB,gBAAgB,GAAG,EAAE,KAAK;AAC1B,gBAAgB,WAAW,EAAE,IAAI;AACjC,gBAAgB,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC;AACtD,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,OAAO,EAAE,CAAC;AAC1B,gBAAgB,SAAS,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC;AAC3H,aAAa;AACb,YAAY,IAAI,EAAE;AAClB,gBAAgB,GAAG,EAAE,MAAM;AAC3B,gBAAgB,WAAW,EAAE,IAAI;AACjC,gBAAgB,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;AACpD,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,OAAO,EAAE,CAAC;AAC1B,gBAAgB,SAAS,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AAC5H,aAAa;AACb,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,EAAE,QAAQ;AAC7B,gBAAgB,WAAW,EAAE,IAAI;AACjC,gBAAgB,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;AACzC,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,OAAO,EAAE,CAAC;AAC1B,gBAAgB,SAAS,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9H,aAAa;AACb,YAAY,MAAM,EAAE;AACpB,gBAAgB,GAAG,EAAE,QAAQ;AAC7B,gBAAgB,WAAW,EAAE,IAAI;AACjC,gBAAgB,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC;AACzC,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,OAAO,EAAE,CAAC;AAC1B,gBAAgB,SAAS,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9H,aAAa;AACb,YAAY,IAAI,EAAE;AAClB,gBAAgB,GAAG,EAAE,MAAM;AAC3B,gBAAgB,WAAW,EAAE,GAAG;AAChC,gBAAgB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACxC,gBAAgB,OAAO,EAAE,KAAK;AAC9B,gBAAgB,OAAO,EAAE,CAAC;AAC1B,gBAAgB,UAAU,EAAE,IAAI;AAChC,gBAAgB,SAAS,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;AAC5H,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/F;AACA;AACA;AACA,QAAQ,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5F;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtF,QAAQ,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC;AAC/E,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxF,QAAQ,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM;AAC1C,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE;AAC1C,gBAAgB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxG,gBAAgB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACxG,gBAAgB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;AAC5C;AACA,iBAAiB,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE;AAC/C,gBAAgB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;AAC5C;AACA,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;AAClI;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF,QAAQ,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM;AACpC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;AAC9D;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AAChC,gBAAgB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;AAC9F;AACA;AACA,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AAClC,gBAAgB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;AACjE;AACA;AACA,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE;AAC9C;AACA,YAAY,IAAI,CAAC,YAAY,EAAE;AAC/B,SAAS,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5D;AACA;AACA;AACA;AACA,IAAI,IAAI,iBAAiB,GAAG;AAC5B,QAAQ,OAAO,IAAI,CAAC,kBAAkB;AACtC;AACA;AACA;AACA;AACA,IAAI,IAAI,iBAAiB,CAAC,CAAC,EAAE;AAC7B,QAAQ,IAAI,CAAC,SAAS,CAAC;AACvB,YAAY,IAAI,EAAE,mBAAmB;AACrC,YAAY,KAAK,EAAE,CAAC;AACpB,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3E;AACA;AACA;AACA;AACA,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/E;AACA,IAAI,aAAa;AACjB,IAAI,OAAO;AACX;AACA;AACA;AACA,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,KAAK,CAAC,QAAQ,EAAE;AACxB,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA,IAAI,oBAAoB,CAAC,KAAK,EAAE;AAChC,QAAQ,IAAI;AACZ,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AACzD,gBAAgB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC7F;AACA,iBAAiB;AACjB,gBAAgB,MAAM,IAAI,KAAK,EAAE;AACjC;AACA;AACA,QAAQ,MAAM;AACd,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/E;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,CAAC,CAAC,EAAE;AAC1B,QAAQ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;AACvC;AACA;AACA;AACA;AACA,IAAI,2BAA2B,CAAC,CAAC,EAAE,IAAI,EAAE;AACzC,QAAQ,IAAI,CAAC,CAAC,iBAAiB,EAAE;AACjC,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7F,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzF,gBAAgB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AAC7D,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;AACvD;AACA,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9D;AACA;AACA,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;AAC/B,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzF,gBAAgB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AAC7D,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;AACvD;AACA,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yBAAyB,CAAC,CAAC,EAAE;AACjC,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/B;AACA;AACA;AACA;AACA,IAAI,6BAA6B,CAAC,CAAC,EAAE;AACrC,QAAQ,IAAI,CAAC,CAAC,iBAAiB,EAAE;AACjC,YAAY,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACvF,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC;AACtC,iBAAiB,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AAChD,iBAAiB,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU;AACpD,iBAAiB,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW;AACvD,iBAAiB,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC;AAChD,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;AAClD,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;AACnC,gBAAgB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC;AAC5C,gBAAgB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;AACzE,oBAAoB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACvC;AACA,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACvE;AACA;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACnE;AACA,YAAY,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;AACrD,YAAY,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC;AACrD;AACA;AACA,IAAI,qBAAqB,CAAC,aAAa,EAAE;AACzC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC1B,YAAY;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5D,YAAY;AACZ,QAAQ,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;AACzD,YAAY,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9C,YAAY,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/C,YAAY,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/C;AACA,aAAa;AACb,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACrF,YAAY,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACnD,YAAY,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AACtD,YAAY,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AACtD;AACA;AACA,IAAI,qBAAqB,CAAC,aAAa,EAAE;AACzC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;AAC1B,YAAY;AACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC5D,YAAY;AACZ,QAAQ,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;AAC1D,YAAY,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9C,YAAY,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/C,YAAY,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/C;AACA,aAAa;AACb,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACrF,YAAY,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;AACnD,YAAY,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AACtD,YAAY,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,GAAG;AACnB,QAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AAClD,YAAY,CAAC,CAAC,OAAO,GAAG,KAAK;AAC7B,SAAS,CAAC;AACV,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;AAC9D,QAAQ,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AACnC,YAAY,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AACpG,YAAY,IAAI,KAAK,EAAE;AACvB,gBAAgB,KAAK,CAAC,OAAO,GAAG,IAAI;AACpC,gBAAgB,KAAK,CAAC,WAAW,GAAG,CAAC;AACrC;AACA,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3D,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;AAC1D,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;AAC1D;AACA;AACA;AACA;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3E,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3D,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;AAC1D,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;AAC1D;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,IAAI,EAAE;AACrB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;AACjF,YAAY,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACvE;AACA,aAAa,IAAI,OAAO,IAAI,CAAC,aAAa,IAAI,UAAU,EAAE;AAC1D,YAAY,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAChD;AACA,QAAQ,OAAO,KAAK;AACpB;AACA;AACA;AACA;AACA,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AAChE,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,MAAM,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AACtE,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpF,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AACpF,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;AAChC,YAAY,OAAO,IAAI;AACvB;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC3G,YAAY,OAAO,IAAI,CAAC,QAAQ;AAChC;AACA,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC1G,YAAY,OAAO,IAAI,CAAC,QAAQ;AAChC;AACA,QAAQ,OAAO,CAAC,CAAC,IAAI;AACrB;AACA,IAAI,eAAe,GAAG;AACtB,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa;AAChD,QAAQ,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AAC7D,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE;AAChC,QAAQ,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClC,QAAQ,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,YAAY,KAAK;AACpD,YAAY,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC;AACnD,YAAY,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzC,YAAY,OAAO,KAAK,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,OAAO,EAAE;AACzD,SAAS,CAAC;AACV;AACA,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7L,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,iBAAiB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,iBAAiB,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE;AACn9G,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,yBAAyB,EAAE;AAC5E,YAAY,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,yBAAyB,EAAE;AACrF,YAAY,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,yBAAyB,EAAE;AACpF,YAAY;AACZ,gBAAgB,OAAO,EAAE,iBAAiB;AAC1C,gBAAgB,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC;AACxE,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa;AACb,SAAS,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,o4IAAo4I,EAAE,MAAM,EAAE,CAAC,2+DAA2+D,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,0BAA0B,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,8IAA8I,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;AACntS;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE;AACrJ,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,aAAa;AACrC,wBAAwB,OAAO;AAC/B,wBAAwB,OAAO;AAC/B,wBAAwB,MAAM;AAC9B,wBAAwB,IAAI;AAC5B,wBAAwB,OAAO;AAC/B,wBAAwB,YAAY;AACpC,wBAAwB,UAAU;AAClC,wBAAwB,UAAU;AAClC,wBAAwB,eAAe;AACvC,wBAAwB,cAAc;AACtC,wBAAwB,MAAM;AAC9B,wBAAwB,cAAc;AACtC,wBAAwB,WAAW;AACnC,wBAAwB,gBAAgB;AACxC,qBAAqB,EAAE,OAAO,EAAE;AAChC,wBAAwB,aAAa;AACrC,wBAAwB,aAAa;AACrC,wBAAwB,gBAAgB;AACxC,wBAAwB,QAAQ;AAChC,wBAAwB,SAAS;AACjC,wBAAwB,SAAS;AACjC,wBAAwB,gBAAgB;AACxC,wBAAwB,gBAAgB;AACxC,wBAAwB,aAAa;AACrC,wBAAwB,YAAY;AACpC,wBAAwB,kBAAkB;AAC1C,wBAAwB,qBAAqB;AAC7C,wBAAwB,oBAAoB;AAC5C,wBAAwB,YAAY;AACpC,wBAAwB,aAAa;AACrC,qBAAqB,EAAE,SAAS,EAAE;AAClC,wBAAwB,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,yBAAyB,EAAE;AACxF,wBAAwB,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,yBAAyB,EAAE;AACjG,wBAAwB,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,yBAAyB,EAAE;AAChG,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,iBAAiB;AACtD,4BAA4B,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC;AACpF,4BAA4B,KAAK,EAAE,IAAI;AACvC,yBAAyB;AACzB,qBAAqB,EAAE,OAAO,EAAE;AAChC,wBAAwB,eAAe;AACvC,wBAAwB,kBAAkB;AAC1C,wBAAwB,mBAAmB;AAC3C,wBAAwB,WAAW;AACnC,wBAAwB,gBAAgB;AACxC,wBAAwB,iBAAiB;AACzC,wBAAwB,0BAA0B;AAClD,wBAAwB,sBAAsB;AAC9C,wBAAwB,2BAA2B;AACnD,wBAAwB,sBAAsB;AAC9C,wBAAwB,SAAS;AACjC,wBAAwB,YAAY;AACpC,wBAAwB,gBAAgB;AACxC,qBAAqB,EAAE,QAAQ,EAAE,o4IAAo4I,EAAE,MAAM,EAAE,CAAC,2+DAA2+D,CAAC,EAAE;AAC95M,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,iBAAiB,EAAE,CAAC;AAClD,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,eAAe;AACtC,aAAa,CAAC,EAAE,EAAE,CAAC;;ACncnB,MAAM,SAAS,GAAG,CAAC,yBAAyB,CAAC;AAC7C,MAAM,OAAO,GAAG;AAChB,IAAI,YAAY;AAChB,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,gBAAgB;AACpB,IAAI,cAAc;AAClB,IAAI,gBAAgB;AACpB,IAAI,cAAc;AAClB,IAAI,mBAAmB;AACvB,IAAI,iBAAiB;AACrB,CAAC;AACM,MAAM,sBAAsB,CAAC;AACpC,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvL,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,YAAY;AAC7J,YAAY,WAAW;AACvB,YAAY,YAAY;AACxB,YAAY,gBAAgB;AAC5B,YAAY,cAAc;AAC1B,YAAY,gBAAgB;AAC5B,YAAY,cAAc;AAC1B,YAAY,mBAAmB;AAC/B,YAAY,iBAAiB,EAAE,yBAAyB,CAAC,EAAE,OAAO,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;AACnG,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;AACxK;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC;AACvD,oBAAoB,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AAC3C,oBAAoB,SAAS,EAAE,EAAE;AACjC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;AC5Cb;AACA;AACA;;;;"}
1
+ {"version":3,"file":"acorex-components-datetime-picker.mjs","sources":["../tmp-esm2022/datetime-picker/lib/datetime-picker.config.js","../tmp-esm2022/datetime-picker/lib/datetime-picker.component.js","../tmp-esm2022/datetime-picker/lib/datetime-picker.module.js","../tmp-esm2022/datetime-picker/acorex-components-datetime-picker.js"],"sourcesContent":["import { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\nexport const AX_DATETIME_PICKER_CONFIG = new InjectionToken('AX_DATETIME_PICKER_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'datetime-picker', AX_DATETIME_PICKER_CONFIG);\n return AXDateTimePickerDefaultConfig;\n },\n});\nexport const AXDateTimePickerDefaultConfig = {\n currentTimeButton: true,\n};\nexport function dateTimePickerConfig(config = {}) {\n const result = {\n ...AXDateTimePickerDefaultConfig,\n ...config,\n };\n return result;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTWhDLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLElBQUksY0FBYyxDQUF5QiwyQkFBMkIsRUFBRTtJQUMvRyxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsR0FBRyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1FBQzFELE9BQU8sNkJBQTZCLENBQUM7SUFDdkMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUEyQjtJQUNuRSxpQkFBaUIsRUFBRSxJQUFJO0NBQ3hCLENBQUM7QUFJRixNQUFNLFVBQVUsb0JBQW9CLENBQUMsU0FBc0MsRUFBRTtJQUMzRSxNQUFNLE1BQU0sR0FBRztRQUNiLEdBQUcsNkJBQTZCO1FBQ2hDLEdBQUcsTUFBTTtLQUNWLENBQUM7SUFDRixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhfR0xPQkFMX0NPTkZJRyB9IGZyb20gJ0BhY29yZXgvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgc2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWERhdGVUaW1lUGlja2VyQ29uZmlnIHtcbiAgY3VycmVudFRpbWVCdXR0b246IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEFYRGF0ZVRpbWVQaWNrZXJDb25maWc+KCdBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICBjb25zdCBnbG9iYWwgPSBpbmplY3QoQVhfR0xPQkFMX0NPTkZJRyk7XG4gICAgc2V0KGdsb2JhbCwgJ2RhdGV0aW1lLXBpY2tlcicsIEFYX0RBVEVUSU1FX1BJQ0tFUl9DT05GSUcpO1xuICAgIHJldHVybiBBWERhdGVUaW1lUGlja2VyRGVmYXVsdENvbmZpZztcbiAgfSxcbn0pO1xuXG5leHBvcnQgY29uc3QgQVhEYXRlVGltZVBpY2tlckRlZmF1bHRDb25maWc6IEFYRGF0ZVRpbWVQaWNrZXJDb25maWcgPSB7XG4gIGN1cnJlbnRUaW1lQnV0dG9uOiB0cnVlLFxufTtcblxuZXhwb3J0IHR5cGUgUGFydGlhbERhdGVUaW1lUGlja2VyQ29uZmlnID0gUGFydGlhbDxBWERhdGVUaW1lUGlja2VyQ29uZmlnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUaW1lUGlja2VyQ29uZmlnKGNvbmZpZzogUGFydGlhbERhdGVUaW1lUGlja2VyQ29uZmlnID0ge30pOiBBWERhdGVUaW1lUGlja2VyQ29uZmlnIHtcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIC4uLkFYRGF0ZVRpbWVQaWNrZXJEZWZhdWx0Q29uZmlnLFxuICAgIC4uLmNvbmZpZyxcbiAgfTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==","import { AXComponent, AXFocusableComponent, AXValuableComponent, MXValueComponent, } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXCalendarComponent, MXCalendarBaseComponent, } from '@acorex/components/calendar';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXPickerContainerComponent, AXPickerItemsComponent, AXPickerTitleComponent } from '@acorex/components/picker';\nimport { AXTabItemComponent, AXTabsComponent } from '@acorex/components/tabs';\nimport { AXFormatPipe, AXFormatService } from '@acorex/core/format';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation, computed, effect, forwardRef, inject, input, linkedSignal, signal, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AX_DATETIME_PICKER_CONFIG } from './datetime-picker.config';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\n/**\n * allows users to select a date and time from a calendar and time picker interface.\n *\n * @category Components\n */\nexport class AXDateTimePickerComponent extends classes(MXCalendarBaseComponent, (MXValueComponent)) {\n constructor() {\n super(...arguments);\n this.formatService = inject(AXFormatService);\n this.buttonText = computed(() => (this._activePart() === 'date' ? 'dateTime.today' : 'dateTime.now'), ...(ngDevMode ? [{ debugName: \"buttonText\" }] : []));\n this.defaultConfig = inject(AX_DATETIME_PICKER_CONFIG);\n this.pickerHoursMinValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerHoursMinValue\" }] : []));\n this.pickerHoursMaxValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerHoursMaxValue\" }] : []));\n this.pickerMinuteMinValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerMinuteMinValue\" }] : []));\n this.pickerMinuteMaxValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerMinuteMaxValue\" }] : []));\n this.pickerSecondMinValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerSecondMinValue\" }] : []));\n this.pickerSecondMaxValue = signal(null, ...(ngDevMode ? [{ debugName: \"pickerSecondMaxValue\" }] : []));\n /**\n * @ignore\n */\n this._currentTimeButton = this.defaultConfig.currentTimeButton;\n /**\n * @ignore\n */\n this.hours = Array(24)\n .fill(0)\n .map((m, i) => ({ id: i, text: i }));\n this.minutes = Array(60)\n .fill(0)\n .map((m, i) => ({ id: i, text: i }));\n /**\n * @ignore\n */\n this._parts = {\n year: {\n key: 'year',\n placeholder: 'yyyy',\n placeholders: ['YY', 'yy', 'YYYY', 'yyyy'],\n enabled: false,\n default: 2023,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.year.placeholder),\n },\n month: {\n key: 'month',\n placeholder: 'MM',\n placeholders: ['MMM', 'MMMM', 'MM', 'M'],\n enabled: false,\n default: 1,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.month.placeholder),\n },\n day: {\n key: 'day',\n placeholder: 'dd',\n placeholders: ['dd', 'd', 'E', 'dddd'],\n enabled: false,\n default: 1,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.day.placeholder),\n },\n hour: {\n key: 'hour',\n placeholder: 'HH',\n placeholders: ['HH', 'H', 'hh', 'h'],\n enabled: false,\n default: 0,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.hour.placeholder),\n },\n minute: {\n key: 'minute',\n placeholder: 'mm',\n placeholders: ['mm', 'm'],\n enabled: false,\n default: 0,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.minute.placeholder),\n },\n second: {\n key: 'second',\n placeholder: 'ss',\n placeholders: ['ss', 's'],\n enabled: false,\n default: 0,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.second.placeholder),\n },\n AMPM: {\n key: 'AMPM',\n placeholder: 'a',\n placeholders: ['a', 'A'],\n enabled: false,\n default: 0,\n typedValue: null,\n realValue: () => this.formatService.format(this._editingDateObj(), 'datetime', this._parts.AMPM.placeholder),\n },\n };\n /**\n * @ignore\n */\n this._activePart = signal('date', ...(ngDevMode ? [{ debugName: \"_activePart\" }] : []));\n // /**\n // * @ignore\n // */\n this._editingDateObj = linkedSignal(() => this.calendarService.now(this.calendar()));\n /**\n * @description The calendar type to use for the datetime input.\n */\n this.calendar = input(null, ...(ngDevMode ? [{ debugName: \"calendar\" }] : []));\n this._calendarSystem = linkedSignal(() => this.calendar() ?? this.type);\n this.picker = input('datetime', ...(ngDevMode ? [{ debugName: \"picker\" }] : []));\n this.#effectPicker = effect(() => {\n if (this.picker() === 'time') {\n this.checkSelectedMinValue(this.calendarService.convert(this.minValue, this.calendar()));\n this.checkSelectedMaxValue(this.calendarService.convert(this.maxValue, this.calendar()));\n this._activePart.set('time');\n }\n else if (this.picker() === 'date') {\n this._activePart.set('date');\n }\n }, ...(ngDevMode ? [{ debugName: \"#effectPicker\" }] : []));\n this._format = linkedSignal(() => this.format() ?? this.localeService.activeProfile().formats[this.picker()]?.short ?? '');\n /**\n * @deprecated use locale & mode instead\n */\n this.format = input(...(ngDevMode ? [undefined, { debugName: \"format\" }] : []));\n this.#effect = effect(() => {\n const profile = this.localeService.activeProfile();\n //\n if (!this.format()) {\n this._format.set(this.format() ?? profile.formats[this.picker()]?.short ?? '');\n }\n //\n if (!this.calendar()) {\n this._calendarSystem.set(profile.calendar.system);\n }\n //\n this.type = this._calendarSystem();\n //\n this._detectParts();\n }, ...(ngDevMode ? [{ debugName: \"#effect\" }] : []));\n }\n /**\n * Determines whether a button for selecting the current time is displayed.\n */\n get currentTimeButton() {\n return this._currentTimeButton;\n }\n /**\n * Sets whether the button for selecting the current time is displayed.\n */\n set currentTimeButton(v) {\n this.setOption({\n name: 'currentTimeButton',\n value: v,\n });\n }\n /**\n * @ignore\n */\n get _hasDatePart() {\n return ['year', 'month', 'day'].some((k) => this._parts[k].enabled);\n }\n /**\n * @ignore\n */\n get _hasTimePart() {\n return ['hour', 'minute', 'second'].some((k) => this._parts[k].enabled);\n }\n #effectPicker;\n #effect;\n /**\n * @ignore\n */\n async ngOnInit() {\n super.ngOnInit();\n this._detectParts();\n }\n /**\n * Handles changes to the internal value of the component.\n * @param value - The new date value. If not provided, defaults to the current date.\n */\n internalValueChanged(value) {\n try {\n if (this.calendarService.isValidDate(value)) {\n this._editingDateObj.set(this.calendarService.create(value, this.calendar()));\n }\n else {\n throw new Error();\n }\n }\n catch {\n this._editingDateObj.set(this.calendarService.now(this.calendar()));\n }\n }\n /**\n * @ignore\n */\n _handleViewChanged(e) {\n this._activePart.set(e.tab.key);\n }\n /**\n * @ignore\n */\n _handlePickerOnValueChanged(e, part) {\n if (e.isUserInteraction) {\n this._editingDateObj.set(this._editingDateObj().set(part, Number(e.value['id'])));\n if (this.minValue) {\n const minv = this.calendarService.convert(this.minValue, this.calendar());\n if (this._editingDateObj().hour > minv.hour) {\n this.pickerMinuteMinValue.set(null);\n }\n else {\n this.pickerMinuteMinValue.set(minv.minute);\n }\n }\n if (this.maxValue) {\n const maxv = this.calendarService.convert(this.maxValue, this.calendar());\n if (this._editingDateObj().hour < maxv.hour) {\n this.pickerMinuteMaxValue.set(null);\n }\n else {\n this.pickerMinuteMaxValue.set(maxv.minute);\n }\n }\n }\n }\n /**\n * @ignore\n */\n _handleCalendarOnNavigate(e) {\n this.onNavigate.emit(e);\n }\n /**\n * @ignore\n */\n _handleCalendarOnValueChanged(e) {\n if (e.isUserInteraction) {\n const selectedValue = this.calendarService.create(e.value, this.calendar());\n const currentValue = this.calendarService\n .create(e.value, this.calendar())\n .set('day', selectedValue.dayOfMonth)\n .set('month', selectedValue.monthOfYear)\n .set('year', selectedValue.year);\n this._editingDateObj.set(currentValue);\n if (this._hasTimePart) {\n this._activePart.set('time');\n if (this.tabs && this._hasDatePart && this._hasTimePart) {\n this.tabs.select(1);\n }\n else {\n this.commitValue(this._editingDateObj().date, true);\n }\n }\n else {\n this.commitValue(this._editingDateObj().date, true);\n }\n this.checkSelectedMinValue(selectedValue);\n this.checkSelectedMaxValue(selectedValue);\n }\n }\n checkSelectedMinValue(selectedValue) {\n if (!this.minValue)\n return;\n if (!this.calendarService.isValidDate(this.minValue))\n return;\n if (selectedValue.isAfter(this.minValue, 'day')) {\n this.pickerHoursMinValue.set(null);\n this.pickerMinuteMinValue.set(null);\n this.pickerSecondMinValue.set(null);\n }\n else {\n const minv = this.calendarService.convert(this.minValue, this.calendar());\n this.pickerHoursMinValue.set(minv.hour);\n this.pickerMinuteMinValue.set(minv.minute);\n this.pickerSecondMinValue.set(minv.second);\n }\n }\n checkSelectedMaxValue(selectedValue) {\n if (!this.maxValue)\n return;\n if (!this.calendarService.isValidDate(this.maxValue))\n return;\n if (selectedValue.isBefore(this.maxValue, 'day')) {\n this.pickerHoursMaxValue.set(null);\n this.pickerMinuteMaxValue.set(null);\n this.pickerSecondMaxValue.set(null);\n }\n else {\n const maxv = this.calendarService.convert(this.maxValue, this.calendar());\n this.pickerHoursMaxValue.set(maxv.hour);\n this.pickerMinuteMaxValue.set(maxv.minute);\n this.pickerSecondMaxValue.set(maxv.second);\n }\n }\n /**\n * @ignore\n */\n _detectParts() {\n Object.values(this._parts).forEach((e) => {\n e.enabled = false;\n });\n const formatParts = this._format().split(/[^a-zA-Z]+/);\n formatParts.forEach((f) => {\n const found = Object.values(this._parts).find((c) => c.placeholders.some((d) => d == f));\n if (found) {\n found.enabled = true;\n found.placeholder = f;\n }\n });\n //this.cdr.markForCheck();\n }\n /**\n * @ignore\n */\n _handleSetClick() {\n this.commitValue(this._editingDateObj().date, true);\n this.checkSelectedMinValue(this._editingDateObj());\n this.checkSelectedMaxValue(this._editingDateObj());\n }\n /**\n * @ignore\n */\n _handleNowClick() {\n this._editingDateObj.set(this.calendarService.now(this.calendar()));\n this.commitValue(this._editingDateObj().date, true);\n this.checkSelectedMinValue(this._editingDateObj());\n this.checkSelectedMaxValue(this._editingDateObj());\n }\n /**\n * @ignore\n */\n isDisabled(date) {\n if (Array.isArray(this.disabledDates) && this.disabledDates.length != 0) {\n return this.disabledDates.some((d) => date.equal(d, 'day'));\n }\n else if (typeof this.disabledDates == 'function') {\n return this.disabledDates(date.date);\n }\n return false;\n }\n /**\n * @ignore\n */\n internalSetValue(value) {\n if (!value || !this.calendarService.isValidDate(value)) {\n return null;\n }\n const v = this.calendarService.convert(value, this.calendar());\n this.checkSelectedMinValue(this.calendarService.convert(v, this.calendar()));\n this.checkSelectedMaxValue(this.calendarService.convert(v, this.calendar()));\n if (this.isDisabled(v)) {\n return null;\n }\n if (this.minValue && this.calendarService.isValidDate(this.minValue) && v.isBefore(this.minValue)) {\n return this.minValue;\n }\n if (this.maxValue && this.calendarService.isValidDate(this.maxValue) && v.isAfter(this.maxValue)) {\n return this.maxValue;\n }\n return v.date;\n }\n isTodayDisabled() {\n const disabledDates = this.disabledDates;\n if (!disabledDates || !Array.isArray(disabledDates)) {\n return false;\n }\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return disabledDates.some((disabledDate) => {\n const disabled = new Date(disabledDate);\n disabled.setHours(0, 0, 0, 0);\n return today.getTime() === disabled.getTime();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXDateTimePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXDateTimePickerComponent, isStandalone: true, selector: \"ax-datetime-picker\", inputs: { disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, tabIndex: { classPropertyName: \"tabIndex\", publicName: \"tabIndex\", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: false, isRequired: false, transformFunction: null }, value: { classPropertyName: \"value\", publicName: \"value\", isSignal: false, isRequired: false, transformFunction: null }, state: { classPropertyName: \"state\", publicName: \"state\", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: false, isRequired: false, transformFunction: null }, id: { classPropertyName: \"id\", publicName: \"id\", isSignal: false, isRequired: false, transformFunction: null }, depth: { classPropertyName: \"depth\", publicName: \"depth\", isSignal: false, isRequired: false, transformFunction: null }, activeView: { classPropertyName: \"activeView\", publicName: \"activeView\", isSignal: false, isRequired: false, transformFunction: null }, minValue: { classPropertyName: \"minValue\", publicName: \"minValue\", isSignal: false, isRequired: false, transformFunction: null }, maxValue: { classPropertyName: \"maxValue\", publicName: \"maxValue\", isSignal: false, isRequired: false, transformFunction: null }, disabledDates: { classPropertyName: \"disabledDates\", publicName: \"disabledDates\", isSignal: false, isRequired: false, transformFunction: null }, holidayDates: { classPropertyName: \"holidayDates\", publicName: \"holidayDates\", isSignal: false, isRequired: false, transformFunction: null }, type: { classPropertyName: \"type\", publicName: \"type\", isSignal: false, isRequired: false, transformFunction: null }, cellTemplate: { classPropertyName: \"cellTemplate\", publicName: \"cellTemplate\", isSignal: false, isRequired: false, transformFunction: null }, cellClass: { classPropertyName: \"cellClass\", publicName: \"cellClass\", isSignal: false, isRequired: false, transformFunction: null }, showNavigation: { classPropertyName: \"showNavigation\", publicName: \"showNavigation\", isSignal: false, isRequired: false, transformFunction: null }, currentTimeButton: { classPropertyName: \"currentTimeButton\", publicName: \"currentTimeButton\", isSignal: false, isRequired: false, transformFunction: null }, calendar: { classPropertyName: \"calendar\", publicName: \"calendar\", isSignal: true, isRequired: false, transformFunction: null }, picker: { classPropertyName: \"picker\", publicName: \"picker\", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: \"format\", publicName: \"format\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: \"valueChange\", stateChange: \"stateChange\", onValueChanged: \"onValueChanged\", onBlur: \"onBlur\", onFocus: \"onFocus\", onClick: \"onClick\", readonlyChange: \"readonlyChange\", disabledChange: \"disabledChange\", depthChange: \"depthChange\", typeChange: \"typeChange\", activeViewChange: \"activeViewChange\", disabledDatesChange: \"disabledDatesChange\", holidayDatesChange: \"holidayDatesChange\", onNavigate: \"onNavigate\", onSlotClick: \"onSlotClick\" }, providers: [\n { provide: AXComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimePickerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimePickerComponent),\n multi: true,\n },\n ], viewQueries: [{ propertyName: \"tabs\", first: true, predicate: AXTabsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: \"@if (_hasDatePart && _hasTimePart) {\\n <div class=\\\"ax-header\\\">\\n <ax-tabs [look]=\\\"'default'\\\" [fitParent]=\\\"true\\\" [location]=\\\"'top'\\\" (onActiveTabChanged)=\\\"_handleViewChanged($event)\\\">\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.date' | translate | async\\\"\\n [key]=\\\"'date'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.time' | translate | async\\\"\\n [key]=\\\"'time'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n </ax-tabs>\\n </div>\\n}\\n<div class=\\\"ax-content\\\">\\n @if (_activePart() === 'date') {\\n <div class=\\\"ax-calendar-part\\\">\\n <ax-calendar\\n #calendar\\n id=\\\"calendar\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [ngModel]=\\\"_editingDateObj().date\\\"\\n [minValue]=\\\"minValue\\\"\\n [maxValue]=\\\"maxValue\\\"\\n [disabledDates]=\\\"disabledDates\\\"\\n [holidayDates]=\\\"holidayDates\\\"\\n [depth]=\\\"depth\\\"\\n (onNavigate)=\\\"_handleCalendarOnNavigate($event)\\\"\\n (onValueChanged)=\\\"_handleCalendarOnValueChanged($event)\\\"\\n [type]=\\\"_calendarSystem()\\\"\\n >\\n </ax-calendar>\\n </div>\\n }\\n\\n @if (_activePart() === 'time') {\\n <div class=\\\"ax-picker-part\\\">\\n <div class=\\\"ax-header\\\">\\n @if (picker() === 'datetime') {\\n {{ _editingDateObj() | format: 'time' : 'medium' | async }}\\n {{ _editingDateObj() | format: 'date' : 'medium' | async }}\\n } @else {\\n {{ _editingDateObj() | format: picker() : 'medium' | async }}\\n }\\n </div>\\n <div dir=\\\"ltr\\\" class=\\\"ax-picker-time-container\\\">\\n @if (_parts.hour.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"hourRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.minute.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"minuteRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.second.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"secondRef\\\"> </ng-container>\\n }\\n </div>\\n </div>\\n }\\n</div>\\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\\n <div class=\\\"ax-footer\\\">\\n <div>\\n @if (currentTimeButton) {\\n <ax-button\\n [text]=\\\"`@acorex:${buttonText()}` | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleNowClick()\\\"\\n [disabled]=\\\"isTodayDisabled()\\\"\\n ></ax-button>\\n }\\n </div>\\n <div>\\n @if (_hasTimePart) {\\n <ax-button\\n color=\\\"primary\\\"\\n [text]=\\\"'@acorex:dateTime.set' | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleSetClick()\\\"\\n ></ax-button>\\n }\\n </div>\\n </div>\\n}\\n\\n<ng-template #hourRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.hour' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"hours\\\"\\n [ngModel]=\\\"_editingDateObj().hour\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'hour')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerHoursMinValue()\\\"\\n [maxValue]=\\\"pickerHoursMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #minuteRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.minute' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"_editingDateObj().minute\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'minute')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerMinuteMinValue()\\\"\\n [maxValue]=\\\"pickerMinuteMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #secondRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.second' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"_editingDateObj().second\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'second')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerSecondMinValue()\\\"\\n [maxValue]=\\\"pickerSecondMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\", styles: [\"ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-top:var(--ax-comp-datetime-picker-header-padding-t, .5rem);padding-left:var(--ax-comp-datetime-picker-header-padding-x, .5rem);padding-right:var(--ax-comp-datetime-picker-header-padding-x, .5rem)}ax-datetime-picker>.ax-content{width:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:var(--ax-comp-datetime-picker-md-width, 20rem)}}ax-datetime-picker>.ax-content .ax-picker-part{width:100%;display:flex;flex-direction:column;height:var(--ax-comp-datetime-picker-picker-part-height, 376px)}ax-datetime-picker>.ax-content .ax-picker-part .ax-picker-time-container{display:flex;height:100%}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{font-weight:500;text-align:center;padding:var(--ax-comp-datetime-picker-picker-part-header-padding, .75rem);font-size:var(--ax-comp-datetime-picker-picker-part-header-font-size, 1rem);border-bottom:solid;border-bottom-width:var(--ax-comp-datetime-picker-picker-part-header-border-width, 1px);border-bottom-color:rgba(var(--ax-comp-datetime-picker-picker-part-header-border-color, var(--ax-sys-color-border-surface)))}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{width:100%;padding-top:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem);padding-bottom:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem)}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;padding:var(--ax-comp-datetime-picker-footer-padding, .5rem);border-color:rgba(var(--ax-comp-datetime-picker-footer-border-color, var(--ax-sys-color-border-surface)));border-top-width:var(--ax-comp-datetime-picker-footer-border-top-width, 1px)}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\\n\"], dependencies: [{ kind: \"component\", type: AXTabsComponent, selector: \"ax-tabs\", inputs: [\"look\", \"location\", \"fitParent\", \"minWidth\", \"content\"], outputs: [\"onActiveTabChanged\"] }, { kind: \"component\", type: AXTabItemComponent, selector: \"ax-tab-item\", inputs: [\"disabled\", \"text\", \"key\", \"headerTemplate\", \"active\"], outputs: [\"disabledChange\", \"onClick\", \"onBlur\", \"onFocus\", \"activeChange\"] }, { kind: \"component\", type: AXCalendarComponent, selector: \"ax-calendar\", inputs: [\"rtl\", \"readonly\", \"value\", \"name\", \"disabled\", \"depth\", \"activeView\", \"minValue\", \"maxValue\", \"disabledDates\", \"holidayDates\", \"type\", \"cellTemplate\", \"cellClass\", \"showNavigation\", \"count\", \"id\"], outputs: [\"onOptionChanged\", \"valueChange\", \"onValueChanged\", \"minValueChange\", \"maxValueChange\", \"onBlur\", \"onFocus\", \"depthChange\", \"typeChange\", \"activeViewChange\", \"disabledDatesChange\", \"holidayDatesChange\", \"onNavigate\", \"onSlotClick\", \"countChange\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXPickerContainerComponent, selector: \"ax-picker-container\", inputs: [\"class\"] }, { kind: \"component\", type: AXPickerTitleComponent, selector: \"ax-picker-title\" }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXPickerItemsComponent, selector: \"ax-picker-items\", inputs: [\"disabled\", \"readonly\", \"readonlyChange\", \"disabledChange\", \"items\", \"valueField\", \"textField\", \"slidesPerGroup\", \"loop\", \"minValue\", \"maxValue\"], outputs: [\"onValueChanged\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXFormatPipe, name: \"format\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXDateTimePickerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-datetime-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [\n 'disabled',\n 'readonly',\n 'tabIndex',\n 'placeholder',\n 'value',\n 'state',\n 'name',\n 'id',\n 'depth',\n 'activeView',\n 'minValue',\n 'maxValue',\n 'disabledDates',\n 'holidayDates',\n 'type',\n 'cellTemplate',\n 'cellClass',\n 'showNavigation',\n ], outputs: [\n 'valueChange',\n 'stateChange',\n 'onValueChanged',\n 'onBlur',\n 'onFocus',\n 'onClick',\n 'readonlyChange',\n 'disabledChange',\n 'depthChange',\n 'typeChange',\n 'activeViewChange',\n 'disabledDatesChange',\n 'holidayDatesChange',\n 'onNavigate',\n 'onSlotClick',\n ], providers: [\n { provide: AXComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXFocusableComponent, useExisting: AXDateTimePickerComponent },\n { provide: AXValuableComponent, useExisting: AXDateTimePickerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXDateTimePickerComponent),\n multi: true,\n },\n ], imports: [\n AXTabsComponent,\n AXTabItemComponent,\n AXCalendarComponent,\n FormsModule,\n NgTemplateOutlet,\n AXButtonComponent,\n AXPickerContainerComponent,\n AXPickerTitleComponent,\n AXDecoratorGenericComponent,\n AXPickerItemsComponent,\n AsyncPipe,\n AXFormatPipe,\n AXTranslatorPipe,\n ], template: \"@if (_hasDatePart && _hasTimePart) {\\n <div class=\\\"ax-header\\\">\\n <ax-tabs [look]=\\\"'default'\\\" [fitParent]=\\\"true\\\" [location]=\\\"'top'\\\" (onActiveTabChanged)=\\\"_handleViewChanged($event)\\\">\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.date' | translate | async\\\"\\n [key]=\\\"'date'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n <ax-tab-item\\n [text]=\\\"'@acorex:dateTime.time' | translate | async\\\"\\n [key]=\\\"'time'\\\"\\n [disabled]=\\\"disabled\\\"\\n ></ax-tab-item>\\n </ax-tabs>\\n </div>\\n}\\n<div class=\\\"ax-content\\\">\\n @if (_activePart() === 'date') {\\n <div class=\\\"ax-calendar-part\\\">\\n <ax-calendar\\n #calendar\\n id=\\\"calendar\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [ngModel]=\\\"_editingDateObj().date\\\"\\n [minValue]=\\\"minValue\\\"\\n [maxValue]=\\\"maxValue\\\"\\n [disabledDates]=\\\"disabledDates\\\"\\n [holidayDates]=\\\"holidayDates\\\"\\n [depth]=\\\"depth\\\"\\n (onNavigate)=\\\"_handleCalendarOnNavigate($event)\\\"\\n (onValueChanged)=\\\"_handleCalendarOnValueChanged($event)\\\"\\n [type]=\\\"_calendarSystem()\\\"\\n >\\n </ax-calendar>\\n </div>\\n }\\n\\n @if (_activePart() === 'time') {\\n <div class=\\\"ax-picker-part\\\">\\n <div class=\\\"ax-header\\\">\\n @if (picker() === 'datetime') {\\n {{ _editingDateObj() | format: 'time' : 'medium' | async }}\\n {{ _editingDateObj() | format: 'date' : 'medium' | async }}\\n } @else {\\n {{ _editingDateObj() | format: picker() : 'medium' | async }}\\n }\\n </div>\\n <div dir=\\\"ltr\\\" class=\\\"ax-picker-time-container\\\">\\n @if (_parts.hour.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"hourRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.minute.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"minuteRef\\\"> </ng-container>\\n }\\n\\n @if (_parts.second.enabled) {\\n <ng-container [ngTemplateOutlet]=\\\"secondRef\\\"> </ng-container>\\n }\\n </div>\\n </div>\\n }\\n</div>\\n@if (!disabled && !readonly && (currentTimeButton || _hasTimePart)) {\\n <div class=\\\"ax-footer\\\">\\n <div>\\n @if (currentTimeButton) {\\n <ax-button\\n [text]=\\\"`@acorex:${buttonText()}` | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleNowClick()\\\"\\n [disabled]=\\\"isTodayDisabled()\\\"\\n ></ax-button>\\n }\\n </div>\\n <div>\\n @if (_hasTimePart) {\\n <ax-button\\n color=\\\"primary\\\"\\n [text]=\\\"'@acorex:dateTime.set' | translate | async\\\"\\n class=\\\"ax-sm\\\"\\n (onClick)=\\\"_handleSetClick()\\\"\\n ></ax-button>\\n }\\n </div>\\n </div>\\n}\\n\\n<ng-template #hourRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.hour' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"hours\\\"\\n [ngModel]=\\\"_editingDateObj().hour\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'hour')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerHoursMinValue()\\\"\\n [maxValue]=\\\"pickerHoursMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #minuteRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.minute' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"_editingDateObj().minute\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'minute')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerMinuteMinValue()\\\"\\n [maxValue]=\\\"pickerMinuteMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\\n<ng-template #secondRef>\\n <ax-picker-container>\\n <ax-picker-title>\\n <ax-text>{{ '@acorex:dateTime.units.second' | translate | async }}</ax-text>\\n </ax-picker-title>\\n <ax-picker-items\\n [items]=\\\"minutes\\\"\\n [ngModel]=\\\"_editingDateObj().second\\\"\\n (onValueChanged)=\\\"_handlePickerOnValueChanged($event, 'second')\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [minValue]=\\\"pickerSecondMinValue()\\\"\\n [maxValue]=\\\"pickerSecondMaxValue()\\\"\\n ></ax-picker-items>\\n </ax-picker-container>\\n</ng-template>\\n\", styles: [\"ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-top:var(--ax-comp-datetime-picker-header-padding-t, .5rem);padding-left:var(--ax-comp-datetime-picker-header-padding-x, .5rem);padding-right:var(--ax-comp-datetime-picker-header-padding-x, .5rem)}ax-datetime-picker>.ax-content{width:100%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:var(--ax-comp-datetime-picker-md-width, 20rem)}}ax-datetime-picker>.ax-content .ax-picker-part{width:100%;display:flex;flex-direction:column;height:var(--ax-comp-datetime-picker-picker-part-height, 376px)}ax-datetime-picker>.ax-content .ax-picker-part .ax-picker-time-container{display:flex;height:100%}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{font-weight:500;text-align:center;padding:var(--ax-comp-datetime-picker-picker-part-header-padding, .75rem);font-size:var(--ax-comp-datetime-picker-picker-part-header-font-size, 1rem);border-bottom:solid;border-bottom-width:var(--ax-comp-datetime-picker-picker-part-header-border-width, 1px);border-bottom-color:rgba(var(--ax-comp-datetime-picker-picker-part-header-border-color, var(--ax-sys-color-border-surface)))}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{width:100%;padding-top:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem);padding-bottom:var(--ax-comp-datetime-picker-calendar-part-padding, .25rem)}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;padding:var(--ax-comp-datetime-picker-footer-padding, .5rem);border-color:rgba(var(--ax-comp-datetime-picker-footer-border-color, var(--ax-sys-color-border-surface)));border-top-width:var(--ax-comp-datetime-picker-footer-border-top-width, 1px)}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\\n\"] }]\n }], propDecorators: { currentTimeButton: [{\n type: Input\n }], tabs: [{\n type: ViewChild,\n args: [AXTabsComponent]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUVuQixnQkFBZ0IsR0FDakIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsbUJBQW1CLEVBR25CLHVCQUF1QixHQUN4QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxrQkFBa0IsRUFBMEIsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1Ys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QUNWLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxNQUFNO3dCQUNOLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxnQkFBZ0I7cUJBQ2pCLFdBQ1E7d0JBQ1AsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixTQUFTO3dCQUNULFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixZQUFZO3dCQUNaLGFBQWE7cUJBQ2QsYUFDVTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVywyQkFBMkIsRUFBRTt3QkFDaEUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVywyQkFBMkIsRUFBRTt3QkFDekUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVywyQkFBMkIsRUFBRTt3QkFDeEU7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLFdBQ1E7d0JBQ1AsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsMEJBQTBCO3dCQUMxQixzQkFBc0I7d0JBQ3RCLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0QixTQUFTO3dCQUNULFlBQVk7d0JBQ1osZ0JBQWdCO3FCQUNqQjs4QkE0QlUsaUJBQWlCO3NCQUQzQixLQUFLO2dCQW1CSSxJQUFJO3NCQURiLFNBQVM7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29tcG9uZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1ZUNoYW5nZWRFdmVudCxcbiAgTVhWYWx1ZUNvbXBvbmVudCxcbn0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1xuICBBWENhbGVuZGFyQ29tcG9uZW50LFxuICBBWENhbGVuZGFyTmF2aWdhdGVFdmVudCxcbiAgQVhEYXRlVGltZVBpY2tlclR5cGUsXG4gIE1YQ2FsZW5kYXJCYXNlQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2FsZW5kYXInO1xuaW1wb3J0IHsgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhQaWNrZXJDb250YWluZXJDb21wb25lbnQsIEFYUGlja2VySXRlbXNDb21wb25lbnQsIEFYUGlja2VyVGl0bGVDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcGlja2VyJztcbmltcG9ydCB7IEFYVGFiSXRlbUNvbXBvbmVudCwgQVhUYWJTdHJpcENoYW5nZWRFdmVudCwgQVhUYWJzQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RhYnMnO1xuaW1wb3J0IHsgQVhEYXRlVGltZSwgQVhEYXRlVGltZVBhcnRzLCBUaW1lVW5pdCB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlLXRpbWUnO1xuaW1wb3J0IHsgQVhGb3JtYXRQaXBlLCBBWEZvcm1hdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIGxpbmtlZFNpZ25hbCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBBWERhdGVUaW1lUGlja2VyQ29uZmlnLCBBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHIH0gZnJvbSAnLi9kYXRldGltZS1waWNrZXIuY29uZmlnJztcblxuLyoqXG4gKiBhbGxvd3MgdXNlcnMgdG8gc2VsZWN0IGEgZGF0ZSBhbmQgdGltZSBmcm9tIGEgY2FsZW5kYXIgYW5kIHRpbWUgcGlja2VyIGludGVyZmFjZS5cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1kYXRldGltZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3RhYkluZGV4JyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICd2YWx1ZScsXG4gICAgJ3N0YXRlJyxcbiAgICAnbmFtZScsXG4gICAgJ2lkJyxcbiAgICAnZGVwdGgnLFxuICAgICdhY3RpdmVWaWV3JyxcbiAgICAnbWluVmFsdWUnLFxuICAgICdtYXhWYWx1ZScsXG4gICAgJ2Rpc2FibGVkRGF0ZXMnLFxuICAgICdob2xpZGF5RGF0ZXMnLFxuICAgICd0eXBlJyxcbiAgICAnY2VsbFRlbXBsYXRlJyxcbiAgICAnY2VsbENsYXNzJyxcbiAgICAnc2hvd05hdmlnYXRpb24nLFxuICBdLFxuICBvdXRwdXRzOiBbXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcbiAgICAnc3RhdGVDaGFuZ2UnLFxuICAgICdvblZhbHVlQ2hhbmdlZCcsXG4gICAgJ29uQmx1cicsXG4gICAgJ29uRm9jdXMnLFxuICAgICdvbkNsaWNrJyxcbiAgICAncmVhZG9ubHlDaGFuZ2UnLFxuICAgICdkaXNhYmxlZENoYW5nZScsXG4gICAgJ2RlcHRoQ2hhbmdlJyxcbiAgICAndHlwZUNoYW5nZScsXG4gICAgJ2FjdGl2ZVZpZXdDaGFuZ2UnLFxuICAgICdkaXNhYmxlZERhdGVzQ2hhbmdlJyxcbiAgICAnaG9saWRheURhdGVzQ2hhbmdlJyxcbiAgICAnb25OYXZpZ2F0ZScsXG4gICAgJ29uU2xvdENsaWNrJyxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIEFYVGFic0NvbXBvbmVudCxcbiAgICBBWFRhYkl0ZW1Db21wb25lbnQsXG4gICAgQVhDYWxlbmRhckNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEFYQnV0dG9uQ29tcG9uZW50LFxuICAgIEFYUGlja2VyQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEFYUGlja2VyVGl0bGVDb21wb25lbnQsXG4gICAgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LFxuICAgIEFYUGlja2VySXRlbXNDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYRm9ybWF0UGlwZSxcbiAgICBBWFRyYW5zbGF0b3JQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50XG4gIGV4dGVuZHMgY2xhc3NlcyhNWENhbGVuZGFyQmFzZUNvbXBvbmVudCwgTVhWYWx1ZUNvbXBvbmVudDxEYXRlPilcbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgcHJpdmF0ZSBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGJ1dHRvblRleHQgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5fYWN0aXZlUGFydCgpID09PSAnZGF0ZScgPyAnZGF0ZVRpbWUudG9kYXknIDogJ2RhdGVUaW1lLm5vdycpKTtcblxuICBwcml2YXRlIGRlZmF1bHRDb25maWc6IEFYRGF0ZVRpbWVQaWNrZXJDb25maWcgPSBpbmplY3QoQVhfREFURVRJTUVfUElDS0VSX0NPTkZJRyk7XG5cbiAgcHJvdGVjdGVkIHBpY2tlckhvdXJzTWluVmFsdWUgPSBzaWduYWw8bnVtYmVyPihudWxsKTtcbiAgcHJvdGVjdGVkIHBpY2tlckhvdXJzTWF4VmFsdWUgPSBzaWduYWw8bnVtYmVyPihudWxsKTtcbiAgcHJvdGVjdGVkIHBpY2tlck1pbnV0ZU1pblZhbHVlID0gc2lnbmFsPG51bWJlcj4obnVsbCk7XG4gIHByb3RlY3RlZCBwaWNrZXJNaW51dGVNYXhWYWx1ZSA9IHNpZ25hbDxudW1iZXI+KG51bGwpO1xuICBwcm90ZWN0ZWQgcGlja2VyU2Vjb25kTWluVmFsdWUgPSBzaWduYWw8bnVtYmVyPihudWxsKTtcbiAgcHJvdGVjdGVkIHBpY2tlclNlY29uZE1heFZhbHVlID0gc2lnbmFsPG51bWJlcj4obnVsbCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9jdXJyZW50VGltZUJ1dHRvbjogYm9vbGVhbiA9IHRoaXMuZGVmYXVsdENvbmZpZy5jdXJyZW50VGltZUJ1dHRvbjtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIGEgYnV0dG9uIGZvciBzZWxlY3RpbmcgdGhlIGN1cnJlbnQgdGltZSBpcyBkaXNwbGF5ZWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGN1cnJlbnRUaW1lQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VGltZUJ1dHRvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHdoZXRoZXIgdGhlIGJ1dHRvbiBmb3Igc2VsZWN0aW5nIHRoZSBjdXJyZW50IHRpbWUgaXMgZGlzcGxheWVkLlxuICAgKi9cbiAgcHVibGljIHNldCBjdXJyZW50VGltZUJ1dHRvbih2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2N1cnJlbnRUaW1lQnV0dG9uJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKEFYVGFic0NvbXBvbmVudClcbiAgcHJvdGVjdGVkIHRhYnM6IEFYVGFic0NvbXBvbmVudDtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBob3VyczogYW55W10gPSBBcnJheSgyNClcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKG0sIGkpID0+ICh7IGlkOiBpLCB0ZXh0OiBpIH0pKTtcbiAgbWludXRlczogYW55W10gPSBBcnJheSg2MClcbiAgICAuZmlsbCgwKVxuICAgIC5tYXAoKG0sIGkpID0+ICh7IGlkOiBpLCB0ZXh0OiBpIH0pKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfcGFydHM6IEFYRGF0ZVRpbWVQYXJ0cyA9IHtcbiAgICB5ZWFyOiB7XG4gICAgICBrZXk6ICd5ZWFyJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAneXl5eScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnWVknLCAneXknLCAnWVlZWScsICd5eXl5J10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDIwMjMsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5fZWRpdGluZ0RhdGVPYmooKSwgJ2RhdGV0aW1lJywgdGhpcy5fcGFydHMueWVhci5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgbW9udGg6IHtcbiAgICAgIGtleTogJ21vbnRoJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnTU0nLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ01NTScsICdNTU1NJywgJ01NJywgJ00nXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMSxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLl9lZGl0aW5nRGF0ZU9iaigpLCAnZGF0ZXRpbWUnLCB0aGlzLl9wYXJ0cy5tb250aC5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgZGF5OiB7XG4gICAgICBrZXk6ICdkYXknLFxuICAgICAgcGxhY2Vob2xkZXI6ICdkZCcsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnZGQnLCAnZCcsICdFJywgJ2RkZGQnXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMSxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLl9lZGl0aW5nRGF0ZU9iaigpLCAnZGF0ZXRpbWUnLCB0aGlzLl9wYXJ0cy5kYXkucGxhY2Vob2xkZXIgYXMgYW55KSxcbiAgICB9LFxuICAgIGhvdXI6IHtcbiAgICAgIGtleTogJ2hvdXInLFxuICAgICAgcGxhY2Vob2xkZXI6ICdISCcsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnSEgnLCAnSCcsICdoaCcsICdoJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICByZWFsVmFsdWU6ICgpID0+XG4gICAgICAgIHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5fZWRpdGluZ0RhdGVPYmooKSwgJ2RhdGV0aW1lJywgdGhpcy5fcGFydHMuaG91ci5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgbWludXRlOiB7XG4gICAgICBrZXk6ICdtaW51dGUnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdtbScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnbW0nLCAnbSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PlxuICAgICAgICB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX2VkaXRpbmdEYXRlT2JqKCksICdkYXRldGltZScsIHRoaXMuX3BhcnRzLm1pbnV0ZS5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgc2Vjb25kOiB7XG4gICAgICBrZXk6ICdzZWNvbmQnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdzcycsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnc3MnLCAncyddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PlxuICAgICAgICB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX2VkaXRpbmdEYXRlT2JqKCksICdkYXRldGltZScsIHRoaXMuX3BhcnRzLnNlY29uZC5wbGFjZWhvbGRlciBhcyBhbnkpLFxuICAgIH0sXG4gICAgQU1QTToge1xuICAgICAga2V5OiAnQU1QTScsXG4gICAgICBwbGFjZWhvbGRlcjogJ2EnLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ2EnLCAnQSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgdHlwZWRWYWx1ZTogbnVsbCxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT5cbiAgICAgICAgdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLl9lZGl0aW5nRGF0ZU9iaigpLCAnZGF0ZXRpbWUnLCB0aGlzLl9wYXJ0cy5BTVBNLnBsYWNlaG9sZGVyIGFzIGFueSksXG4gICAgfSxcbiAgfTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfYWN0aXZlUGFydCA9IHNpZ25hbDwnZGF0ZScgfCAndGltZSc+KCdkYXRlJyk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IF9oYXNEYXRlUGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gWyd5ZWFyJywgJ21vbnRoJywgJ2RheSddLnNvbWUoKGspID0+IHRoaXMuX3BhcnRzW2tdLmVuYWJsZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IF9oYXNUaW1lUGFydCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gWydob3VyJywgJ21pbnV0ZScsICdzZWNvbmQnXS5zb21lKChrKSA9PiB0aGlzLl9wYXJ0c1trXS5lbmFibGVkKTtcbiAgfVxuXG4gIC8vIC8qKlxuICAvLyAgKiAgQGlnbm9yZVxuICAvLyAgKi9cbiAgcHJvdGVjdGVkIF9lZGl0aW5nRGF0ZU9iaiA9IGxpbmtlZFNpZ25hbDxBWERhdGVUaW1lPigoKSA9PiB0aGlzLmNhbGVuZGFyU2VydmljZS5ub3codGhpcy5jYWxlbmRhcigpKSk7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBUaGUgY2FsZW5kYXIgdHlwZSB0byB1c2UgZm9yIHRoZSBkYXRldGltZSBpbnB1dC5cbiAgICovXG4gIGNhbGVuZGFyID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIF9jYWxlbmRhclN5c3RlbSA9IGxpbmtlZFNpZ25hbDxzdHJpbmcgfCBudWxsPigoKSA9PiB0aGlzLmNhbGVuZGFyKCkgPz8gdGhpcy50eXBlKTtcblxuICBwaWNrZXIgPSBpbnB1dDxBWERhdGVUaW1lUGlja2VyVHlwZT4oJ2RhdGV0aW1lJyk7XG5cbiAgI2VmZmVjdFBpY2tlciA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMucGlja2VyKCkgPT09ICd0aW1lJykge1xuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkTWluVmFsdWUodGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh0aGlzLm1pblZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpKTtcbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1heFZhbHVlKHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodGhpcy5tYXhWYWx1ZSwgdGhpcy5jYWxlbmRhcigpKSk7XG4gICAgICB0aGlzLl9hY3RpdmVQYXJ0LnNldCgndGltZScpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5waWNrZXIoKSA9PT0gJ2RhdGUnKSB7XG4gICAgICB0aGlzLl9hY3RpdmVQYXJ0LnNldCgnZGF0ZScpO1xuICAgIH1cbiAgfSk7XG5cbiAgcHJpdmF0ZSBfZm9ybWF0ID0gbGlua2VkU2lnbmFsPHN0cmluZz4oXG4gICAgKCkgPT4gdGhpcy5mb3JtYXQoKSA/PyB0aGlzLmxvY2FsZVNlcnZpY2UuYWN0aXZlUHJvZmlsZSgpLmZvcm1hdHNbdGhpcy5waWNrZXIoKV0/LnNob3J0ID8/ICcnLFxuICApO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgbG9jYWxlICYgbW9kZSBpbnN0ZWFkXG4gICAqL1xuICBmb3JtYXQgPSBpbnB1dDxzdHJpbmcgfCBudWxsPigpO1xuXG4gICNlZmZlY3QgPSBlZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHByb2ZpbGUgPSB0aGlzLmxvY2FsZVNlcnZpY2UuYWN0aXZlUHJvZmlsZSgpO1xuICAgIC8vXG4gICAgaWYgKCF0aGlzLmZvcm1hdCgpKSB7XG4gICAgICB0aGlzLl9mb3JtYXQuc2V0KHRoaXMuZm9ybWF0KCkgPz8gcHJvZmlsZS5mb3JtYXRzW3RoaXMucGlja2VyKCldPy5zaG9ydCA/PyAnJyk7XG4gICAgfVxuICAgIC8vXG4gICAgaWYgKCF0aGlzLmNhbGVuZGFyKCkpIHtcbiAgICAgIHRoaXMuX2NhbGVuZGFyU3lzdGVtLnNldChwcm9maWxlLmNhbGVuZGFyLnN5c3RlbSk7XG4gICAgfVxuICAgIC8vXG4gICAgdGhpcy50eXBlID0gdGhpcy5fY2FsZW5kYXJTeXN0ZW0oKTtcbiAgICAvL1xuICAgIHRoaXMuX2RldGVjdFBhcnRzKCk7XG4gIH0pO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLl9kZXRlY3RQYXJ0cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgY2hhbmdlcyB0byB0aGUgaW50ZXJuYWwgdmFsdWUgb2YgdGhlIGNvbXBvbmVudC5cbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIG5ldyBkYXRlIHZhbHVlLiBJZiBub3QgcHJvdmlkZWQsIGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGRhdGUuXG4gICAqL1xuICBvdmVycmlkZSBpbnRlcm5hbFZhbHVlQ2hhbmdlZCh2YWx1ZT86IERhdGUpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmlzVmFsaWREYXRlKHZhbHVlKSkge1xuICAgICAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iai5zZXQodGhpcy5jYWxlbmRhclNlcnZpY2UuY3JlYXRlKHZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigpO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmouc2V0KHRoaXMuY2FsZW5kYXJTZXJ2aWNlLm5vdyh0aGlzLmNhbGVuZGFyKCkpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlVmlld0NoYW5nZWQoZTogQVhUYWJTdHJpcENoYW5nZWRFdmVudCkge1xuICAgIHRoaXMuX2FjdGl2ZVBhcnQuc2V0KGUudGFiLmtleSBhcyAnZGF0ZScgfCAndGltZScpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4sIHBhcnQ6IHN0cmluZykge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iai5zZXQodGhpcy5fZWRpdGluZ0RhdGVPYmooKS5zZXQocGFydCBhcyBUaW1lVW5pdCwgTnVtYmVyKGUudmFsdWVbJ2lkJ10pKSk7XG5cbiAgICAgIGlmICh0aGlzLm1pblZhbHVlKSB7XG4gICAgICAgIGNvbnN0IG1pbnYgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5jb252ZXJ0KHRoaXMubWluVmFsdWUsIHRoaXMuY2FsZW5kYXIoKSk7XG4gICAgICAgIGlmICh0aGlzLl9lZGl0aW5nRGF0ZU9iaigpLmhvdXIgPiBtaW52LmhvdXIpIHtcbiAgICAgICAgICB0aGlzLnBpY2tlck1pbnV0ZU1pblZhbHVlLnNldChudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnBpY2tlck1pbnV0ZU1pblZhbHVlLnNldChtaW52Lm1pbnV0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubWF4VmFsdWUpIHtcbiAgICAgICAgY29uc3QgbWF4diA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodGhpcy5tYXhWYWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICAgICAgaWYgKHRoaXMuX2VkaXRpbmdEYXRlT2JqKCkuaG91ciA8IG1heHYuaG91cikge1xuICAgICAgICAgIHRoaXMucGlja2VyTWludXRlTWF4VmFsdWUuc2V0KG51bGwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucGlja2VyTWludXRlTWF4VmFsdWUuc2V0KG1heHYubWludXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uTmF2aWdhdGUoZTogQVhDYWxlbmRhck5hdmlnYXRlRXZlbnQpIHtcbiAgICB0aGlzLm9uTmF2aWdhdGUuZW1pdChlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4pIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZShlLnZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5jYWxlbmRhclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZShlLnZhbHVlLCB0aGlzLmNhbGVuZGFyKCkpXG4gICAgICAgIC5zZXQoJ2RheScsIHNlbGVjdGVkVmFsdWUuZGF5T2ZNb250aClcbiAgICAgICAgLnNldCgnbW9udGgnLCBzZWxlY3RlZFZhbHVlLm1vbnRoT2ZZZWFyKVxuICAgICAgICAuc2V0KCd5ZWFyJywgc2VsZWN0ZWRWYWx1ZS55ZWFyKTtcblxuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmouc2V0KGN1cnJlbnRWYWx1ZSk7XG4gICAgICBpZiAodGhpcy5faGFzVGltZVBhcnQpIHtcbiAgICAgICAgdGhpcy5fYWN0aXZlUGFydC5zZXQoJ3RpbWUnKTtcbiAgICAgICAgaWYgKHRoaXMudGFicyAmJiB0aGlzLl9oYXNEYXRlUGFydCAmJiB0aGlzLl9oYXNUaW1lUGFydCkge1xuICAgICAgICAgIHRoaXMudGFicy5zZWxlY3QoMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLl9lZGl0aW5nRGF0ZU9iaigpLmRhdGUsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuX2VkaXRpbmdEYXRlT2JqKCkuZGF0ZSwgdHJ1ZSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1pblZhbHVlKHNlbGVjdGVkVmFsdWUpO1xuICAgICAgdGhpcy5jaGVja1NlbGVjdGVkTWF4VmFsdWUoc2VsZWN0ZWRWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja1NlbGVjdGVkTWluVmFsdWUoc2VsZWN0ZWRWYWx1ZTogQVhEYXRlVGltZSkge1xuICAgIGlmICghdGhpcy5taW5WYWx1ZSkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5jYWxlbmRhclNlcnZpY2UuaXNWYWxpZERhdGUodGhpcy5taW5WYWx1ZSkpIHJldHVybjtcblxuICAgIGlmIChzZWxlY3RlZFZhbHVlLmlzQWZ0ZXIodGhpcy5taW5WYWx1ZSwgJ2RheScpKSB7XG4gICAgICB0aGlzLnBpY2tlckhvdXJzTWluVmFsdWUuc2V0KG51bGwpO1xuICAgICAgdGhpcy5waWNrZXJNaW51dGVNaW5WYWx1ZS5zZXQobnVsbCk7XG4gICAgICB0aGlzLnBpY2tlclNlY29uZE1pblZhbHVlLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWludiA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodGhpcy5taW5WYWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICAgIHRoaXMucGlja2VySG91cnNNaW5WYWx1ZS5zZXQobWludi5ob3VyKTtcbiAgICAgIHRoaXMucGlja2VyTWludXRlTWluVmFsdWUuc2V0KG1pbnYubWludXRlKTtcbiAgICAgIHRoaXMucGlja2VyU2Vjb25kTWluVmFsdWUuc2V0KG1pbnYuc2Vjb25kKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrU2VsZWN0ZWRNYXhWYWx1ZShzZWxlY3RlZFZhbHVlOiBBWERhdGVUaW1lKSB7XG4gICAgaWYgKCF0aGlzLm1heFZhbHVlKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmNhbGVuZGFyU2VydmljZS5pc1ZhbGlkRGF0ZSh0aGlzLm1heFZhbHVlKSkgcmV0dXJuO1xuXG4gICAgaWYgKHNlbGVjdGVkVmFsdWUuaXNCZWZvcmUodGhpcy5tYXhWYWx1ZSwgJ2RheScpKSB7XG4gICAgICB0aGlzLnBpY2tlckhvdXJzTWF4VmFsdWUuc2V0KG51bGwpO1xuICAgICAgdGhpcy5waWNrZXJNaW51dGVNYXhWYWx1ZS5zZXQobnVsbCk7XG4gICAgICB0aGlzLnBpY2tlclNlY29uZE1heFZhbHVlLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWF4diA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodGhpcy5tYXhWYWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICAgIHRoaXMucGlja2VySG91cnNNYXhWYWx1ZS5zZXQobWF4di5ob3VyKTtcbiAgICAgIHRoaXMucGlja2VyTWludXRlTWF4VmFsdWUuc2V0KG1heHYubWludXRlKTtcbiAgICAgIHRoaXMucGlja2VyU2Vjb25kTWF4VmFsdWUuc2V0KG1heHYuc2Vjb25kKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX2RldGVjdFBhcnRzKCkge1xuICAgIE9iamVjdC52YWx1ZXModGhpcy5fcGFydHMpLmZvckVhY2goKGUpID0+IHtcbiAgICAgIGUuZW5hYmxlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIGNvbnN0IGZvcm1hdFBhcnRzID0gdGhpcy5fZm9ybWF0KCkuc3BsaXQoL1teYS16QS1aXSsvKTtcbiAgICBmb3JtYXRQYXJ0cy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICBjb25zdCBmb3VuZCA9IE9iamVjdC52YWx1ZXModGhpcy5fcGFydHMpLmZpbmQoKGMpID0+IGMucGxhY2Vob2xkZXJzLnNvbWUoKGQpID0+IGQgPT0gZikpO1xuICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgIGZvdW5kLmVuYWJsZWQgPSB0cnVlO1xuICAgICAgICBmb3VuZC5wbGFjZWhvbGRlciA9IGY7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy90aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVTZXRDbGljaygpIHtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuX2VkaXRpbmdEYXRlT2JqKCkuZGF0ZSwgdHJ1ZSk7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkTWluVmFsdWUodGhpcy5fZWRpdGluZ0RhdGVPYmooKSk7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkTWF4VmFsdWUodGhpcy5fZWRpdGluZ0RhdGVPYmooKSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlTm93Q2xpY2soKSB7XG4gICAgdGhpcy5fZWRpdGluZ0RhdGVPYmouc2V0KHRoaXMuY2FsZW5kYXJTZXJ2aWNlLm5vdyh0aGlzLmNhbGVuZGFyKCkpKTtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuX2VkaXRpbmdEYXRlT2JqKCkuZGF0ZSwgdHJ1ZSk7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkTWluVmFsdWUodGhpcy5fZWRpdGluZ0RhdGVPYmooKSk7XG4gICAgdGhpcy5jaGVja1NlbGVjdGVkTWF4VmFsdWUodGhpcy5fZWRpdGluZ0RhdGVPYmooKSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkKGRhdGU6IEFYRGF0ZVRpbWUpOiBib29sZWFuIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRpc2FibGVkRGF0ZXMpICYmIHRoaXMuZGlzYWJsZWREYXRlcy5sZW5ndGggIT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcy5zb21lKChkKSA9PiBkYXRlLmVxdWFsKGQsICdkYXknKSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5kaXNhYmxlZERhdGVzID09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMoZGF0ZS5kYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgaW50ZXJuYWxTZXRWYWx1ZSh2YWx1ZTogRGF0ZSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoIXZhbHVlIHx8ICF0aGlzLmNhbGVuZGFyU2VydmljZS5pc1ZhbGlkRGF0ZSh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCB2ID0gdGhpcy5jYWxlbmRhclNlcnZpY2UuY29udmVydCh2YWx1ZSwgdGhpcy5jYWxlbmRhcigpKTtcbiAgICB0aGlzLmNoZWNrU2VsZWN0ZWRNaW5WYWx1ZSh0aGlzLmNhbGVuZGFyU2VydmljZS5jb252ZXJ0KHYsIHRoaXMuY2FsZW5kYXIoKSkpO1xuICAgIHRoaXMuY2hlY2tTZWxlY3RlZE1heFZhbHVlKHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNvbnZlcnQodiwgdGhpcy5jYWxlbmRhcigpKSk7XG5cbiAgICBpZiAodGhpcy5pc0Rpc2FibGVkKHYpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5taW5WYWx1ZSAmJiB0aGlzLmNhbGVuZGFyU2VydmljZS5pc1ZhbGlkRGF0ZSh0aGlzLm1pblZhbHVlKSAmJiB2LmlzQmVmb3JlKHRoaXMubWluVmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5taW5WYWx1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4VmFsdWUgJiYgdGhpcy5jYWxlbmRhclNlcnZpY2UuaXNWYWxpZERhdGUodGhpcy5tYXhWYWx1ZSkgJiYgdi5pc0FmdGVyKHRoaXMubWF4VmFsdWUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdi5kYXRlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzVG9kYXlEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBkaXNhYmxlZERhdGVzID0gdGhpcy5kaXNhYmxlZERhdGVzO1xuXG4gICAgaWYgKCFkaXNhYmxlZERhdGVzIHx8ICFBcnJheS5pc0FycmF5KGRpc2FibGVkRGF0ZXMpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIHRvZGF5LnNldEhvdXJzKDAsIDAsIDAsIDApO1xuXG4gICAgcmV0dXJuIGRpc2FibGVkRGF0ZXMuc29tZSgoZGlzYWJsZWREYXRlOiBEYXRlKSA9PiB7XG4gICAgICBjb25zdCBkaXNhYmxlZCA9IG5ldyBEYXRlKGRpc2FibGVkRGF0ZSk7XG4gICAgICBkaXNhYmxlZC5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgIHJldHVybiB0b2RheS5nZXRUaW1lKCkgPT09IGRpc2FibGVkLmdldFRpbWUoKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiQGlmIChfaGFzRGF0ZVBhcnQgJiYgX2hhc1RpbWVQYXJ0KSB7XG4gIDxkaXYgY2xhc3M9XCJheC1oZWFkZXJcIj5cbiAgICA8YXgtdGFicyBbbG9va109XCInZGVmYXVsdCdcIiBbZml0UGFyZW50XT1cInRydWVcIiBbbG9jYXRpb25dPVwiJ3RvcCdcIiAob25BY3RpdmVUYWJDaGFuZ2VkKT1cIl9oYW5kbGVWaWV3Q2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICA8YXgtdGFiLWl0ZW1cbiAgICAgICAgW3RleHRdPVwiJ0BhY29yZXg6ZGF0ZVRpbWUuZGF0ZScgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgIFtrZXldPVwiJ2RhdGUnXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgID48L2F4LXRhYi1pdGVtPlxuICAgICAgPGF4LXRhYi1pdGVtXG4gICAgICAgIFt0ZXh0XT1cIidAYWNvcmV4OmRhdGVUaW1lLnRpbWUnIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICBba2V5XT1cIid0aW1lJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICA+PC9heC10YWItaXRlbT5cbiAgICA8L2F4LXRhYnM+XG4gIDwvZGl2PlxufVxuPGRpdiBjbGFzcz1cImF4LWNvbnRlbnRcIj5cbiAgQGlmIChfYWN0aXZlUGFydCgpID09PSAnZGF0ZScpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItcGFydFwiPlxuICAgICAgPGF4LWNhbGVuZGFyXG4gICAgICAgICNjYWxlbmRhclxuICAgICAgICBpZD1cImNhbGVuZGFyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW25nTW9kZWxdPVwiX2VkaXRpbmdEYXRlT2JqKCkuZGF0ZVwiXG4gICAgICAgIFttaW5WYWx1ZV09XCJtaW5WYWx1ZVwiXG4gICAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZVwiXG4gICAgICAgIFtkaXNhYmxlZERhdGVzXT1cImRpc2FibGVkRGF0ZXNcIlxuICAgICAgICBbaG9saWRheURhdGVzXT1cImhvbGlkYXlEYXRlc1wiXG4gICAgICAgIFtkZXB0aF09XCJkZXB0aFwiXG4gICAgICAgIChvbk5hdmlnYXRlKT1cIl9oYW5kbGVDYWxlbmRhck9uTmF2aWdhdGUoJGV2ZW50KVwiXG4gICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlQ2FsZW5kYXJPblZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgW3R5cGVdPVwiX2NhbGVuZGFyU3lzdGVtKClcIlxuICAgICAgPlxuICAgICAgPC9heC1jYWxlbmRhcj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoX2FjdGl2ZVBhcnQoKSA9PT0gJ3RpbWUnKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LXBpY2tlci1wYXJ0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtaGVhZGVyXCI+XG4gICAgICAgIEBpZiAocGlja2VyKCkgPT09ICdkYXRldGltZScpIHtcbiAgICAgICAgICB7eyBfZWRpdGluZ0RhdGVPYmooKSB8IGZvcm1hdDogJ3RpbWUnIDogJ21lZGl1bScgfCBhc3luYyB9fVxuICAgICAgICAgIHt7IF9lZGl0aW5nRGF0ZU9iaigpIHwgZm9ybWF0OiAnZGF0ZScgOiAnbWVkaXVtJyB8IGFzeW5jIH19XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIHt7IF9lZGl0aW5nRGF0ZU9iaigpIHwgZm9ybWF0OiBwaWNrZXIoKSA6ICdtZWRpdW0nIHwgYXN5bmMgfX1cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGRpcj1cImx0clwiIGNsYXNzPVwiYXgtcGlja2VyLXRpbWUtY29udGFpbmVyXCI+XG4gICAgICAgIEBpZiAoX3BhcnRzLmhvdXIuZW5hYmxlZCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaG91clJlZlwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoX3BhcnRzLm1pbnV0ZS5lbmFibGVkKSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtaW51dGVSZWZcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKF9wYXJ0cy5zZWNvbmQuZW5hYmxlZCkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwic2Vjb25kUmVmXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG5AaWYgKCFkaXNhYmxlZCAmJiAhcmVhZG9ubHkgJiYgKGN1cnJlbnRUaW1lQnV0dG9uIHx8IF9oYXNUaW1lUGFydCkpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWZvb3RlclwiPlxuICAgIDxkaXY+XG4gICAgICBAaWYgKGN1cnJlbnRUaW1lQnV0dG9uKSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBbdGV4dF09XCJgQGFjb3JleDoke2J1dHRvblRleHQoKX1gIHwgdHJhbnNsYXRlIHwgYXN5bmNcIlxuICAgICAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgICAgIChvbkNsaWNrKT1cIl9oYW5kbGVOb3dDbGljaygpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNUb2RheURpc2FibGVkKClcIlxuICAgICAgICA+PC9heC1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIEBpZiAoX2hhc1RpbWVQYXJ0KSB7XG4gICAgICAgIDxheC1idXR0b25cbiAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgIFt0ZXh0XT1cIidAYWNvcmV4OmRhdGVUaW1lLnNldCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiX2hhbmRsZVNldENsaWNrKClcIlxuICAgICAgICA+PC9heC1idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufVxuXG48bmctdGVtcGxhdGUgI2hvdXJSZWY+XG4gIDxheC1waWNrZXItY29udGFpbmVyPlxuICAgIDxheC1waWNrZXItdGl0bGU+XG4gICAgICA8YXgtdGV4dD57eyAnQGFjb3JleDpkYXRlVGltZS51bml0cy5ob3VyJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC10ZXh0PlxuICAgIDwvYXgtcGlja2VyLXRpdGxlPlxuICAgIDxheC1waWNrZXItaXRlbXNcbiAgICAgIFtpdGVtc109XCJob3Vyc1wiXG4gICAgICBbbmdNb2RlbF09XCJfZWRpdGluZ0RhdGVPYmooKS5ob3VyXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUGlja2VyT25WYWx1ZUNoYW5nZWQoJGV2ZW50LCAnaG91cicpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW21pblZhbHVlXT1cInBpY2tlckhvdXJzTWluVmFsdWUoKVwiXG4gICAgICBbbWF4VmFsdWVdPVwicGlja2VySG91cnNNYXhWYWx1ZSgpXCJcbiAgICA+PC9heC1waWNrZXItaXRlbXM+XG4gIDwvYXgtcGlja2VyLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbWludXRlUmVmPlxuICA8YXgtcGlja2VyLWNvbnRhaW5lcj5cbiAgICA8YXgtcGlja2VyLXRpdGxlPlxuICAgICAgPGF4LXRleHQ+e3sgJ0BhY29yZXg6ZGF0ZVRpbWUudW5pdHMubWludXRlJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9heC10ZXh0PlxuICAgIDwvYXgtcGlja2VyLXRpdGxlPlxuICAgIDxheC1waWNrZXItaXRlbXNcbiAgICAgIFtpdGVtc109XCJtaW51dGVzXCJcbiAgICAgIFtuZ01vZGVsXT1cIl9lZGl0aW5nRGF0ZU9iaigpLm1pbnV0ZVwiXG4gICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKCRldmVudCwgJ21pbnV0ZScpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW21pblZhbHVlXT1cInBpY2tlck1pbnV0ZU1pblZhbHVlKClcIlxuICAgICAgW21heFZhbHVlXT1cInBpY2tlck1pbnV0ZU1heFZhbHVlKClcIlxuICAgID48L2F4LXBpY2tlci1pdGVtcz5cbiAgPC9heC1waWNrZXItY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzZWNvbmRSZWY+XG4gIDxheC1waWNrZXItY29udGFpbmVyPlxuICAgIDxheC1waWNrZXItdGl0bGU+XG4gICAgICA8YXgtdGV4dD57eyAnQGFjb3JleDpkYXRlVGltZS51bml0cy5zZWNvbmQnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LXRleHQ+XG4gICAgPC9heC1waWNrZXItdGl0bGU+XG4gICAgPGF4LXBpY2tlci1pdGVtc1xuICAgICAgW2l0ZW1zXT1cIm1pbnV0ZXNcIlxuICAgICAgW25nTW9kZWxdPVwiX2VkaXRpbmdEYXRlT2JqKCkuc2Vjb25kXCJcbiAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlUGlja2VyT25WYWx1ZUNoYW5nZWQoJGV2ZW50LCAnc2Vjb25kJylcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbbWluVmFsdWVdPVwicGlja2VyU2Vjb25kTWluVmFsdWUoKVwiXG4gICAgICBbbWF4VmFsdWVdPVwicGlja2VyU2Vjb25kTWF4VmFsdWUoKVwiXG4gICAgPjwvYXgtcGlja2VyLWl0ZW1zPlxuICA8L2F4LXBpY2tlci1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19","import { NgModule } from '@angular/core';\nimport { AXDateTimePickerComponent } from './datetime-picker.component';\nimport * as i0 from \"@angular/core\";\nexport class AXDateTimePickerModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXDateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: AXDateTimePickerModule, imports: [AXDateTimePickerComponent], exports: [AXDateTimePickerComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXDateTimePickerModule, imports: [AXDateTimePickerComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXDateTimePickerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXDateTimePickerComponent],\n exports: [AXDateTimePickerComponent],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL3NyYy9saWIvZGF0ZXRpbWUtcGlja2VyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU94RSxNQUFNLE9BQU8sc0JBQXNCOzhHQUF0QixzQkFBc0I7K0dBQXRCLHNCQUFzQixZQUp2Qix5QkFBeUIsYUFDekIseUJBQXlCOytHQUd4QixzQkFBc0IsWUFKdkIseUJBQXlCOzsyRkFJeEIsc0JBQXNCO2tCQUxsQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDcEMsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0FYRGF0ZVRpbWVQaWNrZXJDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lUGlja2VyTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtZGF0ZXRpbWUtcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvc3JjL2Fjb3JleC1jb21wb25lbnRzLWRhdGV0aW1lLXBpY2tlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}