@bizdoc/core 1.16.20 → 1.16.21

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 (368) hide show
  1. package/assets/bizdoc-schema.json +4 -0
  2. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +5 -5
  3. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +1 -2
  4. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +24 -21
  5. package/esm2020/lib/core/translations.mjs +2 -1
  6. package/fesm2015/bizdoc-core.mjs +11 -10
  7. package/fesm2015/bizdoc-core.mjs.map +1 -1
  8. package/fesm2020/bizdoc-core.mjs +11 -10
  9. package/fesm2020/bizdoc-core.mjs.map +1 -1
  10. package/lib/admin/configuration-designer/elements/cube.component.d.ts +11 -10
  11. package/lib/core/translations.d.ts +1 -0
  12. package/package.json +1 -1
  13. package/bizdoc-core.d.ts.map +0 -1
  14. package/lib/admin/admin-dismiss.service.d.ts.map +0 -1
  15. package/lib/admin/admin-menu.component.d.ts.map +0 -1
  16. package/lib/admin/configuration-designer/cube-axes-filter.component.d.ts.map +0 -1
  17. package/lib/admin/configuration-designer/declarations.d.ts.map +0 -1
  18. package/lib/admin/configuration-designer/designer-element.component.d.ts.map +0 -1
  19. package/lib/admin/configuration-designer/designer-privileges.component.d.ts.map +0 -1
  20. package/lib/admin/configuration-designer/designer.base.d.ts.map +0 -1
  21. package/lib/admin/configuration-designer/designer.component.d.ts.map +0 -1
  22. package/lib/admin/configuration-designer/elements/action.component.d.ts.map +0 -1
  23. package/lib/admin/configuration-designer/elements/analysis-view.component.d.ts.map +0 -1
  24. package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts.map +0 -1
  25. package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts.map +0 -1
  26. package/lib/admin/configuration-designer/elements/box-form.component.d.ts.map +0 -1
  27. package/lib/admin/configuration-designer/elements/configuration-datasource.component.d.ts.map +0 -1
  28. package/lib/admin/configuration-designer/elements/cube-index-utility.component.d.ts.map +0 -1
  29. package/lib/admin/configuration-designer/elements/cube-view.component.d.ts.map +0 -1
  30. package/lib/admin/configuration-designer/elements/cube.component.d.ts.map +0 -1
  31. package/lib/admin/configuration-designer/elements/documents-report.component.d.ts.map +0 -1
  32. package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts.map +0 -1
  33. package/lib/admin/configuration-designer/elements/explore-view.component.d.ts.map +0 -1
  34. package/lib/admin/configuration-designer/elements/folder.component.d.ts.map +0 -1
  35. package/lib/admin/configuration-designer/elements/form.component.d.ts.map +0 -1
  36. package/lib/admin/configuration-designer/elements/guide.component.d.ts.map +0 -1
  37. package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts.map +0 -1
  38. package/lib/admin/configuration-designer/elements/parallel-view.component.d.ts.map +0 -1
  39. package/lib/admin/configuration-designer/elements/performance-widget.component.d.ts.map +0 -1
  40. package/lib/admin/configuration-designer/elements/pivot-view.component.d.ts.map +0 -1
  41. package/lib/admin/configuration-designer/elements/policy.component.d.ts.map +0 -1
  42. package/lib/admin/configuration-designer/elements/report.component.d.ts.map +0 -1
  43. package/lib/admin/configuration-designer/elements/return-to-role-action.component.d.ts.map +0 -1
  44. package/lib/admin/configuration-designer/elements/role.component.d.ts.map +0 -1
  45. package/lib/admin/configuration-designer/elements/rule.component.d.ts.map +0 -1
  46. package/lib/admin/configuration-designer/elements/state.component.d.ts.map +0 -1
  47. package/lib/admin/configuration-designer/elements/sum-view.component.d.ts.map +0 -1
  48. package/lib/admin/configuration-designer/elements/tasks-report.component.d.ts.map +0 -1
  49. package/lib/admin/configuration-designer/elements/type.component.d.ts.map +0 -1
  50. package/lib/admin/configuration-designer/elements/usage-report.component.d.ts.map +0 -1
  51. package/lib/admin/configuration-designer/elements/utility.component.d.ts.map +0 -1
  52. package/lib/admin/configuration-designer/elements/view.component.d.ts.map +0 -1
  53. package/lib/admin/configuration-designer/elements/widget.component.d.ts.map +0 -1
  54. package/lib/admin/configuration-designer/icon-picker.component.d.ts.map +0 -1
  55. package/lib/admin/core/ace.input.d.ts.map +0 -1
  56. package/lib/admin/core/color-picker.input.d.ts.map +0 -1
  57. package/lib/admin/core/search.input.d.ts.map +0 -1
  58. package/lib/admin/diff/configuration-diff.component.d.ts.map +0 -1
  59. package/lib/admin/document-trace/document-trace.component.d.ts.map +0 -1
  60. package/lib/admin/document-trace/reassign.dialog.d.ts.map +0 -1
  61. package/lib/admin/document-trace/timeline.d.ts.map +0 -1
  62. package/lib/admin/document-trace/trace-element.component.d.ts.map +0 -1
  63. package/lib/admin/form/designer/designer.component.d.ts.map +0 -1
  64. package/lib/admin/form/form.resolve.service.d.ts.map +0 -1
  65. package/lib/admin/form/workflow/node-ref.d.ts.map +0 -1
  66. package/lib/admin/form/workflow/node.component.d.ts.map +0 -1
  67. package/lib/admin/form/workflow/role-node.component.d.ts.map +0 -1
  68. package/lib/admin/form/workflow/workflow.component.d.ts.map +0 -1
  69. package/lib/admin/indices/manage-cube-index.component.d.ts.map +0 -1
  70. package/lib/admin/patterns/patterns.component.d.ts.map +0 -1
  71. package/lib/admin/permissions/permissions.component.d.ts.map +0 -1
  72. package/lib/admin/positions/positions-popup.component.d.ts.map +0 -1
  73. package/lib/admin/positions/positions.component.d.ts.map +0 -1
  74. package/lib/admin/profiler/outofoffice.component.d.ts.map +0 -1
  75. package/lib/admin/profiler/profiler.component.d.ts.map +0 -1
  76. package/lib/admin/system.service.d.ts.map +0 -1
  77. package/lib/admin/utility-ref.d.ts.map +0 -1
  78. package/lib/admin/utility-wrapper.component.d.ts.map +0 -1
  79. package/lib/admin/utility.pane.component.d.ts.map +0 -1
  80. package/lib/app.component.d.ts.map +0 -1
  81. package/lib/bizdoc.module.d.ts.map +0 -1
  82. package/lib/browse/browse-items.component.d.ts.map +0 -1
  83. package/lib/browse/browse.mobile.component.d.ts.map +0 -1
  84. package/lib/browse/browse.pane.component.d.ts.map +0 -1
  85. package/lib/browse/expanded-item/expanded-item.component.d.ts.map +0 -1
  86. package/lib/browse/filter/filter.component.d.ts.map +0 -1
  87. package/lib/browse/folders-menu.component.d.ts.map +0 -1
  88. package/lib/chat/chat-info.d.ts.map +0 -1
  89. package/lib/chat/chat.mobile.component.d.ts.map +0 -1
  90. package/lib/chat/chat.service.d.ts.map +0 -1
  91. package/lib/chat/contacts.component.d.ts.map +0 -1
  92. package/lib/chat/contacts.pane.component.d.ts.map +0 -1
  93. package/lib/chat/conversation.component.d.ts.map +0 -1
  94. package/lib/chat/conversation.pane.component.d.ts.map +0 -1
  95. package/lib/compose/action/action-picker.component.d.ts.map +0 -1
  96. package/lib/compose/action/action-ref.d.ts.map +0 -1
  97. package/lib/compose/action/action.base.d.ts.map +0 -1
  98. package/lib/compose/action/action.dialog.d.ts.map +0 -1
  99. package/lib/compose/action/action.pane.dialog.exp.d.ts.map +0 -1
  100. package/lib/compose/action/assign-action.component.d.ts.map +0 -1
  101. package/lib/compose/action/moveto-action.component.d.ts.map +0 -1
  102. package/lib/compose/action/return-action.component.d.ts.map +0 -1
  103. package/lib/compose/attachments/attachments.component.d.ts.map +0 -1
  104. package/lib/compose/attachments/preview/attachment-preview.component.d.ts.map +0 -1
  105. package/lib/compose/attachments/progress-button.directive.d.ts.map +0 -1
  106. package/lib/compose/box/box.component.d.ts.map +0 -1
  107. package/lib/compose/can-deactivate-changes.service.d.ts.map +0 -1
  108. package/lib/compose/comments/comment.component.d.ts.map +0 -1
  109. package/lib/compose/comments/comments.component.d.ts.map +0 -1
  110. package/lib/compose/comments/comments.pane.component.d.ts.map +0 -1
  111. package/lib/compose/comments/edit-comment.component.d.ts.map +0 -1
  112. package/lib/compose/comments/edits.component.d.ts.map +0 -1
  113. package/lib/compose/comments/quick-comment.component.exp.d.ts.map +0 -1
  114. package/lib/compose/comments/votes.component.d.ts.map +0 -1
  115. package/lib/compose/compose-resolve.service.d.ts.map +0 -1
  116. package/lib/compose/compose.mobile.component.d.ts.map +0 -1
  117. package/lib/compose/compose.pane.component.d.ts.map +0 -1
  118. package/lib/compose/copy/copy.dialog.d.ts.map +0 -1
  119. package/lib/compose/dismiss.service.d.ts.map +0 -1
  120. package/lib/compose/document-resolver.service.d.ts.map +0 -1
  121. package/lib/compose/document.component.d.ts.map +0 -1
  122. package/lib/compose/document.mobile.component.d.ts.map +0 -1
  123. package/lib/compose/document.pane.component.d.ts.map +0 -1
  124. package/lib/compose/events/events.component.d.ts.map +0 -1
  125. package/lib/compose/form-ref.d.ts.map +0 -1
  126. package/lib/compose/form-selector/form-selector.sheet.d.ts.map +0 -1
  127. package/lib/compose/form.component.d.ts.map +0 -1
  128. package/lib/compose/new-menu.component.d.ts.map +0 -1
  129. package/lib/compose/privilage.directive.d.ts.map +0 -1
  130. package/lib/compose/recipient-resolver.service.d.ts.map +0 -1
  131. package/lib/compose/state.component.d.ts.map +0 -1
  132. package/lib/compose/tag/tags.component.d.ts.map +0 -1
  133. package/lib/compose/trace/flow.component.d.ts.map +0 -1
  134. package/lib/compose/trace/people.component.d.ts.map +0 -1
  135. package/lib/compose/trace/trace.base.d.ts.map +0 -1
  136. package/lib/compose/trace/trace.component.d.ts.map +0 -1
  137. package/lib/compose/trace/trace.pane.component.d.ts.map +0 -1
  138. package/lib/compose/version-compare/version-compare.component.d.ts.map +0 -1
  139. package/lib/compose/version-compare/version-compare.directive.d.ts.map +0 -1
  140. package/lib/compose/version-compare/version.pane.component.d.ts.map +0 -1
  141. package/lib/core/NgComponentOutlet.d.ts.map +0 -1
  142. package/lib/core/account.service.d.ts.map +0 -1
  143. package/lib/core/animated-icon/animated-icon.directive.d.ts.map +0 -1
  144. package/lib/core/animations.d.ts.map +0 -1
  145. package/lib/core/authentication.d.ts.map +0 -1
  146. package/lib/core/avatar/avatar.component.d.ts.map +0 -1
  147. package/lib/core/base.d.ts.map +0 -1
  148. package/lib/core/colors.d.ts.map +0 -1
  149. package/lib/core/component-factory-resolver.d.ts.map +0 -1
  150. package/lib/core/configuration.d.ts.map +0 -1
  151. package/lib/core/controls/address.input.d.ts.map +0 -1
  152. package/lib/core/controls/auto-complete.input.d.ts.map +0 -1
  153. package/lib/core/controls/combination-picker-body.d.ts.map +0 -1
  154. package/lib/core/controls/combination-picker.d.ts.map +0 -1
  155. package/lib/core/controls/combination-pool.d.ts.map +0 -1
  156. package/lib/core/controls/file.input.d.ts.map +0 -1
  157. package/lib/core/controls/select.input.d.ts.map +0 -1
  158. package/lib/core/controls/time-picker.d.ts.map +0 -1
  159. package/lib/core/controls/timespan.input.d.ts.map +0 -1
  160. package/lib/core/datasource.service.d.ts.map +0 -1
  161. package/lib/core/decorators.d.ts.map +0 -1
  162. package/lib/core/firebase.service.d.ts.map +0 -1
  163. package/lib/core/functions.d.ts.map +0 -1
  164. package/lib/core/guide/guide.component.d.ts.map +0 -1
  165. package/lib/core/guide/guide.service.d.ts.map +0 -1
  166. package/lib/core/guide/help-tip.component.d.ts.map +0 -1
  167. package/lib/core/http.interceptor.d.ts.map +0 -1
  168. package/lib/core/hub.service.d.ts.map +0 -1
  169. package/lib/core/identity/identity.component.d.ts.map +0 -1
  170. package/lib/core/info/attachment-info.service.d.ts.map +0 -1
  171. package/lib/core/info/document-info.service.d.ts.map +0 -1
  172. package/lib/core/info/location-info.component.d.ts.map +0 -1
  173. package/lib/core/info/map-info.d.ts.map +0 -1
  174. package/lib/core/layout/autocomplete.field.d.ts.map +0 -1
  175. package/lib/core/layout/checkbox.d.ts.map +0 -1
  176. package/lib/core/layout/checkbox.field.d.ts.map +0 -1
  177. package/lib/core/layout/date-range.field.d.ts.map +0 -1
  178. package/lib/core/layout/date.field.d.ts.map +0 -1
  179. package/lib/core/layout/expression.field.d.ts.map +0 -1
  180. package/lib/core/layout/file.field.d.ts.map +0 -1
  181. package/lib/core/layout/html.field.d.ts.map +0 -1
  182. package/lib/core/layout/input.base.d.ts.map +0 -1
  183. package/lib/core/layout/input.field.d.ts.map +0 -1
  184. package/lib/core/layout/layout.component.d.ts.map +0 -1
  185. package/lib/core/layout/numeric.field.d.ts.map +0 -1
  186. package/lib/core/layout/select.field.d.ts.map +0 -1
  187. package/lib/core/layout/switch.field.d.ts.map +0 -1
  188. package/lib/core/layout/textarea.field.d.ts.map +0 -1
  189. package/lib/core/layout/timespan.field.d.ts.map +0 -1
  190. package/lib/core/lottie-animation.d.ts.map +0 -1
  191. package/lib/core/mailbox.service.d.ts.map +0 -1
  192. package/lib/core/models.d.ts.map +0 -1
  193. package/lib/core/none.component.d.ts.map +0 -1
  194. package/lib/core/pipes/action.pipe.d.ts.map +0 -1
  195. package/lib/core/pipes/calendar.pipe.d.ts.map +0 -1
  196. package/lib/core/pipes/date-format.pipe.d.ts.map +0 -1
  197. package/lib/core/pipes/daterange.pipe.d.ts.map +0 -1
  198. package/lib/core/pipes/difference.pipe.d.ts.map +0 -1
  199. package/lib/core/pipes/duration-format.pipe.d.ts.map +0 -1
  200. package/lib/core/pipes/duration.pipe.d.ts.map +0 -1
  201. package/lib/core/pipes/form.pipe.d.ts.map +0 -1
  202. package/lib/core/pipes/join.pipe.d.ts.map +0 -1
  203. package/lib/core/pipes/role.pipe.d.ts.map +0 -1
  204. package/lib/core/pipes/sanitize-html.pipe.d.ts.map +0 -1
  205. package/lib/core/pipes/sort.pipe.d.ts.map +0 -1
  206. package/lib/core/pipes/state.pipe.d.ts.map +0 -1
  207. package/lib/core/pipes/time-ago.pipe.d.ts.map +0 -1
  208. package/lib/core/pipes/translate.pipe.d.ts.map +0 -1
  209. package/lib/core/pipes/type-value.pipe.d.ts.map +0 -1
  210. package/lib/core/pipes/user-name.pipe.d.ts.map +0 -1
  211. package/lib/core/popup/popup-ref.d.ts.map +0 -1
  212. package/lib/core/popup/popup.component.d.ts.map +0 -1
  213. package/lib/core/popup/popup.service.d.ts.map +0 -1
  214. package/lib/core/popup/tooltip.directive.d.ts.map +0 -1
  215. package/lib/core/prompt/ask/ask.dialog.d.ts.map +0 -1
  216. package/lib/core/prompt/mask/mask.component.d.ts.map +0 -1
  217. package/lib/core/prompt.service.d.ts.map +0 -1
  218. package/lib/core/router.d.ts.map +0 -1
  219. package/lib/core/save-changes.dialog.d.ts.map +0 -1
  220. package/lib/core/session.service.d.ts.map +0 -1
  221. package/lib/core/slots/pane-ref.d.ts.map +0 -1
  222. package/lib/core/slots/router.directive.d.ts.map +0 -1
  223. package/lib/core/slots/router.service.d.ts.map +0 -1
  224. package/lib/core/slots/slots.component.d.ts.map +0 -1
  225. package/lib/core/tagging/documents.component.d.ts.map +0 -1
  226. package/lib/core/tagging/edit-input.component.d.ts.map +0 -1
  227. package/lib/core/tagging/emoji.component.d.ts.map +0 -1
  228. package/lib/core/tagging/tagging-item.directive.d.ts.map +0 -1
  229. package/lib/core/tagging/tagging.component-base.d.ts.map +0 -1
  230. package/lib/core/tagging/tagging.directive.d.ts.map +0 -1
  231. package/lib/core/tagging/tagging.pipe.d.ts.map +0 -1
  232. package/lib/core/tagging/users.component.d.ts.map +0 -1
  233. package/lib/core/translate.service.d.ts.map +0 -1
  234. package/lib/core/translations.d.ts.map +0 -1
  235. package/lib/core/window-title.service.d.ts.map +0 -1
  236. package/lib/cube/accum/accum.component.d.ts.map +0 -1
  237. package/lib/cube/chart/chart.component.d.ts.map +0 -1
  238. package/lib/cube/cube-info.service.d.ts.map +0 -1
  239. package/lib/cube/cube-menu.component.d.ts.map +0 -1
  240. package/lib/cube/cube-view.component.d.ts.map +0 -1
  241. package/lib/cube/cube.service.d.ts.map +0 -1
  242. package/lib/cube/declarations.d.ts.map +0 -1
  243. package/lib/cube/explore/document-item.component.d.ts.map +0 -1
  244. package/lib/cube/explore/explore-item.component.d.ts.map +0 -1
  245. package/lib/cube/explore/explore-items.component.d.ts.map +0 -1
  246. package/lib/cube/explore/explore.pane.component.d.ts.map +0 -1
  247. package/lib/cube/explore/item-resolver.service.d.ts.map +0 -1
  248. package/lib/cube/explore/item.pane.component.d.ts.map +0 -1
  249. package/lib/cube/filter/filter-tags.component.exp.d.ts.map +0 -1
  250. package/lib/cube/filter/filter.component.d.ts.map +0 -1
  251. package/lib/cube/grid/grid.component.d.ts.map +0 -1
  252. package/lib/cube/grid/spreadsheet.component.d.ts.map +0 -1
  253. package/lib/cube/matrix/matrix.base.d.ts.map +0 -1
  254. package/lib/cube/matrix/matrix.mobile.component.d.ts.map +0 -1
  255. package/lib/cube/matrix/matrix.pane.component.d.ts.map +0 -1
  256. package/lib/cube/matrix/popup.component.d.ts.map +0 -1
  257. package/lib/cube/matrix/table.component.d.ts.map +0 -1
  258. package/lib/cube/parallel/item.d.ts.map +0 -1
  259. package/lib/cube/parallel/parallel.component.d.ts.map +0 -1
  260. package/lib/cube/pivot/pivot.component.d.ts.map +0 -1
  261. package/lib/cube/sum/sum.component.d.ts.map +0 -1
  262. package/lib/cube/view-base.d.ts.map +0 -1
  263. package/lib/cube/view.mobile.component.d.ts.map +0 -1
  264. package/lib/cube/view.pane.component.d.ts.map +0 -1
  265. package/lib/dashboard/actions/actions.widget.d.ts.map +0 -1
  266. package/lib/dashboard/cube/accum-cube.widget.d.ts.map +0 -1
  267. package/lib/dashboard/cube/compare.widget.d.ts.map +0 -1
  268. package/lib/dashboard/cube/cube-analysis.base.d.ts.map +0 -1
  269. package/lib/dashboard/cube/cube-analysis.widget.d.ts.map +0 -1
  270. package/lib/dashboard/cube/cube-chart.widget.d.ts.map +0 -1
  271. package/lib/dashboard/cube/documents.widget.d.ts.map +0 -1
  272. package/lib/dashboard/cube/filter/filter.component.d.ts.map +0 -1
  273. package/lib/dashboard/dashboard.component.d.ts.map +0 -1
  274. package/lib/dashboard/dashboard.pane.component.d.ts.map +0 -1
  275. package/lib/dashboard/recents/recents.widget.d.ts.map +0 -1
  276. package/lib/dashboard/score/activity.widget.d.ts.map +0 -1
  277. package/lib/dashboard/score/compare-groups.widget.d.ts.map +0 -1
  278. package/lib/dashboard/score/peers-performance.widget.d.ts.map +0 -1
  279. package/lib/dashboard/score/pending-results.widget.d.ts.map +0 -1
  280. package/lib/dashboard/score/personal-score.widget.d.ts.map +0 -1
  281. package/lib/dashboard/widget-item.component.d.ts.map +0 -1
  282. package/lib/dashboard/widget-ref.d.ts.map +0 -1
  283. package/lib/desktop.module.d.ts.map +0 -1
  284. package/lib/home/about/about.dialog.d.ts.map +0 -1
  285. package/lib/home/home-base.component.d.ts.map +0 -1
  286. package/lib/home/home.desktop.component.d.ts.map +0 -1
  287. package/lib/home/home.mobile.component.d.ts.map +0 -1
  288. package/lib/home/notifications/notifications.component.d.ts.map +0 -1
  289. package/lib/home/options/options.component.d.ts.map +0 -1
  290. package/lib/home/outofoffice/outofoffice.component.d.ts.map +0 -1
  291. package/lib/home/search.service.d.ts.map +0 -1
  292. package/lib/home/sign/sign.component.d.ts.map +0 -1
  293. package/lib/home/tools.component.d.ts.map +0 -1
  294. package/lib/impersonate/impersonate.component.d.ts.map +0 -1
  295. package/lib/mobile.module.d.ts.map +0 -1
  296. package/lib/modules/chart.module.d.ts.map +0 -1
  297. package/lib/modules/circular-gauge.module.d.ts.map +0 -1
  298. package/lib/modules/date.adapter.d.ts.map +0 -1
  299. package/lib/modules/datepicker.intl.d.ts.map +0 -1
  300. package/lib/modules/dayjs.module.d.ts.map +0 -1
  301. package/lib/modules/diagram.module.d.ts.map +0 -1
  302. package/lib/modules/gantt.module.d.ts.map +0 -1
  303. package/lib/modules/grid.module.d.ts.map +0 -1
  304. package/lib/modules/material.module.d.ts.map +0 -1
  305. package/lib/modules/paginator.intl.d.ts.map +0 -1
  306. package/lib/modules/pivot.module.d.ts.map +0 -1
  307. package/lib/modules/schedule.module.d.ts.map +0 -1
  308. package/lib/modules/spreadsheet.module.d.ts.map +0 -1
  309. package/lib/modules/stepper.intl.d.ts.map +0 -1
  310. package/lib/modules/texteditor.module.d.ts.map +0 -1
  311. package/lib/notifications/filter.component.d.ts.map +0 -1
  312. package/lib/notifications/notifications-table.component.d.ts.map +0 -1
  313. package/lib/notifications/notifications.component-base.d.ts.map +0 -1
  314. package/lib/notifications/notifications.mobile.component.d.ts.map +0 -1
  315. package/lib/notifications/notifications.pane.component.d.ts.map +0 -1
  316. package/lib/notifications/notifications.service.d.ts.map +0 -1
  317. package/lib/notifications/types/commented.notification.d.ts.map +0 -1
  318. package/lib/notifications/types/cube-anomaly.notification.d.ts.map +0 -1
  319. package/lib/notifications/types/escalated.notification.d.ts.map +0 -1
  320. package/lib/notifications/types/liked.notification.d.ts.map +0 -1
  321. package/lib/notifications/types/long-running-task.notification.d.ts.map +0 -1
  322. package/lib/notifications/types/notification-base.d.ts.map +0 -1
  323. package/lib/notifications/types/nudge.notification.d.ts.map +0 -1
  324. package/lib/notifications/types/state-changed.notification.d.ts.map +0 -1
  325. package/lib/notifications/types/tagged.notification.d.ts.map +0 -1
  326. package/lib/notifications/types/text.notification.d.ts.map +0 -1
  327. package/lib/notifications/types/upcoming-event.notification.d.ts.map +0 -1
  328. package/lib/options/options.component.d.ts.map +0 -1
  329. package/lib/options/options.service.d.ts.map +0 -1
  330. package/lib/reports/arguments-component.d.ts.map +0 -1
  331. package/lib/reports/cube/documents.component.d.ts.map +0 -1
  332. package/lib/reports/cube/grid-documents.component.d.ts.map +0 -1
  333. package/lib/reports/cube/table-documents.component.d.ts.map +0 -1
  334. package/lib/reports/cube/usage-args.component.d.ts.map +0 -1
  335. package/lib/reports/cube/usage-base.d.ts.map +0 -1
  336. package/lib/reports/cube/usage-chart.component.d.ts.map +0 -1
  337. package/lib/reports/cube/usage-pivot.component.d.ts.map +0 -1
  338. package/lib/reports/cube/usage.component.d.ts.map +0 -1
  339. package/lib/reports/report-ref.d.ts.map +0 -1
  340. package/lib/reports/report-viewer.component.d.ts.map +0 -1
  341. package/lib/reports/report.mobile.component.d.ts.map +0 -1
  342. package/lib/reports/report.pane.component.d.ts.map +0 -1
  343. package/lib/reports/reports-menu.component.d.ts.map +0 -1
  344. package/lib/reports/substitution/substitution.component.d.ts.map +0 -1
  345. package/lib/reports/table/table-view.component.d.ts.map +0 -1
  346. package/lib/reports/tasks/tasks.component.d.ts.map +0 -1
  347. package/lib/routes.desktop.d.ts.map +0 -1
  348. package/lib/routes.mobile.d.ts.map +0 -1
  349. package/lib/scheduler/schedule.component.d.ts.map +0 -1
  350. package/lib/scheduler/scheduler.mobile.component.d.ts.map +0 -1
  351. package/lib/scheduler/scheduler.pane.component.d.ts.map +0 -1
  352. package/lib/shared.module.d.ts.map +0 -1
  353. package/lib/system.module.d.ts.map +0 -1
  354. package/lib/views/cube/chart.component.d.ts.map +0 -1
  355. package/lib/views/cube/cube-base.d.ts.map +0 -1
  356. package/lib/views/cube/explore.component.d.ts.map +0 -1
  357. package/lib/views/cube/matrix.component.d.ts.map +0 -1
  358. package/lib/views/cube/parallel.component.d.ts.map +0 -1
  359. package/lib/views/cube/pivot.component.d.ts.map +0 -1
  360. package/lib/views/cube/sum.component.d.ts.map +0 -1
  361. package/lib/views/cube/view.component.d.ts.map +0 -1
  362. package/lib/views/document-view-ref.d.ts.map +0 -1
  363. package/lib/views/timeline/timeline.component.exp.d.ts.map +0 -1
  364. package/lib/views/view-item.component.d.ts.map +0 -1
  365. package/lib/views/views.component.d.ts.map +0 -1
  366. package/lib/views/views.mobile.component.d.ts.map +0 -1
  367. package/lib/views/views.pane.component.d.ts.map +0 -1
  368. package/public-api.d.ts.map +0 -1
@@ -963,6 +963,10 @@
963
963
  "enum": [ "Positions", "Patterns", "None" ],
964
964
  "description": "Restrict data access based on user role or pattern privileges"
965
965
  },
966
+ "Schedule": {
967
+ "type": "string",
968
+ "pattern": "/d/d:/d/d:/d/d"
969
+ },
966
970
  "Constraints": {
967
971
  "type": "array",
968
972
  "description": "Axes dependencies",
@@ -148,7 +148,7 @@ export class DesignerItemComponent {
148
148
  continue() {
149
149
  if (this._customDesignerInstance?.onContinue) {
150
150
  this._customDesignerInstance.onContinue();
151
- Object.assign(this.options, this._customDesignerInstance.form.value);
151
+ Object.assign(this.options, this._customDesignerInstance.form.getRawValue());
152
152
  }
153
153
  this.onContinue.emit();
154
154
  this._addEditControls();
@@ -157,7 +157,7 @@ export class DesignerItemComponent {
157
157
  this.mode = 'edit';
158
158
  }
159
159
  save() {
160
- Object.assign(this.model, this.form.value);
160
+ Object.assign(this.model, this.form.getRawValue());
161
161
  this._customDesignerInstance?.onFinish && this._customDesignerInstance.onFinish();
162
162
  this.onSave.emit(this.model);
163
163
  this._pane.close();
@@ -178,10 +178,10 @@ export class DesignerItemComponent {
178
178
  }
179
179
  }
180
180
  DesignerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerItemComponent, deps: [{ token: i0.ElementRef }, { token: i1.FormBuilder }, { token: i2.PaneRef, optional: true }, { token: DesignerRef }, { token: i3.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
181
- DesignerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { form: "form" }, outputs: { onContinue: "continue", onSave: "save" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }], ngImport: i0, template: "<ng-conatiner [ngSwitch]=\"mode\">\r\n <!--add mode-->\r\n <form autocomplete=\"off\" class=\"column\" *ngSwitchCase=\"'add'\">\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\">{{'Continue'|translate}}&nbsp;<mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n </form>\r\n <!--edit mode-->\r\n <ng-container *ngSwitchCase=\"'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p class=\"help\">{{model.help}}</p>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\"\r\n (document:keydown)=\"handleKeyboardEvent($event)\">\r\n <div class=\"row\" *ngIf=\"!optionsstate\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n </ng-container>\r\n <!--widget mode -->\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"model.family\">\r\n <div *ngIf=\"svg[model.family]\" [innerHTML]=\"svg[model.family]|sanitizeHtml\" [bizdocTooltip]=\"model.family\"></div>\r\n <div *ngIf=\"!svg[model.family]\">{{model.family}}</div>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n</ng-conatiner>\r\n", styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { 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: "directive", type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i12.DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "pipe", type: i13.SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
181
+ DesignerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { form: "form" }, outputs: { onContinue: "continue", onSave: "save" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }], ngImport: i0, template: "<ng-conatiner [ngSwitch]=\"mode\">\r\n <!--add mode-->\r\n <form autocomplete=\"off\" class=\"column\" *ngSwitchCase=\"'add'\">\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\">{{'Continue'|translate}}&nbsp;<mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n </form>\r\n <!--edit mode-->\r\n <ng-container *ngSwitchCase=\"'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p class=\"help\">{{model.help}}</p>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\"\r\n (document:keydown)=\"handleKeyboardEvent($event)\">\r\n <ng-container *ngIf=\"!optionsstate\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--privileges-->\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n </ng-container>\r\n <!--widget mode -->\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"model.family\">\r\n <div *ngIf=\"svg[model.family]\" [innerHTML]=\"svg[model.family]|sanitizeHtml\" [bizdocTooltip]=\"model.family\"></div>\r\n <div *ngIf=\"!svg[model.family]\">{{model.family}}</div>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n</ng-conatiner>\r\n", styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "directive", type: i7.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { 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: "directive", type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i12.DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "pipe", type: i13.SanitizeHtmlPipe, name: "sanitizeHtml" }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
182
182
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: DesignerItemComponent, decorators: [{
183
183
  type: Component,
184
- args: [{ selector: 'bizdoc-designer-element', template: "<ng-conatiner [ngSwitch]=\"mode\">\r\n <!--add mode-->\r\n <form autocomplete=\"off\" class=\"column\" *ngSwitchCase=\"'add'\">\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\">{{'Continue'|translate}}&nbsp;<mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n </form>\r\n <!--edit mode-->\r\n <ng-container *ngSwitchCase=\"'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p class=\"help\">{{model.help}}</p>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\"\r\n (document:keydown)=\"handleKeyboardEvent($event)\">\r\n <div class=\"row\" *ngIf=\"!optionsstate\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n </ng-container>\r\n <!--widget mode -->\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"model.family\">\r\n <div *ngIf=\"svg[model.family]\" [innerHTML]=\"svg[model.family]|sanitizeHtml\" [bizdocTooltip]=\"model.family\"></div>\r\n <div *ngIf=\"!svg[model.family]\">{{model.family}}</div>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n</ng-conatiner>\r\n", styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}\n"] }]
184
+ args: [{ selector: 'bizdoc-designer-element', template: "<ng-conatiner [ngSwitch]=\"mode\">\r\n <!--add mode-->\r\n <form autocomplete=\"off\" class=\"column\" *ngSwitchCase=\"'add'\">\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"!form.valid\" (click)=\"continue()\">{{'Continue'|translate}}&nbsp;<mat-icon>double_arrow</mat-icon></button>\r\n </div>\r\n </form>\r\n <!--edit mode-->\r\n <ng-container *ngSwitchCase=\"'edit'\">\r\n <mat-toolbar>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"!form.valid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n </mat-toolbar>\r\n <p class=\"help\">{{model.help}}</p>\r\n <p *ngIf=\"model.resource\" class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\"\r\n (document:keydown)=\"handleKeyboardEvent($event)\">\r\n <ng-container *ngIf=\"!optionsstate\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required #title />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!--arguments-->\r\n <ng-container *ngIf=\"arguments\" (attached)=\"argumentsattached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--privileges-->\r\n <bizdoc-designer-privileges *ngIf=\"form.contains('privileges') && !optionsstate\" [form]=\"form.get('privileges')\"></bizdoc-designer-privileges>\r\n </form>\r\n </ng-container>\r\n <!--widget mode -->\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"model.family\">\r\n <div *ngIf=\"svg[model.family]\" [innerHTML]=\"svg[model.family]|sanitizeHtml\" [bizdocTooltip]=\"model.family\"></div>\r\n <div *ngIf=\"!svg[model.family]\">{{model.family}}</div>\r\n </ng-container>\r\n <ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n <ng-container *ngIf=\"options\" (attached)=\"optionsattached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n </ng-container>\r\n</ng-conatiner>\r\n", styles: [":host{flex:1}::ng-deep form{padding:8px}::ng-deep .flex{flex:1}p.message{margin:5px}\n"] }]
185
185
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.FormBuilder }, { type: i2.PaneRef, decorators: [{
186
186
  type: Optional
187
187
  }] }, { type: i15.DesignerRef, decorators: [{
@@ -202,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
202
202
  type: ContentChild,
203
203
  args: [WidgetContentDirective]
204
204
  }] } });
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ25MLE9BQU8sRUFBNEIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcxQyxPQUFPLEVBQUUsV0FBVyxFQUFnQixXQUFXLEVBQWMsVUFBVSxFQUE0QixNQUFNLGdCQUFnQixDQUFDO0FBQzFILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNckUsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFtQixXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7SUFBSSxDQUFDOztpSEFEOUMsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs7QUFPRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQW1CLFdB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b21wb25lbnRSZWYsIENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3B0aW9uYWwsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwsIFBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlciB9IGZyb20gXCIuLi8uLi9jb3JlL2NvbXBvbmVudC1mYWN0b3J5LXJlc29sdmVyXCI7XHJcbmltcG9ydCB7IFJvbGUgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJSZWYsIEVsZW1lbnRNb2RlbCwgcHJvZ3JhbU5hbWUsIERlc2lnbk1vZGUsIEZBTUlMWV9TVkcsIERlc2lnbmVyRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuL2RlY2xhcmF0aW9uc1wiO1xyXG5pbXBvcnQgeyBMYXlvdXRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29yZS9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2xvdHMvcGFuZS1yZWZcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2JpemRvY0VkaXRDb250ZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXRDb250ZW50RGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+KSB7IH1cclxufVxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tiaXpkb2NDb250ZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFdpZGdldENvbnRlbnREaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHsgfVxyXG59XHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2JpemRvY0FkZENvbnRlbnRdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWRkQ29udGVudERpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPikgeyB9XHJcbn1cclxuXHJcbi8qKlxyXG4qL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1kZXNpZ25lci1lbGVtZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJ2Rlc2lnbmVyLWVsZW1lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydkZXNpZ25lci1lbGVtZW50LmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIERlc2lnbmVySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgc3ZnID0gRkFNSUxZX1NWRztcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICBAT3V0cHV0KCdjb250aW51ZScpIHJlYWRvbmx5IG9uQ29udGludWUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgnc2F2ZScpIHJlYWRvbmx5IG9uU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8RWxlbWVudE1vZGVsPigpO1xyXG4gIHJvbGVzOiBSb2xlW107XHJcbiAgZnJvbGVzOiBSb2xlW107XHJcbiAgQENvbnRlbnRDaGlsZChFZGl0Q29udGVudERpcmVjdGl2ZSkgZWRpdENvbnRlbnQ6IEVkaXRDb250ZW50RGlyZWN0aXZlO1xyXG4gIEBDb250ZW50Q2hpbGQoV2lkZ2V0Q29udGVudERpcmVjdGl2ZSkgd2lkZ2V0Q29udGVudDogV2lkZ2V0Q29udGVudERpcmVjdGl2ZTtcclxuICBvcHRpb25zOiBQb3J0YWw8YW55PjtcclxuICBhcmd1bWVudHM6IFBvcnRhbDxhbnk+O1xyXG4gIG1vZGU6IERlc2lnbk1vZGU7XHJcbiAgbW9kZWw6IEVsZW1lbnRNb2RlbDxhbnk+O1xyXG4gIHJvbGVzZmlsdGVyOiBGb3JtQ29udHJvbDtcclxuICBwcml2YXRlIF9jdXN0b21EZXNpZ25lckluc3RhbmNlOiBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8YW55PjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBvcHRpb25zc3RhdGU6IGFueTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZixcclxuICAgIEBJbmplY3QoRGVzaWduZXJSZWYpIHByaXZhdGUgX3JlZjogRGVzaWduZXJSZWY8YW55PixcclxuICAgIHByaXZhdGUgX2NmcjogQml6RG9jQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICkge1xyXG4gICAgdGhpcy5tb2RlID0gX3JlZi5tb2RlO1xyXG4gICAgdGhpcy5tb2RlbCA9IF9yZWYubW9kZWwgYXMgRWxlbWVudE1vZGVsO1xyXG4gIH1cclxuICBvcHRpb25zYXR0YWNoZWQoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8RGVzaWduZXJFbGVtZW50Q29tcG9uZW50PGFueT4+KSB7XHJcbiAgICBjb25zdCB7IGluc3RhbmNlIH0gPSBjb21wb25lbnRSZWY7XHJcbiAgICB0aGlzLl9jdXN0b21EZXNpZ25lckluc3RhbmNlID0gaW5zdGFuY2UgYXMgRGVzaWduZXJFbGVtZW50Q29tcG9uZW50PGFueT47XHJcbiAgICBpbnN0YW5jZS5tb2RlbCA9IHRoaXMubW9kZWw7XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnYWRkJyAmJiAhdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZS5vbkNvbnRpbnVlKSB7XHJcbiAgICAgIHRoaXMubW9kZSA9ICdlZGl0JztcclxuICAgICAgdGhpcy5fYWRkRWRpdENvbnRyb2xzKCk7XHJcbiAgICAgIHRoaXMub25Db250aW51ZS5lbWl0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9jdXN0b21EZXNpZ25lckluc3RhbmNlLm1vZGUgPSB0aGlzLm1vZGU7XHJcbiAgICBpZiAodGhpcy5tb2RlICE9PSAnd2lkZ2V0Jykge1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnb3B0aW9ucycsIGluc3RhbmNlLmZvcm0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgaW5zdGFuY2UuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwub3B0aW9ucywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBhcmd1bWVudHNhdHRhY2hlZChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxMYXlvdXRDb21wb25lbnQ+KSB7XHJcbiAgICBjb25zdCB7IGluc3RhbmNlIH0gPSBjb21wb25lbnRSZWY7XHJcbiAgICBpbnN0YW5jZS5maWVsZHMgPSB0aGlzLm1vZGVsLmFyZ3VtZW50cztcclxuICAgIGluc3RhbmNlLm1vZGVsID0gdGhpcy5tb2RlbC5vcHRpb25zO1xyXG4gICAgaW5zdGFuY2UubGF5b3V0KCk7XHJcbiAgICB0aGlzLm1vZGUgIT09ICd3aWRnZXQnICYmXHJcbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCdvcHRpb25zJywgaW5zdGFuY2UuZm9ybSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm1vZGUgPT0gJ2FkZCcpIHtcclxuICAgICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHt9KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1vZGVsLnRlbXBsYXRlKSB7XHJcbiAgICAgIGNvbnN0IGNvbXAgPSB0aGlzLl9jZnIuY29tcG9uZW50KHRoaXMubW9kZWwudGVtcGxhdGUpO1xyXG4gICAgICB0aGlzLm9wdGlvbnMgPSBuZXcgQ29tcG9uZW50UG9ydGFsPERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxhbnk+Pihjb21wKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMubW9kZSAhPT0gJ3dpZGdldCcgJiYgdGhpcy5tb2RlbC5hcmd1bWVudHM/Lmxlbmd0aClcclxuICAgICAgdGhpcy5hcmd1bWVudHMgPSBuZXcgQ29tcG9uZW50UG9ydGFsKExheW91dENvbXBvbmVudCk7XHJcbiAgICBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICdhZGQnKVxyXG4gICAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XHJcblxyXG4gICAgdGhpcy5tb2RlID09PSAnZWRpdCcgJiZcclxuICAgICAgdGhpcy5fYWRkRWRpdENvbnRyb2xzKCk7XHJcbiAgICB0aGlzLm1vZGUgIT09ICd3aWRnZXQnICYmXHJcbiAgICAgIHRoaXMuX3JlZi5fc3RhdGUkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodiA9PlxyXG4gICAgICAgIHRoaXMub3B0aW9uc3N0YXRlID0gdik7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2FkZEVkaXRDb250cm9scygpIHtcclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB0aXRsZSA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB0aGlzLm1vZGVsLnJlc291cmNlICYmIHRpdGxlLmRpc2FibGUoKTtcclxuICAgIGlmICh0aGlzLm1vZGVsLmRyYWZ0KSB0aXRsZS52YWx1ZUNoYW5nZXMuXHJcbiAgICAgIHBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKHQ6IHN0cmluZykgPT5cclxuICAgICAgICB0ICYmIG5hbWUuc2V0VmFsdWUocHJvZ3JhbU5hbWUodCkpXHJcbiAgICAgICk7XHJcbiAgICBlbHNlXHJcbiAgICAgIG5hbWUuZGlzYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ25hbWUnLCBuYW1lKTtcclxuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCd0aXRsZScsIHRpdGxlKTtcclxuICAgIHRoaXMubW9kZWwucHJpdmlsZWdlcyAmJlxyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgncHJpdmlsZWdlcycsXHJcbiAgICAgICAgdGhpcy5fZmIuZ3JvdXAoe1xyXG4gICAgICAgICAgcnVsZTogbnVsbCxcclxuICAgICAgICAgIHJvbGVzOiB0aGlzLl9mYi5jb250cm9sPHN0cmluZ1tdPihudWxsKSxcclxuICAgICAgICB9KSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5tb2RlbCwgeyBlbWl0RXZlbnQ6ICF0aGlzLm1vZGVsLmRyYWZ0IH0pO1xyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLm1vZGUgIT09ICd3aWRnZXQnICYmXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk/LmZvY3VzKCkpO1xyXG4gIH1cclxuICB1bmxvY2soZXZ0OiBFdmVudCkge1xyXG4gICAgaWYgKChldnQuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudCkudGFnTmFtZSAhPT0gJ0EnKSByZXR1cm47XHJcbiAgICB0aGlzLm1vZGVsLnJlc291cmNlID0gbnVsbDtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3RpdGxlJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLl9yZWYuX3VubG9jayQubmV4dChmYWxzZSk7XHJcbiAgfVxyXG4gIGNvbnRpbnVlKCkge1xyXG4gICAgaWYgKHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2U/Lm9uQ29udGludWUpIHtcclxuICAgICAgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZS5vbkNvbnRpbnVlKCk7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5vcHRpb25zLCB0aGlzLl9jdXN0b21EZXNpZ25lckluc3RhbmNlLmZvcm0udmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkNvbnRpbnVlLmVtaXQoKTtcclxuICAgIHRoaXMuX2FkZEVkaXRDb250cm9scygpO1xyXG4gICAgaWYgKHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2UpXHJcbiAgICAgIHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2UubW9kZSA9ICdlZGl0JztcclxuICAgIHRoaXMubW9kZSA9ICdlZGl0JztcclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5tb2RlbCwgdGhpcy5mb3JtLnZhbHVlKTtcclxuICAgIHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2U/Lm9uRmluaXNoICYmIHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2Uub25GaW5pc2goKTtcclxuICAgIHRoaXMub25TYXZlLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICB0aGlzLl9wYW5lLmNsb3NlKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEN0cmwtcyBzYXZlXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgKGV2ZW50LndoaWNoID09PSA4MyB8fCBldmVudC53aGljaCA9PT0gMTE1KSkge1xyXG4gICAgICB0aGlzLmZvcm0udmFsaWQgJiYgdGhpcy5zYXZlKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveT8ubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveT8uY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbmF0aW5lciBbbmdTd2l0Y2hdPVwibW9kZVwiPlxyXG4gIDwhLS1hZGQgbW9kZS0tPlxyXG4gIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGNsYXNzPVwiY29sdW1uXCIgKm5nU3dpdGNoQ2FzZT1cIidhZGQnXCI+XHJcbiAgICA8IS0tYXJndW1lbnRzLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXJndW1lbnRzXCIgKGF0dGFjaGVkKT1cImFyZ3VtZW50c2F0dGFjaGVkKCRldmVudClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cImFyZ3VtZW50c1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLW9wdGlvbnMtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zXCIgKGF0dGFjaGVkKT1cIm9wdGlvbnNhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJvcHRpb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGFjdGlvbnNcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWRcIiAoY2xpY2spPVwiY29udGludWUoKVwiPnt7J0NvbnRpbnVlJ3x0cmFuc2xhdGV9fSZuYnNwOzxtYXQtaWNvbj5kb3VibGVfYXJyb3c8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JtPlxyXG4gIDwhLS1lZGl0IG1vZGUtLT5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZWRpdCdcIj5cclxuICAgIDxtYXQtdG9vbGJhcj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCAhZm9ybS5kaXJ0eVwiPjxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvbWF0LXRvb2xiYXI+XHJcbiAgICA8cCBjbGFzcz1cImhlbHBcIj57e21vZGVsLmhlbHB9fTwvcD5cclxuICAgIDxwICpuZ0lmPVwibW9kZWwucmVzb3VyY2VcIiBjbGFzcz1cIm1lc3NhZ2VcIiAoY2xpY2spPVwidW5sb2NrKCRldmVudClcIiBbaW5uZXJIVE1MXT1cIidVbmxvY2tNdWx0aWxhbmcnfHRyYW5zbGF0ZVwiPjwvcD5cclxuICAgIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiY29sdW1uXCJcclxuICAgICAgICAgIChkb2N1bWVudDprZXlkb3duKT1cImhhbmRsZUtleWJvYXJkRXZlbnQoJGV2ZW50KVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCIhb3B0aW9uc3N0YXRlXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57eydUaXRsZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiIHJlcXVpcmVkICN0aXRsZSAvPlxyXG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uZ2V0KCd0aXRsZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ1RpdGxlJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAmbmJzcDtcclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPnt7J05hbWUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XHJcbiAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ25hbWUnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6KCdOYW1lJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDwhLS1hcmd1bWVudHMtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFyZ3VtZW50c1wiIChhdHRhY2hlZCk9XCJhcmd1bWVudHNhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJhcmd1bWVudHNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPCEtLW9wdGlvbnMtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbnNcIiAoYXR0YWNoZWQpPVwib3B0aW9uc2F0dGFjaGVkKCRldmVudClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cIm9wdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdENvbnRlbnQ/LnRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8Yml6ZG9jLWRlc2lnbmVyLXByaXZpbGVnZXMgKm5nSWY9XCJmb3JtLmNvbnRhaW5zKCdwcml2aWxlZ2VzJykgJiYgIW9wdGlvbnNzdGF0ZVwiIFtmb3JtXT1cImZvcm0uZ2V0KCdwcml2aWxlZ2VzJylcIj48L2JpemRvYy1kZXNpZ25lci1wcml2aWxlZ2VzPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDwhLS13aWRnZXQgbW9kZSAtLT5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWwuZmFtaWx5XCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJzdmdbbW9kZWwuZmFtaWx5XVwiIFtpbm5lckhUTUxdPVwic3ZnW21vZGVsLmZhbWlseV18c2FuaXRpemVIdG1sXCIgW2JpemRvY1Rvb2x0aXBdPVwibW9kZWwuZmFtaWx5XCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhc3ZnW21vZGVsLmZhbWlseV1cIj57e21vZGVsLmZhbWlseX19PC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwid2lkZ2V0Q29udGVudD8udGVtcGxhdGVSZWZcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwhLS1vcHRpb25zLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uc1wiIChhdHRhY2hlZCk9XCJvcHRpb25zYXR0YWNoZWQoJGV2ZW50KVwiIFtjZGtQb3J0YWxPdXRsZXRdPVwib3B0aW9uc1wiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbmF0aW5lcj5cclxuIl19
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxRQUFRLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBQ25MLE9BQU8sRUFBNEIsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcxQyxPQUFPLEVBQUUsV0FBVyxFQUFnQixXQUFXLEVBQWMsVUFBVSxFQUE0QixNQUFNLGdCQUFnQixDQUFDO0FBQzFILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNckUsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFtQixXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7SUFBSSxDQUFDOztpSEFEOUMsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFIaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzs7QUFPRCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQW1CLFdB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bXBvbmVudCwgQ29tcG9uZW50UmVmLCBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsLCBQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBCaXpEb2NDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tIFwiLi4vLi4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlclwiO1xyXG5pbXBvcnQgeyBSb2xlIH0gZnJvbSBcIi4uLy4uL2NvcmUvbW9kZWxzXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBFbGVtZW50TW9kZWwsIHByb2dyYW1OYW1lLCBEZXNpZ25Nb2RlLCBGQU1JTFlfU1ZHLCBEZXNpZ25lckVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgTGF5b3V0Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUvbGF5b3V0L2xheW91dC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGFuZVJlZiB9IGZyb20gXCIuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tiaXpkb2NFZGl0Q29udGVudF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0Q29udGVudERpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPikgeyB9XHJcbn1cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYml6ZG9jQ29udGVudF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb250ZW50RGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+KSB7IH1cclxufVxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tiaXpkb2NBZGRDb250ZW50XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZENvbnRlbnREaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4pIHsgfVxyXG59XHJcblxyXG4vKipcclxuKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtZGVzaWduZXItZWxlbWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICdkZXNpZ25lci1lbGVtZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnZGVzaWduZXItZWxlbWVudC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnRcclxuICBjbGFzcyBEZXNpZ25lckl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHN2ZyA9IEZBTUlMWV9TVkc7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgQE91dHB1dCgnY29udGludWUnKSByZWFkb25seSBvbkNvbnRpbnVlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoJ3NhdmUnKSByZWFkb25seSBvblNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPEVsZW1lbnRNb2RlbD4oKTtcclxuICByb2xlczogUm9sZVtdO1xyXG4gIGZyb2xlczogUm9sZVtdO1xyXG4gIEBDb250ZW50Q2hpbGQoRWRpdENvbnRlbnREaXJlY3RpdmUpIGVkaXRDb250ZW50OiBFZGl0Q29udGVudERpcmVjdGl2ZTtcclxuICBAQ29udGVudENoaWxkKFdpZGdldENvbnRlbnREaXJlY3RpdmUpIHdpZGdldENvbnRlbnQ6IFdpZGdldENvbnRlbnREaXJlY3RpdmU7XHJcbiAgb3B0aW9uczogUG9ydGFsPGFueT47XHJcbiAgYXJndW1lbnRzOiBQb3J0YWw8YW55PjtcclxuICBtb2RlOiBEZXNpZ25Nb2RlO1xyXG4gIG1vZGVsOiBFbGVtZW50TW9kZWw8YW55PjtcclxuICByb2xlc2ZpbHRlcjogRm9ybUNvbnRyb2w7XHJcbiAgcHJpdmF0ZSBfY3VzdG9tRGVzaWduZXJJbnN0YW5jZTogRGVzaWduZXJFbGVtZW50Q29tcG9uZW50PGFueT47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgb3B0aW9uc3N0YXRlOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcixcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3BhbmU6IFBhbmVSZWYsXHJcbiAgICBASW5qZWN0KERlc2lnbmVyUmVmKSBwcml2YXRlIF9yZWY6IERlc2lnbmVyUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIF9jZnI6IEJpekRvY0NvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICApIHtcclxuICAgIHRoaXMubW9kZSA9IF9yZWYubW9kZTtcclxuICAgIHRoaXMubW9kZWwgPSBfcmVmLm1vZGVsIGFzIEVsZW1lbnRNb2RlbDtcclxuICB9XHJcbiAgb3B0aW9uc2F0dGFjaGVkKGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxhbnk+Pikge1xyXG4gICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gY29tcG9uZW50UmVmO1xyXG4gICAgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZSA9IGluc3RhbmNlIGFzIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxhbnk+O1xyXG4gICAgaW5zdGFuY2UubW9kZWwgPSB0aGlzLm1vZGVsO1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ2FkZCcgJiYgIXRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2Uub25Db250aW51ZSkge1xyXG4gICAgICB0aGlzLm1vZGUgPSAnZWRpdCc7XHJcbiAgICAgIHRoaXMuX2FkZEVkaXRDb250cm9scygpO1xyXG4gICAgICB0aGlzLm9uQ29udGludWUuZW1pdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZS5tb2RlID0gdGhpcy5tb2RlO1xyXG4gICAgaWYgKHRoaXMubW9kZSAhPT0gJ3dpZGdldCcpIHtcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ29wdGlvbnMnLCBpbnN0YW5jZS5mb3JtLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgIGluc3RhbmNlLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLm1vZGVsLm9wdGlvbnMsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgYXJndW1lbnRzYXR0YWNoZWQoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8TGF5b3V0Q29tcG9uZW50Pikge1xyXG4gICAgY29uc3QgeyBpbnN0YW5jZSB9ID0gY29tcG9uZW50UmVmO1xyXG4gICAgaW5zdGFuY2UuZmllbGRzID0gdGhpcy5tb2RlbC5hcmd1bWVudHM7XHJcbiAgICBpbnN0YW5jZS5tb2RlbCA9IHRoaXMubW9kZWwub3B0aW9ucztcclxuICAgIGluc3RhbmNlLmxheW91dCgpO1xyXG4gICAgdGhpcy5tb2RlICE9PSAnd2lkZ2V0JyAmJlxyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgnb3B0aW9ucycsIGluc3RhbmNlLmZvcm0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5tb2RlID09ICdhZGQnKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7fSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tb2RlbC50ZW1wbGF0ZSkge1xyXG4gICAgICBjb25zdCBjb21wID0gdGhpcy5fY2ZyLmNvbXBvbmVudCh0aGlzLm1vZGVsLnRlbXBsYXRlKTtcclxuICAgICAgdGhpcy5vcHRpb25zID0gbmV3IENvbXBvbmVudFBvcnRhbDxEZXNpZ25lckVsZW1lbnRDb21wb25lbnQ8YW55Pj4oY29tcCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLm1vZGUgIT09ICd3aWRnZXQnICYmIHRoaXMubW9kZWwuYXJndW1lbnRzPy5sZW5ndGgpXHJcbiAgICAgIHRoaXMuYXJndW1lbnRzID0gbmV3IENvbXBvbmVudFBvcnRhbChMYXlvdXRDb21wb25lbnQpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5tb2RlID09PSAnYWRkJylcclxuICAgICAgdGhpcy5tb2RlID0gJ2VkaXQnO1xyXG5cclxuICAgIHRoaXMubW9kZSA9PT0gJ2VkaXQnICYmXHJcbiAgICAgIHRoaXMuX2FkZEVkaXRDb250cm9scygpO1xyXG4gICAgdGhpcy5tb2RlICE9PSAnd2lkZ2V0JyAmJlxyXG4gICAgICB0aGlzLl9yZWYuX3N0YXRlJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHYgPT5cclxuICAgICAgICB0aGlzLm9wdGlvbnNzdGF0ZSA9IHYpO1xyXG4gIH1cclxuICBwcml2YXRlIF9hZGRFZGl0Q29udHJvbHMoKSB7XHJcbiAgICBjb25zdCBuYW1lID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgdGl0bGUgPSB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgdGhpcy5tb2RlbC5yZXNvdXJjZSAmJiB0aXRsZS5kaXNhYmxlKCk7XHJcbiAgICBpZiAodGhpcy5tb2RlbC5kcmFmdCkgdGl0bGUudmFsdWVDaGFuZ2VzLlxyXG4gICAgICBwaXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCh0OiBzdHJpbmcpID0+XHJcbiAgICAgICAgdCAmJiBuYW1lLnNldFZhbHVlKHByb2dyYW1OYW1lKHQpKVxyXG4gICAgICApO1xyXG4gICAgZWxzZVxyXG4gICAgICBuYW1lLmRpc2FibGUoKTtcclxuICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKCduYW1lJywgbmFtZSk7XHJcbiAgICB0aGlzLmZvcm0uYWRkQ29udHJvbCgndGl0bGUnLCB0aXRsZSk7XHJcbiAgICB0aGlzLm1vZGVsLnByaXZpbGVnZXMgJiZcclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ3ByaXZpbGVnZXMnLFxyXG4gICAgICAgIHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgICAgICAgIHJ1bGU6IG51bGwsXHJcbiAgICAgICAgICByb2xlczogdGhpcy5fZmIuY29udHJvbDxzdHJpbmdbXT4obnVsbCksXHJcbiAgICAgICAgfSksIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwsIHsgZW1pdEV2ZW50OiAhdGhpcy5tb2RlbC5kcmFmdCB9KTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5tb2RlICE9PSAnd2lkZ2V0JyAmJlxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpPy5mb2N1cygpKTtcclxuICB9XHJcbiAgdW5sb2NrKGV2dDogRXZlbnQpIHtcclxuICAgIGlmICgoZXZ0LnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnRhZ05hbWUgIT09ICdBJykgcmV0dXJuO1xyXG4gICAgdGhpcy5tb2RlbC5yZXNvdXJjZSA9IG51bGw7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCd0aXRsZScpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5fcmVmLl91bmxvY2skLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuICBjb250aW51ZSgpIHtcclxuICAgIGlmICh0aGlzLl9jdXN0b21EZXNpZ25lckluc3RhbmNlPy5vbkNvbnRpbnVlKSB7XHJcbiAgICAgIHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2Uub25Db250aW51ZSgpO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMub3B0aW9ucywgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZS5mb3JtLmdldFJhd1ZhbHVlKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkNvbnRpbnVlLmVtaXQoKTtcclxuICAgIHRoaXMuX2FkZEVkaXRDb250cm9scygpO1xyXG4gICAgaWYgKHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2UpXHJcbiAgICAgIHRoaXMuX2N1c3RvbURlc2lnbmVySW5zdGFuY2UubW9kZSA9ICdlZGl0JztcclxuICAgIHRoaXMubW9kZSA9ICdlZGl0JztcclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcy5tb2RlbCwgdGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xyXG4gICAgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZT8ub25GaW5pc2ggJiYgdGhpcy5fY3VzdG9tRGVzaWduZXJJbnN0YW5jZS5vbkZpbmlzaCgpO1xyXG4gICAgdGhpcy5vblNhdmUuZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIHRoaXMuX3BhbmUuY2xvc2UoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmVcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAoZXZlbnQud2hpY2ggPT09IDgzIHx8IGV2ZW50LndoaWNoID09PSAxMTUpKSB7XHJcbiAgICAgIHRoaXMuZm9ybS52YWxpZCAmJiB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Py5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95Py5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bmctY29uYXRpbmVyIFtuZ1N3aXRjaF09XCJtb2RlXCI+XHJcbiAgPCEtLWFkZCBtb2RlLS0+XHJcbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJjb2x1bW5cIiAqbmdTd2l0Y2hDYXNlPVwiJ2FkZCdcIj5cclxuICAgIDwhLS1hcmd1bWVudHMtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcmd1bWVudHNcIiAoYXR0YWNoZWQpPVwiYXJndW1lbnRzYXR0YWNoZWQoJGV2ZW50KVwiIFtjZGtQb3J0YWxPdXRsZXRdPVwiYXJndW1lbnRzXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8IS0tb3B0aW9ucy0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbnNcIiAoYXR0YWNoZWQpPVwib3B0aW9uc2F0dGFjaGVkKCRldmVudClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cIm9wdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDxkaXYgY2xhc3M9XCJyb3cgYWN0aW9uc1wiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiIChjbGljayk9XCJjb250aW51ZSgpXCI+e3snQ29udGludWUnfHRyYW5zbGF0ZX19Jm5ic3A7PG1hdC1pY29uPmRvdWJsZV9hcnJvdzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Zvcm0+XHJcbiAgPCEtLWVkaXQgbW9kZS0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidlZGl0J1wiPlxyXG4gICAgPG1hdC10b29sYmFyPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkIHx8ICFmb3JtLmRpcnR5XCI+PG1hdC1pY29uPnNhdmU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC9tYXQtdG9vbGJhcj5cclxuICAgIDxwIGNsYXNzPVwiaGVscFwiPnt7bW9kZWwuaGVscH19PC9wPlxyXG4gICAgPHAgKm5nSWY9XCJtb2RlbC5yZXNvdXJjZVwiIGNsYXNzPVwibWVzc2FnZVwiIChjbGljayk9XCJ1bmxvY2soJGV2ZW50KVwiIFtpbm5lckhUTUxdPVwiJ1VubG9ja011bHRpbGFuZyd8dHJhbnNsYXRlXCI+PC9wPlxyXG4gICAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJjb2x1bW5cIlxyXG4gICAgICAgICAgKGRvY3VtZW50OmtleWRvd24pPVwiaGFuZGxlS2V5Ym9hcmRFdmVudCgkZXZlbnQpXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhb3B0aW9uc3N0YXRlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZmxleFwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7J1RpdGxlJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIiByZXF1aXJlZCAjdGl0bGUgLz5cclxuICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uZ2V0KCd0aXRsZScpLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgW2lubmVySFRNTF09XCInUmVxdWlyZWRFcnInfHRyYW5zbGF0ZTooJ1RpdGxlJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3snTmFtZSd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiByZXF1aXJlZCAvPlxyXG4gICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5nZXQoJ25hbWUnKS5oYXNFcnJvcigncmVxdWlyZWQnKVwiIFtpbm5lckhUTUxdPVwiJ1JlcXVpcmVkRXJyJ3x0cmFuc2xhdGU6KCdOYW1lJ3x0cmFuc2xhdGUpXCI+PC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1hcmd1bWVudHMtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXJndW1lbnRzXCIgKGF0dGFjaGVkKT1cImFyZ3VtZW50c2F0dGFjaGVkKCRldmVudClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cImFyZ3VtZW50c1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwhLS1vcHRpb25zLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbnNcIiAoYXR0YWNoZWQpPVwib3B0aW9uc2F0dGFjaGVkKCRldmVudClcIiBbY2RrUG9ydGFsT3V0bGV0XT1cIm9wdGlvbnNcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdENvbnRlbnQ/LnRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwhLS1wcml2aWxlZ2VzLS0+XHJcbiAgICAgIDxiaXpkb2MtZGVzaWduZXItcHJpdmlsZWdlcyAqbmdJZj1cImZvcm0uY29udGFpbnMoJ3ByaXZpbGVnZXMnKSAmJiAhb3B0aW9uc3N0YXRlXCIgW2Zvcm1dPVwiZm9ybS5nZXQoJ3ByaXZpbGVnZXMnKVwiPjwvYml6ZG9jLWRlc2lnbmVyLXByaXZpbGVnZXM+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPCEtLXdpZGdldCBtb2RlIC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbC5mYW1pbHlcIj5cclxuICAgICAgPGRpdiAqbmdJZj1cInN2Z1ttb2RlbC5mYW1pbHldXCIgW2lubmVySFRNTF09XCJzdmdbbW9kZWwuZmFtaWx5XXxzYW5pdGl6ZUh0bWxcIiBbYml6ZG9jVG9vbHRpcF09XCJtb2RlbC5mYW1pbHlcIj48L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFzdmdbbW9kZWwuZmFtaWx5XVwiPnt7bW9kZWwuZmFtaWx5fX08L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ3aWRnZXRDb250ZW50Py50ZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPCEtLW9wdGlvbnMtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zXCIgKGF0dGFjaGVkKT1cIm9wdGlvbnNhdHRhY2hlZCgkZXZlbnQpXCIgW2Nka1BvcnRhbE91dGxldF09XCJvcHRpb25zXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29uYXRpbmVyPlxyXG4iXX0=
@@ -125,7 +125,6 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
125
125
  delete eclone.injector;
126
126
  eclone = clone(eclone); // deep
127
127
  const injector = this._createInjector(eclone, mode);
128
- this._panes.collapse();
129
128
  return new Promise((resolve, reject) => this._panes.navigate(section.comp, {
130
129
  policy: mode === 'add' ? OpenPolicy.Dialog | OpenPolicy.Stretch : OpenPolicy.Tab | OpenPolicy.Toggle,
131
130
  group: this._translate.get(section.type),
@@ -238,4 +237,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
238
237
  type: HostListener,
239
238
  args: ['document:keydown', ['$event']]
240
239
  }] } });
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2Rlc2lnbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9kZXNpZ25lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFLL0MsT0FBTyxFQUE2QyxXQUFXLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBRXhILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BF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TyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0gsQ0FBQztDQUNGLENBQUE7MkhBNU1ZLDhCQUE4QjsrR0FBOUIsOEJBQThCLGdJQ3BDM0MscXpFQXVDQSwrN0lETmMsQ0FBQyxhQUFhLENBQUM7QUFHaEIsOEJBQThCO0lBRDFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSwrQkFBK0IsRUFBRSxDQUFDO0dBQ3pDLDhCQUE4QixDQTRNMUM7U0E1TVksOEJBQThCOzJGQUE5Qiw4QkFBOEI7a0JBTjFDLFNBQVM7aUNBR0ksQ0FBQyxhQUFhLENBQUM7Nk1Bc0UzQixtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kcmFnLWRyb3BcIjtcclxuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0TWVudVRyaWdnZXIgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xyXG5pbXBvcnQgeyBpdGVtQW5pbWF0aW9uIH0gZnJvbSBcIi4uLy4uL2NvcmUvYW5pbWF0aW9uc1wiO1xyXG5pbXBvcnQgeyBVdGlsaXR5Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvcmUvYmFzZVwiO1xyXG5pbXBvcnQgeyBPcGVuUG9saWN5IH0gZnJvbSBcIi4uLy4uL2NvcmUvY29uZmlndXJhdGlvblwiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IGNsZWFudXAgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFV0aWxpdHlSZWYgfSBmcm9tIFwiLi4vdXRpbGl0eS1yZWZcIjtcclxuaW1wb3J0IHsgRWxlbWVudE1vZGVsLCBEZXNpZ25lck1vZGVsLCBUZW1wbGF0ZUluZm8sIHByb2dyYW1OYW1lLCBEZXNpZ25lclJlZiwgY2xvbmUsIERlc2lnbk1vZGUgfSBmcm9tIFwiLi9kZWNsYXJhdGlvbnNcIjtcclxuaW1wb3J0IHsgRGVzaWduZXJUeXBlRWxlbWVudENvbXBvbmVudCB9IGZyb20gXCIuL2Rlc2lnbmVyLmJhc2VcIjtcclxuaW1wb3J0IHsgQWN0aW9uRGVzaWduZXJDb21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9hY3Rpb24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEN1YmVEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9jdWJlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGb2xkZXJEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9mb2xkZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZvcm1EZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9mb3JtLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBHdWlkZURlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL2d1aWRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQb2xpY3lEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9wb2xpY3kuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJlcG9ydERlc2lnbmVyQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvcmVwb3J0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSb2xlRGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvcm9sZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUnVsZURlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL3J1bGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFN0YXRlRGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvc3RhdGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFR5cGVEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy90eXBlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBVdGlsaXR5RGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvdXRpbGl0eS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVmlld0Rlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL3ZpZXcuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFdpZGdldERlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL3dpZGdldC5jb21wb25lbnRcIjtcclxuLyoqICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnZGVzaWduZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydkZXNpZ25lci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtpdGVtQW5pbWF0aW9uXVxyXG59KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdiaXpkb2MtY29uZmlndXJhdGlvbi1kZXNpZ25lcicgfSlcclxuZXhwb3J0IGNsYXNzIENvbmZpZ3VyYXRpb25EZXNpZ25lckNvbXBvbmVudCBpbXBsZW1lbnRzIFV0aWxpdHlDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgbG9hZGluZyA9IHRydWU7XHJcbiAgc2F2aW5nID0gZmFsc2U7XHJcbiAgZGlydHkgPSBmYWxzZTtcclxuICBzZWN0aW9uczogU2VjdGlvbltdO1xyXG4gIG1vZGVsOiBEZXNpZ25lck1vZGVsO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcGFuZXM6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHM6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBwcml2YXRlIF9yZWY6IFV0aWxpdHlSZWY8Ym9vbGVhbiwgRGVzaWduZXJNb2RlbCwgRGVzaWduZXJNb2RlbD4pIHsgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcmVmLnBvcHVsYXRlKCkuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICB0aGlzLm1vZGVsID0gcjtcclxuICAgICAgdGhpcy5zZWN0aW9ucyA9IFtcclxuICAgICAgICB7IGVsZW1lbnRzOiByLmZvcm1zLCB0eXBlOiAnRm9ybXMnLCBjb21wOiBGb3JtRGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudEZvcm1zLCBwcml2aWxlZ2VzOiB0cnVlIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5hY3Rpb25zLCB0eXBlOiAnQWN0aW9ucycsIGNvbXA6IEFjdGlvbkRlc2lnbmVyQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudEFjdGlvbnMgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLnJlcG9ydHMsIHR5cGU6ICdSZXBvcnRzJywgY29tcDogUmVwb3J0RGVzaWduZXJDb21wb25lbnQsIHRlbXBsYXRlczogci50UmVwb3J0cywgcHJpdmlsZWdlczogdHJ1ZSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIud2lkZ2V0cywgdHlwZTogJ1dpZGdldHMnLCBjb21wOiBXaWRnZXREZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogci50V2lkZ2V0cywgcHJpdmlsZWdlczogdHJ1ZSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIudmlld3MsIHR5cGU6ICdWaWV3cycsIGNvbXA6IFZpZXdEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogci50Vmlld3MsIHByaXZpbGVnZXM6IHRydWUgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLmd1aWRlcywgdHlwZTogJ0d1aWRlcycsIGNvbXA6IEd1aWRlRGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IFt7IHRpdGxlOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdHdWlkZScpIH1dLCBwcml2aWxlZ2VzOiB0cnVlIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5jdWJlcywgdHlwZTogJ0N1YmVzJywgY29tcDogQ3ViZURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRDdWJlcywgcHJpdmlsZWdlczogdHJ1ZSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIuZm9sZGVycywgdHlwZTogJ0ZvbGRlcnMnLCBjb21wOiBGb2xkZXJEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogW3sgdGl0bGU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0ZvbGRlcicpIH1dLCBwcml2aWxlZ2VzOiB0cnVlIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5yb2xlcywgdHlwZTogJ1JvbGVzJywgY29tcDogUm9sZURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiBbeyB0aXRsZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnUm9sZScpIH1dIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5zdGF0ZXMsIHR5cGU6ICdTdGF0ZXMnLCBjb21wOiBTdGF0ZURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiBbeyB0aXRsZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnU3RhdGUnKSB9XSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIudXRpbGl0aWVzLCB0eXBlOiAnVXRpbGl0aWVzJywgY29tcDogVXRpbGl0eURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRVdGlsaXRpZXMsIHByaXZpbGVnZXM6IHRydWUgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLnR5cGVzLCB0eXBlOiAnVHlwZXMnLCBjb21wOiBUeXBlRGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudFR5cGVzIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5ydWxlcywgdHlwZTogJ1J1bGVzJywgY29tcDogUnVsZURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRSdWxlcyB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIucG9saWNpZXMsIHR5cGU6ICdQb2xpY2llcycsIGNvbXA6IFBvbGljeURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRQb2xpY2llcyB9LFxyXG4gICAgICBdO1xyXG4gICAgICB0aGlzLnNlY3Rpb25zLmZvckVhY2gocyA9PlxyXG4gICAgICAgIHMuZWxlbWVudHMuZm9yRWFjaChlID0+IHtcclxuICAgICAgICAgIGlmIChzLnByaXZpbGVnZXMgJiYgIWUucHJpdmlsZWdlcykgZS5wcml2aWxlZ2VzID0ge307XHJcbiAgICAgICAgICBpZiAoIWUub3B0aW9ucykgZS5vcHRpb25zID0ge307XHJcblxyXG4gICAgICAgICAgZS5pbmplY3RvciA9IHRoaXMuX2NyZWF0ZUluamVjdG9yKGUsICd3aWRnZXQnKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxFbGVtZW50TW9kZWxbXT4pIHtcclxuICAgIGNvbnN0IHJhbmdlID0gZXZlbnQuY29udGFpbmVyLmRhdGEuc2xpY2UoXHJcbiAgICAgIE1hdGgubWluKGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCksXHJcbiAgICAgIE1hdGgubWF4KGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleClcclxuICAgICksIGZpbGUgPSByYW5nZVswXS5jb25maWd1cmF0aW9uRmlsZTtcclxuICAgIGlmXHJcbiAgICAgIC8vIGFjcm9zcyBmaWxlc1xyXG4gICAgICAocmFuZ2Uuc2xpY2UoMSkuc29tZShlID0+IGUuY29uZmlndXJhdGlvbkZpbGUgIT09IGZpbGUpKSB7XHJcbiAgICAgIC8vIHN0YXJ0IG9yZGluYWxcclxuICAgICAgbGV0IGkgPSBldmVudC5jb250YWluZXIuZGF0YVtldmVudC5jdXJyZW50SW5kZXhdLm9yZGluYWwgfHwgLTE7XHJcbiAgICAgIC8vIHNldCBvcmRpbmFsIHRvIGl0ZW1zIGluIHJhbmdlXHJcbiAgICAgIHJhbmdlLmZvckVhY2goZSA9PiBlLm9yZGluYWwgPSBpKyspO1xyXG4gICAgICAvLyBpbmNyZWFzZSBvdGhlciBoaWdoZXIgdGhhbiBsYXN0IGluIHJhbmdlXHJcbiAgICAgIGV2ZW50LmNvbnRhaW5lci5kYXRhLmZpbHRlcihlID0+IGUub3JkaW5hbCAmJiBlLm9yZGluYWwgPiBpKS5mb3JFYWNoKGUgPT4gZS5vcmRpbmFsICs9IDEpO1xyXG4gICAgfSBlbHNlIC8vIG5hdGl2ZSBvcmRlciBpbiBjb2xsZWN0aW9uXHJcbiAgICAgIHJhbmdlLmZvckVhY2goZSA9PiBlLm9yZGluYWwgPSBudWxsKTtcclxuICAgIG1vdmVJdGVtSW5BcnJheShldmVudC5jb250YWluZXIuZGF0YSwgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcmVzZXR0eXBpbmc7XHJcbiAgcHJpdmF0ZSBfdHlwaW5nO1xyXG4gIC8qKlxyXG4gICAqIEN0cmwtcyBzYXZlXHJcbiAgICogQHBhcmFtIGV2ZW50XHJcbiAgICovXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgKGV2ZW50LndoaWNoID09PSA4MyB8fCBldmVudC53aGljaCA9PT0gMTE1KSkge1xyXG4gICAgICB0aGlzLmRpcnR5ICYmIHRoaXMuc2F2ZSgpO1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9yZXNldHR5cGluZyk7XHJcbiAgICAgIHRoaXMuX3R5cGluZyA9IHRoaXMuX3R5cGluZyA/IHRoaXMuX3R5cGluZyArIGV2ZW50LmtleSA6IGV2ZW50LmtleVxyXG4gICAgICB0aGlzLl9yZXNldHR5cGluZyA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fdHlwaW5nID0gbnVsbCwgMjUwKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfaW5zZXJ0KHNlY3Rpb246IFNlY3Rpb24sIGVsZW1lbnQ6IEVsZW1lbnRNb2RlbCwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgbGV0IGkgPSBlbGVtZW50Lm5hbWUubGFzdEluZGV4T2YoJ18nKSxcclxuICAgICAgaiA9IGVsZW1lbnQudGl0bGUubGFzdEluZGV4T2YoJyAnKSxcclxuICAgICAgbiA9IDAsIG5hbWUsIHRpdGxlO1xyXG4gICAgZG8ge1xyXG4gICAgICBuKys7XHJcbiAgICAgIG5hbWUgPSAoaSA8IDAgfHwgaXNOYU4ocGFyc2VJbnQoZWxlbWVudC5uYW1lLnN1YnN0cihpICsgMSkpKSA/IGVsZW1lbnQubmFtZSA6IGVsZW1lbnQubmFtZS5zdWJzdHIoMCwgaSkpICsgJ18nICsgbjtcclxuICAgICAgdGl0bGUgPSAoaiA8IDAgfHwgaXNOYU4ocGFyc2VJbnQoZWxlbWVudC50aXRsZS5zdWJzdHIoaiArIDEpKSkgPyBlbGVtZW50LnRpdGxlIDogZWxlbWVudC50aXRsZS5zdWJzdHIoMCwgaikpICsgJyAnICsgbjtcclxuICAgIH1cclxuICAgIHdoaWxlIChzZWN0aW9uLmVsZW1lbnRzLmZpbmQoZSA9PiBlLm5hbWUgPT09IG5hbWUgfHwgZS50aXRsZSA9PT0gdGl0bGUpKTtcclxuICAgIGVsZW1lbnQubmFtZSA9IG5hbWUsIGVsZW1lbnQudGl0bGUgPSB0aXRsZTtcclxuXHJcbiAgICBjb25zdCBpbmplY3RvciA9IHRoaXMuX2NyZWF0ZUluamVjdG9yKGVsZW1lbnQsICd3aWRnZXQnKTtcclxuICAgIGVsZW1lbnQuaW5qZWN0b3IgPSBpbmplY3RvcjtcclxuICAgIHRoaXMuX29wZW4oZWxlbWVudCwgc2VjdGlvbiwgJ2FkZCcpLnRoZW4oKCkgPT5cclxuICAgICAgc2VjdGlvbi5lbGVtZW50cy5zcGxpY2UoaW5kZXggKyAxLCAwLCBlbGVtZW50KVxyXG4gICAgKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfb3BlbihlbGVtZW50OiBFbGVtZW50TW9kZWwsXHJcbiAgICBzZWN0aW9uOiBTZWN0aW9uLFxyXG4gICAgbW9kZTogRGVzaWduTW9kZSwgdGl0bGU/OiBzdHJpbmcpIHtcclxuICAgIGxldCBlY2xvbmUgPSB7IC4uLmVsZW1lbnQgfTtcclxuICAgIGRlbGV0ZSBlY2xvbmUuaW5qZWN0b3I7XHJcbiAgICBlY2xvbmUgPSBjbG9uZShlY2xvbmUpOyAvLyBkZWVwXHJcbiAgICBjb25zdCBpbmplY3RvciA9IHRoaXMuX2NyZWF0ZUluamVjdG9yKGVjbG9uZSwgbW9kZSk7XHJcbiAgICB0aGlzLl9wYW5lcy5jb2xsYXBzZSgpO1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHRoaXMuX3BhbmVzLm5hdmlnYXRlPERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQ+KHNlY3Rpb24uY29tcCwge1xyXG4gICAgICBwb2xpY3k6IG1vZGUgPT09ICdhZGQnID8gT3BlblBvbGljeS5EaWFsb2cgfCBPcGVuUG9saWN5LlN0cmV0Y2ggOiBPcGVuUG9saWN5LlRhYiB8IE9wZW5Qb2xpY3kuVG9nZ2xlLFxyXG4gICAgICBncm91cDogdGhpcy5fdHJhbnNsYXRlLmdldChzZWN0aW9uLnR5cGUpLFxyXG4gICAgICAvL3RpdGxlLFxyXG4gICAgICBpbmplY3RvcjogaW5qZWN0b3JcclxuICAgIH0pLnRoZW4oZSA9PlxyXG4gICAgICBlLmluc3RhbmNlLmRlc2lnbmVyLm9uU2F2ZS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICAgaWYgKGUpIHtcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudCwgZSk7XHJcbiAgICAgICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICAgICAgICAgIHJlc29sdmUoZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgcmVqZWN0KCk7XHJcbiAgICAgIH0pXHJcbiAgICApKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3JlYXRlSW5qZWN0b3IoZWxlbWVudDogRWxlbWVudE1vZGVsPGFueT4sIG1vZGU6IERlc2lnbk1vZGUpIHtcclxuICAgIGNvbnN0IHJlZiA9IG5ldyBEZXNpZ25lclJlZih0aGlzLm1vZGVsLCBlbGVtZW50LCBtb2RlKTtcclxuXHJcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZShbe1xyXG4gICAgICBwcm92aWRlOiBEZXNpZ25lclJlZiwgdXNlVmFsdWU6IHJlZlxyXG4gICAgfV0sIHRoaXMuX2luamVjdG9yKTtcclxuICAgIHJldHVybiBpbmplY3RvcjtcclxuICB9XHJcbiAgYWRkKHNlY3Rpb246IFNlY3Rpb24sIG1lbnU6IE1hdE1lbnVUcmlnZ2VyLCBldnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoc2VjdGlvbi50ZW1wbGF0ZXMubGVuZ3RoID4gMSlcclxuICAgICAgbWVudS5vcGVuTWVudSgpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlKHNlY3Rpb24sIHNlY3Rpb24udGVtcGxhdGVzWzBdKTtcclxuICAgIH1cclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBjcmVhdGUoc2VjdGlvbjogU2VjdGlvbiwgdGVtcGxhdGU6IFRlbXBsYXRlSW5mbykge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHtcclxuICAgICAgLi4udGVtcGxhdGUsXHJcbiAgICAgIG5hbWU6IHByb2dyYW1OYW1lKHRlbXBsYXRlLnRpdGxlKSxcclxuICAgICAgZHJhZnQ6IHRydWUsXHJcbiAgICAgIG9wdGlvbnM6IHt9XHJcbiAgICB9IGFzIEVsZW1lbnRNb2RlbDtcclxuICAgIGlmIChzZWN0aW9uLnByaXZpbGVnZXMpIGVsZW1lbnQucHJpdmlsZWdlcyA9IHt9O1xyXG4gICAgdGhpcy5faW5zZXJ0KHNlY3Rpb24sIGVsZW1lbnQsIHNlY3Rpb24uZWxlbWVudHMubGVuZ3RoKTtcclxuICB9XHJcbiAgY29weShzZWN0aW9uOiBTZWN0aW9uLCBlbGVtZW50OiBFbGVtZW50TW9kZWwpIHtcclxuICAgIGxldCBlY2xvbmUgPSB7XHJcbiAgICAgIC4uLmVsZW1lbnQsXHJcbiAgICAgIGNvcHlPZjogZWxlbWVudC5uYW1lLFxyXG4gICAgICBkcmFmdDogdHJ1ZVxyXG4gICAgfTtcclxuICAgIGRlbGV0ZSBlY2xvbmUuaW5qZWN0b3I7XHJcbiAgICBkZWxldGUgZWNsb25lLnJlc291cmNlO1xyXG4gICAgZWNsb25lID0gY2xvbmUoZWNsb25lKTsgLy8gZGVlcFxyXG4gICAgdGhpcy5faW5zZXJ0KHNlY3Rpb24sIGVjbG9uZSwgc2VjdGlvbi5lbGVtZW50cy5pbmRleE9mKGVsZW1lbnQpKTtcclxuICB9XHJcbiAgZWRpdChlbGVtZW50OiBFbGVtZW50TW9kZWwsIHNlY3Rpb246IFNlY3Rpb24pIHtcclxuICAgIHRoaXMuX29wZW4oZWxlbWVudCwgc2VjdGlvbiwgJ2VkaXQnKTtcclxuICB9XHJcbiAgdG9nZ2xlRGlzYWJsZWQoZWxlbWVudDogRWxlbWVudE1vZGVsKSB7XHJcbiAgICBlbGVtZW50LmRpc2FibGVkID0gIWVsZW1lbnQuZGlzYWJsZWQ7XHJcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IHsgcG9saWNpZXMsIGFjdGlvbnMsIGN1YmVzLCBmb2xkZXJzLCBmb3JtcywgZ3VpZGVzLCByZXBvcnRzLCByb2xlcywgcnVsZXMsIHN0YXRlcywgdHlwZXMsIHV0aWxpdGllcywgdmlld3MsIHdpZGdldHMgfSA9IHRoaXMubW9kZWw7XHJcbiAgICBjb25zdCBtb2RlbCA9IHtcclxuICAgICAgYWN0aW9uczogc3RyaXAoYWN0aW9ucyksXHJcbiAgICAgIGN1YmVzOiBzdHJpcChjdWJlcyksXHJcbiAgICAgIGZvbGRlcnM6IHN0cmlwKGZvbGRlcnMpLFxyXG4gICAgICBmb3Jtczogc3RyaXAoZm9ybXMpLFxyXG4gICAgICBndWlkZXM6IHN0cmlwKGd1aWRlcyksXHJcbiAgICAgIHJlcG9ydHM6IHN0cmlwKHJlcG9ydHMpLFxyXG4gICAgICByb2xlczogc3RyaXAocm9sZXMpLFxyXG4gICAgICBydWxlczogc3RyaXAocnVsZXMpLFxyXG4gICAgICBwb2xpY2llczogc3RyaXAocG9saWNpZXMpLFxyXG4gICAgICBzdGF0ZXM6IHN0cmlwKHN0YXRlcyksXHJcbiAgICAgIHR5cGVzOiBzdHJpcCh0eXBlcyksXHJcbiAgICAgIHV0aWxpdGllczogc3RyaXAodXRpbGl0aWVzKSxcclxuICAgICAgdmlld3M6IHN0cmlwKHZpZXdzKSxcclxuICAgICAgd2lkZ2V0czogc3RyaXAod2lkZ2V0cylcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5fcmVmLmV4ZWN1dGUoXHJcbiAgICAgIG1vZGVsIGFzIGFueSkudG9Qcm9taXNlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9wcy50b2FzdCgnQ2hhbmdlc1NhdmVkJyk7XHJcbiAgICAgICAgYXBwbHkocG9saWNpZXMsIGFjdGlvbnMsIGN1YmVzLCBmb2xkZXJzLCBmb3JtcywgZ3VpZGVzLCByZXBvcnRzLCByb2xlcywgcnVsZXMsIHN0YXRlcywgdHlwZXMsIHV0aWxpdGllcywgdmlld3MsIHdpZGdldHMpO1xyXG4gICAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZGlydHkgPSBmYWxzZVxyXG4gICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3BzLmVycm9yKCk7XHJcbiAgICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlXHJcbiAgICAgICAgfSk7XHJcbiAgICBmdW5jdGlvbiBzdHJpcChlbGVtZW50czogRWxlbWVudE1vZGVsW10pIHtcclxuICAgICAgcmV0dXJuIGVsZW1lbnRzLm1hcChlID0+IHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0geyAuLi5lIH07XHJcbiAgICAgICAgZGVsZXRlIGVsZW1lbnQuaW5qZWN0b3I7XHJcbiAgICAgICAgcmV0dXJuIGNsZWFudXAoZWxlbWVudCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gYXBwbHkoLi4uY29sbGVjdGlvbjogRWxlbWVudE1vZGVsW11bXSkge1xyXG4gICAgICBjb2xsZWN0aW9uLmZvckVhY2gocyA9PiBzLmZvckVhY2goZSA9PiBkZWxldGUgZS5kcmFmdCkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgU2VjdGlvbiB7XHJcbiAgY29tcDogQ29tcG9uZW50VHlwZTxhbnk+O1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBlbGVtZW50czogRWxlbWVudE1vZGVsW107XHJcbiAgdGVtcGxhdGVzOiBUZW1wbGF0ZUluZm9bXTtcclxuICBwcml2aWxlZ2VzPzogYm9vbGVhbjtcclxufVxyXG4iLCI8bWF0LXRvb2xiYXI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhZGlydHkgfHwgbG9hZGluZyB8fCBzYXZpbmdcIiBbYml6ZG9jVG9vbHRpcF09XCInU2F2ZSd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnNhdmU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG48L21hdC10b29sYmFyPlxyXG48c2VjdGlvbiAqbmdGb3I9XCJsZXQgcyBvZiBzZWN0aW9uc1wiPlxyXG4gIDxoMiBjbGFzcz1cIm1hdC10aXRsZVwiPnt7cy50eXBlIHwgdHJhbnNsYXRlfX08L2gyPlxyXG4gIDxkaXYgY2xhc3M9XCJlbGVtZW50c1wiIGNka0Ryb3BMaXN0IGNka0Ryb3BMaXN0T3JpZW50YXRpb249XCJob3Jpem9udGFsXCIgW2Nka0Ryb3BMaXN0RGF0YV09XCJzLmVsZW1lbnRzXCIgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cclxuICAgIDxtYXQtY2FyZCAqbmdGb3I9XCJsZXQgZSBvZiBzLmVsZW1lbnRzXCIgW2NsYXNzLmRpc2FibGVkXT1cImUuZGlzYWJsZWRcIiBjZGtEcmFnIGNka0RyYWdSb290RWxlbWVudD1cIi5tYXQtY2FyZC10aXRsZVwiPlxyXG4gICAgICA8IS0tIEBpdGVtLS0+XHJcbiAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICB7e2UudGl0bGV9fVxyXG4gICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICA8bWF0LWNhcmQtc3VidGl0bGU+XHJcbiAgICAgICAge3tlLm5hbWV9fVxyXG4gICAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxyXG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cInMuY29tcDsgaW5qZWN0b3I6IGUuaW5qZWN0b3JcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dD1cInJvd1wiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjb3B5KHMsIGUpXCIgKm5nSWY9XCIhZS5jb3B5T2ZcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29weSd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmZpbGVfY29weTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInMuZWxlbWVudHMucmVtb3ZlKGUpXCIgKm5nSWY9XCJlLmRyYWZ0IHx8IGUuZW1wdHlcIiBbYml6ZG9jVG9vbHRpcF09XCInRGlzY2FyZCd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZURpc2FibGVkKGUpXCIgW2JpemRvY1Rvb2x0aXBdPVwiKGUuZGlzYWJsZWQgPyAnRW5hYmxlJyA6ICdEaXNhYmxlJyl8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnt7ZS5kaXNhYmxlZCA/ICd2aXNpYmlsaXR5JyA6ICd2aXNpYmlsaXR5X29mZid9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJlZGl0KGUsIHMpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NldHRpbmdzJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZC1lbGVtZW50XCIgbWF0UmlwcGxlIChjbGljayk9XCJhZGQocywgbWVudVRyaWdnZXIsICRldmVudClcIiAqbmdJZj1cInMudGVtcGxhdGVzPy5sZW5ndGhcIj5cclxuICAgICAgPHNwYW4gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRlbXBsYXRlTWVudVwiICNtZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCI+PC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbj48bWF0LWljb24gW2JpemRvY1Rvb2x0aXBdPVwiJ05ldyd8dHJhbnNsYXRlXCIgZGlzYWJsZVJpcHBsZT1cInRydWVcIj5hZGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8bWF0LW1lbnUgI3RlbXBsYXRlTWVudT5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IHQgb2Ygcy50ZW1wbGF0ZXNcIiAoY2xpY2spPVwiY3JlYXRlKHMsIHQpXCI+XHJcbiAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAge3t0LmZhbWlseX19XHJcbiAgICAgICAgICAgIHt7dC50aXRsZX19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzaWduZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2Rlc2lnbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vY29uZmlndXJhdGlvbi1kZXNpZ25lci9kZXNpZ25lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFLL0MsT0FBTyxFQUE2QyxXQUFXLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBYyxNQUFNLGdCQUFnQixDQUFDO0FBRXhILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BF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QztJQUNILENBQUM7Q0FDRixDQUFBOzJIQTNNWSw4QkFBOEI7K0dBQTlCLDhCQUE4QixnSUNwQzNDLHF6RUF1Q0EsKzdJRE5jLENBQUMsYUFBYSxDQUFDO0FBR2hCLDhCQUE4QjtJQUQxQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsK0JBQStCLEVBQUUsQ0FBQztHQUN6Qyw4QkFBOEIsQ0EyTTFDO1NBM01ZLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQU4xQyxTQUFTO2lDQUdJLENBQUMsYUFBYSxDQUFDOzZNQXNFM0IsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZ0Ryb3AsIG1vdmVJdGVtSW5BcnJheSB9IGZyb20gXCJAYW5ndWxhci9jZGsvZHJhZy1kcm9wXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcclxuaW1wb3J0IHsgaXRlbUFuaW1hdGlvbiB9IGZyb20gXCIuLi8uLi9jb3JlL2FuaW1hdGlvbnNcIjtcclxuaW1wb3J0IHsgVXRpbGl0eUNvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb3JlL2Jhc2VcIjtcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gXCIuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSBcIi4uLy4uL2NvcmUvZGVjb3JhdG9yc1wiO1xyXG5pbXBvcnQgeyBjbGVhbnVwIH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gXCIuLi8uLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBVdGlsaXR5UmVmIH0gZnJvbSBcIi4uL3V0aWxpdHktcmVmXCI7XHJcbmltcG9ydCB7IEVsZW1lbnRNb2RlbCwgRGVzaWduZXJNb2RlbCwgVGVtcGxhdGVJbmZvLCBwcm9ncmFtTmFtZSwgRGVzaWduZXJSZWYsIGNsb25lLCBEZXNpZ25Nb2RlIH0gZnJvbSBcIi4vZGVjbGFyYXRpb25zXCI7XHJcbmltcG9ydCB7IERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQgfSBmcm9tIFwiLi9kZXNpZ25lci5iYXNlXCI7XHJcbmltcG9ydCB7IEFjdGlvbkRlc2lnbmVyQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvYWN0aW9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDdWJlRGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvY3ViZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRm9sZGVyRGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvZm9sZGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGb3JtRGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvZm9ybS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgR3VpZGVEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9ndWlkZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUG9saWN5RGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvcG9saWN5LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSZXBvcnREZXNpZ25lckNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL3JlcG9ydC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUm9sZURlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL3JvbGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJ1bGVEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9ydWxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTdGF0ZURlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL3N0YXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBUeXBlRGVzaWduQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvdHlwZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVXRpbGl0eURlc2lnbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL3V0aWxpdHkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFZpZXdEZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy92aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBXaWRnZXREZXNpZ25Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy93aWRnZXQuY29tcG9uZW50XCI7XHJcbi8qKiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJ2Rlc2lnbmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnZGVzaWduZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbaXRlbUFuaW1hdGlvbl1cclxufSlcclxuQEJpekRvYyh7IHNlbGVjdG9yOiAnYml6ZG9jLWNvbmZpZ3VyYXRpb24tZGVzaWduZXInIH0pXHJcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uRGVzaWduZXJDb21wb25lbnQgaW1wbGVtZW50cyBVdGlsaXR5Q29tcG9uZW50LCBPbkluaXQge1xyXG4gIGxvYWRpbmcgPSB0cnVlO1xyXG4gIHNhdmluZyA9IGZhbHNlO1xyXG4gIGRpcnR5ID0gZmFsc2U7XHJcbiAgc2VjdGlvbnM6IFNlY3Rpb25bXTtcclxuICBtb2RlbDogRGVzaWduZXJNb2RlbDtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3BhbmVzOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3BzOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcHJpdmF0ZSBfcmVmOiBVdGlsaXR5UmVmPGJvb2xlYW4sIERlc2lnbmVyTW9kZWwsIERlc2lnbmVyTW9kZWw+KSB7IH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3JlZi5wb3B1bGF0ZSgpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5tb2RlbCA9IHI7XHJcbiAgICAgIHRoaXMuc2VjdGlvbnMgPSBbXHJcbiAgICAgICAgeyBlbGVtZW50czogci5mb3JtcywgdHlwZTogJ0Zvcm1zJywgY29tcDogRm9ybURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRGb3JtcywgcHJpdmlsZWdlczogdHJ1ZSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIuYWN0aW9ucywgdHlwZTogJ0FjdGlvbnMnLCBjb21wOiBBY3Rpb25EZXNpZ25lckNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRBY3Rpb25zIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5yZXBvcnRzLCB0eXBlOiAnUmVwb3J0cycsIGNvbXA6IFJlcG9ydERlc2lnbmVyQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudFJlcG9ydHMsIHByaXZpbGVnZXM6IHRydWUgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLndpZGdldHMsIHR5cGU6ICdXaWRnZXRzJywgY29tcDogV2lkZ2V0RGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudFdpZGdldHMsIHByaXZpbGVnZXM6IHRydWUgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLnZpZXdzLCB0eXBlOiAnVmlld3MnLCBjb21wOiBWaWV3RGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IHIudFZpZXdzLCBwcml2aWxlZ2VzOiB0cnVlIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci5ndWlkZXMsIHR5cGU6ICdHdWlkZXMnLCBjb21wOiBHdWlkZURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiBbeyB0aXRsZTogdGhpcy5fdHJhbnNsYXRlLmdldCgnR3VpZGUnKSB9XSwgcHJpdmlsZWdlczogdHJ1ZSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIuY3ViZXMsIHR5cGU6ICdDdWJlcycsIGNvbXA6IEN1YmVEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogci50Q3ViZXMsIHByaXZpbGVnZXM6IHRydWUgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLmZvbGRlcnMsIHR5cGU6ICdGb2xkZXJzJywgY29tcDogRm9sZGVyRGVzaWduQ29tcG9uZW50LCB0ZW1wbGF0ZXM6IFt7IHRpdGxlOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdGb2xkZXInKSB9XSwgcHJpdmlsZWdlczogdHJ1ZSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIucm9sZXMsIHR5cGU6ICdSb2xlcycsIGNvbXA6IFJvbGVEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogW3sgdGl0bGU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1JvbGUnKSB9XSB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIuc3RhdGVzLCB0eXBlOiAnU3RhdGVzJywgY29tcDogU3RhdGVEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogW3sgdGl0bGU6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1N0YXRlJykgfV0gfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLnV0aWxpdGllcywgdHlwZTogJ1V0aWxpdGllcycsIGNvbXA6IFV0aWxpdHlEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogci50VXRpbGl0aWVzLCBwcml2aWxlZ2VzOiB0cnVlIH0sXHJcbiAgICAgICAgeyBlbGVtZW50czogci50eXBlcywgdHlwZTogJ1R5cGVzJywgY29tcDogVHlwZURlc2lnbkNvbXBvbmVudCwgdGVtcGxhdGVzOiByLnRUeXBlcyB9LFxyXG4gICAgICAgIHsgZWxlbWVudHM6IHIucnVsZXMsIHR5cGU6ICdSdWxlcycsIGNvbXA6IFJ1bGVEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogci50UnVsZXMgfSxcclxuICAgICAgICB7IGVsZW1lbnRzOiByLnBvbGljaWVzLCB0eXBlOiAnUG9saWNpZXMnLCBjb21wOiBQb2xpY3lEZXNpZ25Db21wb25lbnQsIHRlbXBsYXRlczogci50UG9saWNpZXMgfSxcclxuICAgICAgXTtcclxuICAgICAgdGhpcy5zZWN0aW9ucy5mb3JFYWNoKHMgPT5cclxuICAgICAgICBzLmVsZW1lbnRzLmZvckVhY2goZSA9PiB7XHJcbiAgICAgICAgICBpZiAocy5wcml2aWxlZ2VzICYmICFlLnByaXZpbGVnZXMpIGUucHJpdmlsZWdlcyA9IHt9O1xyXG4gICAgICAgICAgaWYgKCFlLm9wdGlvbnMpIGUub3B0aW9ucyA9IHt9O1xyXG5cclxuICAgICAgICAgIGUuaW5qZWN0b3IgPSB0aGlzLl9jcmVhdGVJbmplY3RvcihlLCAnd2lkZ2V0Jyk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8RWxlbWVudE1vZGVsW10+KSB7XHJcbiAgICBjb25zdCByYW5nZSA9IGV2ZW50LmNvbnRhaW5lci5kYXRhLnNsaWNlKFxyXG4gICAgICBNYXRoLm1pbihldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpLFxyXG4gICAgICBNYXRoLm1heChldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpXHJcbiAgICApLCBmaWxlID0gcmFuZ2VbMF0uY29uZmlndXJhdGlvbkZpbGU7XHJcbiAgICBpZlxyXG4gICAgICAvLyBhY3Jvc3MgZmlsZXNcclxuICAgICAgKHJhbmdlLnNsaWNlKDEpLnNvbWUoZSA9PiBlLmNvbmZpZ3VyYXRpb25GaWxlICE9PSBmaWxlKSkge1xyXG4gICAgICAvLyBzdGFydCBvcmRpbmFsXHJcbiAgICAgIGxldCBpID0gZXZlbnQuY29udGFpbmVyLmRhdGFbZXZlbnQuY3VycmVudEluZGV4XS5vcmRpbmFsIHx8IC0xO1xyXG4gICAgICAvLyBzZXQgb3JkaW5hbCB0byBpdGVtcyBpbiByYW5nZVxyXG4gICAgICByYW5nZS5mb3JFYWNoKGUgPT4gZS5vcmRpbmFsID0gaSsrKTtcclxuICAgICAgLy8gaW5jcmVhc2Ugb3RoZXIgaGlnaGVyIHRoYW4gbGFzdCBpbiByYW5nZVxyXG4gICAgICBldmVudC5jb250YWluZXIuZGF0YS5maWx0ZXIoZSA9PiBlLm9yZGluYWwgJiYgZS5vcmRpbmFsID4gaSkuZm9yRWFjaChlID0+IGUub3JkaW5hbCArPSAxKTtcclxuICAgIH0gZWxzZSAvLyBuYXRpdmUgb3JkZXIgaW4gY29sbGVjdGlvblxyXG4gICAgICByYW5nZS5mb3JFYWNoKGUgPT4gZS5vcmRpbmFsID0gbnVsbCk7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkoZXZlbnQuY29udGFpbmVyLmRhdGEsIGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Jlc2V0dHlwaW5nO1xyXG4gIHByaXZhdGUgX3R5cGluZztcclxuICAvKipcclxuICAgKiBDdHJsLXMgc2F2ZVxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIChldmVudC53aGljaCA9PT0gODMgfHwgZXZlbnQud2hpY2ggPT09IDExNSkpIHtcclxuICAgICAgdGhpcy5kaXJ0eSAmJiB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5fcmVzZXR0eXBpbmcpO1xyXG4gICAgICB0aGlzLl90eXBpbmcgPSB0aGlzLl90eXBpbmcgPyB0aGlzLl90eXBpbmcgKyBldmVudC5rZXkgOiBldmVudC5rZXlcclxuICAgICAgdGhpcy5fcmVzZXR0eXBpbmcgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3R5cGluZyA9IG51bGwsIDI1MCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2luc2VydChzZWN0aW9uOiBTZWN0aW9uLCBlbGVtZW50OiBFbGVtZW50TW9kZWwsIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGxldCBpID0gZWxlbWVudC5uYW1lLmxhc3RJbmRleE9mKCdfJyksXHJcbiAgICAgIGogPSBlbGVtZW50LnRpdGxlLmxhc3RJbmRleE9mKCcgJyksXHJcbiAgICAgIG4gPSAwLCBuYW1lLCB0aXRsZTtcclxuICAgIGRvIHtcclxuICAgICAgbisrO1xyXG4gICAgICBuYW1lID0gKGkgPCAwIHx8IGlzTmFOKHBhcnNlSW50KGVsZW1lbnQubmFtZS5zdWJzdHIoaSArIDEpKSkgPyBlbGVtZW50Lm5hbWUgOiBlbGVtZW50Lm5hbWUuc3Vic3RyKDAsIGkpKSArICdfJyArIG47XHJcbiAgICAgIHRpdGxlID0gKGogPCAwIHx8IGlzTmFOKHBhcnNlSW50KGVsZW1lbnQudGl0bGUuc3Vic3RyKGogKyAxKSkpID8gZWxlbWVudC50aXRsZSA6IGVsZW1lbnQudGl0bGUuc3Vic3RyKDAsIGopKSArICcgJyArIG47XHJcbiAgICB9XHJcbiAgICB3aGlsZSAoc2VjdGlvbi5lbGVtZW50cy5maW5kKGUgPT4gZS5uYW1lID09PSBuYW1lIHx8IGUudGl0bGUgPT09IHRpdGxlKSk7XHJcbiAgICBlbGVtZW50Lm5hbWUgPSBuYW1lLCBlbGVtZW50LnRpdGxlID0gdGl0bGU7XHJcblxyXG4gICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLl9jcmVhdGVJbmplY3RvcihlbGVtZW50LCAnd2lkZ2V0Jyk7XHJcbiAgICBlbGVtZW50LmluamVjdG9yID0gaW5qZWN0b3I7XHJcbiAgICB0aGlzLl9vcGVuKGVsZW1lbnQsIHNlY3Rpb24sICdhZGQnKS50aGVuKCgpID0+XHJcbiAgICAgIHNlY3Rpb24uZWxlbWVudHMuc3BsaWNlKGluZGV4ICsgMSwgMCwgZWxlbWVudClcclxuICAgICk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX29wZW4oZWxlbWVudDogRWxlbWVudE1vZGVsLFxyXG4gICAgc2VjdGlvbjogU2VjdGlvbixcclxuICAgIG1vZGU6IERlc2lnbk1vZGUsIHRpdGxlPzogc3RyaW5nKSB7XHJcbiAgICBsZXQgZWNsb25lID0geyAuLi5lbGVtZW50IH07XHJcbiAgICBkZWxldGUgZWNsb25lLmluamVjdG9yO1xyXG4gICAgZWNsb25lID0gY2xvbmUoZWNsb25lKTsgLy8gZGVlcFxyXG4gICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLl9jcmVhdGVJbmplY3RvcihlY2xvbmUsIG1vZGUpO1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHRoaXMuX3BhbmVzLm5hdmlnYXRlPERlc2lnbmVyVHlwZUVsZW1lbnRDb21wb25lbnQ+KHNlY3Rpb24uY29tcCwge1xyXG4gICAgICBwb2xpY3k6IG1vZGUgPT09ICdhZGQnID8gT3BlblBvbGljeS5EaWFsb2cgfCBPcGVuUG9saWN5LlN0cmV0Y2ggOiBPcGVuUG9saWN5LlRhYiB8IE9wZW5Qb2xpY3kuVG9nZ2xlLFxyXG4gICAgICBncm91cDogdGhpcy5fdHJhbnNsYXRlLmdldChzZWN0aW9uLnR5cGUpLFxyXG4gICAgICAvL3RpdGxlLFxyXG4gICAgICBpbmplY3RvcjogaW5qZWN0b3JcclxuICAgIH0pLnRoZW4oZSA9PlxyXG4gICAgICBlLmluc3RhbmNlLmRlc2lnbmVyLm9uU2F2ZS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgICAgaWYgKGUpIHtcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oZWxlbWVudCwgZSk7XHJcbiAgICAgICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICAgICAgICAgIHJlc29sdmUoZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgcmVqZWN0KCk7XHJcbiAgICAgIH0pXHJcbiAgICApKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3JlYXRlSW5qZWN0b3IoZWxlbWVudDogRWxlbWVudE1vZGVsPGFueT4sIG1vZGU6IERlc2lnbk1vZGUpIHtcclxuICAgIGNvbnN0IHJlZiA9IG5ldyBEZXNpZ25lclJlZih0aGlzLm1vZGVsLCBlbGVtZW50LCBtb2RlKTtcclxuXHJcbiAgICBjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZShbe1xyXG4gICAgICBwcm92aWRlOiBEZXNpZ25lclJlZiwgdXNlVmFsdWU6IHJlZlxyXG4gICAgfV0sIHRoaXMuX2luamVjdG9yKTtcclxuICAgIHJldHVybiBpbmplY3RvcjtcclxuICB9XHJcbiAgYWRkKHNlY3Rpb246IFNlY3Rpb24sIG1lbnU6IE1hdE1lbnVUcmlnZ2VyLCBldnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoc2VjdGlvbi50ZW1wbGF0ZXMubGVuZ3RoID4gMSlcclxuICAgICAgbWVudS5vcGVuTWVudSgpO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY3JlYXRlKHNlY3Rpb24sIHNlY3Rpb24udGVtcGxhdGVzWzBdKTtcclxuICAgIH1cclxuICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBjcmVhdGUoc2VjdGlvbjogU2VjdGlvbiwgdGVtcGxhdGU6IFRlbXBsYXRlSW5mbykge1xyXG4gICAgY29uc3QgZWxlbWVudCA9IHtcclxuICAgICAgLi4udGVtcGxhdGUsXHJcbiAgICAgIG5hbWU6IHByb2dyYW1OYW1lKHRlbXBsYXRlLnRpdGxlKSxcclxuICAgICAgZHJhZnQ6IHRydWUsXHJcbiAgICAgIG9wdGlvbnM6IHt9XHJcbiAgICB9IGFzIEVsZW1lbnRNb2RlbDtcclxuICAgIGlmIChzZWN0aW9uLnByaXZpbGVnZXMpIGVsZW1lbnQucHJpdmlsZWdlcyA9IHt9O1xyXG4gICAgdGhpcy5faW5zZXJ0KHNlY3Rpb24sIGVsZW1lbnQsIHNlY3Rpb24uZWxlbWVudHMubGVuZ3RoKTtcclxuICB9XHJcbiAgY29weShzZWN0aW9uOiBTZWN0aW9uLCBlbGVtZW50OiBFbGVtZW50TW9kZWwpIHtcclxuICAgIGxldCBlY2xvbmUgPSB7XHJcbiAgICAgIC4uLmVsZW1lbnQsXHJcbiAgICAgIGNvcHlPZjogZWxlbWVudC5uYW1lLFxyXG4gICAgICBkcmFmdDogdHJ1ZVxyXG4gICAgfTtcclxuICAgIGRlbGV0ZSBlY2xvbmUuaW5qZWN0b3I7XHJcbiAgICBkZWxldGUgZWNsb25lLnJlc291cmNlO1xyXG4gICAgZWNsb25lID0gY2xvbmUoZWNsb25lKTsgLy8gZGVlcFxyXG4gICAgdGhpcy5faW5zZXJ0KHNlY3Rpb24sIGVjbG9uZSwgc2VjdGlvbi5lbGVtZW50cy5pbmRleE9mKGVsZW1lbnQpKTtcclxuICB9XHJcbiAgZWRpdChlbGVtZW50OiBFbGVtZW50TW9kZWwsIHNlY3Rpb246IFNlY3Rpb24pIHtcclxuICAgIHRoaXMuX29wZW4oZWxlbWVudCwgc2VjdGlvbiwgJ2VkaXQnKTtcclxuICB9XHJcbiAgdG9nZ2xlRGlzYWJsZWQoZWxlbWVudDogRWxlbWVudE1vZGVsKSB7XHJcbiAgICBlbGVtZW50LmRpc2FibGVkID0gIWVsZW1lbnQuZGlzYWJsZWQ7XHJcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcclxuICAgIGNvbnN0IHsgcG9saWNpZXMsIGFjdGlvbnMsIGN1YmVzLCBmb2xkZXJzLCBmb3JtcywgZ3VpZGVzLCByZXBvcnRzLCByb2xlcywgcnVsZXMsIHN0YXRlcywgdHlwZXMsIHV0aWxpdGllcywgdmlld3MsIHdpZGdldHMgfSA9IHRoaXMubW9kZWw7XHJcbiAgICBjb25zdCBtb2RlbCA9IHtcclxuICAgICAgYWN0aW9uczogc3RyaXAoYWN0aW9ucyksXHJcbiAgICAgIGN1YmVzOiBzdHJpcChjdWJlcyksXHJcbiAgICAgIGZvbGRlcnM6IHN0cmlwKGZvbGRlcnMpLFxyXG4gICAgICBmb3Jtczogc3RyaXAoZm9ybXMpLFxyXG4gICAgICBndWlkZXM6IHN0cmlwKGd1aWRlcyksXHJcbiAgICAgIHJlcG9ydHM6IHN0cmlwKHJlcG9ydHMpLFxyXG4gICAgICByb2xlczogc3RyaXAocm9sZXMpLFxyXG4gICAgICBydWxlczogc3RyaXAocnVsZXMpLFxyXG4gICAgICBwb2xpY2llczogc3RyaXAocG9saWNpZXMpLFxyXG4gICAgICBzdGF0ZXM6IHN0cmlwKHN0YXRlcyksXHJcbiAgICAgIHR5cGVzOiBzdHJpcCh0eXBlcyksXHJcbiAgICAgIHV0aWxpdGllczogc3RyaXAodXRpbGl0aWVzKSxcclxuICAgICAgdmlld3M6IHN0cmlwKHZpZXdzKSxcclxuICAgICAgd2lkZ2V0czogc3RyaXAod2lkZ2V0cylcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5fcmVmLmV4ZWN1dGUoXHJcbiAgICAgIG1vZGVsIGFzIGFueSkudG9Qcm9taXNlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLl9wcy50b2FzdCgnQ2hhbmdlc1NhdmVkJyk7XHJcbiAgICAgICAgYXBwbHkocG9saWNpZXMsIGFjdGlvbnMsIGN1YmVzLCBmb2xkZXJzLCBmb3JtcywgZ3VpZGVzLCByZXBvcnRzLCByb2xlcywgcnVsZXMsIHN0YXRlcywgdHlwZXMsIHV0aWxpdGllcywgdmlld3MsIHdpZGdldHMpO1xyXG4gICAgICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZGlydHkgPSBmYWxzZVxyXG4gICAgICAgIH0sICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuX3BzLmVycm9yKCk7XHJcbiAgICAgICAgICB0aGlzLnNhdmluZyA9IGZhbHNlXHJcbiAgICAgICAgfSk7XHJcbiAgICBmdW5jdGlvbiBzdHJpcChlbGVtZW50czogRWxlbWVudE1vZGVsW10pIHtcclxuICAgICAgcmV0dXJuIGVsZW1lbnRzLm1hcChlID0+IHtcclxuICAgICAgICBjb25zdCBlbGVtZW50ID0geyAuLi5lIH07XHJcbiAgICAgICAgZGVsZXRlIGVsZW1lbnQuaW5qZWN0b3I7XHJcbiAgICAgICAgcmV0dXJuIGNsZWFudXAoZWxlbWVudCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gYXBwbHkoLi4uY29sbGVjdGlvbjogRWxlbWVudE1vZGVsW11bXSkge1xyXG4gICAgICBjb2xsZWN0aW9uLmZvckVhY2gocyA9PiBzLmZvckVhY2goZSA9PiBkZWxldGUgZS5kcmFmdCkpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgU2VjdGlvbiB7XHJcbiAgY29tcDogQ29tcG9uZW50VHlwZTxhbnk+O1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBlbGVtZW50czogRWxlbWVudE1vZGVsW107XHJcbiAgdGVtcGxhdGVzOiBUZW1wbGF0ZUluZm9bXTtcclxuICBwcml2aWxlZ2VzPzogYm9vbGVhbjtcclxufVxyXG4iLCI8bWF0LXRvb2xiYXI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNhdmUoKVwiIFtkaXNhYmxlZF09XCIhZGlydHkgfHwgbG9hZGluZyB8fCBzYXZpbmdcIiBbYml6ZG9jVG9vbHRpcF09XCInU2F2ZSd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnNhdmU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG48L21hdC10b29sYmFyPlxyXG48c2VjdGlvbiAqbmdGb3I9XCJsZXQgcyBvZiBzZWN0aW9uc1wiPlxyXG4gIDxoMiBjbGFzcz1cIm1hdC10aXRsZVwiPnt7cy50eXBlIHwgdHJhbnNsYXRlfX08L2gyPlxyXG4gIDxkaXYgY2xhc3M9XCJlbGVtZW50c1wiIGNka0Ryb3BMaXN0IGNka0Ryb3BMaXN0T3JpZW50YXRpb249XCJob3Jpem9udGFsXCIgW2Nka0Ryb3BMaXN0RGF0YV09XCJzLmVsZW1lbnRzXCIgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cclxuICAgIDxtYXQtY2FyZCAqbmdGb3I9XCJsZXQgZSBvZiBzLmVsZW1lbnRzXCIgW2NsYXNzLmRpc2FibGVkXT1cImUuZGlzYWJsZWRcIiBjZGtEcmFnIGNka0RyYWdSb290RWxlbWVudD1cIi5tYXQtY2FyZC10aXRsZVwiPlxyXG4gICAgICA8IS0tIEBpdGVtLS0+XHJcbiAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICB7e2UudGl0bGV9fVxyXG4gICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICA8bWF0LWNhcmQtc3VidGl0bGU+XHJcbiAgICAgICAge3tlLm5hbWV9fVxyXG4gICAgICA8L21hdC1jYXJkLXN1YnRpdGxlPlxyXG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cInMuY29tcDsgaW5qZWN0b3I6IGUuaW5qZWN0b3JcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dD1cInJvd1wiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjb3B5KHMsIGUpXCIgKm5nSWY9XCIhZS5jb3B5T2ZcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29weSd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmZpbGVfY29weTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInMuZWxlbWVudHMucmVtb3ZlKGUpXCIgKm5nSWY9XCJlLmRyYWZ0IHx8IGUuZW1wdHlcIiBbYml6ZG9jVG9vbHRpcF09XCInRGlzY2FyZCd8dHJhbnNsYXRlXCI+PG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZURpc2FibGVkKGUpXCIgW2JpemRvY1Rvb2x0aXBdPVwiKGUuZGlzYWJsZWQgPyAnRW5hYmxlJyA6ICdEaXNhYmxlJyl8dHJhbnNsYXRlXCI+PG1hdC1pY29uPnt7ZS5kaXNhYmxlZCA/ICd2aXNpYmlsaXR5JyA6ICd2aXNpYmlsaXR5X29mZid9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJlZGl0KGUsIHMpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NldHRpbmdzJ3x0cmFuc2xhdGVcIj48bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gICAgPGRpdiBjbGFzcz1cImFkZC1lbGVtZW50XCIgbWF0UmlwcGxlIChjbGljayk9XCJhZGQocywgbWVudVRyaWdnZXIsICRldmVudClcIiAqbmdJZj1cInMudGVtcGxhdGVzPy5sZW5ndGhcIj5cclxuICAgICAgPHNwYW4gW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRlbXBsYXRlTWVudVwiICNtZW51VHJpZ2dlcj1cIm1hdE1lbnVUcmlnZ2VyXCI+PC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbj48bWF0LWljb24gW2JpemRvY1Rvb2x0aXBdPVwiJ05ldyd8dHJhbnNsYXRlXCIgZGlzYWJsZVJpcHBsZT1cInRydWVcIj5hZGQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8bWF0LW1lbnUgI3RlbXBsYXRlTWVudT5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKm5nRm9yPVwibGV0IHQgb2Ygcy50ZW1wbGF0ZXNcIiAoY2xpY2spPVwiY3JlYXRlKHMsIHQpXCI+XHJcbiAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAge3t0LmZhbWlseX19XHJcbiAgICAgICAgICAgIHt7dC50aXRsZX19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=