@eo-sdk/client 11.9.0-rc.1 → 11.10.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 (284) hide show
  1. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
  2. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts +1 -0
  3. package/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.d.ts.map +1 -1
  4. package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts +1 -0
  5. package/app/eo-client/dashboard/widgets/charts-widget/icharts.d.ts.map +1 -1
  6. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-setup/signature-statistics-setup.component.d.ts.map +1 -1
  7. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +1 -0
  8. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  9. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts +4 -2
  10. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  11. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts +1 -2
  12. package/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.d.ts.map +1 -1
  13. package/app/eo-framework/form-elements/number-range/number-range.component.d.ts +7 -2
  14. package/app/eo-framework/form-elements/number-range/number-range.component.d.ts.map +1 -1
  15. package/app/eo-framework/form-elements/organization/organization.component.d.ts +10 -0
  16. package/app/eo-framework/form-elements/organization/organization.component.d.ts.map +1 -1
  17. package/app/eo-framework/inbox-details/inbox-details.component.d.ts +28 -5
  18. package/app/eo-framework/inbox-details/inbox-details.component.d.ts.map +1 -1
  19. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts +0 -1
  20. package/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.d.ts.map +1 -1
  21. package/app/eo-framework/object-form/object-form-helper.service.d.ts.map +1 -1
  22. package/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.d.ts.map +1 -1
  23. package/assets/_default/i18n/de.json +5 -2
  24. package/assets/_default/i18n/en.json +12 -9
  25. package/assets/_default/i18n/ja.json +1132 -0
  26. package/assets/_default/i18n/ko.json +1132 -0
  27. package/assets/_default/i18n/th.json +1132 -0
  28. package/assets/_default/i18n/zh.json +1132 -0
  29. package/esm2022/app/eo-client/about-state/about-state.component.mjs +6 -6
  30. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +3 -3
  31. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +7 -5
  32. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +82 -119
  33. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
  34. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +3 -3
  35. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +3 -3
  36. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +3 -3
  37. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +3 -3
  38. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +3 -3
  39. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +6 -6
  40. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +3 -3
  41. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +3 -3
  42. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +3 -3
  43. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +3 -3
  44. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +3 -3
  45. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +3 -3
  46. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +3 -3
  47. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +3 -3
  48. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +5 -5
  49. package/esm2022/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-setup/signature-statistics-setup.component.mjs +7 -7
  50. package/esm2022/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-widget.component.mjs +3 -3
  51. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +3 -3
  52. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +3 -3
  53. package/esm2022/app/eo-client/eo-client-routing.module.mjs +4 -4
  54. package/esm2022/app/eo-client/eo-client.module.mjs +4 -4
  55. package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +3 -3
  56. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +3 -3
  57. package/esm2022/app/eo-client/inbox-state/inbox-state-routing.module.mjs +4 -4
  58. package/esm2022/app/eo-client/inbox-state/inbox-state.module.mjs +4 -4
  59. package/esm2022/app/eo-client/login/login.component.mjs +3 -3
  60. package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +3 -3
  61. package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  62. package/esm2022/app/eo-client/object-state/object-state-routing.module.mjs +4 -4
  63. package/esm2022/app/eo-client/object-state/object-state-service/object-state.service.mjs +3 -3
  64. package/esm2022/app/eo-client/object-state/object-state.module.mjs +4 -4
  65. package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +3 -3
  66. package/esm2022/app/eo-client/prepare-state/prepare-state-routing.module.mjs +4 -4
  67. package/esm2022/app/eo-client/prepare-state/prepare-state.module.mjs +4 -4
  68. package/esm2022/app/eo-client/process-state/process-state.component.mjs +3 -3
  69. package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +3 -3
  70. package/esm2022/app/eo-client/result-state/result-state.component.mjs +3 -3
  71. package/esm2022/app/eo-client/settings/settings.component.mjs +3 -3
  72. package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +3 -3
  73. package/esm2022/app/eo-client/version-state/version-state.component.mjs +3 -3
  74. package/esm2022/app/eo-framework/accordion/accordion.module.mjs +4 -4
  75. package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +3 -3
  76. package/esm2022/app/eo-framework/actions/action-menu/action-component-anchor/action-component-anchor.directive.mjs +3 -3
  77. package/esm2022/app/eo-framework/actions/action-menu/action-menu.component.mjs +3 -3
  78. package/esm2022/app/eo-framework/actions/action-service/action.service.mjs +3 -3
  79. package/esm2022/app/eo-framework/actions/action.module.mjs +4 -4
  80. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +3 -3
  81. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.mjs +3 -3
  82. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +3 -3
  83. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.mjs +3 -3
  84. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.mjs +3 -3
  85. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.mjs +3 -3
  86. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-action.mjs +3 -3
  87. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +3 -3
  88. package/esm2022/app/eo-framework/actions/actions/copy-action/copy-action.mjs +3 -3
  89. package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +3 -3
  90. package/esm2022/app/eo-framework/actions/actions/cut-action/cut-action.mjs +3 -3
  91. package/esm2022/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +3 -3
  92. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-action.mjs +3 -3
  93. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-prepared-action.mjs +3 -3
  94. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.mjs +3 -3
  95. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content-action.mjs +3 -3
  96. package/esm2022/app/eo-framework/actions/actions/download-action/download-action.mjs +3 -3
  97. package/esm2022/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.mjs +3 -3
  98. package/esm2022/app/eo-framework/actions/actions/email/email/email.component.mjs +3 -3
  99. package/esm2022/app/eo-framework/actions/actions/email/email-action.mjs +3 -3
  100. package/esm2022/app/eo-framework/actions/actions/favorite-action/favorite-action.mjs +3 -3
  101. package/esm2022/app/eo-framework/actions/actions/finalize/definalize-action.mjs +3 -3
  102. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-action.mjs +4 -4
  103. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.mjs +3 -3
  104. package/esm2022/app/eo-framework/actions/actions/open-context-action/open-context-action.mjs +3 -3
  105. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.component.mjs +3 -3
  106. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.mjs +3 -3
  107. package/esm2022/app/eo-framework/actions/actions/open-versions-action/open-versions-action.mjs +3 -3
  108. package/esm2022/app/eo-framework/actions/actions/remove-subscription-action/remove-subscription-action.mjs +3 -3
  109. package/esm2022/app/eo-framework/actions/actions/restore-version-action/restore-version-action.mjs +3 -3
  110. package/esm2022/app/eo-framework/actions/actions/return-task-action/return-task/return-task.component.mjs +3 -3
  111. package/esm2022/app/eo-framework/actions/actions/return-task-action/return-task-action.mjs +3 -3
  112. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +3 -3
  113. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object-action.mjs +3 -3
  114. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +4 -4
  115. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.mjs +3 -3
  116. package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
  117. package/esm2022/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +3 -3
  118. package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-action.mjs +3 -3
  119. package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-object-action/unlock-object-action.component.mjs +3 -3
  120. package/esm2022/app/eo-framework/actions/actions/update-resubmission-action/update-resubmission-action.mjs +3 -3
  121. package/esm2022/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.mjs +3 -3
  122. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +3 -3
  123. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow-action.component.mjs +3 -3
  124. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +3 -3
  125. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +3 -3
  126. package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +3 -3
  127. package/esm2022/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +3 -3
  128. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +3 -3
  129. package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
  130. package/esm2022/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +3 -3
  131. package/esm2022/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +3 -3
  132. package/esm2022/app/eo-framework/app-shell/app-shell-routing.module.mjs +4 -4
  133. package/esm2022/app/eo-framework/app-shell/app-shell.module.mjs +4 -4
  134. package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +3 -3
  135. package/esm2022/app/eo-framework/cta/component/cta.component.mjs +3 -3
  136. package/esm2022/app/eo-framework/cta/cta.module.mjs +4 -4
  137. package/esm2022/app/eo-framework/eo-framework.module.mjs +4 -4
  138. package/esm2022/app/eo-framework/error/error.module.mjs +4 -4
  139. package/esm2022/app/eo-framework/error/error404/error404.component.mjs +3 -3
  140. package/esm2022/app/eo-framework/error/not-found/not-found.component.mjs +3 -3
  141. package/esm2022/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +3 -3
  142. package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +3 -3
  143. package/esm2022/app/eo-framework/form-elements/date/date.component.mjs +3 -3
  144. package/esm2022/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +3 -3
  145. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +19 -10
  146. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +8 -9
  147. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.service.mjs +3 -3
  148. package/esm2022/app/eo-framework/form-elements/form-elements.module.mjs +4 -4
  149. package/esm2022/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
  150. package/esm2022/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.mjs +3 -3
  151. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +3 -3
  152. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +3 -3
  153. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +3 -3
  154. package/esm2022/app/eo-framework/form-elements/id-reference/service/reference-finder.service.mjs +3 -3
  155. package/esm2022/app/eo-framework/form-elements/number/number.component.mjs +3 -3
  156. package/esm2022/app/eo-framework/form-elements/number-range/number-range.component.mjs +12 -6
  157. package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +34 -14
  158. package/esm2022/app/eo-framework/form-elements/password/password.component.mjs +3 -3
  159. package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
  160. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +3 -3
  161. package/esm2022/app/eo-framework/frame/frame.component.mjs +3 -3
  162. package/esm2022/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +3 -3
  163. package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +3 -3
  164. package/esm2022/app/eo-framework/grid/extensions/empty/empty.component.mjs +3 -3
  165. package/esm2022/app/eo-framework/grid/extensions/filter/abstract-filter.component.mjs +3 -3
  166. package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +3 -3
  167. package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +3 -3
  168. package/esm2022/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +3 -3
  169. package/esm2022/app/eo-framework/grid/extensions/pagination/pagination.component.mjs +3 -3
  170. package/esm2022/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.mjs +3 -3
  171. package/esm2022/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +3 -3
  172. package/esm2022/app/eo-framework/grid/extensions/services/list-settings.service.mjs +3 -3
  173. package/esm2022/app/eo-framework/grid/extensions/total-count/total-count.component.mjs +3 -3
  174. package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +3 -3
  175. package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +3 -3
  176. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
  177. package/esm2022/app/eo-framework/grid/filters/list-filter.component.mjs +3 -3
  178. package/esm2022/app/eo-framework/grid/filters/organization-filter.component.mjs +3 -3
  179. package/esm2022/app/eo-framework/grid/grid.component.mjs +3 -3
  180. package/esm2022/app/eo-framework/grid/grid.module.mjs +4 -4
  181. package/esm2022/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.mjs +3 -3
  182. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +54 -14
  183. package/esm2022/app/eo-framework/list-container/list-container.component.mjs +3 -3
  184. package/esm2022/app/eo-framework/list-container/list-container.module.mjs +4 -4
  185. package/esm2022/app/eo-framework/media/content-preview.service.mjs +3 -3
  186. package/esm2022/app/eo-framework/media/media.component.mjs +3 -3
  187. package/esm2022/app/eo-framework/media/media.module.mjs +4 -4
  188. package/esm2022/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +3 -3
  189. package/esm2022/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +3 -3
  190. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +3 -3
  191. package/esm2022/app/eo-framework/object-details/object-details.module.mjs +4 -4
  192. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter-pipe/history-filter.pipe.mjs +3 -3
  193. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.component.mjs +3 -3
  194. package/esm2022/app/eo-framework/object-details/object-history/object-history.component.mjs +3 -3
  195. package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +3 -3
  196. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.mjs +3 -3
  197. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +5 -5
  198. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +3 -3
  199. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +4 -12
  200. package/esm2022/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +3 -3
  201. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +3 -3
  202. package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
  203. package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +3 -3
  204. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +5 -5
  205. package/esm2022/app/eo-framework/object-form/object-form.module.mjs +4 -4
  206. package/esm2022/app/eo-framework/object-state-details/object-state-details.component.mjs +3 -3
  207. package/esm2022/app/eo-framework/plugins/plugin.component.mjs +9 -9
  208. package/esm2022/app/eo-framework/plugins/plugin.directive.mjs +3 -3
  209. package/esm2022/app/eo-framework/plugins/plugin.service.mjs +3 -3
  210. package/esm2022/app/eo-framework/plugins/plugins.module.mjs +4 -4
  211. package/esm2022/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.mjs +3 -3
  212. package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +3 -3
  213. package/esm2022/app/eo-framework/process/details/process-details.component.mjs +3 -3
  214. package/esm2022/app/eo-framework/process/history/process-history.component.mjs +3 -3
  215. package/esm2022/app/eo-framework/process/process-file/process-file.component.mjs +3 -3
  216. package/esm2022/app/eo-framework/process-form/process-form.component.mjs +3 -3
  217. package/esm2022/app/eo-framework/process-form/process-form.module.mjs +4 -4
  218. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
  219. package/esm2022/app/eo-framework/quick-search/quick-search.module.mjs +4 -4
  220. package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +3 -3
  221. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +3 -3
  222. package/esm2022/app/eo-framework/result-list/result-list.module.mjs +4 -4
  223. package/esm2022/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.mjs +3 -3
  224. package/esm2022/app/eo-framework/settings/permissions/permissions.component.mjs +3 -3
  225. package/esm2022/app/eo-framework/settings/settings.module.mjs +4 -4
  226. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.mjs +3 -3
  227. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.mjs +3 -3
  228. package/esm2022/app/eo-framework/shortcuts/shortcuts.directive.mjs +3 -3
  229. package/esm2022/app/eo-framework/shortcuts/shortcuts.module.mjs +4 -4
  230. package/esm2022/app/eo-framework/shortcuts/shortcuts.service.mjs +3 -3
  231. package/esm2022/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +3 -3
  232. package/esm2022/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.mjs +3 -3
  233. package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +3 -3
  234. package/esm2022/app/eo-framework/stored-query/stored-query.module.mjs +4 -4
  235. package/esm2022/app/eo-framework/tree/tree-node/tree-node.component.mjs +5 -5
  236. package/esm2022/app/eo-framework/tree/tree.component.mjs +3 -3
  237. package/esm2022/app/eo-framework/tree/tree.module.mjs +4 -4
  238. package/esm2022/app/eo-framework/ui/clipboard/clipboard.component.mjs +3 -3
  239. package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +9 -9
  240. package/esm2022/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +3 -3
  241. package/esm2022/app/eo-framework/ui/error-message/error-message.component.mjs +3 -3
  242. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +5 -5
  243. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +22 -12
  244. package/esm2022/app/eo-framework/ui/loading-spinner/loading-spinner.component.mjs +3 -3
  245. package/esm2022/app/eo-framework/ui/outside-click/outside-click.directive.mjs +3 -3
  246. package/esm2022/app/eo-framework/ui/overlay/overlay.component.mjs +3 -3
  247. package/esm2022/app/eo-framework/ui/query-scope-select/query-scope-select.component.mjs +3 -3
  248. package/esm2022/app/eo-framework/ui/router-link/router-link.directive.mjs +3 -3
  249. package/esm2022/app/eo-framework/ui/rtl-aware/rtl-aware.directive.mjs +3 -3
  250. package/esm2022/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
  251. package/esm2022/app/eo-framework/ui/ui.module.mjs +4 -4
  252. package/esm2022/app/eo-framework/ui/user-avatar/user-avatar.component.mjs +3 -3
  253. package/esm2022/app/eo-framework/upload-overlay/upload-overlay-guard.service.mjs +3 -3
  254. package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +5 -5
  255. package/esm2022/app/eo-framework/util/directive/prevent-double-click.directive.mjs +3 -3
  256. package/esm2022/app/eo-framework/util/directive/trap-focus.directive.mjs +3 -3
  257. package/esm2022/app/eo-framework/util/services/utilities.service.mjs +3 -3
  258. package/esm2022/app/eo-framework/util/sortable/order-by.pipe.mjs +3 -3
  259. package/esm2022/app/eo-framework/util/util.module.mjs +4 -4
  260. package/esm2022/app/eo-framework-core/agent/agent.service.mjs +3 -3
  261. package/esm2022/app/eo-framework-core/api/grid.service.mjs +3 -3
  262. package/esm2022/app/eo-framework-core/api/plugins.service.mjs +3 -3
  263. package/esm2022/app/eo-framework-core/empty-state/empty-state.service.mjs +3 -3
  264. package/esm2022/app/eo-framework-core/eo-framework-core.module.mjs +4 -4
  265. package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +3 -3
  266. package/esm2022/app/eo-framework-core/layout/layout.service.mjs +3 -3
  267. package/esm2022/app/eo-framework-core/location/location.service.mjs +3 -3
  268. package/esm2022/app/eo-framework-core/pending-changes/pending-changes-guard.service.mjs +3 -3
  269. package/esm2022/app/eo-framework-core/pending-changes/pending-changes.service.mjs +3 -3
  270. package/esm2022/app/eo-framework-core/pipes/filesize.pipe.mjs +3 -3
  271. package/esm2022/app/eo-framework-core/pipes/keys.pipe.mjs +3 -3
  272. package/esm2022/app/eo-framework-core/pipes/locale-date.pipe.mjs +3 -3
  273. package/esm2022/app/eo-framework-core/pipes/locale-number.pipe.mjs +12 -12
  274. package/esm2022/app/eo-framework-core/pipes/pipes.module.mjs +4 -4
  275. package/esm2022/app/eo-framework-core/pipes/safe-html.pipe.mjs +3 -3
  276. package/esm2022/app/eo-framework-core/references/reference.service.mjs +3 -3
  277. package/esm2022/app/eo-framework-core/route-guards/auth/auth-guard.service.mjs +3 -3
  278. package/esm2022/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.mjs +3 -3
  279. package/esm2022/app/eo-framework-core/search/app-search.service.mjs +3 -3
  280. package/esm2022/app/eo-framework-core/selection/selection.service.mjs +3 -3
  281. package/esm2022/app/eo-framework-core/title/page-title.service.mjs +3 -3
  282. package/fesm2022/eo-sdk-client.mjs +1035 -995
  283. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  284. package/package.json +12 -12
@@ -184,13 +184,23 @@ let IndexdataSummaryComponent = class IndexdataSummaryComponent {
184
184
  return Object.keys(data)
185
185
  .filter((key) => Array.isArray(data[key]))
186
186
  .map((key) => {
187
- const { type, label } = findTypeAndLabelByName(formElements, key);
188
- return {
189
- label,
190
- length: data[key].length,
191
- content: data[key],
192
- type,
193
- };
187
+ const typeLabelObj = findTypeAndLabelByName(formElements, key);
188
+ if (typeLabelObj) {
189
+ return {
190
+ label: typeLabelObj.label,
191
+ length: data[key].length,
192
+ content: data[key],
193
+ type: typeLabelObj.type,
194
+ };
195
+ }
196
+ else {
197
+ return {
198
+ label: '',
199
+ length: data[key].length,
200
+ content: data[key],
201
+ type: '',
202
+ };
203
+ }
194
204
  });
195
205
  };
196
206
  /**
@@ -270,16 +280,16 @@ let IndexdataSummaryComponent = class IndexdataSummaryComponent {
270
280
  this.isUserAllowedToShowStorageSection = this.userService.getCurrentUser().hasPrivilege('MANAGE_STORAGES');
271
281
  this.getCachedAccordionState();
272
282
  }
273
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: IndexdataSummaryComponent, deps: [{ token: i1.TranslateService }, { token: i2.GridService }, { token: i1.DmsService }, { token: i1.UserService }, { token: i0.ChangeDetectorRef }, { token: i1.LocalStorageService }], target: i0.ɵɵFactoryTarget.Component }); }
274
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.4", type: IndexdataSummaryComponent, selector: "eo-indexdata-summary", inputs: { baseparams: "baseparams", enableVersions: "enableVersions", isChangesTab: "isChangesTab", indexdata: "indexdata", dmsObject: "dmsObject", diff: "diff" }, ngImport: i0, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\n<div class=\"indexdata-summary\">\n\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n\n @if (item?.contextFolder) {\n <eo-simple-accordion [header]=\"item.contextFolder?.type?.label + ':'\"\n [item]=\"item\" [selected]=\"infoFolderAcc\" (selectChange)=\"onContextfolderToggle($event)\">\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues2\"\n [label]=\"item.label\" [value]=\"item.data\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </eo-simple-accordion>\n }\n </div>\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\n <eo-simple-accordion #dataAccordion\n [header]=\"('eo.indexdata.summary.more' | translate)\"\n [selected]=\"moreInfoAcc\"\n (selectChange)=\"onMoreInfoToggle($event)\">\n <div class=\"data\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modified' | translate\"\n [value]=\"baseparams.modifiedOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modifier' | translate\"\n [value]=\"baseparams.modifiedBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.created' | translate\"\n [value]=\"baseparams.createdOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.creator' | translate\"\n [value]=\"baseparams.createdBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.object.summary.version' | translate\"\n [value]=\"getVersionLink(baseparams.version)\"\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\n </eo-indexdata-summary-entry>\n\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filename' | translate\"\n [value]=\"baseparams.contentFileName\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filesize' | translate\"\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetypegroup' | translate\"\n [value]=\"baseparams.mimeGroup\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\n [value]=\"baseparams.mimeType\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.id' | translate\"\n [value]=\"baseparams.id\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.contentId' | translate\"\n [value]=\"baseparams.contentId\">\n </eo-indexdata-summary-entry>\n </div>\n\n @if(storageInfos?.length && isUserAllowedToShowStorageSection && !isChangesTab) {\n <div class=\"storageinfo\">\n <eo-simple-accordion [header]=\"('eo.state.settings.storageinfo' | translate)\"\n [selected]=\"dataInfoAcc\"\n (selectChange)=\"onStorageInfoToggle($event)\">\n\n <div class=\"storageinfo-entry baseparams-section\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.global.baseparam.digest' | translate\"\n [value]=\"baseparams.digest\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.retention' | translate\"\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\n [value]=\"stInfo.permanence\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.setname' | translate\"\n [value]=\"stInfo.setname\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\n [value]=\"stInfo.storagename\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.location' | translate\"\n [value]=\"stInfo.location\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n }\n\n</div>\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:2em;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:max-content}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "component", type: i5.IndexdataSummaryEntryComponent, selector: "eo-indexdata-summary-entry", inputs: ["label", "item", "value", "className"], outputs: ["onValueClicked"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.FileSizePipe, name: "fileSize" }, { kind: "pipe", type: i8.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
283
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: IndexdataSummaryComponent, deps: [{ token: i1.TranslateService }, { token: i2.GridService }, { token: i1.DmsService }, { token: i1.UserService }, { token: i0.ChangeDetectorRef }, { token: i1.LocalStorageService }], target: i0.ɵɵFactoryTarget.Component }); }
284
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: IndexdataSummaryComponent, selector: "eo-indexdata-summary", inputs: { baseparams: "baseparams", enableVersions: "enableVersions", isChangesTab: "isChangesTab", indexdata: "indexdata", dmsObject: "dmsObject", diff: "diff" }, ngImport: i0, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\n<div class=\"indexdata-summary\">\n\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n\n @if (item?.contextFolder && !diffActive) {\n <eo-simple-accordion [header]=\"item.contextFolder?.type?.label + ':'\"\n [item]=\"item\" [selected]=\"infoFolderAcc\" (selectChange)=\"onContextfolderToggle($event)\">\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues2\"\n [label]=\"item.label\" [value]=\"item.data\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </eo-simple-accordion>\n }\n </div>\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\n <eo-simple-accordion #dataAccordion\n [header]=\"('eo.indexdata.summary.more' | translate)\"\n [selected]=\"moreInfoAcc\"\n (selectChange)=\"onMoreInfoToggle($event)\">\n <div class=\"data\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modified' | translate\"\n [value]=\"baseparams.modifiedOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modifier' | translate\"\n [value]=\"baseparams.modifiedBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.created' | translate\"\n [value]=\"baseparams.createdOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.creator' | translate\"\n [value]=\"baseparams.createdBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.object.summary.version' | translate\"\n [value]=\"getVersionLink(baseparams.version)\"\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\n </eo-indexdata-summary-entry>\n\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filename' | translate\"\n [value]=\"baseparams.contentFileName\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filesize' | translate\"\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetypegroup' | translate\"\n [value]=\"baseparams.mimeGroup\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\n [value]=\"baseparams.mimeType\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.id' | translate\"\n [value]=\"baseparams.id\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.contentId' | translate\"\n [value]=\"baseparams.contentId\">\n </eo-indexdata-summary-entry>\n </div>\n\n @if(storageInfos?.length && isUserAllowedToShowStorageSection && !isChangesTab) {\n <div class=\"storageinfo\">\n <eo-simple-accordion [header]=\"('eo.state.settings.storageinfo' | translate)\"\n [selected]=\"dataInfoAcc\"\n (selectChange)=\"onStorageInfoToggle($event)\">\n\n <div class=\"storageinfo-entry baseparams-section\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.global.baseparam.digest' | translate\"\n [value]=\"baseparams.digest\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.retention' | translate\"\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\n [value]=\"stInfo.permanence\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.setname' | translate\"\n [value]=\"stInfo.setname\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\n [value]=\"stInfo.storagename\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.location' | translate\"\n [value]=\"stInfo.location\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n }\n\n</div>\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:2em;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:max-content}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SimpleAccordionComponent, selector: "eo-simple-accordion", inputs: ["header", "item", "styles", "headerClass", "selected"], outputs: ["selectChange"] }, { kind: "component", type: i5.IndexdataSummaryEntryComponent, selector: "eo-indexdata-summary-entry", inputs: ["label", "item", "value", "className"], outputs: ["onValueClicked"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.FileSizePipe, name: "fileSize" }, { kind: "pipe", type: i8.LocaleDatePipe, name: "localeDate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
275
285
  };
276
286
  IndexdataSummaryComponent = IndexdataSummaryComponent_1 = __decorate([
277
287
  UntilDestroy()
278
288
  ], IndexdataSummaryComponent);
279
289
  export { IndexdataSummaryComponent };
280
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: IndexdataSummaryComponent, decorators: [{
290
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: IndexdataSummaryComponent, decorators: [{
281
291
  type: Component,
282
- args: [{ selector: 'eo-indexdata-summary', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\n<div class=\"indexdata-summary\">\n\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n\n @if (item?.contextFolder) {\n <eo-simple-accordion [header]=\"item.contextFolder?.type?.label + ':'\"\n [item]=\"item\" [selected]=\"infoFolderAcc\" (selectChange)=\"onContextfolderToggle($event)\">\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues2\"\n [label]=\"item.label\" [value]=\"item.data\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </eo-simple-accordion>\n }\n </div>\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\n <eo-simple-accordion #dataAccordion\n [header]=\"('eo.indexdata.summary.more' | translate)\"\n [selected]=\"moreInfoAcc\"\n (selectChange)=\"onMoreInfoToggle($event)\">\n <div class=\"data\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modified' | translate\"\n [value]=\"baseparams.modifiedOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modifier' | translate\"\n [value]=\"baseparams.modifiedBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.created' | translate\"\n [value]=\"baseparams.createdOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.creator' | translate\"\n [value]=\"baseparams.createdBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.object.summary.version' | translate\"\n [value]=\"getVersionLink(baseparams.version)\"\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\n </eo-indexdata-summary-entry>\n\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filename' | translate\"\n [value]=\"baseparams.contentFileName\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filesize' | translate\"\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetypegroup' | translate\"\n [value]=\"baseparams.mimeGroup\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\n [value]=\"baseparams.mimeType\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.id' | translate\"\n [value]=\"baseparams.id\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.contentId' | translate\"\n [value]=\"baseparams.contentId\">\n </eo-indexdata-summary-entry>\n </div>\n\n @if(storageInfos?.length && isUserAllowedToShowStorageSection && !isChangesTab) {\n <div class=\"storageinfo\">\n <eo-simple-accordion [header]=\"('eo.state.settings.storageinfo' | translate)\"\n [selected]=\"dataInfoAcc\"\n (selectChange)=\"onStorageInfoToggle($event)\">\n\n <div class=\"storageinfo-entry baseparams-section\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.global.baseparam.digest' | translate\"\n [value]=\"baseparams.digest\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.retention' | translate\"\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\n [value]=\"stInfo.permanence\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.setname' | translate\"\n [value]=\"stInfo.setname\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\n [value]=\"stInfo.storagename\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.location' | translate\"\n [value]=\"stInfo.location\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n }\n\n</div>\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:2em;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:max-content}\n"] }]
292
+ args: [{ selector: 'eo-indexdata-summary', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"empty-container\" *ngIf=\"emptyState\">{{'eo.indexdata.summary.no.change' | translate}}</div>\n<div class=\"indexdata-summary\">\n\n <div class=\"core-section\" *ngIf=\"coreValues?.length\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of coreValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n\n @if (item?.contextFolder && !diffActive) {\n <eo-simple-accordion [header]=\"item.contextFolder?.type?.label + ':'\"\n [item]=\"item\" [selected]=\"infoFolderAcc\" (selectChange)=\"onContextfolderToggle($event)\">\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues2\"\n [label]=\"item.label\" [value]=\"item.data\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </eo-simple-accordion>\n }\n </div>\n <div class=\"data-section\" *ngIf=\"dataValues && dataValues.length\">\n <eo-simple-accordion #dataAccordion\n [header]=\"('eo.indexdata.summary.more' | translate)\"\n [selected]=\"moreInfoAcc\"\n (selectChange)=\"onMoreInfoToggle($event)\">\n <div class=\"data\">\n\n <eo-indexdata-summary-entry *ngFor=\"let item of dataValues\"\n [label]=\"item.label\"\n [value]=\"item._value\"\n (onValueClicked)=\"onValueClick($event, item)\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n\n <div class=\"baseparams-section\" *ngIf=\"baseparams\">\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.modifiedOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modified' | translate\"\n [value]=\"baseparams.modifiedOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.modifier' | translate\"\n [value]=\"baseparams.modifiedBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.createdOn && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.created' | translate\"\n [value]=\"baseparams.createdOn | localeDate\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.creator' | translate\"\n [value]=\"baseparams.createdBy\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.object.summary.version' | translate\"\n [value]=\"getVersionLink(baseparams.version)\"\n (onValueClicked)=\"onValueClick($event, {version: baseparams.version})\">\n </eo-indexdata-summary-entry>\n\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filename' | translate\"\n [value]=\"baseparams.contentFileName\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentFileSize\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.filesize' | translate\"\n [value]=\"diffActive ? {val1: baseparams.contentFileSize['val1'] | fileSize, val2: baseparams.contentFileSize['val2'] | fileSize} : (baseparams.contentFileSize | fileSize)\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetypegroup' | translate\"\n [value]=\"baseparams.mimeGroup\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.mimetype' | translate\"\n [value]=\"baseparams.mimeType\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"!diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.id' | translate\"\n [value]=\"baseparams.id\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry *ngIf=\"baseparams.contentId !== baseparams.id && !diffActive\"\n [className]=\"'baseparams-section'\"\n [label]=\"'eo.global.baseparam.contentId' | translate\"\n [value]=\"baseparams.contentId\">\n </eo-indexdata-summary-entry>\n </div>\n\n @if(storageInfos?.length && isUserAllowedToShowStorageSection && !isChangesTab) {\n <div class=\"storageinfo\">\n <eo-simple-accordion [header]=\"('eo.state.settings.storageinfo' | translate)\"\n [selected]=\"dataInfoAcc\"\n (selectChange)=\"onStorageInfoToggle($event)\">\n\n <div class=\"storageinfo-entry baseparams-section\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.global.baseparam.digest' | translate\"\n [value]=\"baseparams.digest\">\n </eo-indexdata-summary-entry>\n </div>\n\n <div class=\"storageinfo-entry baseparams-section\" *ngFor=\"let stInfo of storageInfos; trackBy: trackByIndex\">\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.retention' | translate\"\n [value]=\"stInfo.retention | localeDate : 'eoShortDate'\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.permanence' | translate\"\n [value]=\"stInfo.permanence\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.setname' | translate\"\n [value]=\"stInfo.setname\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.storagename' | translate\"\n [value]=\"stInfo.storagename\">\n </eo-indexdata-summary-entry>\n\n <eo-indexdata-summary-entry [className]=\"'storageinfo-subentry'\"\n [label]=\"'eo.object.storageinfo.location' | translate\"\n [value]=\"stInfo.location\">\n </eo-indexdata-summary-entry>\n </div>\n </eo-simple-accordion>\n </div>\n }\n\n</div>\n", styles: [":host{display:block}:host .core-section,:host .data-section,:host .baseparams-section{list-style:none;margin:0;line-height:1.5em}:host .core-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section{margin-bottom:calc(var(--app-pane-padding) / 2)}:host .data-section .data{margin-bottom:var(--app-pane-padding);margin-top:calc(var(--app-pane-padding) / 2)}:host .storageinfo{margin-top:var(--app-pane-padding)}:host .storageinfo .storageinfo-entry{margin-top:var(--app-pane-padding)}:host .empty-container{position:absolute;inset:2em;overflow:hidden;display:flex;justify-content:center;align-items:center}:host ::ng-deep .chip{width:max-content}\n"] }]
283
293
  }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.GridService }, { type: i1.DmsService }, { type: i1.UserService }, { type: i0.ChangeDetectorRef }, { type: i1.LocalStorageService }], propDecorators: { baseparams: [{
284
294
  type: Input
285
295
  }], enableVersions: [{
@@ -293,4 +303,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
293
303
  }], diff: [{
294
304
  type: Input
295
305
  }] } });
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUF3RixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFMUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7QUFVNUQsSUFBTSx5QkFBeUIsR0FBL0IsTUFBTSx5QkFBeUI7O0lBc0JwQyxJQUNJLFNBQVMsQ0FBQyxFQUFhO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENB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ZX0gZnJvbSAnLi8uLi8uLi91dGlsL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYXNlUGFyYW1zLCBEbXNPYmplY3QsIERtc1NlcnZpY2UsIExvY2FsU3RvcmFnZVNlcnZpY2UsIFRyYW5zbGF0ZVNlcnZpY2UsIFVzZXJTZXJ2aWNlLCBVdGlsc30gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7R3JpZFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHtjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0lTdW1tYXJ5RW50cnlEaWZmVmFsdWV9IGZyb20gJy4vaW5kZXhkYXRhLXN1bW1hcnktZW50cnkuaW50ZXJmYWNlJztcbmltcG9ydCB7VW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZH0gZnJvbSAnQG5nbmVhdC91bnRpbC1kZXN0cm95JztcbmltcG9ydCB7RGF0YVZhbHVlRGlmZmVyZW5jZSwgSW5kZXhEYXRhQXJyYXlEZXRhaWxzfSBmcm9tICcuL2luZGV4ZGF0YS1zdW1tYXJ5LmludGVyZmFjZSc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8taW5kZXhkYXRhLXN1bW1hcnknLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbmRleGRhdGEtc3VtbWFyeS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBJbmRleGRhdGFTdW1tYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBpc1VzZXJBbGxvd2VkVG9TaG93U3RvcmFnZVNlY3Rpb246IGJvb2xlYW47XG4gIHByaXZhdGUgX2luZGV4RGF0YTogSW5kZXhEYXRhO1xuXG4gIGNvcmVWYWx1ZXM6IGFueVtdO1xuICBkYXRhVmFsdWVzOiBhbnlbXTtcbiAgZGF0YVZhbHVlczI6IGFueVtdO1xuICBzdG9yYWdlSW5mb3M6IGFueVtdO1xuICBpdGVtOiBEbXNPYmplY3Q7XG4gIG1vcmVJbmZvQWNjID0gZmFsc2U7XG4gIGRhdGFJbmZvQWNjID0gZmFsc2U7XG4gIGluZm9Gb2xkZXJBY2MgPSBmYWxzZTtcbiAgcHJpdmF0ZSBjYWNoZUtleSA9ICdhY2NvcmRpb24uc3RhdGUtLSc7XG4gIGRpZmZBY3RpdmUgPSBmYWxzZTtcbiAgZW1wdHlTdGF0ZSA9IGZhbHNlO1xuXG5cbiAgQElucHV0KCkgYmFzZXBhcmFtczogQmFzZVBhcmFtcztcbiAgQElucHV0KCkgZW5hYmxlVmVyc2lvbnMgPSB0cnVlO1xuICBASW5wdXQoKSBpc0NoYW5nZXNUYWIgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgaW5kZXhkYXRhKGlkOiBJbmRleERhdGEpIHtcbiAgICB0aGlzLl9pbmRleERhdGEgPSBpZDtcbiAgICB0aGlzLmNvcmVWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaWQsIDApLmZpbHRlcih2YWx1ZSA9PiAhdmFsdWUubmFtZS5zdGFydHNXaXRoKCd5dXYnKSk7XG4gICAgdGhpcy5kYXRhVmFsdWVzID0gdGhpcy5wcm9jZXNzSW5kZXhEYXRhKGlkLCAxKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkbXNPYmplY3QoaXRlbTogRG1zT2JqZWN0KSB7XG4gICAgdGhpcy5pdGVtID0gaXRlbTtcbiAgICB0aGlzLmdldEZvbGRlckluZm9zKGl0ZW0pO1xuICAgIHRoaXMuc3RvcmFnZUluZm9zID0gbnVsbDtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgdGhpcy5nZXRTdG9yYWdlSW5mb3MoKTtcbiAgICB9XG4gICAgdGhpcy5nZXRDYWNoZWRBY2NvcmRpb25TdGF0ZSgpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGRpZmYoe2luZGV4ZGF0YSwgaW5kZXhkYXRhMiwgYmFzZXBhcmFtcywgYmFzZXBhcmFtczJ9KSB7XG4gICAgdGhpcy5kaWZmQWN0aXZlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGRpZmZWYWx1ZSA9ICh2YWwxLCB2YWwyKTogSVN1bW1hcnlFbnRyeURpZmZWYWx1ZSA9PiAhKFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh2YWwxKSAmJiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodmFsMikpICYmIHZhbDEgIT09IHZhbDIgPyB7dmFsMSwgdmFsMn0gOiBudWxsO1xuXG4gICAgaWYgKGJhc2VwYXJhbXMgJiYgYmFzZXBhcmFtczIpIHtcbiAgICAgIHRoaXMuYmFzZXBhcmFtcyA9IHt9IGFzIEJhc2VQYXJhbXM7XG4gICAgICBbJ2NvbnRlbnRGaWxlTmFtZScsICdjb250ZW50RmlsZVNpemUnLCAnbWltZUdyb3VwJ11cbiAgICAgICAgLmZvckVhY2goayA9PiBkaWZmVmFsdWUoYmFzZXBhcmFtc1trXSwgYmFzZXBhcmFtczJba10pICYmICh0aGlzLmJhc2VwYXJhbXNba10gPSBkaWZmVmFsdWUoYmFzZXBhcmFtc1trXSwgYmFzZXBhcmFtczJba10pKSk7XG4gICAgfVxuXG4gICAgaWYgKGluZGV4ZGF0YSAmJiBpbmRleGRhdGEyKSB7XG4gICAgICBjb25zdCBjb3JlVmFsdWVzMiA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpbmRleGRhdGEyLCAwLCB0cnVlKS5yZWR1Y2UoKGFjYywgY3VyKSA9PiAoYWNjW2N1ci5xbmFtZV0gPSBjdXIsIGFjYyksIHt9KTtcbiAgICAgIGNvbnN0IGNvcmVWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaW5kZXhkYXRhLCAwLCB0cnVlKVxuICAgICAgICAubWFwKCh7bGFiZWwsIF92YWx1ZSwgcW5hbWUsIHJlZmVyZW5jZX0pID0+ICh7bGFiZWwsIHJlZmVyZW5jZSwgX3ZhbHVlOiBkaWZmVmFsdWUoX3ZhbHVlLCBjb3JlVmFsdWVzMltxbmFtZV0uX3ZhbHVlKX0pKVxuICAgICAgICAuZmlsdGVyKHYgPT4gdi5fdmFsdWUpO1xuXG4gICAgICBjb25zdCBpbmRleERhdGFBcnJheURldGFpbHM6IEluZGV4RGF0YUFycmF5RGV0YWlsc1tdID0gdGhpcy5nZXRJbmRleERhdGFBcnJheURldGFpbHMoaW5kZXhkYXRhKTtcbiAgICAgIGNvbnN0IGluZGV4RGF0YTJBcnJheURldGFpbHM6IEluZGV4RGF0YUFycmF5RGV0YWlsc1tdID0gdGhpcy5nZXRJbmRleERhdGFBcnJheURldGFpbHMoaW5kZXhkYXRhMik7XG4gICAgICBjb25zdCBkYXRhVmFsdWVzOiBEYXRhVmFsdWVEaWZmZXJlbmNlW10gPSB0aGlzLmV4dHJhY3REYXRhVmFsdWVzV2l0aERpZmZlcmVuY2VzKGluZGV4RGF0YUFycmF5RGV0YWlscywgaW5kZXhEYXRhMkFycmF5RGV0YWlscyk7XG5cbiAgICAgIHRoaXMuY29yZVZhbHVlcyA9IGNvcmVWYWx1ZXM7XG4gICAgICB0aGlzLmRhdGFWYWx1ZXMgPSBkYXRhVmFsdWVzO1xuICAgICAgdGhpcy5tb3JlSW5mb0FjYyA9ICEhZGF0YVZhbHVlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgdGhpcy5lbXB0eVN0YXRlID0gVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHRoaXMuY29yZVZhbHVlcykgJiYgVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHRoaXMuZGF0YVZhbHVlcykgJiYgVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KE9iamVjdC5rZXlzKHRoaXMuYmFzZXBhcmFtcyB8fCB7fSkpO1xuICB9XG5cbiAgc3RhdGljIGNvbGxlY3QoZGF0YToge30sIGVsZW1lbnRzOiBhbnlbXSA9IFtdLCBjb2xsZWN0aW9uOiBhbnlbXSwgZm9yY2UgPSBmYWxzZSkge1xuICAgIGVsZW1lbnRzLmZvckVhY2goZWwgPT4ge1xuICAgICAgaWYgKGVsLnR5cGUgIT09ICdUQUJMRScpIHtcbiAgICAgICAgaWYgKGVsLmVsZW1lbnRzKSB7XG4gICAgICAgICAgY29sbGVjdGlvbi5jb25jYXQoSW5kZXhkYXRhU3VtbWFyeUNvbXBvbmVudC5jb2xsZWN0KGRhdGEsIGVsLmVsZW1lbnRzLCBjb2xsZWN0aW9uLCBmb3JjZSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxldCBrZXkgPSBlbC5uYW1lO1xuICAgICAgICAgIGlmIChmb3JjZSB8fCAoZGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIChBcnJheS5pc0FycmF5KGRhdGFba2V5XSkgPyBkYXRhW2tleV0ubGVuZ3RoIDogdHJ1ZSkpKSB7XG4gICAgICAgICAgICAvLyBvbmx5IGFkZCBhcnJheXMgd2hlbiB0aGV5IGNvbnRhaW4gYW55IHZhbHVlc1xuICAgICAgICAgICAgY29sbGVjdGlvbi5wdXNoKE9iamVjdC5hc3NpZ24oe30sIGVsLCB7XG4gICAgICAgICAgICAgIHZhbHVlOiBkYXRhW2tleV0sXG4gICAgICAgICAgICAgIG1ldGE6IGRhdGFba2V5ICsgJ19tZXRhJ11cbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIGdyaWRBcGk6IEdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZG1zU2VydmljZTogRG1zU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlKSB7XG5cbiAgfVxuXG4gIG9uVmFsdWVDbGljayhldmVudDogYW55LCBpdGVtOiBhbnkgPSB7fSkge1xuICAgIGlmIChpdGVtLnJlZmVyZW5jZSB8fCBpdGVtLnZlcnNpb24pIHtcbiAgICAgIHRoaXMuZ3JpZEFwaS5vcGVuUm91dGVyTGluayhldmVudCwgJ2VudHJ5Jyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0VmVyc2lvbkxpbmsodmVyc2lvbjogbnVtYmVyKSB7XG4gICAgY29uc3QgbGluayA9IGB2ZXJzaW9ucy8ke3RoaXMuaXRlbS5pZH0/dHlwZT0ke3RoaXMuaXRlbS50eXBlTmFtZX0mdmVyc2lvbj0ke3ZlcnNpb259YDtcbiAgICByZXR1cm4gYDxhIGNsYXNzPVwibGluayByb3V0ZXItbGlua1wiIGhyZWY9XCIke2xpbmt9XCIgdGFyZ2V0PVwiX2JsYW5rXCIgb25jbGljaz1cInJldHVybiBmYWxzZTtcIj4ke3ZlcnNpb259PC9hPmA7XG4gIH1cblxuICBwcm9jZXNzSW5kZXhEYXRhKGlkOiBJbmRleERhdGEsIGluZGV4ID0gMCwgZm9yY2UgPSBmYWxzZSkge1xuICAgIHJldHVybiBpZCAmJiBpZC5mb3JtICYmIGlkLmRhdGEgPyB0aGlzLmdyaWRBcGkuZ2V0UmVzb2x2ZWREZWZzKEluZGV4ZGF0YVN1bW1hcnlDb21wb25lbnQuY29sbGVjdChpZC5kYXRhLCBpZC5mb3JtLmVsZW1lbnRzW2luZGV4XS5lbGVtZW50cywgW10sIGZvcmNlKSkgOiBbXTtcbiAgfVxuXG4gIG9uTW9yZUluZm9Ub2dnbGUoaW5mbzogYm9vbGVhbikge1xuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLmNhY2hlS2V5ICsgJ21vcmUtaW5mbycsIEpTT04uc3RyaW5naWZ5KGluZm8pKTtcbiAgfVxuXG4gIG9uQ29udGV4dGZvbGRlclRvZ2dsZShpbmZvOiBib29sZWFuKSB7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnY29udGV4dGZvbGRlcicsIEpTT04uc3RyaW5naWZ5KGluZm8pKTtcbiAgfVxuXG4gIG9uU3RvcmFnZUluZm9Ub2dnbGUoaW5mbzogYm9vbGVhbikge1xuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSh0aGlzLmNhY2hlS2V5ICsgJ3N0b3JhZ2UtaW5mbycsIEpTT04uc3RyaW5naWZ5KGluZm8pKTtcbiAgfVxuXG4gIHRyYWNrQnlJbmRleChpbmRleCwgaXRlbSkge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIGdldFN0b3JhZ2VJbmZvcygpIHtcbiAgICB0aGlzLmRtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0QnlQYXJhbXMoe2lkOiB0aGlzLml0ZW0uaWQsIHR5cGU6IHRoaXMuaXRlbS50eXBlTmFtZSwgdmVyc2lvbjogdGhpcy5pdGVtLnZlcnNpb24sIHJlY3ljbGViaW46IHRydWUsIHdpdGhTdG9yYWdlSW5mbzogdHJ1ZX0pXG4gICAgICAucGlwZShcbiAgICAgICAgdW50aWxEZXN0cm95ZWQodGhpcyksXG4gICAgICAgIGNhdGNoRXJyb3IoVXRpbHMuY2F0Y2hTa2lwKGVyciA9PiBlcnIuc3RhdHVzID09PSA0MDQpKVxuICAgICAgKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5zdG9yYWdlSW5mb3MgPSByZXMuc3RvcmFnZUluZm87XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldEZvbGRlckluZm9zKGl0ZW06IERtc09iamVjdCkge1xuICAgIHRoaXMuZGF0YVZhbHVlczIgPSBpdGVtLmNvbnRleHRGb2xkZXI/LnR5cGU/LmVsZW1lbnRzLmZpbHRlcihpdGVtcyA9PiBpdGVtcy5zZWxlY3RlZGZvcmVucmljaG1lbnQpLm1hcChpdGVtcyA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pdGVtcyxcbiAgICAgICAgZGF0YTogaXRlbS5jb250ZXh0Rm9sZGVyLmRhdGFbaXRlbXMubmFtZV1cbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldENhY2hlZEFjY29yZGlvblN0YXRlKCkge1xuICAgIHRoaXMubW9yZUluZm9BY2MgPSBKU09OLnBhcnNlKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSh0aGlzLmNhY2hlS2V5ICsgJ21vcmUtaW5mbycpKTtcbiAgICB0aGlzLmluZm9Gb2xkZXJBY2MgPSBKU09OLnBhcnNlKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSh0aGlzLmNhY2hlS2V5ICsgJ2NvbnRleHRmb2xkZXInKSk7XG4gICAgdGhpcy5kYXRhSW5mb0FjYyA9IEpTT04ucGFyc2UodGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnc3RvcmFnZS1pbmZvJykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXBhcmVzIHR3byB2YWx1ZXMgZGVlcGx5IHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBlcXVpdmFsZW50LlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGEgZGVlcCBjb21wYXJpc29uIGJldHdlZW4gdHdvIHZhbHVlcyB0byBkZXRlcm1pbmUgaWYgdGhleSBhcmUgZXF1aXZhbGVudC5cbiAgICogSXQgY29tcGFyZXMgb2JqZWN0cyByZWN1cnNpdmVseSwgaW5jbHVkaW5nIHRoZWlyIGVudW1lcmFibGUgcHJvcGVydGllcy5cbiAgICpcbiAgICogQHBhcmFtIHthbnl9IHZhbDEgLSBUaGUgZmlyc3QgdmFsdWUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHthbnl9IHZhbDIgLSBUaGUgc2Vjb25kIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgYHRydWVgIGlmIHRoZSB2YWx1ZXMgYXJlIGRlZXBseSBlcXVhbCwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gICAqL1xuICBjb21wYXJlQ29udGVudFZhbHVlRXF1YWxpdHkgPSAodmFsMTogYW55LCB2YWwyOiBhbnkpOiBib29sZWFuID0+IHtcbiAgICBpZiAodmFsMSA9PT0gdmFsMikgcmV0dXJuIHRydWU7XG5cbiAgICBpZiAodHlwZW9mIHZhbDEgIT09ICdvYmplY3QnIHx8IHR5cGVvZiB2YWwyICE9PSAnb2JqZWN0JyB8fCB2YWwxID09IG51bGwgfHwgdmFsMiA9PSBudWxsKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCB2YWwxa2V5cyA9IE9iamVjdC5rZXlzKHZhbDEpO1xuICAgIGNvbnN0IHZhbDJrZXlzID0gT2JqZWN0LmtleXModmFsMik7XG5cbiAgICBpZiAodmFsMWtleXMubGVuZ3RoICE9PSB2YWwya2V5cy5sZW5ndGgpIHJldHVybiBmYWxzZTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIHZhbDFrZXlzKSB7XG4gICAgICBpZiAoIXZhbDJrZXlzLmluY2x1ZGVzKGtleSkgfHwgIXRoaXMuY29tcGFyZUNvbnRlbnRWYWx1ZUVxdWFsaXR5KHZhbDFba2V5XSwgdmFsMltrZXldKSkgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0d28gdmFsdWVzIGFuZCByZXR1cm5zIGEgc3VtbWFyeSBvZiB0aGVpciBkaWZmZXJlbmNlcy5cbiAgICogSWYgdGhlIHZhbHVlcyBhcmUgYXJyYXlzLCBpdCBjb21wYXJlcyB0aGVpciBsZW5ndGhzIGFuZCwgaWYgZXF1YWwsIHRoZWlyIGNvbnRlbnRzLlxuICAgKiBGb3Igbm9uLWFycmF5IHZhbHVlcywgaXQgY2hlY2tzIGZvciBlcXVhbGl0eSBvciBpZiBlaXRoZXIgaXMgY29uc2lkZXJlZCBcImVtcHR5XCIgYnkgYSB1dGlsaXR5IGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsMSBUaGUgZmlyc3QgdmFsdWUgdG8gY29tcGFyZS5cbiAgICogQHBhcmFtIHZhbDIgVGhlIHNlY29uZCB2YWx1ZSB0byBjb21wYXJlLlxuICAgKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBgdmFsMWAgYW5kIGB2YWwyYCBwcm9wZXJ0aWVzIHJlcHJlc2VudGluZyB0aGUgZGlmZmVyZW5jZXMsIG9yIGBudWxsYCBpZiBubyBkaWZmZXJlbmNlcyBhcmUgZm91bmQuXG4gICAqICAgICAgICAgIEZvciBhcnJheXMsIHRoZSBkaWZmZXJlbmNlcyBhcmUgdGhlIGNvdW50IG9mIGRpZmZlcmluZyBpdGVtcyBvciB0aGUgZGlmZmVyZW5jZSBpbiBsZW5ndGhzLlxuICAgKiAgICAgICAgICBGb3Igb3RoZXIgdmFsdWVzLCBpdCByZXR1cm5zIHRoZSB2YWx1ZXMgdGhlbXNlbHZlcyBpZiB0aGV5IGRpZmZlciwgb3IgYW4gZW1wdHkgc3RyaW5nIGZvciBcImVtcHR5XCIgdmFsdWVzLlxuICAgKiAgICAgICAgICBSZXR1cm5zIGBudWxsYCBpZiB0aGUgdmFsdWVzIGFyZSBlcXVhbCBvciBib3RoIFwiZW1wdHlcIi5cbiAgICovXG4gIGdldERhdGFWYWx1ZURpZmZlcmVuY2VzID0gKHZhbDE6IGFueSwgdmFsMjogYW55KTogSVN1bW1hcnlFbnRyeURpZmZWYWx1ZSA9PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsMSkgJiYgQXJyYXkuaXNBcnJheSh2YWwyKSkge1xuICAgICAgY29uc3QgbGVuZ3RoMSA9IHZhbDEubGVuZ3RoO1xuICAgICAgY29uc3QgbGVuZ3RoMiA9IHZhbDIubGVuZ3RoO1xuXG4gICAgICBpZiAobGVuZ3RoMSAhPT0gbGVuZ3RoMikge1xuICAgICAgICByZXR1cm4ge3ZhbDE6IGxlbmd0aDEudG9TdHJpbmcoKSwgdmFsMjogbGVuZ3RoMi50b1N0cmluZygpfTtcbiAgICAgIH1cblxuICAgICAgLy8gQ291bnQgY29udGVudCBkaWZmZXJlbmNlcyB3aGVuIGxlbmd0aHMgYXJlIHRoZSBzYW1lXG4gICAgICBsZXQgZGlmZmVyZW5jZXMgPSAwO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGgxOyBpKyspIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBhcmVDb250ZW50VmFsdWVFcXVhbGl0eSh2YWwxW2ldLCB2YWwyW2ldKSkge1xuICAgICAgICAgIGRpZmZlcmVuY2VzKys7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGRpZmZlcmVuY2VzID4gMCkge1xuICAgICAgICByZXR1cm4ge3ZhbDE6IGRpZmZlcmVuY2VzLnRvU3RyaW5nKCksIHZhbDI6IGRpZmZlcmVuY2VzLnRvU3RyaW5nKCl9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaXNFbXB0eVZhbDEgPSBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodmFsMSk7XG4gICAgY29uc3QgaXNFbXB0eVZhbDIgPSBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodmFsMik7XG5cbiAgICBpZiAoaXNFbXB0eVZhbDEgJiYgaXNFbXB0eVZhbDIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICh2YWwxICE9PSB2YWwyIHx8IGlzRW1wdHlWYWwxIHx8IGlzRW1wdHlWYWwyKSB7XG4gICAgICByZXR1cm4ge3ZhbDE6IGlzRW1wdHlWYWwxID8gXCJcIiA6IHZhbDEsIHZhbDI6IGlzRW1wdHlWYWwyID8gXCJcIiA6IHZhbDJ9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyBwcm9wZXJ0aWVzIGZyb20gYW4gb2JqZWN0IHRoYXQgYXJlIGFycmF5cyBhbmQgcmV0dXJucyB0aGVpciBkZXRhaWxzLlxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gZGF0YSAtIFRoZSBvYmplY3QgdG8gYW5hbHl6ZS5cbiAgICogQHJldHVybnMge0FycmF5fSBBbiBhcnJheSBvZiBvYmplY3RzLCBlYWNoIHJlcHJlc2VudGluZyBhIHByb3BlcnR5IG9mIHRoZSBpbnB1dCBvYmplY3RcbiAgICogdGhhdCBpcyBhbiBhcnJheS4gRWFjaCBvYmplY3QgaW5jbHVkZXMgdGhlIHByb3BlcnR5IG5hbWUgKGBsYWJlbGApLCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzXG4gICAqIGluIHRoZSBhcnJheSAoYGxlbmd0aGApLCB0aGUgYXJyYXkgY29udGVudCBpdHNlbGYgKGBjb250ZW50YCksIGFuZCB0aGUgdHlwZSBvZiB0aGUgYXJyYXkgKGB0eXBlYCkuXG4gICAqL1xuICBnZXRJbmRleERhdGFBcnJheURldGFpbHMgPSAoaW5kZXhEYXRhOiB7W2tleTogc3RyaW5nXTogYW55fSk6IEluZGV4RGF0YUFycmF5RGV0YWlsc1tdID0+IHtcbiAgICBjb25zdCBkYXRhID0gaW5kZXhEYXRhLmRhdGE7XG4gICAgY29uc3QgZm9ybUVsZW1lbnRzID0gaW5kZXhEYXRhLmZvcm0uZWxlbWVudHM7XG5cbiAgICAvLyBIZWxwZXIgZnVuY3Rpb24gdG8gZmluZCB0aGUgdHlwZSBvZiBhbiBlbGVtZW50IGJ5IGl0cyBsYWJlbFxuICAgIGNvbnN0IGZpbmRUeXBlQW5kTGFiZWxCeU5hbWUgPSAoZWxlbWVudHMsIGxhYmVsKSA9PiB7XG4gICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZWxlbWVudHMpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQubmFtZSA9PT0gbGFiZWwpIHtcbiAgICAgICAgICByZXR1cm4ge3R5cGU6IGVsZW1lbnQudHlwZSwgbGFiZWw6IGVsZW1lbnQubGFiZWx9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50LmVsZW1lbnRzICYmIGVsZW1lbnQuZWxlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvbnN0IHR5cGVMYWJlbEluZm8gPSBmaW5kVHlwZUFuZExhYmVsQnlOYW1lKGVsZW1lbnQuZWxlbWVudHMsIGxhYmVsKTtcbiAgICAgICAgICBpZiAodHlwZUxhYmVsSW5mbykge1xuICAgICAgICAgICAgcmV0dXJuIHR5cGVMYWJlbEluZm87XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGRhdGEpXG4gICAgICAuZmlsdGVyKChrZXkpID0+IEFycmF5LmlzQXJyYXkoZGF0YVtrZXldKSlcbiAgICAgIC5tYXAoKGtleSkgPT4ge1xuICAgICAgICBjb25zdCB7dHlwZSwgbGFiZWx9ID0gZmluZFR5cGVBbmRMYWJlbEJ5TmFtZShmb3JtRWxlbWVudHMsIGtleSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgbGVuZ3RoOiBkYXRhW2tleV0ubGVuZ3RoLFxuICAgICAgICAgIGNvbnRlbnQ6IGRhdGFba2V5XSxcbiAgICAgICAgICB0eXBlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbXBhcmVzIHRoZSBjb250ZW50IG9mIHR3byBzZXRzIG9mIGluZGV4IGRhdGEgYXJyYXkgZGV0YWlscyBhbmQgZXh0cmFjdHMgdGhlIGRpZmZlcmVuY2VzLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIG1hcHMgdGhyb3VnaCB0aGUgZmlyc3Qgc2V0IG9mIGluZGV4IGRhdGEgYXJyYXkgZGV0YWlscywgZmluZHMgdGhlIG1hdGNoaW5nXG4gICAqIGNvbnRlbnQgZnJvbSB0aGUgc2Vjb25kIHNldCBieSBsYWJlbCwgYW5kIHRoZW4gY2FsY3VsYXRlcyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGVtLlxuICAgKiBJdCByZXR1cm5zIGFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCBsYWJlbHMgYW5kIHRoZSBjYWxjdWxhdGVkIGRpZmZlcmVuY2VzLCBmaWx0ZXJpbmcgb3V0XG4gICAqIGFueSBlbnRyaWVzIHdpdGhvdXQgYSBkaWZmZXJlbmNlLlxuICAgKlxuICAgKiBAcGFyYW0ge0luZGV4RGF0YUFycmF5RGV0YWlsW119IGluZGV4RGF0YUFycmF5RGV0YWlscyAtIFRoZSBmaXJzdCBzZXQgb2YgaW5kZXggZGF0YSBhcnJheSBkZXRhaWxzLlxuICAgKiBAcGFyYW0ge0luZGV4RGF0YUFycmF5RGV0YWlsW119IGluZGV4RGF0YTJBcnJheURldGFpbHMgLSBUaGUgc2Vjb25kIHNldCBvZiBpbmRleCBkYXRhIGFycmF5IGRldGFpbHMuXG4gICAqIEByZXR1cm5zIHtBcnJheTx7bGFiZWw6IHN0cmluZywgX3ZhbHVlOiBhbnl9Pn0gQW4gYXJyYXkgb2Ygb2JqZWN0cyBjb250YWluaW5nIGxhYmVscyBhbmQgdGhlaXIgZGlmZmVyZW5jZXMuXG4gICAqL1xuICBleHRyYWN0RGF0YVZhbHVlc1dpdGhEaWZmZXJlbmNlcyA9IChpbmRleERhdGFBcnJheURldGFpbHMsIGluZGV4RGF0YTJBcnJheURldGFpbHMpOiBEYXRhVmFsdWVEaWZmZXJlbmNlW10gPT4ge1xuICAgIHJldHVybiBpbmRleERhdGFBcnJheURldGFpbHMubWFwKCh7bGFiZWwsIHR5cGUsIGNvbnRlbnR9KSA9PiB7XG4gICAgICBjb25zdCBtYXRjaGluZ1Byb3AgPSBpbmRleERhdGEyQXJyYXlEZXRhaWxzLmZpbmQocHJvcCA9PiBwcm9wLmxhYmVsID09PSBsYWJlbCk7XG4gICAgICBjb25zdCBjb250ZW50MiA9IG1hdGNoaW5nUHJvcCA/IG1hdGNoaW5nUHJvcC5jb250ZW50IDogW107XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuZ2V0RGF0YVZhbHVlRGlmZmVyZW5jZXMoY29udGVudCwgY29udGVudDIpO1xuICAgICAgaWYgKHR5cGUgPT09IFwiVEFCTEVcIiAmJiBuZXdWYWx1ZSAmJiBuZXdWYWx1ZS52YWwxICYmIG5ld1ZhbHVlLnZhbDIpIHtcbiAgICAgICAgbmV3VmFsdWUudmFsMSA9IFwiXCI7XG4gICAgICAgIG5ld1ZhbHVlLnZhbDIgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5pbmRleGRhdGEuc3VtbWFyeS50YWJsZS5jaGFuZ2UnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGxhYmVsLFxuICAgICAgICB0eXBlLFxuICAgICAgICBfdmFsdWU6IG5ld1ZhbHVlLFxuICAgICAgfTtcbiAgICB9KS5maWx0ZXIoKHY6IHtfdmFsdWU6IGFueTt9KSA9PiB2Ll92YWx1ZSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmlzVXNlckFsbG93ZWRUb1Nob3dTdG9yYWdlU2VjdGlvbiA9IHRoaXMudXNlclNlcnZpY2UuZ2V0Q3VycmVudFVzZXIoKS5oYXNQcml2aWxlZ2UoJ01BTkFHRV9TVE9SQUdFUycpO1xuICAgIHRoaXMuZ2V0Q2FjaGVkQWNjb3JkaW9uU3RhdGUoKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluZGV4RGF0YSB7XG4gIGZvcm06IGFueTtcbiAgZGF0YTogYW55O1xufVxuIiwiPGRpdiBjbGFzcz1cImVtcHR5LWNvbnRhaW5lclwiICpuZ0lmPVwiZW1wdHlTdGF0ZVwiPnt7J2VvLmluZGV4ZGF0YS5zdW1tYXJ5Lm5vLmNoYW5nZScgfCB0cmFuc2xhdGV9fTwvZGl2PlxuPGRpdiBjbGFzcz1cImluZGV4ZGF0YS1zdW1tYXJ5XCI+XG5cbiAgPGRpdiBjbGFzcz1cImNvcmUtc2VjdGlvblwiICpuZ0lmPVwiY29yZVZhbHVlcz8ubGVuZ3RoXCI+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29yZVZhbHVlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0uX3ZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uVmFsdWVDbGlja2VkKT1cIm9uVmFsdWVDbGljaygkZXZlbnQsIGl0ZW0pXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIEBpZiAoaXRlbT8uY29udGV4dEZvbGRlcikge1xuICAgICAgPGVvLXNpbXBsZS1hY2NvcmRpb24gW2hlYWRlcl09XCJpdGVtLmNvbnRleHRGb2xkZXI/LnR5cGU/LmxhYmVsICsgJzonXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIiBbc2VsZWN0ZWRdPVwiaW5mb0ZvbGRlckFjY1wiIChzZWxlY3RDaGFuZ2UpPVwib25Db250ZXh0Zm9sZGVyVG9nZ2xlKCRldmVudClcIj5cbiAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFWYWx1ZXMyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsXCIgW3ZhbHVlXT1cIml0ZW0uZGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNsaWNrZWQpPVwib25WYWx1ZUNsaWNrKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cbiAgICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGF0YS1zZWN0aW9uXCIgKm5nSWY9XCJkYXRhVmFsdWVzICYmIGRhdGFWYWx1ZXMubGVuZ3RoXCI+XG4gICAgPGVvLXNpbXBsZS1hY2NvcmRpb24gI2RhdGFBY2NvcmRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyXT1cIignZW8uaW5kZXhkYXRhLnN1bW1hcnkubW9yZScgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwibW9yZUluZm9BY2NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RDaGFuZ2UpPVwib25Nb3JlSW5mb1RvZ2dsZSgkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGF0YVwiPlxuXG4gICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhVmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLl92YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNsaWNrZWQpPVwib25WYWx1ZUNsaWNrKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZW8tc2ltcGxlLWFjY29yZGlvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImJhc2VwYXJhbXMtc2VjdGlvblwiICpuZ0lmPVwiYmFzZXBhcmFtc1wiPlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiYmFzZXBhcmFtcy5tb2RpZmllZE9uICYmICFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5tb2RpZmllZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5tb2RpZmllZE9uIHwgbG9jYWxlRGF0ZVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCIhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0ubW9kaWZpZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMubW9kaWZpZWRCeVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCJiYXNlcGFyYW1zLmNyZWF0ZWRPbiAmJiAhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uY3JlYXRlZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5jcmVhdGVkT24gfCBsb2NhbGVEYXRlXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cIiFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5jcmVhdG9yJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLmNyZWF0ZWRCeVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCIhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdW1tYXJ5LnZlcnNpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldFZlcnNpb25MaW5rKGJhc2VwYXJhbXMudmVyc2lvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNsaWNrZWQpPVwib25WYWx1ZUNsaWNrKCRldmVudCwge3ZlcnNpb246IGJhc2VwYXJhbXMudmVyc2lvbn0pXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uZmlsZW5hbWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuY29udGVudEZpbGVOYW1lXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cImJhc2VwYXJhbXMuY29udGVudEZpbGVTaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5maWxlc2l6ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGlmZkFjdGl2ZSA/IHt2YWwxOiBiYXNlcGFyYW1zLmNvbnRlbnRGaWxlU2l6ZVsndmFsMSddIHwgZmlsZVNpemUsIHZhbDI6IGJhc2VwYXJhbXMuY29udGVudEZpbGVTaXplWyd2YWwyJ10gfCBmaWxlU2l6ZX0gOiAoYmFzZXBhcmFtcy5jb250ZW50RmlsZVNpemUgfCBmaWxlU2l6ZSlcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0ubWltZXR5cGVncm91cCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5taW1lR3JvdXBcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0ubWltZXR5cGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMubWltZVR5cGVcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiIWRpZmZBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5nbG9iYWwuYmFzZXBhcmFtLmlkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLmlkXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cImJhc2VwYXJhbXMuY29udGVudElkICE9PSBiYXNlcGFyYW1zLmlkICYmICFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5jb250ZW50SWQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuY29udGVudElkXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cbiAgPC9kaXY+XG5cbiAgQGlmKHN0b3JhZ2VJbmZvcz8ubGVuZ3RoICYmIGlzVXNlckFsbG93ZWRUb1Nob3dTdG9yYWdlU2VjdGlvbiAmJiAhaXNDaGFuZ2VzVGFiKSB7XG4gICAgPGRpdiBjbGFzcz1cInN0b3JhZ2VpbmZvXCI+XG4gICAgICA8ZW8tc2ltcGxlLWFjY29yZGlvbiBbaGVhZGVyXT1cIignZW8uc3RhdGUuc2V0dGluZ3Muc3RvcmFnZWluZm8nIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiZGF0YUluZm9BY2NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdENoYW5nZSk9XCJvblN0b3JhZ2VJbmZvVG9nZ2xlKCRldmVudClcIj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmFnZWluZm8tZW50cnkgYmFzZXBhcmFtcy1zZWN0aW9uXCI+XG4gICAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ3N0b3JhZ2VpbmZvLXN1YmVudHJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5kaWdlc3QnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuZGlnZXN0XCI+XG4gICAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JhZ2VpbmZvLWVudHJ5IGJhc2VwYXJhbXMtc2VjdGlvblwiICpuZ0Zvcj1cImxldCBzdEluZm8gb2Ygc3RvcmFnZUluZm9zOyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIj5cbiAgICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8ucmV0ZW50aW9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdEluZm8ucmV0ZW50aW9uIHwgbG9jYWxlRGF0ZSA6ICdlb1Nob3J0RGF0ZSdcIj5cbiAgICAgICAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ3N0b3JhZ2VpbmZvLXN1YmVudHJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ub2JqZWN0LnN0b3JhZ2VpbmZvLnBlcm1hbmVuY2UnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInN0SW5mby5wZXJtYW5lbmNlXCI+XG4gICAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidzdG9yYWdlaW5mby1zdWJlbnRyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdG9yYWdlaW5mby5zZXRuYW1lJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdEluZm8uc2V0bmFtZVwiPlxuICAgICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8uc3RvcmFnZW5hbWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInN0SW5mby5zdG9yYWdlbmFtZVwiPlxuICAgICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8ubG9jYXRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInN0SW5mby5sb2NhdGlvblwiPlxuICAgICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9lby1zaW1wbGUtYWNjb3JkaW9uPlxuICAgIDwvZGl2PlxuICB9XG5cbjwvZGl2PlxuIl19
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvdWkvaW5kZXhkYXRhLXN1bW1hcnkvaW5kZXhkYXRhLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUF3RixLQUFLLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFMUgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBQyxZQUFZLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7QUFVNUQsSUFBTSx5QkFBeUIsR0FBL0IsTUFBTSx5QkFBeUI7O0lBc0JwQyxJQUNJLFNBQVMsQ0FBQyxFQUFhO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUNJLFNBQVMsQ0FBQyxJQUFlO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELElBQWEsSUFBSSxDQUFDLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFDO1FBQ2hFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLE1BQU0sU0FBUyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksRUFBMEIsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVySyxJQUFJLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQWdCLENBQUM7WUFDbkMsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxXQUFXLENBQUM7aUJBQ2hELE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ILENBQUM7UUFFRCxJQUFJLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQztpQkFDekQsR0FBRyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsQ0FBQztpQkFDdEgsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXpCLE1BQU0scUJBQXFCLEdBQTRCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoRyxNQUFNLHNCQUFzQixHQUE0QixJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDbEcsTUFBTSxVQUFVLEdBQTBCLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxxQkFBcUIsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1lBRS9ILElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDekMsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzSyxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFRLEVBQUUsV0FBa0IsRUFBRSxFQUFFLFVBQWlCLEVBQUUsS0FBSyxHQUFHLEtBQUs7UUFDN0UsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNwQixJQUFJLEVBQUUsQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNoQixVQUFVLENBQUMsTUFBTSxDQUFDLDJCQUF5QixDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDN0YsQ0FBQztxQkFBTSxDQUFDO29CQUNOLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7b0JBQ2xCLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDaEcsK0NBQStDO3dCQUMvQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTs0QkFDcEMsS0FBSyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUM7NEJBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQzt5QkFDMUIsQ0FBQyxDQUFDLENBQUM7b0JBQ04sQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQW1CLFNBQTJCLEVBQ3JDLE9BQW9CLEVBQ25CLFVBQXNCLEVBQ3RCLFdBQXdCLEVBQ3hCLEVBQXFCLEVBQ3JCLGNBQW1DO1FBTDFCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBcUI7UUFwRjdDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ2QsYUFBUSxHQUFHLG1CQUFtQixDQUFDO1FBQ3ZDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUlWLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBdUk5Qjs7Ozs7Ozs7O1dBU0c7UUFDSCxnQ0FBMkIsR0FBRyxDQUFDLElBQVMsRUFBRSxJQUFTLEVBQVcsRUFBRTtZQUM5RCxJQUFJLElBQUksS0FBSyxJQUFJO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBRS9CLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1lBRXZHLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVuQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDLE1BQU07Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFFdEQsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFBRSxPQUFPLEtBQUssQ0FBQztZQUN2RyxDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFFRjs7Ozs7Ozs7Ozs7V0FXRztRQUNILDRCQUF1QixHQUFHLENBQUMsSUFBUyxFQUFFLElBQVMsRUFBMEIsRUFBRTtZQUN6RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUM1QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUU1QixJQUFJLE9BQU8sS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDeEIsT0FBTyxFQUFDLElBQUksRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBQyxDQUFDO2dCQUM5RCxDQUFDO2dCQUVELHNEQUFzRDtnQkFDdEQsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3hELFdBQVcsRUFBRSxDQUFDO29CQUNoQixDQUFDO2dCQUNILENBQUM7Z0JBRUQsSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3BCLE9BQU8sRUFBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUMsQ0FBQztnQkFDdEUsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUM7WUFDSCxDQUFDO1lBRUQsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25ELE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVuRCxJQUFJLFdBQVcsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLFdBQVcsSUFBSSxXQUFXLEVBQUUsQ0FBQztnQkFDaEQsT0FBTyxFQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUM7WUFDeEUsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBRUY7Ozs7Ozs7V0FPRztRQUNILDZCQUF3QixHQUFHLENBQUMsU0FBK0IsRUFBMkIsRUFBRTtZQUN0RixNQUFNLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQzVCLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBRTdDLDhEQUE4RDtZQUM5RCxNQUFNLHNCQUFzQixHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNqRCxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUMvQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7d0JBQzNCLE9BQU8sRUFBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBQyxDQUFDO29CQUNwRCxDQUFDO29CQUNELElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDcEQsTUFBTSxhQUFhLEdBQUcsc0JBQXNCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDdEUsSUFBSSxhQUFhLEVBQUUsQ0FBQzs0QkFDbEIsT0FBTyxhQUFhLENBQUM7d0JBQ3ZCLENBQUM7b0JBQ0gsQ0FBQztnQkFDSCxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQyxDQUFDO1lBRUYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDckIsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUN6QyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDWCxNQUFNLFlBQVksR0FBRyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQy9ELElBQUksWUFBWSxFQUFFLENBQUM7b0JBQ2pCLE9BQU87d0JBQ0wsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLO3dCQUN6QixNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU07d0JBQ3hCLE9BQU8sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDO3dCQUNsQixJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7cUJBQ3hCLENBQUM7Z0JBQ0osQ0FBQztxQkFBTSxDQUFDO29CQUNOLE9BQU87d0JBQ0wsS0FBSyxFQUFFLEVBQUU7d0JBQ1QsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNO3dCQUN4QixPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQzt3QkFDbEIsSUFBSSxFQUFFLEVBQUU7cUJBQ1QsQ0FBQztnQkFDSixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUM7UUFFRjs7Ozs7Ozs7Ozs7V0FXRztRQUNILHFDQUFnQyxHQUFHLENBQUMscUJBQXFCLEVBQUUsc0JBQXNCLEVBQXlCLEVBQUU7WUFDMUcsT0FBTyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFDLEVBQUUsRUFBRTtnQkFDMUQsTUFBTSxZQUFZLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztnQkFDL0UsTUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzFELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ2pFLElBQUksSUFBSSxLQUFLLE9BQU8sSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ25FLFFBQVEsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO29CQUNuQixRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7Z0JBQzlFLENBQUM7Z0JBQ0QsT0FBTztvQkFDTCxLQUFLO29CQUNMLElBQUk7b0JBQ0osTUFBTSxFQUFFLFFBQVE7aUJBQ2pCLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFBO0lBck5ELENBQUM7SUFFRCxZQUFZLENBQUMsS0FBVSxFQUFFLE9BQVksRUFBRTtRQUNyQyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxPQUFlO1FBQzVCLE1BQU0sSUFBSSxHQUFHLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLFlBQVksT0FBTyxFQUFFLENBQUM7UUFDdEYsT0FBTyxxQ0FBcUMsSUFBSSw2Q0FBNkMsT0FBTyxNQUFNLENBQUM7SUFDN0csQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQWEsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLO1FBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsMkJBQXlCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDL0osQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQWE7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxJQUFhO1FBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBYTtRQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLGNBQWMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSTtRQUN0QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBQyxDQUFDO2FBQ3BKLElBQUksQ0FDSCxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQ3BCLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUN2RCxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFDcEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBZTtRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDN0csT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsSUFBSSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7YUFDMUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHVCQUF1QjtRQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBOEpELFFBQVE7UUFDTixJQUFJLENBQUMsaUNBQWlDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzhHQTFUVSx5QkFBeUI7a0dBQXpCLHlCQUF5QixnT0NoQnRDLDB3UEFxSkE7O0FEcklhLHlCQUF5QjtJQVByQyxZQUFZLEVBQUU7R0FPRix5QkFBeUIsQ0EyVHJDOzsyRkEzVFkseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNO29PQW9CdEMsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0YsU0FBUztzQkFEWixLQUFLO2dCQVFGLFNBQVM7c0JBRFosS0FBSztnQkFXTyxJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtVdGlsaXRpZXNTZXJ2aWNlfSBmcm9tICcuLy4uLy4uL3V0aWwvc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jhc2VQYXJhbXMsIERtc09iamVjdCwgRG1zU2VydmljZSwgTG9jYWxTdG9yYWdlU2VydmljZSwgVHJhbnNsYXRlU2VydmljZSwgVXNlclNlcnZpY2UsIFV0aWxzfSBmcm9tICdAZW8tc2RrL2NvcmUnO1xuaW1wb3J0IHtHcmlkU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvYXBpL2dyaWQuc2VydmljZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SVN1bW1hcnlFbnRyeURpZmZWYWx1ZX0gZnJvbSAnLi9pbmRleGRhdGEtc3VtbWFyeS1lbnRyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHtEYXRhVmFsdWVEaWZmZXJlbmNlLCBJbmRleERhdGFBcnJheURldGFpbHN9IGZyb20gJy4vaW5kZXhkYXRhLXN1bW1hcnkuaW50ZXJmYWNlJztcblxuQFVudGlsRGVzdHJveSgpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1pbmRleGRhdGEtc3VtbWFyeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbmRleGRhdGEtc3VtbWFyeS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2luZGV4ZGF0YS1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEluZGV4ZGF0YVN1bW1hcnlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGlzVXNlckFsbG93ZWRUb1Nob3dTdG9yYWdlU2VjdGlvbjogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfaW5kZXhEYXRhOiBJbmRleERhdGE7XG5cbiAgY29yZVZhbHVlczogYW55W107XG4gIGRhdGFWYWx1ZXM6IGFueVtdO1xuICBkYXRhVmFsdWVzMjogYW55W107XG4gIHN0b3JhZ2VJbmZvczogYW55W107XG4gIGl0ZW06IERtc09iamVjdDtcbiAgbW9yZUluZm9BY2MgPSBmYWxzZTtcbiAgZGF0YUluZm9BY2MgPSBmYWxzZTtcbiAgaW5mb0ZvbGRlckFjYyA9IGZhbHNlO1xuICBwcml2YXRlIGNhY2hlS2V5ID0gJ2FjY29yZGlvbi5zdGF0ZS0tJztcbiAgZGlmZkFjdGl2ZSA9IGZhbHNlO1xuICBlbXB0eVN0YXRlID0gZmFsc2U7XG5cblxuICBASW5wdXQoKSBiYXNlcGFyYW1zOiBCYXNlUGFyYW1zO1xuICBASW5wdXQoKSBlbmFibGVWZXJzaW9ucyA9IHRydWU7XG4gIEBJbnB1dCgpIGlzQ2hhbmdlc1RhYiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBpbmRleGRhdGEoaWQ6IEluZGV4RGF0YSkge1xuICAgIHRoaXMuX2luZGV4RGF0YSA9IGlkO1xuICAgIHRoaXMuY29yZVZhbHVlcyA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpZCwgMCkuZmlsdGVyKHZhbHVlID0+ICF2YWx1ZS5uYW1lLnN0YXJ0c1dpdGgoJ3l1dicpKTtcbiAgICB0aGlzLmRhdGFWYWx1ZXMgPSB0aGlzLnByb2Nlc3NJbmRleERhdGEoaWQsIDEpO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRtc09iamVjdChpdGVtOiBEbXNPYmplY3QpIHtcbiAgICB0aGlzLml0ZW0gPSBpdGVtO1xuICAgIHRoaXMuZ2V0Rm9sZGVySW5mb3MoaXRlbSk7XG4gICAgdGhpcy5zdG9yYWdlSW5mb3MgPSBudWxsO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICB0aGlzLmdldFN0b3JhZ2VJbmZvcygpO1xuICAgIH1cbiAgICB0aGlzLmdldENhY2hlZEFjY29yZGlvblN0YXRlKCk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZGlmZih7aW5kZXhkYXRhLCBpbmRleGRhdGEyLCBiYXNlcGFyYW1zLCBiYXNlcGFyYW1zMn0pIHtcbiAgICB0aGlzLmRpZmZBY3RpdmUgPSB0cnVlO1xuXG4gICAgY29uc3QgZGlmZlZhbHVlID0gKHZhbDEsIHZhbDIpOiBJU3VtbWFyeUVudHJ5RGlmZlZhbHVlID0+ICEoVXRpbGl0aWVzU2VydmljZS5pc0VtcHR5KHZhbDEpICYmIFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh2YWwyKSkgJiYgdmFsMSAhPT0gdmFsMiA/IHt2YWwxLCB2YWwyfSA6IG51bGw7XG5cbiAgICBpZiAoYmFzZXBhcmFtcyAmJiBiYXNlcGFyYW1zMikge1xuICAgICAgdGhpcy5iYXNlcGFyYW1zID0ge30gYXMgQmFzZVBhcmFtcztcbiAgICAgIFsnY29udGVudEZpbGVOYW1lJywgJ2NvbnRlbnRGaWxlU2l6ZScsICdtaW1lR3JvdXAnXVxuICAgICAgICAuZm9yRWFjaChrID0+IGRpZmZWYWx1ZShiYXNlcGFyYW1zW2tdLCBiYXNlcGFyYW1zMltrXSkgJiYgKHRoaXMuYmFzZXBhcmFtc1trXSA9IGRpZmZWYWx1ZShiYXNlcGFyYW1zW2tdLCBiYXNlcGFyYW1zMltrXSkpKTtcbiAgICB9XG5cbiAgICBpZiAoaW5kZXhkYXRhICYmIGluZGV4ZGF0YTIpIHtcbiAgICAgIGNvbnN0IGNvcmVWYWx1ZXMyID0gdGhpcy5wcm9jZXNzSW5kZXhEYXRhKGluZGV4ZGF0YTIsIDAsIHRydWUpLnJlZHVjZSgoYWNjLCBjdXIpID0+IChhY2NbY3VyLnFuYW1lXSA9IGN1ciwgYWNjKSwge30pO1xuICAgICAgY29uc3QgY29yZVZhbHVlcyA9IHRoaXMucHJvY2Vzc0luZGV4RGF0YShpbmRleGRhdGEsIDAsIHRydWUpXG4gICAgICAgIC5tYXAoKHtsYWJlbCwgX3ZhbHVlLCBxbmFtZSwgcmVmZXJlbmNlfSkgPT4gKHtsYWJlbCwgcmVmZXJlbmNlLCBfdmFsdWU6IGRpZmZWYWx1ZShfdmFsdWUsIGNvcmVWYWx1ZXMyW3FuYW1lXS5fdmFsdWUpfSkpXG4gICAgICAgIC5maWx0ZXIodiA9PiB2Ll92YWx1ZSk7XG5cbiAgICAgIGNvbnN0IGluZGV4RGF0YUFycmF5RGV0YWlsczogSW5kZXhEYXRhQXJyYXlEZXRhaWxzW10gPSB0aGlzLmdldEluZGV4RGF0YUFycmF5RGV0YWlscyhpbmRleGRhdGEpO1xuICAgICAgY29uc3QgaW5kZXhEYXRhMkFycmF5RGV0YWlsczogSW5kZXhEYXRhQXJyYXlEZXRhaWxzW10gPSB0aGlzLmdldEluZGV4RGF0YUFycmF5RGV0YWlscyhpbmRleGRhdGEyKTtcbiAgICAgIGNvbnN0IGRhdGFWYWx1ZXM6IERhdGFWYWx1ZURpZmZlcmVuY2VbXSA9IHRoaXMuZXh0cmFjdERhdGFWYWx1ZXNXaXRoRGlmZmVyZW5jZXMoaW5kZXhEYXRhQXJyYXlEZXRhaWxzLCBpbmRleERhdGEyQXJyYXlEZXRhaWxzKTtcblxuICAgICAgdGhpcy5jb3JlVmFsdWVzID0gY29yZVZhbHVlcztcbiAgICAgIHRoaXMuZGF0YVZhbHVlcyA9IGRhdGFWYWx1ZXM7XG4gICAgICB0aGlzLm1vcmVJbmZvQWNjID0gISFkYXRhVmFsdWVzLmxlbmd0aDtcbiAgICB9XG5cbiAgICB0aGlzLmVtcHR5U3RhdGUgPSBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodGhpcy5jb3JlVmFsdWVzKSAmJiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkodGhpcy5kYXRhVmFsdWVzKSAmJiBVdGlsaXRpZXNTZXJ2aWNlLmlzRW1wdHkoT2JqZWN0LmtleXModGhpcy5iYXNlcGFyYW1zIHx8IHt9KSk7XG4gIH1cblxuICBzdGF0aWMgY29sbGVjdChkYXRhOiB7fSwgZWxlbWVudHM6IGFueVtdID0gW10sIGNvbGxlY3Rpb246IGFueVtdLCBmb3JjZSA9IGZhbHNlKSB7XG4gICAgZWxlbWVudHMuZm9yRWFjaChlbCA9PiB7XG4gICAgICBpZiAoZWwudHlwZSAhPT0gJ1RBQkxFJykge1xuICAgICAgICBpZiAoZWwuZWxlbWVudHMpIHtcbiAgICAgICAgICBjb2xsZWN0aW9uLmNvbmNhdChJbmRleGRhdGFTdW1tYXJ5Q29tcG9uZW50LmNvbGxlY3QoZGF0YSwgZWwuZWxlbWVudHMsIGNvbGxlY3Rpb24sIGZvcmNlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbGV0IGtleSA9IGVsLm5hbWU7XG4gICAgICAgICAgaWYgKGZvcmNlIHx8IChkYXRhLmhhc093blByb3BlcnR5KGtleSkgJiYgKEFycmF5LmlzQXJyYXkoZGF0YVtrZXldKSA/IGRhdGFba2V5XS5sZW5ndGggOiB0cnVlKSkpIHtcbiAgICAgICAgICAgIC8vIG9ubHkgYWRkIGFycmF5cyB3aGVuIHRoZXkgY29udGFpbiBhbnkgdmFsdWVzXG4gICAgICAgICAgICBjb2xsZWN0aW9uLnB1c2goT2JqZWN0LmFzc2lnbih7fSwgZWwsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IGRhdGFba2V5XSxcbiAgICAgICAgICAgICAgbWV0YTogZGF0YVtrZXkgKyAnX21ldGEnXVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwdWJsaWMgZ3JpZEFwaTogR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkbXNTZXJ2aWNlOiBEbXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UpIHtcblxuICB9XG5cbiAgb25WYWx1ZUNsaWNrKGV2ZW50OiBhbnksIGl0ZW06IGFueSA9IHt9KSB7XG4gICAgaWYgKGl0ZW0ucmVmZXJlbmNlIHx8IGl0ZW0udmVyc2lvbikge1xuICAgICAgdGhpcy5ncmlkQXBpLm9wZW5Sb3V0ZXJMaW5rKGV2ZW50LCAnZW50cnknKTtcbiAgICB9XG4gIH1cblxuICBnZXRWZXJzaW9uTGluayh2ZXJzaW9uOiBudW1iZXIpIHtcbiAgICBjb25zdCBsaW5rID0gYHZlcnNpb25zLyR7dGhpcy5pdGVtLmlkfT90eXBlPSR7dGhpcy5pdGVtLnR5cGVOYW1lfSZ2ZXJzaW9uPSR7dmVyc2lvbn1gO1xuICAgIHJldHVybiBgPGEgY2xhc3M9XCJsaW5rIHJvdXRlci1saW5rXCIgaHJlZj1cIiR7bGlua31cIiB0YXJnZXQ9XCJfYmxhbmtcIiBvbmNsaWNrPVwicmV0dXJuIGZhbHNlO1wiPiR7dmVyc2lvbn08L2E+YDtcbiAgfVxuXG4gIHByb2Nlc3NJbmRleERhdGEoaWQ6IEluZGV4RGF0YSwgaW5kZXggPSAwLCBmb3JjZSA9IGZhbHNlKSB7XG4gICAgcmV0dXJuIGlkICYmIGlkLmZvcm0gJiYgaWQuZGF0YSA/IHRoaXMuZ3JpZEFwaS5nZXRSZXNvbHZlZERlZnMoSW5kZXhkYXRhU3VtbWFyeUNvbXBvbmVudC5jb2xsZWN0KGlkLmRhdGEsIGlkLmZvcm0uZWxlbWVudHNbaW5kZXhdLmVsZW1lbnRzLCBbXSwgZm9yY2UpKSA6IFtdO1xuICB9XG5cbiAgb25Nb3JlSW5mb1RvZ2dsZShpbmZvOiBib29sZWFuKSB7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnbW9yZS1pbmZvJywgSlNPTi5zdHJpbmdpZnkoaW5mbykpO1xuICB9XG5cbiAgb25Db250ZXh0Zm9sZGVyVG9nZ2xlKGluZm86IGJvb2xlYW4pIHtcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0odGhpcy5jYWNoZUtleSArICdjb250ZXh0Zm9sZGVyJywgSlNPTi5zdHJpbmdpZnkoaW5mbykpO1xuICB9XG5cbiAgb25TdG9yYWdlSW5mb1RvZ2dsZShpbmZvOiBib29sZWFuKSB7XG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnc3RvcmFnZS1pbmZvJywgSlNPTi5zdHJpbmdpZnkoaW5mbykpO1xuICB9XG5cbiAgdHJhY2tCeUluZGV4KGluZGV4LCBpdGVtKSB7XG4gICAgcmV0dXJuIGluZGV4O1xuICB9XG5cbiAgZ2V0U3RvcmFnZUluZm9zKCkge1xuICAgIHRoaXMuZG1zU2VydmljZS5nZXREbXNPYmplY3RCeVBhcmFtcyh7aWQ6IHRoaXMuaXRlbS5pZCwgdHlwZTogdGhpcy5pdGVtLnR5cGVOYW1lLCB2ZXJzaW9uOiB0aGlzLml0ZW0udmVyc2lvbiwgcmVjeWNsZWJpbjogdHJ1ZSwgd2l0aFN0b3JhZ2VJbmZvOiB0cnVlfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB1bnRpbERlc3Ryb3llZCh0aGlzKSxcbiAgICAgICAgY2F0Y2hFcnJvcihVdGlscy5jYXRjaFNraXAoZXJyID0+IGVyci5zdGF0dXMgPT09IDQwNCkpXG4gICAgICApLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLnN0b3JhZ2VJbmZvcyA9IHJlcy5zdG9yYWdlSW5mbztcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0Rm9sZGVySW5mb3MoaXRlbTogRG1zT2JqZWN0KSB7XG4gICAgdGhpcy5kYXRhVmFsdWVzMiA9IGl0ZW0uY29udGV4dEZvbGRlcj8udHlwZT8uZWxlbWVudHMuZmlsdGVyKGl0ZW1zID0+IGl0ZW1zLnNlbGVjdGVkZm9yZW5yaWNobWVudCkubWFwKGl0ZW1zID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLml0ZW1zLFxuICAgICAgICBkYXRhOiBpdGVtLmNvbnRleHRGb2xkZXIuZGF0YVtpdGVtcy5uYW1lXVxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FjaGVkQWNjb3JkaW9uU3RhdGUoKSB7XG4gICAgdGhpcy5tb3JlSW5mb0FjYyA9IEpTT04ucGFyc2UodGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnbW9yZS1pbmZvJykpO1xuICAgIHRoaXMuaW5mb0ZvbGRlckFjYyA9IEpTT04ucGFyc2UodGhpcy5zdG9yYWdlU2VydmljZS5nZXRJdGVtKHRoaXMuY2FjaGVLZXkgKyAnY29udGV4dGZvbGRlcicpKTtcbiAgICB0aGlzLmRhdGFJbmZvQWNjID0gSlNPTi5wYXJzZSh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy5jYWNoZUtleSArICdzdG9yYWdlLWluZm8nKSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGFyZXMgdHdvIHZhbHVlcyBkZWVwbHkgdG8gZGV0ZXJtaW5lIGlmIHRoZXkgYXJlIGVxdWl2YWxlbnQuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgYSBkZWVwIGNvbXBhcmlzb24gYmV0d2VlbiB0d28gdmFsdWVzIHRvIGRldGVybWluZSBpZiB0aGV5IGFyZSBlcXVpdmFsZW50LlxuICAgKiBJdCBjb21wYXJlcyBvYmplY3RzIHJlY3Vyc2l2ZWx5LCBpbmNsdWRpbmcgdGhlaXIgZW51bWVyYWJsZSBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge2FueX0gdmFsMSAtIFRoZSBmaXJzdCB2YWx1ZSB0byBjb21wYXJlLlxuICAgKiBAcGFyYW0ge2FueX0gdmFsMiAtIFRoZSBzZWNvbmQgdmFsdWUgdG8gY29tcGFyZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHZhbHVlcyBhcmUgZGVlcGx5IGVxdWFsLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICovXG4gIGNvbXBhcmVDb250ZW50VmFsdWVFcXVhbGl0eSA9ICh2YWwxOiBhbnksIHZhbDI6IGFueSk6IGJvb2xlYW4gPT4ge1xuICAgIGlmICh2YWwxID09PSB2YWwyKSByZXR1cm4gdHJ1ZTtcblxuICAgIGlmICh0eXBlb2YgdmFsMSAhPT0gJ29iamVjdCcgfHwgdHlwZW9mIHZhbDIgIT09ICdvYmplY3QnIHx8IHZhbDEgPT0gbnVsbCB8fCB2YWwyID09IG51bGwpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHZhbDFrZXlzID0gT2JqZWN0LmtleXModmFsMSk7XG4gICAgY29uc3QgdmFsMmtleXMgPSBPYmplY3Qua2V5cyh2YWwyKTtcblxuICAgIGlmICh2YWwxa2V5cy5sZW5ndGggIT09IHZhbDJrZXlzLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgdmFsMWtleXMpIHtcbiAgICAgIGlmICghdmFsMmtleXMuaW5jbHVkZXMoa2V5KSB8fCAhdGhpcy5jb21wYXJlQ29udGVudFZhbHVlRXF1YWxpdHkodmFsMVtrZXldLCB2YWwyW2tleV0pKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH07XG5cbiAgLyoqXG4gICAqIENvbXBhcmVzIHR3byB2YWx1ZXMgYW5kIHJldHVybnMgYSBzdW1tYXJ5IG9mIHRoZWlyIGRpZmZlcmVuY2VzLlxuICAgKiBJZiB0aGUgdmFsdWVzIGFyZSBhcnJheXMsIGl0IGNvbXBhcmVzIHRoZWlyIGxlbmd0aHMgYW5kLCBpZiBlcXVhbCwgdGhlaXIgY29udGVudHMuXG4gICAqIEZvciBub24tYXJyYXkgdmFsdWVzLCBpdCBjaGVja3MgZm9yIGVxdWFsaXR5IG9yIGlmIGVpdGhlciBpcyBjb25zaWRlcmVkIFwiZW1wdHlcIiBieSBhIHV0aWxpdHkgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB2YWwxIFRoZSBmaXJzdCB2YWx1ZSB0byBjb21wYXJlLlxuICAgKiBAcGFyYW0gdmFsMiBUaGUgc2Vjb25kIHZhbHVlIHRvIGNvbXBhcmUuXG4gICAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIGB2YWwxYCBhbmQgYHZhbDJgIHByb3BlcnRpZXMgcmVwcmVzZW50aW5nIHRoZSBkaWZmZXJlbmNlcywgb3IgYG51bGxgIGlmIG5vIGRpZmZlcmVuY2VzIGFyZSBmb3VuZC5cbiAgICogICAgICAgICAgRm9yIGFycmF5cywgdGhlIGRpZmZlcmVuY2VzIGFyZSB0aGUgY291bnQgb2YgZGlmZmVyaW5nIGl0ZW1zIG9yIHRoZSBkaWZmZXJlbmNlIGluIGxlbmd0aHMuXG4gICAqICAgICAgICAgIEZvciBvdGhlciB2YWx1ZXMsIGl0IHJldHVybnMgdGhlIHZhbHVlcyB0aGVtc2VsdmVzIGlmIHRoZXkgZGlmZmVyLCBvciBhbiBlbXB0eSBzdHJpbmcgZm9yIFwiZW1wdHlcIiB2YWx1ZXMuXG4gICAqICAgICAgICAgIFJldHVybnMgYG51bGxgIGlmIHRoZSB2YWx1ZXMgYXJlIGVxdWFsIG9yIGJvdGggXCJlbXB0eVwiLlxuICAgKi9cbiAgZ2V0RGF0YVZhbHVlRGlmZmVyZW5jZXMgPSAodmFsMTogYW55LCB2YWwyOiBhbnkpOiBJU3VtbWFyeUVudHJ5RGlmZlZhbHVlID0+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWwxKSAmJiBBcnJheS5pc0FycmF5KHZhbDIpKSB7XG4gICAgICBjb25zdCBsZW5ndGgxID0gdmFsMS5sZW5ndGg7XG4gICAgICBjb25zdCBsZW5ndGgyID0gdmFsMi5sZW5ndGg7XG5cbiAgICAgIGlmIChsZW5ndGgxICE9PSBsZW5ndGgyKSB7XG4gICAgICAgIHJldHVybiB7dmFsMTogbGVuZ3RoMS50b1N0cmluZygpLCB2YWwyOiBsZW5ndGgyLnRvU3RyaW5nKCl9O1xuICAgICAgfVxuXG4gICAgICAvLyBDb3VudCBjb250ZW50IGRpZmZlcmVuY2VzIHdoZW4gbGVuZ3RocyBhcmUgdGhlIHNhbWVcbiAgICAgIGxldCBkaWZmZXJlbmNlcyA9IDA7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDE7IGkrKykge1xuICAgICAgICBpZiAoIXRoaXMuY29tcGFyZUNvbnRlbnRWYWx1ZUVxdWFsaXR5KHZhbDFbaV0sIHZhbDJbaV0pKSB7XG4gICAgICAgICAgZGlmZmVyZW5jZXMrKztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoZGlmZmVyZW5jZXMgPiAwKSB7XG4gICAgICAgIHJldHVybiB7dmFsMTogZGlmZmVyZW5jZXMudG9TdHJpbmcoKSwgdmFsMjogZGlmZmVyZW5jZXMudG9TdHJpbmcoKX07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpc0VtcHR5VmFsMSA9IFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh2YWwxKTtcbiAgICBjb25zdCBpc0VtcHR5VmFsMiA9IFV0aWxpdGllc1NlcnZpY2UuaXNFbXB0eSh2YWwyKTtcblxuICAgIGlmIChpc0VtcHR5VmFsMSAmJiBpc0VtcHR5VmFsMikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHZhbDEgIT09IHZhbDIgfHwgaXNFbXB0eVZhbDEgfHwgaXNFbXB0eVZhbDIpIHtcbiAgICAgIHJldHVybiB7dmFsMTogaXNFbXB0eVZhbDEgPyBcIlwiIDogdmFsMSwgdmFsMjogaXNFbXB0eVZhbDIgPyBcIlwiIDogdmFsMn07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH07XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIHByb3BlcnRpZXMgZnJvbSBhbiBvYmplY3QgdGhhdCBhcmUgYXJyYXlzIGFuZCByZXR1cm5zIHRoZWlyIGRldGFpbHMuXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBkYXRhIC0gVGhlIG9iamVjdCB0byBhbmFseXplLlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IEFuIGFycmF5IG9mIG9iamVjdHMsIGVhY2ggcmVwcmVzZW50aW5nIGEgcHJvcGVydHkgb2YgdGhlIGlucHV0IG9iamVjdFxuICAgKiB0aGF0IGlzIGFuIGFycmF5LiBFYWNoIG9iamVjdCBpbmNsdWRlcyB0aGUgcHJvcGVydHkgbmFtZSAoYGxhYmVsYCksIHRoZSBudW1iZXIgb2YgZWxlbWVudHNcbiAgICogaW4gdGhlIGFycmF5IChgbGVuZ3RoYCksIHRoZSBhcnJheSBjb250ZW50IGl0c2VsZiAoYGNvbnRlbnRgKSwgYW5kIHRoZSB0eXBlIG9mIHRoZSBhcnJheSAoYHR5cGVgKS5cbiAgICovXG4gIGdldEluZGV4RGF0YUFycmF5RGV0YWlscyA9IChpbmRleERhdGE6IHtba2V5OiBzdHJpbmddOiBhbnl9KTogSW5kZXhEYXRhQXJyYXlEZXRhaWxzW10gPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBpbmRleERhdGEuZGF0YTtcbiAgICBjb25zdCBmb3JtRWxlbWVudHMgPSBpbmRleERhdGEuZm9ybS5lbGVtZW50cztcblxuICAgIC8vIEhlbHBlciBmdW5jdGlvbiB0byBmaW5kIHRoZSB0eXBlIG9mIGFuIGVsZW1lbnQgYnkgaXRzIGxhYmVsXG4gICAgY29uc3QgZmluZFR5cGVBbmRMYWJlbEJ5TmFtZSA9IChlbGVtZW50cywgbGFiZWwpID0+IHtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiBlbGVtZW50cykge1xuICAgICAgICBpZiAoZWxlbWVudC5uYW1lID09PSBsYWJlbCkge1xuICAgICAgICAgIHJldHVybiB7dHlwZTogZWxlbWVudC50eXBlLCBsYWJlbDogZWxlbWVudC5sYWJlbH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVsZW1lbnQuZWxlbWVudHMgJiYgZWxlbWVudC5lbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgdHlwZUxhYmVsSW5mbyA9IGZpbmRUeXBlQW5kTGFiZWxCeU5hbWUoZWxlbWVudC5lbGVtZW50cywgbGFiZWwpO1xuICAgICAgICAgIGlmICh0eXBlTGFiZWxJbmZvKSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZUxhYmVsSW5mbztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbiAgICByZXR1cm4gT2JqZWN0LmtleXMoZGF0YSlcbiAgICAgIC5maWx0ZXIoKGtleSkgPT4gQXJyYXkuaXNBcnJheShkYXRhW2tleV0pKVxuICAgICAgLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IHR5cGVMYWJlbE9iaiA9IGZpbmRUeXBlQW5kTGFiZWxCeU5hbWUoZm9ybUVsZW1lbnRzLCBrZXkpO1xuICAgICAgICBpZiAodHlwZUxhYmVsT2JqKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsOiB0eXBlTGFiZWxPYmoubGFiZWwsXG4gICAgICAgICAgICBsZW5ndGg6IGRhdGFba2V5XS5sZW5ndGgsXG4gICAgICAgICAgICBjb250ZW50OiBkYXRhW2tleV0sXG4gICAgICAgICAgICB0eXBlOiB0eXBlTGFiZWxPYmoudHlwZSxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYWJlbDogJycsXG4gICAgICAgICAgICBsZW5ndGg6IGRhdGFba2V5XS5sZW5ndGgsXG4gICAgICAgICAgICBjb250ZW50OiBkYXRhW2tleV0sXG4gICAgICAgICAgICB0eXBlOiAnJyxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogQ29tcGFyZXMgdGhlIGNvbnRlbnQgb2YgdHdvIHNldHMgb2YgaW5kZXggZGF0YSBhcnJheSBkZXRhaWxzIGFuZCBleHRyYWN0cyB0aGUgZGlmZmVyZW5jZXMuXG4gICAqXG4gICAqIFRoaXMgZnVuY3Rpb24gbWFwcyB0aHJvdWdoIHRoZSBmaXJzdCBzZXQgb2YgaW5kZXggZGF0YSBhcnJheSBkZXRhaWxzLCBmaW5kcyB0aGUgbWF0Y2hpbmdcbiAgICogY29udGVudCBmcm9tIHRoZSBzZWNvbmQgc2V0IGJ5IGxhYmVsLCBhbmQgdGhlbiBjYWxjdWxhdGVzIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZW0uXG4gICAqIEl0IHJldHVybnMgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoIGxhYmVscyBhbmQgdGhlIGNhbGN1bGF0ZWQgZGlmZmVyZW5jZXMsIGZpbHRlcmluZyBvdXRcbiAgICogYW55IGVudHJpZXMgd2l0aG91dCBhIGRpZmZlcmVuY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7SW5kZXhEYXRhQXJyYXlEZXRhaWxbXX0gaW5kZXhEYXRhQXJyYXlEZXRhaWxzIC0gVGhlIGZpcnN0IHNldCBvZiBpbmRleCBkYXRhIGFycmF5IGRldGFpbHMuXG4gICAqIEBwYXJhbSB7SW5kZXhEYXRhQXJyYXlEZXRhaWxbXX0gaW5kZXhEYXRhMkFycmF5RGV0YWlscyAtIFRoZSBzZWNvbmQgc2V0IG9mIGluZGV4IGRhdGEgYXJyYXkgZGV0YWlscy5cbiAgICogQHJldHVybnMge0FycmF5PHtsYWJlbDogc3RyaW5nLCBfdmFsdWU6IGFueX0+fSBBbiBhcnJheSBvZiBvYmplY3RzIGNvbnRhaW5pbmcgbGFiZWxzIGFuZCB0aGVpciBkaWZmZXJlbmNlcy5cbiAgICovXG4gIGV4dHJhY3REYXRhVmFsdWVzV2l0aERpZmZlcmVuY2VzID0gKGluZGV4RGF0YUFycmF5RGV0YWlscywgaW5kZXhEYXRhMkFycmF5RGV0YWlscyk6IERhdGFWYWx1ZURpZmZlcmVuY2VbXSA9PiB7XG4gICAgcmV0dXJuIGluZGV4RGF0YUFycmF5RGV0YWlscy5tYXAoKHtsYWJlbCwgdHlwZSwgY29udGVudH0pID0+IHtcbiAgICAgIGNvbnN0IG1hdGNoaW5nUHJvcCA9IGluZGV4RGF0YTJBcnJheURldGFpbHMuZmluZChwcm9wID0+IHByb3AubGFiZWwgPT09IGxhYmVsKTtcbiAgICAgIGNvbnN0IGNvbnRlbnQyID0gbWF0Y2hpbmdQcm9wID8gbWF0Y2hpbmdQcm9wLmNvbnRlbnQgOiBbXTtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5nZXREYXRhVmFsdWVEaWZmZXJlbmNlcyhjb250ZW50LCBjb250ZW50Mik7XG4gICAgICBpZiAodHlwZSA9PT0gXCJUQUJMRVwiICYmIG5ld1ZhbHVlICYmIG5ld1ZhbHVlLnZhbDEgJiYgbmV3VmFsdWUudmFsMikge1xuICAgICAgICBuZXdWYWx1ZS52YWwxID0gXCJcIjtcbiAgICAgICAgbmV3VmFsdWUudmFsMiA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmluZGV4ZGF0YS5zdW1tYXJ5LnRhYmxlLmNoYW5nZScpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIHR5cGUsXG4gICAgICAgIF92YWx1ZTogbmV3VmFsdWUsXG4gICAgICB9O1xuICAgIH0pLmZpbHRlcigodjoge192YWx1ZTogYW55O30pID0+IHYuX3ZhbHVlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNVc2VyQWxsb3dlZFRvU2hvd1N0b3JhZ2VTZWN0aW9uID0gdGhpcy51c2VyU2VydmljZS5nZXRDdXJyZW50VXNlcigpLmhhc1ByaXZpbGVnZSgnTUFOQUdFX1NUT1JBR0VTJyk7XG4gICAgdGhpcy5nZXRDYWNoZWRBY2NvcmRpb25TdGF0ZSgpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5kZXhEYXRhIHtcbiAgZm9ybTogYW55O1xuICBkYXRhOiBhbnk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW1wdHktY29udGFpbmVyXCIgKm5nSWY9XCJlbXB0eVN0YXRlXCI+e3snZW8uaW5kZXhkYXRhLnN1bW1hcnkubm8uY2hhbmdlJyB8IHRyYW5zbGF0ZX19PC9kaXY+XG48ZGl2IGNsYXNzPVwiaW5kZXhkYXRhLXN1bW1hcnlcIj5cblxuICA8ZGl2IGNsYXNzPVwiY29yZS1zZWN0aW9uXCIgKm5nSWY9XCJjb3JlVmFsdWVzPy5sZW5ndGhcIj5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb3JlVmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5fdmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWx1ZUNsaWNrZWQpPVwib25WYWx1ZUNsaWNrKCRldmVudCwgaXRlbSlcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgQGlmIChpdGVtPy5jb250ZXh0Rm9sZGVyICYmICFkaWZmQWN0aXZlKSB7XG4gICAgICA8ZW8tc2ltcGxlLWFjY29yZGlvbiBbaGVhZGVyXT1cIml0ZW0uY29udGV4dEZvbGRlcj8udHlwZT8ubGFiZWwgKyAnOidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiIFtzZWxlY3RlZF09XCJpbmZvRm9sZGVyQWNjXCIgKHNlbGVjdENoYW5nZSk9XCJvbkNvbnRleHRmb2xkZXJUb2dnbGUoJGV2ZW50KVwiPlxuICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YVZhbHVlczJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0ubGFiZWxcIiBbdmFsdWVdPVwiaXRlbS5kYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblZhbHVlQ2xpY2tlZCk9XCJvblZhbHVlQ2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuICAgICAgPC9lby1zaW1wbGUtYWNjb3JkaW9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkYXRhLXNlY3Rpb25cIiAqbmdJZj1cImRhdGFWYWx1ZXMgJiYgZGF0YVZhbHVlcy5sZW5ndGhcIj5cbiAgICA8ZW8tc2ltcGxlLWFjY29yZGlvbiAjZGF0YUFjY29yZGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiKCdlby5pbmRleGRhdGEuc3VtbWFyeS5tb3JlJyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJtb3JlSW5mb0FjY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdENoYW5nZSk9XCJvbk1vcmVJbmZvVG9nZ2xlKCRldmVudClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRhXCI+XG5cbiAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFWYWx1ZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0uX3ZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblZhbHVlQ2xpY2tlZCk9XCJvblZhbHVlQ2xpY2soJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuICAgICAgPC9kaXY+XG4gICAgPC9lby1zaW1wbGUtYWNjb3JkaW9uPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYmFzZXBhcmFtcy1zZWN0aW9uXCIgKm5nSWY9XCJiYXNlcGFyYW1zXCI+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCJiYXNlcGFyYW1zLm1vZGlmaWVkT24gJiYgIWRpZmZBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5nbG9iYWwuYmFzZXBhcmFtLm1vZGlmaWVkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLm1vZGlmaWVkT24gfCBsb2NhbGVEYXRlXCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cIiFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5tb2RpZmllcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5tb2RpZmllZEJ5XCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cImJhc2VwYXJhbXMuY3JlYXRlZE9uICYmICFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5jcmVhdGVkJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLmNyZWF0ZWRPbiB8IGxvY2FsZURhdGVcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiIWRpZmZBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5nbG9iYWwuYmFzZXBhcmFtLmNyZWF0b3InIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuY3JlYXRlZEJ5XCI+XG4gICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSAqbmdJZj1cIiFkaWZmQWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ub2JqZWN0LnN1bW1hcnkudmVyc2lvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ2V0VmVyc2lvbkxpbmsoYmFzZXBhcmFtcy52ZXJzaW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblZhbHVlQ2xpY2tlZCk9XCJvblZhbHVlQ2xpY2soJGV2ZW50LCB7dmVyc2lvbjogYmFzZXBhcmFtcy52ZXJzaW9ufSlcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5maWxlbmFtZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5jb250ZW50RmlsZU5hbWVcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiYmFzZXBhcmFtcy5jb250ZW50RmlsZVNpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5nbG9iYWwuYmFzZXBhcmFtLmZpbGVzaXplJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkaWZmQWN0aXZlID8ge3ZhbDE6IGJhc2VwYXJhbXMuY29udGVudEZpbGVTaXplWyd2YWwxJ10gfCBmaWxlU2l6ZSwgdmFsMjogYmFzZXBhcmFtcy5jb250ZW50RmlsZVNpemVbJ3ZhbDInXSB8IGZpbGVTaXplfSA6IChiYXNlcGFyYW1zLmNvbnRlbnRGaWxlU2l6ZSB8IGZpbGVTaXplKVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5taW1ldHlwZWdyb3VwJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJiYXNlcGFyYW1zLm1pbWVHcm91cFwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInYmFzZXBhcmFtcy1zZWN0aW9uJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8uZ2xvYmFsLmJhc2VwYXJhbS5taW1ldHlwZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5taW1lVHlwZVwiPlxuICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgKm5nSWY9XCIhZGlmZkFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiJ2Jhc2VwYXJhbXMtc2VjdGlvbidcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLmdsb2JhbC5iYXNlcGFyYW0uaWQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImJhc2VwYXJhbXMuaWRcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5ICpuZ0lmPVwiYmFzZXBhcmFtcy5jb250ZW50SWQgIT09IGJhc2VwYXJhbXMuaWQgJiYgIWRpZmZBY3RpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cIidiYXNlcGFyYW1zLXNlY3Rpb24nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5nbG9iYWwuYmFzZXBhcmFtLmNvbnRlbnRJZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5jb250ZW50SWRcIj5cbiAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuICA8L2Rpdj5cblxuICBAaWYoc3RvcmFnZUluZm9zPy5sZW5ndGggJiYgaXNVc2VyQWxsb3dlZFRvU2hvd1N0b3JhZ2VTZWN0aW9uICYmICFpc0NoYW5nZXNUYWIpIHtcbiAgICA8ZGl2IGNsYXNzPVwic3RvcmFnZWluZm9cIj5cbiAgICAgIDxlby1zaW1wbGUtYWNjb3JkaW9uIFtoZWFkZXJdPVwiKCdlby5zdGF0ZS5zZXR0aW5ncy5zdG9yYWdlaW5mbycgfCB0cmFuc2xhdGUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJkYXRhSW5mb0FjY1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0Q2hhbmdlKT1cIm9uU3RvcmFnZUluZm9Ub2dnbGUoJGV2ZW50KVwiPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdG9yYWdlaW5mby1lbnRyeSBiYXNlcGFyYW1zLXNlY3Rpb25cIj5cbiAgICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5nbG9iYWwuYmFzZXBhcmFtLmRpZ2VzdCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYmFzZXBhcmFtcy5kaWdlc3RcIj5cbiAgICAgICAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmFnZWluZm8tZW50cnkgYmFzZXBhcmFtcy1zZWN0aW9uXCIgKm5nRm9yPVwibGV0IHN0SW5mbyBvZiBzdG9yYWdlSW5mb3M7IHRyYWNrQnk6IHRyYWNrQnlJbmRleFwiPlxuICAgICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidzdG9yYWdlaW5mby1zdWJlbnRyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdG9yYWdlaW5mby5yZXRlbnRpb24nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInN0SW5mby5yZXRlbnRpb24gfCBsb2NhbGVEYXRlIDogJ2VvU2hvcnREYXRlJ1wiPlxuICAgICAgICAgIDwvZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnk+XG5cbiAgICAgICAgICA8ZW8taW5kZXhkYXRhLXN1bW1hcnktZW50cnkgW2NsYXNzTmFtZV09XCInc3RvcmFnZWluZm8tc3ViZW50cnknXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidlby5vYmplY3Quc3RvcmFnZWluZm8ucGVybWFuZW5jZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RJbmZvLnBlcm1hbmVuY2VcIj5cbiAgICAgICAgICA8L2VvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5PlxuXG4gICAgICAgICAgPGVvLWluZGV4ZGF0YS1zdW1tYXJ5LWVudHJ5IFtjbGFzc05hbWVdPVwiJ3N0b3JhZ2VpbmZvLXN1YmVudHJ5J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInZW8ub2JqZWN0LnN0b3JhZ2VpbmZvLnNldG5hbWUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInN0SW5mby5zZXRuYW1lXCI+XG4gICAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidzdG9yYWdlaW5mby1zdWJlbnRyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdG9yYWdlaW5mby5zdG9yYWdlbmFtZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RJbmZvLnN0b3JhZ2VuYW1lXCI+XG4gICAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cblxuICAgICAgICAgIDxlby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeSBbY2xhc3NOYW1lXT1cIidzdG9yYWdlaW5mby1zdWJlbnRyeSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2VvLm9iamVjdC5zdG9yYWdlaW5mby5sb2NhdGlvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RJbmZvLmxvY2F0aW9uXCI+XG4gICAgICAgICAgPC9lby1pbmRleGRhdGEtc3VtbWFyeS1lbnRyeT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2VvLXNpbXBsZS1hY2NvcmRpb24+XG4gICAgPC9kaXY+XG4gIH1cblxuPC9kaXY+XG4iXX0=
@@ -6,13 +6,13 @@ export class LoadingSpinnerComponent {
6
6
  }
7
7
  ngOnInit() {
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: { size: "size", mode: "mode" }, ngImport: i0, template: `
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: LoadingSpinnerComponent, selector: "eo-loading-spinner", inputs: { size: "size", mode: "mode" }, ngImport: i0, template: `
11
11
  <div class="eo-loading">
12
12
  <div class="eo-loader" [ngClass]="{small: size === 'small', medium: size === 'medium', large: size === 'large', dark: mode === 'dark'}"></div>
13
13
  </div>`, isInline: true, styles: [":host{--loader-color: var(--color-accent);--loader-background-color: rgba(var(--color-black-rgb), .1);--loader-color-light: rgba(var(--color-white-rgb), 1);--loader-background-color-light: rgba(var(--color-white-rgb), .2);--loader-border-width: 3px}:host .eo-loader{font-size:10px;position:relative;text-indent:-9999em;border:var(--loader-border-width) solid var(--loader-background-color);border-left-color:var(--loader-color);-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0);-webkit-animation:load8 1.1s infinite linear;animation:load8 1.1s infinite linear}:host .eo-loader,:host .eo-loader:after{border-radius:50%;width:5em;height:5em;border-width:4px}:host .eo-loader.large{width:10em;height:10em;border-width:8px}:host .eo-loader.medium{width:6em;height:6em;border-width:4px}:host .eo-loader.small{width:2em;height:2em;border-width:2px}:host .eo-loader.dark{border-color:var(--loader-background-color-light);border-left-color:var(--loader-color)}:host-context(.dark) .eo-loader{border-color:var(--loader-background-color-light);border-left-color:var(--loader-color-light)}@-webkit-keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load8{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: LoadingSpinnerComponent, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: LoadingSpinnerComponent, decorators: [{
16
16
  type: Component,
17
17
  args: [{ selector: 'eo-loading-spinner', template: `
18
18
  <div class="eo-loading">
@@ -36,14 +36,14 @@ let OutsideClickDirective = class OutsideClickDirective {
36
36
  onOutsideEvent(event) {
37
37
  this.eoOutsideClick.emit(event);
38
38
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OutsideClickDirective, deps: [{ token: i0.ElementRef }, { token: i1.EventService }], target: i0.ɵɵFactoryTarget.Directive }); }
40
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: OutsideClickDirective, selector: "[eoOutsideClick]", outputs: { eoOutsideClick: "eoOutsideClick" }, host: { listeners: { "document:keydown": "keyboardInput($event,$event.target)", "document:mousedown": "onClick($event,$event.target)" } }, ngImport: i0 }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: OutsideClickDirective, deps: [{ token: i0.ElementRef }, { token: i1.EventService }], target: i0.ɵɵFactoryTarget.Directive }); }
40
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: OutsideClickDirective, selector: "[eoOutsideClick]", outputs: { eoOutsideClick: "eoOutsideClick" }, host: { listeners: { "document:keydown": "keyboardInput($event,$event.target)", "document:mousedown": "onClick($event,$event.target)" } }, ngImport: i0 }); }
41
41
  };
42
42
  OutsideClickDirective = __decorate([
43
43
  UntilDestroy()
44
44
  ], OutsideClickDirective);
45
45
  export { OutsideClickDirective };
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OutsideClickDirective, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: OutsideClickDirective, decorators: [{
47
47
  type: Directive,
48
48
  args: [{
49
49
  selector: '[eoOutsideClick]'
@@ -46,10 +46,10 @@ export class OverlayComponent {
46
46
  this.overlayRef.close();
47
47
  }
48
48
  }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OverlayComponent, deps: [{ token: i0.ElementRef }, { token: i1.YvcOverlayService }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: OverlayComponent, selector: "eo-overlay", inputs: { iconSrc: "iconSrc", badge: "badge", iconClass: "iconClass", active: "active", iconTitle: "iconTitle", userAvatar: "userAvatar" }, viewQueries: [{ propertyName: "dialogContent", first: true, predicate: ["dialogContent"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"iconSrc;else btn\">\n <eo-icon class=\"overlayIcon button {{iconClass}}\"\n (click)=\"toggle($event)\"\n (keyup.enter)=\"toggle($event)\"\n [iconSrc]=\"iconSrc\"\n [badge]=\"badge\"\n [ngClass]=\"{active: active}\"\n tabindex=\"0\"\n [iconTitle]=\"iconTitle\"></eo-icon>\n</ng-container>\n<ng-template #btn>\n <div *ngIf=\"!userAvatar; else avatar\" (click)=\"toggle($event)\" (keyup.enter)=\"toggle($event)\">\n <ng-content select=\".btn\"></ng-content>\n </div>\n</ng-template>\n<ng-template #avatar>\n <eo-user-avatar class=\"btn\" id=\"app-profile\" (click)=\"toggle($event)\" (keyup.enter)=\"toggle($event)\" [showPresence]=\"true\" [title]=\"'eo.bar.button.user.profile.title' | translate\" tabindex=\"0\"></eo-user-avatar>\n</ng-template>\n<ng-template #dialogContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host ::ng-deep eo-icon.active{color:var(--color-accent)}:host ::ng-deep #app-profile{margin:0 var(--app-pane-padding);width:40px;height:40px;border-radius:50%;border:2px solid transparent;cursor:pointer}:host ::ng-deep #app-profile:focus,:host ::ng-deep #app-profile:hover{border-color:var(--color-accent)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i4.UserAvatarComponent, selector: "eo-user-avatar", inputs: ["showPresence", "previewUri"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: OverlayComponent, deps: [{ token: i0.ElementRef }, { token: i1.YvcOverlayService }], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: OverlayComponent, selector: "eo-overlay", inputs: { iconSrc: "iconSrc", badge: "badge", iconClass: "iconClass", active: "active", iconTitle: "iconTitle", userAvatar: "userAvatar" }, viewQueries: [{ propertyName: "dialogContent", first: true, predicate: ["dialogContent"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"iconSrc;else btn\">\n <eo-icon class=\"overlayIcon button {{iconClass}}\"\n (click)=\"toggle($event)\"\n (keyup.enter)=\"toggle($event)\"\n [iconSrc]=\"iconSrc\"\n [badge]=\"badge\"\n [ngClass]=\"{active: active}\"\n tabindex=\"0\"\n [iconTitle]=\"iconTitle\"></eo-icon>\n</ng-container>\n<ng-template #btn>\n <div *ngIf=\"!userAvatar; else avatar\" (click)=\"toggle($event)\" (keyup.enter)=\"toggle($event)\">\n <ng-content select=\".btn\"></ng-content>\n </div>\n</ng-template>\n<ng-template #avatar>\n <eo-user-avatar class=\"btn\" id=\"app-profile\" (click)=\"toggle($event)\" (keyup.enter)=\"toggle($event)\" [showPresence]=\"true\" [title]=\"'eo.bar.button.user.profile.title' | translate\" tabindex=\"0\"></eo-user-avatar>\n</ng-template>\n<ng-template #dialogContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host ::ng-deep eo-icon.active{color:var(--color-accent)}:host ::ng-deep #app-profile{margin:0 var(--app-pane-padding);width:40px;height:40px;border-radius:50%;border:2px solid transparent;cursor:pointer}:host ::ng-deep #app-profile:focus,:host ::ng-deep #app-profile:hover{border-color:var(--color-accent)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i4.UserAvatarComponent, selector: "eo-user-avatar", inputs: ["showPresence", "previewUri"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: OverlayComponent, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: OverlayComponent, decorators: [{
53
53
  type: Component,
54
54
  args: [{ selector: 'eo-overlay', template: "<ng-container *ngIf=\"iconSrc;else btn\">\n <eo-icon class=\"overlayIcon button {{iconClass}}\"\n (click)=\"toggle($event)\"\n (keyup.enter)=\"toggle($event)\"\n [iconSrc]=\"iconSrc\"\n [badge]=\"badge\"\n [ngClass]=\"{active: active}\"\n tabindex=\"0\"\n [iconTitle]=\"iconTitle\"></eo-icon>\n</ng-container>\n<ng-template #btn>\n <div *ngIf=\"!userAvatar; else avatar\" (click)=\"toggle($event)\" (keyup.enter)=\"toggle($event)\">\n <ng-content select=\".btn\"></ng-content>\n </div>\n</ng-template>\n<ng-template #avatar>\n <eo-user-avatar class=\"btn\" id=\"app-profile\" (click)=\"toggle($event)\" (keyup.enter)=\"toggle($event)\" [showPresence]=\"true\" [title]=\"'eo.bar.button.user.profile.title' | translate\" tabindex=\"0\"></eo-user-avatar>\n</ng-template>\n<ng-template #dialogContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: [":host ::ng-deep eo-icon.active{color:var(--color-accent)}:host ::ng-deep #app-profile{margin:0 var(--app-pane-padding);width:40px;height:40px;border-radius:50%;border:2px solid transparent;cursor:pointer}:host ::ng-deep #app-profile:focus,:host ::ng-deep #app-profile:hover{border-color:var(--color-accent)}\n"] }]
55
55
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.YvcOverlayService }], propDecorators: { dialogContent: [{
@@ -18,10 +18,10 @@ export class QueryScopeSelectComponent {
18
18
  this.selectedQueryScope = scope;
19
19
  this.select.emit(this.selectedQueryScope);
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: QueryScopeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: QueryScopeSelectComponent, selector: "eo-query-scope-select", inputs: { selectedQueryScope: ["selection", "selectedQueryScope"] }, outputs: { select: "select" }, ngImport: i0, template: "<div class=\"query-scope\">\n <button type=\"button\" class=\"query-scope__button\" (click)=\"selectQueryScope(QueryScope.ALL)\" \n [ngClass]=\"{'query-scope__button--active': !selectedQueryScope || (selectedQueryScope === QueryScope.ALL)}\"\n translate>eo.search.scope.all.label</button>\n <button type=\"button\" class=\"query-scope__button\" (click)=\"selectQueryScope(QueryScope.CONTENT)\" \n [ngClass]=\"{'query-scope__button--active': selectedQueryScope === QueryScope.CONTENT}\"\n translate>eo.search.scope.content.label</button>\n <button type=\"button\" class=\"query-scope__button\" (click)=\"selectQueryScope(QueryScope.INDEX_DATA)\" \n [ngClass]=\"{'query-scope__button--active': selectedQueryScope === QueryScope.INDEX_DATA}\" \n translate>eo.search.scope.indexdata.label</button>\n</div>", styles: [":host .query-scope{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}:host .query-scope .query-scope__button{margin:0 4px 4px 0;outline:none;border:1px solid rgba(var(--color-white-rgb),.54);border-radius:4px;padding:4px;background-color:#ffffff1a;color:rgba(var(--color-white-rgb),.54);font-size:var(--font-caption)}:host .query-scope .query-scope__button--active{background-color:var(--color-accent)!important;color:#fff!important;border-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: QueryScopeSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: QueryScopeSelectComponent, selector: "eo-query-scope-select", inputs: { selectedQueryScope: ["selection", "selectedQueryScope"] }, outputs: { select: "select" }, ngImport: i0, template: "<div class=\"query-scope\">\n <button type=\"button\" class=\"query-scope__button\" (click)=\"selectQueryScope(QueryScope.ALL)\" \n [ngClass]=\"{'query-scope__button--active': !selectedQueryScope || (selectedQueryScope === QueryScope.ALL)}\"\n translate>eo.search.scope.all.label</button>\n <button type=\"button\" class=\"query-scope__button\" (click)=\"selectQueryScope(QueryScope.CONTENT)\" \n [ngClass]=\"{'query-scope__button--active': selectedQueryScope === QueryScope.CONTENT}\"\n translate>eo.search.scope.content.label</button>\n <button type=\"button\" class=\"query-scope__button\" (click)=\"selectQueryScope(QueryScope.INDEX_DATA)\" \n [ngClass]=\"{'query-scope__button--active': selectedQueryScope === QueryScope.INDEX_DATA}\" \n translate>eo.search.scope.indexdata.label</button>\n</div>", styles: [":host .query-scope{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}:host .query-scope .query-scope__button{margin:0 4px 4px 0;outline:none;border:1px solid rgba(var(--color-white-rgb),.54);border-radius:4px;padding:4px;background-color:#ffffff1a;color:rgba(var(--color-white-rgb),.54);font-size:var(--font-caption)}:host .query-scope .query-scope__button--active{background-color:var(--color-accent)!important;color:#fff!important;border-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: QueryScopeSelectComponent, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: QueryScopeSelectComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{ selector: 'eo-query-scope-select', template: "<div class=\"query-scope\">\n <button type=\"button\" class=\"query-scope__button\" (click)=\"selectQueryScope(QueryScope.ALL)\" \n [ngClass]=\"{'query-scope__button--active': !selectedQueryScope || (selectedQueryScope === QueryScope.ALL)}\"\n translate>eo.search.scope.all.label</button>\n <button type=\"button\" class=\"query-scope__button\" (click)=\"selectQueryScope(QueryScope.CONTENT)\" \n [ngClass]=\"{'query-scope__button--active': selectedQueryScope === QueryScope.CONTENT}\"\n translate>eo.search.scope.content.label</button>\n <button type=\"button\" class=\"query-scope__button\" (click)=\"selectQueryScope(QueryScope.INDEX_DATA)\" \n [ngClass]=\"{'query-scope__button--active': selectedQueryScope === QueryScope.INDEX_DATA}\" \n translate>eo.search.scope.indexdata.label</button>\n</div>", styles: [":host .query-scope{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}:host .query-scope .query-scope__button{margin:0 4px 4px 0;outline:none;border:1px solid rgba(var(--color-white-rgb),.54);border-radius:4px;padding:4px;background-color:#ffffff1a;color:rgba(var(--color-white-rgb),.54);font-size:var(--font-caption)}:host .query-scope .query-scope__button--active{background-color:var(--color-accent)!important;color:#fff!important;border-color:#fff}\n"] }]
27
27
  }], ctorParameters: () => [], propDecorators: { selectedQueryScope: [{
@@ -10,10 +10,10 @@ export class RouterLinkDirective {
10
10
  return false;
11
11
  }
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RouterLinkDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
14
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: RouterLinkDirective, selector: "a[routerLink]", host: { listeners: { "click": "onClick($event.ctrlKey)" } }, ngImport: i0 }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: RouterLinkDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: RouterLinkDirective, selector: "a[routerLink]", host: { listeners: { "click": "onClick($event.ctrlKey)" } }, ngImport: i0 }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RouterLinkDirective, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: RouterLinkDirective, decorators: [{
17
17
  type: Directive,
18
18
  args: [{
19
19
  // tslint:disable-next-line: directive-selector
@@ -43,10 +43,10 @@ export class RtlAwareDirective {
43
43
  }
44
44
  });
45
45
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RtlAwareDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Directive }); }
47
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.4", type: RtlAwareDirective, selector: "[eoRtlAware]", inputs: { eoRtlAware: "eoRtlAware" }, ngImport: i0 }); }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: RtlAwareDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.UserService }], target: i0.ɵɵFactoryTarget.Directive }); }
47
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0", type: RtlAwareDirective, selector: "[eoRtlAware]", inputs: { eoRtlAware: "eoRtlAware" }, ngImport: i0 }); }
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RtlAwareDirective, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: RtlAwareDirective, decorators: [{
50
50
  type: Directive,
51
51
  args: [{
52
52
  selector: '[eoRtlAware]'
@@ -20,10 +20,10 @@ export class SignatureTabComponent {
20
20
  this.user = user;
21
21
  });
22
22
  }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SignatureTabComponent, deps: [{ token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: SignatureTabComponent, selector: "eo-signature-tab", inputs: { dmsObject: "dmsObject" }, ngImport: i0, template: "<ng-container *ngIf=\"dmsObject.data.yuvsigstatus_meta; else tplNoSignature\">\n\n <section class=\"info\">\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.status'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigstatus_meta.label}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.type'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigtype}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigerror\">\n <div class=\"label\">{{'eo.object.signature-tab.label.error'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigerror}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.date'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigdate | localeDate: 'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requestdate'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreqdate | localeDate:'eoShortDate'}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigrequester_meta?.title\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requester'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigrequester_meta.title}} </div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailsubject\">\n <div class=\"label\">{{'eo.object.signature-tab.label.subject'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailsubject}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailbody\">\n <div class=\"label\">{{'eo.object.signature-tab.label.body'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailbody}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigcanceledby\">\n <div class=\"label\">{{'eo.object.signature-tab.label.canceledby'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigcanceledby_meta.title}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigreason\">\n <div class=\"label\">{{'eo.object.signature-tab.label.reason'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreason}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigplatform\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatform'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigplatform}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigplatformid\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatformId'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigplatformid}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signers'|translate}}</div>\n <div class=\"value\">\n <div class=\"signer-container\" *ngFor=\"let s of dmsObject.data.yuvsigners\">\n <div class=\"signerorder\">\n <span class=\"circle\"\n [title]=\"'eo.object.signature-tab.order.tooltip' | translate\">{{s.yuvsignerorder}}</span>\n </div>\n <div class=\"signer\">\n <div class=\"date\" *ngIf=\"s.yuvsignerdate\">{{s.yuvsignerdate | localeDate: 'eoShort'}}</div>\n <div class=\"name\" *ngIf=\"s.yuvsignername\">{{s.yuvsignername}}</div>\n <div class=\"email\" *ngIf=\"s.yuvsigneremail\">{{s.yuvsigneremail}}</div>\n <div class=\"phone\" *ngIf=\"s.yuvsignerphone\">{{s.yuvsignerphone}}</div>\n <div class=\"state {{s.yuvsignerstatus}}\"><span *ngIf=\"s.yuvsignerstatus_meta?.label\">{{s.yuvsignerstatus_meta.label}}</span></div>\n <div class=\"reason\" *ngIf=\"s.yuvsignercomment\">{{s.yuvsignercomment}}</div>\n </div>\n\n </div>\n </div>\n </div>\n </section>\n</ng-container>\n<ng-template #tplNoSignature>\n <div class=\"signature-not-found\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_signature.svg', text:'eo.object.signature-tab.no-signatures'}\"></eo-error-message>\n </div>\n</ng-template>", styles: [":host{display:block;padding:var(--app-pane-padding);height:100%;box-sizing:border-box;overflow-y:auto}:host .row{display:flex;margin:0 calc(var(--app-pane-padding) / -4) 2px;line-height:1.5em}:host .row .label,:host .row .value{margin:calc(var(--app-pane-padding) / 4)}:host .row .label{display:inline-block;flex-basis:30%;flex-shrink:0;background-color:var(--color-primary-3);color:var(--color-white);padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 4);border-radius:2px;white-space:normal}:host .row .circle{display:inline-block;width:2em;border-radius:50%;background-color:var(--color-primary-3);color:#fff;text-align:center;line-height:1.8em}:host .row .signerorder{align-self:center}:host .row .signer-container{--signer-border-radius: 4px;--signer-row-gap: calc(var(--app-pane-padding) / 2);--signer-icon-color: var(--text-color-hint);padding:calc(var(--app-pane-padding) / 2);background-color:var(--panel-background);border-radius:0 var(--signer-border-radius) var(--signer-border-radius) 0;margin-bottom:calc(var(--app-pane-padding) / 4);display:flex}:host .row .signer-container .signer{display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:1fr auto;column-gap:var(--app-pane-padding);grid-template-areas:\"name name\" \"email email\" \"phone phone\" \"state date\" \"reason reason\";margin-left:5px}:host .row .signer-container .signed{--signer-icon-color: var(--color-success)}:host .row .signer-container .revised,:host .row .signer-container .expired,:host .row .signer-container .cancelled{--signer-icon-color: var(--color-warning)}:host .row .signer-container .error{--signer-icon-color: var(--color-error)}:host .row .signer-container .date{grid-area:date;color:var(--text-color-caption);margin-top:var(--signer-row-gap);align-self:center}:host .row .signer-container .name{grid-area:name;font-weight:var(--font-weight-bold)}:host .row .signer-container .email{grid-area:email}:host .row .signer-container .phone{grid-area:phone}:host .row .signer-container .state{grid-area:state;margin-top:var(--signer-row-gap)}:host .row .signer-container .state span{display:inline-block;padding:2px 4px 1px;background-color:var(--signer-icon-color);color:#fff;border-radius:4px}:host .row .signer-container .reason{grid-area:reason;margin-top:var(--signer-row-gap);word-wrap:break-word}:host .signature-not-found{height:100%;display:flex;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i5.LocaleDatePipe, name: "localeDate" }] }); }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SignatureTabComponent, deps: [{ token: i1.UserService }], target: i0.ɵɵFactoryTarget.Component }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: SignatureTabComponent, selector: "eo-signature-tab", inputs: { dmsObject: "dmsObject" }, ngImport: i0, template: "<ng-container *ngIf=\"dmsObject.data.yuvsigstatus_meta; else tplNoSignature\">\n\n <section class=\"info\">\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.status'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigstatus_meta.label}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.type'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigtype}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigerror\">\n <div class=\"label\">{{'eo.object.signature-tab.label.error'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigerror}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.date'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigdate | localeDate: 'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requestdate'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreqdate | localeDate:'eoShortDate'}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigrequester_meta?.title\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requester'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigrequester_meta.title}} </div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailsubject\">\n <div class=\"label\">{{'eo.object.signature-tab.label.subject'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailsubject}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailbody\">\n <div class=\"label\">{{'eo.object.signature-tab.label.body'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailbody}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigcanceledby\">\n <div class=\"label\">{{'eo.object.signature-tab.label.canceledby'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigcanceledby_meta.title}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigreason\">\n <div class=\"label\">{{'eo.object.signature-tab.label.reason'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreason}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigplatform\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatform'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigplatform}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigplatformid\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatformId'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigplatformid}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signers'|translate}}</div>\n <div class=\"value\">\n <div class=\"signer-container\" *ngFor=\"let s of dmsObject.data.yuvsigners\">\n <div class=\"signerorder\">\n <span class=\"circle\"\n [title]=\"'eo.object.signature-tab.order.tooltip' | translate\">{{s.yuvsignerorder}}</span>\n </div>\n <div class=\"signer\">\n <div class=\"date\" *ngIf=\"s.yuvsignerdate\">{{s.yuvsignerdate | localeDate: 'eoShort'}}</div>\n <div class=\"name\" *ngIf=\"s.yuvsignername\">{{s.yuvsignername}}</div>\n <div class=\"email\" *ngIf=\"s.yuvsigneremail\">{{s.yuvsigneremail}}</div>\n <div class=\"phone\" *ngIf=\"s.yuvsignerphone\">{{s.yuvsignerphone}}</div>\n <div class=\"state {{s.yuvsignerstatus}}\"><span *ngIf=\"s.yuvsignerstatus_meta?.label\">{{s.yuvsignerstatus_meta.label}}</span></div>\n <div class=\"reason\" *ngIf=\"s.yuvsignercomment\">{{s.yuvsignercomment}}</div>\n </div>\n\n </div>\n </div>\n </div>\n </section>\n</ng-container>\n<ng-template #tplNoSignature>\n <div class=\"signature-not-found\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_signature.svg', text:'eo.object.signature-tab.no-signatures'}\"></eo-error-message>\n </div>\n</ng-template>", styles: [":host{display:block;padding:var(--app-pane-padding);height:100%;box-sizing:border-box;overflow-y:auto}:host .row{display:flex;margin:0 calc(var(--app-pane-padding) / -4) 2px;line-height:1.5em}:host .row .label,:host .row .value{margin:calc(var(--app-pane-padding) / 4)}:host .row .label{display:inline-block;flex-basis:30%;flex-shrink:0;background-color:var(--color-primary-3);color:var(--color-white);padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 4);border-radius:2px;white-space:normal}:host .row .circle{display:inline-block;width:2em;border-radius:50%;background-color:var(--color-primary-3);color:#fff;text-align:center;line-height:1.8em}:host .row .signerorder{align-self:center}:host .row .signer-container{--signer-border-radius: 4px;--signer-row-gap: calc(var(--app-pane-padding) / 2);--signer-icon-color: var(--text-color-hint);padding:calc(var(--app-pane-padding) / 2);background-color:var(--panel-background);border-radius:0 var(--signer-border-radius) var(--signer-border-radius) 0;margin-bottom:calc(var(--app-pane-padding) / 4);display:flex}:host .row .signer-container .signer{display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:1fr auto;column-gap:var(--app-pane-padding);grid-template-areas:\"name name\" \"email email\" \"phone phone\" \"state date\" \"reason reason\";margin-left:5px}:host .row .signer-container .signed{--signer-icon-color: var(--color-success)}:host .row .signer-container .revised,:host .row .signer-container .expired,:host .row .signer-container .cancelled{--signer-icon-color: var(--color-warning)}:host .row .signer-container .error{--signer-icon-color: var(--color-error)}:host .row .signer-container .date{grid-area:date;color:var(--text-color-caption);margin-top:var(--signer-row-gap);align-self:center}:host .row .signer-container .name{grid-area:name;font-weight:var(--font-weight-bold)}:host .row .signer-container .email{grid-area:email}:host .row .signer-container .phone{grid-area:phone}:host .row .signer-container .state{grid-area:state;margin-top:var(--signer-row-gap)}:host .row .signer-container .state span{display:inline-block;padding:2px 4px 1px;background-color:var(--signer-icon-color);color:#fff;border-radius:4px}:host .row .signer-container .reason{grid-area:reason;margin-top:var(--signer-row-gap);word-wrap:break-word}:host .signature-not-found{height:100%;display:flex;justify-content:center;align-items:center}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ErrorMessageComponent, selector: "eo-error-message", inputs: ["emptyState"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i5.LocaleDatePipe, name: "localeDate" }] }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: SignatureTabComponent, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SignatureTabComponent, decorators: [{
27
27
  type: Component,
28
28
  args: [{ selector: 'eo-signature-tab', template: "<ng-container *ngIf=\"dmsObject.data.yuvsigstatus_meta; else tplNoSignature\">\n\n <section class=\"info\">\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.status'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigstatus_meta.label}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.type'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigtype}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigerror\">\n <div class=\"label\">{{'eo.object.signature-tab.label.error'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigerror}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.date'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigdate | localeDate: 'eoShortDate'}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requestdate'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreqdate | localeDate:'eoShortDate'}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigrequester_meta?.title\">\n <div class=\"label\">{{'eo.object.signature-tab.label.requester'|translate}}</div>\n <div class=\"value\">\n {{dmsObject.data.yuvsigrequester_meta.title}} </div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailsubject\">\n <div class=\"label\">{{'eo.object.signature-tab.label.subject'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailsubject}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigemailbody\">\n <div class=\"label\">{{'eo.object.signature-tab.label.body'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigemailbody}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigcanceledby\">\n <div class=\"label\">{{'eo.object.signature-tab.label.canceledby'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigcanceledby_meta.title}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigreason\">\n <div class=\"label\">{{'eo.object.signature-tab.label.reason'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigreason}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigplatform\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatform'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigplatform}}</div>\n </div>\n <div class=\"row\" *ngIf=\"dmsObject.data.yuvsigplatformid\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signingPlatformId'|translate}}</div>\n <div class=\"value\">{{dmsObject.data.yuvsigplatformid}}</div>\n </div>\n <div class=\"row\">\n <div class=\"label\">{{'eo.object.signature-tab.label.signers'|translate}}</div>\n <div class=\"value\">\n <div class=\"signer-container\" *ngFor=\"let s of dmsObject.data.yuvsigners\">\n <div class=\"signerorder\">\n <span class=\"circle\"\n [title]=\"'eo.object.signature-tab.order.tooltip' | translate\">{{s.yuvsignerorder}}</span>\n </div>\n <div class=\"signer\">\n <div class=\"date\" *ngIf=\"s.yuvsignerdate\">{{s.yuvsignerdate | localeDate: 'eoShort'}}</div>\n <div class=\"name\" *ngIf=\"s.yuvsignername\">{{s.yuvsignername}}</div>\n <div class=\"email\" *ngIf=\"s.yuvsigneremail\">{{s.yuvsigneremail}}</div>\n <div class=\"phone\" *ngIf=\"s.yuvsignerphone\">{{s.yuvsignerphone}}</div>\n <div class=\"state {{s.yuvsignerstatus}}\"><span *ngIf=\"s.yuvsignerstatus_meta?.label\">{{s.yuvsignerstatus_meta.label}}</span></div>\n <div class=\"reason\" *ngIf=\"s.yuvsignercomment\">{{s.yuvsignercomment}}</div>\n </div>\n\n </div>\n </div>\n </div>\n </section>\n</ng-container>\n<ng-template #tplNoSignature>\n <div class=\"signature-not-found\">\n <eo-error-message\n [emptyState]=\"{icon: 'ic_signature.svg', text:'eo.object.signature-tab.no-signatures'}\"></eo-error-message>\n </div>\n</ng-template>", styles: [":host{display:block;padding:var(--app-pane-padding);height:100%;box-sizing:border-box;overflow-y:auto}:host .row{display:flex;margin:0 calc(var(--app-pane-padding) / -4) 2px;line-height:1.5em}:host .row .label,:host .row .value{margin:calc(var(--app-pane-padding) / 4)}:host .row .label{display:inline-block;flex-basis:30%;flex-shrink:0;background-color:var(--color-primary-3);color:var(--color-white);padding:calc(var(--app-pane-padding) / 4);margin:0 calc(var(--app-pane-padding) / 4);border-radius:2px;white-space:normal}:host .row .circle{display:inline-block;width:2em;border-radius:50%;background-color:var(--color-primary-3);color:#fff;text-align:center;line-height:1.8em}:host .row .signerorder{align-self:center}:host .row .signer-container{--signer-border-radius: 4px;--signer-row-gap: calc(var(--app-pane-padding) / 2);--signer-icon-color: var(--text-color-hint);padding:calc(var(--app-pane-padding) / 2);background-color:var(--panel-background);border-radius:0 var(--signer-border-radius) var(--signer-border-radius) 0;margin-bottom:calc(var(--app-pane-padding) / 4);display:flex}:host .row .signer-container .signer{display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:1fr auto;column-gap:var(--app-pane-padding);grid-template-areas:\"name name\" \"email email\" \"phone phone\" \"state date\" \"reason reason\";margin-left:5px}:host .row .signer-container .signed{--signer-icon-color: var(--color-success)}:host .row .signer-container .revised,:host .row .signer-container .expired,:host .row .signer-container .cancelled{--signer-icon-color: var(--color-warning)}:host .row .signer-container .error{--signer-icon-color: var(--color-error)}:host .row .signer-container .date{grid-area:date;color:var(--text-color-caption);margin-top:var(--signer-row-gap);align-self:center}:host .row .signer-container .name{grid-area:name;font-weight:var(--font-weight-bold)}:host .row .signer-container .email{grid-area:email}:host .row .signer-container .phone{grid-area:phone}:host .row .signer-container .state{grid-area:state;margin-top:var(--signer-row-gap)}:host .row .signer-container .state span{display:inline-block;padding:2px 4px 1px;background-color:var(--signer-icon-color);color:#fff;border-radius:4px}:host .row .signer-container .reason{grid-area:reason;margin-top:var(--signer-row-gap);word-wrap:break-word}:host .signature-not-found{height:100%;display:flex;justify-content:center;align-items:center}\n"] }]
29
29
  }], ctorParameters: () => [{ type: i1.UserService }], propDecorators: { dmsObject: [{