slick-components 4.4.13 → 4.4.16

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 (346) hide show
  1. package/css/slick-components.css +598 -365
  2. package/css/slick-components.min.css +1 -1
  3. package/esm2020/public-api.mjs +43 -0
  4. package/esm2020/slick-accordion/slick-accordion-item-header.component.mjs +14 -0
  5. package/esm2020/slick-accordion/slick-accordion-item.component.mjs +86 -0
  6. package/esm2020/slick-accordion/slick-accordion.component.mjs +75 -0
  7. package/esm2020/slick-accordion/slick-accordion.module.mjs +23 -0
  8. package/esm2020/slick-auto-complete/slick-auto-complete-list-item-template.directive.mjs +22 -0
  9. package/esm2020/slick-auto-complete/slick-auto-complete.component.mjs +375 -0
  10. package/esm2020/slick-auto-complete/slick-auto-complete.module.mjs +24 -0
  11. package/esm2020/slick-button-spinner/slick-button-spinner.component.mjs +175 -0
  12. package/esm2020/slick-button-spinner/slick-button-spinner.module.mjs +19 -0
  13. package/esm2020/slick-calendar/slick-calendar.component.mjs +246 -0
  14. package/esm2020/slick-calendar/slick-calendar.module.mjs +19 -0
  15. package/esm2020/slick-card/slick-card-header.component.mjs +14 -0
  16. package/esm2020/slick-card/slick-card.component.mjs +42 -0
  17. package/esm2020/slick-card/slick-card.module.mjs +20 -0
  18. package/esm2020/slick-components.mjs +5 -0
  19. package/esm2020/slick-confirm-dialog/slick-confirm-dialog.component.mjs +65 -0
  20. package/esm2020/slick-confirm-dialog/slick-confirm-dialog.module.mjs +20 -0
  21. package/esm2020/slick-container/slick-container-body.component.mjs +24 -0
  22. package/esm2020/slick-container/slick-container-footer.component.mjs +20 -0
  23. package/esm2020/slick-container/slick-container-header.component.mjs +20 -0
  24. package/esm2020/slick-container/slick-container.component.mjs +21 -0
  25. package/esm2020/slick-container/slick-container.module.mjs +25 -0
  26. package/esm2020/slick-context-menu/slick-context-menu-item.component.mjs +14 -0
  27. package/esm2020/slick-context-menu/slick-context-menu.component.mjs +48 -0
  28. package/esm2020/slick-context-menu/slick-context-menu.module.mjs +20 -0
  29. package/{esm2015/slick-currency-mask/slick-currency-mask-options.model.js → esm2020/slick-currency-mask/slick-currency-mask-options.model.mjs} +0 -0
  30. package/esm2020/slick-currency-mask/slick-currency-mask.directive.mjs +233 -0
  31. package/esm2020/slick-currency-mask/slick-currency-mask.module.mjs +19 -0
  32. package/esm2020/slick-date-picker/slick-date-picker.component.mjs +278 -0
  33. package/esm2020/slick-date-picker/slick-date-picker.module.mjs +21 -0
  34. package/esm2020/slick-dialog/slick-dialog-footer.component.mjs +24 -0
  35. package/esm2020/slick-dialog/slick-dialog.component.mjs +294 -0
  36. package/esm2020/slick-dialog/slick-dialog.module.mjs +23 -0
  37. package/esm2020/slick-dialog/slick-dialog.service.mjs +68 -0
  38. package/esm2020/slick-drag-drop/slick-drag-drop.directive.mjs +13 -0
  39. package/esm2020/slick-drag-drop/slick-drag-drop.module.mjs +21 -0
  40. package/esm2020/slick-drag-drop/slick-draggable.directive.mjs +13 -0
  41. package/{esm2015/slick-drop-down/slick-drop-down-button.model.js → esm2020/slick-drop-down/slick-drop-down-button.model.mjs} +0 -0
  42. package/esm2020/slick-drop-down/slick-drop-down.component.mjs +479 -0
  43. package/esm2020/slick-drop-down/slick-drop-down.module.mjs +24 -0
  44. package/esm2020/slick-drop-down/slick-drop-down.service.mjs +55 -0
  45. package/esm2020/slick-drop-list/slick-drop-list-grab.directive.mjs +18 -0
  46. package/esm2020/slick-drop-list/slick-drop-list-item.directive.mjs +18 -0
  47. package/esm2020/slick-drop-list/slick-drop-list.directive.mjs +215 -0
  48. package/esm2020/slick-drop-list/slick-drop-list.module.mjs +23 -0
  49. package/esm2020/slick-email-viewer/slick-email-viewer-dialog.component.mjs +81 -0
  50. package/esm2020/slick-email-viewer/slick-email-viewer.component.mjs +42 -0
  51. package/esm2020/slick-email-viewer/slick-email-viewer.module.mjs +26 -0
  52. package/{esm2015/slick-emailer/slick-emailer-address.model.js → esm2020/slick-emailer/slick-emailer-address.model.mjs} +0 -0
  53. package/esm2020/slick-emailer/slick-emailer-dialog.component.mjs +153 -0
  54. package/esm2020/slick-emailer/slick-emailer.component.mjs +235 -0
  55. package/{esm2015/slick-emailer/slick-emailer.model.js → esm2020/slick-emailer/slick-emailer.model.mjs} +0 -0
  56. package/esm2020/slick-emailer/slick-emailer.module.mjs +29 -0
  57. package/esm2020/slick-file-drop/slick-file-drop.component.mjs +156 -0
  58. package/esm2020/slick-file-drop/slick-file-drop.module.mjs +20 -0
  59. package/esm2020/slick-file-list/slick-file-list-item.component.mjs +173 -0
  60. package/esm2020/slick-file-list/slick-file-list.component.mjs +130 -0
  61. package/esm2020/slick-file-list/slick-file-list.module.mjs +23 -0
  62. package/{esm2015/slick-file-model/slick-file.model.js → esm2020/slick-file-model/slick-file.model.mjs} +0 -0
  63. package/esm2020/slick-google-address-search/slick-google-address-search.directive.mjs +75 -0
  64. package/esm2020/slick-google-address-search/slick-google-address-search.module.mjs +19 -0
  65. package/esm2020/slick-google-map/slick-google-map-dialog.component.mjs +50 -0
  66. package/esm2020/slick-google-map/slick-google-map.component.mjs +48 -0
  67. package/esm2020/slick-google-map/slick-google-map.module.mjs +22 -0
  68. package/esm2020/slick-grid/slick-grid-column-template.directive.mjs +19 -0
  69. package/{esm2015/slick-grid/slick-grid-column.model.js → esm2020/slick-grid/slick-grid-column.model.mjs} +0 -0
  70. package/{esm2015/slick-grid/slick-grid-favorite.model.js → esm2020/slick-grid/slick-grid-favorite.model.mjs} +0 -0
  71. package/{esm2015/slick-grid/slick-grid-request.model.js → esm2020/slick-grid/slick-grid-request.model.mjs} +0 -0
  72. package/{esm2015/slick-grid/slick-grid-response.model.js → esm2020/slick-grid/slick-grid-response.model.mjs} +0 -0
  73. package/esm2020/slick-grid/slick-grid-sanitize.pipe.mjs +20 -0
  74. package/esm2020/slick-grid/slick-grid.component.mjs +793 -0
  75. package/esm2020/slick-grid/slick-grid.module.mjs +43 -0
  76. package/{esm2015/slick-grid/slick-grid.options.js → esm2020/slick-grid/slick-grid.options.mjs} +0 -0
  77. package/esm2020/slick-grid/slick-grid.service.mjs +66 -0
  78. package/esm2020/slick-multi-select/slick-multi-select.component.mjs +362 -0
  79. package/esm2020/slick-multi-select/slick-multi-select.module.mjs +20 -0
  80. package/esm2020/slick-multi-select/slick-multi-select.service.mjs +77 -0
  81. package/esm2020/slick-ordered-list/slick-ordered-list.component.mjs +200 -0
  82. package/esm2020/slick-ordered-list/slick-ordered-list.module.mjs +20 -0
  83. package/esm2020/slick-paging/slick-paging.component.mjs +185 -0
  84. package/esm2020/slick-paging/slick-paging.module.mjs +19 -0
  85. package/esm2020/slick-photo-gallery/slick-photo-gallery.component.mjs +98 -0
  86. package/{esm2015/slick-photo-gallery/slick-photo-gallery.model.js → esm2020/slick-photo-gallery/slick-photo-gallery.model.mjs} +0 -0
  87. package/esm2020/slick-photo-gallery/slick-photo-gallery.module.mjs +21 -0
  88. package/esm2020/slick-pick-list/slick-pick-list.component.mjs +84 -0
  89. package/esm2020/slick-pick-list/slick-pick-list.module.mjs +20 -0
  90. package/esm2020/slick-popover/slick-popover.component.mjs +204 -0
  91. package/esm2020/slick-popover/slick-popover.module.mjs +19 -0
  92. package/esm2020/slick-profile-picture/slick-profile-picture.component.mjs +267 -0
  93. package/esm2020/slick-profile-picture/slick-profile-picture.module.mjs +20 -0
  94. package/esm2020/slick-progress-bar/slick-progress-bar.module.mjs +18 -0
  95. package/esm2020/slick-progress-bar/slick-progress-bar.service.mjs +53 -0
  96. package/esm2020/slick-screen-blocker/slick-screen-blocker.module.mjs +18 -0
  97. package/esm2020/slick-screen-blocker/slick-screen-blocker.service.mjs +83 -0
  98. package/{esm2015/slick-slider/slick-slider-tick.model.js → esm2020/slick-slider/slick-slider-tick.model.mjs} +0 -0
  99. package/esm2020/slick-slider/slick-slider.component.mjs +90 -0
  100. package/esm2020/slick-slider/slick-slider.module.mjs +20 -0
  101. package/esm2020/slick-split-screen/slick-screen-split-left-content.component.mjs +15 -0
  102. package/esm2020/slick-split-screen/slick-screen-split-right-content.component.mjs +15 -0
  103. package/esm2020/slick-split-screen/slick-split-screen.component.mjs +159 -0
  104. package/esm2020/slick-split-screen/slick-split-screen.module.mjs +21 -0
  105. package/esm2020/slick-tabs/slick-tab-header.component.mjs +28 -0
  106. package/esm2020/slick-tabs/slick-tab.component.mjs +63 -0
  107. package/{esm2015/slick-tabs/slick-tab.model.js → esm2020/slick-tabs/slick-tab.model.mjs} +0 -0
  108. package/esm2020/slick-tabs/slick-tabs.component.mjs +107 -0
  109. package/esm2020/slick-tabs/slick-tabs.module.mjs +23 -0
  110. package/esm2020/slick-toast/slick-toast.module.mjs +18 -0
  111. package/esm2020/slick-toast/slick-toast.service.mjs +88 -0
  112. package/{esm2015/slick-tree-view/slick-tree-node.model.js → esm2020/slick-tree-view/slick-tree-node.model.mjs} +0 -0
  113. package/esm2020/slick-tree-view/slick-tree-view.component.mjs +293 -0
  114. package/esm2020/slick-tree-view/slick-tree-view.module.mjs +22 -0
  115. package/esm2020/slick-type-ahead/slick-type-ahead.directive.mjs +164 -0
  116. package/esm2020/slick-type-ahead/slick-type-ahead.module.mjs +18 -0
  117. package/esm2020/slick-validation-indicator/slick-validation-indicator.directive.mjs +63 -0
  118. package/esm2020/slick-validation-indicator/slick-validation-indicator.module.mjs +19 -0
  119. package/esm2020/utils/slick-function-lock.service.mjs +55 -0
  120. package/esm2020/utils/slick-init.service.mjs +49 -0
  121. package/esm2020/utils/slick-log.service.mjs +23 -0
  122. package/esm2020/utils/slick-sleep.service.mjs +14 -0
  123. package/esm2020/utils/slick-utils.service.mjs +247 -0
  124. package/fesm2015/{slick-components.js → slick-components.mjs} +2779 -2070
  125. package/fesm2015/slick-components.mjs.map +1 -0
  126. package/fesm2020/slick-components.mjs +8467 -0
  127. package/fesm2020/slick-components.mjs.map +1 -0
  128. package/package.json +20 -8
  129. package/public-api.d.ts +8 -8
  130. package/slick-accordion/slick-accordion-item-header.component.d.ts +3 -0
  131. package/slick-accordion/slick-accordion-item.component.d.ts +3 -0
  132. package/slick-accordion/slick-accordion.component.d.ts +3 -0
  133. package/slick-accordion/slick-accordion.module.d.ts +8 -0
  134. package/slick-auto-complete/slick-auto-complete-list-item-template.directive.d.ts +3 -0
  135. package/slick-auto-complete/slick-auto-complete.component.d.ts +3 -0
  136. package/slick-auto-complete/slick-auto-complete.module.d.ts +8 -0
  137. package/slick-button-spinner/slick-button-spinner.component.d.ts +3 -0
  138. package/slick-button-spinner/slick-button-spinner.module.d.ts +6 -0
  139. package/slick-calendar/slick-calendar.component.d.ts +3 -0
  140. package/slick-calendar/slick-calendar.module.d.ts +6 -0
  141. package/slick-card/slick-card-header.component.d.ts +3 -0
  142. package/slick-card/slick-card.component.d.ts +3 -0
  143. package/slick-card/slick-card.module.d.ts +10 -0
  144. package/slick-components.d.ts +1 -22
  145. package/slick-confirm-dialog/slick-confirm-dialog.component.d.ts +3 -0
  146. package/slick-confirm-dialog/slick-confirm-dialog.module.d.ts +7 -0
  147. package/slick-container/slick-container-body.component.d.ts +3 -0
  148. package/slick-container/slick-container-footer.component.d.ts +3 -0
  149. package/slick-container/slick-container-header.component.d.ts +3 -0
  150. package/slick-container/slick-container.component.d.ts +3 -0
  151. package/slick-container/slick-container.module.d.ts +9 -0
  152. package/slick-context-menu/slick-context-menu-item.component.d.ts +3 -0
  153. package/slick-context-menu/slick-context-menu.component.d.ts +3 -0
  154. package/slick-context-menu/slick-context-menu.module.d.ts +7 -0
  155. package/slick-currency-mask/slick-currency-mask.directive.d.ts +3 -0
  156. package/slick-currency-mask/slick-currency-mask.module.d.ts +5 -0
  157. package/slick-date-picker/slick-date-picker.component.d.ts +3 -0
  158. package/slick-date-picker/slick-date-picker.module.d.ts +8 -0
  159. package/slick-dialog/slick-dialog-footer.component.d.ts +3 -0
  160. package/slick-dialog/slick-dialog.component.d.ts +3 -0
  161. package/slick-dialog/slick-dialog.module.d.ts +10 -1
  162. package/slick-dialog/slick-dialog.service.d.ts +3 -0
  163. package/slick-drag-drop/slick-drag-drop.directive.d.ts +3 -0
  164. package/slick-drag-drop/slick-drag-drop.module.d.ts +11 -0
  165. package/slick-drag-drop/slick-draggable.directive.d.ts +3 -0
  166. package/slick-drop-down/slick-drop-down.component.d.ts +3 -0
  167. package/slick-drop-down/slick-drop-down.module.d.ts +9 -0
  168. package/slick-drop-down/slick-drop-down.service.d.ts +3 -0
  169. package/slick-drop-list/slick-drop-list-grab.directive.d.ts +3 -0
  170. package/slick-drop-list/slick-drop-list-item.directive.d.ts +3 -0
  171. package/slick-drop-list/slick-drop-list.directive.d.ts +13 -7
  172. package/slick-drop-list/slick-drop-list.module.d.ts +14 -0
  173. package/slick-email-viewer/slick-email-viewer-dialog.component.d.ts +3 -0
  174. package/slick-email-viewer/slick-email-viewer.component.d.ts +3 -0
  175. package/slick-email-viewer/slick-email-viewer.module.d.ts +10 -0
  176. package/slick-emailer/slick-emailer-dialog.component.d.ts +3 -0
  177. package/slick-emailer/slick-emailer.component.d.ts +3 -0
  178. package/slick-emailer/slick-emailer.module.d.ts +13 -0
  179. package/slick-file-drop/slick-file-drop.component.d.ts +3 -0
  180. package/slick-file-drop/slick-file-drop.module.d.ts +7 -0
  181. package/slick-file-list/slick-file-list-item.component.d.ts +3 -0
  182. package/slick-file-list/slick-file-list.component.d.ts +3 -0
  183. package/slick-file-list/slick-file-list.module.d.ts +10 -0
  184. package/slick-google-address-search/slick-google-address-search.directive.d.ts +3 -0
  185. package/slick-google-address-search/slick-google-address-search.module.d.ts +6 -0
  186. package/slick-google-map/slick-google-map-dialog.component.d.ts +3 -0
  187. package/slick-google-map/slick-google-map.component.d.ts +3 -0
  188. package/slick-google-map/slick-google-map.module.d.ts +8 -0
  189. package/slick-grid/slick-grid-column-template.directive.d.ts +3 -0
  190. package/slick-grid/slick-grid-sanitize.pipe.d.ts +3 -0
  191. package/slick-grid/slick-grid.component.d.ts +3 -0
  192. package/slick-grid/slick-grid.module.d.ts +16 -0
  193. package/slick-grid/slick-grid.service.d.ts +3 -0
  194. package/slick-multi-select/slick-multi-select.component.d.ts +3 -0
  195. package/slick-multi-select/slick-multi-select.module.d.ts +7 -0
  196. package/slick-multi-select/slick-multi-select.service.d.ts +3 -0
  197. package/slick-ordered-list/slick-ordered-list.component.d.ts +3 -0
  198. package/slick-ordered-list/slick-ordered-list.module.d.ts +7 -0
  199. package/slick-paging/slick-paging.component.d.ts +3 -0
  200. package/slick-paging/slick-paging.module.d.ts +6 -0
  201. package/slick-photo-gallery/slick-photo-gallery.component.d.ts +3 -0
  202. package/slick-photo-gallery/slick-photo-gallery.module.d.ts +6 -0
  203. package/slick-pick-list/slick-pick-list.component.d.ts +3 -0
  204. package/slick-pick-list/slick-pick-list.module.d.ts +7 -0
  205. package/slick-popover/slick-popover.component.d.ts +3 -0
  206. package/slick-popover/slick-popover.module.d.ts +6 -0
  207. package/slick-profile-picture/slick-profile-picture.component.d.ts +3 -0
  208. package/slick-profile-picture/slick-profile-picture.module.d.ts +7 -0
  209. package/slick-progress-bar/slick-progress-bar.module.d.ts +5 -0
  210. package/slick-progress-bar/slick-progress-bar.service.d.ts +3 -0
  211. package/slick-screen-blocker/slick-screen-blocker.module.d.ts +5 -0
  212. package/slick-screen-blocker/slick-screen-blocker.service.d.ts +3 -0
  213. package/slick-slider/slick-slider.component.d.ts +3 -0
  214. package/slick-slider/slick-slider.module.d.ts +6 -0
  215. package/slick-split-screen/slick-screen-split-left-content.component.d.ts +3 -0
  216. package/slick-split-screen/slick-screen-split-right-content.component.d.ts +3 -0
  217. package/slick-split-screen/slick-split-screen.component.d.ts +3 -0
  218. package/slick-split-screen/slick-split-screen.module.d.ts +8 -0
  219. package/slick-tabs/slick-tab-header.component.d.ts +3 -0
  220. package/slick-tabs/slick-tab.component.d.ts +3 -0
  221. package/slick-tabs/slick-tabs.component.d.ts +3 -0
  222. package/slick-tabs/slick-tabs.module.d.ts +10 -0
  223. package/slick-toast/slick-toast.module.d.ts +5 -0
  224. package/slick-toast/slick-toast.service.d.ts +3 -0
  225. package/slick-tree-view/slick-tree-view.component.d.ts +3 -0
  226. package/slick-tree-view/slick-tree-view.module.d.ts +8 -0
  227. package/slick-type-ahead/slick-type-ahead.directive.d.ts +3 -0
  228. package/slick-type-ahead/slick-type-ahead.module.d.ts +5 -0
  229. package/slick-validation-indicator/slick-validation-indicator.directive.d.ts +3 -0
  230. package/slick-validation-indicator/slick-validation-indicator.module.d.ts +6 -0
  231. package/utils/slick-function-lock.service.d.ts +3 -0
  232. package/utils/slick-init.service.d.ts +3 -0
  233. package/utils/slick-log.service.d.ts +3 -0
  234. package/utils/slick-sleep.service.d.ts +3 -0
  235. package/utils/slick-utils.service.d.ts +5 -0
  236. package/bundles/slick-components.umd.js +0 -9777
  237. package/bundles/slick-components.umd.js.map +0 -1
  238. package/esm2015/public-api.js +0 -43
  239. package/esm2015/slick-accordion/slick-accordion-item-header.component.js +0 -10
  240. package/esm2015/slick-accordion/slick-accordion-item.component.js +0 -80
  241. package/esm2015/slick-accordion/slick-accordion.component.js +0 -77
  242. package/esm2015/slick-accordion/slick-accordion.module.js +0 -18
  243. package/esm2015/slick-auto-complete/slick-auto-complete-list-item-template.directive.js +0 -21
  244. package/esm2015/slick-auto-complete/slick-auto-complete.component.js +0 -352
  245. package/esm2015/slick-auto-complete/slick-auto-complete.module.js +0 -19
  246. package/esm2015/slick-button-spinner/slick-button-spinner.component.js +0 -186
  247. package/esm2015/slick-button-spinner/slick-button-spinner.module.js +0 -14
  248. package/esm2015/slick-calendar/slick-calendar.component.js +0 -233
  249. package/esm2015/slick-calendar/slick-calendar.module.js +0 -14
  250. package/esm2015/slick-card/slick-card-header.component.js +0 -10
  251. package/esm2015/slick-card/slick-card.component.js +0 -37
  252. package/esm2015/slick-card/slick-card.module.js +0 -14
  253. package/esm2015/slick-components.js +0 -27
  254. package/esm2015/slick-confirm-dialog/slick-confirm-dialog.component.js +0 -62
  255. package/esm2015/slick-confirm-dialog/slick-confirm-dialog.module.js +0 -15
  256. package/esm2015/slick-container/slick-container-body.component.js +0 -18
  257. package/esm2015/slick-container/slick-container-footer.component.js +0 -16
  258. package/esm2015/slick-container/slick-container-header.component.js +0 -16
  259. package/esm2015/slick-container/slick-container.component.js +0 -19
  260. package/esm2015/slick-container/slick-container.module.js +0 -20
  261. package/esm2015/slick-context-menu/slick-context-menu-item.component.js +0 -10
  262. package/esm2015/slick-context-menu/slick-context-menu.component.js +0 -43
  263. package/esm2015/slick-context-menu/slick-context-menu.module.js +0 -15
  264. package/esm2015/slick-currency-mask/slick-currency-mask.directive.js +0 -234
  265. package/esm2015/slick-currency-mask/slick-currency-mask.module.js +0 -14
  266. package/esm2015/slick-date-picker/slick-date-picker.component.js +0 -267
  267. package/esm2015/slick-date-picker/slick-date-picker.module.js +0 -16
  268. package/esm2015/slick-dialog/slick-dialog-footer.component.js +0 -18
  269. package/esm2015/slick-dialog/slick-dialog.component.js +0 -282
  270. package/esm2015/slick-dialog/slick-dialog.module.js +0 -18
  271. package/esm2015/slick-dialog/slick-dialog.service.js +0 -67
  272. package/esm2015/slick-drag-drop/slick-drag-drop.directive.js +0 -9
  273. package/esm2015/slick-drag-drop/slick-drag-drop.module.js +0 -14
  274. package/esm2015/slick-drag-drop/slick-draggable.directive.js +0 -9
  275. package/esm2015/slick-drop-down/slick-drop-down.component.js +0 -465
  276. package/esm2015/slick-drop-down/slick-drop-down.module.js +0 -19
  277. package/esm2015/slick-drop-down/slick-drop-down.service.js +0 -59
  278. package/esm2015/slick-drop-list/slick-drop-list-grab.directive.js +0 -18
  279. package/esm2015/slick-drop-list/slick-drop-list-item.directive.js +0 -18
  280. package/esm2015/slick-drop-list/slick-drop-list.directive.js +0 -162
  281. package/esm2015/slick-drop-list/slick-drop-list.module.js +0 -15
  282. package/esm2015/slick-email-viewer/slick-email-viewer-dialog.component.js +0 -61
  283. package/esm2015/slick-email-viewer/slick-email-viewer.component.js +0 -39
  284. package/esm2015/slick-email-viewer/slick-email-viewer.module.js +0 -21
  285. package/esm2015/slick-emailer/slick-emailer-dialog.component.js +0 -122
  286. package/esm2015/slick-emailer/slick-emailer.component.js +0 -226
  287. package/esm2015/slick-emailer/slick-emailer.module.js +0 -24
  288. package/esm2015/slick-file-drop/slick-file-drop.component.js +0 -144
  289. package/esm2015/slick-file-drop/slick-file-drop.module.js +0 -15
  290. package/esm2015/slick-file-list/slick-file-list-item.component.js +0 -156
  291. package/esm2015/slick-file-list/slick-file-list.component.js +0 -114
  292. package/esm2015/slick-file-list/slick-file-list.module.js +0 -18
  293. package/esm2015/slick-google-address-search/slick-google-address-search.directive.js +0 -75
  294. package/esm2015/slick-google-address-search/slick-google-address-search.module.js +0 -14
  295. package/esm2015/slick-google-map/slick-google-map-dialog.component.js +0 -45
  296. package/esm2015/slick-google-map/slick-google-map.component.js +0 -45
  297. package/esm2015/slick-google-map/slick-google-map.module.js +0 -17
  298. package/esm2015/slick-grid/slick-grid-column-template.directive.js +0 -19
  299. package/esm2015/slick-grid/slick-grid-sanitize.pipe.js +0 -20
  300. package/esm2015/slick-grid/slick-grid.component.js +0 -792
  301. package/esm2015/slick-grid/slick-grid.module.js +0 -38
  302. package/esm2015/slick-grid/slick-grid.service.js +0 -72
  303. package/esm2015/slick-multi-select/slick-multi-select.component.js +0 -356
  304. package/esm2015/slick-multi-select/slick-multi-select.module.js +0 -15
  305. package/esm2015/slick-multi-select/slick-multi-select.service.js +0 -74
  306. package/esm2015/slick-ordered-list/slick-ordered-list.component.js +0 -198
  307. package/esm2015/slick-ordered-list/slick-ordered-list.module.js +0 -15
  308. package/esm2015/slick-paging/slick-paging.component.js +0 -180
  309. package/esm2015/slick-paging/slick-paging.module.js +0 -14
  310. package/esm2015/slick-photo-gallery/slick-photo-gallery.component.js +0 -101
  311. package/esm2015/slick-photo-gallery/slick-photo-gallery.module.js +0 -16
  312. package/esm2015/slick-pick-list/slick-pick-list.component.js +0 -78
  313. package/esm2015/slick-pick-list/slick-pick-list.module.js +0 -15
  314. package/esm2015/slick-popover/slick-popover.component.js +0 -199
  315. package/esm2015/slick-popover/slick-popover.module.js +0 -14
  316. package/esm2015/slick-profile-picture/slick-profile-picture.component.js +0 -242
  317. package/esm2015/slick-profile-picture/slick-profile-picture.module.js +0 -15
  318. package/esm2015/slick-progress-bar/slick-progress-bar.module.js +0 -13
  319. package/esm2015/slick-progress-bar/slick-progress-bar.service.js +0 -50
  320. package/esm2015/slick-screen-blocker/slick-screen-blocker.module.js +0 -13
  321. package/esm2015/slick-screen-blocker/slick-screen-blocker.service.js +0 -80
  322. package/esm2015/slick-slider/slick-slider.component.js +0 -88
  323. package/esm2015/slick-slider/slick-slider.module.js +0 -15
  324. package/esm2015/slick-split-screen/slick-screen-split-left-content.component.js +0 -13
  325. package/esm2015/slick-split-screen/slick-screen-split-right-content.component.js +0 -13
  326. package/esm2015/slick-split-screen/slick-split-screen.component.js +0 -148
  327. package/esm2015/slick-split-screen/slick-split-screen.module.js +0 -16
  328. package/esm2015/slick-tabs/slick-tab-header.component.js +0 -25
  329. package/esm2015/slick-tabs/slick-tab.component.js +0 -67
  330. package/esm2015/slick-tabs/slick-tabs.component.js +0 -104
  331. package/esm2015/slick-tabs/slick-tabs.module.js +0 -17
  332. package/esm2015/slick-toast/slick-toast.module.js +0 -13
  333. package/esm2015/slick-toast/slick-toast.service.js +0 -91
  334. package/esm2015/slick-tree-view/slick-tree-view.component.js +0 -287
  335. package/esm2015/slick-tree-view/slick-tree-view.module.js +0 -17
  336. package/esm2015/slick-type-ahead/slick-type-ahead.directive.js +0 -155
  337. package/esm2015/slick-type-ahead/slick-type-ahead.module.js +0 -13
  338. package/esm2015/slick-validation-indicator/slick-validation-indicator.directive.js +0 -61
  339. package/esm2015/slick-validation-indicator/slick-validation-indicator.module.js +0 -14
  340. package/esm2015/utils/slick-function-lock.service.js +0 -54
  341. package/esm2015/utils/slick-init.service.js +0 -48
  342. package/esm2015/utils/slick-log.service.js +0 -27
  343. package/esm2015/utils/slick-sleep.service.js +0 -14
  344. package/esm2015/utils/slick-utils.service.js +0 -229
  345. package/fesm2015/slick-components.js.map +0 -1
  346. package/slick-components.metadata.json +0 -1
@@ -1,242 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Component, Input, Output, EventEmitter, ElementRef, ViewChild, HostListener } from "@angular/core";
3
- import { SlickUtilsService } from "../utils/slick-utils.service";
4
- const imgExtensions = ['bmp', 'gif', 'jpeg', 'jpg', 'png', 'tif', 'tiff'];
5
- export class SlickProfilePictureComponent {
6
- constructor() {
7
- this.viewOnly = false;
8
- this.width = "80px";
9
- this.height = "80px";
10
- this.resizeWidth = 600;
11
- this.resizeHeight = 600;
12
- this.filesChangedEmitter = new EventEmitter();
13
- this.fnOnFileInputChange = (e) => this.onFileInputChange(e);
14
- this.uuid = SlickUtilsService.newGuid();
15
- }
16
- onClick(e) {
17
- if (this.viewOnly === true)
18
- return;
19
- this.fileInput.nativeElement.click();
20
- this.fileInput.nativeElement.addEventListener("change", this.fnOnFileInputChange);
21
- }
22
- onFileInputChange(e) {
23
- this.processFile(this.fileInput.nativeElement.files);
24
- }
25
- onDrop(e) {
26
- if (this.viewOnly === true)
27
- return;
28
- e.preventDefault();
29
- e.stopPropagation();
30
- this.containerRef.nativeElement.classList.remove("slick-file-drop_drag-enter");
31
- this.processFile(e.dataTransfer.files);
32
- }
33
- onDragEnter(e) {
34
- if (this.viewOnly === true)
35
- return;
36
- this.containerRef.nativeElement.classList.add("slick-file-drop_drag-enter");
37
- }
38
- onDragOver(e) {
39
- if (this.viewOnly === true)
40
- return;
41
- e.preventDefault();
42
- }
43
- onDragLeave(e) {
44
- if (this.viewOnly === true)
45
- return;
46
- this.containerRef.nativeElement.classList.remove("slick-file-drop_drag-enter");
47
- }
48
- ngOnChanges(changes) {
49
- if (changes.gravatarEmailAddress) {
50
- var MD5 = function (s) { function L(k, d) { return (k << d) | (k >>> (32 - d)); } function K(G, k) { var I, d, F, H, x; F = (G & 2147483648); H = (k & 2147483648); I = (G & 1073741824); d = (k & 1073741824); x = (G & 1073741823) + (k & 1073741823); if (I & d) {
51
- return (x ^ 2147483648 ^ F ^ H);
52
- } if (I | d) {
53
- if (x & 1073741824) {
54
- return (x ^ 3221225472 ^ F ^ H);
55
- }
56
- else {
57
- return (x ^ 1073741824 ^ F ^ H);
58
- }
59
- }
60
- else {
61
- return (x ^ F ^ H);
62
- } } function r(d, F, k) { return (d & F) | ((~d) & k); } function q(d, F, k) { return (d & k) | (F & (~k)); } function p(d, F, k) { return (d ^ F ^ k); } function n(d, F, k) { return (F ^ (d | (~k))); } function u(G, F, aa, Z, k, H, I) { G = K(G, K(K(r(F, aa, Z), k), I)); return K(L(G, H), F); } function f(G, F, aa, Z, k, H, I) { G = K(G, K(K(q(F, aa, Z), k), I)); return K(L(G, H), F); } function D(G, F, aa, Z, k, H, I) { G = K(G, K(K(p(F, aa, Z), k), I)); return K(L(G, H), F); } function t(G, F, aa, Z, k, H, I) { G = K(G, K(K(n(F, aa, Z), k), I)); return K(L(G, H), F); } function e(G) { var Z; var F = G.length; var x = F + 8; var k = (x - (x % 64)) / 64; var I = (k + 1) * 16; var aa = Array(I - 1); var d = 0; var H = 0; while (H < F) {
63
- Z = (H - (H % 4)) / 4;
64
- d = (H % 4) * 8;
65
- aa[Z] = (aa[Z] | (G.charCodeAt(H) << d));
66
- H++;
67
- } Z = (H - (H % 4)) / 4; d = (H % 4) * 8; aa[Z] = aa[Z] | (128 << d); aa[I - 2] = F << 3; aa[I - 1] = F >>> 29; return aa; } function B(x) { var k = "", F = "", G, d; for (d = 0; d <= 3; d++) {
68
- G = (x >>> (d * 8)) & 255;
69
- F = "0" + G.toString(16);
70
- k = k + F.substr(F.length - 2, 2);
71
- } return k; } function J(k) { k = k.replace(/rn/g, "n"); var d = ""; for (var F = 0; F < k.length; F++) {
72
- var x = k.charCodeAt(F);
73
- if (x < 128) {
74
- d += String.fromCharCode(x);
75
- }
76
- else {
77
- if ((x > 127) && (x < 2048)) {
78
- d += String.fromCharCode((x >> 6) | 192);
79
- d += String.fromCharCode((x & 63) | 128);
80
- }
81
- else {
82
- d += String.fromCharCode((x >> 12) | 224);
83
- d += String.fromCharCode(((x >> 6) & 63) | 128);
84
- d += String.fromCharCode((x & 63) | 128);
85
- }
86
- }
87
- } return d; } var C = Array(); var P, h, E, v, g, Y, X, W, V; var S = 7, Q = 12, N = 17, M = 22; var A = 5, z = 9, y = 14, w = 20; var o = 4, m = 11, l = 16, j = 23; var U = 6, T = 10, R = 15, O = 21; s = J(s); C = e(s); Y = 1732584193; X = 4023233417; W = 2562383102; V = 271733878; for (P = 0; P < C.length; P += 16) {
88
- h = Y;
89
- E = X;
90
- v = W;
91
- g = V;
92
- Y = u(Y, X, W, V, C[P + 0], S, 3614090360);
93
- V = u(V, Y, X, W, C[P + 1], Q, 3905402710);
94
- W = u(W, V, Y, X, C[P + 2], N, 606105819);
95
- X = u(X, W, V, Y, C[P + 3], M, 3250441966);
96
- Y = u(Y, X, W, V, C[P + 4], S, 4118548399);
97
- V = u(V, Y, X, W, C[P + 5], Q, 1200080426);
98
- W = u(W, V, Y, X, C[P + 6], N, 2821735955);
99
- X = u(X, W, V, Y, C[P + 7], M, 4249261313);
100
- Y = u(Y, X, W, V, C[P + 8], S, 1770035416);
101
- V = u(V, Y, X, W, C[P + 9], Q, 2336552879);
102
- W = u(W, V, Y, X, C[P + 10], N, 4294925233);
103
- X = u(X, W, V, Y, C[P + 11], M, 2304563134);
104
- Y = u(Y, X, W, V, C[P + 12], S, 1804603682);
105
- V = u(V, Y, X, W, C[P + 13], Q, 4254626195);
106
- W = u(W, V, Y, X, C[P + 14], N, 2792965006);
107
- X = u(X, W, V, Y, C[P + 15], M, 1236535329);
108
- Y = f(Y, X, W, V, C[P + 1], A, 4129170786);
109
- V = f(V, Y, X, W, C[P + 6], z, 3225465664);
110
- W = f(W, V, Y, X, C[P + 11], y, 643717713);
111
- X = f(X, W, V, Y, C[P + 0], w, 3921069994);
112
- Y = f(Y, X, W, V, C[P + 5], A, 3593408605);
113
- V = f(V, Y, X, W, C[P + 10], z, 38016083);
114
- W = f(W, V, Y, X, C[P + 15], y, 3634488961);
115
- X = f(X, W, V, Y, C[P + 4], w, 3889429448);
116
- Y = f(Y, X, W, V, C[P + 9], A, 568446438);
117
- V = f(V, Y, X, W, C[P + 14], z, 3275163606);
118
- W = f(W, V, Y, X, C[P + 3], y, 4107603335);
119
- X = f(X, W, V, Y, C[P + 8], w, 1163531501);
120
- Y = f(Y, X, W, V, C[P + 13], A, 2850285829);
121
- V = f(V, Y, X, W, C[P + 2], z, 4243563512);
122
- W = f(W, V, Y, X, C[P + 7], y, 1735328473);
123
- X = f(X, W, V, Y, C[P + 12], w, 2368359562);
124
- Y = D(Y, X, W, V, C[P + 5], o, 4294588738);
125
- V = D(V, Y, X, W, C[P + 8], m, 2272392833);
126
- W = D(W, V, Y, X, C[P + 11], l, 1839030562);
127
- X = D(X, W, V, Y, C[P + 14], j, 4259657740);
128
- Y = D(Y, X, W, V, C[P + 1], o, 2763975236);
129
- V = D(V, Y, X, W, C[P + 4], m, 1272893353);
130
- W = D(W, V, Y, X, C[P + 7], l, 4139469664);
131
- X = D(X, W, V, Y, C[P + 10], j, 3200236656);
132
- Y = D(Y, X, W, V, C[P + 13], o, 681279174);
133
- V = D(V, Y, X, W, C[P + 0], m, 3936430074);
134
- W = D(W, V, Y, X, C[P + 3], l, 3572445317);
135
- X = D(X, W, V, Y, C[P + 6], j, 76029189);
136
- Y = D(Y, X, W, V, C[P + 9], o, 3654602809);
137
- V = D(V, Y, X, W, C[P + 12], m, 3873151461);
138
- W = D(W, V, Y, X, C[P + 15], l, 530742520);
139
- X = D(X, W, V, Y, C[P + 2], j, 3299628645);
140
- Y = t(Y, X, W, V, C[P + 0], U, 4096336452);
141
- V = t(V, Y, X, W, C[P + 7], T, 1126891415);
142
- W = t(W, V, Y, X, C[P + 14], R, 2878612391);
143
- X = t(X, W, V, Y, C[P + 5], O, 4237533241);
144
- Y = t(Y, X, W, V, C[P + 12], U, 1700485571);
145
- V = t(V, Y, X, W, C[P + 3], T, 2399980690);
146
- W = t(W, V, Y, X, C[P + 10], R, 4293915773);
147
- X = t(X, W, V, Y, C[P + 1], O, 2240044497);
148
- Y = t(Y, X, W, V, C[P + 8], U, 1873313359);
149
- V = t(V, Y, X, W, C[P + 15], T, 4264355552);
150
- W = t(W, V, Y, X, C[P + 6], R, 2734768916);
151
- X = t(X, W, V, Y, C[P + 13], O, 1309151649);
152
- Y = t(Y, X, W, V, C[P + 4], U, 4149444226);
153
- V = t(V, Y, X, W, C[P + 11], T, 3174756917);
154
- W = t(W, V, Y, X, C[P + 2], R, 718787259);
155
- X = t(X, W, V, Y, C[P + 9], O, 3951481745);
156
- Y = K(Y, h);
157
- X = K(X, E);
158
- W = K(W, v);
159
- V = K(V, g);
160
- } var i = B(Y) + B(X) + B(W) + B(V); return i.toLowerCase(); };
161
- this.gravatarEmailAddress = this.gravatarEmailAddress.trim().toLowerCase();
162
- this.imageSrc = 'http://www.gravatar.com/avatar/' + MD5(this.gravatarEmailAddress) + '.jpg?s=' + 80;
163
- }
164
- if (changes.viewOnly && changes.viewOnly.currentValue)
165
- this.viewOnly = (changes.viewOnly.currentValue.toString().toLowerCase() !== 'false');
166
- }
167
- processFile(files) {
168
- return __awaiter(this, void 0, void 0, function* () {
169
- if (files && files.length > 0) {
170
- let file = files.item(0);
171
- let fileNameParts = file.name.split('.');
172
- let ext = fileNameParts[fileNameParts.length - 1].toLowerCase();
173
- let fileType = file.type;
174
- if (imgExtensions.indexOf(ext) >= 0) {
175
- let img = new Image;
176
- img.onload = () => {
177
- this.imageSrc = this.resizeImageToBase64(img, fileType, this.resizeWidth, this.resizeHeight);
178
- if (this.filesChangedEmitter)
179
- this.filesChangedEmitter.emit(this.imageSrc);
180
- };
181
- img.src = yield this.getBase64(file);
182
- }
183
- }
184
- });
185
- }
186
- resizeImageToBase64(img, fileType, width, height) {
187
- let scale = 1;
188
- if (img.width > img.height) {
189
- if (img.width > width)
190
- scale = width / img.width;
191
- }
192
- else {
193
- if (img.height > height)
194
- scale = height / img.height;
195
- }
196
- let newWidth = img.width * scale;
197
- let newHeight = img.height * scale;
198
- // We create a canvas and get its context.
199
- var canvas = document.createElement('canvas');
200
- var ctx = canvas.getContext('2d');
201
- // We set the dimensions at the wanted size.
202
- canvas.width = newWidth;
203
- canvas.height = newHeight;
204
- // We resize the image with the canvas method drawImage();
205
- ctx.drawImage(img, 0, 0, newWidth, newHeight);
206
- return canvas.toDataURL(fileType);
207
- }
208
- getBase64(file) {
209
- return new Promise((resolve, reject) => {
210
- let reader = new FileReader();
211
- reader.readAsDataURL(file);
212
- reader.onload = () => resolve(reader.result);
213
- reader.onerror = (error) => reject('Error: ' + error);
214
- });
215
- }
216
- }
217
- SlickProfilePictureComponent.decorators = [
218
- { type: Component, args: [{
219
- selector: 'slick-profile-picture',
220
- template: "<div #containerRef id=\"slick-profile-picture_{{uuid}}\" class=\"slick-profile-picture card\" [ngClass]=\"{ 'slick-profile-picture_view-only': viewOnly === true, 'slick-profile-picture_editable': viewOnly === false }\" [ngStyle]=\"{ 'width': width, 'min-width': width, 'height': height, 'min-height': height }\">\r\n\t<div class=\"slick-profile-picture_text\" *ngIf='viewOnly === false'>Click to change...</div>\r\n\t<img class=\"slick-profile-picture_img\" *ngIf=\"imageSrc\" [src]=\"imageSrc\" [ngStyle]=\"{ 'max-width': width, 'max-height': height }\" />\r\n</div>\r\n<input type=\"file\" #fileInput style=\"display: none\" multiple />\r\n"
221
- },] }
222
- ];
223
- /** @nocollapse */
224
- SlickProfilePictureComponent.ctorParameters = () => [];
225
- SlickProfilePictureComponent.propDecorators = {
226
- imageSrc: [{ type: Input, args: ["imageSrc",] }],
227
- gravatarEmailAddress: [{ type: Input, args: ["gravatarEmailAddress",] }],
228
- viewOnly: [{ type: Input, args: ["viewOnly",] }],
229
- width: [{ type: Input, args: ["width",] }],
230
- height: [{ type: Input, args: ["height",] }],
231
- resizeWidth: [{ type: Input, args: ["resizeWidth",] }],
232
- resizeHeight: [{ type: Input, args: ["resizeHeight",] }],
233
- filesChangedEmitter: [{ type: Output, args: ["profilePictureChanged",] }],
234
- containerRef: [{ type: ViewChild, args: ["containerRef",] }],
235
- fileInput: [{ type: ViewChild, args: ["fileInput",] }],
236
- onClick: [{ type: HostListener, args: ['click', ['$event'],] }],
237
- onDrop: [{ type: HostListener, args: ['drop', ['$event'],] }],
238
- onDragEnter: [{ type: HostListener, args: ['dragenter', ['$event'],] }],
239
- onDragOver: [{ type: HostListener, args: ['dragover', ['$event'],] }],
240
- onDragLeave: [{ type: HostListener, args: ['dragleave', ['$event'],] }]
241
- };
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stcHJvZmlsZS1waWN0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLXByb2ZpbGUtcGljdHVyZS9zbGljay1wcm9maWxlLXBpY3R1cmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTRCLFlBQVksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVqRSxNQUFNLGFBQWEsR0FBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBTW5GLE1BQU0sT0FBTyw0QkFBNEI7SUFrRXhDO1FBL0RtQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzdCLFVBQUssR0FBVyxNQUFNLENBQUM7UUFDdEIsV0FBTSxHQUFXLE1BQU0sQ0FBQztRQUNuQixnQkFBVyxHQUFXLEdBQUcsQ0FBQztRQUN6QixpQkFBWSxHQUFXLEdBQUcsQ0FBQztRQUNqQix3QkFBbUIsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUl4Rix3QkFBbUIsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBdUQ5RCxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFyREQsT0FBTyxDQUFDLENBQUM7UUFDUixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSTtZQUN6QixPQUFPO1FBRVIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFjLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQW9CLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFHRCxNQUFNLENBQUMsQ0FBQztRQUNQLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJO1lBQ3pCLE9BQU87UUFFUixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUUvRSxJQUFJLENBQUMsV0FBVyxDQUFnQixDQUFDLENBQUMsWUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFHRCxXQUFXLENBQUMsQ0FBQztRQUNaLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJO1lBQ3pCLE9BQU87UUFFUixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUdELFVBQVUsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUk7WUFDekIsT0FBTztRQUVSLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBR0QsV0FBVyxDQUFDLENBQUM7UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSTtZQUN6QixPQUFPO1FBRVIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFRRCxXQUFXLENBQUMsT0FBc0I7UUFDakMsSUFBSSxPQUFPLENBQUMsb0JBQW9CLEVBQUU7WUFDakMsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQUUsT0FBTyxDQUFDLENBQUMsR0FBRyxVQUFVLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO2FBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQUUsSUFBSSxDQUFDLEdBQUcsVUFBVSxFQUFFO29CQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQUcsVUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtpQkFBRTtxQkFBTTtvQkFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLFVBQVUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7aUJBQUU7YUFBRTtpQkFBTTtnQkFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTthQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLENBQUMsRUFBRSxDQUFBO2FBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFBLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7YUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRTtvQkFBRSxDQUFDLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFBRTtxQkFBTTtvQkFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFO3dCQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO3dCQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFBO3FCQUFFO3lCQUFNO3dCQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO3dCQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7d0JBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUE7cUJBQUU7aUJBQUU7YUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7YUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBLENBQUMsQ0FBQyxDQUFDO1lBQ3ZwSyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSxDQUFDLFdB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WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIEhvc3RMaXN0ZW5lciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuXHJcbmNvbnN0IGltZ0V4dGVuc2lvbnM6IHN0cmluZ1tdID0gWydibXAnLCAnZ2lmJywgJ2pwZWcnLCAnanBnJywgJ3BuZycsICd0aWYnLCAndGlmZiddXHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3NsaWNrLXByb2ZpbGUtcGljdHVyZScsXHJcblx0dGVtcGxhdGVVcmw6ICdzbGljay1wcm9maWxlLXBpY3R1cmUuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja1Byb2ZpbGVQaWN0dXJlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHRASW5wdXQoXCJpbWFnZVNyY1wiKSBpbWFnZVNyYzogc3RyaW5nO1xyXG5cdEBJbnB1dChcImdyYXZhdGFyRW1haWxBZGRyZXNzXCIpIGdyYXZhdGFyRW1haWxBZGRyZXNzOiBzdHJpbmc7XHJcblx0QElucHV0KFwidmlld09ubHlcIikgdmlld09ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRASW5wdXQoXCJ3aWR0aFwiKSB3aWR0aDogc3RyaW5nID0gXCI4MHB4XCI7XHJcblx0QElucHV0KFwiaGVpZ2h0XCIpIGhlaWdodDogc3RyaW5nID0gXCI4MHB4XCI7XHJcblx0QElucHV0KFwicmVzaXplV2lkdGhcIikgcmVzaXplV2lkdGg6IG51bWJlciA9IDYwMDtcclxuXHRASW5wdXQoXCJyZXNpemVIZWlnaHRcIikgcmVzaXplSGVpZ2h0OiBudW1iZXIgPSA2MDA7XHJcblx0QE91dHB1dChcInByb2ZpbGVQaWN0dXJlQ2hhbmdlZFwiKSBmaWxlc0NoYW5nZWRFbWl0dGVyOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAVmlld0NoaWxkKFwiY29udGFpbmVyUmVmXCIpIGNvbnRhaW5lclJlZjogRWxlbWVudFJlZjtcclxuXHRAVmlld0NoaWxkKFwiZmlsZUlucHV0XCIpIGZpbGVJbnB1dDogRWxlbWVudFJlZjtcclxuXHJcblx0cHJpdmF0ZSBmbk9uRmlsZUlucHV0Q2hhbmdlID0gKGUpID0+IHRoaXMub25GaWxlSW5wdXRDaGFuZ2UoZSk7XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcclxuXHRvbkNsaWNrKGUpIHtcclxuXHRcdGlmICh0aGlzLnZpZXdPbmx5ID09PSB0cnVlKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0dGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG5cdFx0KDxIVE1MSW5wdXRFbGVtZW50PnRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQpLmFkZEV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgdGhpcy5mbk9uRmlsZUlucHV0Q2hhbmdlKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgb25GaWxlSW5wdXRDaGFuZ2UoZSkge1xyXG5cdFx0dGhpcy5wcm9jZXNzRmlsZSgoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudCkuZmlsZXMpO1xyXG5cdH1cclxuXHJcblx0QEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXHJcblx0b25Ecm9wKGUpIHtcclxuXHRcdGlmICh0aGlzLnZpZXdPbmx5ID09PSB0cnVlKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0ZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcblx0XHR0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJzbGljay1maWxlLWRyb3BfZHJhZy1lbnRlclwiKTtcclxuXHJcblx0XHR0aGlzLnByb2Nlc3NGaWxlKCg8RGF0YVRyYW5zZmVyPmUuZGF0YVRyYW5zZmVyKS5maWxlcyk7XHJcblx0fVxyXG5cclxuXHRASG9zdExpc3RlbmVyKCdkcmFnZW50ZXInLCBbJyRldmVudCddKVxyXG5cdG9uRHJhZ0VudGVyKGUpIHtcclxuXHRcdGlmICh0aGlzLnZpZXdPbmx5ID09PSB0cnVlKVxyXG5cdFx0XHRyZXR1cm47XHJcblxyXG5cdFx0dGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKFwic2xpY2stZmlsZS1kcm9wX2RyYWctZW50ZXJcIik7XHJcblx0fVxyXG5cclxuXHRASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pXHJcblx0b25EcmFnT3ZlcihlKSB7XHJcblx0XHRpZiAodGhpcy52aWV3T25seSA9PT0gdHJ1ZSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdGUucHJldmVudERlZmF1bHQoKTtcclxuXHR9XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXHJcblx0b25EcmFnTGVhdmUoZSkge1xyXG5cdFx0aWYgKHRoaXMudmlld09ubHkgPT09IHRydWUpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHR0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoXCJzbGljay1maWxlLWRyb3BfZHJhZy1lbnRlclwiKTtcclxuXHR9XHJcblxyXG5cdHV1aWQ6IHN0cmluZztcclxuXHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHR0aGlzLnV1aWQgPSBTbGlja1V0aWxzU2VydmljZS5uZXdHdWlkKCk7XHJcblx0fVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcblx0XHRpZiAoY2hhbmdlcy5ncmF2YXRhckVtYWlsQWRkcmVzcykge1xyXG5cdFx0XHR2YXIgTUQ1ID0gZnVuY3Rpb24gKHMpIHsgZnVuY3Rpb24gTChrLCBkKSB7IHJldHVybiAoayA8PCBkKSB8IChrID4+PiAoMzIgLSBkKSkgfSBmdW5jdGlvbiBLKEcsIGspIHsgdmFyIEksIGQsIEYsIEgsIHg7IEYgPSAoRyAmIDIxNDc0ODM2NDgpOyBIID0gKGsgJiAyMTQ3NDgzNjQ4KTsgSSA9IChHICYgMTA3Mzc0MTgyNCk7IGQgPSAoayAmIDEwNzM3NDE4MjQpOyB4ID0gKEcgJiAxMDczNzQxODIzKSArIChrICYgMTA3Mzc0MTgyMyk7IGlmIChJICYgZCkgeyByZXR1cm4gKHggXiAyMTQ3NDgzNjQ4IF4gRiBeIEgpIH0gaWYgKEkgfCBkKSB7IGlmICh4ICYgMTA3Mzc0MTgyNCkgeyByZXR1cm4gKHggXiAzMjIxMjI1NDcyIF4gRiBeIEgpIH0gZWxzZSB7IHJldHVybiAoeCBeIDEwNzM3NDE4MjQgXiBGIF4gSCkgfSB9IGVsc2UgeyByZXR1cm4gKHggXiBGIF4gSCkgfSB9IGZ1bmN0aW9uIHIoZCwgRiwgaykgeyByZXR1cm4gKGQgJiBGKSB8ICgofmQpICYgaykgfSBmdW5jdGlvbiBxKGQsIEYsIGspIHsgcmV0dXJuIChkICYgaykgfCAoRiAmICh+aykpIH0gZnVuY3Rpb24gcChkLCBGLCBrKSB7IHJldHVybiAoZCBeIEYgXiBrKSB9IGZ1bmN0aW9uIG4oZCwgRiwgaykgeyByZXR1cm4gKEYgXiAoZCB8ICh+aykpKSB9IGZ1bmN0aW9uIHUoRywgRiwgYWEsIFosIGssIEgsIEkpIHsgRyA9IEsoRywgSyhLKHIoRiwgYWEsIFopLCBrKSwgSSkpOyByZXR1cm4gSyhMKEcsIEgpLCBGKSB9IGZ1bmN0aW9uIGYoRywgRiwgYWEsIFosIGssIEgsIEkpIHsgRyA9IEsoRywgSyhLKHEoRiwgYWEsIFopLCBrKSwgSSkpOyByZXR1cm4gSyhMKEcsIEgpLCBGKSB9IGZ1bmN0aW9uIEQoRywgRiwgYWEsIFosIGssIEgsIEkpIHsgRyA9IEsoRywgSyhLKHAoRiwgYWEsIFopLCBrKSwgSSkpOyByZXR1cm4gSyhMKEcsIEgpLCBGKSB9IGZ1bmN0aW9uIHQoRywgRiwgYWEsIFosIGssIEgsIEkpIHsgRyA9IEsoRywgSyhLKG4oRiwgYWEsIFopLCBrKSwgSSkpOyByZXR1cm4gSyhMKEcsIEgpLCBGKSB9IGZ1bmN0aW9uIGUoRykgeyB2YXIgWjsgdmFyIEYgPSBHLmxlbmd0aDsgdmFyIHggPSBGICsgODsgdmFyIGsgPSAoeCAtICh4ICUgNjQpKSAvIDY0OyB2YXIgSSA9IChrICsgMSkgKiAxNjsgdmFyIGFhID0gQXJyYXkoSSAtIDEpOyB2YXIgZCA9IDA7IHZhciBIID0gMDsgd2hpbGUgKEggPCBGKSB7IFogPSAoSCAtIChIICUgNCkpIC8gNDsgZCA9IChIICUgNCkgKiA4OyBhYVtaXSA9IChhYVtaXSB8IChHLmNoYXJDb2RlQXQoSCkgPDwgZCkpOyBIKysgfSBaID0gKEggLSAoSCAlIDQpKSAvIDQ7IGQgPSAoSCAlIDQpICogODsgYWFbWl0gPSBhYVtaXSB8ICgxMjggPDwgZCk7IGFhW0kgLSAyXSA9IEYgPDwgMzsgYWFbSSAtIDFdID0gRiA+Pj4gMjk7IHJldHVybiBhYSB9IGZ1bmN0aW9uIEIoeCkgeyB2YXIgayA9IFwiXCIsIEYgPSBcIlwiLCBHLCBkOyBmb3IgKGQgPSAwOyBkIDw9IDM7IGQrKykgeyBHID0gKHggPj4+IChkICogOCkpICYgMjU1OyBGID0gXCIwXCIgKyBHLnRvU3RyaW5nKDE2KTsgayA9IGsgKyBGLnN1YnN0cihGLmxlbmd0aCAtIDIsIDIpIH0gcmV0dXJuIGsgfSBmdW5jdGlvbiBKKGspIHsgayA9IGsucmVwbGFjZSgvcm4vZywgXCJuXCIpOyB2YXIgZCA9IFwiXCI7IGZvciAodmFyIEYgPSAwOyBGIDwgay5sZW5ndGg7IEYrKykgeyB2YXIgeCA9IGsuY2hhckNvZGVBdChGKTsgaWYgKHggPCAxMjgpIHsgZCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKHgpIH0gZWxzZSB7IGlmICgoeCA+IDEyNykgJiYgKHggPCAyMDQ4KSkgeyBkICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKHggPj4gNikgfCAxOTIpOyBkICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKHggJiA2MykgfCAxMjgpIH0gZWxzZSB7IGQgKz0gU3RyaW5nLmZyb21DaGFyQ29kZSgoeCA+PiAxMikgfCAyMjQpOyBkICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoKCh4ID4+IDYpICYgNjMpIHwgMTI4KTsgZCArPSBTdHJpbmcuZnJvbUNoYXJDb2RlKCh4ICYgNjMpIHwgMTI4KSB9IH0gfSByZXR1cm4gZCB9IHZhciBDID0gQXJyYXkoKTsgdmFyIFAsIGgsIEUsIHYsIGcsIFksIFgsIFcsIFY7IHZhciBTID0gNywgUSA9IDEyLCBOID0gMTcsIE0gPSAyMjsgdmFyIEEgPSA1LCB6ID0gOSwgeSA9IDE0LCB3ID0gMjA7IHZhciBvID0gNCwgbSA9IDExLCBsID0gMTYsIGogPSAyMzsgdmFyIFUgPSA2LCBUID0gMTAsIFIgPSAxNSwgTyA9IDIxOyBzID0gSihzKTsgQyA9IGUocyk7IFkgPSAxNzMyNTg0MTkzOyBYID0gNDAyMzIzMzQxNzsgVyA9IDI1NjIzODMxMDI7IFYgPSAyNzE3MzM4Nzg7IGZvciAoUCA9IDA7IFAgPCBDLmxlbmd0aDsgUCArPSAxNikgeyBoID0gWTsgRSA9IFg7IHYgPSBXOyBnID0gVjsgWSA9IHUoWSwgWCwgVywgViwgQ1tQICsgMF0sIFMsIDM2MTQwOTAzNjApOyBWID0gdShWLCBZLCBYLCBXLCBDW1AgKyAxXSwgUSwgMzkwNTQwMjcxMCk7IFcgPSB1KFcsIFYsIFksIFgsIENbUCArIDJdLCBOLCA2MDYxMDU4MTkpOyBYID0gdShYLCBXLCBWLCBZLCBDW1AgKyAzXSwgTSwgMzI1MDQ0MTk2Nik7IFkgPSB1KFksIFgsIFcsIFYsIENbUCArIDRdLCBTLCA0MTE4NTQ4Mzk5KTsgViA9IHUoViwgWSwgWCwgVywgQ1tQICsgNV0sIFEsIDEyMDAwODA0MjYpOyBXID0gdShXLCBWLCBZLCBYLCBDW1AgKyA2XSwgTiwgMjgyMTczNTk1NSk7IFggPSB1KFgsIFcsIFYsIFksIENbUCArIDddLCBNLCA0MjQ5MjYxMzEzKTsgWSA9IHUoWSwgWCwgVywgViwgQ1tQICsgOF0sIFMsIDE3NzAwMzU0MTYpOyBWID0gdShWLCBZLCBYLCBXLCBDW1AgKyA5XSwgUSwgMjMzNjU1Mjg3OSk7IFcgPSB1KFcsIFYsIFksIFgsIENbUCArIDEwXSwgTiwgNDI5NDkyNTIzMyk7IFggPSB1KFgsIFcsIFYsIFksIENbUCArIDExXSwgTSwgMjMwNDU2MzEzNCk7IFkgPSB1KFksIFgsIFcsIFYsIENbUCArIDEyXSwgUywgMTgwNDYwMzY4Mik7IFYgPSB1KFYsIFksIFgsIFcsIENbUCArIDEzXSwgUSwgNDI1NDYyNjE5NSk7IFcgPSB1KFcsIFYsIFksIFgsIENbUCArIDE0XSwgTiwgMjc5Mjk2NTAwNik7IFggPSB1KFgsIFcsIFYsIFksIENbUCArIDE1XSwgTSwgMTIzNjUzNTMyOSk7IFkgPSBmKFksIFgsIFcsIFYsIENbUCArIDFdLCBBLCA0MTI5MTcwNzg2KTsgViA9IGYoViwgWSwgWCwgVywgQ1tQICsgNl0sIHosIDMyMjU0NjU2NjQpOyBXID0gZihXLCBWLCBZLCBYLCBDW1AgKyAxMV0sIHksIDY0MzcxNzcxMyk7IFggPSBmKFgsIFcsIFYsIFksIENbUCArIDBdLCB3LCAzOTIxMDY5OTk0KTsgWSA9IGYoWSwgWCwgVywgViwgQ1tQICsgNV0sIEEsIDM1OTM0MDg2MDUpOyBWID0gZihWLCBZLCBYLCBXLCBDW1AgKyAxMF0sIHosIDM4MDE2MDgzKTsgVyA9IGYoVywgViwgWSwgWCwgQ1tQICsgMTVdLCB5LCAzNjM0NDg4OTYxKTsgWCA9IGYoWCwgVywgViwgWSwgQ1tQICsgNF0sIHcsIDM4ODk0Mjk0NDgpOyBZID0gZihZLCBYLCBXLCBWLCBDW1AgKyA5XSwgQSwgNTY4NDQ2NDM4KTsgViA9IGYoViwgWSwgWCwgVywgQ1tQICsgMTRdLCB6LCAzMjc1MTYzNjA2KTsgVyA9IGYoVywgViwgWSwgWCwgQ1tQICsgM10sIHksIDQxMDc2MDMzMzUpOyBYID0gZihYLCBXLCBWLCBZLCBDW1AgKyA4XSwgdywgMTE2MzUzMTUwMSk7IFkgPSBmKFksIFgsIFcsIFYsIENbUCArIDEzXSwgQSwgMjg1MDI4NTgyOSk7IFYgPSBmKFYsIFksIFgsIFcsIENbUCArIDJdLCB6LCA0MjQzNTYzNTEyKTsgVyA9IGYoVywgViwgWSwgWCwgQ1tQICsgN10sIHksIDE3MzUzMjg0NzMpOyBYID0gZihYLCBXLCBWLCBZLCBDW1AgKyAxMl0sIHcsIDIzNjgzNTk1NjIpOyBZID0gRChZLCBYLCBXLCBWLCBDW1AgKyA1XSwgbywgNDI5NDU4ODczOCk7IFYgPSBEKFYsIFksIFgsIFcsIENbUCArIDhdLCBtLCAyMjcyMzkyODMzKTsgVyA9IEQoVywgViwgWSwgWCwgQ1tQICsgMTFdLCBsLCAxODM5MDMwNTYyKTsgWCA9IEQoWCwgVywgViwgWSwgQ1tQICsgMTRdLCBqLCA0MjU5NjU3NzQwKTsgWSA9IEQoWSwgWCwgVywgViwgQ1tQICsgMV0sIG8sIDI3NjM5NzUyMzYpOyBWID0gRChWLCBZLCBYLCBXLCBDW1AgKyA0XSwgbSwgMTI3Mjg5MzM1Myk7IFcgPSBEKFcsIFYsIFksIFgsIENbUCArIDddLCBsLCA0MTM5NDY5NjY0KTsgWCA9IEQoWCwgVywgViwgWSwgQ1tQICsgMTBdLCBqLCAzMjAwMjM2NjU2KTsgWSA9IEQoWSwgWCwgVywgViwgQ1tQICsgMTNdLCBvLCA2ODEyNzkxNzQpOyBWID0gRChWLCBZLCBYLCBXLCBDW1AgKyAwXSwgbSwgMzkzNjQzMDA3NCk7IFcgPSBEKFcsIFYsIFksIFgsIENbUCArIDNdLCBsLCAzNTcyNDQ1MzE3KTsgWCA9IEQoWCwgVywgViwgWSwgQ1tQICsgNl0sIGosIDc2MDI5MTg5KTsgWSA9IEQoWSwgWCwgVywgViwgQ1tQICsgOV0sIG8sIDM2NTQ2MDI4MDkpOyBWID0gRChWLCBZLCBYLCBXLCBDW1AgKyAxMl0sIG0sIDM4NzMxNTE0NjEpOyBXID0gRChXLCBWLCBZLCBYLCBDW1AgKyAxNV0sIGwsIDUzMDc0MjUyMCk7IFggPSBEKFgsIFcsIFYsIFksIENbUCArIDJdLCBqLCAzMjk5NjI4NjQ1KTsgWSA9IHQoWSwgWCwgVywgViwgQ1tQICsgMF0sIFUsIDQwOTYzMzY0NTIpOyBWID0gdChWLCBZLCBYLCBXLCBDW1AgKyA3XSwgVCwgMTEyNjg5MTQxNSk7IFcgPSB0KFcsIFYsIFksIFgsIENbUCArIDE0XSwgUiwgMjg3ODYxMjM5MSk7IFggPSB0KFgsIFcsIFYsIFksIENbUCArIDVdLCBPLCA0MjM3NTMzMjQxKTsgWSA9IHQoWSwgWCwgVywgViwgQ1tQICsgMTJdLCBVLCAxNzAwNDg1NTcxKTsgViA9IHQoViwgWSwgWCwgVywgQ1tQICsgM10sIFQsIDIzOTk5ODA2OTApOyBXID0gdChXLCBWLCBZLCBYLCBDW1AgKyAxMF0sIFIsIDQyOTM5MTU3NzMpOyBYID0gdChYLCBXLCBWLCBZLCBDW1AgKyAxXSwgTywgMjI0MDA0NDQ5Nyk7IFkgPSB0KFksIFgsIFcsIFYsIENbUCArIDhdLCBVLCAxODczMzEzMzU5KTsgViA9IHQoViwgWSwgWCwgVywgQ1tQICsgMTVdLCBULCA0MjY0MzU1NTUyKTsgVyA9IHQoVywgViwgWSwgWCwgQ1tQICsgNl0sIFIsIDI3MzQ3Njg5MTYpOyBYID0gdChYLCBXLCBWLCBZLCBDW1AgKyAxM10sIE8sIDEzMDkxNTE2NDkpOyBZID0gdChZLCBYLCBXLCBWLCBDW1AgKyA0XSwgVSwgNDE0OTQ0NDIyNik7IFYgPSB0KFYsIFksIFgsIFcsIENbUCArIDExXSwgVCwgMzE3NDc1NjkxNyk7IFcgPSB0KFcsIFYsIFksIFgsIENbUCArIDJdLCBSLCA3MTg3ODcyNTkpOyBYID0gdChYLCBXLCBWLCBZLCBDW1AgKyA5XSwgTywgMzk1MTQ4MTc0NSk7IFkgPSBLKFksIGgpOyBYID0gSyhYLCBFKTsgVyA9IEsoVywgdik7IFYgPSBLKFYsIGcpIH0gdmFyIGkgPSBCKFkpICsgQihYKSArIEIoVykgKyBCKFYpOyByZXR1cm4gaS50b0xvd2VyQ2FzZSgpIH07XHJcblx0XHRcdHRoaXMuZ3JhdmF0YXJFbWFpbEFkZHJlc3MgPSB0aGlzLmdyYXZhdGFyRW1haWxBZGRyZXNzLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG5cdFx0XHR0aGlzLmltYWdlU3JjID0gJ2h0dHA6Ly93d3cuZ3JhdmF0YXIuY29tL2F2YXRhci8nICsgTUQ1KHRoaXMuZ3JhdmF0YXJFbWFpbEFkZHJlc3MpICsgJy5qcGc/cz0nICsgODA7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGNoYW5nZXMudmlld09ubHkgJiYgY2hhbmdlcy52aWV3T25seS5jdXJyZW50VmFsdWUpXHJcblx0XHRcdHRoaXMudmlld09ubHkgPSAoY2hhbmdlcy52aWV3T25seS5jdXJyZW50VmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpICE9PSAnZmFsc2UnKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYXN5bmMgcHJvY2Vzc0ZpbGUoZmlsZXM6IEZpbGVMaXN0KSB7XHJcblx0XHRpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRsZXQgZmlsZTogRmlsZSA9IGZpbGVzLml0ZW0oMCk7XHJcblxyXG5cdFx0XHRsZXQgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpO1xyXG5cdFx0XHRsZXQgZXh0ID0gZmlsZU5hbWVQYXJ0c1tmaWxlTmFtZVBhcnRzLmxlbmd0aCAtIDFdLnRvTG93ZXJDYXNlKCk7XHJcblx0XHRcdGxldCBmaWxlVHlwZSA9IGZpbGUudHlwZTtcclxuXHJcblx0XHRcdGlmIChpbWdFeHRlbnNpb25zLmluZGV4T2YoZXh0KSA+PSAwKSB7XHJcblx0XHRcdFx0bGV0IGltZyA9IG5ldyBJbWFnZTtcclxuXHRcdFx0XHRpbWcub25sb2FkID0gKCkgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5pbWFnZVNyYyA9IHRoaXMucmVzaXplSW1hZ2VUb0Jhc2U2NChpbWcsIGZpbGVUeXBlLCB0aGlzLnJlc2l6ZVdpZHRoLCB0aGlzLnJlc2l6ZUhlaWdodCk7XHJcblx0XHRcdFx0XHRpZiAodGhpcy5maWxlc0NoYW5nZWRFbWl0dGVyKVxyXG5cdFx0XHRcdFx0XHR0aGlzLmZpbGVzQ2hhbmdlZEVtaXR0ZXIuZW1pdCh0aGlzLmltYWdlU3JjKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aW1nLnNyYyA9IGF3YWl0IHRoaXMuZ2V0QmFzZTY0KGZpbGUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSByZXNpemVJbWFnZVRvQmFzZTY0KGltZzogSFRNTEltYWdlRWxlbWVudCwgZmlsZVR5cGU6IHN0cmluZywgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpOiBzdHJpbmcge1xyXG5cdFx0bGV0IHNjYWxlOiBudW1iZXIgPSAxO1xyXG5cdFx0aWYgKGltZy53aWR0aCA+IGltZy5oZWlnaHQpIHtcclxuXHRcdFx0aWYgKGltZy53aWR0aCA+IHdpZHRoKVxyXG5cdFx0XHRcdHNjYWxlID0gd2lkdGggLyBpbWcud2lkdGg7XHJcblx0XHR9XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0aWYgKGltZy5oZWlnaHQgPiBoZWlnaHQpXHJcblx0XHRcdFx0c2NhbGUgPSBoZWlnaHQgLyBpbWcuaGVpZ2h0O1xyXG5cdFx0fVxyXG5cclxuXHRcdGxldCBuZXdXaWR0aCA9IGltZy53aWR0aCAqIHNjYWxlO1xyXG5cdFx0bGV0IG5ld0hlaWdodCA9IGltZy5oZWlnaHQgKiBzY2FsZTtcclxuXHJcblx0XHQvLyBXZSBjcmVhdGUgYSBjYW52YXMgYW5kIGdldCBpdHMgY29udGV4dC5cclxuXHRcdHZhciBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuXHRcdHZhciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuXHJcblx0XHQvLyBXZSBzZXQgdGhlIGRpbWVuc2lvbnMgYXQgdGhlIHdhbnRlZCBzaXplLlxyXG5cdFx0Y2FudmFzLndpZHRoID0gbmV3V2lkdGg7XHJcblx0XHRjYW52YXMuaGVpZ2h0ID0gbmV3SGVpZ2h0O1xyXG5cclxuXHRcdC8vIFdlIHJlc2l6ZSB0aGUgaW1hZ2Ugd2l0aCB0aGUgY2FudmFzIG1ldGhvZCBkcmF3SW1hZ2UoKTtcclxuXHRcdGN0eC5kcmF3SW1hZ2UoaW1nLCAwLCAwLCBuZXdXaWR0aCwgbmV3SGVpZ2h0KTtcclxuXHJcblx0XHRyZXR1cm4gY2FudmFzLnRvRGF0YVVSTChmaWxlVHlwZSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGdldEJhc2U2NChmaWxlOiBGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0bGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcblx0XHRcdHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG5cdFx0XHRyZWFkZXIub25sb2FkID0gKCkgPT4gcmVzb2x2ZSg8c3RyaW5nPnJlYWRlci5yZXN1bHQpO1xyXG5cdFx0XHRyZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4gcmVqZWN0KCdFcnJvcjogJyArIGVycm9yKTtcclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -1,15 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from "@angular/core";
3
- import { FormsModule } from "@angular/forms";
4
- import { SlickProfilePictureComponent } from "./slick-profile-picture.component";
5
- export class SlickProfilePictureModule {
6
- }
7
- SlickProfilePictureModule.decorators = [
8
- { type: NgModule, args: [{
9
- imports: [CommonModule, FormsModule],
10
- declarations: [SlickProfilePictureComponent],
11
- exports: [CommonModule, FormsModule, SlickProfilePictureComponent]
12
- },] }
13
- ];
14
- export { SlickProfilePictureComponent };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stcHJvZmlsZS1waWN0dXJlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLXByb2ZpbGUtcGljdHVyZS9zbGljay1wcm9maWxlLXBpY3R1cmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU9qRixNQUFNLE9BQU8seUJBQXlCOzs7WUFMckMsUUFBUSxTQUFDO2dCQUNULE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUM7Z0JBQ3BDLFlBQVksRUFBRSxDQUFDLDRCQUE0QixDQUFDO2dCQUM1QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLDRCQUE0QixDQUFDO2FBQ2xFOztBQUVELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTbGlja1Byb2ZpbGVQaWN0dXJlQ29tcG9uZW50IH0gZnJvbSBcIi4vc2xpY2stcHJvZmlsZS1waWN0dXJlLmNvbXBvbmVudFwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXHJcblx0ZGVjbGFyYXRpb25zOiBbU2xpY2tQcm9maWxlUGljdHVyZUNvbXBvbmVudF0sXHJcblx0ZXhwb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFNsaWNrUHJvZmlsZVBpY3R1cmVDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja1Byb2ZpbGVQaWN0dXJlTW9kdWxlIHsgfVxyXG5leHBvcnQgeyBTbGlja1Byb2ZpbGVQaWN0dXJlQ29tcG9uZW50IH1cclxuIl19
@@ -1,13 +0,0 @@
1
- import { NgModule } from "@angular/core";
2
- import { RouterModule } from "@angular/router";
3
- import { SlickProgressBarService } from "./slick-progress-bar.service";
4
- export class SlickProgressBarModule {
5
- }
6
- SlickProgressBarModule.decorators = [
7
- { type: NgModule, args: [{
8
- imports: [RouterModule],
9
- providers: [SlickProgressBarService]
10
- },] }
11
- ];
12
- export { SlickProgressBarService };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stcHJvZ3Jlc3MtYmFyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLXByb2dyZXNzLWJhci9zbGljay1wcm9ncmVzcy1iYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBTXZFLE1BQU0sT0FBTyxzQkFBc0I7OztZQUpsQyxRQUFRLFNBQUM7Z0JBQ1QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzthQUNwQzs7QUFHRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBTbGlja1Byb2dyZXNzQmFyU2VydmljZSB9IGZyb20gXCIuL3NsaWNrLXByb2dyZXNzLWJhci5zZXJ2aWNlXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxyXG5cdHByb3ZpZGVyczogW1NsaWNrUHJvZ3Jlc3NCYXJTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tQcm9ncmVzc0Jhck1vZHVsZSB7IH1cclxuXHJcbmV4cG9ydCB7IFNsaWNrUHJvZ3Jlc3NCYXJTZXJ2aWNlIH0iXX0=
@@ -1,50 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- export class SlickProgressBarService {
3
- constructor() {
4
- this.isVisible = false;
5
- this.progressPercent = 0;
6
- }
7
- setProgress(progressPercent, message) {
8
- if (progressPercent < 1)
9
- progressPercent *= 100;
10
- this.progressPercent = progressPercent;
11
- this.progressBarDiv.style.width = (progressPercent + "%");
12
- this.progressBarTextDiv.innerHTML = message;
13
- }
14
- show(initialPercent = 0) {
15
- this.progressPercent = initialPercent;
16
- this.isVisible = false;
17
- let screenBlockerDiv = document.getElementById("slick-progress-bar-screen-blocker");
18
- if (!screenBlockerDiv) {
19
- screenBlockerDiv = document.createElement("div");
20
- screenBlockerDiv.id = "slick-progress-bar-screen-blocker";
21
- screenBlockerDiv.classList.add('slick-progress-bar-screen-blocker');
22
- document.body.appendChild(screenBlockerDiv);
23
- }
24
- const progressDiv = document.createElement("div");
25
- progressDiv.classList.add('progress');
26
- progressDiv.classList.add('slick-progress-bar');
27
- progressDiv.classList.add('bg-dark');
28
- this.progressBarDiv = document.createElement("div");
29
- this.progressBarDiv.classList.add('progress-bar');
30
- this.progressBarDiv.classList.add('bg-primary');
31
- this.progressBarDiv.style.width = "0";
32
- progressDiv.append(this.progressBarDiv);
33
- this.progressBarTextDiv = document.createElement("div");
34
- this.progressBarTextDiv.classList.add('progress-bar-text');
35
- this.progressBarTextDiv.classList.add('text-white');
36
- progressDiv.append(this.progressBarTextDiv);
37
- screenBlockerDiv.append(progressDiv);
38
- screenBlockerDiv.classList.add('visible');
39
- }
40
- hide() {
41
- this.isVisible = false;
42
- const screenBlockerDiv = document.getElementById("slick-progress-bar-screen-blocker");
43
- if (screenBlockerDiv)
44
- screenBlockerDiv.remove();
45
- }
46
- }
47
- SlickProgressBarService.decorators = [
48
- { type: Injectable }
49
- ];
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stcHJvZ3Jlc3MtYmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1wcm9ncmVzcy1iYXIvc2xpY2stcHJvZ3Jlc3MtYmFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBRVMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixvQkFBZSxHQUFXLENBQUMsQ0FBQztJQXVEckMsQ0FBQztJQW5EQSxXQUFXLENBQUMsZUFBdUIsRUFBRSxPQUFlO1FBQ25ELElBQUksZUFBZSxHQUFHLENBQUM7WUFDdEIsZUFBZSxJQUFJLEdBQUcsQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUV2QyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksQ0FBQyxpQkFBeUIsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUV0QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLGdCQUFnQixHQUFvQyxRQUFRLENBQUMsY0FBYyxDQUFDLG1DQUFtQyxDQUFFLENBQUM7UUFDdEgsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3RCLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakQsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLG1DQUFtQyxDQUFDO1lBQzFELGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsbUNBQW1DLENBQUMsQ0FBQztZQUVwRSxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ2hELFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXJDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDdEMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRTVDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVyQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJO1FBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdkIsTUFBTSxnQkFBZ0IsR0FBb0MsUUFBUSxDQUFDLGNBQWMsQ0FBQyxtQ0FBbUMsQ0FBRSxDQUFDO1FBQ3hILElBQUksZ0JBQWdCO1lBQ25CLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzVCLENBQUM7OztZQXhERCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTbGlja1Byb2dyZXNzQmFyU2VydmljZSB7XHJcblx0cHJpdmF0ZSBpc1Zpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHRwcml2YXRlIHByb2dyZXNzUGVyY2VudDogbnVtYmVyID0gMDtcclxuXHRwcml2YXRlIHByb2dyZXNzQmFyVGV4dERpdjogSFRNTERpdkVsZW1lbnQ7XHJcblx0cHJpdmF0ZSBwcm9ncmVzc0JhckRpdjogSFRNTERpdkVsZW1lbnQ7XHJcblxyXG5cdHNldFByb2dyZXNzKHByb2dyZXNzUGVyY2VudDogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcpIHtcclxuXHRcdGlmIChwcm9ncmVzc1BlcmNlbnQgPCAxKVxyXG5cdFx0XHRwcm9ncmVzc1BlcmNlbnQgKj0gMTAwO1xyXG5cdFx0dGhpcy5wcm9ncmVzc1BlcmNlbnQgPSBwcm9ncmVzc1BlcmNlbnQ7XHJcblxyXG5cdFx0dGhpcy5wcm9ncmVzc0JhckRpdi5zdHlsZS53aWR0aCA9IChwcm9ncmVzc1BlcmNlbnQgKyBcIiVcIik7XHJcblx0XHR0aGlzLnByb2dyZXNzQmFyVGV4dERpdi5pbm5lckhUTUwgPSBtZXNzYWdlO1xyXG5cdH1cclxuXHJcblx0c2hvdyhpbml0aWFsUGVyY2VudDogbnVtYmVyID0gMCkge1xyXG5cdFx0dGhpcy5wcm9ncmVzc1BlcmNlbnQgPSBpbml0aWFsUGVyY2VudDtcclxuXHJcblx0XHR0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0bGV0IHNjcmVlbkJsb2NrZXJEaXY6IEhUTUxEaXZFbGVtZW50ID0gKDxIVE1MRGl2RWxlbWVudD5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNsaWNrLXByb2dyZXNzLWJhci1zY3JlZW4tYmxvY2tlclwiKSk7XHJcblx0XHRpZiAoIXNjcmVlbkJsb2NrZXJEaXYpIHtcclxuXHRcdFx0c2NyZWVuQmxvY2tlckRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcblx0XHRcdHNjcmVlbkJsb2NrZXJEaXYuaWQgPSBcInNsaWNrLXByb2dyZXNzLWJhci1zY3JlZW4tYmxvY2tlclwiO1xyXG5cdFx0XHRzY3JlZW5CbG9ja2VyRGl2LmNsYXNzTGlzdC5hZGQoJ3NsaWNrLXByb2dyZXNzLWJhci1zY3JlZW4tYmxvY2tlcicpO1xyXG5cclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JlZW5CbG9ja2VyRGl2KTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBwcm9ncmVzc0RpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcblx0XHRwcm9ncmVzc0Rpdi5jbGFzc0xpc3QuYWRkKCdwcm9ncmVzcycpO1xyXG5cdFx0cHJvZ3Jlc3NEaXYuY2xhc3NMaXN0LmFkZCgnc2xpY2stcHJvZ3Jlc3MtYmFyJyk7XHJcblx0XHRwcm9ncmVzc0Rpdi5jbGFzc0xpc3QuYWRkKCdiZy1kYXJrJyk7XHJcblx0XHRcclxuXHRcdHRoaXMucHJvZ3Jlc3NCYXJEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG5cdFx0dGhpcy5wcm9ncmVzc0JhckRpdi5jbGFzc0xpc3QuYWRkKCdwcm9ncmVzcy1iYXInKTtcclxuXHRcdHRoaXMucHJvZ3Jlc3NCYXJEaXYuY2xhc3NMaXN0LmFkZCgnYmctcHJpbWFyeScpO1xyXG5cdFx0dGhpcy5wcm9ncmVzc0JhckRpdi5zdHlsZS53aWR0aCA9IFwiMFwiO1xyXG5cdFx0cHJvZ3Jlc3NEaXYuYXBwZW5kKHRoaXMucHJvZ3Jlc3NCYXJEaXYpO1xyXG5cclxuXHRcdHRoaXMucHJvZ3Jlc3NCYXJUZXh0RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuXHRcdHRoaXMucHJvZ3Jlc3NCYXJUZXh0RGl2LmNsYXNzTGlzdC5hZGQoJ3Byb2dyZXNzLWJhci10ZXh0Jyk7XHJcblx0XHR0aGlzLnByb2dyZXNzQmFyVGV4dERpdi5jbGFzc0xpc3QuYWRkKCd0ZXh0LXdoaXRlJyk7XHJcblx0XHRwcm9ncmVzc0Rpdi5hcHBlbmQodGhpcy5wcm9ncmVzc0JhclRleHREaXYpO1xyXG5cclxuXHRcdHNjcmVlbkJsb2NrZXJEaXYuYXBwZW5kKHByb2dyZXNzRGl2KTtcclxuXHJcblx0XHRzY3JlZW5CbG9ja2VyRGl2LmNsYXNzTGlzdC5hZGQoJ3Zpc2libGUnKTtcclxuXHR9XHJcblxyXG5cdGhpZGUoKSB7XHJcblx0XHR0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuXHRcdGNvbnN0IHNjcmVlbkJsb2NrZXJEaXY6IEhUTUxEaXZFbGVtZW50ID0gKDxIVE1MRGl2RWxlbWVudD5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcInNsaWNrLXByb2dyZXNzLWJhci1zY3JlZW4tYmxvY2tlclwiKSk7XHJcblx0XHRpZiAoc2NyZWVuQmxvY2tlckRpdilcclxuXHRcdFx0c2NyZWVuQmxvY2tlckRpdi5yZW1vdmUoKTtcclxuXHR9XHJcblxyXG59Il19
@@ -1,13 +0,0 @@
1
- import { NgModule } from "@angular/core";
2
- import { CommonModule } from "@angular/common";
3
- import { SlickScreenBlockerService } from "./slick-screen-blocker.service";
4
- export class SlickScreenBlockerModule {
5
- }
6
- SlickScreenBlockerModule.decorators = [
7
- { type: NgModule, args: [{
8
- imports: [CommonModule],
9
- providers: [SlickScreenBlockerService]
10
- },] }
11
- ];
12
- export { SlickScreenBlockerService };
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stc2NyZWVuLWJsb2NrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stc2NyZWVuLWJsb2NrZXIvc2xpY2stc2NyZWVuLWJsb2NrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBTTNFLE1BQU0sT0FBTyx3QkFBd0I7OztZQUpwQyxRQUFRLFNBQUM7Z0JBQ1QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2dCQUN2QixTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQzthQUN0Qzs7QUFHRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBTbGlja1NjcmVlbkJsb2NrZXJTZXJ2aWNlIH0gZnJvbSBcIi4vc2xpY2stc2NyZWVuLWJsb2NrZXIuc2VydmljZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuXHRwcm92aWRlcnM6IFtTbGlja1NjcmVlbkJsb2NrZXJTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2xpY2tTY3JlZW5CbG9ja2VyTW9kdWxlIHsgfVxyXG5cclxuZXhwb3J0IHsgU2xpY2tTY3JlZW5CbG9ja2VyU2VydmljZSB9XHJcbiJdfQ==
@@ -1,80 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- export class SlickScreenBlockerService {
3
- constructor() {
4
- this.isVisible = false;
5
- this.forceBlockActive = false;
6
- }
7
- block(delay = 350) {
8
- if (this.forceBlockActive === true)
9
- return;
10
- SlickScreenBlockerService.blockCount++;
11
- if (!SlickScreenBlockerService.preShowTimeout) {
12
- SlickScreenBlockerService.preShowTimeout = setTimeout(() => {
13
- this.show();
14
- clearTimeout(SlickScreenBlockerService.blockTimeout);
15
- SlickScreenBlockerService.blockTimeout = setTimeout(() => {
16
- SlickScreenBlockerService.blockCount = 0;
17
- this.isVisible = false;
18
- this.hide();
19
- }, 20000);
20
- }, delay);
21
- }
22
- else {
23
- clearTimeout(SlickScreenBlockerService.blockTimeout);
24
- SlickScreenBlockerService.blockTimeout = setTimeout(() => {
25
- SlickScreenBlockerService.blockCount = 0;
26
- this.isVisible = false;
27
- this.hide();
28
- }, 20000);
29
- }
30
- }
31
- unblock() {
32
- if (this.forceBlockActive === true)
33
- return;
34
- SlickScreenBlockerService.blockCount--;
35
- if (SlickScreenBlockerService.blockCount <= 0) {
36
- SlickScreenBlockerService.blockCount = 0;
37
- clearTimeout(SlickScreenBlockerService.preShowTimeout);
38
- SlickScreenBlockerService.preShowTimeout = null;
39
- clearTimeout(SlickScreenBlockerService.blockTimeout);
40
- this.isVisible = false;
41
- this.hide();
42
- }
43
- }
44
- forceBlock() {
45
- clearTimeout(SlickScreenBlockerService.blockTimeout);
46
- this.forceBlockActive = true;
47
- this.isVisible = true;
48
- this.show();
49
- }
50
- forceUnblock() {
51
- clearTimeout(SlickScreenBlockerService.blockTimeout);
52
- SlickScreenBlockerService.blockCount = 0;
53
- this.forceBlockActive = false;
54
- this.isVisible = false;
55
- this.hide();
56
- }
57
- show() {
58
- let screenBlockerDiv = document.getElementById("slick-screen-blocker");
59
- if (!screenBlockerDiv) {
60
- screenBlockerDiv = document.createElement("div");
61
- screenBlockerDiv.id = "slick-screen-blocker";
62
- screenBlockerDiv.classList.add('slick-screen-blocker');
63
- screenBlockerDiv.innerHTML = `<div class='slick-screen-blocker_spinner'></div>`;
64
- document.body.appendChild(screenBlockerDiv);
65
- }
66
- screenBlockerDiv.classList.add('visible');
67
- }
68
- hide() {
69
- let screenBlockerDiv = document.getElementById("slick-screen-blocker");
70
- if (screenBlockerDiv)
71
- screenBlockerDiv.classList.remove('visible');
72
- }
73
- }
74
- SlickScreenBlockerService.blockCount = 0;
75
- SlickScreenBlockerService.preShowTimeout = null;
76
- SlickScreenBlockerService.blockTimeout = null;
77
- SlickScreenBlockerService.decorators = [
78
- { type: Injectable }
79
- ];
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stc2NyZWVuLWJsb2NrZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3NsaWNrLXNjcmVlbi1ibG9ja2VyL3NsaWNrLXNjcmVlbi1ibG9ja2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxNQUFNLE9BQU8seUJBQXlCO0lBRHRDO1FBRUMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixxQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFxRm5DLENBQUM7SUEvRUEsS0FBSyxDQUFDLFFBQWdCLEdBQUc7UUFDeEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSTtZQUNqQyxPQUFPO1FBRVIseUJBQXlCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFdkMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGNBQWMsRUFBRTtZQUM5Qyx5QkFBeUIsQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDMUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUVaLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDckQseUJBQXlCLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ3hELHlCQUF5QixDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7b0JBQ3pDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO29CQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2IsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ1Y7YUFDSTtZQUNKLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNyRCx5QkFBeUIsQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDeEQseUJBQXlCLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNiLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNWO0lBQ0YsQ0FBQztJQUVELE9BQU87UUFDTixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJO1lBQ2pDLE9BQU87UUFFUix5QkFBeUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUV2QyxJQUFJLHlCQUF5QixDQUFDLFVBQVUsSUFBSSxDQUFDLEVBQUU7WUFDOUMseUJBQXlCLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUN6QyxZQUFZLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdkQseUJBQXlCLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztZQUNoRCxZQUFZLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ1o7SUFDRixDQUFDO0lBRUQsVUFBVTtRQUNULFlBQVksQ0FBQyx5QkFBeUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFFRCxZQUFZO1FBQ1gsWUFBWSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JELHlCQUF5QixDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDYixDQUFDO0lBRU8sSUFBSTtRQUNYLElBQUksZ0JBQWdCLEdBQW9DLFFBQVEsQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUUsQ0FBQztRQUN6RyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdEIsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRCxnQkFBZ0IsQ0FBQyxFQUFFLEdBQUcsc0JBQXNCLENBQUM7WUFDN0MsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ3ZELGdCQUFnQixDQUFDLFNBQVMsR0FBRyxrREFBa0QsQ0FBQztZQUVoRixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8sSUFBSTtRQUNYLElBQUksZ0JBQWdCLEdBQW9DLFFBQVEsQ0FBQyxjQUFjLENBQUMsc0JBQXNCLENBQUUsQ0FBQztRQUN6RyxJQUFJLGdCQUFnQjtZQUNuQixnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7O0FBakZjLG9DQUFVLEdBQVcsQ0FBQyxDQUFDO0FBQ3ZCLHdDQUFjLEdBQWlCLElBQUksQ0FBQztBQUNwQyxzQ0FBWSxHQUFpQixJQUFJLENBQUM7O1lBUGpELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNsaWNrU2NyZWVuQmxvY2tlclNlcnZpY2Uge1xyXG5cdGlzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cdGZvcmNlQmxvY2tBY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0cHJpdmF0ZSBzdGF0aWMgYmxvY2tDb3VudDogbnVtYmVyID0gMDtcclxuXHRwcml2YXRlIHN0YXRpYyBwcmVTaG93VGltZW91dDogTm9kZUpTLlRpbWVyID0gbnVsbDtcclxuXHRwcml2YXRlIHN0YXRpYyBibG9ja1RpbWVvdXQ6IE5vZGVKUy5UaW1lciA9IG51bGw7XHJcblxyXG5cdGJsb2NrKGRlbGF5OiBudW1iZXIgPSAzNTApIHtcclxuXHRcdGlmICh0aGlzLmZvcmNlQmxvY2tBY3RpdmUgPT09IHRydWUpXHJcblx0XHRcdHJldHVybjtcclxuXHJcblx0XHRTbGlja1NjcmVlbkJsb2NrZXJTZXJ2aWNlLmJsb2NrQ291bnQrKztcclxuXHJcblx0XHRpZiAoIVNsaWNrU2NyZWVuQmxvY2tlclNlcnZpY2UucHJlU2hvd1RpbWVvdXQpIHtcclxuXHRcdFx0U2xpY2tTY3JlZW5CbG9ja2VyU2VydmljZS5wcmVTaG93VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc2hvdygpO1xyXG5cclxuXHRcdFx0XHRjbGVhclRpbWVvdXQoU2xpY2tTY3JlZW5CbG9ja2VyU2VydmljZS5ibG9ja1RpbWVvdXQpO1xyXG5cdFx0XHRcdFNsaWNrU2NyZWVuQmxvY2tlclNlcnZpY2UuYmxvY2tUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0XHRTbGlja1NjcmVlbkJsb2NrZXJTZXJ2aWNlLmJsb2NrQ291bnQgPSAwO1xyXG5cdFx0XHRcdFx0dGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcclxuXHRcdFx0XHRcdHRoaXMuaGlkZSgpO1xyXG5cdFx0XHRcdH0sIDIwMDAwKTtcclxuXHRcdFx0fSwgZGVsYXkpO1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdGNsZWFyVGltZW91dChTbGlja1NjcmVlbkJsb2NrZXJTZXJ2aWNlLmJsb2NrVGltZW91dCk7XHJcblx0XHRcdFNsaWNrU2NyZWVuQmxvY2tlclNlcnZpY2UuYmxvY2tUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdFx0U2xpY2tTY3JlZW5CbG9ja2VyU2VydmljZS5ibG9ja0NvdW50ID0gMDtcclxuXHRcdFx0XHR0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0XHRcdHRoaXMuaGlkZSgpO1xyXG5cdFx0XHR9LCAyMDAwMCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHR1bmJsb2NrKCkge1xyXG5cdFx0aWYgKHRoaXMuZm9yY2VCbG9ja0FjdGl2ZSA9PT0gdHJ1ZSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdFNsaWNrU2NyZWVuQmxvY2tlclNlcnZpY2UuYmxvY2tDb3VudC0tO1xyXG5cclxuXHRcdGlmIChTbGlja1NjcmVlbkJsb2NrZXJTZXJ2aWNlLmJsb2NrQ291bnQgPD0gMCkge1xyXG5cdFx0XHRTbGlja1NjcmVlbkJsb2NrZXJTZXJ2aWNlLmJsb2NrQ291bnQgPSAwO1xyXG5cdFx0XHRjbGVhclRpbWVvdXQoU2xpY2tTY3JlZW5CbG9ja2VyU2VydmljZS5wcmVTaG93VGltZW91dCk7XHJcblx0XHRcdFNsaWNrU2NyZWVuQmxvY2tlclNlcnZpY2UucHJlU2hvd1RpbWVvdXQgPSBudWxsO1xyXG5cdFx0XHRjbGVhclRpbWVvdXQoU2xpY2tTY3JlZW5CbG9ja2VyU2VydmljZS5ibG9ja1RpbWVvdXQpO1xyXG5cdFx0XHR0aGlzLmlzVmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0XHR0aGlzLmhpZGUoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGZvcmNlQmxvY2soKSB7XHJcblx0XHRjbGVhclRpbWVvdXQoU2xpY2tTY3JlZW5CbG9ja2VyU2VydmljZS5ibG9ja1RpbWVvdXQpO1xyXG5cdFx0dGhpcy5mb3JjZUJsb2NrQWN0aXZlID0gdHJ1ZTtcclxuXHRcdHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcclxuXHRcdHRoaXMuc2hvdygpO1xyXG5cdH1cclxuXHJcblx0Zm9yY2VVbmJsb2NrKCkge1xyXG5cdFx0Y2xlYXJUaW1lb3V0KFNsaWNrU2NyZWVuQmxvY2tlclNlcnZpY2UuYmxvY2tUaW1lb3V0KTtcclxuXHRcdFNsaWNrU2NyZWVuQmxvY2tlclNlcnZpY2UuYmxvY2tDb3VudCA9IDA7XHJcblx0XHR0aGlzLmZvcmNlQmxvY2tBY3RpdmUgPSBmYWxzZTtcclxuXHRcdHRoaXMuaXNWaXNpYmxlID0gZmFsc2U7XHJcblx0XHR0aGlzLmhpZGUoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2hvdygpIHtcclxuXHRcdGxldCBzY3JlZW5CbG9ja2VyRGl2OiBIVE1MRGl2RWxlbWVudCA9ICg8SFRNTERpdkVsZW1lbnQ+ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJzbGljay1zY3JlZW4tYmxvY2tlclwiKSk7XHJcblx0XHRpZiAoIXNjcmVlbkJsb2NrZXJEaXYpIHtcclxuXHRcdFx0c2NyZWVuQmxvY2tlckRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcblx0XHRcdHNjcmVlbkJsb2NrZXJEaXYuaWQgPSBcInNsaWNrLXNjcmVlbi1ibG9ja2VyXCI7XHJcblx0XHRcdHNjcmVlbkJsb2NrZXJEaXYuY2xhc3NMaXN0LmFkZCgnc2xpY2stc2NyZWVuLWJsb2NrZXInKTtcclxuXHRcdFx0c2NyZWVuQmxvY2tlckRpdi5pbm5lckhUTUwgPSBgPGRpdiBjbGFzcz0nc2xpY2stc2NyZWVuLWJsb2NrZXJfc3Bpbm5lcic+PC9kaXY+YDtcclxuXHJcblx0XHRcdGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyZWVuQmxvY2tlckRpdik7XHJcblx0XHR9XHJcblxyXG5cdFx0c2NyZWVuQmxvY2tlckRpdi5jbGFzc0xpc3QuYWRkKCd2aXNpYmxlJyk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGhpZGUoKSB7XHJcblx0XHRsZXQgc2NyZWVuQmxvY2tlckRpdjogSFRNTERpdkVsZW1lbnQgPSAoPEhUTUxEaXZFbGVtZW50PmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic2xpY2stc2NyZWVuLWJsb2NrZXJcIikpO1xyXG5cdFx0aWYgKHNjcmVlbkJsb2NrZXJEaXYpXHJcblx0XHRcdHNjcmVlbkJsb2NrZXJEaXYuY2xhc3NMaXN0LnJlbW92ZSgndmlzaWJsZScpO1xyXG5cdH1cclxuXHJcbn0iXX0=