@eo-sdk/client 10.0.0-beta.4 → 10.0.0-rc.1

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 (314) hide show
  1. package/app/eo-client/about-state/about-state.component.d.ts +0 -5
  2. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  3. package/app/eo-client/dashboard/dashboard.component.d.ts +25 -33
  4. package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
  5. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts +19 -0
  6. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.d.ts.map +1 -0
  7. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.d.ts +24 -0
  8. package/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.d.ts.map +1 -0
  9. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts +20 -0
  10. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.d.ts.map +1 -0
  11. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.d.ts +19 -0
  12. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.d.ts.map +1 -0
  13. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.d.ts +4 -0
  14. package/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.d.ts.map +1 -0
  15. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts +25 -0
  16. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.d.ts.map +1 -0
  17. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.d.ts +20 -0
  18. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.d.ts.map +1 -0
  19. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.d.ts +4 -0
  20. package/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.d.ts.map +1 -0
  21. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts +28 -0
  22. package/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.d.ts.map +1 -0
  23. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts +44 -0
  24. package/app/eo-client/dashboard/widgets/search-widget/search-widget.component.d.ts.map +1 -0
  25. package/app/eo-client/eo-client.module.d.ts +24 -13
  26. package/app/eo-client/eo-client.module.d.ts.map +1 -1
  27. package/app/eo-client/favorite-state/favorite-state.component.d.ts +7 -8
  28. package/app/eo-client/favorite-state/favorite-state.component.d.ts.map +1 -1
  29. package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts +8 -10
  30. package/app/eo-client/inbox-state/inbox-state/inbox-state.component.d.ts.map +1 -1
  31. package/app/eo-client/login/login.component.d.ts +12 -5
  32. package/app/eo-client/login/login.component.d.ts.map +1 -1
  33. package/app/eo-client/notifications-state/notifications-state.component.d.ts +9 -11
  34. package/app/eo-client/notifications-state/notifications-state.component.d.ts.map +1 -1
  35. package/app/eo-client/object-state/object-state/object-state.component.d.ts +10 -11
  36. package/app/eo-client/object-state/object-state/object-state.component.d.ts.map +1 -1
  37. package/app/eo-client/prepare-state/prepare-state/prepare-state.component.d.ts +8 -9
  38. package/app/eo-client/prepare-state/prepare-state/prepare-state.component.d.ts.map +1 -1
  39. package/app/eo-client/process-state/process-state.component.d.ts +8 -10
  40. package/app/eo-client/process-state/process-state.component.d.ts.map +1 -1
  41. package/app/eo-client/recyclebin-state/recyclebin-state.component.d.ts +5 -6
  42. package/app/eo-client/recyclebin-state/recyclebin-state.component.d.ts.map +1 -1
  43. package/app/eo-client/result-state/result-state.component.d.ts +3 -5
  44. package/app/eo-client/result-state/result-state.component.d.ts.map +1 -1
  45. package/app/eo-client/settings/settings.component.d.ts +6 -7
  46. package/app/eo-client/settings/settings.component.d.ts.map +1 -1
  47. package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts +8 -10
  48. package/app/eo-client/stored-queries-state/stored-queries-state.component.d.ts.map +1 -1
  49. package/app/eo-client/version-state/version-state.component.d.ts +5 -7
  50. package/app/eo-client/version-state/version-state.component.d.ts.map +1 -1
  51. package/app/eo-framework/accordion/accordion.module.d.ts +1 -2
  52. package/app/eo-framework/accordion/accordion.module.d.ts.map +1 -1
  53. package/app/eo-framework/actions/action-menu/action-menu.component.d.ts +4 -5
  54. package/app/eo-framework/actions/action-menu/action-menu.component.d.ts.map +1 -1
  55. package/app/eo-framework/actions/action.module.d.ts +11 -10
  56. package/app/eo-framework/actions/action.module.d.ts.map +1 -1
  57. package/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.d.ts +3 -2
  58. package/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.d.ts.map +1 -1
  59. package/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.d.ts +9 -13
  60. package/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.d.ts.map +1 -1
  61. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts +3 -4
  62. package/app/eo-framework/app-shell/app-bar/app-bar.component.d.ts.map +1 -1
  63. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  64. package/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.d.ts +1 -2
  65. package/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.d.ts.map +1 -1
  66. package/app/eo-framework/app-shell/app-shell.module.d.ts +18 -20
  67. package/app/eo-framework/app-shell/app-shell.module.d.ts.map +1 -1
  68. package/app/eo-framework/app-shell/index.d.ts +0 -1
  69. package/app/eo-framework/app-shell/index.d.ts.map +1 -1
  70. package/app/eo-framework/eo-framework.module.d.ts +37 -38
  71. package/app/eo-framework/eo-framework.module.d.ts.map +1 -1
  72. package/app/eo-framework/form-elements/date/date.component.d.ts +0 -2
  73. package/app/eo-framework/form-elements/date/date.component.d.ts.map +1 -1
  74. package/app/eo-framework/form-elements/form-elements.module.d.ts +9 -18
  75. package/app/eo-framework/form-elements/form-elements.module.d.ts.map +1 -1
  76. package/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.d.ts +1 -0
  77. package/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.d.ts.map +1 -1
  78. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts +0 -2
  79. package/app/eo-framework/grid/filters/datetime-filter.component.d.ts.map +1 -1
  80. package/app/eo-framework/grid/grid.component.d.ts +7 -8
  81. package/app/eo-framework/grid/grid.component.d.ts.map +1 -1
  82. package/app/eo-framework/grid/grid.module.d.ts +7 -8
  83. package/app/eo-framework/grid/grid.module.d.ts.map +1 -1
  84. package/app/eo-framework/inbox-details/inbox-details.component.d.ts +1 -2
  85. package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
  86. package/app/eo-framework/index.d.ts +0 -4
  87. package/app/eo-framework/index.d.ts.map +1 -1
  88. package/app/eo-framework/media/media.component.d.ts +4 -3
  89. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  90. package/app/eo-framework/object-details/favorite-icon/favorite-icon.component.d.ts +2 -3
  91. package/app/eo-framework/object-details/favorite-icon/favorite-icon.component.d.ts.map +1 -1
  92. package/app/eo-framework/object-details/object-details.component.d.ts +14 -6
  93. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  94. package/app/eo-framework/object-details/object-details.module.d.ts +2 -1
  95. package/app/eo-framework/object-details/object-details.module.d.ts.map +1 -1
  96. package/app/eo-framework/object-details/object-history/object-history.component.d.ts +2 -3
  97. package/app/eo-framework/object-details/object-history/object-history.component.d.ts.map +1 -1
  98. package/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.d.ts +10 -0
  99. package/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.d.ts.map +1 -0
  100. package/app/eo-framework/object-form/object-form/form-element/form-element.component.d.ts +8 -3
  101. package/app/eo-framework/object-form/object-form/form-element/form-element.component.d.ts.map +1 -1
  102. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts +1 -2
  103. package/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.d.ts.map +1 -1
  104. package/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.d.ts +7 -2
  105. package/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.d.ts.map +1 -1
  106. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts +28 -11
  107. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts.map +1 -1
  108. package/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.d.ts.map +1 -1
  109. package/app/eo-framework/object-form/object-form/object-form.component.d.ts +1 -2
  110. package/app/eo-framework/object-form/object-form/object-form.component.d.ts.map +1 -1
  111. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  112. package/app/eo-framework/object-form/object-form.module.d.ts +9 -9
  113. package/app/eo-framework/object-state-details/object-state-details.component.d.ts +1 -2
  114. package/app/eo-framework/object-state-details/object-state-details.component.d.ts.map +1 -1
  115. package/app/eo-framework/prepare-details/prepare-details.component.d.ts +8 -9
  116. package/app/eo-framework/prepare-details/prepare-details.component.d.ts.map +1 -1
  117. package/app/eo-framework/process/details/process-details.component.d.ts +7 -8
  118. package/app/eo-framework/process/details/process-details.component.d.ts.map +1 -1
  119. package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts +9 -11
  120. package/app/eo-framework/recyclebin-details/recyclebin-details.component.d.ts.map +1 -1
  121. package/app/eo-framework/result-list/result-list.component.d.ts +5 -6
  122. package/app/eo-framework/result-list/result-list.component.d.ts.map +1 -1
  123. package/app/eo-framework/settings/settings.module.d.ts +3 -4
  124. package/app/eo-framework/settings/settings.module.d.ts.map +1 -1
  125. package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts +4 -5
  126. package/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.d.ts.map +1 -1
  127. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts +2 -3
  128. package/app/eo-framework/ui/eo-dialog/eo-dialog.component.d.ts.map +1 -1
  129. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts +1 -0
  130. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
  131. package/app/eo-framework/ui/outside-click/outside-click.directive.d.ts +1 -2
  132. package/app/eo-framework/ui/outside-click/outside-click.directive.d.ts.map +1 -1
  133. package/app/eo-framework/ui/signature-tab/signature-tab.component.d.ts +0 -1
  134. package/app/eo-framework/ui/signature-tab/signature-tab.component.d.ts.map +1 -1
  135. package/app/eo-framework/util/index.d.ts +0 -1
  136. package/app/eo-framework/util/index.d.ts.map +1 -1
  137. package/app/eo-framework/util/util.module.d.ts +0 -1
  138. package/app/eo-framework/util/util.module.d.ts.map +1 -1
  139. package/app/eo-framework-core/layout/layout.service.d.ts +2 -26
  140. package/app/eo-framework-core/layout/layout.service.d.ts.map +1 -1
  141. package/app/eo-framework-core/pipes/locale-number.pipe.d.ts +2 -3
  142. package/app/eo-framework-core/pipes/locale-number.pipe.d.ts.map +1 -1
  143. package/assets/_default/i18n/de.json +32 -2
  144. package/assets/_default/i18n/en.json +37 -7
  145. package/assets/_default/svg/ic_add_document_file_as_new_version.svg +1 -0
  146. package/assets/_default/svg/ic_create_document.svg +1 -0
  147. package/assets/_default/svg/ic_create_document_in_folder.svg +1 -0
  148. package/assets/_default/svg/ic_noUrl.svg +1 -0
  149. package/assets/dashboard.json +47 -0
  150. package/esm2020/app/eo-client/about-state/about-state.component.mjs +5 -11
  151. package/esm2020/app/eo-client/dashboard/dashboard.component.mjs +143 -98
  152. package/esm2020/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +59 -0
  153. package/esm2020/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +39 -0
  154. package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +53 -0
  155. package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +42 -0
  156. package/esm2020/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.mjs +2 -0
  157. package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +65 -0
  158. package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +43 -0
  159. package/esm2020/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.mjs +2 -0
  160. package/esm2020/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +117 -0
  161. package/esm2020/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +115 -0
  162. package/esm2020/app/eo-client/eo-client.module.mjs +44 -6
  163. package/esm2020/app/eo-client/favorite-state/favorite-state.component.mjs +15 -14
  164. package/esm2020/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +14 -11
  165. package/esm2020/app/eo-client/login/login.component.mjs +33 -13
  166. package/esm2020/app/eo-client/notifications-state/notifications-state.component.mjs +16 -12
  167. package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +27 -23
  168. package/esm2020/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +12 -9
  169. package/esm2020/app/eo-client/process-state/process-state.component.mjs +6 -9
  170. package/esm2020/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +14 -11
  171. package/esm2020/app/eo-client/result-state/result-state.component.mjs +11 -8
  172. package/esm2020/app/eo-client/settings/settings.component.mjs +16 -12
  173. package/esm2020/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +16 -13
  174. package/esm2020/app/eo-client/version-state/version-state.component.mjs +13 -10
  175. package/esm2020/app/eo-framework/accordion/accordion.module.mjs +3 -7
  176. package/esm2020/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +3 -3
  177. package/esm2020/app/eo-framework/actions/action-menu/action-menu.component.mjs +15 -11
  178. package/esm2020/app/eo-framework/actions/action.module.mjs +5 -2
  179. package/esm2020/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +5 -7
  180. package/esm2020/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +3 -3
  181. package/esm2020/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +2 -2
  182. package/esm2020/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +43 -48
  183. package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +2 -2
  184. package/esm2020/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +2 -2
  185. package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +16 -14
  186. package/esm2020/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +8 -3
  187. package/esm2020/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +4 -6
  188. package/esm2020/app/eo-framework/app-shell/app-shell.module.mjs +1 -8
  189. package/esm2020/app/eo-framework/app-shell/index.mjs +1 -2
  190. package/esm2020/app/eo-framework/eo-framework.module.mjs +35 -43
  191. package/esm2020/app/eo-framework/form-elements/date/date.component.mjs +2 -12
  192. package/esm2020/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +3 -3
  193. package/esm2020/app/eo-framework/form-elements/form-elements.module.mjs +28 -37
  194. package/esm2020/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
  195. package/esm2020/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +10 -6
  196. package/esm2020/app/eo-framework/form-elements/organization/organization.component.mjs +3 -3
  197. package/esm2020/app/eo-framework/form-elements/reference/reference.component.mjs +5 -6
  198. package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +2 -2
  199. package/esm2020/app/eo-framework/frame/frame.component.mjs +2 -2
  200. package/esm2020/app/eo-framework/grid/filters/datetime-filter.component.mjs +2 -6
  201. package/esm2020/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
  202. package/esm2020/app/eo-framework/grid/filters/organization-filter.component.mjs +3 -3
  203. package/esm2020/app/eo-framework/grid/grid.component.mjs +16 -12
  204. package/esm2020/app/eo-framework/grid/grid.module.mjs +1 -5
  205. package/esm2020/app/eo-framework/inbox-details/inbox-details.component.mjs +16 -11
  206. package/esm2020/app/eo-framework/index.mjs +1 -5
  207. package/esm2020/app/eo-framework/media/media.component.mjs +31 -12
  208. package/esm2020/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +13 -10
  209. package/esm2020/app/eo-framework/object-details/object-details.component.mjs +64 -38
  210. package/esm2020/app/eo-framework/object-details/object-details.module.mjs +7 -3
  211. package/esm2020/app/eo-framework/object-details/object-history/object-history.component.mjs +13 -9
  212. package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.mjs +18 -0
  213. package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +20 -6
  214. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +21 -22
  215. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.mjs +1 -1
  216. package/esm2020/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +94 -32
  217. package/esm2020/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +6 -4
  218. package/esm2020/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +2 -3
  219. package/esm2020/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -5
  220. package/esm2020/app/eo-framework/object-form/object-form-helper.service.mjs +2 -2
  221. package/esm2020/app/eo-framework/object-form/object-form.module.mjs +9 -10
  222. package/esm2020/app/eo-framework/object-state-details/object-state-details.component.mjs +15 -13
  223. package/esm2020/app/eo-framework/prepare-details/prepare-details.component.mjs +16 -14
  224. package/esm2020/app/eo-framework/process/details/process-details.component.mjs +16 -12
  225. package/esm2020/app/eo-framework/process-form/process-form.component.mjs +2 -2
  226. package/esm2020/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +25 -17
  227. package/esm2020/app/eo-framework/result-list/result-list.component.mjs +21 -15
  228. package/esm2020/app/eo-framework/settings/settings.module.mjs +1 -5
  229. package/esm2020/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +17 -13
  230. package/esm2020/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +12 -8
  231. package/esm2020/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +2 -2
  232. package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +20 -12
  233. package/esm2020/app/eo-framework/ui/outside-click/outside-click.directive.mjs +11 -8
  234. package/esm2020/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -6
  235. package/esm2020/app/eo-framework/upload-overlay/upload-overlay.component.mjs +3 -3
  236. package/esm2020/app/eo-framework/util/index.mjs +1 -2
  237. package/esm2020/app/eo-framework/util/util.module.mjs +2 -3
  238. package/esm2020/app/eo-framework-core/layout/layout.service.mjs +61 -63
  239. package/esm2020/app/eo-framework-core/pipes/locale-number.pipe.mjs +11 -8
  240. package/esm2020/projects/eo-sdk/core/lib/eo-core.module.mjs +8 -8
  241. package/esm2020/projects/eo-sdk/core/lib/model/inbox-item.model.mjs +2 -6
  242. package/esm2020/projects/eo-sdk/core/lib/service/auth/auth.service.mjs +24 -30
  243. package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.mjs +1 -1
  244. package/esm2020/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.mjs +8 -6
  245. package/esm2020/projects/eo-sdk/core/lib/service/config/config.service.mjs +1 -1
  246. package/esm2020/projects/eo-sdk/core/lib/service/dms/dms.service.mjs +14 -16
  247. package/esm2020/projects/eo-sdk/core/lib/service/prepare/prepare.service.mjs +15 -12
  248. package/esm2020/projects/eo-sdk/core/lib/service/signing/signing.service.mjs +12 -6
  249. package/esm2020/projects/eo-sdk/core/lib/service/system/system.service.mjs +2 -6
  250. package/esm2020/projects/eo-sdk/core/lib/service/user/user.service.mjs +11 -1
  251. package/esm2020/projects/eo-sdk/core/lib/util/utils.mjs +3 -3
  252. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs +1069 -1066
  253. package/fesm2015/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  254. package/fesm2015/eo-sdk-client.mjs +14808 -15012
  255. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  256. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs +1069 -1066
  257. package/fesm2020/eo-sdk-client-projects-eo-sdk-core.mjs.map +1 -1
  258. package/fesm2020/eo-sdk-client.mjs +16587 -16787
  259. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  260. package/package.json +5 -5
  261. package/projects/eo-sdk/core/lib/eo-core.module.d.ts.map +1 -1
  262. package/projects/eo-sdk/core/lib/model/inbox-item.model.d.ts.map +1 -1
  263. package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts +14 -20
  264. package/projects/eo-sdk/core/lib/service/auth/auth.service.d.ts.map +1 -1
  265. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts +4 -0
  266. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.model.d.ts.map +1 -1
  267. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts +3 -1
  268. package/projects/eo-sdk/core/lib/service/capabilities/capabilities.service.d.ts.map +1 -1
  269. package/projects/eo-sdk/core/lib/service/config/config.service.d.ts.map +1 -1
  270. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts +10 -8
  271. package/projects/eo-sdk/core/lib/service/dms/dms.service.d.ts.map +1 -1
  272. package/projects/eo-sdk/core/lib/service/prepare/prepare.service.d.ts +1 -0
  273. package/projects/eo-sdk/core/lib/service/prepare/prepare.service.d.ts.map +1 -1
  274. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts +4 -1
  275. package/projects/eo-sdk/core/lib/service/signing/signing.service.d.ts.map +1 -1
  276. package/projects/eo-sdk/core/lib/service/system/system.service.d.ts.map +1 -1
  277. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts +6 -0
  278. package/projects/eo-sdk/core/lib/service/user/user.service.d.ts.map +1 -1
  279. package/projects/eo-sdk/core/lib/util/utils.d.ts +3 -4
  280. package/projects/eo-sdk/core/lib/util/utils.d.ts.map +1 -1
  281. package/scss/_eo-variables.scss +1 -0
  282. package/scss/_main.scss +1 -1
  283. package/scss/_mixins.scss +6 -6
  284. package/styles.css +2 -1
  285. package/app/eo-framework/app-shell/app-bar/app-layout/app-layout.component.d.ts +0 -24
  286. package/app/eo-framework/app-shell/app-bar/app-layout/app-layout.component.d.ts.map +0 -1
  287. package/app/eo-framework/split/index.d.ts +0 -5
  288. package/app/eo-framework/split/index.d.ts.map +0 -1
  289. package/app/eo-framework/split/split/split.component.d.ts +0 -83
  290. package/app/eo-framework/split/split/split.component.d.ts.map +0 -1
  291. package/app/eo-framework/split/split-area/split-area.component.d.ts +0 -37
  292. package/app/eo-framework/split/split-area/split-area.component.d.ts.map +0 -1
  293. package/app/eo-framework/split/split-gutter/split-gutter.directive.d.ts +0 -21
  294. package/app/eo-framework/split/split-gutter/split-gutter.directive.d.ts.map +0 -1
  295. package/app/eo-framework/split/split.module.d.ts +0 -12
  296. package/app/eo-framework/split/split.module.d.ts.map +0 -1
  297. package/app/eo-framework/undock-split/undock-split.component.d.ts +0 -28
  298. package/app/eo-framework/undock-split/undock-split.component.d.ts.map +0 -1
  299. package/app/eo-framework/undock-split/undock-split.service.d.ts +0 -43
  300. package/app/eo-framework/undock-split/undock-split.service.d.ts.map +0 -1
  301. package/app/eo-framework/undock-split/undock-state.interface.d.ts +0 -6
  302. package/app/eo-framework/undock-split/undock-state.interface.d.ts.map +0 -1
  303. package/app/eo-framework/util/unsubscribe/unsubscribe.component.d.ts +0 -11
  304. package/app/eo-framework/util/unsubscribe/unsubscribe.component.d.ts.map +0 -1
  305. package/esm2020/app/eo-framework/app-shell/app-bar/app-layout/app-layout.component.mjs +0 -67
  306. package/esm2020/app/eo-framework/split/index.mjs +0 -5
  307. package/esm2020/app/eo-framework/split/split/split.component.mjs +0 -373
  308. package/esm2020/app/eo-framework/split/split-area/split-area.component.mjs +0 -131
  309. package/esm2020/app/eo-framework/split/split-gutter/split-gutter.directive.mjs +0 -73
  310. package/esm2020/app/eo-framework/split/split.module.mjs +0 -28
  311. package/esm2020/app/eo-framework/undock-split/undock-split.component.mjs +0 -89
  312. package/esm2020/app/eo-framework/undock-split/undock-split.service.mjs +0 -135
  313. package/esm2020/app/eo-framework/undock-split/undock-state.interface.mjs +0 -2
  314. package/esm2020/app/eo-framework/util/unsubscribe/unsubscribe.component.mjs +0 -23
@@ -1,10 +1,11 @@
1
+ import { __decorate } from "tslib";
2
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewChild } from '@angular/core';
1
3
  import { of } from 'rxjs';
2
- import { takeUntil, map } from 'rxjs/operators';
3
- import { Component, ViewChild, Input, EventEmitter, Output, HostBinding } from '@angular/core';
4
- import { Utils, EnaioEvent } from '@eo-sdk/core';
5
- import { UnsubscribeOnDestroy } from '../util/unsubscribe/unsubscribe.component';
6
- import { LocaleDatePipe } from '../../eo-framework-core/pipes/locale-date.pipe';
4
+ import { map } from 'rxjs/operators';
5
+ import { EnaioEvent, Utils } from '@eo-sdk/core';
6
+ import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
7
7
  import { EmptyStateService } from '../../eo-framework-core/empty-state/empty-state.service';
8
+ import { LocaleDatePipe } from '../../eo-framework-core/pipes/locale-date.pipe';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "@angular/router";
10
11
  import * as i2 from "@eo-sdk/core";
@@ -20,7 +21,7 @@ import * as i11 from "../ui/eo-dialog/eo-dialog.component";
20
21
  import * as i12 from "@yuuvis/components/tabs";
21
22
  import * as i13 from "@yuuvis/components/split-tabs";
22
23
  import * as i14 from "../object-details/object-history/object-history.component";
23
- export class RecyclebinDetailsComponent extends UnsubscribeOnDestroy {
24
+ let RecyclebinDetailsComponent = class RecyclebinDetailsComponent {
24
25
  set showDeleteDialog(val) {
25
26
  this._showDeleteDialog = val;
26
27
  if (this._showDeleteDialog) {
@@ -30,6 +31,11 @@ export class RecyclebinDetailsComponent extends UnsubscribeOnDestroy {
30
31
  get showDeleteDialog() {
31
32
  return this._showDeleteDialog;
32
33
  }
34
+ showDialog() {
35
+ if (this.item.rights.delete) {
36
+ this.showDeleteDialog = true;
37
+ }
38
+ }
33
39
  set emptyState(e) {
34
40
  this._emptyState = e || EmptyStateService.defaultEmptyState();
35
41
  }
@@ -63,10 +69,8 @@ export class RecyclebinDetailsComponent extends UnsubscribeOnDestroy {
63
69
  get dataType() {
64
70
  return this.item ? this.item.typeName : 'none';
65
71
  }
66
- constructor(router, route, system, empty, backend, userService, toast, dmsService, selection, capabilityService, eventService, configService, translate) {
67
- super();
72
+ constructor(router, system, empty, backend, userService, toast, dmsService, selection, capabilityService, eventService, configService, translate) {
68
73
  this.router = router;
69
- this.route = route;
70
74
  this.system = system;
71
75
  this.empty = empty;
72
76
  this.backend = backend;
@@ -100,7 +104,7 @@ export class RecyclebinDetailsComponent extends UnsubscribeOnDestroy {
100
104
  this.selection
101
105
  .find(this.applySelection.in)
102
106
  .focus$
103
- .pipe(takeUntil(this.componentDestroyed$))
107
+ .pipe(untilDestroyed(this))
104
108
  .subscribe(result => {
105
109
  this.showLoader = true;
106
110
  this.loadDmsObject(this.parseDmsParams(result)).subscribe((res) => {
@@ -213,7 +217,7 @@ export class RecyclebinDetailsComponent extends UnsubscribeOnDestroy {
213
217
  this.updateContent();
214
218
  this.eventService
215
219
  .on(EnaioEvent.DMS_OBJECT_UPDATED)
216
- .pipe(takeUntil(this.componentDestroyed$))
220
+ .pipe(untilDestroyed(this))
217
221
  .subscribe(event => {
218
222
  if (event.data && this.item.id === event.data.id) {
219
223
  this.dmsObject = this.dmsService.createLocalCopyOfDMSObject(event.data);
@@ -228,13 +232,17 @@ export class RecyclebinDetailsComponent extends UnsubscribeOnDestroy {
228
232
  // this.tabPlugins.forEach(p => panels = panels.concat(p.tabPanels.toArray()));
229
233
  // this.externalPanels.reset(panels);
230
234
  }
231
- }
232
- RecyclebinDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: RecyclebinDetailsComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.SystemService }, { token: i3.EmptyStateService }, { token: i2.BackendService }, { token: i2.UserService }, { token: i2.NotificationsService }, { token: i2.DmsService }, { token: i4.SelectionService }, { token: i2.CapabilitiesService }, { token: i2.EventService }, { token: i2.Config }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
233
- RecyclebinDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: RecyclebinDetailsComponent, selector: "eo-recyclebin-details", inputs: { cacheLayout: "cacheLayout", applySelection: "applySelection", parseDmsParams: "parseDmsParams", emptyState: "emptyState", dmsParams: ["params", "dmsParams"], dmsObject: ["item", "dmsObject"] }, outputs: { hasContent: "hasContent" }, host: { properties: { "attr.data-type": "this.dataType" } }, viewQueries: [{ propertyName: "preview", first: true, predicate: ["viewer"], descendants: true }, { propertyName: "confirmDeleteButton", first: true, predicate: ["confirmDelete"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"recyclebin-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError\">\n\n <div class=\"eo-head eo-head-tabs\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"actions\">\n <eo-icon *ngIf=\"item.content\" class=\"btn btn-download\"\n [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\"\n (click)=\"downloadOriginalContent()\"></eo-icon>\n <eo-icon class=\"btn btn-delete\" *ngIf=\"this.item.rights.delete\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"\n [iconTitle]=\"('eo.recyclebin.details.delete.tooltip' | translate)\"\n (click)=\"showDeleteDialog = true;\"></eo-icon>\n <button class=\"btn-tpl-apply\" (click)=\"restoreFile()\" translate>eo.recyclebin.details.restore</button>\n <button (click)=\"restoreFile(true)\" class=\"primary btn-idx-restoreopen\"\n translate>eo.recyclebin.details.restoreopen</button>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n <yvc-split-tabs [layoutSettingsID]=\"cacheLayout\">\n\n\n <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\"\n [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\" [useVersion]=\"item.id === item.content?.id\"\n #viewer></eo-media>\n </ng-template>\n\n <ng-template *ngIf=\"isVisible('history')\"\n [yvcTab]=\"{id: 'history', label: 'eo.object.history.title' | translate}\">\n <eo-object-history [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n </yvc-split-tabs>\n </div>\n</ng-container>\n\n<eo-dialog [title]=\"'eo.recyclebin.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'recyclebin-delete__dialog'\">\n\n <div>\n <span>{{'eo.recyclebin.details.delete.dialog.message' | translate}}</span>\n <br>\n <span class=\"recyclebin-delete__dialog_warning\">{{'eo.recyclebin.details.delete.dialog.message.warning' |\n translate}}</span>\n </div>\n <div class=\"action-buttons recyclebin-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.recyclebin.details.delete.dialog.cancel</button>\n <button type=\"button\" #confirmDelete (click)=\"deleteDmsObject()\" class=\"button primary\"\n translate>eo.recyclebin.details.delete.dialog.delete</button>\n </div>\n</eo-dialog>", styles: [":host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background-grey);height:100%;overflow-y:auto}:host .eo-head .eo-header .eo-header-info .eo-header-title,:host .eo-head .eo-header .eo-header-info .eo-header-subtitle{-webkit-user-select:text;-moz-user-select:text;user-select:text}:host .actions{display:flex;align-items:center;align-self:flex-start}[dir=ltr] :host .actions button{margin-left:calc(var(--app-pane-padding) / 2)}[dir=rtl] :host .actions button{margin-right:calc(var(--app-pane-padding) / 2)}:host .actions eo-icon{padding:calc(var(--app-pane-padding) / 4);cursor:pointer}:host .eo-body{background-color:var(--panel-background)}:host .eo-body__not-available{opacity:.4;background:rgba(var(--color-black-rgb),.4)}:host .eo-body yvc-split-tabs{height:100%}:host .sync-tab-btn.enabled{color:var(--color-accent)}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);animation:eoFadeIn .5s}:host .loader-overlay__mask .recyclebin-detail__loader{margin:auto}:host ::ng-deep div[eosplitgutter]{background-color:var(--color-white)!important}:host ::ng-deep .indexdata-summary,:host ::ng-deep .object-form-edit{margin:var(--app-pane-padding)}::ng-deep yvc-tabs{height:100%}::ng-deep yvc-tabs>header{background-color:var(--panel-background)}::ng-deep .yvc-split-area{background-color:var(--panel-background-grey)}::ng-deep eo-media{height:100%;overflow:hidden;display:block}::ng-deep .recyclebin-delete__dialog{padding:8px;min-height:unset!important}::ng-deep .recyclebin-delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:white!important}::ng-deep .recyclebin-delete__dialog .recyclebin-delete__dialog_warning{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MediaComponent, selector: "eo-media", inputs: ["undockDisabled", "enableCloseBtn", "useVersion", "attachments", "searchTerm", "previewUri", "previewFile", "dmsObject"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i10.IndexdataSummaryComponent, selector: "eo-indexdata-summary", inputs: ["indexdata", "dmsObject", "baseparams", "enableVersions", "diff"] }, { kind: "component", type: i11.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i12.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "component", type: i13.SplitTabsComponent, selector: "yvc-split-tabs", inputs: ["layoutSettingsID", "config"], outputs: ["layoutSettingsChange"] }, { kind: "component", type: i14.ObjectHistoryComponent, selector: "eo-object-history", inputs: ["params"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
235
+ };
236
+ RecyclebinDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: RecyclebinDetailsComponent, deps: [{ token: i1.Router }, { token: i2.SystemService }, { token: i3.EmptyStateService }, { token: i2.BackendService }, { token: i2.UserService }, { token: i2.NotificationsService }, { token: i2.DmsService }, { token: i4.SelectionService }, { token: i2.CapabilitiesService }, { token: i2.EventService }, { token: i2.Config }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
237
+ RecyclebinDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: RecyclebinDetailsComponent, selector: "eo-recyclebin-details", inputs: { cacheLayout: "cacheLayout", applySelection: "applySelection", parseDmsParams: "parseDmsParams", emptyState: "emptyState", dmsParams: ["params", "dmsParams"], dmsObject: ["item", "dmsObject"] }, outputs: { hasContent: "hasContent" }, host: { properties: { "attr.data-type": "this.dataType" } }, viewQueries: [{ propertyName: "preview", first: true, predicate: ["viewer"], descendants: true }, { propertyName: "confirmDeleteButton", first: true, predicate: ["confirmDelete"], descendants: true }], ngImport: i0, template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"recyclebin-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError\">\n\n <div class=\"eo-head eo-head-tabs\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"actions\">\n <eo-icon *ngIf=\"item.content\"\n class=\"button\"\n [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\"\n (click)=\"downloadOriginalContent()\"></eo-icon>\n <eo-icon class=\"button\" [ngClass]=\"{disabled: !this.item.rights.delete}\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"\n [iconTitle]=\"this.item.rights.delete ? ('eo.recyclebin.details.delete.tooltip' | translate) : ('eo.recyclebin.details.delete.disabled.tooltip' | translate)\"\n (click)=\"showDialog();\"></eo-icon>\n <button (click)=\"restoreFile()\" translate>eo.recyclebin.details.restore</button>\n <button (click)=\"restoreFile(true)\" class=\"primary\"\n translate>eo.recyclebin.details.restoreopen</button>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n <yvc-split-tabs [layoutSettingsID]=\"cacheLayout\">\n\n\n <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\"\n [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\" [useVersion]=\"item.id === item.content?.id\"\n #viewer></eo-media>\n </ng-template>\n\n <ng-template *ngIf=\"isVisible('history')\"\n [yvcTab]=\"{id: 'history', label: 'eo.object.history.title' | translate}\">\n <eo-object-history [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n </yvc-split-tabs>\n </div>\n</ng-container>\n\n<eo-dialog [title]=\"'eo.recyclebin.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'recyclebin-delete__dialog'\">\n\n <div>\n <span>{{'eo.recyclebin.details.delete.dialog.message' | translate}}</span>\n <br>\n <span class=\"recyclebin-delete__dialog_warning\">{{'eo.recyclebin.details.delete.dialog.message.warning' |\n translate}}</span>\n </div>\n <div class=\"action-buttons recyclebin-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.recyclebin.details.delete.dialog.cancel</button>\n <button type=\"button\" #confirmDelete (click)=\"deleteDmsObject()\" class=\"button primary\"\n translate>eo.recyclebin.details.delete.dialog.delete</button>\n </div>\n</eo-dialog>\n", styles: [":host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background-grey);height:100%;overflow-y:auto}:host .eo-head .eo-header .eo-header-info .eo-header-title,:host .eo-head .eo-header .eo-header-info .eo-header-subtitle{-webkit-user-select:text;-moz-user-select:text;user-select:text}:host .actions{display:flex;align-items:center;align-self:flex-start}[dir=ltr] :host .actions button{margin-left:calc(var(--app-pane-padding) / 2)}[dir=rtl] :host .actions button{margin-right:calc(var(--app-pane-padding) / 2)}:host .actions eo-icon{padding:calc(var(--app-pane-padding) / 4)}:host .eo-body{background-color:var(--panel-background)}:host .eo-body__not-available{opacity:.4;background:rgba(var(--color-black-rgb),.4)}:host .eo-body yvc-split-tabs{height:100%}:host .sync-tab-btn.enabled{color:var(--color-accent)}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);animation:eoFadeIn .5s}:host .loader-overlay__mask .recyclebin-detail__loader{margin:auto}:host ::ng-deep div[eosplitgutter]{background-color:var(--color-white)!important}:host ::ng-deep .indexdata-summary,:host ::ng-deep .object-form-edit{margin:var(--app-pane-padding)}::ng-deep yvc-tabs{height:100%}::ng-deep yvc-tabs>header{background-color:var(--panel-background)}::ng-deep .yvc-split-area{background-color:var(--panel-background-grey)}::ng-deep eo-media{height:100%;overflow:hidden;display:block}::ng-deep .recyclebin-delete__dialog{padding:8px;min-height:unset!important}::ng-deep .recyclebin-delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:white!important}::ng-deep .recyclebin-delete__dialog .recyclebin-delete__dialog_warning{color:var(--color-error)}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MediaComponent, selector: "eo-media", inputs: ["undockDisabled", "enableCloseBtn", "useVersion", "attachments", "searchTerm", "previewUri", "previewFile", "dmsObject"] }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i8.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i9.LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: ["size", "mode"] }, { kind: "component", type: i10.IndexdataSummaryComponent, selector: "eo-indexdata-summary", inputs: ["indexdata", "dmsObject", "baseparams", "enableVersions", "diff"] }, { kind: "component", type: i11.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i12.YvcTabDirective, selector: "[yvcTab]", inputs: ["yvcTab"] }, { kind: "component", type: i13.SplitTabsComponent, selector: "yvc-split-tabs", inputs: ["layoutSettingsID", "config", "panelOrder"], outputs: ["layoutSettingsChange"] }, { kind: "component", type: i14.ObjectHistoryComponent, selector: "eo-object-history", inputs: ["params"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
238
+ RecyclebinDetailsComponent = __decorate([
239
+ UntilDestroy()
240
+ ], RecyclebinDetailsComponent);
241
+ export { RecyclebinDetailsComponent };
234
242
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: RecyclebinDetailsComponent, decorators: [{
235
243
  type: Component,
236
- args: [{ selector: 'eo-recyclebin-details', template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"recyclebin-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError\">\n\n <div class=\"eo-head eo-head-tabs\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"actions\">\n <eo-icon *ngIf=\"item.content\" class=\"btn btn-download\"\n [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\"\n (click)=\"downloadOriginalContent()\"></eo-icon>\n <eo-icon class=\"btn btn-delete\" *ngIf=\"this.item.rights.delete\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"\n [iconTitle]=\"('eo.recyclebin.details.delete.tooltip' | translate)\"\n (click)=\"showDeleteDialog = true;\"></eo-icon>\n <button class=\"btn-tpl-apply\" (click)=\"restoreFile()\" translate>eo.recyclebin.details.restore</button>\n <button (click)=\"restoreFile(true)\" class=\"primary btn-idx-restoreopen\"\n translate>eo.recyclebin.details.restoreopen</button>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n <yvc-split-tabs [layoutSettingsID]=\"cacheLayout\">\n\n\n <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\"\n [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\" [useVersion]=\"item.id === item.content?.id\"\n #viewer></eo-media>\n </ng-template>\n\n <ng-template *ngIf=\"isVisible('history')\"\n [yvcTab]=\"{id: 'history', label: 'eo.object.history.title' | translate}\">\n <eo-object-history [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n </yvc-split-tabs>\n </div>\n</ng-container>\n\n<eo-dialog [title]=\"'eo.recyclebin.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'recyclebin-delete__dialog'\">\n\n <div>\n <span>{{'eo.recyclebin.details.delete.dialog.message' | translate}}</span>\n <br>\n <span class=\"recyclebin-delete__dialog_warning\">{{'eo.recyclebin.details.delete.dialog.message.warning' |\n translate}}</span>\n </div>\n <div class=\"action-buttons recyclebin-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.recyclebin.details.delete.dialog.cancel</button>\n <button type=\"button\" #confirmDelete (click)=\"deleteDmsObject()\" class=\"button primary\"\n translate>eo.recyclebin.details.delete.dialog.delete</button>\n </div>\n</eo-dialog>", styles: [":host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background-grey);height:100%;overflow-y:auto}:host .eo-head .eo-header .eo-header-info .eo-header-title,:host .eo-head .eo-header .eo-header-info .eo-header-subtitle{-webkit-user-select:text;-moz-user-select:text;user-select:text}:host .actions{display:flex;align-items:center;align-self:flex-start}[dir=ltr] :host .actions button{margin-left:calc(var(--app-pane-padding) / 2)}[dir=rtl] :host .actions button{margin-right:calc(var(--app-pane-padding) / 2)}:host .actions eo-icon{padding:calc(var(--app-pane-padding) / 4);cursor:pointer}:host .eo-body{background-color:var(--panel-background)}:host .eo-body__not-available{opacity:.4;background:rgba(var(--color-black-rgb),.4)}:host .eo-body yvc-split-tabs{height:100%}:host .sync-tab-btn.enabled{color:var(--color-accent)}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);animation:eoFadeIn .5s}:host .loader-overlay__mask .recyclebin-detail__loader{margin:auto}:host ::ng-deep div[eosplitgutter]{background-color:var(--color-white)!important}:host ::ng-deep .indexdata-summary,:host ::ng-deep .object-form-edit{margin:var(--app-pane-padding)}::ng-deep yvc-tabs{height:100%}::ng-deep yvc-tabs>header{background-color:var(--panel-background)}::ng-deep .yvc-split-area{background-color:var(--panel-background-grey)}::ng-deep eo-media{height:100%;overflow:hidden;display:block}::ng-deep .recyclebin-delete__dialog{padding:8px;min-height:unset!important}::ng-deep .recyclebin-delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:white!important}::ng-deep .recyclebin-delete__dialog .recyclebin-delete__dialog_warning{color:var(--color-error)}\n"] }]
237
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.SystemService }, { type: i3.EmptyStateService }, { type: i2.BackendService }, { type: i2.UserService }, { type: i2.NotificationsService }, { type: i2.DmsService }, { type: i4.SelectionService }, { type: i2.CapabilitiesService }, { type: i2.EventService }, { type: i2.Config }, { type: i2.TranslateService }]; }, propDecorators: { preview: [{
244
+ args: [{ selector: 'eo-recyclebin-details', template: "<div class=\"loader-overlay__mask\" *ngIf=\"showLoader\">\n <eo-loading-spinner class=\"recyclebin-detail__loader\"></eo-loading-spinner>\n</div>\n<ng-container *ngIf=\"item && !hasError\">\n\n <div class=\"eo-head eo-head-tabs\">\n <header class=\"eo-header\">\n <eo-icon class=\"eo-header-icon\" [objectType]=\"item.type\" [iconTitle]=\"item.type.label\"></eo-icon>\n\n <div class=\"eo-header-info\">\n <h2 class=\"eo-header-title\">{{item.title}}</h2>\n <h3 class=\"eo-header-subtitle\">{{item.description}}</h3>\n </div>\n\n <div class=\"actions\">\n <eo-icon *ngIf=\"item.content\"\n class=\"button\"\n [iconSrc]=\"'assets/_default/svg/ic_content-download.svg'\"\n [iconTitle]=\"('eo.action.download.dms.object.content.label' | translate)\"\n (click)=\"downloadOriginalContent()\"></eo-icon>\n <eo-icon class=\"button\" [ngClass]=\"{disabled: !this.item.rights.delete}\" [iconSrc]=\"'assets/_default/svg/ic_trash.svg'\"\n [iconTitle]=\"this.item.rights.delete ? ('eo.recyclebin.details.delete.tooltip' | translate) : ('eo.recyclebin.details.delete.disabled.tooltip' | translate)\"\n (click)=\"showDialog();\"></eo-icon>\n <button (click)=\"restoreFile()\" translate>eo.recyclebin.details.restore</button>\n <button (click)=\"restoreFile(true)\" class=\"primary\"\n translate>eo.recyclebin.details.restoreopen</button>\n </div>\n </header>\n </div>\n <div class=\"eo-body\">\n <yvc-split-tabs [layoutSettingsID]=\"cacheLayout\">\n\n\n <ng-template [yvcTab]=\"{id: 'summary', label: 'eo.object.summary.title' | translate}\">\n <eo-indexdata-summary [indexdata]=\"indexDataPreview\" [baseparams]=\"baseparams\"\n [dmsObject]=\"item\"></eo-indexdata-summary>\n </ng-template>\n\n <ng-template [yvcTab]=\"{id: 'preview', label: 'eo.object.content.title' | translate}\">\n <eo-media *ngIf=\"item\" [dmsObject]=\"item\" [useVersion]=\"item.id === item.content?.id\"\n #viewer></eo-media>\n </ng-template>\n\n <ng-template *ngIf=\"isVisible('history')\"\n [yvcTab]=\"{id: 'history', label: 'eo.object.history.title' | translate}\">\n <eo-object-history [params]=\"{id: item.id, type: item.type?.qname}\">\n </eo-object-history>\n </ng-template>\n </yvc-split-tabs>\n </div>\n</ng-container>\n\n<eo-dialog [title]=\"'eo.recyclebin.details.delete.dialog.title' | translate\" [(visible)]=\"showDeleteDialog\"\n [focusOnShow]=\"false\" [minWidth]=\"400\" [styleClass]=\"'recyclebin-delete__dialog'\">\n\n <div>\n <span>{{'eo.recyclebin.details.delete.dialog.message' | translate}}</span>\n <br>\n <span class=\"recyclebin-delete__dialog_warning\">{{'eo.recyclebin.details.delete.dialog.message.warning' |\n translate}}</span>\n </div>\n <div class=\"action-buttons recyclebin-delete--action-buttons flex-row\">\n <button type=\"button\" class=\"button cancel\" (click)=\"showDeleteDialog = false\"\n translate>eo.recyclebin.details.delete.dialog.cancel</button>\n <button type=\"button\" #confirmDelete (click)=\"deleteDmsObject()\" class=\"button primary\"\n translate>eo.recyclebin.details.delete.dialog.delete</button>\n </div>\n</eo-dialog>\n", styles: [":host{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;background:var(--panel-background-grey);height:100%;overflow-y:auto}:host .eo-head .eo-header .eo-header-info .eo-header-title,:host .eo-head .eo-header .eo-header-info .eo-header-subtitle{-webkit-user-select:text;-moz-user-select:text;user-select:text}:host .actions{display:flex;align-items:center;align-self:flex-start}[dir=ltr] :host .actions button{margin-left:calc(var(--app-pane-padding) / 2)}[dir=rtl] :host .actions button{margin-right:calc(var(--app-pane-padding) / 2)}:host .actions eo-icon{padding:calc(var(--app-pane-padding) / 4)}:host .eo-body{background-color:var(--panel-background)}:host .eo-body__not-available{opacity:.4;background:rgba(var(--color-black-rgb),.4)}:host .eo-body yvc-split-tabs{height:100%}:host .sync-tab-btn.enabled{color:var(--color-accent)}:host .loader-overlay__mask{display:flex;width:100%;height:100%;z-index:11;position:absolute;background:rgba(var(--color-white-rgb),.8);animation:eoFadeIn .5s}:host .loader-overlay__mask .recyclebin-detail__loader{margin:auto}:host ::ng-deep div[eosplitgutter]{background-color:var(--color-white)!important}:host ::ng-deep .indexdata-summary,:host ::ng-deep .object-form-edit{margin:var(--app-pane-padding)}::ng-deep yvc-tabs{height:100%}::ng-deep yvc-tabs>header{background-color:var(--panel-background)}::ng-deep .yvc-split-area{background-color:var(--panel-background-grey)}::ng-deep eo-media{height:100%;overflow:hidden;display:block}::ng-deep .recyclebin-delete__dialog{padding:8px;min-height:unset!important}::ng-deep .recyclebin-delete__dialog--header{font-size:1.17em!important;font-weight:400!important;color:rgba(var(--color-black-rgb),.54)!important;padding:0 0 1em!important;margin:0;background:white!important}::ng-deep .recyclebin-delete__dialog .recyclebin-delete__dialog_warning{color:var(--color-error)}\n"] }]
245
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.SystemService }, { type: i3.EmptyStateService }, { type: i2.BackendService }, { type: i2.UserService }, { type: i2.NotificationsService }, { type: i2.DmsService }, { type: i4.SelectionService }, { type: i2.CapabilitiesService }, { type: i2.EventService }, { type: i2.Config }, { type: i2.TranslateService }]; }, propDecorators: { preview: [{
238
246
  type: ViewChild,
239
247
  args: ['viewer']
240
248
  }], confirmDeleteButton: [{
@@ -260,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
260
268
  type: HostBinding,
261
269
  args: ['attr.data-type']
262
270
  }] } });
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjeWNsZWJpbi1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3JlY3ljbGViaW4tZGV0YWlscy9yZWN5Y2xlYmluLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVjeWNsZWJpbi1kZXRhaWxzL3JlY3ljbGViaW4tZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUVMLFNBQVMsRUFDVCxTQUFTLEVBRVQsS0FBSyxFQUdMLFlBQVksRUFDWixNQUFNLEVBQUUsV0FBVyxFQUNwQixNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQ00sS0FBSyxFQUVGLFVBQVUsRUFDekIsTUFBTSxjQUFjLENBQUM7QUFLdEIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBRTlFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHlEQUF5RCxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBTTFGLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxvQkFBb0I7SUFrQ2xFLElBQUksZ0JBQWdCLENBQUMsR0FBWTtRQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO1FBRTdCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMs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LElBQUksQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztpQkFDeEI7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGVBQWU7UUFDYix5Q0FBeUM7UUFDekMsK0VBQStFO1FBQy9FLHFDQUFxQztJQUN2QyxDQUFDOzt1SEEzUVUsMEJBQTBCOzJHQUExQiwwQkFBMEIsOGtCQ3JDdkMsKytHQWtFWTsyRkQ3QkMsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHVCQUF1Qjt5YkFNWixPQUFPO3NCQUEzQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ1MsbUJBQW1CO3NCQUE5QyxTQUFTO3VCQUFDLGVBQWU7Z0JBZWpCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBWUcsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBZUgsVUFBVTtzQkFEYixLQUFLO2dCQVVGLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxRQUFRO2dCQVlYLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxNQUFNO2dCQW9Cc0IsUUFBUTtzQkFBMUMsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge29mfSBmcm9tICdyeGpzJztcbmltcG9ydCB7dGFrZVVudGlsLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgVmlld0NoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIElucHV0LFxuICBRdWVyeUxpc3QsXG4gIE9uSW5pdCxcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsIEhvc3RCaW5kaW5nLCBFbGVtZW50UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gaW1wb3J0IHtUYWJQYW5lbENvbXBvbmVudH0gZnJvbSAnLi4vdGFiLWNvbnRhaW5lci90YWItcGFuZWwvdGFiLXBhbmVsLmNvbXBvbmVudCc7XG5pbXBvcnQge1RhYlBsdWdpbkNvbXBvbmVudH0gZnJvbSAnLi4vcGx1Z2lucy9wbHVnaW4uY29tcG9uZW50JztcbmltcG9ydCB7Um91dGVyLCBBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZSwgQ29uZmlnLCBVc2VyU2VydmljZSwgTm90aWZpY2F0aW9uc1NlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge01lZGlhQ29tcG9uZW50fSBmcm9tICcuLi9tZWRpYS9tZWRpYS5jb21wb25lbnQnO1xuaW1wb3J0IHtJbmRleERhdGF9IGZyb20gJy4uL3VpL2luZGV4ZGF0YS1zdW1tYXJ5L2luZGV4ZGF0YS1zdW1tYXJ5LmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBEbXNPYmplY3QsIFV0aWxzLCBCYXNlUGFyYW1zLCBTeXN0ZW1TZXJ2aWNlLCBEbXNQYXJhbXMsXG4gIERtc1NlcnZpY2UsIEJhY2tlbmRTZXJ2aWNlLCBDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllc1NlcnZpY2UsXG4gIEV2ZW50U2VydmljZSwgRW5haW9FdmVudFxufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2VsZWN0aW9uQ29uZmlnLFxuICBTZWxlY3Rpb25TZXJ2aWNlXG59IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3NlbGVjdGlvbi9zZWxlY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1Vuc3Vic2NyaWJlT25EZXN0cm95fSBmcm9tICcuLi91dGlsL3Vuc3Vic2NyaWJlL3Vuc3Vic2NyaWJlLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvY2FsZURhdGVQaXBlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9waXBlcy9sb2NhbGUtZGF0ZS5waXBlJztcbmltcG9ydCB7RW1wdHlTdGF0ZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7RW1wdHlTdGF0ZVNlcnZpY2V9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLnNlcnZpY2UnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tcmVjeWNsZWJpbi1kZXRhaWxzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlY3ljbGViaW4tZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlY3ljbGViaW4tZGV0YWlscy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlY3ljbGViaW5EZXRhaWxzQ29tcG9uZW50IGV4dGVuZHMgVW5zdWJzY3JpYmVPbkRlc3Ryb3kgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ3ZpZXdlcicpIHByZXZpZXc6IE1lZGlhQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdjb25maXJtRGVsZXRlJykgY29uZmlybURlbGV0ZUJ1dHRvbjogRWxlbWVudFJlZjtcblxuICAvLyBnZW5lcmF0ZSB1bmlxdWUgaWQgdG8gcGFzcyB0byB1cGxvYWQgcmVnaXN0cnlcbiAgdXNlciQgPSB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIkO1xuICBfc2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlO1xuICB1c2VySWQgPSAnJztcbiAgaXRlbTogRG1zT2JqZWN0O1xuICBpbmRleERhdGFQcmV2aWV3OiBJbmRleERhdGE7XG4gIGJhc2VwYXJhbXM6IEJhc2VQYXJhbXM7XG4gIGhhc0Vycm9yID0gZmFsc2U7XG4gIGxvY2tUb29sdGlwOiBzdHJpbmc7XG4gIG5vZG1zb2JqZWN0ID0gZmFsc2U7XG4gIHNob3dMb2FkZXIgPSBmYWxzZTtcbiAgcGFuZWxPcmRlciA9IHsnbWFzdGVyJzogWydzdW1tYXJ5JywgJ2hpc3RvcnknXSwgJ3NsYXZlJzogWydwcmV2aWV3J119O1xuXG4gIEBJbnB1dCgpIGNhY2hlTGF5b3V0OiBhbnk7XG4gIGl0ZW0yOiBEbXNPYmplY3Q7XG4gIGluZGV4RGF0YVByZXZpZXcyOiBJbmRleERhdGE7XG4gIGJhc2VwYXJhbXMyOiBCYXNlUGFyYW1zO1xuICBwcml2YXRlIF9lbXB0eVN0YXRlOiBFbXB0eVN0YXRlID0ge2ljb246ICdpY19uby1maWxlLnN2ZycsIHRleHQ6ICcnLCBjbGFzc05hbWU6ICcnfTtcblxuICBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllcztcbiAgLy8gZXh0ZXJuYWxQYW5lbHMgPSBuZXcgUXVlcnlMaXN0PFRhYlBhbmVsQ29tcG9uZW50PigpO1xuXG4gIC8vIEBDb250ZW50Q2hpbGRyZW4oVGFiUGFuZWxDb21wb25lbnQpIHRhYlBhbmVsczogUXVlcnlMaXN0PFRhYlBhbmVsQ29tcG9uZW50PjtcbiAgLy8gQENvbnRlbnRDaGlsZHJlbihUYWJQbHVnaW5Db21wb25lbnQpXG4gIC8vIHRhYlBsdWdpbnM6IFF1ZXJ5TGlzdDxUYWJQbHVnaW5Db21wb25lbnQ+O1xuICBASW5wdXQoKSBhcHBseVNlbGVjdGlvbjogU2VsZWN0aW9uQ29uZmlnO1xuICBASW5wdXQoKSBwYXJzZURtc1BhcmFtczogKGRhdGEpID0+IHt9ID0gdGhpcy5nZXREbXNQYXJhbXM7XG4gIEBPdXRwdXQoKSBoYXNDb250ZW50OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgc2V0IHNob3dEZWxldGVEaWFsb2codmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0RlbGV0ZURpYWxvZyA9IHZhbDtcblxuICAgIGlmICh0aGlzLl9zaG93RGVsZXRlRGlhbG9nKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY29uZmlybURlbGV0ZUJ1dHRvbi5uYXRpdmVFbGVtZW50LmZvY3VzKCksIDApO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93RGVsZXRlRGlhbG9nKCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93RGVsZXRlRGlhbG9nO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGVtcHR5U3RhdGUoZTogRW1wdHlTdGF0ZSkge1xuICAgIHRoaXMuX2VtcHR5U3RhdGUgPSBlIHx8IEVtcHR5U3RhdGVTZXJ2aWNlLmRlZmF1bHRFbXB0eVN0YXRlKCk7XG4gIH1cblxuICBnZXQgZW1wdHlTdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW1wdHlTdGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgncGFyYW1zJylcbiAgc2V0IGRtc1BhcmFtcyhwYXJhbXM6IERtc1BhcmFtcykge1xuICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5sb2FkRG1zT2JqZWN0KHBhcmFtcykuc3Vic2NyaWJlKChyZXM6IERtc09iamVjdCkgPT4ge1xuICAgICAgdGhpcy5kbXNPYmplY3QgPSByZXM7XG4gICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICB9LFxuICAgICAgVXRpbHMudGhyb3coKCkgPT4gdGhpcy5vbkhhc0Vycm9yKHRydWUsIHRydWUsIGZhbHNlKSlcbiAgICApO1xuICB9XG5cbiAgQElucHV0KCdpdGVtJylcbiAgc2V0IGRtc09iamVjdCh2OiBEbXNPYmplY3QpIHtcbiAgICB0aGlzLml0ZW0gPSB2O1xuICAgIHRoaXMub25IYXNFcnJvcigpO1xuICAgIC8vIHByZXBhcmUgaW5kZXhkYXRhIHByZXZpZXdcbiAgICB0aGlzLm9uSW5kZXhEYXRhU2F2ZWQobnVsbCwgdGhpcy5pdGVtKTtcbiAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9MT0FERUQsIHRoaXMuaXRlbSk7XG5cbiAgICBpZiAodGhpcy5pdGVtKSB7XG5cbiAgICAgIGlmICh0aGlzLml0ZW0ubG9jaykge1xuICAgICAgICB0aGlzLmxvY2tUb29sdGlwID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ub2JqZWN0LmxvY2snKSArICcgJ1xuICAgICAgICAgICsgKG5ldyBMb2NhbGVEYXRlUGlwZSh0aGlzLnRyYW5zbGF0ZSkudHJhbnNmb3JtKHRoaXMuaXRlbS5sb2NrLm9uKSlcbiAgICAgICAgICArICcsICcgKyB0aGlzLml0ZW0ubG9jay5ieS5sYWJlbCArICcgKCcgKyB0aGlzLml0ZW0ubG9jay5ieS5uYW1lICsgJyknO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtcHR5U3RhdGUgPSB0aGlzLmVtcHR5LmdldEVtcHR5U3RhdGUoMCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdHlwZScpIGdldCBkYXRhVHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtID8gdGhpcy5pdGVtLnR5cGVOYW1lIDogJ25vbmUnO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHN5c3RlbTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGVtcHR5OiBFbXB0eVN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGJhY2tlbmQ6IEJhY2tlbmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3Q6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIHNlbGVjdGlvbjogU2VsZWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNhcGFiaWxpdHlTZXJ2aWNlOiBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWcsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5wYW5lbE9yZGVyID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldFJhdygncmVjeWNsZWJpbkRldGFpbHNUYWJzJykgfHwgdGhpcy5wYW5lbE9yZGVyO1xuICAgIHRoaXMudXNlciQuc3Vic2NyaWJlKHVzZXIgPT4ge3RoaXMudXNlcklkID0gdXNlci5pZDsgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldERtc1BhcmFtcyhkYXRhOiBhbnkpOiBEbXNQYXJhbXMge1xuICAgIHJldHVybiBkYXRhID8gey4uLmRhdGEsIHR5cGU6IGRhdGEudHlwZX0gOiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb250ZW50KCkge1xuICAgIGlmICh0aGlzLmFwcGx5U2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvblxuICAgICAgICAuZmluZCh0aGlzLmFwcGx5U2VsZWN0aW9uLmluKVxuICAgICAgICAuZm9jdXMkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5sb2FkRG1zT2JqZWN0KHRoaXMucGFyc2VEbXNQYXJhbXMocmVzdWx0KSBhcyBEbXNQYXJhbXMpLnN1YnNjcmliZSgocmVzOiBEbXNPYmplY3QpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLml0ZW0gJiYgcmVzICYmICh0aGlzLml0ZW0uaWQgPT09IHJlcy5pZCkgJiYgcmVzLnZlcnNpb24gPiB0aGlzLml0ZW0udmVyc2lvbikge1xuICAgICAgICAgICAgICB0aGlzLmV2ZW50U2VydmljZS50cmlnZ2VyKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9VUERBVEVELCByZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5kbXNPYmplY3QgPSByZXM7XG4gICAgICAgICAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgICAgVXRpbHMudGhyb3coKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLm9uSGFzRXJyb3IodHJ1ZSwgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXN0b3JlRmlsZShvcGVuTG9jYXRpb25BZnRlclJlc3RvcmUgPSBmYWxzZSkge1xuICAgIHRoaXMuZG1zU2VydmljZS5yZXN0b3JlKHRoaXMuaXRlbS5pZCwgdGhpcy51c2VySWQsIHRoaXMuaXRlbS50eXBlTmFtZSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlQ29udGVudCgpO1xuICAgICAgaWYgKG9wZW5Mb2NhdGlvbkFmdGVyUmVzdG9yZSkge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9vYmplY3QnLCB0aGlzLml0ZW0uaWRdKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudG9hc3Quc3VjY2VzcyhcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucmVjeWNsZWJpbi5kZXRhaWxzLnJlc3RvcmUuZG9uZS50aXRsZScpLFxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5yZWN5Y2xlYmluLmRldGFpbHMucmVzdG9yZS5kb25lLm1lc3NhZ2UnLCB7aXRlbSA6IHRoaXMuaXRlbS50aXRsZX0pLFxuICAgICAgKTtcbiAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5ETVNfT0JKRUNUX1JFU1RPUkVEX09SX0RFTEVURUQpO1xuICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNDA5KSB7XG4gICAgICAgIHRoaXMudG9hc3QuZXJyb3IodGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucmVjeWNsZWJpbi5kZXRhaWxzLnJlc3RvcmUuZG1zLm9iamVjdC5lcnJvci40MDknKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgZGVsZXRlRG1zT2JqZWN0KCkge1xuICAgIHRoaXMuZG1zU2VydmljZVxuICAgICAgLmRlbGV0ZURtc09iamVjdCh0aGlzLml0ZW0uaWQsIHRoaXMuaXRlbS50eXBlLm5hbWUsIHRydWUpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnRvYXN0LnN1Y2Nlc3MoXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5yZWN5Y2xlYmluLmRldGFpbHMuZGVsZXRlLmRvbmUudGl0bGUnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlY3ljbGViaW4uZGV0YWlscy5kZWxldGUuZG9uZS5tZXNzYWdlJywge2l0ZW0gOiB0aGlzLml0ZW0udGl0bGV9KVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5fc2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5ETVNfT0JKRUNUX1JFU1RPUkVEX09SX0RFTEVURUQpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICBwcml2YXRlIHByZXBhcmVJbmRleERhdGFQcmV2aWV3KGl0ZW06IERtc09iamVjdCwgZm9ybURhdGE/OiBhbnkpIHtcbiAgICBjb25zdCB7aWQsIGRhdGEsIHR5cGUsIGNyZWF0ZWQsIG1vZGlmaWVkLCBjb250ZW50LCBjb250ZW50RmlsZU5hbWUsIGNvbnRlbnRGaWxlU2l6ZSwgdmVyc2lvbn0gPSBpdGVtO1xuXG4gICAgcmV0dXJuIHRoaXMuc3lzdGVtXG4gICAgICAuZ2V0T2JqZWN0VHlwZUZvcm0odHlwZS5uYW1lLCAnRURJVCcpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGZvcm0gPT4ge1xuICAgICAgICAgIGxldCBpbmRleERhdGFQcmV2aWV3ID0ge1xuICAgICAgICAgICAgZm9ybSxcbiAgICAgICAgICAgIGRhdGE6IGZvcm1EYXRhIHx8IGRhdGFcbiAgICAgICAgICB9O1xuICAgICAgICAgIGxldCBiYXNlcGFyYW1zOiBCYXNlUGFyYW1zID0ge1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICB0eXBlOiB0eXBlLm5hbWUsXG4gICAgICAgICAgICBjcmVhdGVkT246IG5ldyBEYXRlKGNyZWF0ZWQub24pLFxuICAgICAgICAgICAgbW9kaWZpZWRPbjogbmV3IERhdGUobW9kaWZpZWQub24pLFxuICAgICAgICAgICAgY3JlYXRlZEJ5OiBgJHtjcmVhdGVkLmJ5LnRpdGxlfSAoJHtjcmVhdGVkLmJ5Lm5hbWV9KWAsXG4gICAgICAgICAgICBtb2RpZmllZEJ5OiBgJHttb2RpZmllZC5ieS50aXRsZX0gKCR7bW9kaWZpZWQuYnkubmFtZX0pYCxcbiAgICAgICAgICAgIGNvbnRlbnRGaWxlTmFtZTogY29udGVudEZpbGVOYW1lID8gY29udGVudEZpbGVOYW1lIDogbnVsbCxcbiAgICAgICAgICAgIGNvbnRlbnRGaWxlU2l6ZTogY29udGVudEZpbGVTaXplID8gTnVtYmVyKGNvbnRlbnRGaWxlU2l6ZSkgOiBudWxsLFxuICAgICAgICAgICAgdmVyc2lvbjogdmVyc2lvbiB8fCAwLFxuICAgICAgICAgICAgbWltZUdyb3VwOiBjb250ZW50ID8gY29udGVudC5jb250ZW50cyA/IGNvbnRlbnQuY29udGVudHNbMF0ubWltZWdyb3VwIDogbnVsbCA6IG51bGwsXG4gICAgICAgICAgICBkaWdlc3Q6IGNvbnRlbnQgPyBjb250ZW50LmNvbnRlbnRzID8gY29udGVudC5jb250ZW50c1swXS5kaWdlc3QgOiBudWxsIDogbnVsbCxcbiAgICAgICAgICAgIGNvbnRlbnRJZDogY29udGVudCA/IGNvbnRlbnQuY29udGVudHMgPyBjb250ZW50LmlkIDogbnVsbCA6IG51bGwsXG4gICAgICAgICAgICBtaW1lVHlwZTogY29udGVudCA/IGNvbnRlbnQuY29udGVudHMgPyBjb250ZW50LmNvbnRlbnRzWzBdLm1pbWV0eXBlIDogbnVsbCA6IG51bGwsXG4gICAgICAgICAgfTtcbiAgICAgICAgICByZXR1cm4ge2luZGV4RGF0YVByZXZpZXcsIGJhc2VwYXJhbXN9O1xuICAgICAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIG9uSGFzRXJyb3IoaGFzRXJyb3IgPSBmYWxzZSwgbm9kbXNvYmplY3QgPSBmYWxzZSwgc2hvd0xvYWRlciA9IGZhbHNlKSB7XG4gICAgdGhpcy5oYXNFcnJvciA9IGhhc0Vycm9yO1xuICAgIHRoaXMubm9kbXNvYmplY3QgPSBub2Rtc29iamVjdDtcbiAgICB0aGlzLnNob3dMb2FkZXIgPSBzaG93TG9hZGVyO1xuICAgIHRoaXMuaGFzQ29udGVudC5lbWl0KCFoYXNFcnJvcik7XG4gIH1cblxuICBsb2FkRG1zT2JqZWN0KHBhcmFtczogRG1zUGFyYW1zKSB7XG4gICAgaWYgKHBhcmFtcykge1xuICAgICAgZGVsZXRlIHBhcmFtcy52ZXJzaW9uO1xuICAgIH1cbiAgICAvLyBjaGVjayBmb3IgdmFsaWQgaWRcbiAgICByZXR1cm4gcGFyYW1zPy5pZD8ubGVuZ3RoID09PSAzMiA/IHRoaXMuZG1zU2VydmljZS5nZXREbXNPYmplY3RCeVBhcmFtcyhwYXJhbXMpIDogb2YobnVsbCk7XG4gIH1cblxuICBkb3dubG9hZE9yaWdpbmFsQ29udGVudCgpIHtcbiAgICB0aGlzLmJhY2tlbmQuZG93bmxvYWRDb250ZW50KFt0aGlzLml0ZW1dLCBudWxsLCBmYWxzZSwgdHJ1ZSk7XG4gIH1cblxuICAvLyBleGVjdXRlZCB3aGVuIHRoZSBkbXMgb2JqZWN0IGNoYW5nZWQgZHVlIHRvIHNhdmluZyBpdHMgaW5kZXhkYXRhXG4gIG9uSW5kZXhEYXRhU2F2ZWQoZm9ybURhdGEsIGl0ZW0pIHtcbiAgICBpZiAoIXRoaXMuaXRlbSkge1xuICAgICAgdGhpcy5pbmRleERhdGFQcmV2aWV3ID0gbnVsbDtcbiAgICAgIHRoaXMuYmFzZXBhcmFtcyA9IG51bGw7XG4gICAgfVxuICAgIGlmICghdGhpcy5pdGVtMikge1xuICAgICAgdGhpcy5pbmRleERhdGFQcmV2aWV3MiA9IG51bGw7XG4gICAgICB0aGlzLmJhc2VwYXJhbXMyID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIHRoaXMucHJlcGFyZUluZGV4RGF0YVByZXZpZXcoaXRlbSwgZm9ybURhdGEpXG4gICAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW0gPT09IHRoaXMuaXRlbSkge1xuICAgICAgICAgICAgdGhpcy5pbmRleERhdGFQcmV2aWV3ID0gZGF0YS5pbmRleERhdGFQcmV2aWV3O1xuICAgICAgICAgICAgdGhpcy5iYXNlcGFyYW1zID0gZGF0YS5iYXNlcGFyYW1zO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmluZGV4RGF0YVByZXZpZXcyID0gZGF0YS5pbmRleERhdGFQcmV2aWV3O1xuICAgICAgICAgICAgdGhpcy5iYXNlcGFyYW1zMiA9IGRhdGEuYmFzZXBhcmFtcztcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlzVmlzaWJsZShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucGFuZWxPcmRlci5tYXN0ZXIuaW5jbHVkZXMoaWQpIHx8IHRoaXMucGFuZWxPcmRlci5zbGF2ZS5pbmNsdWRlcyhpZCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmNhcGFiaWxpdGllcyA9IHRoaXMuY2FwYWJpbGl0eVNlcnZpY2UuZ2V0Q2FwYWJpbGl0aWVzKCk7XG4gICAgdGhpcy51cGRhdGVDb250ZW50KCk7XG4gICAgdGhpcy5ldmVudFNlcnZpY2VcbiAgICAgIC5vbihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfVVBEQVRFRClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIGlmIChldmVudC5kYXRhICYmIHRoaXMuaXRlbS5pZCA9PT0gZXZlbnQuZGF0YS5pZCkge1xuICAgICAgICAgIHRoaXMuZG1zT2JqZWN0ID0gdGhpcy5kbXNTZXJ2aWNlLmNyZWF0ZUxvY2FsQ29weU9mRE1TT2JqZWN0KGV2ZW50LmRhdGEpO1xuICAgICAgICAgIGlmICh0aGlzLnByZXZpZXcpIHtcbiAgICAgICAgICAgIHRoaXMucHJldmlldy5yZWZyZXNoKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBsZXQgcGFuZWxzID0gdGhpcy50YWJQYW5lbHMudG9BcnJheSgpO1xuICAgIC8vIHRoaXMudGFiUGx1Z2lucy5mb3JFYWNoKHAgPT4gcGFuZWxzID0gcGFuZWxzLmNvbmNhdChwLnRhYlBhbmVscy50b0FycmF5KCkpKTtcbiAgICAvLyB0aGlzLmV4dGVybmFsUGFuZWxzLnJlc2V0KHBhbmVscyk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsb2FkZXItb3ZlcmxheV9fbWFza1wiICpuZ0lmPVwic2hvd0xvYWRlclwiPlxuICAgIDxlby1sb2FkaW5nLXNwaW5uZXIgY2xhc3M9XCJyZWN5Y2xlYmluLWRldGFpbF9fbG9hZGVyXCI+PC9lby1sb2FkaW5nLXNwaW5uZXI+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtICYmICFoYXNFcnJvclwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImVvLWhlYWQgZW8taGVhZC10YWJzXCI+XG4gICAgICAgIDxoZWFkZXIgY2xhc3M9XCJlby1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiZW8taGVhZGVyLWljb25cIiBbb2JqZWN0VHlwZV09XCJpdGVtLnR5cGVcIiBbaWNvblRpdGxlXT1cIml0ZW0udHlwZS5sYWJlbFwiPjwvZW8taWNvbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVvLWhlYWRlci1pbmZvXCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiZW8taGVhZGVyLXRpdGxlXCI+e3tpdGVtLnRpdGxlfX08L2gyPlxuICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImVvLWhlYWRlci1zdWJ0aXRsZVwiPnt7aXRlbS5kZXNjcmlwdGlvbn19PC9oMz5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxlby1pY29uICpuZ0lmPVwiaXRlbS5jb250ZW50XCIgY2xhc3M9XCJidG4gYnRuLWRvd25sb2FkXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY29udGVudC1kb3dubG9hZC5zdmcnXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmFjdGlvbi5kb3dubG9hZC5kbXMub2JqZWN0LmNvbnRlbnQubGFiZWwnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZE9yaWdpbmFsQ29udGVudCgpXCI+PC9lby1pY29uPlxuICAgICAgICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnRuIGJ0bi1kZWxldGVcIiAqbmdJZj1cInRoaXMuaXRlbS5yaWdodHMuZGVsZXRlXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfdHJhc2guc3ZnJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwiKCdlby5yZWN5Y2xlYmluLmRldGFpbHMuZGVsZXRlLnRvb2x0aXAnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGVsZXRlRGlhbG9nID0gdHJ1ZTtcIj48L2VvLWljb24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi10cGwtYXBwbHlcIiAoY2xpY2spPVwicmVzdG9yZUZpbGUoKVwiIHRyYW5zbGF0ZT5lby5yZWN5Y2xlYmluLmRldGFpbHMucmVzdG9yZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInJlc3RvcmVGaWxlKHRydWUpXCIgY2xhc3M9XCJwcmltYXJ5IGJ0bi1pZHgtcmVzdG9yZW9wZW5cIlxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGU+ZW8ucmVjeWNsZWJpbi5kZXRhaWxzLnJlc3RvcmVvcGVuPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImVvLWJvZHlcIj5cbiAgICAgICAgPHl2Yy1zcGxpdC10YWJzIFtsYXlvdXRTZXR0aW5nc0lEXT1cImNhY2hlTGF5b3V0XCI+XG5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFt5dmNUYWJdPVwie2lkOiAnc3VtbWFyeScsIGxhYmVsOiAnZW8ub2JqZWN0LnN1bW1hcnkudGl0bGUnIHwgdHJhbnNsYXRlfVwiPlxuICAgICAgICAgICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeSBbaW5kZXhkYXRhXT1cImluZGV4RGF0YVByZXZpZXdcIiBbYmFzZXBhcmFtc109XCJiYXNlcGFyYW1zXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rtc09iamVjdF09XCJpdGVtXCI+PC9lby1pbmRleGRhdGEtc3VtbWFyeT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbeXZjVGFiXT1cIntpZDogJ3ByZXZpZXcnLCBsYWJlbDogJ2VvLm9iamVjdC5jb250ZW50LnRpdGxlJyB8IHRyYW5zbGF0ZX1cIj5cbiAgICAgICAgICAgICAgICA8ZW8tbWVkaWEgKm5nSWY9XCJpdGVtXCIgW2Rtc09iamVjdF09XCJpdGVtXCIgW3VzZVZlcnNpb25dPVwiaXRlbS5pZCA9PT0gaXRlbS5jb250ZW50Py5pZFwiXG4gICAgICAgICAgICAgICAgICAgICN2aWV3ZXI+PC9lby1tZWRpYT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdJZj1cImlzVmlzaWJsZSgnaGlzdG9yeScpXCJcbiAgICAgICAgICAgICAgICBbeXZjVGFiXT1cIntpZDogJ2hpc3RvcnknLCBsYWJlbDogJ2VvLm9iamVjdC5oaXN0b3J5LnRpdGxlJyB8IHRyYW5zbGF0ZX1cIj5cbiAgICAgICAgICAgICAgICA8ZW8tb2JqZWN0LWhpc3RvcnkgW3BhcmFtc109XCJ7aWQ6IGl0ZW0uaWQsIHR5cGU6IGl0ZW0udHlwZT8ucW5hbWV9XCI+XG4gICAgICAgICAgICAgICAgPC9lby1vYmplY3QtaGlzdG9yeT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwveXZjLXNwbGl0LXRhYnM+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPGVvLWRpYWxvZyBbdGl0bGVdPVwiJ2VvLnJlY3ljbGViaW4uZGV0YWlscy5kZWxldGUuZGlhbG9nLnRpdGxlJyB8IHRyYW5zbGF0ZVwiIFsodmlzaWJsZSldPVwic2hvd0RlbGV0ZURpYWxvZ1wiXG4gICAgW2ZvY3VzT25TaG93XT1cImZhbHNlXCIgW21pbldpZHRoXT1cIjQwMFwiIFtzdHlsZUNsYXNzXT1cIidyZWN5Y2xlYmluLWRlbGV0ZV9fZGlhbG9nJ1wiPlxuXG4gICAgPGRpdj5cbiAgICAgICAgPHNwYW4+e3snZW8ucmVjeWNsZWJpbi5kZXRhaWxzLmRlbGV0ZS5kaWFsb2cubWVzc2FnZScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgPGJyPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInJlY3ljbGViaW4tZGVsZXRlX19kaWFsb2dfd2FybmluZ1wiPnt7J2VvLnJlY3ljbGViaW4uZGV0YWlscy5kZWxldGUuZGlhbG9nLm1lc3NhZ2Uud2FybmluZycgfFxuICAgICAgICAgICAgdHJhbnNsYXRlfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImFjdGlvbi1idXR0b25zIHJlY3ljbGViaW4tZGVsZXRlLS1hY3Rpb24tYnV0dG9ucyBmbGV4LXJvd1wiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ1dHRvbiBjYW5jZWxcIiAoY2xpY2spPVwic2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlXCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZT5lby5yZWN5Y2xlYmluLmRldGFpbHMuZGVsZXRlLmRpYWxvZy5jYW5jZWw8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgI2NvbmZpcm1EZWxldGUgKGNsaWNrKT1cImRlbGV0ZURtc09iamVjdCgpXCIgY2xhc3M9XCJidXR0b24gcHJpbWFyeVwiXG4gICAgICAgICAgICB0cmFuc2xhdGU+ZW8ucmVjeWNsZWJpbi5kZXRhaWxzLmRlbGV0ZS5kaWFsb2cuZGVsZXRlPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2VvLWRpYWxvZz4iXX0=
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjeWNsZWJpbi1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL3JlY3ljbGViaW4tZGV0YWlscy9yZWN5Y2xlYmluLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvcmVjeWNsZWJpbi1kZXRhaWxzL3JlY3ljbGViaW4tZGV0YWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEIsT0FBTyxFQUFDLEdBQUcsRUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBRzlDLE9BQU8sRUFFTyxVQUFVLEVBQW9GLEtBQUssRUFDaEgsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVuRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUMxRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZ0RBQWdELENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFhdkUsSUFBTSwwQkFBMEIsR0FBaEMsTUFBTSwwQkFBMEI7SUE2QnJDLElBQUksZ0JBQWdCLENBQUMsR0FBWTtRQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO1FBRTdCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMs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QyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO2dCQUNoRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ3hCO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxlQUFlO1FBQ2IseUNBQXlDO1FBQ3pDLCtFQUErRTtRQUMvRSxxQ0FBcUM7SUFDdkMsQ0FBQzs7dUhBMVFVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLHVqQkNuQ3ZDLDZpSEFvRUE7QURqQ2EsMEJBQTBCO0lBTnRDLFlBQVksRUFBRTtHQU1GLDBCQUEwQixDQTJRdEM7U0EzUVksMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UsdUJBQXVCOzRaQU1aLE9BQU87c0JBQTNCLFNBQVM7dUJBQUMsUUFBUTtnQkFDUyxtQkFBbUI7c0JBQTlDLFNBQVM7dUJBQUMsZUFBZTtnQkFlakIsV0FBVztzQkFBbkIsS0FBSztnQkFPRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFxQkgsVUFBVTtzQkFEYixLQUFLO2dCQVVGLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxRQUFRO2dCQVlYLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxNQUFNO2dCQW9Cc0IsUUFBUTtzQkFBMUMsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG4vLyBpbXBvcnQge1RhYlBhbmVsQ29tcG9uZW50fSBmcm9tICcuLi90YWItY29udGFpbmVyL3RhYi1wYW5lbC90YWItcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEJhY2tlbmRTZXJ2aWNlLCBCYXNlUGFyYW1zLCBDYXBhYmlsaXRpZXMsIENhcGFiaWxpdGllc1NlcnZpY2UsIENvbmZpZywgRG1zT2JqZWN0LCBEbXNQYXJhbXMsXG4gIERtc1NlcnZpY2UsIEVuYWlvRXZlbnQsIEV2ZW50U2VydmljZSwgTm90aWZpY2F0aW9uc1NlcnZpY2UsIFN5c3RlbVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBVdGlsc1xufSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtFbXB0eVN0YXRlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtFbXB0eVN0YXRlU2VydmljZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuc2VydmljZSc7XG5pbXBvcnQge0xvY2FsZURhdGVQaXBlfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9waXBlcy9sb2NhbGUtZGF0ZS5waXBlJztcbmltcG9ydCB7XG4gIFNlbGVjdGlvbkNvbmZpZyxcbiAgU2VsZWN0aW9uU2VydmljZVxufSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtNZWRpYUNvbXBvbmVudH0gZnJvbSAnLi4vbWVkaWEvbWVkaWEuY29tcG9uZW50JztcbmltcG9ydCB7SW5kZXhEYXRhfSBmcm9tICcuLi91aS9pbmRleGRhdGEtc3VtbWFyeS9pbmRleGRhdGEtc3VtbWFyeS5jb21wb25lbnQnO1xuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1yZWN5Y2xlYmluLWRldGFpbHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVjeWNsZWJpbi1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVjeWNsZWJpbi1kZXRhaWxzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVjeWNsZWJpbkRldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ3ZpZXdlcicpIHByZXZpZXc6IE1lZGlhQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdjb25maXJtRGVsZXRlJykgY29uZmlybURlbGV0ZUJ1dHRvbjogRWxlbWVudFJlZjtcblxuICAvLyBnZW5lcmF0ZSB1bmlxdWUgaWQgdG8gcGFzcyB0byB1cGxvYWQgcmVnaXN0cnlcbiAgdXNlciQgPSB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIkO1xuICBfc2hvd0RlbGV0ZURpYWxvZyA9IGZhbHNlO1xuICB1c2VySWQgPSAnJztcbiAgaXRlbTogRG1zT2JqZWN0O1xuICBpbmRleERhdGFQcmV2aWV3OiBJbmRleERhdGE7XG4gIGJhc2VwYXJhbXM6IEJhc2VQYXJhbXM7XG4gIGhhc0Vycm9yID0gZmFsc2U7XG4gIGxvY2tUb29sdGlwOiBzdHJpbmc7XG4gIG5vZG1zb2JqZWN0ID0gZmFsc2U7XG4gIHNob3dMb2FkZXIgPSBmYWxzZTtcbiAgcGFuZWxPcmRlciA9IHsnbWFzdGVyJzogWydzdW1tYXJ5JywgJ2hpc3RvcnknXSwgJ3NsYXZlJzogWydwcmV2aWV3J119O1xuXG4gIEBJbnB1dCgpIGNhY2hlTGF5b3V0OiBhbnk7XG4gIGl0ZW0yOiBEbXNPYmplY3Q7XG4gIGluZGV4RGF0YVByZXZpZXcyOiBJbmRleERhdGE7XG4gIGJhc2VwYXJhbXMyOiBCYXNlUGFyYW1zO1xuICBwcml2YXRlIF9lbXB0eVN0YXRlOiBFbXB0eVN0YXRlID0ge2ljb246ICdpY19uby1maWxlLnN2ZycsIHRleHQ6ICcnLCBjbGFzc05hbWU6ICcnfTtcblxuICBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllcztcbiAgQElucHV0KCkgYXBwbHlTZWxlY3Rpb246IFNlbGVjdGlvbkNvbmZpZztcbiAgQElucHV0KCkgcGFyc2VEbXNQYXJhbXM6IChkYXRhKSA9PiB7fSA9IHRoaXMuZ2V0RG1zUGFyYW1zO1xuICBAT3V0cHV0KCkgaGFzQ29udGVudDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHNldCBzaG93RGVsZXRlRGlhbG9nKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dEZWxldGVEaWFsb2cgPSB2YWw7XG5cbiAgICBpZiAodGhpcy5fc2hvd0RlbGV0ZURpYWxvZykge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNvbmZpcm1EZWxldGVCdXR0b24ubmF0aXZlRWxlbWVudC5mb2N1cygpLCAwKTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2hvd0RlbGV0ZURpYWxvZygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0RlbGV0ZURpYWxvZztcbiAgfVxuXG4gIHNob3dEaWFsb2coKSB7XG4gICAgaWYgKHRoaXMuaXRlbS5yaWdodHMuZGVsZXRlKSB7XG4gICAgICB0aGlzLnNob3dEZWxldGVEaWFsb2cgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBlbXB0eVN0YXRlKGU6IEVtcHR5U3RhdGUpIHtcbiAgICB0aGlzLl9lbXB0eVN0YXRlID0gZSB8fCBFbXB0eVN0YXRlU2VydmljZS5kZWZhdWx0RW1wdHlTdGF0ZSgpO1xuICB9XG5cbiAgZ2V0IGVtcHR5U3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VtcHR5U3RhdGU7XG4gIH1cblxuICBASW5wdXQoJ3BhcmFtcycpXG4gIHNldCBkbXNQYXJhbXMocGFyYW1zOiBEbXNQYXJhbXMpIHtcbiAgICB0aGlzLnNob3dMb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMubG9hZERtc09iamVjdChwYXJhbXMpLnN1YnNjcmliZSgocmVzOiBEbXNPYmplY3QpID0+IHtcbiAgICAgIHRoaXMuZG1zT2JqZWN0ID0gcmVzO1xuICAgICAgdGhpcy5zaG93TG9hZGVyID0gZmFsc2U7XG4gICAgfSxcbiAgICAgIFV0aWxzLnRocm93KCgpID0+IHRoaXMub25IYXNFcnJvcih0cnVlLCB0cnVlLCBmYWxzZSkpXG4gICAgKTtcbiAgfVxuXG4gIEBJbnB1dCgnaXRlbScpXG4gIHNldCBkbXNPYmplY3QodjogRG1zT2JqZWN0KSB7XG4gICAgdGhpcy5pdGVtID0gdjtcbiAgICB0aGlzLm9uSGFzRXJyb3IoKTtcbiAgICAvLyBwcmVwYXJlIGluZGV4ZGF0YSBwcmV2aWV3XG4gICAgdGhpcy5vbkluZGV4RGF0YVNhdmVkKG51bGwsIHRoaXMuaXRlbSk7XG4gICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfTE9BREVELCB0aGlzLml0ZW0pO1xuXG4gICAgaWYgKHRoaXMuaXRlbSkge1xuXG4gICAgICBpZiAodGhpcy5pdGVtLmxvY2spIHtcbiAgICAgICAgdGhpcy5sb2NrVG9vbHRpcCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLm9iamVjdC5sb2NrJykgKyAnICdcbiAgICAgICAgICArIChuZXcgTG9jYWxlRGF0ZVBpcGUodGhpcy50cmFuc2xhdGUpLnRyYW5zZm9ybSh0aGlzLml0ZW0ubG9jay5vbikpXG4gICAgICAgICAgKyAnLCAnICsgdGhpcy5pdGVtLmxvY2suYnkubGFiZWwgKyAnICgnICsgdGhpcy5pdGVtLmxvY2suYnkubmFtZSArICcpJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbXB0eVN0YXRlID0gdGhpcy5lbXB0eS5nZXRFbXB0eVN0YXRlKDApO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR5cGUnKSBnZXQgZGF0YVR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbSA/IHRoaXMuaXRlbS50eXBlTmFtZSA6ICdub25lJztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBzeXN0ZW06IFN5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbXB0eTogRW1wdHlTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYWNrZW5kOiBCYWNrZW5kU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0OiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIGRtc1NlcnZpY2U6IERtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWxlY3Rpb246IFNlbGVjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjYXBhYmlsaXR5U2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG5cbiAgICB0aGlzLnBhbmVsT3JkZXIgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuZ2V0UmF3KCdyZWN5Y2xlYmluRGV0YWlsc1RhYnMnKSB8fCB0aGlzLnBhbmVsT3JkZXI7XG4gICAgdGhpcy51c2VyJC5zdWJzY3JpYmUodXNlciA9PiB7dGhpcy51c2VySWQgPSB1c2VyLmlkOyB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RG1zUGFyYW1zKGRhdGE6IGFueSk6IERtc1BhcmFtcyB7XG4gICAgcmV0dXJuIGRhdGEgPyB7Li4uZGF0YSwgdHlwZTogZGF0YS50eXBlfSA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbnRlbnQoKSB7XG4gICAgaWYgKHRoaXMuYXBwbHlTZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uXG4gICAgICAgIC5maW5kKHRoaXMuYXBwbHlTZWxlY3Rpb24uaW4pXG4gICAgICAgIC5mb2N1cyRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcylcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgdGhpcy5zaG93TG9hZGVyID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmxvYWREbXNPYmplY3QodGhpcy5wYXJzZURtc1BhcmFtcyhyZXN1bHQpIGFzIERtc1BhcmFtcykuc3Vic2NyaWJlKChyZXM6IERtc09iamVjdCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXRlbSAmJiByZXMgJiYgKHRoaXMuaXRlbS5pZCA9PT0gcmVzLmlkKSAmJiByZXMudmVyc2lvbiA+IHRoaXMuaXRlbS52ZXJzaW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMuZXZlbnRTZXJ2aWNlLnRyaWdnZXIoRW5haW9FdmVudC5ETVNfT0JKRUNUX1VQREFURUQsIHJlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRtc09iamVjdCA9IHJlcztcbiAgICAgICAgICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgICBVdGlscy50aHJvdygoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMub25IYXNFcnJvcih0cnVlLCB0cnVlLCBmYWxzZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlc3RvcmVGaWxlKG9wZW5Mb2NhdGlvbkFmdGVyUmVzdG9yZSA9IGZhbHNlKSB7XG4gICAgdGhpcy5kbXNTZXJ2aWNlLnJlc3RvcmUodGhpcy5pdGVtLmlkLCB0aGlzLnVzZXJJZCwgdGhpcy5pdGVtLnR5cGVOYW1lKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVDb250ZW50KCk7XG4gICAgICBpZiAob3BlbkxvY2F0aW9uQWZ0ZXJSZXN0b3JlKSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL29iamVjdCcsIHRoaXMuaXRlbS5pZF0pO1xuICAgICAgfVxuICAgICAgdGhpcy50b2FzdC5zdWNjZXNzKFxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5yZWN5Y2xlYmluLmRldGFpbHMucmVzdG9yZS5kb25lLnRpdGxlJyksXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlY3ljbGViaW4uZGV0YWlscy5yZXN0b3JlLmRvbmUubWVzc2FnZScsIHtpdGVtIDogdGhpcy5pdGVtLnRpdGxlfSksXG4gICAgICApO1xuICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfUkVTVE9SRURfT1JfREVMRVRFRCk7XG4gICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA0MDkpIHtcbiAgICAgICAgdGhpcy50b2FzdC5lcnJvcih0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5yZWN5Y2xlYmluLmRldGFpbHMucmVzdG9yZS5kbXMub2JqZWN0LmVycm9yLjQwOScpKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICBkZWxldGVEbXNPYmplY3QoKSB7XG4gICAgdGhpcy5kbXNTZXJ2aWNlXG4gICAgICAuZGVsZXRlRG1zT2JqZWN0KHRoaXMuaXRlbS5pZCwgdGhpcy5pdGVtLnR5cGUubmFtZSwgdHJ1ZSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudG9hc3Quc3VjY2VzcyhcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnJlY3ljbGViaW4uZGV0YWlscy5kZWxldGUuZG9uZS50aXRsZScpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8ucmVjeWNsZWJpbi5kZXRhaWxzLmRlbGV0ZS5kb25lLm1lc3NhZ2UnLCB7aXRlbSA6IHRoaXMuaXRlbS50aXRsZX0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLl9zaG93RGVsZXRlRGlhbG9nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ldmVudFNlcnZpY2UudHJpZ2dlcihFbmFpb0V2ZW50LkRNU19PQkpFQ1RfUkVTVE9SRURfT1JfREVMRVRFRCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gIHByaXZhdGUgcHJlcGFyZUluZGV4RGF0YVByZXZpZXcoaXRlbTogRG1zT2JqZWN0LCBmb3JtRGF0YT86IGFueSkge1xuICAgIGNvbnN0IHtpZCwgZGF0YSwgdHlwZSwgY3JlYXRlZCwgbW9kaWZpZWQsIGNvbnRlbnQsIGNvbnRlbnRGaWxlTmFtZSwgY29udGVudEZpbGVTaXplLCB2ZXJzaW9ufSA9IGl0ZW07XG5cbiAgICByZXR1cm4gdGhpcy5zeXN0ZW1cbiAgICAgIC5nZXRPYmplY3RUeXBlRm9ybSh0eXBlLm5hbWUsICdFRElUJylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoZm9ybSA9PiB7XG4gICAgICAgICAgbGV0IGluZGV4RGF0YVByZXZpZXcgPSB7XG4gICAgICAgICAgICBmb3JtLFxuICAgICAgICAgICAgZGF0YTogZm9ybURhdGEgfHwgZGF0YVxuICAgICAgICAgIH07XG4gICAgICAgICAgbGV0IGJhc2VwYXJhbXM6IEJhc2VQYXJhbXMgPSB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIHR5cGU6IHR5cGUubmFtZSxcbiAgICAgICAgICAgIGNyZWF0ZWRPbjogbmV3IERhdGUoY3JlYXRlZC5vbiksXG4gICAgICAgICAgICBtb2RpZmllZE9uOiBuZXcgRGF0ZShtb2RpZmllZC5vbiksXG4gICAgICAgICAgICBjcmVhdGVkQnk6IGAke2NyZWF0ZWQuYnkudGl0bGV9ICgke2NyZWF0ZWQuYnkubmFtZX0pYCxcbiAgICAgICAgICAgIG1vZGlmaWVkQnk6IGAke21vZGlmaWVkLmJ5LnRpdGxlfSAoJHttb2RpZmllZC5ieS5uYW1lfSlgLFxuICAgICAgICAgICAgY29udGVudEZpbGVOYW1lOiBjb250ZW50RmlsZU5hbWUgPyBjb250ZW50RmlsZU5hbWUgOiBudWxsLFxuICAgICAgICAgICAgY29udGVudEZpbGVTaXplOiBjb250ZW50RmlsZVNpemUgPyBOdW1iZXIoY29udGVudEZpbGVTaXplKSA6IG51bGwsXG4gICAgICAgICAgICB2ZXJzaW9uOiB2ZXJzaW9uIHx8IDAsXG4gICAgICAgICAgICBtaW1lR3JvdXA6IGNvbnRlbnQgPyBjb250ZW50LmNvbnRlbnRzID8gY29udGVudC5jb250ZW50c1swXS5taW1lZ3JvdXAgOiBudWxsIDogbnVsbCxcbiAgICAgICAgICAgIGRpZ2VzdDogY29udGVudCA/IGNvbnRlbnQuY29udGVudHMgPyBjb250ZW50LmNvbnRlbnRzWzBdLmRpZ2VzdCA6IG51bGwgOiBudWxsLFxuICAgICAgICAgICAgY29udGVudElkOiBjb250ZW50ID8gY29udGVudC5jb250ZW50cyA/IGNvbnRlbnQuaWQgOiBudWxsIDogbnVsbCxcbiAgICAgICAgICAgIG1pbWVUeXBlOiBjb250ZW50ID8gY29udGVudC5jb250ZW50cyA/IGNvbnRlbnQuY29udGVudHNbMF0ubWltZXR5cGUgOiBudWxsIDogbnVsbCxcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiB7aW5kZXhEYXRhUHJldmlldywgYmFzZXBhcmFtc307XG4gICAgICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgb25IYXNFcnJvcihoYXNFcnJvciA9IGZhbHNlLCBub2Rtc29iamVjdCA9IGZhbHNlLCBzaG93TG9hZGVyID0gZmFsc2UpIHtcbiAgICB0aGlzLmhhc0Vycm9yID0gaGFzRXJyb3I7XG4gICAgdGhpcy5ub2Rtc29iamVjdCA9IG5vZG1zb2JqZWN0O1xuICAgIHRoaXMuc2hvd0xvYWRlciA9IHNob3dMb2FkZXI7XG4gICAgdGhpcy5oYXNDb250ZW50LmVtaXQoIWhhc0Vycm9yKTtcbiAgfVxuXG4gIGxvYWREbXNPYmplY3QocGFyYW1zOiBEbXNQYXJhbXMpIHtcbiAgICBpZiAocGFyYW1zKSB7XG4gICAgICBkZWxldGUgcGFyYW1zLnZlcnNpb247XG4gICAgfVxuICAgIC8vIGNoZWNrIGZvciB2YWxpZCBpZFxuICAgIHJldHVybiBwYXJhbXM/LmlkPy5sZW5ndGggPT09IDMyID8gdGhpcy5kbXNTZXJ2aWNlLmdldERtc09iamVjdEJ5UGFyYW1zKHBhcmFtcykgOiBvZihudWxsKTtcbiAgfVxuXG4gIGRvd25sb2FkT3JpZ2luYWxDb250ZW50KCkge1xuICAgIHRoaXMuYmFja2VuZC5kb3dubG9hZENvbnRlbnQoW3RoaXMuaXRlbV0sIG51bGwsIGZhbHNlLCB0cnVlKTtcbiAgfVxuXG4gIC8vIGV4ZWN1dGVkIHdoZW4gdGhlIGRtcyBvYmplY3QgY2hhbmdlZCBkdWUgdG8gc2F2aW5nIGl0cyBpbmRleGRhdGFcbiAgb25JbmRleERhdGFTYXZlZChmb3JtRGF0YSwgaXRlbSkge1xuICAgIGlmICghdGhpcy5pdGVtKSB7XG4gICAgICB0aGlzLmluZGV4RGF0YVByZXZpZXcgPSBudWxsO1xuICAgICAgdGhpcy5iYXNlcGFyYW1zID0gbnVsbDtcbiAgICB9XG4gICAgaWYgKCF0aGlzLml0ZW0yKSB7XG4gICAgICB0aGlzLmluZGV4RGF0YVByZXZpZXcyID0gbnVsbDtcbiAgICAgIHRoaXMuYmFzZXBhcmFtczIgPSBudWxsO1xuICAgIH1cbiAgICBpZiAoaXRlbSkge1xuICAgICAgdGhpcy5wcmVwYXJlSW5kZXhEYXRhUHJldmlldyhpdGVtLCBmb3JtRGF0YSlcbiAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICBpZiAoaXRlbSA9PT0gdGhpcy5pdGVtKSB7XG4gICAgICAgICAgICB0aGlzLmluZGV4RGF0YVByZXZpZXcgPSBkYXRhLmluZGV4RGF0YVByZXZpZXc7XG4gICAgICAgICAgICB0aGlzLmJhc2VwYXJhbXMgPSBkYXRhLmJhc2VwYXJhbXM7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaW5kZXhEYXRhUHJldmlldzIgPSBkYXRhLmluZGV4RGF0YVByZXZpZXc7XG4gICAgICAgICAgICB0aGlzLmJhc2VwYXJhbXMyID0gZGF0YS5iYXNlcGFyYW1zO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaXNWaXNpYmxlKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5wYW5lbE9yZGVyLm1hc3Rlci5pbmNsdWRlcyhpZCkgfHwgdGhpcy5wYW5lbE9yZGVyLnNsYXZlLmluY2x1ZGVzKGlkKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2FwYWJpbGl0aWVzID0gdGhpcy5jYXBhYmlsaXR5U2VydmljZS5nZXRDYXBhYmlsaXRpZXMoKTtcbiAgICB0aGlzLnVwZGF0ZUNvbnRlbnQoKTtcbiAgICB0aGlzLmV2ZW50U2VydmljZVxuICAgICAgLm9uKEVuYWlvRXZlbnQuRE1TX09CSkVDVF9VUERBVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmRhdGEgJiYgdGhpcy5pdGVtLmlkID09PSBldmVudC5kYXRhLmlkKSB7XG4gICAgICAgICAgdGhpcy5kbXNPYmplY3QgPSB0aGlzLmRtc1NlcnZpY2UuY3JlYXRlTG9jYWxDb3B5T2ZETVNPYmplY3QoZXZlbnQuZGF0YSk7XG4gICAgICAgICAgaWYgKHRoaXMucHJldmlldykge1xuICAgICAgICAgICAgdGhpcy5wcmV2aWV3LnJlZnJlc2goKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIC8vIGxldCBwYW5lbHMgPSB0aGlzLnRhYlBhbmVscy50b0FycmF5KCk7XG4gICAgLy8gdGhpcy50YWJQbHVnaW5zLmZvckVhY2gocCA9PiBwYW5lbHMgPSBwYW5lbHMuY29uY2F0KHAudGFiUGFuZWxzLnRvQXJyYXkoKSkpO1xuICAgIC8vIHRoaXMuZXh0ZXJuYWxQYW5lbHMucmVzZXQocGFuZWxzKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxvYWRlci1vdmVybGF5X19tYXNrXCIgKm5nSWY9XCJzaG93TG9hZGVyXCI+XG4gICAgPGVvLWxvYWRpbmctc3Bpbm5lciBjbGFzcz1cInJlY3ljbGViaW4tZGV0YWlsX19sb2FkZXJcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0gJiYgIWhhc0Vycm9yXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZCBlby1oZWFkLXRhYnNcIj5cbiAgICAgICAgPGhlYWRlciBjbGFzcz1cImVvLWhlYWRlclwiPlxuICAgICAgICAgICAgPGVvLWljb24gY2xhc3M9XCJlby1oZWFkZXItaWNvblwiIFtvYmplY3RUeXBlXT1cIml0ZW0udHlwZVwiIFtpY29uVGl0bGVdPVwiaXRlbS50eXBlLmxhYmVsXCI+PC9lby1pY29uPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW8taGVhZGVyLWluZm9cIj5cbiAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJlby1oZWFkZXItdGl0bGVcIj57e2l0ZW0udGl0bGV9fTwvaDI+XG4gICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiZW8taGVhZGVyLXN1YnRpdGxlXCI+e3tpdGVtLmRlc2NyaXB0aW9ufX08L2gzPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgPGVvLWljb24gKm5nSWY9XCJpdGVtLmNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfY29udGVudC1kb3dubG9hZC5zdmcnXCJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25UaXRsZV09XCIoJ2VvLmFjdGlvbi5kb3dubG9hZC5kbXMub2JqZWN0LmNvbnRlbnQubGFiZWwnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZE9yaWdpbmFsQ29udGVudCgpXCI+PC9lby1pY29uPlxuICAgICAgICAgICAgICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uXCIgW25nQ2xhc3NdPVwie2Rpc2FibGVkOiAhdGhpcy5pdGVtLnJpZ2h0cy5kZWxldGV9XCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfdHJhc2guc3ZnJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uVGl0bGVdPVwidGhpcy5pdGVtLnJpZ2h0cy5kZWxldGUgPyAoJ2VvLnJlY3ljbGViaW4uZGV0YWlscy5kZWxldGUudG9vbHRpcCcgfCB0cmFuc2xhdGUpIDogKCdlby5yZWN5Y2xlYmluLmRldGFpbHMuZGVsZXRlLmRpc2FibGVkLnRvb2x0aXAnIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93RGlhbG9nKCk7XCI+PC9lby1pY29uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInJlc3RvcmVGaWxlKClcIiB0cmFuc2xhdGU+ZW8ucmVjeWNsZWJpbi5kZXRhaWxzLnJlc3RvcmU8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJyZXN0b3JlRmlsZSh0cnVlKVwiIGNsYXNzPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZT5lby5yZWN5Y2xlYmluLmRldGFpbHMucmVzdG9yZW9wZW48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2hlYWRlcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZW8tYm9keVwiPlxuICAgICAgICA8eXZjLXNwbGl0LXRhYnMgW2xheW91dFNldHRpbmdzSURdPVwiY2FjaGVMYXlvdXRcIj5cblxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW3l2Y1RhYl09XCJ7aWQ6ICdzdW1tYXJ5JywgbGFiZWw6ICdlby5vYmplY3Quc3VtbWFyeS50aXRsZScgfCB0cmFuc2xhdGV9XCI+XG4gICAgICAgICAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5IFtpbmRleGRhdGFdPVwiaW5kZXhEYXRhUHJldmlld1wiIFtiYXNlcGFyYW1zXT1cImJhc2VwYXJhbXNcIlxuICAgICAgICAgICAgICAgICAgICBbZG1zT2JqZWN0XT1cIml0ZW1cIj48L2VvLWluZGV4ZGF0YS1zdW1tYXJ5PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFt5dmNUYWJdPVwie2lkOiAncHJldmlldycsIGxhYmVsOiAnZW8ub2JqZWN0LmNvbnRlbnQudGl0bGUnIHwgdHJhbnNsYXRlfVwiPlxuICAgICAgICAgICAgICAgIDxlby1tZWRpYSAqbmdJZj1cIml0ZW1cIiBbZG1zT2JqZWN0XT1cIml0ZW1cIiBbdXNlVmVyc2lvbl09XCJpdGVtLmlkID09PSBpdGVtLmNvbnRlbnQ/LmlkXCJcbiAgICAgICAgICAgICAgICAgICAgI3ZpZXdlcj48L2VvLW1lZGlhPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNWaXNpYmxlKCdoaXN0b3J5JylcIlxuICAgICAgICAgICAgICAgIFt5dmNUYWJdPVwie2lkOiAnaGlzdG9yeScsIGxhYmVsOiAnZW8ub2JqZWN0Lmhpc3RvcnkudGl0bGUnIHwgdHJhbnNsYXRlfVwiPlxuICAgICAgICAgICAgICAgIDxlby1vYmplY3QtaGlzdG9yeSBbcGFyYW1zXT1cIntpZDogaXRlbS5pZCwgdHlwZTogaXRlbS50eXBlPy5xbmFtZX1cIj5cbiAgICAgICAgICAgICAgICA8L2VvLW9iamVjdC1oaXN0b3J5PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC95dmMtc3BsaXQtdGFicz5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48ZW8tZGlhbG9nIFt0aXRsZV09XCInZW8ucmVjeWNsZWJpbi5kZXRhaWxzLmRlbGV0ZS5kaWFsb2cudGl0bGUnIHwgdHJhbnNsYXRlXCIgWyh2aXNpYmxlKV09XCJzaG93RGVsZXRlRGlhbG9nXCJcbiAgICBbZm9jdXNPblNob3ddPVwiZmFsc2VcIiBbbWluV2lkdGhdPVwiNDAwXCIgW3N0eWxlQ2xhc3NdPVwiJ3JlY3ljbGViaW4tZGVsZXRlX19kaWFsb2cnXCI+XG5cbiAgICA8ZGl2PlxuICAgICAgICA8c3Bhbj57eydlby5yZWN5Y2xlYmluLmRldGFpbHMuZGVsZXRlLmRpYWxvZy5tZXNzYWdlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxuICAgICAgICA8YnI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicmVjeWNsZWJpbi1kZWxldGVfX2RpYWxvZ193YXJuaW5nXCI+e3snZW8ucmVjeWNsZWJpbi5kZXRhaWxzLmRlbGV0ZS5kaWFsb2cubWVzc2FnZS53YXJuaW5nJyB8XG4gICAgICAgICAgICB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnMgcmVjeWNsZWJpbi1kZWxldGUtLWFjdGlvbi1idXR0b25zIGZsZXgtcm93XCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnV0dG9uIGNhbmNlbFwiIChjbGljayk9XCJzaG93RGVsZXRlRGlhbG9nID0gZmFsc2VcIlxuICAgICAgICAgICAgdHJhbnNsYXRlPmVvLnJlY3ljbGViaW4uZGV0YWlscy5kZWxldGUuZGlhbG9nLmNhbmNlbDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAjY29uZmlybURlbGV0ZSAoY2xpY2spPVwiZGVsZXRlRG1zT2JqZWN0KClcIiBjbGFzcz1cImJ1dHRvbiBwcmltYXJ5XCJcbiAgICAgICAgICAgIHRyYW5zbGF0ZT5lby5yZWN5Y2xlYmluLmRldGFpbHMuZGVsZXRlLmRpYWxvZy5kZWxldGU8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZW8tZGlhbG9nPlxuIl19