@bizdoc/core 3.0.7 → 3.2.3

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 (653) hide show
  1. package/assets/themes/brown.min.css +1 -1
  2. package/assets/themes/dark.min.css +1 -1
  3. package/assets/themes/deep-purple-light-blue.min.css +1 -1
  4. package/assets/themes/deep-purple-teal.min.css +1 -1
  5. package/assets/themes/default.min.css +26 -16
  6. package/assets/themes/green.min.css +1 -1
  7. package/assets/themes/indigo-amber.min.css +1 -1
  8. package/assets/themes/indigo.min.css +1 -1
  9. package/esm2022/bizdoc-core.mjs +1 -1
  10. package/esm2022/lib/admin/admin-dismiss.service.mjs +4 -4
  11. package/esm2022/lib/admin/admin-menu.component.mjs +4 -4
  12. package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +10 -10
  13. package/esm2022/lib/admin/architecture/declarations.mjs +3 -2
  14. package/esm2022/lib/admin/architecture/designer-element.component.mjs +25 -22
  15. package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +5 -5
  16. package/esm2022/lib/admin/architecture/designer.base.mjs +11 -14
  17. package/esm2022/lib/admin/architecture/designer.component.mjs +8 -7
  18. package/esm2022/lib/admin/architecture/elements/action.component.mjs +4 -5
  19. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +4 -4
  20. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +4 -4
  21. package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +4 -4
  22. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +4 -5
  23. package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +4 -4
  24. package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +4 -4
  25. package/esm2022/lib/admin/architecture/elements/control.component.mjs +4 -7
  26. package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +4 -4
  27. package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +4 -4
  28. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +14 -15
  29. package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +5 -7
  30. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +4 -4
  31. package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +4 -4
  32. package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +4 -4
  33. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +4 -5
  34. package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +8 -10
  35. package/esm2022/lib/admin/architecture/elements/form.component.mjs +12 -13
  36. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +4 -5
  37. package/esm2022/lib/admin/architecture/elements/job.component.mjs +4 -5
  38. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +5 -5
  39. package/esm2022/lib/admin/architecture/elements/node.component.mjs +4 -4
  40. package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +4 -4
  41. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +4 -4
  42. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +4 -4
  43. package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +4 -4
  44. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +4 -4
  45. package/esm2022/lib/admin/architecture/elements/report.component.mjs +4 -5
  46. package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +4 -4
  47. package/esm2022/lib/admin/architecture/elements/role.component.mjs +4 -5
  48. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +4 -4
  49. package/esm2022/lib/admin/architecture/elements/source.component.mjs +4 -4
  50. package/esm2022/lib/admin/architecture/elements/state.component.mjs +4 -5
  51. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +4 -4
  52. package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +4 -4
  53. package/esm2022/lib/admin/architecture/elements/type.component.mjs +6 -7
  54. package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +5 -5
  55. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +4 -4
  56. package/esm2022/lib/admin/architecture/elements/view.component.mjs +4 -4
  57. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +4 -5
  58. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +11 -6
  59. package/esm2022/lib/admin/core/ace.input.mjs +14 -13
  60. package/esm2022/lib/admin/core/color-picker.input.mjs +4 -4
  61. package/esm2022/lib/admin/core/localized-string.component.mjs +7 -6
  62. package/esm2022/lib/admin/core/search.input.mjs +5 -5
  63. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +7 -6
  64. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +18 -12
  65. package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +4 -4
  66. package/esm2022/lib/admin/document-trace/timeline.mjs +1 -1
  67. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +5 -5
  68. package/esm2022/lib/admin/form/designer/box-designer.component.mjs +7 -7
  69. package/esm2022/lib/admin/form/designer/declarations.mjs +1 -1
  70. package/esm2022/lib/admin/form/designer/design-control.component.mjs +4 -4
  71. package/esm2022/lib/admin/form/designer/properties.component.mjs +5 -5
  72. package/esm2022/lib/admin/form/designer/section.component.mjs +4 -4
  73. package/esm2022/lib/admin/form/designer/settings.component.mjs +4 -4
  74. package/esm2022/lib/admin/form/form.resolve.service.mjs +4 -4
  75. package/esm2022/lib/admin/form/workflow/node-ref.mjs +1 -1
  76. package/esm2022/lib/admin/form/workflow/node.component.mjs +34 -34
  77. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +4 -4
  78. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +33 -33
  79. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +8 -8
  80. package/esm2022/lib/admin/patterns/patterns.component.mjs +4 -4
  81. package/esm2022/lib/admin/permissions/permissions.component.mjs +4 -4
  82. package/esm2022/lib/admin/positions/positions-popup.component.mjs +7 -6
  83. package/esm2022/lib/admin/positions/positions.component.mjs +8 -8
  84. package/esm2022/lib/admin/profiler/outofoffice.component.mjs +5 -5
  85. package/esm2022/lib/admin/profiler/profiler.component.mjs +6 -6
  86. package/esm2022/lib/admin/system.service.mjs +15 -11
  87. package/esm2022/lib/admin/utility-ref.mjs +7 -5
  88. package/esm2022/lib/admin/utility-wrapper.component.mjs +4 -4
  89. package/esm2022/lib/admin/utility.pane.component.mjs +4 -4
  90. package/esm2022/lib/app.component.mjs +7 -7
  91. package/esm2022/lib/bizdoc.module.mjs +5 -5
  92. package/esm2022/lib/browse/browse-items.component.mjs +34 -33
  93. package/esm2022/lib/browse/browse.mobile.component.mjs +11 -8
  94. package/esm2022/lib/browse/browse.pane.component.mjs +9 -9
  95. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +11 -11
  96. package/esm2022/lib/browse/filter/filter.component.mjs +27 -39
  97. package/esm2022/lib/browse/folders-menu.component.mjs +4 -4
  98. package/esm2022/lib/chat/chat-info.mjs +9 -8
  99. package/esm2022/lib/chat/chat.mobile.component.mjs +4 -4
  100. package/esm2022/lib/chat/chat.service.mjs +6 -6
  101. package/esm2022/lib/chat/contacts.component.mjs +9 -8
  102. package/esm2022/lib/chat/contacts.pane.component.mjs +4 -4
  103. package/esm2022/lib/chat/conversation.component.mjs +7 -7
  104. package/esm2022/lib/chat/conversation.pane.component.mjs +4 -4
  105. package/esm2022/lib/compose/action/action-picker.component.mjs +6 -9
  106. package/esm2022/lib/compose/action/action-ref.mjs +1 -1
  107. package/esm2022/lib/compose/action/action.base.mjs +1 -1
  108. package/esm2022/lib/compose/action/action.dialog.mjs +5 -5
  109. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +7 -7
  110. package/esm2022/lib/compose/action/assign-action.component.mjs +4 -4
  111. package/esm2022/lib/compose/action/moveto-action.component.mjs +5 -5
  112. package/esm2022/lib/compose/action/return-action.component.mjs +4 -4
  113. package/esm2022/lib/compose/attachments/attachments.component.mjs +4 -4
  114. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +4 -4
  115. package/esm2022/lib/compose/attachments/progress-button.directive.mjs +4 -4
  116. package/esm2022/lib/compose/box/box.component.mjs +4 -4
  117. package/esm2022/lib/compose/box/control.component.mjs +4 -4
  118. package/esm2022/lib/compose/box/row.component.mjs +4 -4
  119. package/esm2022/lib/compose/can-deactivate-changes.service.mjs +4 -4
  120. package/esm2022/lib/compose/comments/comment.component.mjs +17 -14
  121. package/esm2022/lib/compose/comments/comments.component.mjs +6 -6
  122. package/esm2022/lib/compose/comments/comments.pane.component.mjs +5 -5
  123. package/esm2022/lib/compose/comments/edit-comment.component.mjs +4 -4
  124. package/esm2022/lib/compose/comments/edits.component.mjs +4 -4
  125. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +5 -5
  126. package/esm2022/lib/compose/comments/votes.component.mjs +4 -4
  127. package/esm2022/lib/compose/compose-resolve.service.mjs +4 -4
  128. package/esm2022/lib/compose/compose.mobile.component.mjs +8 -8
  129. package/esm2022/lib/compose/compose.pane.component.mjs +11 -11
  130. package/esm2022/lib/compose/copy/copy.dialog.mjs +4 -4
  131. package/esm2022/lib/compose/dismiss.service.mjs +4 -4
  132. package/esm2022/lib/compose/document-resolve.service.mjs +7 -7
  133. package/esm2022/lib/compose/document-resolver.service.mjs +4 -4
  134. package/esm2022/lib/compose/document.component.mjs +4 -4
  135. package/esm2022/lib/compose/document.mobile.component.mjs +4 -4
  136. package/esm2022/lib/compose/document.pane.component.mjs +4 -4
  137. package/esm2022/lib/compose/events/events.component.mjs +4 -4
  138. package/esm2022/lib/compose/form-ref.mjs +1 -1
  139. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +4 -4
  140. package/esm2022/lib/compose/form.component.mjs +58 -22
  141. package/esm2022/lib/compose/new-menu.component.mjs +7 -6
  142. package/esm2022/lib/compose/overlay.component.exp.mjs +4 -4
  143. package/esm2022/lib/compose/privilage.directive.mjs +7 -7
  144. package/esm2022/lib/compose/recipient-resolver.service.mjs +4 -4
  145. package/esm2022/lib/compose/state.component.mjs +4 -4
  146. package/esm2022/lib/compose/tag/tags.component.mjs +4 -4
  147. package/esm2022/lib/compose/trace/flow.component.mjs +16 -17
  148. package/esm2022/lib/compose/trace/people.component.mjs +14 -9
  149. package/esm2022/lib/compose/trace/trace.base.mjs +6 -7
  150. package/esm2022/lib/compose/trace/trace.component.mjs +5 -5
  151. package/esm2022/lib/compose/trace/trace.pane.component.mjs +4 -4
  152. package/esm2022/lib/compose/version-compare/version-compare.component.mjs +5 -4
  153. package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +14 -14
  154. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +4 -4
  155. package/esm2022/lib/core/account.service.mjs +4 -4
  156. package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +4 -4
  157. package/esm2022/lib/core/animations.mjs +1 -1
  158. package/esm2022/lib/core/authentication.mjs +1 -4
  159. package/esm2022/lib/core/avatar/avatar.component.mjs +52 -43
  160. package/esm2022/lib/core/base.mjs +1 -1
  161. package/esm2022/lib/core/checkbox.mjs +4 -4
  162. package/esm2022/lib/core/colors.mjs +1 -1
  163. package/esm2022/lib/core/component-factory-resolver.mjs +5 -5
  164. package/esm2022/lib/core/configuration.mjs +1 -1
  165. package/esm2022/lib/core/datasource.service.mjs +4 -4
  166. package/esm2022/lib/core/decorators.mjs +1 -1
  167. package/esm2022/lib/core/document-factory.service.mjs +4 -11
  168. package/esm2022/lib/core/fields/address.designer.mjs +4 -4
  169. package/esm2022/lib/core/fields/address.field.mjs +4 -4
  170. package/esm2022/lib/core/fields/autocomplete.field.mjs +7 -7
  171. package/esm2022/lib/core/fields/axes-picker.designer.mjs +4 -4
  172. package/esm2022/lib/core/fields/axes-picker.field.mjs +4 -4
  173. package/esm2022/lib/core/fields/checkbox.designer.mjs +4 -4
  174. package/esm2022/lib/core/fields/checkbox.field.mjs +4 -4
  175. package/esm2022/lib/core/fields/checklist.designer.mjs +4 -4
  176. package/esm2022/lib/core/fields/checklist.field.mjs +4 -4
  177. package/esm2022/lib/core/fields/date-range.designer.mjs +4 -4
  178. package/esm2022/lib/core/fields/date-range.field.mjs +4 -4
  179. package/esm2022/lib/core/fields/date.designer.mjs +4 -4
  180. package/esm2022/lib/core/fields/date.field.mjs +4 -4
  181. package/esm2022/lib/core/fields/expression.field.mjs +7 -7
  182. package/esm2022/lib/core/fields/file.designer.mjs +4 -4
  183. package/esm2022/lib/core/fields/file.field.mjs +4 -4
  184. package/esm2022/lib/core/fields/html.designer.mjs +4 -4
  185. package/esm2022/lib/core/fields/html.field.mjs +4 -4
  186. package/esm2022/lib/core/fields/input.designer.mjs +4 -4
  187. package/esm2022/lib/core/fields/input.field.mjs +4 -4
  188. package/esm2022/lib/core/fields/localized-string.field.mjs +7 -7
  189. package/esm2022/lib/core/fields/numeric.designer.mjs +4 -4
  190. package/esm2022/lib/core/fields/numeric.field.mjs +4 -4
  191. package/esm2022/lib/core/fields/options.base.mjs +8 -8
  192. package/esm2022/lib/core/fields/options.component.mjs +4 -4
  193. package/esm2022/lib/core/fields/radio-button.designer.mjs +4 -4
  194. package/esm2022/lib/core/fields/radio-button.field.mjs +4 -4
  195. package/esm2022/lib/core/fields/select.designer.mjs +4 -4
  196. package/esm2022/lib/core/fields/select.field.mjs +4 -4
  197. package/esm2022/lib/core/fields/signature.designer.mjs +4 -4
  198. package/esm2022/lib/core/fields/signature.field.mjs +4 -4
  199. package/esm2022/lib/core/fields/switch.field.mjs +4 -4
  200. package/esm2022/lib/core/fields/tags.designer.mjs +4 -4
  201. package/esm2022/lib/core/fields/tags.field.mjs +4 -4
  202. package/esm2022/lib/core/fields/textarea.designer.mjs +4 -4
  203. package/esm2022/lib/core/fields/textarea.field.mjs +4 -4
  204. package/esm2022/lib/core/fields/time.designer.mjs +4 -4
  205. package/esm2022/lib/core/fields/time.field.mjs +4 -4
  206. package/esm2022/lib/core/fields/timespan.field.mjs +7 -7
  207. package/esm2022/lib/core/fields/yesno.designer.mjs +4 -4
  208. package/esm2022/lib/core/fields/yesno.field.mjs +4 -4
  209. package/esm2022/lib/core/firebase.service.mjs +1 -1
  210. package/esm2022/lib/core/functions.mjs +4 -1
  211. package/esm2022/lib/core/guide/guide.component.mjs +4 -4
  212. package/esm2022/lib/core/guide/guide.service.mjs +11 -7
  213. package/esm2022/lib/core/guide/help-tip.component.mjs +5 -5
  214. package/esm2022/lib/core/http.interceptor.mjs +6 -6
  215. package/esm2022/lib/core/hub.service.mjs +4 -4
  216. package/esm2022/lib/core/identity/identity.component.mjs +4 -4
  217. package/esm2022/lib/core/info/attachment-info.service.mjs +4 -4
  218. package/esm2022/lib/core/info/document-info.service.mjs +4 -4
  219. package/esm2022/lib/core/info/location-info.component.mjs +4 -4
  220. package/esm2022/lib/core/info/map-info.mjs +4 -4
  221. package/esm2022/lib/core/inputs/address.input.mjs +4 -4
  222. package/esm2022/lib/core/inputs/auto-complete.input.mjs +7 -6
  223. package/esm2022/lib/core/inputs/combination-picker-body.mjs +10 -12
  224. package/esm2022/lib/core/inputs/combination-picker.mjs +5 -6
  225. package/esm2022/lib/core/inputs/combination-pool.mjs +6 -5
  226. package/esm2022/lib/core/inputs/file.input.mjs +29 -23
  227. package/esm2022/lib/core/inputs/select.input.mjs +4 -4
  228. package/esm2022/lib/core/inputs/signature.input.mjs +4 -4
  229. package/esm2022/lib/core/inputs/time-picker.mjs +7 -7
  230. package/esm2022/lib/core/inputs/timespan.input.mjs +7 -7
  231. package/esm2022/lib/core/layout.component.mjs +11 -5
  232. package/esm2022/lib/core/lottie-animation.exp.mjs +49 -0
  233. package/esm2022/lib/core/mailbox.service.mjs +20 -14
  234. package/esm2022/lib/core/models.mjs +2 -1
  235. package/esm2022/lib/core/none.component.mjs +4 -4
  236. package/esm2022/lib/core/pipes/action.pipe.mjs +4 -4
  237. package/esm2022/lib/core/pipes/calendar.pipe.mjs +4 -4
  238. package/esm2022/lib/core/pipes/date-format.pipe.mjs +4 -4
  239. package/esm2022/lib/core/pipes/daterange.pipe.mjs +7 -7
  240. package/esm2022/lib/core/pipes/difference.pipe.mjs +4 -4
  241. package/esm2022/lib/core/pipes/duration-format.pipe.mjs +4 -4
  242. package/esm2022/lib/core/pipes/duration.pipe.mjs +4 -4
  243. package/esm2022/lib/core/pipes/filter.pipe.mjs +25 -0
  244. package/esm2022/lib/core/pipes/form.pipe.mjs +4 -4
  245. package/esm2022/lib/core/pipes/join.pipe.mjs +4 -4
  246. package/esm2022/lib/core/pipes/localized-string.pipe.mjs +4 -4
  247. package/esm2022/lib/core/pipes/role.pipe.mjs +4 -4
  248. package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +4 -4
  249. package/esm2022/lib/core/pipes/sort.pipe.mjs +8 -30
  250. package/esm2022/lib/core/pipes/state.pipe.mjs +4 -4
  251. package/esm2022/lib/core/pipes/time-ago.pipe.mjs +4 -4
  252. package/esm2022/lib/core/pipes/to-now.pipe.mjs +4 -4
  253. package/esm2022/lib/core/pipes/translate.pipe.mjs +10 -10
  254. package/esm2022/lib/core/pipes/type-value.pipe.mjs +4 -4
  255. package/esm2022/lib/core/pipes/user-name.pipe.mjs +4 -4
  256. package/esm2022/lib/core/popup/popup-ref.mjs +1 -1
  257. package/esm2022/lib/core/popup/popup.component.mjs +4 -4
  258. package/esm2022/lib/core/popup/popup.service.mjs +7 -5
  259. package/esm2022/lib/core/popup/tooltip.directive.mjs +10 -11
  260. package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +4 -4
  261. package/esm2022/lib/core/prompt/mask/mask.component.mjs +4 -4
  262. package/esm2022/lib/core/prompt.service.mjs +6 -6
  263. package/esm2022/lib/core/router.mjs +9 -9
  264. package/esm2022/lib/core/save-changes.dialog.mjs +4 -4
  265. package/esm2022/lib/core/session.service.mjs +47 -36
  266. package/esm2022/lib/core/slots/pane-ref.mjs +2 -2
  267. package/esm2022/lib/core/slots/router.directive.mjs +4 -4
  268. package/esm2022/lib/core/slots/router.service.mjs +6 -5
  269. package/esm2022/lib/core/slots/slots.component.mjs +25 -22
  270. package/esm2022/lib/core/sticky-toolbar.exp.mjs +9 -6
  271. package/esm2022/lib/core/tagging/documents.component.mjs +4 -4
  272. package/esm2022/lib/core/tagging/edit-input.component.mjs +16 -13
  273. package/esm2022/lib/core/tagging/emoji.component.mjs +4 -4
  274. package/esm2022/lib/core/tagging/tagging-item.directive.mjs +4 -4
  275. package/esm2022/lib/core/tagging/tagging.component-base.mjs +4 -4
  276. package/esm2022/lib/core/tagging/tagging.directive.mjs +5 -5
  277. package/esm2022/lib/core/tagging/tagging.pipe.mjs +4 -4
  278. package/esm2022/lib/core/tagging/users.component.mjs +5 -5
  279. package/esm2022/lib/core/translate.service.mjs +5 -4
  280. package/esm2022/lib/core/translations.mjs +8 -6
  281. package/esm2022/lib/core/virtual-tabs.component.exp.mjs +7 -7
  282. package/esm2022/lib/core/window-title.service.mjs +14 -6
  283. package/esm2022/lib/cube/accum/accum.component.mjs +4 -4
  284. package/esm2022/lib/cube/chart/chart.component.mjs +8 -7
  285. package/esm2022/lib/cube/cube-info.service.mjs +13 -10
  286. package/esm2022/lib/cube/cube-menu.component.mjs +4 -4
  287. package/esm2022/lib/cube/cube-view.component.mjs +5 -5
  288. package/esm2022/lib/cube/cube.service.mjs +21 -19
  289. package/esm2022/lib/cube/declarations.mjs +1 -1
  290. package/esm2022/lib/cube/explore/document-item.component.mjs +4 -4
  291. package/esm2022/lib/cube/explore/explore-item.component.mjs +4 -4
  292. package/esm2022/lib/cube/explore/explore-items.component.mjs +8 -8
  293. package/esm2022/lib/cube/explore/explore.pane.component.mjs +5 -5
  294. package/esm2022/lib/cube/explore/item-resolver.service.mjs +7 -7
  295. package/esm2022/lib/cube/explore/item.pane.component.mjs +5 -5
  296. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +4 -4
  297. package/esm2022/lib/cube/filter/filter.component.mjs +14 -13
  298. package/esm2022/lib/cube/grid/grid.component.mjs +9 -8
  299. package/esm2022/lib/cube/matrix/matrix.base.mjs +20 -18
  300. package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +4 -4
  301. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +5 -5
  302. package/esm2022/lib/cube/matrix/popup.component.mjs +4 -4
  303. package/esm2022/lib/cube/matrix/table.component.mjs +9 -8
  304. package/esm2022/lib/cube/parallel/item.mjs +1 -2
  305. package/esm2022/lib/cube/parallel/parallel.component.mjs +5 -5
  306. package/esm2022/lib/cube/pivot/pivot.component.mjs +16 -7
  307. package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +6 -6
  308. package/esm2022/lib/cube/spreadsheet/spreadsheet.container.exp.mjs +4 -4
  309. package/esm2022/lib/cube/sum/sum.component.mjs +19 -18
  310. package/esm2022/lib/cube/view-base.mjs +5 -5
  311. package/esm2022/lib/cube/view.mobile.component.mjs +5 -5
  312. package/esm2022/lib/cube/view.pane.component.mjs +4 -4
  313. package/esm2022/lib/dashboard/actions/actions.widget.mjs +7 -6
  314. package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +4 -8
  315. package/esm2022/lib/dashboard/cube/compare.widget.mjs +5 -7
  316. package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +8 -6
  317. package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +4 -4
  318. package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +5 -4
  319. package/esm2022/lib/dashboard/cube/document-state.widget.mjs +6 -5
  320. package/esm2022/lib/dashboard/cube/documents.widget.mjs +4 -4
  321. package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +4 -4
  322. package/esm2022/lib/dashboard/dashboard.component.mjs +4 -4
  323. package/esm2022/lib/dashboard/dashboard.pane.component.mjs +4 -4
  324. package/esm2022/lib/dashboard/recents/recents.widget.mjs +13 -16
  325. package/esm2022/lib/dashboard/score/activity.widget.mjs +6 -5
  326. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +12 -5
  327. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +9 -8
  328. package/esm2022/lib/dashboard/score/pending-results.widget.mjs +4 -4
  329. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +19 -18
  330. package/esm2022/lib/dashboard/widget-item.component.mjs +4 -4
  331. package/esm2022/lib/dashboard/widget-ref.mjs +1 -1
  332. package/esm2022/lib/designer.module.mjs +5 -5
  333. package/esm2022/lib/desktop.module.mjs +8 -12
  334. package/esm2022/lib/home/about/about.dialog.mjs +5 -5
  335. package/esm2022/lib/home/home-base.component.mjs +18 -10
  336. package/esm2022/lib/home/home.desktop.component.mjs +14 -24
  337. package/esm2022/lib/home/home.mobile.component.mjs +29 -32
  338. package/esm2022/lib/home/notifications/notifications.component.mjs +21 -23
  339. package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +9 -9
  340. package/esm2022/lib/home/sign/sign.component.mjs +20 -24
  341. package/esm2022/lib/impersonate/impersonate.component.mjs +36 -34
  342. package/esm2022/lib/mobile.module.mjs +8 -11
  343. package/esm2022/lib/modules/chart.module.mjs +13 -11
  344. package/esm2022/lib/modules/circular-gauge.module.mjs +9 -7
  345. package/esm2022/lib/modules/date.adapter.mjs +1 -1
  346. package/esm2022/lib/modules/datepicker.intl.mjs +4 -4
  347. package/esm2022/lib/modules/dayjs.module.mjs +5 -5
  348. package/esm2022/lib/modules/diagram.module.mjs +9 -7
  349. package/esm2022/lib/modules/gantt.module.mjs +11 -9
  350. package/esm2022/lib/modules/grid.module.mjs +9 -7
  351. package/esm2022/lib/modules/linear-gauge.module.mjs +5 -5
  352. package/esm2022/lib/modules/material.module.mjs +5 -5
  353. package/esm2022/lib/modules/paginator.intl.mjs +4 -4
  354. package/esm2022/lib/modules/pivot.module.mjs +9 -7
  355. package/esm2022/lib/modules/schedule.module.mjs +9 -7
  356. package/esm2022/lib/modules/spreadsheet.module.mjs +5 -5
  357. package/esm2022/lib/modules/stepper.intl.mjs +4 -4
  358. package/esm2022/lib/modules/texteditor.module.mjs +7 -6
  359. package/esm2022/lib/notifications/filter.component.mjs +4 -4
  360. package/esm2022/lib/notifications/notifications-table.component.mjs +6 -7
  361. package/esm2022/lib/notifications/notifications.component-base.mjs +1 -1
  362. package/esm2022/lib/notifications/notifications.mobile.component.mjs +4 -4
  363. package/esm2022/lib/notifications/notifications.pane.component.mjs +4 -4
  364. package/esm2022/lib/notifications/notifications.service.mjs +13 -6
  365. package/esm2022/lib/notifications/types/commented.notification.mjs +4 -4
  366. package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +4 -4
  367. package/esm2022/lib/notifications/types/escalated.notification.mjs +4 -4
  368. package/esm2022/lib/notifications/types/invite.notification.mjs +4 -4
  369. package/esm2022/lib/notifications/types/liked.notification.mjs +4 -4
  370. package/esm2022/lib/notifications/types/long-running-task.notification.mjs +4 -4
  371. package/esm2022/lib/notifications/types/notification-base.mjs +4 -4
  372. package/esm2022/lib/notifications/types/nudge.notification.mjs +4 -4
  373. package/esm2022/lib/notifications/types/state-changed.notification.mjs +4 -4
  374. package/esm2022/lib/notifications/types/tagged.notification.mjs +4 -4
  375. package/esm2022/lib/notifications/types/text.notification.mjs +4 -4
  376. package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +4 -4
  377. package/esm2022/lib/options/options.component.mjs +91 -49
  378. package/esm2022/lib/options/options.desktop.component.mjs +26 -0
  379. package/esm2022/lib/options/options.mobile.component.mjs +23 -0
  380. package/esm2022/lib/reports/arguments-component.mjs +4 -4
  381. package/esm2022/lib/reports/cube/documents.component.mjs +4 -4
  382. package/esm2022/lib/reports/cube/grid-documents.component.mjs +4 -4
  383. package/esm2022/lib/reports/cube/performance-hilo.component.mjs +5 -5
  384. package/esm2022/lib/reports/cube/performance-wind.component.mjs +4 -4
  385. package/esm2022/lib/reports/cube/table-documents.component.mjs +6 -5
  386. package/esm2022/lib/reports/cube/usage-args.component.mjs +6 -5
  387. package/esm2022/lib/reports/cube/usage-base.mjs +8 -8
  388. package/esm2022/lib/reports/cube/usage-chart.component.mjs +6 -6
  389. package/esm2022/lib/reports/cube/usage-pivot.component.mjs +5 -5
  390. package/esm2022/lib/reports/cube/usage.component.mjs +4 -4
  391. package/esm2022/lib/reports/report-ref.mjs +1 -1
  392. package/esm2022/lib/reports/report-viewer.component.mjs +5 -5
  393. package/esm2022/lib/reports/report.mobile.component.mjs +4 -4
  394. package/esm2022/lib/reports/report.pane.component.mjs +4 -4
  395. package/esm2022/lib/reports/reports-menu.component.mjs +4 -4
  396. package/esm2022/lib/reports/substitution/substitution.component.mjs +4 -4
  397. package/esm2022/lib/reports/table/table-view.component.mjs +4 -4
  398. package/esm2022/lib/reports/tasks/tasks.component.mjs +4 -4
  399. package/esm2022/lib/routes.desktop.mjs +24 -5
  400. package/esm2022/lib/routes.mobile.mjs +12 -2
  401. package/esm2022/lib/scheduler/schedule.component.mjs +5 -5
  402. package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +4 -4
  403. package/esm2022/lib/scheduler/scheduler.pane.component.mjs +4 -4
  404. package/esm2022/lib/search/cube.component.mjs +8 -9
  405. package/esm2022/lib/search/declarations.mjs +1 -1
  406. package/esm2022/lib/search/document.component.mjs +4 -4
  407. package/esm2022/lib/search/guide.component.mjs +4 -4
  408. package/esm2022/lib/search/path.component.mjs +4 -4
  409. package/esm2022/lib/search/search.service.mjs +5 -5
  410. package/esm2022/lib/shared.module.mjs +15 -15
  411. package/esm2022/lib/system.module.mjs +5 -5
  412. package/esm2022/lib/views/cube/chart.component.mjs +4 -4
  413. package/esm2022/lib/views/cube/cube-base.mjs +4 -4
  414. package/esm2022/lib/views/cube/explore.component.mjs +5 -5
  415. package/esm2022/lib/views/cube/matrix.component.mjs +6 -6
  416. package/esm2022/lib/views/cube/parallel.component.mjs +4 -4
  417. package/esm2022/lib/views/cube/pivot.component.mjs +4 -4
  418. package/esm2022/lib/views/cube/sum.component.mjs +4 -4
  419. package/esm2022/lib/views/cube/view.component.mjs +6 -6
  420. package/esm2022/lib/views/document-view-ref.mjs +1 -1
  421. package/esm2022/lib/views/timeline/timeline.component.mjs +7 -8
  422. package/esm2022/lib/views/view-item.component.mjs +4 -4
  423. package/esm2022/lib/views/views.component.mjs +5 -5
  424. package/esm2022/lib/views/views.mobile.component.mjs +6 -6
  425. package/esm2022/lib/views/views.pane.component.mjs +8 -8
  426. package/esm2022/public-api.mjs +4 -3
  427. package/fesm2022/bizdoc-core.mjs +3267 -3149
  428. package/fesm2022/bizdoc-core.mjs.map +1 -1
  429. package/lib/admin/architecture/cube-axes-filter.component.d.ts +4 -1
  430. package/lib/admin/architecture/declarations.d.ts +14 -9
  431. package/lib/admin/architecture/designer-element.component.d.ts +1 -0
  432. package/lib/admin/architecture/designer-privileges.component.d.ts +4 -2
  433. package/lib/admin/architecture/designer.base.d.ts +1 -4
  434. package/lib/admin/architecture/designer.component.d.ts +3 -3
  435. package/lib/admin/architecture/elements/action.component.d.ts +13 -13
  436. package/lib/admin/architecture/elements/analysis-view.component.d.ts +8 -8
  437. package/lib/admin/architecture/elements/analysis-widget.component.d.ts +7 -7
  438. package/lib/admin/architecture/elements/anomaly-rule.component.d.ts +3 -3
  439. package/lib/admin/architecture/elements/attribute.component.d.ts +1 -1
  440. package/lib/admin/architecture/elements/box-form.component.d.ts +5 -5
  441. package/lib/admin/architecture/elements/configuration-datasource.component.d.ts +1 -1
  442. package/lib/admin/architecture/elements/control.component.d.ts +1 -2
  443. package/lib/admin/architecture/elements/cube-index-utility.component.d.ts +3 -4
  444. package/lib/admin/architecture/elements/cube-view.component.d.ts +4 -4
  445. package/lib/admin/architecture/elements/cube.component.d.ts +9 -10
  446. package/lib/admin/architecture/elements/document-state-widget.component.d.ts +3 -6
  447. package/lib/admin/architecture/elements/documents-report.component.d.ts +4 -5
  448. package/lib/admin/architecture/elements/documents-widget.component.d.ts +5 -5
  449. package/lib/admin/architecture/elements/explore-view.component.d.ts +4 -4
  450. package/lib/admin/architecture/elements/folder.component.d.ts +2 -2
  451. package/lib/admin/architecture/elements/form-invite.dialog.d.ts +7 -7
  452. package/lib/admin/architecture/elements/form.component.d.ts +10 -9
  453. package/lib/admin/architecture/elements/guide.component.d.ts +1 -1
  454. package/lib/admin/architecture/elements/matrix-view.component.d.ts +16 -16
  455. package/lib/admin/architecture/elements/parallel-view.component.d.ts +9 -10
  456. package/lib/admin/architecture/elements/performance-report.component.d.ts +2 -3
  457. package/lib/admin/architecture/elements/performance-widget.component.d.ts +4 -5
  458. package/lib/admin/architecture/elements/pivot-view.component.d.ts +9 -10
  459. package/lib/admin/architecture/elements/report.component.d.ts +1 -1
  460. package/lib/admin/architecture/elements/return-to-role-action.component.d.ts +1 -1
  461. package/lib/admin/architecture/elements/role.component.d.ts +4 -4
  462. package/lib/admin/architecture/elements/source.component.d.ts +2 -3
  463. package/lib/admin/architecture/elements/state.component.d.ts +4 -4
  464. package/lib/admin/architecture/elements/sum-view.component.d.ts +7 -8
  465. package/lib/admin/architecture/elements/tasks-report.component.d.ts +4 -4
  466. package/lib/admin/architecture/elements/type.component.d.ts +8 -4
  467. package/lib/admin/architecture/elements/usage-report.component.d.ts +7 -7
  468. package/lib/admin/architecture/elements/widget.component.d.ts +1 -1
  469. package/lib/admin/architecture/icon-picker.component.d.ts +5 -3
  470. package/lib/admin/core/ace.input.d.ts +2 -5
  471. package/lib/admin/core/localized-string.component.d.ts +3 -2
  472. package/lib/admin/document-trace/document-trace.component.d.ts +6 -5
  473. package/lib/admin/document-trace/reassign.dialog.d.ts +2 -2
  474. package/lib/admin/document-trace/timeline.d.ts +2 -2
  475. package/lib/admin/form/designer/box-designer.component.d.ts +13 -13
  476. package/lib/admin/form/designer/section.component.d.ts +5 -5
  477. package/lib/admin/form/workflow/node-ref.d.ts +1 -1
  478. package/lib/admin/form/workflow/node.component.d.ts +3 -2
  479. package/lib/admin/form/workflow/role-node.component.d.ts +11 -11
  480. package/lib/admin/form/workflow/workflow.component.d.ts +9 -11
  481. package/lib/admin/indices/manage-cube-index.component.d.ts +3 -3
  482. package/lib/admin/patterns/patterns.component.d.ts +2 -2
  483. package/lib/admin/positions/positions-popup.component.d.ts +1 -1
  484. package/lib/admin/positions/positions.component.d.ts +6 -6
  485. package/lib/admin/profiler/outofoffice.component.d.ts +15 -15
  486. package/lib/admin/profiler/profiler.component.d.ts +3 -3
  487. package/lib/admin/system.service.d.ts +8 -9
  488. package/lib/admin/utility-ref.d.ts +2 -2
  489. package/lib/browse/browse-items.component.d.ts +6 -7
  490. package/lib/browse/browse.mobile.component.d.ts +2 -2
  491. package/lib/browse/browse.pane.component.d.ts +2 -2
  492. package/lib/browse/filter/filter.component.d.ts +10 -11
  493. package/lib/chat/chat-info.d.ts +1 -1
  494. package/lib/chat/chat.service.d.ts +1 -1
  495. package/lib/chat/conversation.component.d.ts +2 -2
  496. package/lib/compose/action/action.base.d.ts +2 -1
  497. package/lib/compose/action/assign-action.component.d.ts +5 -5
  498. package/lib/compose/action/moveto-action.component.d.ts +3 -3
  499. package/lib/compose/action/return-action.component.d.ts +4 -4
  500. package/lib/compose/box/box.component.d.ts +1 -1
  501. package/lib/compose/comments/comments.component.d.ts +4 -4
  502. package/lib/compose/compose.mobile.component.d.ts +5 -5
  503. package/lib/compose/compose.pane.component.d.ts +3 -3
  504. package/lib/compose/copy/copy.dialog.d.ts +1 -1
  505. package/lib/compose/form-ref.d.ts +5 -5
  506. package/lib/compose/form.component.d.ts +36 -2
  507. package/lib/compose/new-menu.component.d.ts +2 -1
  508. package/lib/compose/privilage.directive.d.ts +1 -1
  509. package/lib/compose/tag/tags.component.d.ts +1 -1
  510. package/lib/compose/trace/flow.component.d.ts +1 -0
  511. package/lib/compose/trace/people.component.d.ts +5 -2
  512. package/lib/compose/trace/trace.base.d.ts +1 -1
  513. package/lib/compose/version-compare/version-compare.directive.d.ts +1 -1
  514. package/lib/core/account.service.d.ts +1 -1
  515. package/lib/core/authentication.d.ts +2 -2
  516. package/lib/core/avatar/avatar.component.d.ts +13 -11
  517. package/lib/core/base.d.ts +9 -9
  518. package/lib/core/colors.d.ts +1 -0
  519. package/lib/core/configuration.d.ts +3 -2
  520. package/lib/core/datasource.service.d.ts +1 -1
  521. package/lib/core/document-factory.service.d.ts +0 -1
  522. package/lib/core/fields/address.designer.d.ts +3 -3
  523. package/lib/core/fields/address.field.d.ts +1 -1
  524. package/lib/core/fields/autocomplete.field.d.ts +5 -5
  525. package/lib/core/fields/axes-picker.designer.d.ts +3 -3
  526. package/lib/core/fields/axes-picker.field.d.ts +1 -1
  527. package/lib/core/fields/checkbox.designer.d.ts +2 -2
  528. package/lib/core/fields/checkbox.field.d.ts +1 -1
  529. package/lib/core/fields/checklist.designer.d.ts +4 -4
  530. package/lib/core/fields/checklist.field.d.ts +1 -2
  531. package/lib/core/fields/date-range.designer.d.ts +6 -6
  532. package/lib/core/fields/date-range.field.d.ts +2 -2
  533. package/lib/core/fields/date.designer.d.ts +5 -5
  534. package/lib/core/fields/file.designer.d.ts +3 -3
  535. package/lib/core/fields/html.designer.d.ts +4 -4
  536. package/lib/core/fields/input.designer.d.ts +8 -9
  537. package/lib/core/fields/numeric.designer.d.ts +7 -7
  538. package/lib/core/fields/options.base.d.ts +1 -1
  539. package/lib/core/fields/radio-button.designer.d.ts +3 -3
  540. package/lib/core/fields/radio-button.field.d.ts +2 -3
  541. package/lib/core/fields/select.designer.d.ts +5 -5
  542. package/lib/core/fields/select.field.d.ts +1 -2
  543. package/lib/core/fields/signature.designer.d.ts +2 -2
  544. package/lib/core/fields/switch.field.d.ts +1 -1
  545. package/lib/core/fields/textarea.designer.d.ts +6 -6
  546. package/lib/core/fields/time.designer.d.ts +5 -5
  547. package/lib/core/fields/yesno.designer.d.ts +3 -3
  548. package/lib/core/fields/yesno.field.d.ts +1 -1
  549. package/lib/core/firebase.service.d.ts +1 -1
  550. package/lib/core/functions.d.ts +7 -4
  551. package/lib/core/guide/help-tip.component.d.ts +1 -1
  552. package/lib/core/http.interceptor.d.ts +1 -1
  553. package/lib/core/hub.service.d.ts +2 -2
  554. package/lib/core/inputs/address.input.d.ts +4 -4
  555. package/lib/core/inputs/auto-complete.input.d.ts +4 -4
  556. package/lib/core/inputs/combination-picker-body.d.ts +2 -2
  557. package/lib/core/inputs/file.input.d.ts +4 -4
  558. package/lib/core/inputs/time-picker.d.ts +2 -2
  559. package/lib/core/inputs/timespan.input.d.ts +7 -7
  560. package/lib/core/{lottie-animation.d.ts → lottie-animation.exp.d.ts} +0 -1
  561. package/lib/core/mailbox.service.d.ts +2 -3
  562. package/lib/core/models.d.ts +6 -5
  563. package/lib/core/pipes/filter.pipe.d.ts +7 -0
  564. package/lib/core/pipes/localized-string.pipe.d.ts +1 -1
  565. package/lib/core/pipes/sort.pipe.d.ts +1 -6
  566. package/lib/core/pipes/time-ago.pipe.d.ts +1 -1
  567. package/lib/core/pipes/user-name.pipe.d.ts +1 -1
  568. package/lib/core/popup/popup-ref.d.ts +4 -4
  569. package/lib/core/popup/tooltip.directive.d.ts +2 -3
  570. package/lib/core/router.d.ts +3 -3
  571. package/lib/core/session.service.d.ts +11 -8
  572. package/lib/core/slots/pane-ref.d.ts +16 -16
  573. package/lib/core/slots/router.directive.d.ts +2 -2
  574. package/lib/core/slots/router.service.d.ts +1 -1
  575. package/lib/core/slots/slots.component.d.ts +3 -3
  576. package/lib/core/sticky-toolbar.exp.d.ts +1 -0
  577. package/lib/core/tagging/edit-input.component.d.ts +5 -5
  578. package/lib/core/tagging/emoji.component.d.ts +1 -1
  579. package/lib/core/tagging/tagging.component-base.d.ts +1 -1
  580. package/lib/core/tagging/tagging.directive.d.ts +1 -1
  581. package/lib/core/tagging/tagging.pipe.d.ts +1 -1
  582. package/lib/core/translate.service.d.ts +2 -2
  583. package/lib/core/translations.d.ts +2 -1049
  584. package/lib/core/virtual-tabs.component.exp.d.ts +2 -2
  585. package/lib/core/window-title.service.d.ts +2 -1
  586. package/lib/cube/accum/accum.component.d.ts +1 -1
  587. package/lib/cube/chart/chart.component.d.ts +5 -5
  588. package/lib/cube/cube-info.service.d.ts +1 -1
  589. package/lib/cube/cube.service.d.ts +2 -2
  590. package/lib/cube/declarations.d.ts +3 -3
  591. package/lib/cube/explore/explore-items.component.d.ts +2 -2
  592. package/lib/cube/filter/filter.component.d.ts +1 -1
  593. package/lib/cube/grid/grid.component.d.ts +4 -4
  594. package/lib/cube/matrix/matrix.base.d.ts +9 -8
  595. package/lib/cube/matrix/matrix.pane.component.d.ts +2 -1
  596. package/lib/cube/matrix/table.component.d.ts +3 -3
  597. package/lib/cube/pivot/pivot.component.d.ts +6 -7
  598. package/lib/cube/spreadsheet/spreadsheet.component.d.ts +3 -3
  599. package/lib/cube/sum/sum.component.d.ts +5 -5
  600. package/lib/cube/view-base.d.ts +3 -2
  601. package/lib/cube/view.mobile.component.d.ts +1 -1
  602. package/lib/dashboard/cube/accum-cube.widget.d.ts +0 -1
  603. package/lib/dashboard/cube/cube-analysis.base.d.ts +9 -6
  604. package/lib/dashboard/cube/filter/filter.component.d.ts +3 -2
  605. package/lib/dashboard/recents/recents.widget.d.ts +5 -6
  606. package/lib/dashboard/score/activity.widget.d.ts +1 -0
  607. package/lib/dashboard/score/peers-performance.widget.d.ts +1 -0
  608. package/lib/dashboard/score/personal-score.widget.d.ts +2 -4
  609. package/lib/desktop.module.d.ts +5 -6
  610. package/lib/home/about/about.dialog.d.ts +2 -2
  611. package/lib/home/home-base.component.d.ts +2 -0
  612. package/lib/home/home.desktop.component.d.ts +6 -9
  613. package/lib/home/home.mobile.component.d.ts +4 -6
  614. package/lib/home/notifications/notifications.component.d.ts +3 -5
  615. package/lib/home/outofoffice/outofoffice.component.d.ts +3 -3
  616. package/lib/home/sign/sign.component.d.ts +4 -2
  617. package/lib/impersonate/impersonate.component.d.ts +11 -12
  618. package/lib/mobile.module.d.ts +3 -3
  619. package/lib/modules/chart.module.d.ts +1 -0
  620. package/lib/modules/circular-gauge.module.d.ts +1 -0
  621. package/lib/modules/diagram.module.d.ts +1 -0
  622. package/lib/modules/gantt.module.d.ts +1 -0
  623. package/lib/modules/grid.module.d.ts +1 -0
  624. package/lib/modules/pivot.module.d.ts +1 -0
  625. package/lib/modules/schedule.module.d.ts +1 -0
  626. package/lib/notifications/filter.component.d.ts +2 -2
  627. package/lib/options/options.component.d.ts +54 -31
  628. package/lib/options/options.desktop.component.d.ts +10 -0
  629. package/lib/options/options.mobile.component.d.ts +9 -0
  630. package/lib/reports/arguments-component.d.ts +2 -2
  631. package/lib/reports/cube/performance-hilo.component.d.ts +1 -1
  632. package/lib/reports/cube/performance-wind.component.d.ts +2 -2
  633. package/lib/reports/cube/usage-args.component.d.ts +3 -1
  634. package/lib/reports/cube/usage-base.d.ts +9 -7
  635. package/lib/reports/cube/usage-chart.component.d.ts +1 -1
  636. package/lib/reports/cube/usage-pivot.component.d.ts +1 -1
  637. package/lib/reports/report.mobile.component.d.ts +3 -1
  638. package/lib/search/cube.component.d.ts +1 -1
  639. package/lib/search/declarations.d.ts +2 -2
  640. package/lib/shared.module.d.ts +154 -153
  641. package/lib/views/cube/chart.component.d.ts +2 -2
  642. package/lib/views/cube/cube-base.d.ts +6 -6
  643. package/lib/views/cube/sum.component.d.ts +2 -2
  644. package/lib/views/timeline/timeline.component.d.ts +3 -2
  645. package/lib/views/views.component.d.ts +1 -1
  646. package/package.json +19 -18
  647. package/public-api.d.ts +3 -2
  648. package/assets/themes/readme.md +0 -0
  649. package/esm2022/lib/core/lottie-animation.mjs +0 -48
  650. package/esm2022/lib/home/options/options.component.mjs +0 -97
  651. package/esm2022/lib/options/options.service.mjs +0 -42
  652. package/lib/home/options/options.component.d.ts +0 -45
  653. package/lib/options/options.service.d.ts +0 -14
@@ -117,7 +117,8 @@ export class TypeAutocomplete {
117
117
  this.focused = false;
118
118
  }
119
119
  set textFormControlName(val) {
120
- this._textFormControl = (this.ngControl.control.parent).controls[val];
120
+ const parent = this.ngControl.control.parent;
121
+ this._textFormControl = parent.controls[val];
121
122
  }
122
123
  set textFormControl(val) {
123
124
  this._textFormControl = val;
@@ -163,7 +164,7 @@ export class TypeAutocomplete {
163
164
  this._configuration = this._session.profile.types.find(t => t.name === this._type);
164
165
  if (!this._configuration)
165
166
  throw `${this._type} is not a known type.`;
166
- this._column = this._configuration.columns ? this._configuration.columns.find(c => !c.flags || c.flags.indexOf('Key') < 0) : null;
167
+ this._column = this._configuration.columns ? this._configuration.columns.find(c => !c.flags || c.flags.indexOf('Key') < 0) : undefined;
167
168
  this._items$ = this._control.valueChanges.pipe(takeUntil(this._destroy), debounceTime(250), filter(v => isString(v) && v.length > this._minimumChars), switchMap(v => this._service.all(this._type, v)));
168
169
  this._control.statusChanges.pipe(takeUntil(this._destroy)).subscribe(() => {
169
170
  this.errorState = this._control.errors != null;
@@ -180,8 +181,8 @@ export class TypeAutocomplete {
180
181
  this.textChange.complete();
181
182
  this.optionSelected.complete();
182
183
  }
183
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TypeAutocomplete, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.FocusMonitor }, { token: i0.ElementRef }, { token: i3.SessionService }, { token: i4.DatasourceService }], target: i0.ɵɵFactoryTarget.Component }); }
184
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: TypeAutocomplete, selector: "bizdoc-autocomplete", inputs: { _type: ["type", "_type"], placeholder: "placeholder", text: "text", required: "required", disabled: "disabled", value: "value", minimumChars: "minimumChars", textFormControlName: "textFormControlName", textFormControl: "textFormControl" }, outputs: { textChange: "textChange", optionSelected: "optionSelected" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" }, classAttribute: "row" }, providers: [{ provide: MatFormFieldControl, useExisting: TypeAutocomplete }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "trigger", first: true, predicate: ["input"], descendants: true, read: MatAutocompleteTrigger, static: true }], ngImport: i0, template: `<input matInput [matAutocomplete]="auto" [placeholder]="placeholder" [formControl]="_control" #input
184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TypeAutocomplete, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.FocusMonitor }, { token: i0.ElementRef }, { token: i3.SessionService }, { token: i4.DatasourceService }], target: i0.ɵɵFactoryTarget.Component }); }
185
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: TypeAutocomplete, selector: "bizdoc-autocomplete", inputs: { _type: ["type", "_type"], placeholder: "placeholder", text: "text", required: "required", disabled: "disabled", value: "value", minimumChars: "minimumChars", textFormControlName: "textFormControlName", textFormControl: "textFormControl" }, outputs: { textChange: "textChange", optionSelected: "optionSelected" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" }, classAttribute: "row" }, providers: [{ provide: MatFormFieldControl, useExisting: TypeAutocomplete }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "trigger", first: true, predicate: ["input"], descendants: true, read: MatAutocompleteTrigger, static: true }], ngImport: i0, template: `<input matInput [matAutocomplete]="auto" [placeholder]="placeholder" [formControl]="_control" #input
185
186
  (focus)="_onFocus()" (blur)="_onBlur()" [required]="required"/>
186
187
  <mat-autocomplete #auto (optionSelected)="_optionSelected($event)" [displayWith]='displayFn'>
187
188
  @for (v of _items$ | async; track v) {
@@ -199,7 +200,7 @@ export class TypeAutocomplete {
199
200
  <button mat-icon-button matSuffix (click)="clear()"><mat-icon>close</mat-icon></button>
200
201
  }`, isInline: true, dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }] }); }
201
202
  }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: TypeAutocomplete, decorators: [{
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TypeAutocomplete, decorators: [{
203
204
  type: Component,
204
205
  args: [{
205
206
  selector: 'bizdoc-autocomplete',
@@ -269,4 +270,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
269
270
  }], textFormControl: [{
270
271
  type: Input
271
272
  }] } });
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvYXV0by1jb21wbGV0ZS5pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBc0IsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFtQyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFnQyxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXRHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBMkJsRCxNQUFNLE9BQ0UsZ0JBQWdCO0lBQ3RCLEtBQUs7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMxQyxDQUFDO2FBQ2MsV0FBTSxHQUFHLENBQUMsQUFBSixDQUFLO0lBaUIxQixJQUFhLFdBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxHQUFXO1FBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQWNELGVBQWUsQ0FBQyxDQUErQjtRQUM3QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBaUIsSUFBSSxFQUFFLENBQUM7UUFDeEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM3RCxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNsQixJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksS0FBSyxLQUFjLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25GLElBQ0ksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUNELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsR0FBWTtRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLElBQUksSUFBSSxDQUFDLFNBQVM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDOztZQUVqRCxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQ0ksUUFBUSxLQUFjLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsSUFBSSxRQUFRLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlDLElBQUksSUFBSSxDQUFDLFNBQVM7Z0JBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7O2dCQUV4QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFLRCxpQkFBaUIsQ0FBQyxHQUFhO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBQ0QsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUNELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUNELGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFhLEtBQUs7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxHQUFXO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQWEsWUFBWSxDQUFDLEdBQVcsSUFBSSxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDNUQsU0FBUyxDQUFDLEdBQVcsRUFBRSxTQUFrQjtRQUMvQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNsQixVQUFVO1FBQ1YscURBQXFEO1FBQ3JELEtBQUs7UUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDbkUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFhLG1CQUFtQixDQUFDLEdBQVc7UUFDMUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQWdCLENBQUM7SUFDeEcsQ0FBQztJQUNELElBQWEsZUFBZSxDQUFDLEdBQWdCO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQXVDLFNBQW9CLEVBQVUsR0FBaUIsRUFBVSxNQUErQixFQUFVLFFBQXdCLEVBQVUsUUFBMkI7UUFBL0osY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUF5QjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUExSTlMLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUlqQixhQUFRLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUM3QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFNcEIsT0FBRSxHQUFHLHNCQUFzQixnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBVzVELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3hDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFDbEYsY0FBUyxHQUFHLENBQUMsSUFBb0IsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxJQUFJO2dCQUNQLE9BQU8sU0FBUyxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO2lCQUNmLENBQUM7Z0JBQ0osSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQyxDQUFBO1FBVUQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQThCaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFZLDJCQUEyQixDQUFDO1FBQ2IsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFnQy9DLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBNkJULGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTlDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDdEMsQ0FBQztRQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztZQUN0QixNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssdUJBQXVCLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQzVDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUN6RCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDWixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLElBQUksR0FBRztZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7OEdBbkxLLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLDJnQkF6QlgsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyw2TUEwQ2xDLHNCQUFzQiwyQ0F6Q3REOzs7Ozs7Ozs7Ozs7Ozs7O1FBZ0JKOzsyRkFRQSxnQkFBZ0I7a0JBM0J2QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsa0JBQWtCLEVBQUUsQ0FBQztvQkFDNUUsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O1FBZ0JKO29CQUNOLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsS0FBSzt3QkFDWixrQkFBa0IsRUFBRSxrQkFBa0I7d0JBQ3RDLHlCQUF5QixFQUFFLGFBQWE7cUJBQ3pDO2lCQUNGOzswQkFrSmMsUUFBUTs7MEJBQUksSUFBSTswSkFoSVMsWUFBWTtzQkFBakQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNnQyxPQUFPO3NCQUExRSxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFO2dCQUMxQyxFQUFFO3NCQUF6QixXQUFXO2dCQUNHLEtBQUs7c0JBQW5CLEtBQUs7dUJBQUMsTUFBTTtnQkFFQSxXQUFXO3NCQUF2QixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkFDYSxVQUFVO3NCQUE1QixNQUFNO2dCQUNZLGNBQWM7c0JBQWhDLE1BQU07Z0JBdUJILGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBS3pCLFFBQVE7c0JBRFgsS0FBSztnQkFhRixRQUFRO3NCQURYLEtBQUs7Z0JBY2dDLFdBQVc7c0JBQWhELFdBQVc7dUJBQUMsdUJBQXVCO2dCQXlCdkIsS0FBSztzQkFBakIsS0FBSztnQkFRTyxZQUFZO3NCQUF4QixLQUFLO2dCQXNCTyxtQkFBbUI7c0JBQS9CLEtBQUs7Z0JBR08sZUFBZTtzQkFBM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgSG9zdEJpbmRpbmcsIE9wdGlvbmFsLCBTZWxmLCBPbkluaXQsIEVsZW1lbnRSZWYsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIERvQ2hlY2sgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCwgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcclxuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCwgc3dpdGNoTWFwLCBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9kYXRhc291cmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUeXBlLCBGaWVsZEluZm8gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBpc09iamVjdCwgaXNTdHJpbmcgfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1hdXRvY29tcGxldGUnLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IFR5cGVBdXRvY29tcGxldGUgfV0sXHJcbiAgdGVtcGxhdGU6IGA8aW5wdXQgbWF0SW5wdXQgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cIl9jb250cm9sXCIgI2lucHV0XHJcbiAgICAgIChmb2N1cyk9XCJfb25Gb2N1cygpXCIgKGJsdXIpPVwiX29uQmx1cigpXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIvPlxyXG4gICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0byAob3B0aW9uU2VsZWN0ZWQpPVwiX29wdGlvblNlbGVjdGVkKCRldmVudClcIiBbZGlzcGxheVdpdGhdPSdkaXNwbGF5Rm4nPlxyXG4gICAgICAgIEBmb3IgKHYgb2YgX2l0ZW1zJCB8IGFzeW5jOyB0cmFjayB2KSB7XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidlwiPlxyXG4gICAgICAgICAgICBAaWYgKCFfY29sdW1uKSB7XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3t2LnZhbHVlfX08L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGlmIChfY29sdW1uKSB7XHJcbiAgICAgICAgICAgICAgPHNwYW4+e3t2LnZhbHVlW19jb2x1bW4ubmFtZV19fTwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICBAaWYgKF9jb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJjbGVhcigpXCI+PG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgfWAsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdyb3cnLFxyXG4gICAgJ1tjbGFzcy5mbG9hdGluZ10nOiAnc2hvdWxkTGFiZWxGbG9hdCcsXHJcbiAgICAnW2F0dHIuYXJpYS1kZXNjcmliZWRieV0nOiAnZGVzY3JpYmVkQnknXHJcbiAgfSxcclxufSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgVHlwZUF1dG9jb21wbGV0ZSBpbXBsZW1lbnRzIE1hdEZvcm1GaWVsZENvbnRyb2w8c3RyaW5nPiwgRG9DaGVjaywgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBmb2N1cygpIHtcclxuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkID0gMDtcclxuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3JlcXVpcmVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF92YWx1ZT86IHN0cmluZztcclxuICBwcml2YXRlIF9vbkNoYW5nZTogYW55O1xyXG4gIHByaXZhdGUgX29uVG91Y2hlZDogYW55O1xyXG4gIHJlYWRvbmx5IF9jb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBfaXRlbXMkOiBPYnNlcnZhYmxlPEtleVZhbHVlW10+O1xyXG4gIF9jb2x1bW46IEZpZWxkSW5mbztcclxuICBwcml2YXRlIF9jb25maWd1cmF0aW9uOiBUeXBlO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSkgdHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcclxuICBASG9zdEJpbmRpbmcoKSByZWFkb25seSBpZCA9IGB0eXBlLWF1dG8tY29tcGxldGUtJHtUeXBlQXV0b2NvbXBsZXRlLm5leHRJZCsrfWA7XHJcbiAgQElucHV0KCd0eXBlJykgX3R5cGUhOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfdGV4dEZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcclxuICBASW5wdXQoKSBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcclxuICB9XHJcbiAgc2V0IHBsYWNlaG9sZGVyKHBsaDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHBsaDtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgQElucHV0KCkgdGV4dDogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSB0ZXh0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IG9wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50PigpO1xyXG4gIGRpc3BsYXlGbiA9IChpdGVtOiB7IHZhbHVlOiBhbnkgfSkgPT4ge1xyXG4gICAgaWYgKCFpdGVtKVxyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgaWYgKCFpc09iamVjdChpdGVtLnZhbHVlKSlcclxuICAgICAgcmV0dXJuIGl0ZW0udmFsdWU7XHJcbiAgICBlbHNlIHtcclxuICAgICAgbGV0IG5hbWUgPSBPYmplY3Qua2V5cyhpdGVtLnZhbHVlKVswXTtcclxuICAgICAgcmV0dXJuIGl0ZW0udmFsdWVbbmFtZV07XHJcbiAgICB9XHJcbiAgfVxyXG4gIF9vcHRpb25TZWxlY3RlZChlOiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XHJcbiAgICBjb25zdCB7IHZhbHVlLCBrZXkgfSA9IGUub3B0aW9uLnZhbHVlIGFzIEtleVZhbHVlIHx8IHt9O1xyXG4gICAgY29uc3QgdGV4dCA9IHRoaXMuX2NvbHVtbiA/IHZhbHVlW3RoaXMuX2NvbHVtbi5uYW1lXSA6IHZhbHVlO1xyXG4gICAgdGhpcy5fdmFsdWUgPSBrZXk7XHJcbiAgICB0aGlzLl90ZXh0Rm9ybUNvbnRyb2wgJiYgdGhpcy5fdGV4dEZvcm1Db250cm9sLnNldFZhbHVlKHRleHQsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMudGV4dENoYW5nZS5lbWl0KHRleHQpO1xyXG4gICAgdGhpcy5vcHRpb25TZWxlY3RlZC5lbWl0KHsgdmFsdWU6IGtleSwgdGV4dCB9KTtcclxuICAgIHRoaXMuX29uQ2hhbmdlICYmIHRoaXMuX29uQ2hhbmdlKGtleSk7XHJcbiAgfVxyXG4gIGZvY3VzZWQgPSBmYWxzZTtcclxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7IHJldHVybiAhdGhpcy5fY29udHJvbC52YWx1ZSB8fCB0aGlzLl9jb250cm9sLnZhbHVlID09PSAnJzsgfVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmxvYXRpbmcnKVxyXG4gIGdldCBzaG91bGRMYWJlbEZsb2F0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgfVxyXG4gIHNldCByZXF1aXJlZChyZXE6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlcSk7XHJcbiAgICBpZiAodGhpcy5fcmVxdWlyZWQpXHJcbiAgICAgIHRoaXMuX2NvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fY29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9kaXNhYmxlZDsgfVxyXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuX2NvbnRyb2wuZGlzYWJsZWQgIT09IHRoaXMuX2Rpc2FibGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLl9kaXNhYmxlZClcclxuICAgICAgICB0aGlzLl9jb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuX2NvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGVycm9yU3RhdGUgPSBmYWxzZTtcclxuICBjb250cm9sVHlwZT86IHN0cmluZyA9ICdiaXpkb2MtdHlwZS1hdXRvLWNvbXBsZXRlJztcclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpIGRlc2NyaWJlZEJ5ID0gJyc7XHJcblxyXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuZGVzY3JpYmVkQnkgPSBpZHMuam9pbignICcpO1xyXG4gIH1cclxuICBvbkNvbnRhaW5lckNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgdGhpcy50cmlnZ2VyLm9wZW5QYW5lbCgpO1xyXG4gIH1cclxuICBjbGVhcigpIHtcclxuICAgIHRoaXMuX3NldFZhbHVlKG51bGwsIHRydWUpO1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgJiYgdGhpcy5fb25DaGFuZ2UobnVsbCk7XHJcbiAgfVxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NldFZhbHVlKG9iaiwgZmFsc2UpO1xyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcbiAgQElucHV0KCkgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG4gIHNldCB2YWx1ZSh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc2V0VmFsdWUodmFsLCB0cnVlKTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbWluaW11bUNoYXJzID0gMTtcclxuICBASW5wdXQoKSBzZXQgbWluaW11bUNoYXJzKHZhbDogbnVtYmVyKSB7IHRoaXMuX21pbmltdW1DaGFycyA9IHZhbDsgfVxyXG4gIHByaXZhdGUgX3NldFZhbHVlKHZhbDogc3RyaW5nLCBlbWl0RXZlbnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gdmFsO1xyXG4gICAgLy9pZiAodmFsKVxyXG4gICAgLy90aGlzLnNlcnZpY2UuZ2V0KHRoaXMuc291cmNlLCB2YWwpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgIC8vfSk7XHJcbiAgICB0aGlzLl9jb250cm9sLnNldFZhbHVlKHZhbCA/IHsga2V5OiB2YWwsIHZhbHVlOiB0aGlzLnRleHQgfHwgdmFsIH0gOiB2YWwsIHsgZW1pdEV2ZW50IH0pO1xyXG4gIH1cclxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5lcnJvclN0YXRlID0gdGhpcy5uZ0NvbnRyb2wuaW52YWxpZCAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBfb25Gb2N1cygpIHtcclxuICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQgJiYgdGhpcy5fb25Ub3VjaGVkKCk7XHJcbiAgfVxyXG4gIF9vbkJsdXIoKSB7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IHRleHRGb3JtQ29udHJvbE5hbWUodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RleHRGb3JtQ29udHJvbCA9ICgodGhpcy5uZ0NvbnRyb2wuY29udHJvbCBhcyBGb3JtQ29udHJvbCkucGFyZW50KS5jb250cm9sc1t2YWxdIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgdGV4dEZvcm1Db250cm9sKHZhbDogRm9ybUNvbnRyb2wpIHtcclxuICAgIHRoaXMuX3RleHRGb3JtQ29udHJvbCA9IHZhbDtcclxuICB9XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNlbGYoKSBwdWJsaWMgbmdDb250cm9sOiBOZ0NvbnRyb2wsIHByaXZhdGUgX2ZtOiBGb2N1c01vbml0b3IsIHByaXZhdGUgX2VsUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiwgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsIHByaXZhdGUgX3NlcnZpY2U6IERhdGFzb3VyY2VTZXJ2aWNlKSB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICAgIF9mbS5tb25pdG9yKF9lbFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKS5zdWJzY3JpYmUob3JpZ2luID0+IHtcclxuICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbmZpZ3VyYXRpb24gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUudHlwZXMuZmluZCh0ID0+IHQubmFtZSA9PT0gdGhpcy5fdHlwZSk7XHJcbiAgICBpZiAoIXRoaXMuX2NvbmZpZ3VyYXRpb24pXHJcbiAgICAgIHRocm93IGAke3RoaXMuX3R5cGV9IGlzIG5vdCBhIGtub3duIHR5cGUuYDtcclxuICAgIHRoaXMuX2NvbHVtbiA9IHRoaXMuX2NvbmZpZ3VyYXRpb24uY29sdW1ucyA/IHRoaXMuX2NvbmZpZ3VyYXRpb24uY29sdW1ucy5maW5kKGMgPT4gIWMuZmxhZ3N8fGMuZmxhZ3MuaW5kZXhPZignS2V5JykgPCAwKSA6IG51bGw7XHJcbiAgICB0aGlzLl9pdGVtcyQgPSB0aGlzLl9jb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgIGRlYm91bmNlVGltZSgyNTApLFxyXG4gICAgICBmaWx0ZXIodiA9PiBpc1N0cmluZyh2KSAmJiB2Lmxlbmd0aCA+IHRoaXMuX21pbmltdW1DaGFycyksXHJcbiAgICAgIHN3aXRjaE1hcCh2ID0+XHJcbiAgICAgICAgdGhpcy5fc2VydmljZS5hbGwodGhpcy5fdHlwZSwgdikpKTtcclxuICAgIHRoaXMuX2NvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5lcnJvclN0YXRlID0gdGhpcy5fY29udHJvbC5lcnJvcnMgIT0gbnVsbDtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdmFsID0gdGhpcy52YWx1ZTtcclxuICAgIGlmICh2YWwpXHJcbiAgICAgIHRoaXMuX3NlcnZpY2UuZ2V0KHRoaXMuX3R5cGUsIHZhbCkuc3Vic2NyaWJlKHYgPT5cclxuICAgICAgICB0aGlzLl9jb250cm9sLnNldFZhbHVlKHsga2V5OiB2YWwsIHZhbHVlOiB2IHx8IHZhbCB9LCB7IGVtaXRFdmVudDogZmFsc2UgfSkpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5fZm0uc3RvcE1vbml0b3JpbmcodGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy50ZXh0Q2hhbmdlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBLZXlWYWx1ZSB7IGtleTogYW55LCB2YWx1ZTogYW55IH1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB7XHJcbiAgcmVhZG9ubHkgdGV4dDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IHZhbHVlOiBhbnk7XHJcbn1cclxuIl19
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1jb21wbGV0ZS5pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jb3JlL2lucHV0cy9hdXRvLWNvbXBsZXRlLmlucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFzQixNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUN2SixPQUFPLEVBQW1DLFdBQVcsRUFBRSxVQUFVLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQWdDLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7Ozs7Ozs7QUEyQmxELE1BQU0sT0FDRSxnQkFBZ0I7SUFDdEIsS0FBSztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFDLENBQUM7YUFDYyxXQUFNLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFpQjFCLElBQWEsV0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEdBQVc7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFD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QUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxrQkFBa0IsRUFBRSxDQUFDO29CQUM1RSxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7UUFnQko7b0JBQ04sSUFBSSxFQUFFO3dCQUNKLEtBQUssRUFBRSxLQUFLO3dCQUNaLGtCQUFrQixFQUFFLGtCQUFrQjt3QkFDdEMseUJBQXlCLEVBQUUsYUFBYTtxQkFDekM7aUJBQ0Y7OzBCQW1KYyxRQUFROzswQkFBSSxJQUFJOzBKQWpJUyxZQUFZO3NCQUFqRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ2dDLE9BQU87c0JBQTFFLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUU7Z0JBQzFDLEVBQUU7c0JBQXpCLFdBQVc7Z0JBQ0csS0FBSztzQkFBbkIsS0FBSzt1QkFBQyxNQUFNO2dCQUVBLFdBQVc7c0JBQXZCLEtBQUs7Z0JBT0csSUFBSTtzQkFBWixLQUFLO2dCQUNhLFVBQVU7c0JBQTVCLE1BQU07Z0JBQ1ksY0FBYztzQkFBaEMsTUFBTTtnQkF1QkgsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLGdCQUFnQjtnQkFLekIsUUFBUTtzQkFEWCxLQUFLO2dCQWFGLFFBQVE7c0JBRFgsS0FBSztnQkFjZ0MsV0FBVztzQkFBaEQsV0FBVzt1QkFBQyx1QkFBdUI7Z0JBeUJ2QixLQUFLO3NCQUFqQixLQUFLO2dCQVFPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBc0JPLG1CQUFtQjtzQkFBL0IsS0FBSztnQkFJTyxlQUFlO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBIb3N0QmluZGluZywgT3B0aW9uYWwsIFNlbGYsIE9uSW5pdCwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRG9DaGVjayB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0NvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwsIHN3aXRjaE1hcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vZGF0YXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHlwZSwgRmllbGRJbmZvIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgaXNPYmplY3QsIGlzU3RyaW5nIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtYXV0b2NvbXBsZXRlJyxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBUeXBlQXV0b2NvbXBsZXRlIH1dLFxyXG4gIHRlbXBsYXRlOiBgPGlucHV0IG1hdElucHV0IFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbF09XCJfY29udHJvbFwiICNpbnB1dFxyXG4gICAgICAoZm9jdXMpPVwiX29uRm9jdXMoKVwiIChibHVyKT1cIl9vbkJsdXIoKVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiLz5cclxuICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG8gKG9wdGlvblNlbGVjdGVkKT1cIl9vcHRpb25TZWxlY3RlZCgkZXZlbnQpXCIgW2Rpc3BsYXlXaXRoXT0nZGlzcGxheUZuJz5cclxuICAgICAgICBAZm9yICh2IG9mIF9pdGVtcyQgfCBhc3luYzsgdHJhY2sgdikge1xyXG4gICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInZcIj5cclxuICAgICAgICAgICAgQGlmICghX2NvbHVtbikge1xyXG4gICAgICAgICAgICAgIDxzcGFuPnt7di52YWx1ZX19PC9zcGFuPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZiAoX2NvbHVtbikge1xyXG4gICAgICAgICAgICAgIDxzcGFuPnt7di52YWx1ZVtfY29sdW1uLm5hbWVdfX08L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgQGlmIChfY29udHJvbC52YWx1ZSkge1xyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdFN1ZmZpeCAoY2xpY2spPVwiY2xlYXIoKVwiPjxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIH1gLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncm93JyxcclxuICAgICdbY2xhc3MuZmxvYXRpbmddJzogJ3Nob3VsZExhYmVsRmxvYXQnLFxyXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ2Rlc2NyaWJlZEJ5J1xyXG4gIH0sXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIFR5cGVBdXRvY29tcGxldGUgaW1wbGVtZW50cyBNYXRGb3JtRmllbGRDb250cm9sPHN0cmluZyB8IG51bGw+LCBEb0NoZWNrLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBPbkluaXQge1xyXG4gIGZvY3VzKCkge1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuICBwcml2YXRlIHN0YXRpYyBuZXh0SWQgPSAwO1xyXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3ZhbHVlPzogc3RyaW5nIHwgbnVsbDtcclxuICBwcml2YXRlIF9vbkNoYW5nZTogYW55O1xyXG4gIHByaXZhdGUgX29uVG91Y2hlZDogYW55O1xyXG4gIHJlYWRvbmx5IF9jb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBfaXRlbXMkOiBPYnNlcnZhYmxlPEtleVZhbHVlW10+O1xyXG4gIF9jb2x1bW4/OiBGaWVsZEluZm87XHJcbiAgcHJpdmF0ZSBfY29uZmlndXJhdGlvbjogVHlwZTtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0pIHRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgQEhvc3RCaW5kaW5nKCkgcmVhZG9ubHkgaWQgPSBgdHlwZS1hdXRvLWNvbXBsZXRlLSR7VHlwZUF1dG9jb21wbGV0ZS5uZXh0SWQrK31gO1xyXG4gIEBJbnB1dCgndHlwZScpIF90eXBlITogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3RleHRGb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XHJcbiAgQElucHV0KCkgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgfVxyXG4gIHNldCBwbGFjZWhvbGRlcihwbGg6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZztcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgdGV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBvcHRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudD4oKTtcclxuICBkaXNwbGF5Rm4gPSAoaXRlbTogeyB2YWx1ZTogYW55IH0pID0+IHtcclxuICAgIGlmICghaXRlbSlcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIGlmICghaXNPYmplY3QoaXRlbS52YWx1ZSkpXHJcbiAgICAgIHJldHVybiBpdGVtLnZhbHVlO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGxldCBuYW1lID0gT2JqZWN0LmtleXMoaXRlbS52YWx1ZSlbMF07XHJcbiAgICAgIHJldHVybiBpdGVtLnZhbHVlW25hbWVdO1xyXG4gICAgfVxyXG4gIH1cclxuICBfb3B0aW9uU2VsZWN0ZWQoZTogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgY29uc3QgeyB2YWx1ZSwga2V5IH0gPSBlLm9wdGlvbi52YWx1ZSBhcyBLZXlWYWx1ZSB8fCB7fTtcclxuICAgIGNvbnN0IHRleHQgPSB0aGlzLl9jb2x1bW4gPyB2YWx1ZVt0aGlzLl9jb2x1bW4ubmFtZV0gOiB2YWx1ZTtcclxuICAgIHRoaXMuX3ZhbHVlID0ga2V5O1xyXG4gICAgdGhpcy5fdGV4dEZvcm1Db250cm9sICYmIHRoaXMuX3RleHRGb3JtQ29udHJvbC5zZXRWYWx1ZSh0ZXh0LCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB0aGlzLnRleHRDaGFuZ2UuZW1pdCh0ZXh0KTtcclxuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdCh7IHZhbHVlOiBrZXksIHRleHQgfSk7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSAmJiB0aGlzLl9vbkNoYW5nZShrZXkpO1xyXG4gIH1cclxuICBmb2N1c2VkID0gZmFsc2U7XHJcbiAgZ2V0IGVtcHR5KCk6IGJvb2xlYW4geyByZXR1cm4gIXRoaXMuX2NvbnRyb2wudmFsdWUgfHwgdGhpcy5fY29udHJvbC52YWx1ZSA9PT0gJyc7IH1cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmZsb2F0aW5nJylcclxuICBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvY3VzZWQgfHwgIXRoaXMuZW1wdHk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xyXG4gIH1cclxuICBzZXQgcmVxdWlyZWQocmVxOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXEpO1xyXG4gICAgaWYgKHRoaXMuX3JlcXVpcmVkKVxyXG4gICAgICB0aGlzLl9jb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuX2NvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIGlmICh0aGlzLl9jb250cm9sLmRpc2FibGVkICE9PSB0aGlzLl9kaXNhYmxlZCkge1xyXG4gICAgICBpZiAodGhpcy5fZGlzYWJsZWQpXHJcbiAgICAgICAgdGhpcy5fY29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgICB0aGlzLl9jb250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBlcnJvclN0YXRlID0gZmFsc2U7XHJcbiAgY29udHJvbFR5cGU/OiBzdHJpbmcgPSAnYml6ZG9jLXR5cGUtYXV0by1jb21wbGV0ZSc7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBkZXNjcmliZWRCeSA9ICcnO1xyXG5cclxuICBzZXREZXNjcmliZWRCeUlkcyhpZHM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oJyAnKTtcclxuICB9XHJcbiAgb25Db250YWluZXJDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIHRoaXMudHJpZ2dlci5vcGVuUGFuZWwoKTtcclxuICB9XHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLl9zZXRWYWx1ZShudWxsLCB0cnVlKTtcclxuICAgIHRoaXMuX29uQ2hhbmdlICYmIHRoaXMuX29uQ2hhbmdlKG51bGwpO1xyXG4gIH1cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZXRWYWx1ZShvYmosIGZhbHNlKTtcclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZSBhcyBzdHJpbmcgfCBudWxsO1xyXG4gIH1cclxuICBzZXQgdmFsdWUodmFsOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICB0aGlzLl9zZXRWYWx1ZSh2YWwsIHRydWUpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9taW5pbXVtQ2hhcnMgPSAxO1xyXG4gIEBJbnB1dCgpIHNldCBtaW5pbXVtQ2hhcnModmFsOiBudW1iZXIpIHsgdGhpcy5fbWluaW11bUNoYXJzID0gdmFsOyB9XHJcbiAgcHJpdmF0ZSBfc2V0VmFsdWUodmFsOiBzdHJpbmcgfCBudWxsLCBlbWl0RXZlbnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gdmFsO1xyXG4gICAgLy9pZiAodmFsKVxyXG4gICAgLy90aGlzLnNlcnZpY2UuZ2V0KHRoaXMuc291cmNlLCB2YWwpLnN1YnNjcmliZSh2ID0+IHtcclxuICAgIC8vfSk7XHJcbiAgICB0aGlzLl9jb250cm9sLnNldFZhbHVlKHZhbCA/IHsga2V5OiB2YWwsIHZhbHVlOiB0aGlzLnRleHQgfHwgdmFsIH0gOiB2YWwsIHsgZW1pdEV2ZW50IH0pO1xyXG4gIH1cclxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5lcnJvclN0YXRlID0gKHRoaXMubmdDb250cm9sLmludmFsaWQgYXMgYm9vbGVhbikgJiYgKHRoaXMubmdDb250cm9sLnRvdWNoZWQgYXMgYm9vbGVhbik7XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIF9vbkZvY3VzKCkge1xyXG4gICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuX29uVG91Y2hlZCAmJiB0aGlzLl9vblRvdWNoZWQoKTtcclxuICB9XHJcbiAgX29uQmx1cigpIHtcclxuICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgdGV4dEZvcm1Db250cm9sTmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgY29uc3QgcGFyZW50ID0gKHRoaXMubmdDb250cm9sLmNvbnRyb2wgYXMgRm9ybUNvbnRyb2wpLnBhcmVudCEgYXMgRm9ybUdyb3VwO1xyXG4gICAgdGhpcy5fdGV4dEZvcm1Db250cm9sID0gcGFyZW50LmNvbnRyb2xzW3ZhbF0gYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNldCB0ZXh0Rm9ybUNvbnRyb2wodmFsOiBGb3JtQ29udHJvbCkge1xyXG4gICAgdGhpcy5fdGV4dEZvcm1Db250cm9sID0gdmFsO1xyXG4gIH1cclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCwgcHJpdmF0ZSBfZm06IEZvY3VzTW9uaXRvciwgcHJpdmF0ZSBfZWxSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSwgcHJpdmF0ZSBfc2VydmljZTogRGF0YXNvdXJjZVNlcnZpY2UpIHtcclxuICAgIGlmICh0aGlzLm5nQ29udHJvbCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgfVxyXG4gICAgX2ZtLm1vbml0b3IoX2VsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xyXG4gICAgICB0aGlzLmZvY3VzZWQgPSAhIW9yaWdpbjtcclxuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY29uZmlndXJhdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS50eXBlcy5maW5kKHQgPT4gdC5uYW1lID09PSB0aGlzLl90eXBlKSE7XHJcbiAgICBpZiAoIXRoaXMuX2NvbmZpZ3VyYXRpb24pXHJcbiAgICAgIHRocm93IGAke3RoaXMuX3R5cGV9IGlzIG5vdCBhIGtub3duIHR5cGUuYDtcclxuICAgIHRoaXMuX2NvbHVtbiA9IHRoaXMuX2NvbmZpZ3VyYXRpb24uY29sdW1ucyA/IHRoaXMuX2NvbmZpZ3VyYXRpb24uY29sdW1ucy5maW5kKGMgPT4gIWMuZmxhZ3MgfHwgYy5mbGFncy5pbmRleE9mKCdLZXknKSA8IDApIDogdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5faXRlbXMkID0gdGhpcy5fY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMjUwKSxcclxuICAgICAgZmlsdGVyKHYgPT4gaXNTdHJpbmcodikgJiYgdi5sZW5ndGggPiB0aGlzLl9taW5pbXVtQ2hhcnMpLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PlxyXG4gICAgICAgIHRoaXMuX3NlcnZpY2UuYWxsKHRoaXMuX3R5cGUsIHYpKSk7XHJcbiAgICB0aGlzLl9jb250cm9sLnN0YXR1c0NoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9IHRoaXMuX2NvbnRyb2wuZXJyb3JzICE9IG51bGw7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IHZhbCA9IHRoaXMudmFsdWU7XHJcbiAgICBpZiAodmFsKVxyXG4gICAgICB0aGlzLl9zZXJ2aWNlLmdldCh0aGlzLl90eXBlLCB2YWwpLnN1YnNjcmliZSh2ID0+XHJcbiAgICAgICAgdGhpcy5fY29udHJvbC5zZXRWYWx1ZSh7IGtleTogdmFsLCB2YWx1ZTogdiB8fCB2YWwgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX2ZtLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsUmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcclxuICAgIHRoaXMudGV4dENoYW5nZS5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5vcHRpb25TZWxlY3RlZC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgS2V5VmFsdWUgeyBrZXk6IGFueSwgdmFsdWU6IGFueSB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQge1xyXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcclxuICByZWFkb25seSB2YWx1ZTogYW55O1xyXG59XHJcbiJdfQ==
@@ -34,14 +34,12 @@ export class CombinationPickerBody {
34
34
  this._working = false;
35
35
  this._form = this._fb.group({});
36
36
  this._keys = {};
37
- this._values = {};
37
+ this._datatypes = {};
38
38
  this._data = overlayData || dialogData;
39
39
  const { cube, exploreSettings } = this._data;
40
40
  this._explorable = exploreSettings !== undefined;
41
- if (cube)
42
- this._cube = this._session.profile.cubes.find(c => c.name === cube);
43
- else
44
- this._cube = this._session.profile.cubes[0];
41
+ this._cube = cube ? this._session.profile.cubes.find(c => c.name === cube)
42
+ : this._session.profile.cubes[0];
45
43
  if (!this._cube)
46
44
  throw 'No cube';
47
45
  this._axes = this._cube.axes.filter(a => a.combination);
@@ -54,7 +52,7 @@ export class CombinationPickerBody {
54
52
  this._keys[a.name] = [];
55
53
  this._form.addControl(a.name, control);
56
54
  this._ds.map(a.dataType).subscribe(m => {
57
- this._values[a.dataType] = m;
55
+ this._datatypes[a.dataType] = m;
58
56
  const keys = this._keys[a.name] = Object.keys(m);
59
57
  if (keys.length < 2) {
60
58
  if (keys.length === 1)
@@ -125,7 +123,7 @@ export class CombinationPickerBody {
125
123
  * @param code
126
124
  */
127
125
  _nameOf(codes) {
128
- return this._axes.map((a, i) => this._values[a.dataType][codes[i]] || codes[i]).
126
+ return this._axes.map((a, i) => this._datatypes[a.dataType][codes[i]] || codes[i]).
129
127
  join(this._data.displayDivider || ' ');
130
128
  }
131
129
  /**
@@ -150,12 +148,12 @@ export class CombinationPickerBody {
150
148
  this.selectionChange.complete();
151
149
  this.modeChange.complete();
152
150
  }
153
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CombinationPickerBody, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: COMBINATION_PICKER_BODY, optional: true }, { token: i1.FormBuilder }, { token: i2.PromptService }, { token: i3.CubeInfo }, { token: i4.DatasourceService }, { token: i0.ChangeDetectorRef }, { token: i5.SessionService }, { token: i6.CubeService }], target: i0.ɵɵFactoryTarget.Component }); }
154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.4", type: CombinationPickerBody, selector: "bizdoc-combination-picker-body", viewQueries: [{ propertyName: "axes", predicate: MatSelect, descendants: true }], ngImport: i0, template: "<div class=\"account-picker-popup\" cdkTrapFocus>\r\n @switch (mode) {\r\n <!--[@transformPanel]=\"enter\"-->\r\n @case ('filter') {\r\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- filter -->\r\n <form [formGroup]=\"_form\">\r\n @for (a of _axes; track a; let i = $index) {\r\n <mat-form-field subscriptSizing=\"dynamic\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n @if (_keys[a.name].length>1) {\r\n <mat-option>{{'All'|translate}}</mat-option>\r\n }\r\n @for (key of _keys[a.name]; track key) {\r\n <mat-option [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n </form>\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <!-- results -->\r\n @case ('results') {\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </div>\r\n <mat-action-list>\r\n @for (codes of _combinations; track codes) {\r\n <mat-list-item (click)=\"_select(codes)\">\r\n <h3 matListItemTitle>{{_nameOf(codes)}}</h3>\r\n @if (_explorable) {\r\n <p matListItemLine><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\r\n }\r\n </mat-list-item>\r\n }\r\n </mat-action-list>\r\n }\r\n }\r\n</div>\r\n", styles: [".account-picker-popup{display:flex;flex-direction:column;width:100%}.account-picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;gap:6px;display:flex}.account-picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:calc(50% - 4px)}.account-picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.account-picker-popup ::ng-deep .mat-mdc-list-base{overflow:auto}.account-picker-popup ::ng-deep .mat-mdc-list-base .mat-mdc-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatActionList, selector: "mat-action-list", exportAs: ["matActionList"] }, { kind: "component", type: i8.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i8.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i8.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] }); }
151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CombinationPickerBody, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: COMBINATION_PICKER_BODY, optional: true }, { token: i1.FormBuilder }, { token: i2.PromptService }, { token: i3.CubeInfo }, { token: i4.DatasourceService }, { token: i0.ChangeDetectorRef }, { token: i5.SessionService }, { token: i6.CubeService }], target: i0.ɵɵFactoryTarget.Component }); }
152
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: CombinationPickerBody, selector: "bizdoc-combination-picker-body", viewQueries: [{ propertyName: "axes", predicate: MatSelect, descendants: true }], ngImport: i0, template: "<div class=\"picker-popup\" cdkTrapFocus>\r\n @switch (mode) {\r\n <!--[@transformPanel]=\"enter\"-->\r\n @case ('filter') {\r\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- filter -->\r\n <form [formGroup]=\"_form\">\r\n @for (a of _axes; track a; let i = $index) {\r\n <mat-form-field subscriptSizing=\"dynamic\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n @if (_keys[a.name].length>1) {\r\n <mat-option>{{'All'|translate}}</mat-option>\r\n }\r\n @for (key of _keys[a.name]; track key) {\r\n <mat-option [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n </form>\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <!-- results -->\r\n @case ('results') {\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </div>\r\n <mat-action-list>\r\n @for (codes of _combinations; track codes) {\r\n <mat-list-item (click)=\"_select(codes)\">\r\n <h3 matListItemTitle>{{_nameOf(codes)}}</h3>\r\n @if (_explorable) {\r\n <p matListItemLine><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\r\n }\r\n </mat-list-item>\r\n }\r\n </mat-action-list>\r\n }\r\n }\r\n</div>\r\n", styles: [".picker-popup{color:var(--sys-on-surface);display:flex;flex-direction:column;width:100%}.picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;gap:6px;display:flex}.picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:calc(50% - 4px)}.picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.picker-popup ::ng-deep .mat-mdc-list-base{overflow:auto}.picker-popup ::ng-deep .mat-mdc-list-base .mat-mdc-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"], dependencies: [{ kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatActionList, selector: "mat-action-list", exportAs: ["matActionList"] }, { kind: "component", type: i8.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i8.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i8.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i12.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i14.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] }); }
155
153
  }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CombinationPickerBody, decorators: [{
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CombinationPickerBody, decorators: [{
157
155
  type: Component,
158
- args: [{ selector: 'bizdoc-combination-picker-body', template: "<div class=\"account-picker-popup\" cdkTrapFocus>\r\n @switch (mode) {\r\n <!--[@transformPanel]=\"enter\"-->\r\n @case ('filter') {\r\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- filter -->\r\n <form [formGroup]=\"_form\">\r\n @for (a of _axes; track a; let i = $index) {\r\n <mat-form-field subscriptSizing=\"dynamic\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n @if (_keys[a.name].length>1) {\r\n <mat-option>{{'All'|translate}}</mat-option>\r\n }\r\n @for (key of _keys[a.name]; track key) {\r\n <mat-option [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n </form>\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <!-- results -->\r\n @case ('results') {\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </div>\r\n <mat-action-list>\r\n @for (codes of _combinations; track codes) {\r\n <mat-list-item (click)=\"_select(codes)\">\r\n <h3 matListItemTitle>{{_nameOf(codes)}}</h3>\r\n @if (_explorable) {\r\n <p matListItemLine><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\r\n }\r\n </mat-list-item>\r\n }\r\n </mat-action-list>\r\n }\r\n }\r\n</div>\r\n", styles: [".account-picker-popup{display:flex;flex-direction:column;width:100%}.account-picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;gap:6px;display:flex}.account-picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:calc(50% - 4px)}.account-picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.account-picker-popup ::ng-deep .mat-mdc-list-base{overflow:auto}.account-picker-popup ::ng-deep .mat-mdc-list-base .mat-mdc-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"] }]
156
+ args: [{ selector: 'bizdoc-combination-picker-body', template: "<div class=\"picker-popup\" cdkTrapFocus>\r\n @switch (mode) {\r\n <!--[@transformPanel]=\"enter\"-->\r\n @case ('filter') {\r\n <mat-progress-bar mode=\"indeterminate\" [style.visibility]=\"_working ? 'visible':'hidden'\"></mat-progress-bar>\r\n <!-- filter -->\r\n <form [formGroup]=\"_form\">\r\n @for (a of _axes; track a; let i = $index) {\r\n <mat-form-field subscriptSizing=\"dynamic\">\r\n <mat-label>{{a.title}}</mat-label>\r\n <mat-select [formControlName]=\"a.name\">\r\n @if (_keys[a.name].length>1) {\r\n <mat-option>{{'All'|translate}}</mat-option>\r\n }\r\n @for (key of _keys[a.name]; track key) {\r\n <mat-option [value]=\"key\">{{_values[a.dataType][key]}}</mat-option>\r\n }\r\n </mat-select>\r\n <mat-hint>{{_form.controls[a.name].value}}</mat-hint>\r\n </mat-form-field>\r\n }\r\n </form>\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_filter()\" [disabled]=\"_working\" [bizdocTooltip]=\"'Search'|translate\" class=\"mat-icon-rtl-mirror\" [tabIndex]=\"_axes.length\">\r\n <mat-icon>search</mat-icon>\r\n </button>\r\n </div>\r\n }\r\n <!-- results -->\r\n @case ('results') {\r\n <div class=\"actions\">\r\n <button mat-icon-button (click)=\"_switchMode('filter')\" [bizdocTooltip]=\"'Filter'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n </div>\r\n <mat-action-list>\r\n @for (codes of _combinations; track codes) {\r\n <mat-list-item (click)=\"_select(codes)\">\r\n <h3 matListItemTitle>{{_nameOf(codes)}}</h3>\r\n @if (_explorable) {\r\n <p matListItemLine><a (click)=\"_info(codes, $event)\">{{_codeOf(codes)}}</a></p>\r\n }\r\n </mat-list-item>\r\n }\r\n </mat-action-list>\r\n }\r\n }\r\n</div>\r\n", styles: [".picker-popup{color:var(--sys-on-surface);display:flex;flex-direction:column;width:100%}.picker-popup form{padding:8px;flex-flow:column wrap;box-sizing:border-box;gap:6px;display:flex}.picker-popup form>*{flex:1 1 100%;box-sizing:border-box;max-width:calc(50% - 4px)}.picker-popup .actions{display:flex;flex-direction:row;place-content:center flex-end;align-items:center;padding:8px}.picker-popup ::ng-deep .mat-mdc-list-base{overflow:auto}.picker-popup ::ng-deep .mat-mdc-list-base .mat-mdc-list-item .mat-line:nth-child(n+2){font-size:14px}@media screen and (min-width: 600px){.account-picker-popup form{flex-flow:row wrap}}\n"] }]
159
157
  }], ctorParameters: () => [{ type: undefined, decorators: [{
160
158
  type: Optional
161
159
  }, {
@@ -170,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
170
168
  type: ViewChildren,
171
169
  args: [MatSelect]
172
170
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcGlja2VyLWJvZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5wdXRzL2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2lucHV0cy9jb21iaW5hdGlvbi1waWNrZXItYm9keS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBRXpKLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQVMxQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBc0Isa0JBQWtCLENBQUMsQ0FBQztBQStCbkcsTUFBTTtBQU1OLE1BQU0sT0FBTyxxQkFBcUI7SUFlaEMsWUFDdUMsVUFBK0IsRUFDdkIsV0FBZ0MsRUFDckUsR0FBZ0IsRUFDaEIsU0FBd0IsRUFDeEIsWUFBc0IsRUFDdEIsR0FBc0IsRUFDdEIsR0FBc0IsRUFDdEIsUUFBd0IsRUFDeEIsUUFBcUI7UUFOckIsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENB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LEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBM0lVLHFCQUFxQixrQkFnQlYsZUFBZSw2QkFDZix1QkFBdUI7a0dBakJsQyxxQkFBcUIsK0ZBSWxCLFNBQVMsZ0RDdER6QixvOURBOENBOzsyRkRJYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZ0NBQWdDOzswQkFvQnZDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBQ2xDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsdUJBQXVCOzZPQWJwQixJQUFJO3NCQUE1QixZQUFZO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwsIEluamVjdCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQ3ViZUF4aXMsIEN1YmUgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIi4uL3Nlc3Npb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDdWJlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gXCIuLi9kYXRhc291cmNlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDdWJlSW5mbyB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUtaW5mby5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN1bVNldHRpbmdzIH0gZnJvbSBcIi4uLy4uL2N1YmUvbWF0cml4L3RhYmxlLmNvbXBvbmVudFwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IENPTUJJTkFUSU9OX1BJQ0tFUl9CT0RZID0gbmV3IEluamVjdGlvblRva2VuPENvbWJpbmF0aW9uQm9keURhdGE+KCdjb21iaW5hdGlvbl9ib2R5Jyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbWJpbmF0aW9uQm9keURhdGEge1xyXG4gIGN1YmU6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIGxpbWl0OiBudW1iZXI7XHJcbiAgZGl2aWRlcjogc3RyaW5nO1xyXG4gIGRpc3BsYXlEaXZpZGVyOiBzdHJpbmc7XHJcbiAgZXhwbG9yZVNldHRpbmdzOiBFeHBsb3JlU2V0dGluZ3M7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwbG9yZVNldHRpbmdzIHtcclxuICBlbmFibGU/OiBib29sZWFuO1xyXG4gIC8qKiBjdWJlIHZpZXcgbmFtZSAqL1xyXG4gIHZpZXc/OiBzdHJpbmc7XHJcbiAgZGVmYXVsdHM/OiB7XHJcbiAgICBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcik7XHJcbiAgfTtcclxuICBpbmRpY2VzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgLyoqIG9uZSBvciBtb3JlIGF4aXMgKi9cclxuICBmaWx0ZXJzPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgeEF4aXM6IHN0cmluZztcclxuICBzZXJpZXM6IHN0cmluZztcclxuICBzdW0/OiBTdW1TZXR0aW5ncyB8IFN1bVNldHRpbmdzW10sXHJcbiAgLyoqICovXHJcbiAgYWdncmVnYXRlPzogc3RyaW5nW10gfCBzdHJpbmc7XHJcbiAgc2VyaWVzVG90YWxMYWJlbD86IHN0cmluZztcclxuICB4QXhpc1RvdGFsTGFiZWw/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE1vZGUgPSAnZmlsdGVyJyB8ICdyZXN1bHRzJztcclxuLyoqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWNvbWJpbmF0aW9uLXBpY2tlci1ib2R5JyxcclxuICB0ZW1wbGF0ZVVybDogJ2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydjb21iaW5hdGlvbi1waWNrZXItYm9keS5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbWJpbmF0aW9uUGlja2VyQm9keSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbWJpbmF0aW9uU2VsZWN0ZWRFdmVudD4oKTtcclxuICByZWFkb25seSBtb2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxNb2RlPigpO1xyXG4gIG1vZGU6IE1vZGU7XHJcbiAgQFZpZXdDaGlsZHJlbihNYXRTZWxlY3QpIGF4ZXM6IFF1ZXJ5TGlzdDxNYXRTZWxlY3Q+O1xyXG4gIHJlYWRvbmx5IF9leHBsb3JhYmxlOiBib29sZWFuO1xyXG4gIF93b3JraW5nID0gZmFsc2U7XHJcbiAgcmVhZG9ubHkgX2F4ZXM6IEN1YmVBeGlzW107XHJcbiAgcmVhZG9ubHkgX2Zvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgX2tleXM6IHsgW3R5cGU6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpW10gfSA9IHt9O1xyXG4gIHJlYWRvbmx5IF92YWx1ZXM6IHsgW3R5cGU6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCB7IFtrZXk6IG51bWJlcl06IGFueSB9IH0gPSB7fTtcclxuICBfY29tYmluYXRpb25zOiBzdHJpbmdbXVtdO1xyXG4gIHByaXZhdGUgX2RhdGE6IENvbWJpbmF0aW9uQm9keURhdGE7XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBkaWFsb2dEYXRhOiBDb21iaW5hdGlvbkJvZHlEYXRhLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChDT01CSU5BVElPTl9QSUNLRVJfQk9EWSkgb3ZlcmxheURhdGE6IENvbWJpbmF0aW9uQm9keURhdGEsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIF9zbmFja2JhcjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRJbmZvOiBDdWJlSW5mbyxcclxuICAgIHByaXZhdGUgX2RzOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VydmljZTogQ3ViZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuX2RhdGEgPSBvdmVybGF5RGF0YSB8fCBkaWFsb2dEYXRhO1xyXG4gICAgY29uc3QgeyBjdWJlLCBleHBsb3JlU2V0dGluZ3MgfSA9IHRoaXMuX2RhdGE7XHJcbiAgICB0aGlzLl9leHBsb3JhYmxlID0gZXhwbG9yZVNldHRpbmdzICE9PSB1bmRlZmluZWQ7XHJcbiAgICBpZiAoY3ViZSlcclxuICAgICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKTtcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIGlmICghdGhpcy5fY3ViZSkgdGhyb3cgJ05vIGN1YmUnO1xyXG4gICAgdGhpcy5fYXhlcyA9IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiBhLmNvbWJpbmF0aW9uKTtcclxuICAgIGlmICghdGhpcy5fYXhlcy5sZW5ndGgpIHRocm93ICdObyBheGlzIHdpdGggY29tYmluYXRpb24nO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2F4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgICAgIHRoaXMuX2tleXNbYS5uYW1lXSA9IFtdO1xyXG4gICAgICB0aGlzLl9mb3JtLmFkZENvbnRyb2woYS5uYW1lLCBjb250cm9sKTtcclxuICAgICAgdGhpcy5fZHMubWFwKGEuZGF0YVR5cGUpLnN1YnNjcmliZShtID0+IHtcclxuICAgICAgICB0aGlzLl92YWx1ZXNbYS5kYXRhVHlwZV0gPSBtO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSB0aGlzLl9rZXlzW2EubmFtZV0gPSBPYmplY3Qua2V5cyhtKTtcclxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPT09IDEpIGNvbnRyb2wuc2V0VmFsdWUoa2V5c1swXSk7XHJcbiAgICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuX2RhdGEudmFsdWUgJiYgdGhpcy5fcGF0Y2hGb3JtKHRoaXMuX2RhdGEudmFsdWUpO1xyXG4gICAgdGhpcy5fc3dpdGNoTW9kZSgnZmlsdGVyJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcGF0Y2hGb3JtKGNvZGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgY29kZXMgPSBjb2RlLnNwbGl0KHRoaXMuX2RhdGEuZGl2aWRlciksXHJcbiAgICAgIHZhbHVlcyA9IHt9O1xyXG4gICAgdGhpcy5fYXhlcy5mb3JFYWNoKChhLCBpKSA9PiBjb2Rlc1tpXSAmJiAodmFsdWVzW2EubmFtZV0gPSBjb2Rlc1tpXSkpO1xyXG4gICAgdGhpcy5fZm9ybS5wYXRjaFZhbHVlKHZhbHVlcyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB2YWxcclxuICAgKi9cclxuICBfc3dpdGNoTW9kZSh2YWw6IE1vZGUpIHtcclxuICAgIHRoaXMubW9kZSA9IHZhbDtcclxuICAgIHRoaXMubW9kZUNoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHZhbCA9PT0gJ2ZpbHRlcicpIHRoaXMuYXhlcy5maXJzdC5mb2N1cygpO1xyXG4gICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9LCAwKVxyXG4gIH1cclxuICAvKipcclxuICAgKiBmaWx0ZXIgKi9cclxuICBfZmlsdGVyKCkge1xyXG4gICAgdGhpcy5fd29ya2luZyA9IHRydWU7XHJcbiAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLl9mb3JtLnZhbHVlLCBhcmdzID0ge307XHJcbiAgICB0aGlzLl9heGVzLmZvckVhY2goYSA9PiB2YWx1ZXNbYS5uYW1lXSAmJiAoYXJnc1thLm5hbWVdID0gdmFsdWVzW2EubmFtZV0pKTtcclxuICAgIHRoaXMuX3NlcnZpY2UuY29tYmluYXRpb25zKHRoaXMuX2N1YmUubmFtZSwgYXJncywgeyB0YWtlOiB0aGlzLl9kYXRhLmxpbWl0LCBwcm9ncmVzczogZmFsc2UgfSkuXHJcbiAgICAgIHBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5fd29ya2luZyA9IGZhbHNlKSkuXHJcbiAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9jb21iaW5hdGlvbnMgPSByO1xyXG4gICAgICAgICAgdGhpcy5fc3dpdGNoTW9kZSgncmVzdWx0cycpO1xyXG4gICAgICAgICAgci5sZW5ndGggPT09IHRoaXMuX2RhdGEubGltaXQgJiYgdGhpcy5fc25hY2tiYXIudG9hc3QoJ1Rha2VNb3JlJyk7XHJcbiAgICAgICAgfSwgZXJyb3I6ICgpID0+IHRoaXMuX3NuYWNrYmFyLmVycm9yKClcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGl0ZW0gc2VsZWN0XHJcbiAgICogQHBhcmFtIGNvZGVcclxuICAgKi9cclxuICBfc2VsZWN0KGF4ZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX25hbWVPZihheGVzKSxcclxuICAgICAgdmFsdWUgPSB0aGlzLl9jb2RlT2YoYXhlcyk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHsgdmFsdWUsIGRlc2NyaXB0aW9uLCBheGVzIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gY29kZXNcclxuICAgKi9cclxuICBfY29kZU9mKGNvZGVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gY29kZXMuam9pbih0aGlzLl9kYXRhLmRpdmlkZXIpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiB0cmFuc2xhdGUgY29kZSBzZWdtZW50cyB0byBuYW1lc1xyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgX25hbWVPZihjb2Rlczogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F4ZXMubWFwKChhLCBpKSA9PiB0aGlzLl92YWx1ZXNbYS5kYXRhVHlwZV1bY29kZXNbaV1dIHx8IGNvZGVzW2ldKS5cclxuICAgICAgam9pbih0aGlzLl9kYXRhLmRpc3BsYXlEaXZpZGVyIHx8ICcgJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIG9wZW4gaW5mb1xyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqL1xyXG4gIF9pbmZvKGNvZGVzOiBzdHJpbmdbXSwgZXZ0OiBFdmVudCkge1xyXG4gICAgY29uc3QgeyBkZWZhdWx0cyB9ID0gdGhpcy5fZGF0YS5leHBsb3JlU2V0dGluZ3MgfHwge307XHJcbiAgICBjb25zdCBheGVzID0ge1xyXG4gICAgICAuLi5kZWZhdWx0c1xyXG4gICAgfTtcclxuICAgIGNvZGVzLnNsaWNlKDAsIHRoaXMuX2F4ZXMubGVuZ3RoKS5mb3JFYWNoKChhLCBpKSA9PiBheGVzW3RoaXMuX2F4ZXNbaV0ubmFtZV0gPSBhKTtcclxuXHJcbiAgICB0aGlzLl9hY2NvdW50SW5mby5wb3B1cChheGVzLCBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB7XHJcbiAgICAgIC4uLnRoaXMuX2RhdGEuZXhwbG9yZVNldHRpbmdzLFxyXG4gICAgICBjdWJlOiB0aGlzLl9jdWJlLm5hbWVcclxuICAgIH0pO1xyXG5cclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLm1vZGVDaGFuZ2UuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluYXRpb25TZWxlY3RlZEV2ZW50IHtcclxuICByZWFkb25seSB2YWx1ZTogc3RyaW5nOyByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nOyByZWFkb25seSBheGVzOiBzdHJpbmdbXTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYWNjb3VudC1waWNrZXItcG9wdXBcIiBjZGtUcmFwRm9jdXM+XHJcbiAgQHN3aXRjaCAobW9kZSkge1xyXG4gICAgPCEtLVtAdHJhbnNmb3JtUGFuZWxdPVwiZW50ZXJcIi0tPlxyXG4gICAgQGNhc2UgKCdmaWx0ZXInKSB7XHJcbiAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJpbmRldGVybWluYXRlXCIgW3N0eWxlLnZpc2liaWxpdHldPVwiX3dvcmtpbmcgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICAgIDwhLS0gZmlsdGVyIC0tPlxyXG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIl9mb3JtXCI+XHJcbiAgICAgICAgQGZvciAoYSBvZiBfYXhlczsgdHJhY2sgYTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3thLnRpdGxlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sTmFtZV09XCJhLm5hbWVcIj5cclxuICAgICAgICAgICAgICBAaWYgKF9rZXlzW2EubmFtZV0ubGVuZ3RoPjEpIHtcclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uPnt7J0FsbCd8dHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBmb3IgKGtleSBvZiBfa2V5c1thLm5hbWVdOyB0cmFjayBrZXkpIHtcclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJrZXlcIj57e192YWx1ZXNbYS5kYXRhVHlwZV1ba2V5XX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICA8bWF0LWhpbnQ+e3tfZm9ybS5jb250cm9sc1thLm5hbWVdLnZhbHVlfX08L21hdC1oaW50PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZm9ybT5cclxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiX2ZpbHRlcigpXCIgW2Rpc2FibGVkXT1cIl93b3JraW5nXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NlYXJjaCd8dHJhbnNsYXRlXCIgY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCIgW3RhYkluZGV4XT1cIl9heGVzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPCEtLSByZXN1bHRzIC0tPlxyXG4gICAgQGNhc2UgKCdyZXN1bHRzJykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJfc3dpdGNoTW9kZSgnZmlsdGVyJylcIiBbYml6ZG9jVG9vbHRpcF09XCInRmlsdGVyJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+ZmlsdGVyX2xpc3Q8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG1hdC1hY3Rpb24tbGlzdD5cclxuICAgICAgICBAZm9yIChjb2RlcyBvZiBfY29tYmluYXRpb25zOyB0cmFjayBjb2Rlcykge1xyXG4gICAgICAgICAgPG1hdC1saXN0LWl0ZW0gKGNsaWNrKT1cIl9zZWxlY3QoY29kZXMpXCI+XHJcbiAgICAgICAgICAgIDxoMyBtYXRMaXN0SXRlbVRpdGxlPnt7X25hbWVPZihjb2Rlcyl9fTwvaDM+XHJcbiAgICAgICAgICAgIEBpZiAoX2V4cGxvcmFibGUpIHtcclxuICAgICAgICAgICAgICA8cCBtYXRMaXN0SXRlbUxpbmU+PGEgKGNsaWNrKT1cIl9pbmZvKGNvZGVzLCAkZXZlbnQpXCI+e3tfY29kZU9mKGNvZGVzKX19PC9hPjwvcD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9tYXQtYWN0aW9uLWxpc3Q+XHJcbiAgICB9XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcGlja2VyLWJvZHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvY29tYmluYXRpb24tcGlja2VyLWJvZHkudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvY29yZS9pbnB1dHMvY29tYmluYXRpb24tcGlja2VyLWJvZHkuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFnQyxNQUFNLGVBQWUsQ0FBQztBQUV6SixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTMUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQXNCLGtCQUFrQixDQUFDLENBQUM7QUErQm5HLE1BQU07QUFNTixNQUFNLE9BQU8scUJBQXFCO0lBZWhDLFlBQ3VDLFVBQStCLEVBQ3ZCLFdBQWdDLEVBQ3JFLEdBQWdCLEVBQ2hCLFNBQXdCLEVBQ3hCLFlBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLFFBQXdCLEVBQ3hCLFFBQXFCO1FBTnJCLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDaEIsY0FBUyxHQUFULFNBQVMsQ0FBZTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixhQUFRLEdBQVIsUUFBUSxDQUFh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QUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0ExSVUscUJBQXFCLGtCQWdCVixlQUFlLDZCQUNmLHVCQUF1QjtrR0FqQmxDLHFCQUFxQiwrRkFJbEIsU0FBUyxnREN0RHpCLDQ4REE4Q0E7OzJGRElhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxnQ0FBZ0M7OzBCQW9CdkMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxlQUFlOzswQkFDbEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx1QkFBdUI7Nk9BYnBCLElBQUk7c0JBQTVCLFlBQVk7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCwgSW5qZWN0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZHJlbiwgUXVlcnlMaXN0LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBDdWJlQXhpcywgQ3ViZSB9IGZyb20gXCIuLi9tb2RlbHNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2Vzc2lvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2N1YmUvY3ViZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSBcIi4uL2RhdGFzb3VyY2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSBcIi4uL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEN1YmVJbmZvIH0gZnJvbSBcIi4uLy4uL2N1YmUvY3ViZS1pbmZvLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3VtU2V0dGluZ3MgfSBmcm9tIFwiLi4vLi4vY3ViZS9tYXRyaXgvdGFibGUuY29tcG9uZW50XCI7XHJcblxyXG5leHBvcnQgY29uc3QgQ09NQklOQVRJT05fUElDS0VSX0JPRFkgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tYmluYXRpb25Cb2R5RGF0YT4oJ2NvbWJpbmF0aW9uX2JvZHknKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluYXRpb25Cb2R5RGF0YSB7XHJcbiAgY3ViZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgbGltaXQ6IG51bWJlcjtcclxuICBkaXZpZGVyOiBzdHJpbmc7XHJcbiAgZGlzcGxheURpdmlkZXI6IHN0cmluZztcclxuICBleHBsb3JlU2V0dGluZ3M6IEV4cGxvcmVTZXR0aW5ncztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHBsb3JlU2V0dGluZ3Mge1xyXG4gIGVuYWJsZT86IGJvb2xlYW47XHJcbiAgLyoqIGN1YmUgdmlldyBuYW1lICovXHJcbiAgdmlldz86IHN0cmluZztcclxuICBkZWZhdWx0cz86IHtcclxuICAgIFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKTtcclxuICB9O1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICAvKiogb25lIG9yIG1vcmUgYXhpcyAqL1xyXG4gIGZpbHRlcnM/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICB4QXhpczogc3RyaW5nO1xyXG4gIHNlcmllczogc3RyaW5nO1xyXG4gIHN1bT86IFN1bVNldHRpbmdzIHwgU3VtU2V0dGluZ3NbXSxcclxuICAvKiogKi9cclxuICBhZ2dyZWdhdGU/OiBzdHJpbmdbXSB8IHN0cmluZztcclxuICBzZXJpZXNUb3RhbExhYmVsPzogc3RyaW5nO1xyXG4gIHhBeGlzVG90YWxMYWJlbD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTW9kZSA9ICdmaWx0ZXInIHwgJ3Jlc3VsdHMnO1xyXG4vKiogKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY29tYmluYXRpb24tcGlja2VyLWJvZHknLFxyXG4gIHRlbXBsYXRlVXJsOiAnY29tYmluYXRpb24tcGlja2VyLWJvZHkuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tYmluYXRpb25QaWNrZXJCb2R5IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tYmluYXRpb25TZWxlY3RlZEV2ZW50PigpO1xyXG4gIHJlYWRvbmx5IG1vZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE1vZGU+KCk7XHJcbiAgbW9kZTogTW9kZTtcclxuICBAVmlld0NoaWxkcmVuKE1hdFNlbGVjdCkgYXhlczogUXVlcnlMaXN0PE1hdFNlbGVjdD47XHJcbiAgcmVhZG9ubHkgX2V4cGxvcmFibGU6IGJvb2xlYW47XHJcbiAgX3dvcmtpbmcgPSBmYWxzZTtcclxuICByZWFkb25seSBfYXhlczogQ3ViZUF4aXNbXTtcclxuICByZWFkb25seSBfZm9ybSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICB9KTtcclxuICByZWFkb25seSBfa2V5czogeyBbdHlwZTogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcilbXSB9ID0ge307XHJcbiAgcmVhZG9ubHkgX2RhdGF0eXBlczogeyBbdHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHsgW2tleTogc3RyaW5nXTogYW55IH0gfSA9IHt9O1xyXG4gIF9jb21iaW5hdGlvbnM6IHN0cmluZ1tdW107XHJcbiAgcHJpdmF0ZSBfZGF0YTogQ29tYmluYXRpb25Cb2R5RGF0YTtcclxuICBwcml2YXRlIF9jdWJlOiBDdWJlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGRpYWxvZ0RhdGE6IENvbWJpbmF0aW9uQm9keURhdGEsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KENPTUJJTkFUSU9OX1BJQ0tFUl9CT0RZKSBvdmVybGF5RGF0YTogQ29tYmluYXRpb25Cb2R5RGF0YSxcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgX3NuYWNrYmFyOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudEluZm86IEN1YmVJbmZvLFxyXG4gICAgcHJpdmF0ZSBfZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSkge1xyXG4gICAgdGhpcy5fZGF0YSA9IG92ZXJsYXlEYXRhIHx8IGRpYWxvZ0RhdGE7XHJcbiAgICBjb25zdCB7IGN1YmUsIGV4cGxvcmVTZXR0aW5ncyB9ID0gdGhpcy5fZGF0YTtcclxuICAgIHRoaXMuX2V4cGxvcmFibGUgPSBleHBsb3JlU2V0dGluZ3MgIT09IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuX2N1YmUgPSBjdWJlID8gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpIVxyXG4gICAgICA6IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlc1swXTtcclxuICAgIGlmICghdGhpcy5fY3ViZSkgdGhyb3cgJ05vIGN1YmUnO1xyXG4gICAgdGhpcy5fYXhlcyA9IHRoaXMuX2N1YmUuYXhlcy5maWx0ZXIoYSA9PiBhLmNvbWJpbmF0aW9uKTtcclxuICAgIGlmICghdGhpcy5fYXhlcy5sZW5ndGgpIHRocm93ICdObyBheGlzIHdpdGggY29tYmluYXRpb24nO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2F4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuX2ZiLmNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCk7XHJcbiAgICAgIHRoaXMuX2tleXNbYS5uYW1lXSA9IFtdO1xyXG4gICAgICB0aGlzLl9mb3JtLmFkZENvbnRyb2woYS5uYW1lLCBjb250cm9sKTtcclxuICAgICAgdGhpcy5fZHMubWFwKGEuZGF0YVR5cGUpLnN1YnNjcmliZShtID0+IHtcclxuICAgICAgICB0aGlzLl9kYXRhdHlwZXNbYS5kYXRhVHlwZV0gPSBtO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSB0aGlzLl9rZXlzW2EubmFtZV0gPSBPYmplY3Qua2V5cyhtKTtcclxuICAgICAgICBpZiAoa2V5cy5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggPT09IDEpIGNvbnRyb2wuc2V0VmFsdWUoa2V5c1swXSk7XHJcbiAgICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIHRoaXMuX2RhdGEudmFsdWUgJiYgdGhpcy5fcGF0Y2hGb3JtKHRoaXMuX2RhdGEudmFsdWUpO1xyXG4gICAgdGhpcy5fc3dpdGNoTW9kZSgnZmlsdGVyJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcGF0Y2hGb3JtKGNvZGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgY29kZXMgPSBjb2RlLnNwbGl0KHRoaXMuX2RhdGEuZGl2aWRlciksXHJcbiAgICAgIHZhbHVlcyA9IHt9IGFzIHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiAgICB0aGlzLl9heGVzLmZvckVhY2goKGEsIGkpID0+IGNvZGVzW2ldICYmICh2YWx1ZXNbYS5uYW1lXSA9IGNvZGVzW2ldKSk7XHJcbiAgICB0aGlzLl9mb3JtLnBhdGNoVmFsdWUodmFsdWVzKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHZhbFxyXG4gICAqL1xyXG4gIF9zd2l0Y2hNb2RlKHZhbDogTW9kZSkge1xyXG4gICAgdGhpcy5tb2RlID0gdmFsO1xyXG4gICAgdGhpcy5tb2RlQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodmFsID09PSAnZmlsdGVyJykgdGhpcy5heGVzLmZpcnN0LmZvY3VzKCk7XHJcbiAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0sIDApXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGZpbHRlciAqL1xyXG4gIF9maWx0ZXIoKSB7XHJcbiAgICB0aGlzLl93b3JraW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IHZhbHVlcyA9IHRoaXMuX2Zvcm0udmFsdWUgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcclxuICAgICAgYXJncyA9IHt9IGFzIHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcbiAgICB0aGlzLl9heGVzLmZvckVhY2goYSA9PiB2YWx1ZXNbYS5uYW1lXSAmJiAoYXJnc1thLm5hbWVdID0gdmFsdWVzW2EubmFtZV0pKTtcclxuICAgIHRoaXMuX3NlcnZpY2UuY29tYmluYXRpb25zKHRoaXMuX2N1YmUubmFtZSwgYXJncywgeyB0YWtlOiB0aGlzLl9kYXRhLmxpbWl0LCBwcm9ncmVzczogZmFsc2UgfSkuXHJcbiAgICAgIHBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5fd29ya2luZyA9IGZhbHNlKSkuXHJcbiAgICAgIHN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogciA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9jb21iaW5hdGlvbnMgPSByO1xyXG4gICAgICAgICAgdGhpcy5fc3dpdGNoTW9kZSgncmVzdWx0cycpO1xyXG4gICAgICAgICAgci5sZW5ndGggPT09IHRoaXMuX2RhdGEubGltaXQgJiYgdGhpcy5fc25hY2tiYXIudG9hc3QoJ1Rha2VNb3JlJyk7XHJcbiAgICAgICAgfSwgZXJyb3I6ICgpID0+IHRoaXMuX3NuYWNrYmFyLmVycm9yKClcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGl0ZW0gc2VsZWN0XHJcbiAgICogQHBhcmFtIGNvZGVcclxuICAgKi9cclxuICBfc2VsZWN0KGF4ZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuX25hbWVPZihheGVzKSxcclxuICAgICAgdmFsdWUgPSB0aGlzLl9jb2RlT2YoYXhlcyk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHsgdmFsdWUsIGRlc2NyaXB0aW9uLCBheGVzIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gY29kZXNcclxuICAgKi9cclxuICBfY29kZU9mKGNvZGVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gY29kZXMuam9pbih0aGlzLl9kYXRhLmRpdmlkZXIpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiB0cmFuc2xhdGUgY29kZSBzZWdtZW50cyB0byBuYW1lc1xyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICovXHJcbiAgX25hbWVPZihjb2Rlczogc3RyaW5nW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F4ZXMubWFwKChhLCBpKSA9PiB0aGlzLl9kYXRhdHlwZXNbYS5kYXRhVHlwZV1bY29kZXNbaV1dIHx8IGNvZGVzW2ldKS5cclxuICAgICAgam9pbih0aGlzLl9kYXRhLmRpc3BsYXlEaXZpZGVyIHx8ICcgJyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIG9wZW4gaW5mb1xyXG4gICAqIEBwYXJhbSBjb2RlXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqL1xyXG4gIF9pbmZvKGNvZGVzOiBzdHJpbmdbXSwgZXZ0OiBFdmVudCkge1xyXG4gICAgY29uc3QgeyBkZWZhdWx0cyB9ID0gdGhpcy5fZGF0YS5leHBsb3JlU2V0dGluZ3MgfHwge307XHJcbiAgICBjb25zdCBheGVzID0ge1xyXG4gICAgICAuLi5kZWZhdWx0c1xyXG4gICAgfTtcclxuICAgIGNvZGVzLnNsaWNlKDAsIHRoaXMuX2F4ZXMubGVuZ3RoKS5mb3JFYWNoKChhLCBpKSA9PiBheGVzW3RoaXMuX2F4ZXNbaV0ubmFtZV0gPSBhKTtcclxuXHJcbiAgICB0aGlzLl9hY2NvdW50SW5mby5wb3B1cChheGVzLCBldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LCB7XHJcbiAgICAgIC4uLnRoaXMuX2RhdGEuZXhwbG9yZVNldHRpbmdzLFxyXG4gICAgICBjdWJlOiB0aGlzLl9jdWJlLm5hbWVcclxuICAgIH0pO1xyXG5cclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLm1vZGVDaGFuZ2UuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tYmluYXRpb25TZWxlY3RlZEV2ZW50IHtcclxuICByZWFkb25seSB2YWx1ZTogc3RyaW5nOyByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nOyByZWFkb25seSBheGVzOiBzdHJpbmdbXTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicGlja2VyLXBvcHVwXCIgY2RrVHJhcEZvY3VzPlxyXG4gIEBzd2l0Y2ggKG1vZGUpIHtcclxuICAgIDwhLS1bQHRyYW5zZm9ybVBhbmVsXT1cImVudGVyXCItLT5cclxuICAgIEBjYXNlICgnZmlsdGVyJykge1xyXG4gICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiIFtzdHlsZS52aXNpYmlsaXR5XT1cIl93b3JraW5nID8gJ3Zpc2libGUnOidoaWRkZW4nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG4gICAgICA8IS0tIGZpbHRlciAtLT5cclxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJfZm9ybVwiPlxyXG4gICAgICAgIEBmb3IgKGEgb2YgX2F4ZXM7IHRyYWNrIGE7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7YS50aXRsZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiYS5uYW1lXCI+XHJcbiAgICAgICAgICAgICAgQGlmIChfa2V5c1thLm5hbWVdLmxlbmd0aD4xKSB7XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbj57eydBbGwnfHRyYW5zbGF0ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAZm9yIChrZXkgb2YgX2tleXNbYS5uYW1lXTsgdHJhY2sga2V5KSB7XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwia2V5XCI+e3tfdmFsdWVzW2EuZGF0YVR5cGVdW2tleV19fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgPG1hdC1oaW50Pnt7X2Zvcm0uY29udHJvbHNbYS5uYW1lXS52YWx1ZX19PC9tYXQtaGludD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Zvcm0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIl9maWx0ZXIoKVwiIFtkaXNhYmxlZF09XCJfd29ya2luZ1wiIFtiaXpkb2NUb29sdGlwXT1cIidTZWFyY2gnfHRyYW5zbGF0ZVwiIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiIFt0YWJJbmRleF09XCJfYXhlcy5sZW5ndGhcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIDwhLS0gcmVzdWx0cyAtLT5cclxuICAgIEBjYXNlICgncmVzdWx0cycpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiX3N3aXRjaE1vZGUoJ2ZpbHRlcicpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0ZpbHRlcid8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmZpbHRlcl9saXN0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxtYXQtYWN0aW9uLWxpc3Q+XHJcbiAgICAgICAgQGZvciAoY29kZXMgb2YgX2NvbWJpbmF0aW9uczsgdHJhY2sgY29kZXMpIHtcclxuICAgICAgICAgIDxtYXQtbGlzdC1pdGVtIChjbGljayk9XCJfc2VsZWN0KGNvZGVzKVwiPlxyXG4gICAgICAgICAgICA8aDMgbWF0TGlzdEl0ZW1UaXRsZT57e19uYW1lT2YoY29kZXMpfX08L2gzPlxyXG4gICAgICAgICAgICBAaWYgKF9leHBsb3JhYmxlKSB7XHJcbiAgICAgICAgICAgICAgPHAgbWF0TGlzdEl0ZW1MaW5lPjxhIChjbGljayk9XCJfaW5mbyhjb2RlcywgJGV2ZW50KVwiPnt7X2NvZGVPZihjb2Rlcyl9fTwvYT48L3A+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbWF0LWFjdGlvbi1saXN0PlxyXG4gICAgfVxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
@@ -100,7 +100,6 @@ export class CombinationPicker {
100
100
  this.stateChanges = new Subject();
101
101
  this._divider = ACCOUNT_DELIMITER;
102
102
  this.optionSelected = new EventEmitter();
103
- this._description = null;
104
103
  this.descriptionChange = new EventEmitter();
105
104
  this.id = `account-picker-${CombinationPicker.nextId++}`;
106
105
  this.focused = false;
@@ -225,15 +224,15 @@ export class CombinationPicker {
225
224
  this.descriptionChange.complete();
226
225
  this.stateChanges.complete();
227
226
  }
228
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CombinationPicker, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.MatFormField, optional: true }, { token: i3.Overlay }, { token: i4.MatDialog }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i5.FocusMonitor }, { token: i0.ElementRef }, { token: i6.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
229
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: CombinationPicker, selector: "bizdoc-combination-picker", inputs: { _divider: ["divider", "_divider"], _displayDivider: ["displayDivider", "_displayDivider"], limit: "limit", cube: "cube", exploreSettings: "exploreSettings", description: "description", touchUi: "touchUi", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, outputs: { optionSelected: "optionSelected", descriptionChange: "descriptionChange" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CombinationPicker }], viewQueries: [{ propertyName: "_input", first: true, predicate: MatInput, descendants: true }, { propertyName: "_template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<textarea matInput [disabled]=\"disabled\" (keydown)=\"_keyDown($event)\" [value]=\"description\" [placeholder]=\"placeholder\"></textarea>\r\n<mat-icon matSuffix tabindex=\"-1\" [ngClass]=\"{'mat-warn-text':errorState, 'disabled': disabled}\">arrow_drop_down</mat-icon>\r\n", styles: [":host{display:flex;flex-direction:row}:host textarea{resize:none;cursor:pointer;flex:1}.mat-warn-text{color:var(--color-sf-primary)}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
227
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CombinationPicker, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i2.MatFormField, optional: true }, { token: i3.Overlay }, { token: i4.MatDialog }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i5.FocusMonitor }, { token: i0.ElementRef }, { token: i6.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
228
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: CombinationPicker, selector: "bizdoc-combination-picker", inputs: { _divider: ["divider", "_divider"], _displayDivider: ["displayDivider", "_displayDivider"], limit: "limit", cube: "cube", exploreSettings: "exploreSettings", description: "description", touchUi: "touchUi", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, outputs: { optionSelected: "optionSelected", descriptionChange: "descriptionChange" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CombinationPicker }], viewQueries: [{ propertyName: "_input", first: true, predicate: MatInput, descendants: true }, { propertyName: "_template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<textarea matInput [disabled]=\"disabled\" (keydown)=\"_keyDown($event)\" [value]=\"description\" [placeholder]=\"placeholder\"></textarea>\r\n<mat-icon matSuffix tabindex=\"-1\" [ngClass]=\"{'mat-warn-text':errorState, 'disabled': disabled}\">arrow_drop_down</mat-icon>\r\n", styles: [":host{display:flex;flex-direction:row}:host textarea{resize:none;cursor:pointer;flex:1}.mat-warn-text{color:var(--sys-primary)}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
230
229
  }
231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: CombinationPicker, decorators: [{
230
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CombinationPicker, decorators: [{
232
231
  type: Component,
233
232
  args: [{ selector: 'bizdoc-combination-picker', providers: [{ provide: MatFormFieldControl, useExisting: CombinationPicker }], host: {
234
233
  '[class.floating]': 'shouldLabelFloat',
235
234
  '[attr.aria-describedby]': 'describedBy'
236
- }, template: "<textarea matInput [disabled]=\"disabled\" (keydown)=\"_keyDown($event)\" [value]=\"description\" [placeholder]=\"placeholder\"></textarea>\r\n<mat-icon matSuffix tabindex=\"-1\" [ngClass]=\"{'mat-warn-text':errorState, 'disabled': disabled}\">arrow_drop_down</mat-icon>\r\n", styles: [":host{display:flex;flex-direction:row}:host textarea{resize:none;cursor:pointer;flex:1}.mat-warn-text{color:var(--color-sf-primary)}\n"] }]
235
+ }, template: "<textarea matInput [disabled]=\"disabled\" (keydown)=\"_keyDown($event)\" [value]=\"description\" [placeholder]=\"placeholder\"></textarea>\r\n<mat-icon matSuffix tabindex=\"-1\" [ngClass]=\"{'mat-warn-text':errorState, 'disabled': disabled}\">arrow_drop_down</mat-icon>\r\n", styles: [":host{display:flex;flex-direction:row}:host textarea{resize:none;cursor:pointer;flex:1}.mat-warn-text{color:var(--sys-primary)}\n"] }]
237
236
  }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
238
237
  type: Optional
239
238
  }, {
@@ -283,4 +282,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
283
282
  type: ViewChild,
284
283
  args: [TemplateRef]
285
284
  }] } });
286
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL2lucHV0cy9jb21iaW5hdGlvbi1waWNrZXIudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvcmUvaW5wdXRzL2NvbWJpbmF0aW9uLXBpY2tlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdDLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBYSxXQUFXLEVBQUUsSUFBSSxFQUFtQixRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoTSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFnQixtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSWpGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUF1QixxQkFBcUIsRUFBNEIsdUJBQXVCLEVBQW1CLE1BQU0sMkJBQTJCLENBQUM7QUFDM0osT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7OztBQUVuRCxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFZekIsTUFBTSxPQUFPLGlCQUFpQjthQUNiLFdBQU0sR0FBRyxDQUFDLEFBQUosQ0FBSztJQWUxQixJQUFhLEtBQUssQ0FBQyxHQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUUsSUFBSSxLQUFLLEtBQWEsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQU0zQyxJQUFhLFdBQVcsQ0FBQyxHQUFXLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLElBQUksV0FBVyxLQUFhLE9BQU8sSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBSzdELElBQWEsV0FBVztRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLEdBQUc7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFDSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxHQUFHO1FBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUNJLFFBQVEsS0FBYyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2xELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBS0QsS0FBSyxLQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBQzlCLGlCQUFpQixDQUFDLEdBQWE7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxHQUFlO1FBQzlCLElBQUssR0FBRyxDQUFDLE1BQWtCLENBQUMsT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ2xELENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQVU7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNELFVBQVUsQ0FBQyxHQUFRO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ25CLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBYSxLQUFLO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsS0FBb0I7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBSUQsWUFBdUMsU0FBb0IsRUFDckMsVUFBd0IsRUFDcEMsUUFBaUIsRUFBVSxPQUFrQixFQUM3QyxHQUFxQixFQUNyQixTQUFtQixFQUNuQixHQUFpQixFQUNqQixXQUF1QixFQUN2QixJQUFvQjtRQVBTLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDckMsZUFBVSxHQUFWLFVBQVUsQ0FBYztRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUM3QyxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLFFBQUcsR0FBSCxHQUFHLENBQWM7UUFDakIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFyR3RCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixjQUFTLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM1QixlQUFVLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsV0FBTSxHQUFXLGFBQWEsQ0FBQztRQUk5QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDMUIsYUFBUSxHQUFXLGlCQUFpQixDQUFDO1FBTzlDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDL0QsaUJBQVksR0FBVyxJQUFJLENBQUM7UUFJM0Isc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUNoQyxPQUFFLEdBQUcsa0JBQWtCLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7UUFTNUUsWUFBTyxHQUFHLEtBQUssQ0FBQztRQXNCaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixnQkFBVyxHQUFZLHNCQUFzQixDQUFDO1FBQ1IsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFrQ3RDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBVzlDLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDdEMsQ0FBQztRQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUQsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsUUFBUTtJQUNSLENBQUM7SUFDRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztZQUNuRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBQ0QsUUFBUSxDQUFDLEdBQWtCO1FBQ3pCLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNiLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUNPLEtBQUs7UUFDWCxJQUFJLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUN6QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsTUFBTSxJQUFJLEdBQUc7WUFDWCxPQUFPLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdEIsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1NBQ2YsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO2dCQUN6RCxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO2dCQUMxQixJQUFJO2dCQUNKLFNBQVMsRUFBRSxNQUFNO2FBQ2xCLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2xELENBQUM7YUFDSSxDQUFDO1lBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDNUMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztvQkFDL0IsU0FBUyxFQUFFLENBQUM7NEJBQ1YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFFBQVEsRUFBRSxJQUFJO3lCQUNqRCxDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTO2lCQUMxQixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7O2dCQUVDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFDTyxPQUFPLENBQUMsSUFBMkI7UUFDekMsSUFBSSxDQUFDLFVBQVU7WUFDYixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxlQUFlO1lBQ2xCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNaLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ08sV0FBVztRQUNqQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUNPLGlCQUFpQjtRQUN2QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUN0QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztnQkFDaEUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixzQkFBc0IsRUFBRTtnQkFDeEIsYUFBYSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUMxRixFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQy9FLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDMUIsYUFBYSxFQUFFLGtDQUFrQztZQUNqRCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxJQUFJO1lBQy9ELFVBQVUsRUFBRSxZQUFZO1NBQ3pCLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEVBQUUsVUFBVSxDQUFDLGFBQWEsRUFBRTtZQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDdkUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDaEMsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUNPLDBCQUEwQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxRixDQUFDO0lBQ0QsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLFdBQVc7WUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDOztZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDOzhHQTNOVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwrakJBTmpCLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLENBQUMsa0VBbUVsRSxRQUFRLDRFQWtDUixXQUFXLGdEQzFIeEIsb1JBRUE7OzJGRHlCYSxpQkFBaUI7a0JBVjdCLFNBQVM7K0JBQ0UsMkJBQTJCLGFBRzFCLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxtQkFBbUIsRUFBRSxDQUFDLFFBQ3ZFO3dCQUNKLGtCQUFrQixFQUFFLGtCQUFrQjt3QkFDdEMseUJBQXlCLEVBQUUsYUFBYTtxQkFDekM7OzBCQW1HWSxRQUFROzswQkFBSSxJQUFJOzswQkFDMUIsUUFBUTs4TkFwRk8sUUFBUTtzQkFBekIsS0FBSzt1QkFBQyxTQUFTO2dCQUNTLGVBQWU7c0JBQXZDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUNWLEtBQUs7c0JBQWpCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsY0FBYztzQkFEdEIsTUFBTTtnQkFHTSxXQUFXO3NCQUF2QixLQUFLO2dCQUdHLGlCQUFpQjtzQkFEekIsTUFBTTtnQkFFaUIsRUFBRTtzQkFBekIsV0FBVztnQkFDSCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ08sV0FBVztzQkFBdkIsS0FBSztnQkFZRixnQkFBZ0I7c0JBRG5CLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUt6QixRQUFRO3NCQURYLEtBQUs7Z0JBU0YsUUFBUTtzQkFEWCxLQUFLO2dCQVFnQyxXQUFXO3NCQUFoRCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFDZixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBMEJOLEtBQUs7c0JBQWpCLEtBQUs7Z0JBU0UsU0FBUztzQkFEaEIsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q29udGFpbmVyUmVmLCBFbGVtZW50UmVmLCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9wdGlvbmFsLCBPbkRlc3Ryb3ksIEhvc3RCaW5kaW5nLCBTZWxmLCBPbkluaXQsIERvQ2hlY2ssIEluamVjdG9yLCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2ExMXlcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHksIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcclxuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBBQ0NPVU5UX0RFTElNSVRFUiB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb21iaW5hdGlvbkJvZHlEYXRhLCBDb21iaW5hdGlvblBpY2tlckJvZHksIENvbWJpbmF0aW9uU2VsZWN0ZWRFdmVudCwgQ09NQklOQVRJT05fUElDS0VSX0JPRFksIEV4cGxvcmVTZXR0aW5ncyB9IGZyb20gXCIuL2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5XCI7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XHJcblxyXG5jb25zdCBSRUNPUkRTX0xJTUlUID0gNTA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jb21iaW5hdGlvbi1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnY29tYmluYXRpb24tcGlja2VyLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydjb21iaW5hdGlvbi1waWNrZXIuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IENvbWJpbmF0aW9uUGlja2VyIH1dLFxyXG4gIGhvc3Q6IHtcclxuICAgICdbY2xhc3MuZmxvYXRpbmddJzogJ3Nob3VsZExhYmVsRmxvYXQnLFxyXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ2Rlc2NyaWJlZEJ5J1xyXG4gIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbWJpbmF0aW9uUGlja2VyIGltcGxlbWVudHMgTWF0Rm9ybUZpZWxkQ29udHJvbDxzdHJpbmc+LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBEb0NoZWNrLCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfb3BlbmVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfbGltaXQ6IG51bWJlciA9IFJFQ09SRFNfTElNSVQ7XHJcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcclxuICBwcml2YXRlIF9wb3J0YWw6IENvbXBvbmVudFBvcnRhbDxDb21iaW5hdGlvblBpY2tlckJvZHk+O1xyXG4gIHByaXZhdGUgX2RpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENvbWJpbmF0aW9uUGlja2VyQm9keT47XHJcbiAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBASW5wdXQoJ2RpdmlkZXInKSBfZGl2aWRlcjogc3RyaW5nID0gQUNDT1VOVF9ERUxJTUlURVI7XHJcbiAgQElucHV0KCdkaXNwbGF5RGl2aWRlcicpIF9kaXNwbGF5RGl2aWRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNldCBsaW1pdCh2YWw6IG51bWJlcikgeyB0aGlzLl9saW1pdCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbCk7IH1cclxuICBnZXQgbGltaXQoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX2xpbWl0OyB9XHJcbiAgQElucHV0KCkgY3ViZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGV4cGxvcmVTZXR0aW5ncz86IEV4cGxvcmVTZXR0aW5ncztcclxuICBAT3V0cHV0KClcclxuICByZWFkb25seSBvcHRpb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tYmluYXRpb25TZWxlY3RlZEV2ZW50PigpO1xyXG4gIHByaXZhdGUgX2Rlc2NyaXB0aW9uOiBzdHJpbmcgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNldCBkZXNjcmlwdGlvbih2YWw6IHN0cmluZykgeyB0aGlzLl9kZXNjcmlwdGlvbiA9IHZhbDsgfVxyXG4gIGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb24gfHwgJyc7IH1cclxuICBAT3V0cHV0KClcclxuICByZWFkb25seSBkZXNjcmlwdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBIb3N0QmluZGluZygpIHJlYWRvbmx5IGlkID0gYGFjY291bnQtcGlja2VyLSR7Q29tYmluYXRpb25QaWNrZXIubmV4dElkKyt9YDtcclxuICBASW5wdXQoKSB0b3VjaFVpOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGdldCBwbGFjZWhvbGRlcigpIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcclxuICB9XHJcbiAgc2V0IHBsYWNlaG9sZGVyKHBsaCkge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGZvY3VzZWQgPSBmYWxzZTtcclxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWUgPT09IG51bGw7XHJcbiAgfVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmxvYXRpbmcnKVxyXG4gIGdldCBzaG91bGRMYWJlbEZsb2F0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgcmVxdWlyZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgfVxyXG4gIHNldCByZXF1aXJlZChyZXEpIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlcSk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGVycm9yU3RhdGUgPSBmYWxzZTtcclxuICBjb250cm9sVHlwZT86IHN0cmluZyA9ICdhY2NvdW50LXBpY2tlci1pbnB1dCc7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBkZXNjcmliZWRCeSA9ICcnO1xyXG4gIEBWaWV3Q2hpbGQoTWF0SW5wdXQpIF9pbnB1dDogTWF0SW5wdXQ7XHJcbiAgZm9jdXMoKSB7dGhpcy5faW5wdXQuZm9jdXMoKSB9XHJcbiAgc2V0RGVzY3JpYmVkQnlJZHMoaWRzOiBzdHJpbmdbXSkge1xyXG4gICAgdGhpcy5kZXNjcmliZWRCeSA9IGlkcy5qb2luKCcgJyk7XHJcbiAgfVxyXG4gIG9uQ29udGFpbmVyQ2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoKGV2dC50YXJnZXQgYXMgRWxlbWVudCkudGFnTmFtZSAhPT0gJ0lOUFVUJykge1xyXG4gICAgfVxyXG4gICAgdGhpcy5fb3BlbigpO1xyXG4gIH1cclxuICBvcGVuKGV2dDogRXZlbnQpIHtcclxuICAgIHRoaXMuX29wZW4oKTtcclxuICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IG9iajtcclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdldCB2YWx1ZSgpOiBzdHJpbmcgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbiAgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gIH1cclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKVxyXG4gIHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfZm9ybUZpZWxkOiBNYXRGb3JtRmllbGQsXHJcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgX3ZjOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfZm06IEZvY3VzTW9uaXRvcixcclxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5KSB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wgIT0gbnVsbCkge1xyXG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICAgIH1cclxuICAgIF9mbS5tb25pdG9yKF9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpLnN1YnNjcmliZShvcmlnaW4gPT4ge1xyXG4gICAgICBpZiAodGhpcy5mb2N1c2VkICYmICFvcmlnaW4pIHtcclxuICAgICAgICB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvY3VzZWQgPSAhIW9yaWdpbjtcclxuICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5lcnJvclN0YXRlID0gdGhpcy5uZ0NvbnRyb2wuaW52YWxpZCAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkO1xyXG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIF9rZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2dC5hbHRLZXkgJiYgZXZ0LmtleSA9PT0gJ0Fycm93RG93bicpIHtcclxuICAgICAgdGhpcy5fb3BlbigpO1xyXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfb3BlbigpIHtcclxuICAgIGlmICh0aGlzLl9vcGVuZWQpIHJldHVybjtcclxuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgZGl2aWRlcjogdGhpcy5fZGl2aWRlcixcclxuICAgICAgZGlzcGxheURpdmlkZXI6IHRoaXMuX2Rpc3BsYXlEaXZpZGVyLFxyXG4gICAgICBsaW1pdDogdGhpcy5fbGltaXQsXHJcbiAgICAgIHZhbHVlOiB0aGlzLl92YWx1ZSxcclxuICAgICAgY3ViZTogdGhpcy5jdWJlLFxyXG4gICAgICBleHBsb3JlU2V0dGluZ3M6IHRoaXMuZXhwbG9yZVNldHRpbmdzXHJcbiAgICB9IGFzIENvbWJpbmF0aW9uQm9keURhdGE7XHJcbiAgICBpZiAodGhpcy50b3VjaFVpKSB7XHJcbiAgICAgIHRoaXMuX2RpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZy5vcGVuKENvbWJpbmF0aW9uUGlja2VyQm9keSwge1xyXG4gICAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyLnZhbHVlLFxyXG4gICAgICAgIGRhdGEsXHJcbiAgICAgICAgbWF4SGVpZ2h0OiAnOTB2aCdcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuX2F0dGFjaCh0aGlzLl9kaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICghdGhpcy5fb3ZlcmxheVJlZikge1xyXG4gICAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9jcmVhdGVPdmVybGF5UmVmKCk7XHJcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG4gICAgICAgICAgcHJvdmlkZXJzOiBbe1xyXG4gICAgICAgICAgICBwcm92aWRlOiBDT01CSU5BVElPTl9QSUNLRVJfQk9EWSwgdXNlVmFsdWU6IGRhdGFcclxuICAgICAgICAgIH1dLHBhcmVudDogdGhpcy5faW5qZWN0b3JcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKENvbWJpbmF0aW9uUGlja2VyQm9keSwgdGhpcy5fdmMsIGluamVjdG9yKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5fcmVwb3NpdGlvbigpO1xyXG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xyXG4gICAgICB0aGlzLl9hdHRhY2goY29tcG9uZW50UmVmLmluc3RhbmNlKTtcclxuICAgICAgdGhpcy5fb3BlbmVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfYXR0YWNoKGJvZHk6IENvbWJpbmF0aW9uUGlja2VyQm9keSkge1xyXG4gICAgYm9keS5tb2RlQ2hhbmdlLlxyXG4gICAgICBzdWJzY3JpYmUoKCkgPT4gc2V0VGltZW91dCgoKSA9PiB0aGlzLl9yZXBvc2l0aW9uKCksIDApKTtcclxuICAgIGJvZHkuc2VsZWN0aW9uQ2hhbmdlLlxyXG4gICAgICBzdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyB2YWx1ZSwgZGVzY3JpcHRpb24gfSA9IGU7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcclxuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uQ2hhbmdlLmVtaXQoZGVzY3JpcHRpb24pO1xyXG4gICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoZSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9yZXBvc2l0aW9uKCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLl9nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk7XHJcbiAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVNpemUoeyBtaW5XaWR0aDogYCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXlSZWYoKTogT3ZlcmxheVJlZiB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMuX2dldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKTtcclxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5mbGV4aWJsZUNvbm5lY3RlZFRvKGVsKS5cclxuICAgICAgICB3aXRoVmlld3BvcnRNYXJnaW4oOCkuXHJcbiAgICAgICAgd2l0aEZsZXhpYmxlRGltZW5zaW9ucygpLlxyXG4gICAgICAgIHdpdGhQb3NpdGlvbnMoW3sgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcgfSxcclxuICAgICAgICB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICdib3R0b20nIH1dKSxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyLnZhbHVlLFxyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxyXG4gICAgICBtaW5XaWR0aDogYCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGAsXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICdob21lLXBhbmVsJ1xyXG4gICAgfSk7XHJcbiAgICBtZXJnZShvdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKSwgb3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKCkuXHJcbiAgICAgIHBpcGUoZmlsdGVyKGUgPT4gZS5rZXkgPT09ICdFc2NhcGUnIHx8IChlLmtleSA9PT0gJ0Fycm93VXAnICYmIGUuYWx0S2V5KSksXHJcbiAgICAgICAgdGFwKGUgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSkpKS5cclxuICAgICAgc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XHJcbiAgICByZXR1cm4gb3ZlcmxheVJlZjtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpOiBFbGVtZW50UmVmIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtRmllbGQgPyB0aGlzLl9mb3JtRmllbGQuZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpIDogdGhpcy5fZWxlbWVudFJlZjtcclxuICB9XHJcbiAgY2xvc2UoKSB7XHJcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcclxuICAgIGVsc2UgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB0aGlzLl9vcGVuZWQgPSBmYWxzZTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX2ZtLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uQ2hhbmdlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8dGV4dGFyZWEgbWF0SW5wdXQgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGtleWRvd24pPVwiX2tleURvd24oJGV2ZW50KVwiIFt2YWx1ZV09XCJkZXNjcmlwdGlvblwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiPjwvdGV4dGFyZWE+XHJcbjxtYXQtaWNvbiBtYXRTdWZmaXggdGFiaW5kZXg9XCItMVwiIFtuZ0NsYXNzXT1cInsnbWF0LXdhcm4tdGV4dCc6ZXJyb3JTdGF0ZSwgJ2Rpc2FibGVkJzogZGlzYWJsZWR9XCI+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cclxuIl19
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYmluYXRpb24tcGlja2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbGliL2NvcmUvaW5wdXRzL2NvbWJpbmF0aW9uLXBpY2tlci50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jb3JlL2lucHV0cy9jb21iaW5hdGlvbi1waWNrZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFnQyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQWEsV0FBVyxFQUFFLElBQUksRUFBbUIsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaE0sT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBZ0IsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUlqRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRixPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBdUIscUJBQXFCLEVBQTRCLHVCQUF1QixFQUFtQixNQUFNLDJCQUEyQixDQUFDO0FBQzNKLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFFbkQsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBWXpCLE1BQU0sT0FBTyxpQkFBaUI7YUFDYixXQUFNLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFlMUIsSUFBYSxLQUFLLENBQUMsR0FBVyxJ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UTs4TkFwRk8sUUFBUTtzQkFBekIsS0FBSzt1QkFBQyxTQUFTO2dCQUNTLGVBQWU7c0JBQXZDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUNWLEtBQUs7c0JBQWpCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsY0FBYztzQkFEdEIsTUFBTTtnQkFHTSxXQUFXO3NCQUF2QixLQUFLO2dCQUdHLGlCQUFpQjtzQkFEekIsTUFBTTtnQkFFaUIsRUFBRTtzQkFBekIsV0FBVztnQkFDSCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ08sV0FBVztzQkFBdkIsS0FBSztnQkFZRixnQkFBZ0I7c0JBRG5CLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUt6QixRQUFRO3NCQURYLEtBQUs7Z0JBU0YsUUFBUTtzQkFEWCxLQUFLO2dCQVFnQyxXQUFXO3NCQUFoRCxXQUFXO3VCQUFDLHVCQUF1QjtnQkFDZixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBMEJOLEtBQUs7c0JBQWpCLEtBQUs7Z0JBU0UsU0FBUztzQkFEaEIsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q29udGFpbmVyUmVmLCBFbGVtZW50UmVmLCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9wdGlvbmFsLCBPbkRlc3Ryb3ksIEhvc3RCaW5kaW5nLCBTZWxmLCBPbkluaXQsIERvQ2hlY2ssIEluamVjdG9yLCBWaWV3Q2hpbGQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XHJcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2ExMXlcIjtcclxuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2JpZGlcIjtcclxuaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHksIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcclxuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBBQ0NPVU5UX0RFTElNSVRFUiB9IGZyb20gXCIuLi8uLi9jdWJlL2N1YmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb21iaW5hdGlvbkJvZHlEYXRhLCBDb21iaW5hdGlvblBpY2tlckJvZHksIENvbWJpbmF0aW9uU2VsZWN0ZWRFdmVudCwgQ09NQklOQVRJT05fUElDS0VSX0JPRFksIEV4cGxvcmVTZXR0aW5ncyB9IGZyb20gXCIuL2NvbWJpbmF0aW9uLXBpY2tlci1ib2R5XCI7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XHJcblxyXG5jb25zdCBSRUNPUkRTX0xJTUlUID0gNTA7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jb21iaW5hdGlvbi1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnY29tYmluYXRpb24tcGlja2VyLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydjb21iaW5hdGlvbi1waWNrZXIuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IENvbWJpbmF0aW9uUGlja2VyIH1dLFxyXG4gIGhvc3Q6IHtcclxuICAgICdbY2xhc3MuZmxvYXRpbmddJzogJ3Nob3VsZExhYmVsRmxvYXQnLFxyXG4gICAgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ2Rlc2NyaWJlZEJ5J1xyXG4gIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbWJpbmF0aW9uUGlja2VyIGltcGxlbWVudHMgTWF0Rm9ybUZpZWxkQ29udHJvbDxzdHJpbmc+LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBEb0NoZWNrLCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgc3RhdGljIG5leHRJZCA9IDA7XHJcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBwcml2YXRlIF9yZXF1aXJlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkID0gKCkgPT4geyB9O1xyXG4gIHByaXZhdGUgX3ZhbHVlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHByaXZhdGUgX29wZW5lZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX2xpbWl0OiBudW1iZXIgPSBSRUNPUkRTX0xJTUlUO1xyXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XHJcbiAgcHJpdmF0ZSBfcG9ydGFsOiBDb21wb25lbnRQb3J0YWw8Q29tYmluYXRpb25QaWNrZXJCb2R5PjtcclxuICBwcml2YXRlIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxDb21iaW5hdGlvblBpY2tlckJvZHk+O1xyXG4gIHJlYWRvbmx5IHN0YXRlQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgQElucHV0KCdkaXZpZGVyJykgX2RpdmlkZXI6IHN0cmluZyA9IEFDQ09VTlRfREVMSU1JVEVSO1xyXG4gIEBJbnB1dCgnZGlzcGxheURpdmlkZXInKSBfZGlzcGxheURpdmlkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBzZXQgbGltaXQodmFsOiBudW1iZXIpIHsgdGhpcy5fbGltaXQgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWwpOyB9XHJcbiAgZ2V0IGxpbWl0KCk6IG51bWJlciB7IHJldHVybiB0aGlzLl9saW1pdDsgfVxyXG4gIEBJbnB1dCgpIGN1YmU6IHN0cmluZztcclxuICBASW5wdXQoKSBleHBsb3JlU2V0dGluZ3M/OiBFeHBsb3JlU2V0dGluZ3M7XHJcbiAgQE91dHB1dCgpXHJcbiAgcmVhZG9ubHkgb3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbWJpbmF0aW9uU2VsZWN0ZWRFdmVudD4oKTtcclxuICBwcml2YXRlIF9kZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNldCBkZXNjcmlwdGlvbih2YWw6IHN0cmluZykgeyB0aGlzLl9kZXNjcmlwdGlvbiA9IHZhbDsgfVxyXG4gIGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fZGVzY3JpcHRpb24gfHwgJyc7IH1cclxuICBAT3V0cHV0KClcclxuICByZWFkb25seSBkZXNjcmlwdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBIb3N0QmluZGluZygpIHJlYWRvbmx5IGlkID0gYGFjY291bnQtcGlja2VyLSR7Q29tYmluYXRpb25QaWNrZXIubmV4dElkKyt9YDtcclxuICBASW5wdXQoKSB0b3VjaFVpOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGdldCBwbGFjZWhvbGRlcigpIHtcclxuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcclxuICB9XHJcbiAgc2V0IHBsYWNlaG9sZGVyKHBsaCkge1xyXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSBwbGg7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGZvY3VzZWQgPSBmYWxzZTtcclxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWUgPT09IG51bGw7XHJcbiAgfVxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZmxvYXRpbmcnKVxyXG4gIGdldCBzaG91bGRMYWJlbEZsb2F0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZCB8fCAhdGhpcy5lbXB0eTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgcmVxdWlyZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgfVxyXG4gIHNldCByZXF1aXJlZChyZXEpIHtcclxuICAgIHRoaXMuX3JlcXVpcmVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHJlcSk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7IH1cclxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XHJcbiAgfVxyXG4gIGVycm9yU3RhdGUgPSBmYWxzZTtcclxuICBjb250cm9sVHlwZT86IHN0cmluZyA9ICdhY2NvdW50LXBpY2tlci1pbnB1dCc7XHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKSBkZXNjcmliZWRCeSA9ICcnO1xyXG4gIEBWaWV3Q2hpbGQoTWF0SW5wdXQpIF9pbnB1dDogTWF0SW5wdXQ7XHJcbiAgZm9jdXMoKSB7IHRoaXMuX2lucHV0LmZvY3VzKCkgfVxyXG4gIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pIHtcclxuICAgIHRoaXMuZGVzY3JpYmVkQnkgPSBpZHMuam9pbignICcpO1xyXG4gIH1cclxuICBvbkNvbnRhaW5lckNsaWNrKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKChldnQudGFyZ2V0IGFzIEVsZW1lbnQpLnRhZ05hbWUgIT09ICdJTlBVVCcpIHtcclxuICAgIH1cclxuICAgIHRoaXMuX29wZW4oKTtcclxuICB9XHJcbiAgb3BlbihldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLl9vcGVuKCk7XHJcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSBvYmo7XHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuICBASW5wdXQoKSBnZXQgdmFsdWUoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgfVxyXG4gIHNldCB2YWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZilcclxuICBwcml2YXRlIF90ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2Zvcm1GaWVsZDogTWF0Rm9ybUZpZWxkLFxyXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSwgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF92YzogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgX2ZtOiBGb2N1c01vbml0b3IsXHJcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBfZGlyOiBEaXJlY3Rpb25hbGl0eSkge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgICBfZm0ubW9uaXRvcihfZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKS5zdWJzY3JpYmUob3JpZ2luID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9jdXNlZCAmJiAhb3JpZ2luKSB7XHJcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JTdGF0ZSA9IHRoaXMubmdDb250cm9sLmludmFsaWQgYXMgYm9vbGVhbiAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkIGFzIGJvb2xlYW47XHJcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgX2tleURvd24oZXZ0OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZ0LmFsdEtleSAmJiBldnQua2V5ID09PSAnQXJyb3dEb3duJykge1xyXG4gICAgICB0aGlzLl9vcGVuKCk7XHJcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBwcml2YXRlIF9vcGVuKCkge1xyXG4gICAgaWYgKHRoaXMuX29wZW5lZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBkaXZpZGVyOiB0aGlzLl9kaXZpZGVyLFxyXG4gICAgICBkaXNwbGF5RGl2aWRlcjogdGhpcy5fZGlzcGxheURpdmlkZXIsXHJcbiAgICAgIGxpbWl0OiB0aGlzLl9saW1pdCxcclxuICAgICAgdmFsdWU6IHRoaXMuX3ZhbHVlLFxyXG4gICAgICBjdWJlOiB0aGlzLmN1YmUsXHJcbiAgICAgIGV4cGxvcmVTZXR0aW5nczogdGhpcy5leHBsb3JlU2V0dGluZ3NcclxuICAgIH0gYXMgQ29tYmluYXRpb25Cb2R5RGF0YTtcclxuICAgIGlmICh0aGlzLnRvdWNoVWkpIHtcclxuICAgICAgdGhpcy5fZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nLm9wZW4oQ29tYmluYXRpb25QaWNrZXJCb2R5LCB7XHJcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXIudmFsdWUsXHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICBtYXhIZWlnaHQ6ICc5MHZoJ1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5fYXR0YWNoKHRoaXMuX2RpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmKSB7XHJcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX2NyZWF0ZU92ZXJsYXlSZWYoKTtcclxuICAgICAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcbiAgICAgICAgICBwcm92aWRlcnM6IFt7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IENPTUJJTkFUSU9OX1BJQ0tFUl9CT0RZLCB1c2VWYWx1ZTogZGF0YVxyXG4gICAgICAgICAgfV0sIHBhcmVudDogdGhpcy5faW5qZWN0b3JcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9wb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKENvbWJpbmF0aW9uUGlja2VyQm9keSwgdGhpcy5fdmMsIGluamVjdG9yKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5fcmVwb3NpdGlvbigpO1xyXG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaCh0aGlzLl9wb3J0YWwpO1xyXG4gICAgICB0aGlzLl9hdHRhY2goY29tcG9uZW50UmVmLmluc3RhbmNlKTtcclxuICAgICAgdGhpcy5fb3BlbmVkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfYXR0YWNoKGJvZHk6IENvbWJpbmF0aW9uUGlja2VyQm9keSkge1xyXG4gICAgYm9keS5tb2RlQ2hhbmdlLlxyXG4gICAgICBzdWJzY3JpYmUoKCkgPT4gc2V0VGltZW91dCgoKSA9PiB0aGlzLl9yZXBvc2l0aW9uKCksIDApKTtcclxuICAgIGJvZHkuc2VsZWN0aW9uQ2hhbmdlLlxyXG4gICAgICBzdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyB2YWx1ZSwgZGVzY3JpcHRpb24gfSA9IGU7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcclxuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uQ2hhbmdlLmVtaXQoZGVzY3JpcHRpb24pO1xyXG4gICAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoZSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBwcml2YXRlIF9yZXBvc2l0aW9uKCkge1xyXG4gICAgY29uc3QgZWwgPSB0aGlzLl9nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk7XHJcbiAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVNpemUoeyBtaW5XaWR0aDogYCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXlSZWYoKTogT3ZlcmxheVJlZiB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMuX2dldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKTtcclxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKS5mbGV4aWJsZUNvbm5lY3RlZFRvKGVsKS5cclxuICAgICAgICB3aXRoVmlld3BvcnRNYXJnaW4oOCkuXHJcbiAgICAgICAgd2l0aEZsZXhpYmxlRGltZW5zaW9ucygpLlxyXG4gICAgICAgIHdpdGhQb3NpdGlvbnMoW3sgb3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ2JvdHRvbScsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ3RvcCcgfSxcclxuICAgICAgICB7IG9yaWdpblg6ICdzdGFydCcsIG9yaWdpblk6ICd0b3AnLCBvdmVybGF5WDogJ3N0YXJ0Jywgb3ZlcmxheVk6ICdib3R0b20nIH1dKSxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyLnZhbHVlLFxyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxyXG4gICAgICBtaW5XaWR0aDogYCR7ZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGAsXHJcbiAgICAgIHBhbmVsQ2xhc3M6ICdob21lLXBhbmVsJ1xyXG4gICAgfSk7XHJcbiAgICBtZXJnZShvdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKSwgb3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKCkuXHJcbiAgICAgIHBpcGUoZmlsdGVyKGUgPT4gZS5rZXkgPT09ICdFc2NhcGUnIHx8IChlLmtleSA9PT0gJ0Fycm93VXAnICYmIGUuYWx0S2V5KSksXHJcbiAgICAgICAgdGFwKGUgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSkpKS5cclxuICAgICAgc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XHJcbiAgICByZXR1cm4gb3ZlcmxheVJlZjtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpOiBFbGVtZW50UmVmIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtRmllbGQgPyB0aGlzLl9mb3JtRmllbGQuZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpIDogdGhpcy5fZWxlbWVudFJlZjtcclxuICB9XHJcbiAgY2xvc2UoKSB7XHJcbiAgICBpZiAodGhpcy5fb3ZlcmxheVJlZikgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcclxuICAgIGVsc2UgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB0aGlzLl9vcGVuZWQgPSBmYWxzZTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICAgIHRoaXMuX2ZtLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmRlc2NyaXB0aW9uQ2hhbmdlLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnN0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8dGV4dGFyZWEgbWF0SW5wdXQgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGtleWRvd24pPVwiX2tleURvd24oJGV2ZW50KVwiIFt2YWx1ZV09XCJkZXNjcmlwdGlvblwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiPjwvdGV4dGFyZWE+XHJcbjxtYXQtaWNvbiBtYXRTdWZmaXggdGFiaW5kZXg9XCItMVwiIFtuZ0NsYXNzXT1cInsnbWF0LXdhcm4tdGV4dCc6ZXJyb3JTdGF0ZSwgJ2Rpc2FibGVkJzogZGlzYWJsZWR9XCI+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cclxuIl19