@eo-sdk/client 11.7.0-beta.2 → 11.8.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 (426) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +35 -35
  3. package/app/eo-client/about-state/about-state.component.d.ts.map +1 -1
  4. package/app/eo-client/dashboard/dashboard.component.d.ts +3 -2
  5. package/app/eo-client/dashboard/dashboard.component.d.ts.map +1 -1
  6. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts +1 -1
  7. package/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.d.ts.map +1 -1
  8. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-setup/signature-statistics-setup.component.d.ts +30 -0
  9. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-setup/signature-statistics-setup.component.d.ts.map +1 -0
  10. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-widget.component.d.ts +23 -0
  11. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-widget.component.d.ts.map +1 -0
  12. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics.interface.d.ts +20 -0
  13. package/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics.interface.d.ts.map +1 -0
  14. package/app/eo-client/eo-client.module.d.ts +32 -29
  15. package/app/eo-client/eo-client.module.d.ts.map +1 -1
  16. package/app/eo-client/settings/settings.component.d.ts +15 -16
  17. package/app/eo-client/settings/settings.component.d.ts.map +1 -1
  18. package/app/eo-client/settings/settings.interface.d.ts +25 -0
  19. package/app/eo-client/settings/settings.interface.d.ts.map +1 -0
  20. package/app/eo-framework/actions/action.module.d.ts +15 -13
  21. package/app/eo-framework/actions/action.module.d.ts.map +1 -1
  22. package/app/eo-framework/actions/actions/custom-actions/custom-actions.component.d.ts.map +1 -1
  23. package/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.d.ts.map +1 -1
  24. package/app/eo-framework/actions/actions/unlock-action/unlock-action.d.ts +4 -3
  25. package/app/eo-framework/actions/actions/unlock-action/unlock-action.d.ts.map +1 -1
  26. package/app/eo-framework/actions/actions/unlock-action/unlock-object-action/unlock-object-action.component.d.ts +23 -0
  27. package/app/eo-framework/actions/actions/unlock-action/unlock-object-action/unlock-object-action.component.d.ts.map +1 -0
  28. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts +0 -1
  29. package/app/eo-framework/app-shell/app-bar/app-search/app-search.component.d.ts.map +1 -1
  30. package/app/eo-framework/form-elements/datetime-range/datetime-range.component.d.ts.map +1 -1
  31. package/app/eo-framework/media/media.component.d.ts +3 -2
  32. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  33. package/app/eo-framework/object-details/object-details.component.d.ts +12 -4
  34. package/app/eo-framework/object-details/object-details.component.d.ts.map +1 -1
  35. package/app/eo-framework/upload-overlay/upload-overlay.component.d.ts +51 -26
  36. package/app/eo-framework/upload-overlay/upload-overlay.component.d.ts.map +1 -1
  37. package/app/eo-framework-core/agent/agent.service.d.ts +7 -2
  38. package/app/eo-framework-core/agent/agent.service.d.ts.map +1 -1
  39. package/app/eo-framework-core/search/app-search.service.d.ts.map +1 -1
  40. package/assets/_default/README.md +2 -2
  41. package/assets/_default/config/extend.json +6 -6
  42. package/assets/_default/config/main.json +44 -44
  43. package/assets/_default/fonts/roboto_bold_macroman/Roboto-Bold-webfont.svg +765 -765
  44. package/assets/_default/fonts/roboto_light_macroman/Roboto-Light-webfont.svg +818 -818
  45. package/assets/_default/fonts/roboto_medium_macroman/Roboto-Medium-webfont.svg +765 -765
  46. package/assets/_default/fonts/roboto_regular_macroman/Roboto-Regular-webfont.svg +795 -795
  47. package/assets/_default/i18n/de.json +1150 -1132
  48. package/assets/_default/i18n/en.json +21 -3
  49. package/assets/_default/i18n/po/de.po +310 -310
  50. package/assets/_default/i18n/po/en.po +310 -310
  51. package/assets/_default/svg/ic_delete_sweep.svg +3 -3
  52. package/assets/_default/svg/ic_emoticon-cool.svg +1 -1
  53. package/assets/_default/svg/ic_kitt-loader.svg +1 -1
  54. package/assets/_default/svg/ic_link.svg +6 -6
  55. package/assets/_default/svg/ic_not_listed_location.svg +4 -4
  56. package/assets/_default/theme/theme.css +13 -13
  57. package/assets/dashboard.json +47 -47
  58. package/assets/i18n/temp.json +584 -584
  59. package/assets/i18n/temp.pot +1753 -1753
  60. package/esm2022/app/eo-client/about-state/about-state.component.mjs +5 -5
  61. package/esm2022/app/eo-client/dashboard/dashboard.component.mjs +22 -8
  62. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-setup/charts-setup.component.mjs +13 -17
  63. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/charts-widget.component.mjs +3 -3
  64. package/esm2022/app/eo-client/dashboard/widgets/charts-widget/icharts.mjs +1 -1
  65. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-setup/count-objects-setup.component.mjs +3 -3
  66. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects-widget.component.mjs +3 -3
  67. package/esm2022/app/eo-client/dashboard/widgets/count-objects-widget/count-objects.model.mjs +1 -1
  68. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/IHitlist.mjs +1 -1
  69. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-setup/hitlist-setup.component.mjs +3 -3
  70. package/esm2022/app/eo-client/dashboard/widgets/hitlist-widget/hitlist-widget.component.mjs +3 -3
  71. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-setup/iframe-setup.component.mjs +3 -3
  72. package/esm2022/app/eo-client/dashboard/widgets/iframe-widget/iframe-widget.component.mjs +3 -3
  73. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-setup/info-inbox-setup.component.mjs +3 -3
  74. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox-widget.component.mjs +3 -3
  75. package/esm2022/app/eo-client/dashboard/widgets/info-inbox-widget/info-inbox.model.mjs +1 -1
  76. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-setup/info-intray-setup.component.mjs +3 -3
  77. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray-widget.component.mjs +3 -3
  78. package/esm2022/app/eo-client/dashboard/widgets/info-intray-widget/info-intray.model.mjs +1 -1
  79. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created-setup/last-edited-and-created-setup.component.mjs +3 -3
  80. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.component.mjs +3 -3
  81. package/esm2022/app/eo-client/dashboard/widgets/last-edited-widget/last-edited-and-created.mjs +1 -1
  82. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget-setup/picture-widget-setup.component.mjs +3 -3
  83. package/esm2022/app/eo-client/dashboard/widgets/picture-widget/picture-widget.component.mjs +3 -3
  84. package/esm2022/app/eo-client/dashboard/widgets/search-widget/search-widget.component.mjs +3 -3
  85. package/esm2022/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-setup/signature-statistics-setup.component.mjs +114 -0
  86. package/esm2022/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics-widget.component.mjs +79 -0
  87. package/esm2022/app/eo-client/dashboard/widgets/signature-statistics-widget/signature-statistics.interface.mjs +2 -0
  88. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-setup/todo-setup.component.mjs +3 -3
  89. package/esm2022/app/eo-client/dashboard/widgets/todowidget/todo-widget.component.mjs +3 -3
  90. package/esm2022/app/eo-client/eo-client-routing.module.mjs +1 -1
  91. package/esm2022/app/eo-client/eo-client.module.mjs +11 -1
  92. package/esm2022/app/eo-client/favorite-state/favorite-state.component.mjs +14 -14
  93. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox-state.component.mjs +18 -18
  94. package/esm2022/app/eo-client/inbox-state/inbox-state/inbox.types.enum.mjs +1 -1
  95. package/esm2022/app/eo-client/inbox-state/inbox-state-routing.module.mjs +1 -1
  96. package/esm2022/app/eo-client/inbox-state/inbox-state.module.mjs +1 -1
  97. package/esm2022/app/eo-client/index.mjs +1 -1
  98. package/esm2022/app/eo-client/login/login.component.mjs +3 -3
  99. package/esm2022/app/eo-client/notifications-state/notifications-state.component.mjs +16 -16
  100. package/esm2022/app/eo-client/notifications-state/notifications-state.interface.mjs +1 -1
  101. package/esm2022/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  102. package/esm2022/app/eo-client/object-state/object-state-routing.module.mjs +1 -1
  103. package/esm2022/app/eo-client/object-state/object-state-service/object-state.interface.mjs +1 -1
  104. package/esm2022/app/eo-client/object-state/object-state-service/object-state.service.mjs +1 -1
  105. package/esm2022/app/eo-client/object-state/object-state.module.mjs +1 -1
  106. package/esm2022/app/eo-client/prepare-state/prepare-state/prepare-state.component.mjs +14 -14
  107. package/esm2022/app/eo-client/prepare-state/prepare-state-routing.module.mjs +1 -1
  108. package/esm2022/app/eo-client/prepare-state/prepare-state.module.mjs +1 -1
  109. package/esm2022/app/eo-client/process-state/filter-label.mjs +1 -1
  110. package/esm2022/app/eo-client/process-state/process-state.component.mjs +22 -22
  111. package/esm2022/app/eo-client/recyclebin-state/recyclebin-state.component.mjs +16 -16
  112. package/esm2022/app/eo-client/result-state/result-state.component.mjs +3 -3
  113. package/esm2022/app/eo-client/settings/agent-lock-settings.enum.mjs +1 -1
  114. package/esm2022/app/eo-client/settings/settings.component.mjs +42 -24
  115. package/esm2022/app/eo-client/settings/settings.interface.mjs +2 -0
  116. package/esm2022/app/eo-client/stored-queries-state/stored-queries-state.component.mjs +14 -14
  117. package/esm2022/app/eo-client/version-state/version-state.component.mjs +16 -16
  118. package/esm2022/app/eo-framework/accordion/accordion.module.mjs +1 -1
  119. package/esm2022/app/eo-framework/accordion/index.mjs +1 -1
  120. package/esm2022/app/eo-framework/accordion/simple-accordion/simple-accordion.component.mjs +3 -3
  121. package/esm2022/app/eo-framework/actions/action-menu/action-component-anchor/action-component-anchor.directive.mjs +1 -1
  122. package/esm2022/app/eo-framework/actions/action-menu/action-menu.component.mjs +3 -3
  123. package/esm2022/app/eo-framework/actions/action-service/action.service.mjs +1 -1
  124. package/esm2022/app/eo-framework/actions/action-target.mjs +1 -1
  125. package/esm2022/app/eo-framework/actions/action.module.mjs +8 -4
  126. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission/add-resubmission.component.mjs +3 -3
  127. package/esm2022/app/eo-framework/actions/actions/add-resubmission-action/add-resubmission-action.mjs +1 -1
  128. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +3 -3
  129. package/esm2022/app/eo-framework/actions/actions/add-subscription-action/add-subscription-action.mjs +1 -1
  130. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing/cancel-signing.component.mjs +3 -3
  131. package/esm2022/app/eo-framework/actions/actions/cancel-signing-action/cancel-signing-action.mjs +1 -1
  132. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-action.mjs +1 -1
  133. package/esm2022/app/eo-framework/actions/actions/clipboard/clipboard-object-action/clipboard-object-action.component.mjs +3 -3
  134. package/esm2022/app/eo-framework/actions/actions/copy-action/copy-action.mjs +1 -1
  135. package/esm2022/app/eo-framework/actions/actions/custom-actions/custom-actions.component.mjs +2 -1
  136. package/esm2022/app/eo-framework/actions/actions/cut-action/cut-action.mjs +1 -1
  137. package/esm2022/app/eo-framework/actions/actions/delete-action/delete/delete.component.mjs +3 -3
  138. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-action.mjs +1 -1
  139. package/esm2022/app/eo-framework/actions/actions/delete-action/delete-prepared-action.mjs +1 -1
  140. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content/delete-content.component.mjs +3 -3
  141. package/esm2022/app/eo-framework/actions/actions/delete-content-action/delete-content-action.mjs +1 -1
  142. package/esm2022/app/eo-framework/actions/actions/download-action/download-action.mjs +1 -1
  143. package/esm2022/app/eo-framework/actions/actions/download-action/download-object-action/download-object-action.component.mjs +3 -3
  144. package/esm2022/app/eo-framework/actions/actions/email/email/email.component.mjs +3 -3
  145. package/esm2022/app/eo-framework/actions/actions/email/email-action.mjs +1 -1
  146. package/esm2022/app/eo-framework/actions/actions/favorite-action/favorite-action.mjs +1 -1
  147. package/esm2022/app/eo-framework/actions/actions/finalize/definalize-action.mjs +1 -1
  148. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-action.mjs +1 -1
  149. package/esm2022/app/eo-framework/actions/actions/finalize/finalize-object-action/finalize-object-action.component.mjs +3 -3
  150. package/esm2022/app/eo-framework/actions/actions/open-context-action/open-context-action.mjs +1 -1
  151. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.component.mjs +3 -3
  152. package/esm2022/app/eo-framework/actions/actions/open-document-action/open-document-action.mjs +2 -2
  153. package/esm2022/app/eo-framework/actions/actions/open-versions-action/open-versions-action.mjs +1 -1
  154. package/esm2022/app/eo-framework/actions/actions/remove-subscription-action/remove-subscription-action.mjs +1 -1
  155. package/esm2022/app/eo-framework/actions/actions/restore-version-action/restore-version-action.mjs +1 -1
  156. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object/share-object.component.mjs +7 -4
  157. package/esm2022/app/eo-framework/actions/actions/share-object-action/share-object-action.mjs +1 -1
  158. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list/sequence-list.component.mjs +3 -3
  159. package/esm2022/app/eo-framework/actions/actions/signature-action/sequence-list-item/sequence-list-item.component.mjs +3 -3
  160. package/esm2022/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
  161. package/esm2022/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +1 -1
  162. package/esm2022/app/eo-framework/actions/actions/signature-action/signature.model.mjs +1 -1
  163. package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-action.mjs +3 -4
  164. package/esm2022/app/eo-framework/actions/actions/unlock-action/unlock-object-action/unlock-object-action.component.mjs +43 -0
  165. package/esm2022/app/eo-framework/actions/actions/update-resubmission-action/update-resubmission-action.mjs +1 -1
  166. package/esm2022/app/eo-framework/actions/actions/workflow-action/simple-workflow-action.component.mjs +1 -1
  167. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow/workflow.component.mjs +3 -3
  168. package/esm2022/app/eo-framework/actions/actions/workflow-action/workflow-action.component.mjs +1 -1
  169. package/esm2022/app/eo-framework/actions/index.mjs +1 -1
  170. package/esm2022/app/eo-framework/actions/interfaces/action-component.interface.mjs +1 -1
  171. package/esm2022/app/eo-framework/actions/interfaces/action-list-entry.mjs +1 -1
  172. package/esm2022/app/eo-framework/actions/interfaces/action.interface.mjs +1 -1
  173. package/esm2022/app/eo-framework/actions/selection-range.enum.mjs +1 -1
  174. package/esm2022/app/eo-framework/animations/animations.mjs +1 -1
  175. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add-dialog/app-add-dialog.component.mjs +3 -3
  176. package/esm2022/app/eo-framework/app-shell/app-bar/app-add/app-add.component.mjs +3 -3
  177. package/esm2022/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +3 -3
  178. package/esm2022/app/eo-framework/app-shell/app-bar/app-process/app-process.component.mjs +3 -3
  179. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.component.mjs +11 -8
  180. package/esm2022/app/eo-framework/app-shell/app-bar/app-search/app-search.interface.mjs +1 -1
  181. package/esm2022/app/eo-framework/app-shell/app-bar/context-search/context-search.component.mjs +3 -3
  182. package/esm2022/app/eo-framework/app-shell/app-bar/side-bar/side-bar.component.mjs +3 -3
  183. package/esm2022/app/eo-framework/app-shell/app-bar/user-avatar-overlay/user-avatar-overlay.component.mjs +3 -3
  184. package/esm2022/app/eo-framework/app-shell/app-shell-routing.module.mjs +1 -1
  185. package/esm2022/app/eo-framework/app-shell/app-shell.module.mjs +1 -1
  186. package/esm2022/app/eo-framework/app-shell/index.mjs +1 -1
  187. package/esm2022/app/eo-framework/app-shell/license-warning/license-warning.component.mjs +3 -3
  188. package/esm2022/app/eo-framework/cta/component/cta.component.mjs +3 -3
  189. package/esm2022/app/eo-framework/cta/cta.module.mjs +1 -1
  190. package/esm2022/app/eo-framework/cta/index.mjs +1 -1
  191. package/esm2022/app/eo-framework/eo-framework.module.mjs +1 -1
  192. package/esm2022/app/eo-framework/error/error.module.mjs +1 -1
  193. package/esm2022/app/eo-framework/error/error404/error404.component.mjs +3 -3
  194. package/esm2022/app/eo-framework/error/index.mjs +1 -1
  195. package/esm2022/app/eo-framework/error/not-found/not-found.component.mjs +1 -1
  196. package/esm2022/app/eo-framework/form-elements/checkbox/checkbox.component.mjs +3 -3
  197. package/esm2022/app/eo-framework/form-elements/codesystem/codesystem.component.mjs +3 -3
  198. package/esm2022/app/eo-framework/form-elements/date/date.component.mjs +3 -3
  199. package/esm2022/app/eo-framework/form-elements/date/year-range/year-range.directive.mjs +1 -1
  200. package/esm2022/app/eo-framework/form-elements/datetime-range/datetime-range.component.mjs +8 -3
  201. package/esm2022/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +5 -5
  202. package/esm2022/app/eo-framework/form-elements/form-elements.module.mjs +1 -1
  203. package/esm2022/app/eo-framework/form-elements/form-input/form-input.component.mjs +3 -3
  204. package/esm2022/app/eo-framework/form-elements/form-input/input-focus/input-focus.directive.mjs +1 -1
  205. package/esm2022/app/eo-framework/form-elements/id-reference/animation/reference-finder.animation.mjs +1 -1
  206. package/esm2022/app/eo-framework/form-elements/id-reference/id-reference.component.mjs +3 -3
  207. package/esm2022/app/eo-framework/form-elements/id-reference/interface/reference-finder.interface.mjs +1 -1
  208. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder/reference-finder.component.mjs +3 -3
  209. package/esm2022/app/eo-framework/form-elements/id-reference/reference-finder-entry/reference-finder-entry.component.mjs +3 -3
  210. package/esm2022/app/eo-framework/form-elements/id-reference/service/reference-finder.service.mjs +1 -1
  211. package/esm2022/app/eo-framework/form-elements/index.mjs +1 -1
  212. package/esm2022/app/eo-framework/form-elements/number/number.component.mjs +3 -3
  213. package/esm2022/app/eo-framework/form-elements/number-range/number-range.component.mjs +3 -3
  214. package/esm2022/app/eo-framework/form-elements/organization/organization.component.mjs +3 -3
  215. package/esm2022/app/eo-framework/form-elements/password/password.component.mjs +3 -3
  216. package/esm2022/app/eo-framework/form-elements/reference/reference.component.mjs +3 -3
  217. package/esm2022/app/eo-framework/form-elements/string/string.component.mjs +3 -3
  218. package/esm2022/app/eo-framework/frame/frame.component.mjs +3 -3
  219. package/esm2022/app/eo-framework/grid/column-configurator/column-configurator.component.mjs +3 -3
  220. package/esm2022/app/eo-framework/grid/extensions/custom-sort/custom-sort.component.mjs +3 -3
  221. package/esm2022/app/eo-framework/grid/extensions/empty/empty.component.mjs +3 -3
  222. package/esm2022/app/eo-framework/grid/extensions/filter/abstract-filter.component.mjs +1 -1
  223. package/esm2022/app/eo-framework/grid/extensions/filter/custom/custom-filter.component.mjs +3 -3
  224. package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filter.component.mjs +3 -3
  225. package/esm2022/app/eo-framework/grid/extensions/filter/setFilters/set-filters.interface.mjs +1 -1
  226. package/esm2022/app/eo-framework/grid/extensions/filter/text/text-filter.component.mjs +3 -3
  227. package/esm2022/app/eo-framework/grid/extensions/pagination/pagination.component.mjs +3 -3
  228. package/esm2022/app/eo-framework/grid/extensions/quick-filter/quick-filter.component.mjs +21 -21
  229. package/esm2022/app/eo-framework/grid/extensions/reset-filter/reset-filter.component.mjs +3 -3
  230. package/esm2022/app/eo-framework/grid/extensions/services/list-settings.service.mjs +1 -1
  231. package/esm2022/app/eo-framework/grid/extensions/total-count/total-count.component.mjs +3 -3
  232. package/esm2022/app/eo-framework/grid/filters/codesystem-filter.component.mjs +3 -3
  233. package/esm2022/app/eo-framework/grid/filters/datetime-filter.component.mjs +3 -3
  234. package/esm2022/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
  235. package/esm2022/app/eo-framework/grid/filters/filesize-filter.component.mjs +1 -1
  236. package/esm2022/app/eo-framework/grid/filters/list-filter.component.mjs +3 -3
  237. package/esm2022/app/eo-framework/grid/filters/organization-filter.component.mjs +3 -3
  238. package/esm2022/app/eo-framework/grid/grid-filter.model.mjs +1 -1
  239. package/esm2022/app/eo-framework/grid/grid.component.mjs +7 -7
  240. package/esm2022/app/eo-framework/grid/grid.module.mjs +1 -1
  241. package/esm2022/app/eo-framework/grid/index.mjs +1 -1
  242. package/esm2022/app/eo-framework/grid/loader.interface.mjs +1 -1
  243. package/esm2022/app/eo-framework/inbox-details/duetimeInfo/duetimeInfo.component.mjs +3 -3
  244. package/esm2022/app/eo-framework/inbox-details/inbox-details.component.mjs +3 -3
  245. package/esm2022/app/eo-framework/index.mjs +1 -1
  246. package/esm2022/app/eo-framework/list-container/index.mjs +1 -1
  247. package/esm2022/app/eo-framework/list-container/list-container.component.mjs +3 -3
  248. package/esm2022/app/eo-framework/list-container/list-container.module.mjs +1 -1
  249. package/esm2022/app/eo-framework/media/content-preview.service.mjs +1 -1
  250. package/esm2022/app/eo-framework/media/index.mjs +1 -1
  251. package/esm2022/app/eo-framework/media/media.component.mjs +9 -5
  252. package/esm2022/app/eo-framework/media/media.module.mjs +1 -1
  253. package/esm2022/app/eo-framework/object-details/edit-icon/edit-icon.component.mjs +3 -3
  254. package/esm2022/app/eo-framework/object-details/favorite-icon/favorite-icon.component.mjs +3 -3
  255. package/esm2022/app/eo-framework/object-details/index.mjs +1 -1
  256. package/esm2022/app/eo-framework/object-details/object-details.component.mjs +26 -13
  257. package/esm2022/app/eo-framework/object-details/object-details.module.mjs +1 -1
  258. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter-pipe/history-filter.pipe.mjs +1 -1
  259. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.component.mjs +3 -3
  260. package/esm2022/app/eo-framework/object-details/object-history/history-filter/history-filter.mjs +1 -1
  261. package/esm2022/app/eo-framework/object-details/object-history/object-history.component.mjs +4 -4
  262. package/esm2022/app/eo-framework/object-details/object-links/object-links.component.mjs +3 -3
  263. package/esm2022/app/eo-framework/object-form/form-status-changed-event.interface.mjs +1 -1
  264. package/esm2022/app/eo-framework/object-form/index.mjs +1 -1
  265. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element-template.directive.mjs +1 -1
  266. package/esm2022/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  267. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element-table.component.mjs +12 -12
  268. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/form-element.interface.mjs +1 -1
  269. package/esm2022/app/eo-framework/object-form/object-form/form-element-table/row-edit/row-edit.component.mjs +3 -3
  270. package/esm2022/app/eo-framework/object-form/object-form/form-validation/form-validation.mjs +1 -1
  271. package/esm2022/app/eo-framework/object-form/object-form/object-form-control-wrapper.mjs +1 -1
  272. package/esm2022/app/eo-framework/object-form/object-form/object-form-control.mjs +1 -1
  273. package/esm2022/app/eo-framework/object-form/object-form/object-form-group/object-form-group.component.mjs +3 -3
  274. package/esm2022/app/eo-framework/object-form/object-form/object-form-group.model.mjs +1 -1
  275. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.interface.mjs +1 -1
  276. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-script.service.mjs +1 -1
  277. package/esm2022/app/eo-framework/object-form/object-form/object-form-script/object-form-scripting-scope.mjs +1 -1
  278. package/esm2022/app/eo-framework/object-form/object-form/object-form.component.mjs +3 -3
  279. package/esm2022/app/eo-framework/object-form/object-form/object-form.model.mjs +1 -1
  280. package/esm2022/app/eo-framework/object-form/object-form-edit/object-form-edit.component.mjs +3 -3
  281. package/esm2022/app/eo-framework/object-form/object-form-helper.service.mjs +1 -1
  282. package/esm2022/app/eo-framework/object-form/object-form-options.interface.mjs +1 -1
  283. package/esm2022/app/eo-framework/object-form/object-form.module.mjs +1 -1
  284. package/esm2022/app/eo-framework/object-state-details/object-state-details.component.mjs +3 -3
  285. package/esm2022/app/eo-framework/plugins/index.mjs +1 -1
  286. package/esm2022/app/eo-framework/plugins/plugin.component.mjs +15 -15
  287. package/esm2022/app/eo-framework/plugins/plugin.directive.mjs +1 -1
  288. package/esm2022/app/eo-framework/plugins/plugin.service.mjs +1 -1
  289. package/esm2022/app/eo-framework/plugins/plugins.module.mjs +1 -1
  290. package/esm2022/app/eo-framework/prepare-details/prepare-content-exists-info/prepare-content-exists-info.component.mjs +3 -3
  291. package/esm2022/app/eo-framework/prepare-details/prepare-details.component.mjs +10 -10
  292. package/esm2022/app/eo-framework/process/details/process-details.component.mjs +3 -3
  293. package/esm2022/app/eo-framework/process/history/process-history.component.mjs +3 -3
  294. package/esm2022/app/eo-framework/process/process-file/file-entry-permissions.interface.mjs +1 -1
  295. package/esm2022/app/eo-framework/process/process-file/process-file.component.mjs +3 -3
  296. package/esm2022/app/eo-framework/process-form/process-form.component.mjs +3 -3
  297. package/esm2022/app/eo-framework/process-form/process-form.module.mjs +1 -1
  298. package/esm2022/app/eo-framework/quick-search/index.mjs +1 -1
  299. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search-result.interface.mjs +1 -1
  300. package/esm2022/app/eo-framework/quick-search/quick-search/quick-search.component.mjs +3 -3
  301. package/esm2022/app/eo-framework/quick-search/quick-search.module.mjs +1 -1
  302. package/esm2022/app/eo-framework/recyclebin-details/recyclebin-details.component.mjs +3 -3
  303. package/esm2022/app/eo-framework/result-list/index.mjs +1 -1
  304. package/esm2022/app/eo-framework/result-list/result-list.component.mjs +3 -3
  305. package/esm2022/app/eo-framework/result-list/result-list.module.mjs +1 -1
  306. package/esm2022/app/eo-framework/settings/change-password/change-password-form/change-password-form.component.mjs +3 -3
  307. package/esm2022/app/eo-framework/settings/change-password/change-password.interface.mjs +1 -1
  308. package/esm2022/app/eo-framework/settings/index.mjs +1 -1
  309. package/esm2022/app/eo-framework/settings/permissions/permissions.component.mjs +3 -3
  310. package/esm2022/app/eo-framework/settings/settings.module.mjs +1 -1
  311. package/esm2022/app/eo-framework/shortcuts/global-shortcut-action.interface.mjs +1 -1
  312. package/esm2022/app/eo-framework/shortcuts/global-shortcut-component.interface.mjs +1 -1
  313. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts-section/global-shortcuts-section.component.mjs +3 -3
  314. package/esm2022/app/eo-framework/shortcuts/global-shortcuts/global-shortcuts.component.mjs +3 -3
  315. package/esm2022/app/eo-framework/shortcuts/index.mjs +1 -1
  316. package/esm2022/app/eo-framework/shortcuts/shortcut.interface.mjs +4 -4
  317. package/esm2022/app/eo-framework/shortcuts/shortcuts.directive.mjs +1 -1
  318. package/esm2022/app/eo-framework/shortcuts/shortcuts.module.mjs +1 -1
  319. package/esm2022/app/eo-framework/shortcuts/shortcuts.service.mjs +1 -1
  320. package/esm2022/app/eo-framework/stored-query/index.mjs +1 -1
  321. package/esm2022/app/eo-framework/stored-query/stored-query/stored-query.component.mjs +3 -3
  322. package/esm2022/app/eo-framework/stored-query/stored-query-details/dynamic-property-switch/dynamic-property-switch.component.mjs +4 -3
  323. package/esm2022/app/eo-framework/stored-query/stored-query-details/stored-query-details.component.mjs +3 -3
  324. package/esm2022/app/eo-framework/stored-query/stored-query-type-filter.enum.mjs +1 -1
  325. package/esm2022/app/eo-framework/stored-query/stored-query.interface.mjs +1 -1
  326. package/esm2022/app/eo-framework/stored-query/stored-query.module.mjs +1 -1
  327. package/esm2022/app/eo-framework/tree/index.mjs +1 -1
  328. package/esm2022/app/eo-framework/tree/tree-node/tree-node.component.mjs +3 -3
  329. package/esm2022/app/eo-framework/tree/tree.component.interface.mjs +1 -1
  330. package/esm2022/app/eo-framework/tree/tree.component.mjs +3 -3
  331. package/esm2022/app/eo-framework/tree/tree.module.mjs +1 -1
  332. package/esm2022/app/eo-framework/ui/animations/panel-loading.animation.mjs +1 -1
  333. package/esm2022/app/eo-framework/ui/clipboard/clipboard.component.mjs +3 -3
  334. package/esm2022/app/eo-framework/ui/eo-dialog/eo-dialog.component.mjs +3 -3
  335. package/esm2022/app/eo-framework/ui/eo-icon/eo-icon.component.mjs +1 -1
  336. package/esm2022/app/eo-framework/ui/error-message/error-message.component.mjs +3 -3
  337. package/esm2022/app/eo-framework/ui/index.mjs +1 -1
  338. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry/indexdata-summary-entry.component.mjs +3 -3
  339. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary-entry.interface.mjs +1 -1
  340. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +3 -3
  341. package/esm2022/app/eo-framework/ui/indexdata-summary/indexdata-summary.interface.mjs +1 -1
  342. package/esm2022/app/eo-framework/ui/loading-spinner/loading-spinner.component.mjs +7 -7
  343. package/esm2022/app/eo-framework/ui/outside-click/outside-click.directive.mjs +1 -1
  344. package/esm2022/app/eo-framework/ui/overlay/overlay.component.mjs +3 -3
  345. package/esm2022/app/eo-framework/ui/query-scope-select/query-scope-select.component.mjs +3 -3
  346. package/esm2022/app/eo-framework/ui/router-link/router-link.directive.mjs +1 -1
  347. package/esm2022/app/eo-framework/ui/rtl-aware/rtl-aware.directive.mjs +1 -1
  348. package/esm2022/app/eo-framework/ui/signature-tab/signature-tab.component.mjs +3 -3
  349. package/esm2022/app/eo-framework/ui/ui.module.mjs +1 -1
  350. package/esm2022/app/eo-framework/ui/user-avatar/user-avatar.component.mjs +1 -1
  351. package/esm2022/app/eo-framework/upload-overlay/upload-overlay-guard.service.mjs +1 -1
  352. package/esm2022/app/eo-framework/upload-overlay/upload-overlay.component.mjs +163 -92
  353. package/esm2022/app/eo-framework/util/directive/prevent-double-click.directive.mjs +1 -1
  354. package/esm2022/app/eo-framework/util/directive/trap-focus.directive.mjs +1 -1
  355. package/esm2022/app/eo-framework/util/index.mjs +1 -1
  356. package/esm2022/app/eo-framework/util/services/utilities.service.mjs +1 -1
  357. package/esm2022/app/eo-framework/util/sortable/order-by.pipe.mjs +1 -1
  358. package/esm2022/app/eo-framework/util/util.module.mjs +1 -1
  359. package/esm2022/app/eo-framework-core/agent/agent.interface.mjs +1 -1
  360. package/esm2022/app/eo-framework-core/agent/agent.service.mjs +13 -2
  361. package/esm2022/app/eo-framework-core/api/grid.service.mjs +6 -6
  362. package/esm2022/app/eo-framework-core/api/model/dms-object.api.interface.mjs +1 -1
  363. package/esm2022/app/eo-framework-core/api/plugins.service.mjs +1 -1
  364. package/esm2022/app/eo-framework-core/empty-state/empty-state.interface.mjs +1 -1
  365. package/esm2022/app/eo-framework-core/empty-state/empty-state.service.mjs +1 -1
  366. package/esm2022/app/eo-framework-core/eo-framework-core.module.mjs +1 -1
  367. package/esm2022/app/eo-framework-core/error-handler/error-handler.service.mjs +1 -1
  368. package/esm2022/app/eo-framework-core/error-handler/error-keys.mjs +1 -1
  369. package/esm2022/app/eo-framework-core/index.mjs +1 -1
  370. package/esm2022/app/eo-framework-core/layout/layout.service.mjs +1 -1
  371. package/esm2022/app/eo-framework-core/location/location.service.mjs +1 -1
  372. package/esm2022/app/eo-framework-core/pending-changes/pending-changes-component.interface.mjs +1 -1
  373. package/esm2022/app/eo-framework-core/pending-changes/pending-changes-guard.service.mjs +1 -1
  374. package/esm2022/app/eo-framework-core/pending-changes/pending-changes.service.mjs +1 -1
  375. package/esm2022/app/eo-framework-core/pipes/filesize.pipe.mjs +1 -1
  376. package/esm2022/app/eo-framework-core/pipes/keys.pipe.mjs +1 -1
  377. package/esm2022/app/eo-framework-core/pipes/locale-date.pipe.mjs +1 -1
  378. package/esm2022/app/eo-framework-core/pipes/locale-number.pipe.mjs +1 -1
  379. package/esm2022/app/eo-framework-core/pipes/pipes.module.mjs +1 -1
  380. package/esm2022/app/eo-framework-core/pipes/safe-html.pipe.mjs +1 -1
  381. package/esm2022/app/eo-framework-core/references/reference.service.mjs +1 -1
  382. package/esm2022/app/eo-framework-core/route-guards/auth/auth-guard.service.mjs +1 -1
  383. package/esm2022/app/eo-framework-core/route-guards/capabilities/capabilities-guard.service.mjs +1 -1
  384. package/esm2022/app/eo-framework-core/search/app-search.service.mjs +6 -2
  385. package/esm2022/app/eo-framework-core/selection/selection.service.mjs +1 -1
  386. package/esm2022/app/eo-framework-core/title/page-title.service.mjs +1 -1
  387. package/esm2022/public_api.mjs +1 -1
  388. package/fesm2022/eo-sdk-client.mjs +966 -614
  389. package/fesm2022/eo-sdk-client.mjs.map +1 -1
  390. package/languages/ar.json +523 -523
  391. package/languages/es.json +523 -523
  392. package/languages/fr.json +523 -523
  393. package/languages/po/ar.po +457 -457
  394. package/languages/pt.json +523 -523
  395. package/languages/temp.pot +928 -928
  396. package/languages/zh.json +523 -523
  397. package/misc/client.properties +1 -1
  398. package/misc/doc-styles/style.css +175 -175
  399. package/misc/scripts/copy-client-assets.js +26 -26
  400. package/misc/scripts/copy-core-styles.js +3 -3
  401. package/misc/scripts/exclude-core-ng-package.js +11 -11
  402. package/misc/scripts/helper.js +64 -64
  403. package/misc/scripts/i18n-apply.js +46 -46
  404. package/misc/scripts/i18n-diff.js +100 -100
  405. package/misc/scripts/injectdocbase.js +7 -7
  406. package/misc/scripts/mvn-deploy.js +66 -66
  407. package/misc/scripts/prebuild-about-state.js +32 -32
  408. package/misc/scripts/preparedist.js +39 -39
  409. package/misc/scripts/zipdist.js +21 -21
  410. package/misc/template.yml +4 -4
  411. package/misc/tsscheme.xml +34 -34
  412. package/package.json +3 -2
  413. package/proxy.config.js +13 -13
  414. package/scss/_ag-grid.scss +59 -59
  415. package/scss/_animation.scss +55 -55
  416. package/scss/_eo-variables.scss +78 -78
  417. package/scss/_form.scss +660 -660
  418. package/scss/_main.scss +394 -394
  419. package/scss/_migrationTemp.scss +28 -27
  420. package/scss/_mixins.scss +201 -201
  421. package/scss/_theme-dark.scss +22 -22
  422. package/scss/_timeline.scss +98 -98
  423. package/scss/_yuuvis-components.scss +40 -40
  424. package/styles.css +1 -0
  425. package/styles.scss +141 -141
  426. package/assets/_default/i18n/de_after.json +0 -1137
@@ -98,11 +98,11 @@ export class FormElementComponent {
98
98
  });
99
99
  }
100
100
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormElementComponent, deps: [{ token: i1.TranslateService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FormElementComponent, selector: "eo-form-element", inputs: { situation: "situation", skipToggle: "skipToggle", elementSetter: ["element", "elementSetter"] }, queries: [{ propertyName: "contentElementTemplates", predicate: FormElementTemplate }], viewQueries: [{ propertyName: "formField", first: true, predicate: ["formField"], descendants: true }, { propertyName: "elementTemplates", predicate: FormElementTemplate, descendants: true }], ngImport: i0, template: "<div class=\"form-element\" [formGroup]=\"element\" *ngIf=\"element\">\r\n\r\n <div class=\"form-field t-{{formElementRef._eoFormElement.type}}\" #formField\r\n [ngClass]=\"{disabled: !!formElementRef._eoFormElement.readonly}\" *ngIf=\"elementTemplate\">\r\n\r\n <ng-container *ngTemplateOutlet=\"elementTemplate; context: {element, formElementRef}\"></ng-container>\r\n\r\n <!-- the fields description -->\r\n <div class=\"description\" *ngIf=\"formElementRef._eoFormElement.description\">{{formElementRef._eoFormElement.description}}</div>\r\n\r\n <!-- error/validation messages -->\r\n <div class=\"err-msg\" *ngIf=\"formElementRef.errors\">\r\n\r\n <div *ngIf=\"formElementRef.errors.daterange\" translate>eo.form.property.daterange.invalid</div>\r\n <div *ngIf=\"formElementRef.errors.numberrange\" translate>eo.form.property.numberrange.invalid</div>\r\n <div *ngIf=\"formElementRef.errors.number\" translate>eo.form.property.number</div>\r\n <div *ngIf=\"formElementRef.errors.precision\" translate\r\n [translateParams]=\"formElementRef.errors.precision.translateValues\">\r\n {{formElementRef.errors.precision.translateKey}}</div>\r\n <div *ngIf=\"formElementRef.errors.scale\" translate\r\n [translateParams]=\"formElementRef.errors.scale.translateValues\">{{formElementRef.errors.scale.translateKey}}\r\n </div>\r\n\r\n <div *ngIf=\"formElementRef.errors.regex || formElementRef.errors.pattern\" translate>\r\n eo.form.property.string.regex.nomatch</div>\r\n <div *ngIf=\"formElementRef.errors.classificationemail\" translate>\r\n eo.form.property.string.error.classification.email</div>\r\n <div *ngIf=\"formElementRef.errors.classificationurl\" translate>eo.form.property.string.error.classification.url\r\n </div>\r\n <div *ngIf=\"formElementRef.errors.onlyWhitespaces\" translate>eo.form.property.string.error.whitespaces</div>\r\n <div *ngIf=\"formElementRef.errors.datecontrol\" translate>eo.form.property.date.invalid</div>\r\n <div *ngIf=\"formElementRef.errors.codesystem\" translate>eo.form.property.codesystem.value.invalid</div>\r\n <div *ngIf=\"formElementRef.errors.eoformScript\">{{formElementRef._eoFormElement.error.msg}}</div>\r\n <div *ngIf=\"formElementRef.errors.required\" translate>eo.form.property.required</div>\r\n <div *ngIf=\"formElementRef.errors.maxlength\" translate\r\n [translateParams]=\"{maxlength: formElementRef._eoFormElement.maxlen}\">eo.form.property.maxlength</div>\r\n <div *ngIf=\"formElementRef.errors.minlength\" translate\r\n [translateParams]=\"{minlength: formElementRef._eoFormElement.minlen}\">eo.form.property.minlength</div>\r\n <div *ngIf=\"formElementRef.errors.deletedIDReference\" translate>eo.form.property.idreference.deleted</div>\r\n <div *ngIf=\"formElementRef.errors.deletedOrgObject\" translate>eo.form.property.orgobject.deleted</div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <!-- STRING -->\r\n <ng-template eoFormElementTemplate propertyType=\"STRING\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-string\r\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification !== 'selector'\"\r\n [situation]=\"element._eoFormControlWrapper.situation\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\r\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect\"\r\n [multiline]=\"formElementRef._eoFormElement.multiline\"\r\n [classification]=\"formElementRef._eoFormElement.classification\" [regex]=\"formElementRef._eoFormElement.regex\"\r\n [qname]=\"formElementRef._eoFormElement.qname\" [size]=\"formElementRef._eoFormElement.size\"\r\n [readonly]=\"formElementRef._eoFormElement.readonly\" [minLength]=\"formElementRef._eoFormElement.minlen\"\r\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-string>\r\n\r\n <!-- Dynamic List -->\r\n <eo-dynamic-list\r\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification === 'selector'\"\r\n [situation]=\"element._eoFormControlWrapper.situation\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\r\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\r\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [listObject]=\"formElementRef._eoFormElement.list\"\r\n [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-dynamic-list>\r\n\r\n\r\n <!-- Reference -->\r\n <eo-reference *ngIf=\"formElementRef._eoFormElement.reference\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n [readonly]=\"formElementRef._eoFormElement.readonly\" [reference]=\"formElementRef._eoFormElement.reference\"\r\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect ? formElementRef._eoFormElement.multiselect : situation === 'SEARCH'\"\r\n [minLength]=\"formElementRef._eoFormElement.minlen\"\r\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-reference>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <!-- ID-Reference -->\r\n <ng-template eoFormElementTemplate propertyType=\"REFERENCE\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-id-reference [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n [situation]=\"element._eoFormControlWrapper.situation\"\r\n [dataToRender]=\"formElementRef._eoFormElement.dataToRender\"\r\n [reference]=\"formElementRef._eoFormElement.reference\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [contextId]=\"formElementRef._eoFormElement.contextId\"\r\n [exceptionIDs]=\"formElementRef._eoFormElement.exceptionIDs\"\r\n [queryFilters]=\"formElementRef._eoFormElement.queryFilters\"\r\n [objectTypesFilter]=\"formElementRef._eoFormElement.objectTypesFilter\"></eo-id-reference>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <!-- ID -->\r\n <ng-template eoFormElementTemplate propertyType=\"ID\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-string [situation]=\"element._eoFormControlWrapper.situation\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\r\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [regex]=\"'^[0-9a-fA-F]*$'\"\r\n [qname]=\"formElementRef._eoFormElement.qname\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [minLength]=\"32\" [maxLength]=\"32\"></eo-string>\r\n\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n\r\n <!-- BOOLEAN -->\r\n <ng-template eoFormElementTemplate propertyType=\"BOOLEAN\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\" class=\"checkbox\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" [required]=\"formElementRef._eoFormElement.required\"\r\n [disabled]=\"formElementRef._eoFormElement.readonly\" (onToggleLabel)=\"labelToggled($event)\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-checkbox [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n [required]=\"formElementRef._eoFormElement.required\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [tristate]=\"true\"></eo-checkbox>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <!-- CODESYSTEM -->\r\n <ng-template eoFormElementTemplate propertyType=\"CODESYSTEM\" let-element=\"element\"\r\n let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-codesystem [situation]=\"element._eoFormControlWrapper.situation\"\r\n [pickerTitle]=\"formElementRef._eoFormElement.label\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [codesystem]=\"formElementRef._eoFormElement.codesystem\"\r\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\r\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\r\n [disablingFilterFunction]=\"formElementRef._eoFormElement.disablingFilterFunction\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-codesystem>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <!-- ORGANIZATION -->\r\n <ng-template eoFormElementTemplate propertyType=\"ORGANIZATION\" let-element=\"element\"\r\n let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-organization [situation]=\"element._eoFormControlWrapper.situation\"\r\n [dataMeta]=\"formElementRef._eoFormElement.dataMeta\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [filterObject]=\"formElementRef._eoFormElement.filter\" [multiselect]=\"formElementRef._eoFormElement.multiselect\"\r\n (onDataMetaChanged)=\"organizationDataMetaResolved($event)\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-organization>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <!-- NUMBER -->\r\n <ng-template eoFormElementTemplate propertyType=\"NUMBER\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-number *ngIf=\"situation !== 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\r\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\">\r\n </eo-number>\r\n\r\n <eo-number-range *ngIf=\"situation === 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\r\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-number-range>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <!-- DATE AND DATETIME -->\r\n <ng-template eoFormElementTemplate propertyType=\"DATETIME\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-date *ngIf=\"situation !== 'SEARCH'\" [withTime]=\"formElementRef._eoFormElement.withtime\"\r\n [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-date>\r\n\r\n <eo-datetime-range *ngIf=\"situation === 'SEARCH'\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\r\n [withTime]=\"formElementRef._eoFormElement.withtime\"\r\n [operator]=\"element?.value[element._eoFormControlWrapper.controlName] ? element.value[element._eoFormControlWrapper.controlName]?.operator: 'eq'\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-datetime-range>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <ng-content></ng-content>\r\n\r\n <!-- print out the type if it's not matching anything -->\r\n <ng-template #tplUnknown><b>{{formElementRef._eoFormElement.type}}</b></ng-template>\r\n</div>\r\n", styles: [":host-context(.dark) .form-element .form-field .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host{flex:1 1 auto}:host.label-toggled::ng-deep eo-form-input label{text-decoration:line-through}.form-element{box-sizing:border-box}.form-element .form-field{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.form-element .form-field .description{border:0;font-size:var(--font-hint);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.form-element .form-field .err-msg{color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.form-element .form-field .table{flex-flow:column;align-items:flex-start;border-color:transparent}.form-element .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.form-element.ng-dirty:not(.ng-invalid)>.form-field:not(.focused)::ng-deep label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i6.CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: i7.DateComponent, selector: "eo-date", inputs: ["withTime", "readonly", "onlyFutureDates"] }, { kind: "component", type: i8.DatetimeRangeComponent, selector: "eo-datetime-range", inputs: ["withTime", "pickerTitle", "operator"] }, { kind: "component", type: i9.NumberComponent, selector: "eo-number", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: i10.NumberRangeComponent, selector: "eo-number-range", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: i11.OrganizationComponent, selector: "eo-organization", inputs: ["removeCurrentUser", "situation", "multiselect", "readonly", "dataMeta", "placeholder", "exceptions", "filterObject"], outputs: ["onValueResolved", "onDataMetaChanged"] }, { kind: "component", type: i12.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i13.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: i14.ReferenceComponent, selector: "eo-reference", inputs: ["readonly", "multiselect", "reference", "minLength", "maxLength"], outputs: ["onReferenceClicked"] }, { kind: "component", type: i15.DynamicListComponent, selector: "eo-dynamic-list", inputs: ["situation", "multiselect", "pickerTitle", "readonly", "filterFunction", "listObject"] }, { kind: "component", type: i16.IdReferenceComponent, selector: "eo-id-reference", inputs: ["readonly", "multiselect", "situation", "contextId", "exceptionIDs", "dataToRender", "reference", "queryFilters", "objectTypesFilter"] }, { kind: "directive", type: i17.FormElementTemplate, selector: "[eoFormElementTemplate]", inputs: ["propertyType"] }] }); }
101
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.4", type: FormElementComponent, selector: "eo-form-element", inputs: { situation: "situation", skipToggle: "skipToggle", elementSetter: ["element", "elementSetter"] }, queries: [{ propertyName: "contentElementTemplates", predicate: FormElementTemplate }], viewQueries: [{ propertyName: "formField", first: true, predicate: ["formField"], descendants: true }, { propertyName: "elementTemplates", predicate: FormElementTemplate, descendants: true }], ngImport: i0, template: "<div class=\"form-element\" [formGroup]=\"element\" *ngIf=\"element\">\n\n <div class=\"form-field t-{{formElementRef._eoFormElement.type}}\" #formField\n [ngClass]=\"{disabled: !!formElementRef._eoFormElement.readonly}\" *ngIf=\"elementTemplate\">\n\n <ng-container *ngTemplateOutlet=\"elementTemplate; context: {element, formElementRef}\"></ng-container>\n\n <!-- the fields description -->\n <div class=\"description\" *ngIf=\"formElementRef._eoFormElement.description\">{{formElementRef._eoFormElement.description}}</div>\n\n <!-- error/validation messages -->\n <div class=\"err-msg\" *ngIf=\"formElementRef.errors\">\n\n <div *ngIf=\"formElementRef.errors.daterange\" translate>eo.form.property.daterange.invalid</div>\n <div *ngIf=\"formElementRef.errors.numberrange\" translate>eo.form.property.numberrange.invalid</div>\n <div *ngIf=\"formElementRef.errors.number\" translate>eo.form.property.number</div>\n <div *ngIf=\"formElementRef.errors.precision\" translate\n [translateParams]=\"formElementRef.errors.precision.translateValues\">\n {{formElementRef.errors.precision.translateKey}}</div>\n <div *ngIf=\"formElementRef.errors.scale\" translate\n [translateParams]=\"formElementRef.errors.scale.translateValues\">{{formElementRef.errors.scale.translateKey}}\n </div>\n\n <div *ngIf=\"formElementRef.errors.regex || formElementRef.errors.pattern\" translate>\n eo.form.property.string.regex.nomatch</div>\n <div *ngIf=\"formElementRef.errors.classificationemail\" translate>\n eo.form.property.string.error.classification.email</div>\n <div *ngIf=\"formElementRef.errors.classificationurl\" translate>eo.form.property.string.error.classification.url\n </div>\n <div *ngIf=\"formElementRef.errors.onlyWhitespaces\" translate>eo.form.property.string.error.whitespaces</div>\n <div *ngIf=\"formElementRef.errors.datecontrol\" translate>eo.form.property.date.invalid</div>\n <div *ngIf=\"formElementRef.errors.codesystem\" translate>eo.form.property.codesystem.value.invalid</div>\n <div *ngIf=\"formElementRef.errors.eoformScript\">{{formElementRef._eoFormElement.error.msg}}</div>\n <div *ngIf=\"formElementRef.errors.required\" translate>eo.form.property.required</div>\n <div *ngIf=\"formElementRef.errors.maxlength\" translate\n [translateParams]=\"{maxlength: formElementRef._eoFormElement.maxlen}\">eo.form.property.maxlength</div>\n <div *ngIf=\"formElementRef.errors.minlength\" translate\n [translateParams]=\"{minlength: formElementRef._eoFormElement.minlen}\">eo.form.property.minlength</div>\n <div *ngIf=\"formElementRef.errors.deletedIDReference\" translate>eo.form.property.idreference.deleted</div>\n <div *ngIf=\"formElementRef.errors.deletedOrgObject\" translate>eo.form.property.orgobject.deleted</div>\n </div>\n\n </div>\n\n\n\n <!-- STRING -->\n <ng-template eoFormElementTemplate propertyType=\"STRING\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification !== 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect\"\n [multiline]=\"formElementRef._eoFormElement.multiline\"\n [classification]=\"formElementRef._eoFormElement.classification\" [regex]=\"formElementRef._eoFormElement.regex\"\n [qname]=\"formElementRef._eoFormElement.qname\" [size]=\"formElementRef._eoFormElement.size\"\n [readonly]=\"formElementRef._eoFormElement.readonly\" [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-string>\n\n <!-- Dynamic List -->\n <eo-dynamic-list\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification === 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [listObject]=\"formElementRef._eoFormElement.list\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-dynamic-list>\n\n\n <!-- Reference -->\n <eo-reference *ngIf=\"formElementRef._eoFormElement.reference\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [readonly]=\"formElementRef._eoFormElement.readonly\" [reference]=\"formElementRef._eoFormElement.reference\"\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect ? formElementRef._eoFormElement.multiselect : situation === 'SEARCH'\"\n [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-reference>\n </eo-form-input>\n </ng-template>\n\n <!-- ID-Reference -->\n <ng-template eoFormElementTemplate propertyType=\"REFERENCE\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-id-reference [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [dataToRender]=\"formElementRef._eoFormElement.dataToRender\"\n [reference]=\"formElementRef._eoFormElement.reference\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [contextId]=\"formElementRef._eoFormElement.contextId\"\n [exceptionIDs]=\"formElementRef._eoFormElement.exceptionIDs\"\n [queryFilters]=\"formElementRef._eoFormElement.queryFilters\"\n [objectTypesFilter]=\"formElementRef._eoFormElement.objectTypesFilter\"></eo-id-reference>\n </eo-form-input>\n </ng-template>\n\n <!-- ID -->\n <ng-template eoFormElementTemplate propertyType=\"ID\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [regex]=\"'^[0-9a-fA-F]*$'\"\n [qname]=\"formElementRef._eoFormElement.qname\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [minLength]=\"32\" [maxLength]=\"32\"></eo-string>\n\n </eo-form-input>\n </ng-template>\n\n\n <!-- BOOLEAN -->\n <ng-template eoFormElementTemplate propertyType=\"BOOLEAN\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\" class=\"checkbox\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\" (onToggleLabel)=\"labelToggled($event)\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-checkbox [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [required]=\"formElementRef._eoFormElement.required\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [tristate]=\"true\"></eo-checkbox>\n </eo-form-input>\n </ng-template>\n\n <!-- CODESYSTEM -->\n <ng-template eoFormElementTemplate propertyType=\"CODESYSTEM\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-codesystem [situation]=\"element._eoFormControlWrapper.situation\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [codesystem]=\"formElementRef._eoFormElement.codesystem\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [disablingFilterFunction]=\"formElementRef._eoFormElement.disablingFilterFunction\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-codesystem>\n </eo-form-input>\n </ng-template>\n\n <!-- ORGANIZATION -->\n <ng-template eoFormElementTemplate propertyType=\"ORGANIZATION\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-organization [situation]=\"element._eoFormControlWrapper.situation\"\n [dataMeta]=\"formElementRef._eoFormElement.dataMeta\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [filterObject]=\"formElementRef._eoFormElement.filter\" [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n (onDataMetaChanged)=\"organizationDataMetaResolved($event)\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-organization>\n </eo-form-input>\n </ng-template>\n\n <!-- NUMBER -->\n <ng-template eoFormElementTemplate propertyType=\"NUMBER\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-number *ngIf=\"situation !== 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\">\n </eo-number>\n\n <eo-number-range *ngIf=\"situation === 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-number-range>\n </eo-form-input>\n </ng-template>\n\n <!-- DATE AND DATETIME -->\n <ng-template eoFormElementTemplate propertyType=\"DATETIME\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-date *ngIf=\"situation !== 'SEARCH'\" [withTime]=\"formElementRef._eoFormElement.withtime\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-date>\n\n <eo-datetime-range *ngIf=\"situation === 'SEARCH'\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [withTime]=\"formElementRef._eoFormElement.withtime\"\n [operator]=\"element?.value[element._eoFormControlWrapper.controlName] ? element.value[element._eoFormControlWrapper.controlName]?.operator: 'eq'\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-datetime-range>\n </eo-form-input>\n </ng-template>\n\n <ng-content></ng-content>\n\n <!-- print out the type if it's not matching anything -->\n <ng-template #tplUnknown><b>{{formElementRef._eoFormElement.type}}</b></ng-template>\n</div>\n", styles: [":host-context(.dark) .form-element .form-field .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host{flex:1 1 auto}:host.label-toggled::ng-deep eo-form-input label{text-decoration:line-through}.form-element{box-sizing:border-box}.form-element .form-field{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.form-element .form-field .description{border:0;font-size:var(--font-hint);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.form-element .form-field .err-msg{color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.form-element .form-field .table{flex-flow:column;align-items:flex-start;border-color:transparent}.form-element .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.form-element.ng-dirty:not(.ng-invalid)>.form-field:not(.focused)::ng-deep label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i5.FormInputComponent, selector: "eo-form-input", inputs: ["label", "tag", "description", "skipToggle", "isNull", "invalid", "disabled", "required"], outputs: ["onToggleLabel"] }, { kind: "component", type: i6.CodesystemComponent, selector: "eo-codesystem", inputs: ["situation", "pickerTitle", "placeholder", "codesystem", "multiselect", "readonly", "inputStyleClass", "emptyMessage", "filterFunction", "disablingFilterFunction"] }, { kind: "component", type: i7.DateComponent, selector: "eo-date", inputs: ["withTime", "readonly", "onlyFutureDates"] }, { kind: "component", type: i8.DatetimeRangeComponent, selector: "eo-datetime-range", inputs: ["withTime", "pickerTitle", "operator"] }, { kind: "component", type: i9.NumberComponent, selector: "eo-number", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: i10.NumberRangeComponent, selector: "eo-number-range", inputs: ["scale", "precision", "grouping", "pattern", "readonly"] }, { kind: "component", type: i11.OrganizationComponent, selector: "eo-organization", inputs: ["removeCurrentUser", "situation", "multiselect", "readonly", "dataMeta", "placeholder", "exceptions", "filterObject"], outputs: ["onValueResolved", "onDataMetaChanged"] }, { kind: "component", type: i12.CheckboxComponent, selector: "eo-checkbox", inputs: ["required", "tristate", "readonly"] }, { kind: "component", type: i13.StringComponent, selector: "eo-string", inputs: ["autocomplete", "multiselect", "multiline", "readonly", "autofocus", "classification", "situation", "regex", "qname", "size", "minLength", "maxLength"] }, { kind: "component", type: i14.ReferenceComponent, selector: "eo-reference", inputs: ["readonly", "multiselect", "reference", "minLength", "maxLength"], outputs: ["onReferenceClicked"] }, { kind: "component", type: i15.DynamicListComponent, selector: "eo-dynamic-list", inputs: ["situation", "multiselect", "pickerTitle", "readonly", "filterFunction", "listObject"] }, { kind: "component", type: i16.IdReferenceComponent, selector: "eo-id-reference", inputs: ["readonly", "multiselect", "situation", "contextId", "exceptionIDs", "dataToRender", "reference", "queryFilters", "objectTypesFilter"] }, { kind: "directive", type: i17.FormElementTemplate, selector: "[eoFormElementTemplate]", inputs: ["propertyType"] }] }); }
102
102
  }
103
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: FormElementComponent, decorators: [{
104
104
  type: Component,
105
- args: [{ selector: 'eo-form-element', template: "<div class=\"form-element\" [formGroup]=\"element\" *ngIf=\"element\">\r\n\r\n <div class=\"form-field t-{{formElementRef._eoFormElement.type}}\" #formField\r\n [ngClass]=\"{disabled: !!formElementRef._eoFormElement.readonly}\" *ngIf=\"elementTemplate\">\r\n\r\n <ng-container *ngTemplateOutlet=\"elementTemplate; context: {element, formElementRef}\"></ng-container>\r\n\r\n <!-- the fields description -->\r\n <div class=\"description\" *ngIf=\"formElementRef._eoFormElement.description\">{{formElementRef._eoFormElement.description}}</div>\r\n\r\n <!-- error/validation messages -->\r\n <div class=\"err-msg\" *ngIf=\"formElementRef.errors\">\r\n\r\n <div *ngIf=\"formElementRef.errors.daterange\" translate>eo.form.property.daterange.invalid</div>\r\n <div *ngIf=\"formElementRef.errors.numberrange\" translate>eo.form.property.numberrange.invalid</div>\r\n <div *ngIf=\"formElementRef.errors.number\" translate>eo.form.property.number</div>\r\n <div *ngIf=\"formElementRef.errors.precision\" translate\r\n [translateParams]=\"formElementRef.errors.precision.translateValues\">\r\n {{formElementRef.errors.precision.translateKey}}</div>\r\n <div *ngIf=\"formElementRef.errors.scale\" translate\r\n [translateParams]=\"formElementRef.errors.scale.translateValues\">{{formElementRef.errors.scale.translateKey}}\r\n </div>\r\n\r\n <div *ngIf=\"formElementRef.errors.regex || formElementRef.errors.pattern\" translate>\r\n eo.form.property.string.regex.nomatch</div>\r\n <div *ngIf=\"formElementRef.errors.classificationemail\" translate>\r\n eo.form.property.string.error.classification.email</div>\r\n <div *ngIf=\"formElementRef.errors.classificationurl\" translate>eo.form.property.string.error.classification.url\r\n </div>\r\n <div *ngIf=\"formElementRef.errors.onlyWhitespaces\" translate>eo.form.property.string.error.whitespaces</div>\r\n <div *ngIf=\"formElementRef.errors.datecontrol\" translate>eo.form.property.date.invalid</div>\r\n <div *ngIf=\"formElementRef.errors.codesystem\" translate>eo.form.property.codesystem.value.invalid</div>\r\n <div *ngIf=\"formElementRef.errors.eoformScript\">{{formElementRef._eoFormElement.error.msg}}</div>\r\n <div *ngIf=\"formElementRef.errors.required\" translate>eo.form.property.required</div>\r\n <div *ngIf=\"formElementRef.errors.maxlength\" translate\r\n [translateParams]=\"{maxlength: formElementRef._eoFormElement.maxlen}\">eo.form.property.maxlength</div>\r\n <div *ngIf=\"formElementRef.errors.minlength\" translate\r\n [translateParams]=\"{minlength: formElementRef._eoFormElement.minlen}\">eo.form.property.minlength</div>\r\n <div *ngIf=\"formElementRef.errors.deletedIDReference\" translate>eo.form.property.idreference.deleted</div>\r\n <div *ngIf=\"formElementRef.errors.deletedOrgObject\" translate>eo.form.property.orgobject.deleted</div>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <!-- STRING -->\r\n <ng-template eoFormElementTemplate propertyType=\"STRING\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-string\r\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification !== 'selector'\"\r\n [situation]=\"element._eoFormControlWrapper.situation\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\r\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect\"\r\n [multiline]=\"formElementRef._eoFormElement.multiline\"\r\n [classification]=\"formElementRef._eoFormElement.classification\" [regex]=\"formElementRef._eoFormElement.regex\"\r\n [qname]=\"formElementRef._eoFormElement.qname\" [size]=\"formElementRef._eoFormElement.size\"\r\n [readonly]=\"formElementRef._eoFormElement.readonly\" [minLength]=\"formElementRef._eoFormElement.minlen\"\r\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-string>\r\n\r\n <!-- Dynamic List -->\r\n <eo-dynamic-list\r\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification === 'selector'\"\r\n [situation]=\"element._eoFormControlWrapper.situation\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\r\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\r\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [listObject]=\"formElementRef._eoFormElement.list\"\r\n [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-dynamic-list>\r\n\r\n\r\n <!-- Reference -->\r\n <eo-reference *ngIf=\"formElementRef._eoFormElement.reference\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n [readonly]=\"formElementRef._eoFormElement.readonly\" [reference]=\"formElementRef._eoFormElement.reference\"\r\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect ? formElementRef._eoFormElement.multiselect : situation === 'SEARCH'\"\r\n [minLength]=\"formElementRef._eoFormElement.minlen\"\r\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-reference>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <!-- ID-Reference -->\r\n <ng-template eoFormElementTemplate propertyType=\"REFERENCE\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-id-reference [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n [situation]=\"element._eoFormControlWrapper.situation\"\r\n [dataToRender]=\"formElementRef._eoFormElement.dataToRender\"\r\n [reference]=\"formElementRef._eoFormElement.reference\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [contextId]=\"formElementRef._eoFormElement.contextId\"\r\n [exceptionIDs]=\"formElementRef._eoFormElement.exceptionIDs\"\r\n [queryFilters]=\"formElementRef._eoFormElement.queryFilters\"\r\n [objectTypesFilter]=\"formElementRef._eoFormElement.objectTypesFilter\"></eo-id-reference>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <!-- ID -->\r\n <ng-template eoFormElementTemplate propertyType=\"ID\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-string [situation]=\"element._eoFormControlWrapper.situation\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\r\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [regex]=\"'^[0-9a-fA-F]*$'\"\r\n [qname]=\"formElementRef._eoFormElement.qname\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [minLength]=\"32\" [maxLength]=\"32\"></eo-string>\r\n\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n\r\n <!-- BOOLEAN -->\r\n <ng-template eoFormElementTemplate propertyType=\"BOOLEAN\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\" class=\"checkbox\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" [required]=\"formElementRef._eoFormElement.required\"\r\n [disabled]=\"formElementRef._eoFormElement.readonly\" (onToggleLabel)=\"labelToggled($event)\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-checkbox [formControlName]=\"element._eoFormControlWrapper.controlName\"\r\n [required]=\"formElementRef._eoFormElement.required\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [tristate]=\"true\"></eo-checkbox>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <!-- CODESYSTEM -->\r\n <ng-template eoFormElementTemplate propertyType=\"CODESYSTEM\" let-element=\"element\"\r\n let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-codesystem [situation]=\"element._eoFormControlWrapper.situation\"\r\n [pickerTitle]=\"formElementRef._eoFormElement.label\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [codesystem]=\"formElementRef._eoFormElement.codesystem\"\r\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\r\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\r\n [disablingFilterFunction]=\"formElementRef._eoFormElement.disablingFilterFunction\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-codesystem>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <!-- ORGANIZATION -->\r\n <ng-template eoFormElementTemplate propertyType=\"ORGANIZATION\" let-element=\"element\"\r\n let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-organization [situation]=\"element._eoFormControlWrapper.situation\"\r\n [dataMeta]=\"formElementRef._eoFormElement.dataMeta\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [filterObject]=\"formElementRef._eoFormElement.filter\" [multiselect]=\"formElementRef._eoFormElement.multiselect\"\r\n (onDataMetaChanged)=\"organizationDataMetaResolved($event)\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-organization>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <!-- NUMBER -->\r\n <ng-template eoFormElementTemplate propertyType=\"NUMBER\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-number *ngIf=\"situation !== 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\r\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\">\r\n </eo-number>\r\n\r\n <eo-number-range *ngIf=\"situation === 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\r\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-number-range>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <!-- DATE AND DATETIME -->\r\n <ng-template eoFormElementTemplate propertyType=\"DATETIME\" let-element=\"element\" let-formElementRef=\"formElementRef\">\r\n <eo-form-input [tag]=\"tag\"\r\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\r\n [isNull]=\"isNull\"\r\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\r\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\r\n [invalid]=\"formElementRef.invalid\">\r\n\r\n <eo-date *ngIf=\"situation !== 'SEARCH'\" [withTime]=\"formElementRef._eoFormElement.withtime\"\r\n [readonly]=\"formElementRef._eoFormElement.readonly\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-date>\r\n\r\n <eo-datetime-range *ngIf=\"situation === 'SEARCH'\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\r\n [withTime]=\"formElementRef._eoFormElement.withtime\"\r\n [operator]=\"element?.value[element._eoFormControlWrapper.controlName] ? element.value[element._eoFormControlWrapper.controlName]?.operator: 'eq'\"\r\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-datetime-range>\r\n </eo-form-input>\r\n </ng-template>\r\n\r\n <ng-content></ng-content>\r\n\r\n <!-- print out the type if it's not matching anything -->\r\n <ng-template #tplUnknown><b>{{formElementRef._eoFormElement.type}}</b></ng-template>\r\n</div>\r\n", styles: [":host-context(.dark) .form-element .form-field .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host{flex:1 1 auto}:host.label-toggled::ng-deep eo-form-input label{text-decoration:line-through}.form-element{box-sizing:border-box}.form-element .form-field{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.form-element .form-field .description{border:0;font-size:var(--font-hint);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.form-element .form-field .err-msg{color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.form-element .form-field .table{flex-flow:column;align-items:flex-start;border-color:transparent}.form-element .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.form-element.ng-dirty:not(.ng-invalid)>.form-field:not(.focused)::ng-deep label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"] }]
105
+ args: [{ selector: 'eo-form-element', template: "<div class=\"form-element\" [formGroup]=\"element\" *ngIf=\"element\">\n\n <div class=\"form-field t-{{formElementRef._eoFormElement.type}}\" #formField\n [ngClass]=\"{disabled: !!formElementRef._eoFormElement.readonly}\" *ngIf=\"elementTemplate\">\n\n <ng-container *ngTemplateOutlet=\"elementTemplate; context: {element, formElementRef}\"></ng-container>\n\n <!-- the fields description -->\n <div class=\"description\" *ngIf=\"formElementRef._eoFormElement.description\">{{formElementRef._eoFormElement.description}}</div>\n\n <!-- error/validation messages -->\n <div class=\"err-msg\" *ngIf=\"formElementRef.errors\">\n\n <div *ngIf=\"formElementRef.errors.daterange\" translate>eo.form.property.daterange.invalid</div>\n <div *ngIf=\"formElementRef.errors.numberrange\" translate>eo.form.property.numberrange.invalid</div>\n <div *ngIf=\"formElementRef.errors.number\" translate>eo.form.property.number</div>\n <div *ngIf=\"formElementRef.errors.precision\" translate\n [translateParams]=\"formElementRef.errors.precision.translateValues\">\n {{formElementRef.errors.precision.translateKey}}</div>\n <div *ngIf=\"formElementRef.errors.scale\" translate\n [translateParams]=\"formElementRef.errors.scale.translateValues\">{{formElementRef.errors.scale.translateKey}}\n </div>\n\n <div *ngIf=\"formElementRef.errors.regex || formElementRef.errors.pattern\" translate>\n eo.form.property.string.regex.nomatch</div>\n <div *ngIf=\"formElementRef.errors.classificationemail\" translate>\n eo.form.property.string.error.classification.email</div>\n <div *ngIf=\"formElementRef.errors.classificationurl\" translate>eo.form.property.string.error.classification.url\n </div>\n <div *ngIf=\"formElementRef.errors.onlyWhitespaces\" translate>eo.form.property.string.error.whitespaces</div>\n <div *ngIf=\"formElementRef.errors.datecontrol\" translate>eo.form.property.date.invalid</div>\n <div *ngIf=\"formElementRef.errors.codesystem\" translate>eo.form.property.codesystem.value.invalid</div>\n <div *ngIf=\"formElementRef.errors.eoformScript\">{{formElementRef._eoFormElement.error.msg}}</div>\n <div *ngIf=\"formElementRef.errors.required\" translate>eo.form.property.required</div>\n <div *ngIf=\"formElementRef.errors.maxlength\" translate\n [translateParams]=\"{maxlength: formElementRef._eoFormElement.maxlen}\">eo.form.property.maxlength</div>\n <div *ngIf=\"formElementRef.errors.minlength\" translate\n [translateParams]=\"{minlength: formElementRef._eoFormElement.minlen}\">eo.form.property.minlength</div>\n <div *ngIf=\"formElementRef.errors.deletedIDReference\" translate>eo.form.property.idreference.deleted</div>\n <div *ngIf=\"formElementRef.errors.deletedOrgObject\" translate>eo.form.property.orgobject.deleted</div>\n </div>\n\n </div>\n\n\n\n <!-- STRING -->\n <ng-template eoFormElementTemplate propertyType=\"STRING\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification !== 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect\"\n [multiline]=\"formElementRef._eoFormElement.multiline\"\n [classification]=\"formElementRef._eoFormElement.classification\" [regex]=\"formElementRef._eoFormElement.regex\"\n [qname]=\"formElementRef._eoFormElement.qname\" [size]=\"formElementRef._eoFormElement.size\"\n [readonly]=\"formElementRef._eoFormElement.readonly\" [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-string>\n\n <!-- Dynamic List -->\n <eo-dynamic-list\n *ngIf=\"!formElementRef._eoFormElement.reference && formElementRef._eoFormElement.classification === 'selector'\"\n [situation]=\"element._eoFormControlWrapper.situation\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [listObject]=\"formElementRef._eoFormElement.list\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-dynamic-list>\n\n\n <!-- Reference -->\n <eo-reference *ngIf=\"formElementRef._eoFormElement.reference\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [readonly]=\"formElementRef._eoFormElement.readonly\" [reference]=\"formElementRef._eoFormElement.reference\"\n [multiselect]=\"!!formElementRef._eoFormElement.multiselect ? formElementRef._eoFormElement.multiselect : situation === 'SEARCH'\"\n [minLength]=\"formElementRef._eoFormElement.minlen\"\n [maxLength]=\"formElementRef._eoFormElement.maxlen\"></eo-reference>\n </eo-form-input>\n </ng-template>\n\n <!-- ID-Reference -->\n <ng-template eoFormElementTemplate propertyType=\"REFERENCE\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-id-reference [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [situation]=\"element._eoFormControlWrapper.situation\"\n [dataToRender]=\"formElementRef._eoFormElement.dataToRender\"\n [reference]=\"formElementRef._eoFormElement.reference\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [contextId]=\"formElementRef._eoFormElement.contextId\"\n [exceptionIDs]=\"formElementRef._eoFormElement.exceptionIDs\"\n [queryFilters]=\"formElementRef._eoFormElement.queryFilters\"\n [objectTypesFilter]=\"formElementRef._eoFormElement.objectTypesFilter\"></eo-id-reference>\n </eo-form-input>\n </ng-template>\n\n <!-- ID -->\n <ng-template eoFormElementTemplate propertyType=\"ID\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-string [situation]=\"element._eoFormControlWrapper.situation\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [autocomplete]=\"formElementRef._eoFormElement.autocomplete\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\" [regex]=\"'^[0-9a-fA-F]*$'\"\n [qname]=\"formElementRef._eoFormElement.qname\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [minLength]=\"32\" [maxLength]=\"32\"></eo-string>\n\n </eo-form-input>\n </ng-template>\n\n\n <!-- BOOLEAN -->\n <ng-template eoFormElementTemplate propertyType=\"BOOLEAN\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\" class=\"checkbox\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" [required]=\"formElementRef._eoFormElement.required\"\n [disabled]=\"formElementRef._eoFormElement.readonly\" (onToggleLabel)=\"labelToggled($event)\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-checkbox [formControlName]=\"element._eoFormControlWrapper.controlName\"\n [required]=\"formElementRef._eoFormElement.required\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [tristate]=\"true\"></eo-checkbox>\n </eo-form-input>\n </ng-template>\n\n <!-- CODESYSTEM -->\n <ng-template eoFormElementTemplate propertyType=\"CODESYSTEM\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-codesystem [situation]=\"element._eoFormControlWrapper.situation\"\n [pickerTitle]=\"formElementRef._eoFormElement.label\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [codesystem]=\"formElementRef._eoFormElement.codesystem\"\n [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n [filterFunction]=\"formElementRef._eoFormElement.filterFunction\"\n [disablingFilterFunction]=\"formElementRef._eoFormElement.disablingFilterFunction\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-codesystem>\n </eo-form-input>\n </ng-template>\n\n <!-- ORGANIZATION -->\n <ng-template eoFormElementTemplate propertyType=\"ORGANIZATION\" let-element=\"element\"\n let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-organization [situation]=\"element._eoFormControlWrapper.situation\"\n [dataMeta]=\"formElementRef._eoFormElement.dataMeta\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [filterObject]=\"formElementRef._eoFormElement.filter\" [multiselect]=\"formElementRef._eoFormElement.multiselect\"\n (onDataMetaChanged)=\"organizationDataMetaResolved($event)\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-organization>\n </eo-form-input>\n </ng-template>\n\n <!-- NUMBER -->\n <ng-template eoFormElementTemplate propertyType=\"NUMBER\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-number *ngIf=\"situation !== 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\">\n </eo-number>\n\n <eo-number-range *ngIf=\"situation === 'SEARCH'\" [readonly]=\"formElementRef._eoFormElement.readonly\"\n [precision]=\"formElementRef._eoFormElement.precision\" [scale]=\"formElementRef._eoFormElement.scale\"\n [grouping]=\"formElementRef._eoFormElement.grouping\" [pattern]=\"formElementRef._eoFormElement.pattern\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-number-range>\n </eo-form-input>\n </ng-template>\n\n <!-- DATE AND DATETIME -->\n <ng-template eoFormElementTemplate propertyType=\"DATETIME\" let-element=\"element\" let-formElementRef=\"formElementRef\">\n <eo-form-input [tag]=\"tag\"\n [label]=\"formElementRef._eoFormElement.label ? formElementRef._eoFormElement.label : formElementRef._eoFormElement.name\"\n [isNull]=\"isNull\"\n [skipToggle]=\"skipToggle || situation !== 'SEARCH'\" (onToggleLabel)=\"labelToggled($event)\"\n [required]=\"formElementRef._eoFormElement.required\" [disabled]=\"formElementRef._eoFormElement.readonly\"\n [invalid]=\"formElementRef.invalid\">\n\n <eo-date *ngIf=\"situation !== 'SEARCH'\" [withTime]=\"formElementRef._eoFormElement.withtime\"\n [readonly]=\"formElementRef._eoFormElement.readonly\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-date>\n\n <eo-datetime-range *ngIf=\"situation === 'SEARCH'\" [pickerTitle]=\"formElementRef._eoFormElement.label\"\n [withTime]=\"formElementRef._eoFormElement.withtime\"\n [operator]=\"element?.value[element._eoFormControlWrapper.controlName] ? element.value[element._eoFormControlWrapper.controlName]?.operator: 'eq'\"\n [formControlName]=\"element._eoFormControlWrapper.controlName\"></eo-datetime-range>\n </eo-form-input>\n </ng-template>\n\n <ng-content></ng-content>\n\n <!-- print out the type if it's not matching anything -->\n <ng-template #tplUnknown><b>{{formElementRef._eoFormElement.type}}</b></ng-template>\n</div>\n", styles: [":host-context(.dark) .form-element .form-field .err-msg{background-color:var(--color-error);color:var(--color-white);margin:calc(var(--app-pane-padding) / 4) 0;padding:calc(var(--app-pane-padding) / 4);border:0;border-radius:2px}:host{flex:1 1 auto}:host.label-toggled::ng-deep eo-form-input label{text-decoration:line-through}.form-element{box-sizing:border-box}.form-element .form-field{margin:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}.form-element .form-field .description{border:0;font-size:var(--font-hint);font-style:italic;padding:calc(var(--app-pane-padding) / 8) calc(var(--app-pane-padding) / 8) 0 calc(var(--app-pane-padding) / 8)}.form-element .form-field .err-msg{color:var(--color-error);padding:calc(var(--app-pane-padding) / 4) 0;border:0}.form-element .form-field .table{flex-flow:column;align-items:flex-start;border-color:transparent}.form-element .form-field .table .label{padding-bottom:calc(var(--app-pane-padding) / 4)}.form-element.ng-dirty:not(.ng-invalid)>.form-field:not(.focused)::ng-deep label{background-color:var(--color-dirty-background);color:var(--color-dirty-font)!important}\n"] }]
106
106
  }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { elementTemplates: [{
107
107
  type: ViewChildren,
108
108
  args: [FormElementTemplate, { emitDistinctChangesOnly: true }]
@@ -120,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImpor
120
120
  type: ViewChild,
121
121
  args: ['formField']
122
122
  }] } });
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lbGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC9mb3JtLWVsZW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxlQUFlLEVBQWMsS0FBSyxFQUFxQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3ZKLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUXRFLE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9CLHFGQUFxRjtJQUNyRixJQUNJLGFBQWEsQ0FBQyxFQUE0QjtRQUM1QyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBRVAsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4RSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFD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QkFBbUIsZ0RDWm5DLGltZEFtT0E7OzJGRHhOYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsaUJBQWlCO3NJQU15QyxnQkFBZ0I7c0JBQW5GLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyx1QkFBdUIsRUFBRSxJQUFJLEVBQUM7Z0JBQ0ssdUJBQXVCO3NCQUE3RixlQUFlO3VCQUFDLG1CQUFtQixFQUFFLEVBQUMsdUJBQXVCLEVBQUUsSUFBSSxFQUFDO2dCQWM1RCxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUYsYUFBYTtzQkFEaEIsS0FBSzt1QkFBQyxTQUFTO2dCQXdCUSxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBJbnB1dCwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQGVvLXNkay9jb3JlJztcclxuaW1wb3J0IHtPYmplY3RGb3JtQ29udHJvbFdyYXBwZXJ9IGZyb20gJy4uL29iamVjdC1mb3JtLWNvbnRyb2wtd3JhcHBlcic7XHJcbmltcG9ydCB7Rm9ybUVsZW1lbnRUZW1wbGF0ZX0gZnJvbSAnLi9mb3JtLWVsZW1lbnQtdGVtcGxhdGUuZGlyZWN0aXZlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZW8tZm9ybS1lbGVtZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lbGVtZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWVsZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICAvL2VuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1FbGVtZW50Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZHJlbihGb3JtRWxlbWVudFRlbXBsYXRlLCB7ZW1pdERpc3RpbmN0Q2hhbmdlc09ubHk6IHRydWV9KSBlbGVtZW50VGVtcGxhdGVzOiBRdWVyeUxpc3Q8Rm9ybUVsZW1lbnRUZW1wbGF0ZT47XHJcbiAgQENvbnRlbnRDaGlsZHJlbihGb3JtRWxlbWVudFRlbXBsYXRlLCB7ZW1pdERpc3RpbmN0Q2hhbmdlc09ubHk6IHRydWV9KSBjb250ZW50RWxlbWVudFRlbXBsYXRlczogUXVlcnlMaXN0PEZvcm1FbGVtZW50VGVtcGxhdGU+O1xyXG5cclxuXHJcbiAgXHJcbiAgZWxlbWVudFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIGZvcm1FbGVtZW50UmVmOiBhbnk7XHJcbiAgZWxlbWVudDogT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyO1xyXG4gIGZvY3VzZWQ7XHJcbiAgaXNOdWxsOiBib29sZWFuO1xyXG4gIHRhZzoge1xyXG4gICAgbGFiZWw6IHN0cmluZyxcclxuICAgIHRpdGxlOiBzdHJpbmdcclxuICB9O1xyXG5cclxuICBASW5wdXQoKSBzaXR1YXRpb247XHJcbiAgQElucHV0KCkgc2tpcFRvZ2dsZTogYm9vbGVhbjtcclxuXHJcbiAgLy8gZWxlbWVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHNwZWNpYWwgVW50eXBlZEZvcm1Hcm91cCBob2xkaW5nIGEgc2luZ2xlIGZvcm0gZWxlbWVudFxyXG4gIEBJbnB1dCgnZWxlbWVudCcpXHJcbiAgc2V0IGVsZW1lbnRTZXR0ZXIoZWw6IE9iamVjdEZvcm1Db250cm9sV3JhcHBlcikge1xyXG4gICAgaWYgKGVsKSB7XHJcblxyXG4gICAgICB0aGlzLmVsZW1lbnQgPSBlbDtcclxuICAgICAgdGhpcy5mb3JtRWxlbWVudFJlZiA9IGVsLmNvbnRyb2xzW2VsLl9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZV07XHJcbiAgICAgIGlmICh0aGlzLmZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmlzTm90U2V0VmFsdWUpIHtcclxuICAgICAgICB0aGlzLmxhYmVsVG9nZ2xlZCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5mb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC50eXBlID09PSAnUkVGRVJFTkNFJykge1xyXG4gICAgICAgIHRoaXMuYWRkRGF0YVRvUmVuZGVyKHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnR5cGUgPT09ICdJRCcpIHtcclxuICAgICAgICB0aGlzLmZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm1pbmxlbiA9IDMyO1xyXG4gICAgICAgIHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubWF4bGVuID0gMzI7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mZXRjaFRhZ3MoKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5ICYmIHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVxdWlyZWQpIHtcclxuICAgICAgICB0aGlzLmZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2Zvcm1GaWVsZCcpIGZvcm1GaWVsZDogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGREYXRhVG9SZW5kZXIoZWxlbWVudCkge1xyXG4gICAgY29uc3QgbXVsdGlzZWxlY3QgPSBlbGVtZW50Lm11bHRpc2VsZWN0O1xyXG4gICAgY29uc3QgZGF0YU1ldGEgPSBlbGVtZW50LmRhdGFNZXRhO1xyXG4gICAgaWYgKG11bHRpc2VsZWN0ICYmIGRhdGFNZXRhKSB7XHJcbiAgICAgIGVsZW1lbnQuZGF0YVRvUmVuZGVyID0gZGF0YU1ldGEubWFwKChkTSwgaSkgPT4ge1xyXG4gICAgICAgIGRNLmlkID0gZWxlbWVudC52YWx1ZVtpXTtcclxuICAgICAgICByZXR1cm4gZE07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFtdWx0aXNlbGVjdCAmJiBkYXRhTWV0YSkge1xyXG4gICAgICBkYXRhTWV0YS5pZCA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgIGVsZW1lbnQuZGF0YVRvUmVuZGVyID0gW2RhdGFNZXRhXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxhYmVsVG9nZ2xlZCh0b2dnbGVkOiBib29sZWFuKSB7XHJcbiAgICBpZiAoIXRoaXMuc2tpcFRvZ2dsZSAmJiB0aGlzLmVsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcclxuICAgICAgY29uc3QgdG9nZ2xlQ2xhc3MgPSAnbGFiZWwtdG9nZ2xlZCc7XHJcbiAgICAgIHRoaXMuaXNOdWxsID0gdG9nZ2xlZDtcclxuICAgICAgaWYgKHRvZ2dsZWQpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdG9nZ2xlQ2xhc3MpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0b2dnbGVDbGFzcyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5pc05vdFNldFZhbHVlID0gdG9nZ2xlZDtcclxuICAgICAgdGhpcy5lbGVtZW50LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9yZ2FuaXphdGlvbkRhdGFNZXRhUmVzb2x2ZWQoZGF0YSkge1xyXG4gICAgLy8gbmV3IG1ldGEgZGF0YSB3aWxsIGFsd2F5cyBhcnJpdmUgYXMgYXJyYXkgZXZlbiBmb3Igc2luZ2xlIGlucHV0cywgc28gd2UgaGF2ZSB0byBjb252ZXJ0XHJcbiAgICB0aGlzLmZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmRhdGFNZXRhID0gdGhpcy5mb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5tdWx0aXNlbGVjdCA/IGRhdGEgOiBkYXRhWzBdO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hUYWdzKCkge1xyXG4gICAgdGhpcy50YWcgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuc2l0dWF0aW9uID09PSAnQ1JFQVRFJyAmJlxyXG4gICAgICAodGhpcy5mb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5oYXNPd25Qcm9wZXJ0eSgnZGVmYXVsdHZhbHVlZnVuY3Rpb24nKSB8fCB0aGlzLmZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lmhhc093blByb3BlcnR5KCdkZWZhdWx0dmFsdWUnKSkpIHtcclxuICAgICAgdGhpcy50YWcgPSB0aGlzLmZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmRlZmF1bHR2YWx1ZWZ1bmN0aW9uID09PSAnRVhUUkFDVElPTicgPyB7XHJcbiAgICAgICAgbGFiZWw6ICdleCcsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLmZvcm0uZWxlbWVudC50YWcuZXgnKVxyXG4gICAgICB9IDoge1xyXG4gICAgICAgIGxhYmVsOiAnZGYnLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5mb3JtLmVsZW1lbnQudGFnLmRmJylcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRwbHMgPSBbLi4udGhpcy5lbGVtZW50VGVtcGxhdGVzLnRvQXJyYXkoKSwgLi4udGhpcy5jb250ZW50RWxlbWVudFRlbXBsYXRlcy50b0FycmF5KCldO1xyXG4gICAgY29uc3QgZGlyID0gdHBscy5maW5kKHRwbCA9PiB0cGwucHJvcGVydHlUeXBlID09PSB0aGlzLmZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnR5cGUpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZWxlbWVudFRlbXBsYXRlID0gZGlyID8gZGlyLnRlbXBsYXRlIDogdW5kZWZpbmVkXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1lbGVtZW50XCIgW2Zvcm1Hcm91cF09XCJlbGVtZW50XCIgKm5nSWY9XCJlbGVtZW50XCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkIHQte3tmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC50eXBlfX1cIiAjZm9ybUZpZWxkXHJcbiAgICBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6ICEhZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVhZG9ubHl9XCIgKm5nSWY9XCJlbGVtZW50VGVtcGxhdGVcIj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZWxlbWVudFRlbXBsYXRlOyBjb250ZXh0OiB7ZWxlbWVudCwgZm9ybUVsZW1lbnRSZWZ9XCI+PC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSB0aGUgZmllbGRzIGRlc2NyaXB0aW9uIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5kZXNjcmlwdGlvblwiPnt7Zm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZGVzY3JpcHRpb259fTwvZGl2PlxyXG5cclxuICAgIDwhLS0gZXJyb3IvdmFsaWRhdGlvbiBtZXNzYWdlcyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJlcnItbXNnXCIgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnNcIj5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMuZGF0ZXJhbmdlXCIgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkuZGF0ZXJhbmdlLmludmFsaWQ8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50UmVmLmVycm9ycy5udW1iZXJyYW5nZVwiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5Lm51bWJlcnJhbmdlLmludmFsaWQ8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50UmVmLmVycm9ycy5udW1iZXJcIiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5udW1iZXI8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50UmVmLmVycm9ycy5wcmVjaXNpb25cIiB0cmFuc2xhdGVcclxuICAgICAgICBbdHJhbnNsYXRlUGFyYW1zXT1cImZvcm1FbGVtZW50UmVmLmVycm9ycy5wcmVjaXNpb24udHJhbnNsYXRlVmFsdWVzXCI+XHJcbiAgICAgICAge3tmb3JtRWxlbWVudFJlZi5lcnJvcnMucHJlY2lzaW9uLnRyYW5zbGF0ZUtleX19PC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMuc2NhbGVcIiB0cmFuc2xhdGVcclxuICAgICAgICBbdHJhbnNsYXRlUGFyYW1zXT1cImZvcm1FbGVtZW50UmVmLmVycm9ycy5zY2FsZS50cmFuc2xhdGVWYWx1ZXNcIj57e2Zvcm1FbGVtZW50UmVmLmVycm9ycy5zY2FsZS50cmFuc2xhdGVLZXl9fVxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMucmVnZXggfHwgZm9ybUVsZW1lbnRSZWYuZXJyb3JzLnBhdHRlcm5cIiB0cmFuc2xhdGU+XHJcbiAgICAgICAgZW8uZm9ybS5wcm9wZXJ0eS5zdHJpbmcucmVnZXgubm9tYXRjaDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuZXJyb3JzLmNsYXNzaWZpY2F0aW9uZW1haWxcIiB0cmFuc2xhdGU+XHJcbiAgICAgICAgZW8uZm9ybS5wcm9wZXJ0eS5zdHJpbmcuZXJyb3IuY2xhc3NpZmljYXRpb24uZW1haWw8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50UmVmLmVycm9ycy5jbGFzc2lmaWNhdGlvbnVybFwiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LnN0cmluZy5lcnJvci5jbGFzc2lmaWNhdGlvbi51cmxcclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMub25seVdoaXRlc3BhY2VzXCIgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkuc3RyaW5nLmVycm9yLndoaXRlc3BhY2VzPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMuZGF0ZWNvbnRyb2xcIiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5kYXRlLmludmFsaWQ8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50UmVmLmVycm9ycy5jb2Rlc3lzdGVtXCIgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkuY29kZXN5c3RlbS52YWx1ZS5pbnZhbGlkPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMuZW9mb3JtU2NyaXB0XCI+e3tmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5lcnJvci5tc2d9fTwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuZXJyb3JzLnJlcXVpcmVkXCIgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkucmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50UmVmLmVycm9ycy5tYXhsZW5ndGhcIiB0cmFuc2xhdGVcclxuICAgICAgICBbdHJhbnNsYXRlUGFyYW1zXT1cInttYXhsZW5ndGg6IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm1heGxlbn1cIj5lby5mb3JtLnByb3BlcnR5Lm1heGxlbmd0aDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuZXJyb3JzLm1pbmxlbmd0aFwiIHRyYW5zbGF0ZVxyXG4gICAgICAgIFt0cmFuc2xhdGVQYXJhbXNdPVwie21pbmxlbmd0aDogZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubWlubGVufVwiPmVvLmZvcm0ucHJvcGVydHkubWlubGVuZ3RoPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMuZGVsZXRlZElEUmVmZXJlbmNlXCIgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkuaWRyZWZlcmVuY2UuZGVsZXRlZDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuZXJyb3JzLmRlbGV0ZWRPcmdPYmplY3RcIiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5vcmdvYmplY3QuZGVsZXRlZDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG5cclxuXHJcblxyXG4gIDwhLS0gU1RSSU5HIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBlb0Zvcm1FbGVtZW50VGVtcGxhdGUgcHJvcGVydHlUeXBlPVwiU1RSSU5HXCIgbGV0LWVsZW1lbnQ9XCJlbGVtZW50XCIgbGV0LWZvcm1FbGVtZW50UmVmPVwiZm9ybUVsZW1lbnRSZWZcIj5cclxuICAgIDxlby1mb3JtLWlucHV0IFt0YWddPVwidGFnXCJcclxuICAgICAgW2xhYmVsXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsID8gZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgOiBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5uYW1lXCJcclxuICAgICAgW2lzTnVsbF09XCJpc051bGxcIlxyXG4gICAgICBbc2tpcFRvZ2dsZV09XCJza2lwVG9nZ2xlIHx8IHNpdHVhdGlvbiAhPT0gJ1NFQVJDSCdcIiAob25Ub2dnbGVMYWJlbCk9XCJsYWJlbFRvZ2dsZWQoJGV2ZW50KVwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZFwiIFtkaXNhYmxlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXHJcbiAgICAgIFtpbnZhbGlkXT1cImZvcm1FbGVtZW50UmVmLmludmFsaWRcIj5cclxuXHJcbiAgICAgIDxlby1zdHJpbmdcclxuICAgICAgICAqbmdJZj1cIiFmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWZlcmVuY2UgJiYgZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuY2xhc3NpZmljYXRpb24gIT09ICdzZWxlY3RvcidcIlxyXG4gICAgICAgIFtzaXR1YXRpb25dPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuc2l0dWF0aW9uXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImVsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lXCJcclxuICAgICAgICBbYXV0b2NvbXBsZXRlXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmF1dG9jb21wbGV0ZVwiXHJcbiAgICAgICAgW211bHRpc2VsZWN0XT1cIiEhZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubXVsdGlzZWxlY3RcIlxyXG4gICAgICAgIFttdWx0aWxpbmVdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubXVsdGlsaW5lXCJcclxuICAgICAgICBbY2xhc3NpZmljYXRpb25dPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuY2xhc3NpZmljYXRpb25cIiBbcmVnZXhdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVnZXhcIlxyXG4gICAgICAgIFtxbmFtZV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5xbmFtZVwiIFtzaXplXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnNpemVcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiIFttaW5MZW5ndGhdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubWlubGVuXCJcclxuICAgICAgICBbbWF4TGVuZ3RoXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm1heGxlblwiPjwvZW8tc3RyaW5nPlxyXG5cclxuICAgICAgPCEtLSBEeW5hbWljIExpc3QgLS0+XHJcbiAgICAgIDxlby1keW5hbWljLWxpc3RcclxuICAgICAgICAqbmdJZj1cIiFmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWZlcmVuY2UgJiYgZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuY2xhc3NpZmljYXRpb24gPT09ICdzZWxlY3RvcidcIlxyXG4gICAgICAgIFtzaXR1YXRpb25dPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuc2l0dWF0aW9uXCIgW3BpY2tlclRpdGxlXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsXCJcclxuICAgICAgICBbZmlsdGVyRnVuY3Rpb25dPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZmlsdGVyRnVuY3Rpb25cIlxyXG4gICAgICAgIFttdWx0aXNlbGVjdF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5tdWx0aXNlbGVjdFwiIFtsaXN0T2JqZWN0XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lmxpc3RcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXHJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZVwiPjwvZW8tZHluYW1pYy1saXN0PlxyXG5cclxuXHJcbiAgICAgIDwhLS0gUmVmZXJlbmNlIC0tPlxyXG4gICAgICA8ZW8tcmVmZXJlbmNlICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVmZXJlbmNlXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImVsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVhZG9ubHlcIiBbcmVmZXJlbmNlXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlZmVyZW5jZVwiXHJcbiAgICAgICAgW211bHRpc2VsZWN0XT1cIiEhZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubXVsdGlzZWxlY3QgPyBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5tdWx0aXNlbGVjdCA6IHNpdHVhdGlvbiA9PT0gJ1NFQVJDSCdcIlxyXG4gICAgICAgIFttaW5MZW5ndGhdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubWlubGVuXCJcclxuICAgICAgICBbbWF4TGVuZ3RoXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm1heGxlblwiPjwvZW8tcmVmZXJlbmNlPlxyXG4gICAgPC9lby1mb3JtLWlucHV0PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDwhLS0gSUQtUmVmZXJlbmNlIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBlb0Zvcm1FbGVtZW50VGVtcGxhdGUgcHJvcGVydHlUeXBlPVwiUkVGRVJFTkNFXCIgbGV0LWVsZW1lbnQ9XCJlbGVtZW50XCIgbGV0LWZvcm1FbGVtZW50UmVmPVwiZm9ybUVsZW1lbnRSZWZcIj5cclxuICAgIDxlby1mb3JtLWlucHV0IFt0YWddPVwidGFnXCJcclxuICAgICAgW2xhYmVsXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsID8gZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgOiBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5uYW1lXCJcclxuICAgICAgW2lzTnVsbF09XCJpc051bGxcIlxyXG4gICAgICBbc2tpcFRvZ2dsZV09XCJza2lwVG9nZ2xlIHx8IHNpdHVhdGlvbiAhPT0gJ1NFQVJDSCdcIiAob25Ub2dnbGVMYWJlbCk9XCJsYWJlbFRvZ2dsZWQoJGV2ZW50KVwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZFwiIFtkaXNhYmxlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXHJcbiAgICAgIFtpbnZhbGlkXT1cImZvcm1FbGVtZW50UmVmLmludmFsaWRcIj5cclxuXHJcbiAgICAgIDxlby1pZC1yZWZlcmVuY2UgW2Zvcm1Db250cm9sTmFtZV09XCJlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZVwiXHJcbiAgICAgICAgW3NpdHVhdGlvbl09XCJlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5zaXR1YXRpb25cIlxyXG4gICAgICAgIFtkYXRhVG9SZW5kZXJdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZGF0YVRvUmVuZGVyXCJcclxuICAgICAgICBbcmVmZXJlbmNlXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlZmVyZW5jZVwiIFtyZWFkb25seV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXHJcbiAgICAgICAgW211bHRpc2VsZWN0XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm11bHRpc2VsZWN0XCIgW2NvbnRleHRJZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5jb250ZXh0SWRcIlxyXG4gICAgICAgIFtleGNlcHRpb25JRHNdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZXhjZXB0aW9uSURzXCJcclxuICAgICAgICBbcXVlcnlGaWx0ZXJzXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnF1ZXJ5RmlsdGVyc1wiXHJcbiAgICAgICAgW29iamVjdFR5cGVzRmlsdGVyXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm9iamVjdFR5cGVzRmlsdGVyXCI+PC9lby1pZC1yZWZlcmVuY2U+XHJcbiAgICA8L2VvLWZvcm0taW5wdXQ+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPCEtLSBJRCAtLT5cclxuICA8bmctdGVtcGxhdGUgZW9Gb3JtRWxlbWVudFRlbXBsYXRlIHByb3BlcnR5VHlwZT1cIklEXCIgbGV0LWVsZW1lbnQ9XCJlbGVtZW50XCIgbGV0LWZvcm1FbGVtZW50UmVmPVwiZm9ybUVsZW1lbnRSZWZcIj5cclxuICAgIDxlby1mb3JtLWlucHV0IFt0YWddPVwidGFnXCJcclxuICAgICAgW2xhYmVsXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsID8gZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgOiBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5uYW1lXCJcclxuICAgICAgW2lzTnVsbF09XCJpc051bGxcIlxyXG4gICAgICBbc2tpcFRvZ2dsZV09XCJza2lwVG9nZ2xlIHx8IHNpdHVhdGlvbiAhPT0gJ1NFQVJDSCdcIiAob25Ub2dnbGVMYWJlbCk9XCJsYWJlbFRvZ2dsZWQoJGV2ZW50KVwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZFwiIFtkaXNhYmxlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXHJcbiAgICAgIFtpbnZhbGlkXT1cImZvcm1FbGVtZW50UmVmLmludmFsaWRcIj5cclxuXHJcbiAgICAgIDxlby1zdHJpbmcgW3NpdHVhdGlvbl09XCJlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5zaXR1YXRpb25cIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWVcIlxyXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuYXV0b2NvbXBsZXRlXCJcclxuICAgICAgICBbbXVsdGlzZWxlY3RdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubXVsdGlzZWxlY3RcIiBbcmVnZXhdPVwiJ15bMC05YS1mQS1GXSokJ1wiXHJcbiAgICAgICAgW3FuYW1lXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnFuYW1lXCIgW3JlYWRvbmx5XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5XCJcclxuICAgICAgICBbbWluTGVuZ3RoXT1cIjMyXCIgW21heExlbmd0aF09XCIzMlwiPjwvZW8tc3RyaW5nPlxyXG5cclxuICAgIDwvZW8tZm9ybS1pbnB1dD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcbiAgPCEtLSBCT09MRUFOIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBlb0Zvcm1FbGVtZW50VGVtcGxhdGUgcHJvcGVydHlUeXBlPVwiQk9PTEVBTlwiIGxldC1lbGVtZW50PVwiZWxlbWVudFwiIGxldC1mb3JtRWxlbWVudFJlZj1cImZvcm1FbGVtZW50UmVmXCI+XHJcbiAgICA8ZW8tZm9ybS1pbnB1dCBbdGFnXT1cInRhZ1wiIGNsYXNzPVwiY2hlY2tib3hcIlxyXG4gICAgICBbbGFiZWxdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgPyBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5sYWJlbCA6IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm5hbWVcIlxyXG4gICAgICBbaXNOdWxsXT1cImlzTnVsbFwiXHJcbiAgICAgIFtza2lwVG9nZ2xlXT1cInNraXBUb2dnbGUgfHwgc2l0dWF0aW9uICE9PSAnU0VBUkNIJ1wiIFtyZXF1aXJlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiIChvblRvZ2dsZUxhYmVsKT1cImxhYmVsVG9nZ2xlZCgkZXZlbnQpXCJcclxuICAgICAgW2ludmFsaWRdPVwiZm9ybUVsZW1lbnRSZWYuaW52YWxpZFwiPlxyXG5cclxuICAgICAgPGVvLWNoZWNrYm94IFtmb3JtQ29udHJvbE5hbWVdPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWVcIlxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZFwiIFtyZWFkb25seV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXHJcbiAgICAgICAgW3RyaXN0YXRlXT1cInRydWVcIj48L2VvLWNoZWNrYm94PlxyXG4gICAgPC9lby1mb3JtLWlucHV0PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDwhLS0gQ09ERVNZU1RFTSAtLT5cclxuICA8bmctdGVtcGxhdGUgZW9Gb3JtRWxlbWVudFRlbXBsYXRlIHByb3BlcnR5VHlwZT1cIkNPREVTWVNURU1cIiBsZXQtZWxlbWVudD1cImVsZW1lbnRcIlxyXG4gICAgbGV0LWZvcm1FbGVtZW50UmVmPVwiZm9ybUVsZW1lbnRSZWZcIj5cclxuICAgIDxlby1mb3JtLWlucHV0IFt0YWddPVwidGFnXCJcclxuICAgICAgW2xhYmVsXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsID8gZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgOiBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5uYW1lXCJcclxuICAgICAgW2lzTnVsbF09XCJpc051bGxcIlxyXG4gICAgICBbc2tpcFRvZ2dsZV09XCJza2lwVG9nZ2xlIHx8IHNpdHVhdGlvbiAhPT0gJ1NFQVJDSCdcIiAob25Ub2dnbGVMYWJlbCk9XCJsYWJlbFRvZ2dsZWQoJGV2ZW50KVwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZFwiIFtkaXNhYmxlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXHJcbiAgICAgIFtpbnZhbGlkXT1cImZvcm1FbGVtZW50UmVmLmludmFsaWRcIj5cclxuXHJcbiAgICAgIDxlby1jb2Rlc3lzdGVtIFtzaXR1YXRpb25dPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuc2l0dWF0aW9uXCJcclxuICAgICAgICBbcGlja2VyVGl0bGVdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWxcIiBbcmVhZG9ubHldPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVhZG9ubHlcIlxyXG4gICAgICAgIFtjb2Rlc3lzdGVtXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmNvZGVzeXN0ZW1cIlxyXG4gICAgICAgIFttdWx0aXNlbGVjdF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5tdWx0aXNlbGVjdFwiXHJcbiAgICAgICAgW2ZpbHRlckZ1bmN0aW9uXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmZpbHRlckZ1bmN0aW9uXCJcclxuICAgICAgICBbZGlzYWJsaW5nRmlsdGVyRnVuY3Rpb25dPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZGlzYWJsaW5nRmlsdGVyRnVuY3Rpb25cIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWVcIj48L2VvLWNvZGVzeXN0ZW0+XHJcbiAgICA8L2VvLWZvcm0taW5wdXQ+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPCEtLSBPUkdBTklaQVRJT04gLS0+XHJcbiAgPG5nLXRlbXBsYXRlIGVvRm9ybUVsZW1lbnRUZW1wbGF0ZSBwcm9wZXJ0eVR5cGU9XCJPUkdBTklaQVRJT05cIiBsZXQtZWxlbWVudD1cImVsZW1lbnRcIlxyXG4gICAgbGV0LWZvcm1FbGVtZW50UmVmPVwiZm9ybUVsZW1lbnRSZWZcIj5cclxuICAgIDxlby1mb3JtLWlucHV0IFt0YWddPVwidGFnXCJcclxuICAgICAgW2xhYmVsXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsID8gZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgOiBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5uYW1lXCJcclxuICAgICAgW2lzTnVsbF09XCJpc051bGxcIlxyXG4gICAgICBbc2tpcFRvZ2dsZV09XCJza2lwVG9nZ2xlIHx8IHNpdHVhdGlvbiAhPT0gJ1NFQVJDSCdcIiAob25Ub2dnbGVMYWJlbCk9XCJsYWJlbFRvZ2dsZWQoJGV2ZW50KVwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZFwiIFtkaXNhYmxlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXHJcbiAgICAgIFtpbnZhbGlkXT1cImZvcm1FbGVtZW50UmVmLmludmFsaWRcIj5cclxuXHJcbiAgICAgIDxlby1vcmdhbml6YXRpb24gW3NpdHVhdGlvbl09XCJlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5zaXR1YXRpb25cIlxyXG4gICAgICAgIFtkYXRhTWV0YV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5kYXRhTWV0YVwiIFtyZWFkb25seV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXHJcbiAgICAgICAgW2ZpbHRlck9iamVjdF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5maWx0ZXJcIiBbbXVsdGlzZWxlY3RdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubXVsdGlzZWxlY3RcIlxyXG4gICAgICAgIChvbkRhdGFNZXRhQ2hhbmdlZCk9XCJvcmdhbml6YXRpb25EYXRhTWV0YVJlc29sdmVkKCRldmVudClcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWVcIj48L2VvLW9yZ2FuaXphdGlvbj5cclxuICAgIDwvZW8tZm9ybS1pbnB1dD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8IS0tIE5VTUJFUiAtLT5cclxuICA8bmctdGVtcGxhdGUgZW9Gb3JtRWxlbWVudFRlbXBsYXRlIHByb3BlcnR5VHlwZT1cIk5VTUJFUlwiIGxldC1lbGVtZW50PVwiZWxlbWVudFwiIGxldC1mb3JtRWxlbWVudFJlZj1cImZvcm1FbGVtZW50UmVmXCI+XHJcbiAgICA8ZW8tZm9ybS1pbnB1dCBbdGFnXT1cInRhZ1wiXHJcbiAgICAgIFtsYWJlbF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5sYWJlbCA/IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsIDogZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubmFtZVwiXHJcbiAgICAgIFtpc051bGxdPVwiaXNOdWxsXCJcclxuICAgICAgW3NraXBUb2dnbGVdPVwic2tpcFRvZ2dsZSB8fCBzaXR1YXRpb24gIT09ICdTRUFSQ0gnXCIgKG9uVG9nZ2xlTGFiZWwpPVwibGFiZWxUb2dnbGVkKCRldmVudClcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVxdWlyZWRcIiBbZGlzYWJsZWRdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVhZG9ubHlcIlxyXG4gICAgICBbaW52YWxpZF09XCJmb3JtRWxlbWVudFJlZi5pbnZhbGlkXCI+XHJcblxyXG4gICAgICA8ZW8tbnVtYmVyICpuZ0lmPVwic2l0dWF0aW9uICE9PSAnU0VBUkNIJ1wiIFtyZWFkb25seV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXHJcbiAgICAgICAgW3ByZWNpc2lvbl09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5wcmVjaXNpb25cIiBbc2NhbGVdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuc2NhbGVcIlxyXG4gICAgICAgIFtncm91cGluZ109XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5ncm91cGluZ1wiIFtwYXR0ZXJuXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnBhdHRlcm5cIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWVcIj5cclxuICAgICAgPC9lby1udW1iZXI+XHJcblxyXG4gICAgICA8ZW8tbnVtYmVyLXJhbmdlICpuZ0lmPVwic2l0dWF0aW9uID09PSAnU0VBUkNIJ1wiIFtyZWFkb25seV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXHJcbiAgICAgICAgW3ByZWNpc2lvbl09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5wcmVjaXNpb25cIiBbc2NhbGVdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuc2NhbGVcIlxyXG4gICAgICAgIFtncm91cGluZ109XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5ncm91cGluZ1wiIFtwYXR0ZXJuXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnBhdHRlcm5cIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWVcIj48L2VvLW51bWJlci1yYW5nZT5cclxuICAgIDwvZW8tZm9ybS1pbnB1dD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8IS0tIERBVEUgQU5EIERBVEVUSU1FIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBlb0Zvcm1FbGVtZW50VGVtcGxhdGUgcHJvcGVydHlUeXBlPVwiREFURVRJTUVcIiBsZXQtZWxlbWVudD1cImVsZW1lbnRcIiBsZXQtZm9ybUVsZW1lbnRSZWY9XCJmb3JtRWxlbWVudFJlZlwiPlxyXG4gICAgPGVvLWZvcm0taW5wdXQgW3RhZ109XCJ0YWdcIlxyXG4gICAgICBbbGFiZWxdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgPyBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5sYWJlbCA6IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm5hbWVcIlxyXG4gICAgICBbaXNOdWxsXT1cImlzTnVsbFwiXHJcbiAgICAgIFtza2lwVG9nZ2xlXT1cInNraXBUb2dnbGUgfHwgc2l0dWF0aW9uICE9PSAnU0VBUkNIJ1wiIChvblRvZ2dsZUxhYmVsKT1cImxhYmVsVG9nZ2xlZCgkZXZlbnQpXCJcclxuICAgICAgW3JlcXVpcmVkXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlcXVpcmVkXCIgW2Rpc2FibGVkXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5XCJcclxuICAgICAgW2ludmFsaWRdPVwiZm9ybUVsZW1lbnRSZWYuaW52YWxpZFwiPlxyXG5cclxuICAgICAgPGVvLWRhdGUgKm5nSWY9XCJzaXR1YXRpb24gIT09ICdTRUFSQ0gnXCIgW3dpdGhUaW1lXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LndpdGh0aW1lXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVhZG9ubHlcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWVcIj48L2VvLWRhdGU+XHJcblxyXG4gICAgICA8ZW8tZGF0ZXRpbWUtcmFuZ2UgKm5nSWY9XCJzaXR1YXRpb24gPT09ICdTRUFSQ0gnXCIgW3BpY2tlclRpdGxlXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsXCJcclxuICAgICAgICBbd2l0aFRpbWVdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQud2l0aHRpbWVcIlxyXG4gICAgICAgIFtvcGVyYXRvcl09XCJlbGVtZW50Py52YWx1ZVtlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZV0gPyBlbGVtZW50LnZhbHVlW2VsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lXT8ub3BlcmF0b3I6ICdlcSdcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWVcIj48L2VvLWRhdGV0aW1lLXJhbmdlPlxyXG4gICAgPC9lby1mb3JtLWlucHV0PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuXHJcbiAgPCEtLSBwcmludCBvdXQgdGhlIHR5cGUgaWYgaXQncyBub3QgbWF0Y2hpbmcgYW55dGhpbmcgLS0+XHJcbiAgPG5nLXRlbXBsYXRlICN0cGxVbmtub3duPjxiPnt7Zm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQudHlwZX19PC9iPjwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lbGVtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL29iamVjdC1mb3JtL29iamVjdC1mb3JtL2Zvcm0tZWxlbWVudC9mb3JtLWVsZW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvb2JqZWN0LWZvcm0vb2JqZWN0LWZvcm0vZm9ybS1lbGVtZW50L2Zvcm0tZWxlbWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxlQUFlLEVBQWMsS0FBSyxFQUFxQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBR3ZKLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUXRFLE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9CLHFGQUFxRjtJQUNyRixJQUNJLGFBQWEsQ0FBQyxFQUE0QjtRQUM1QyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBRVAsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4RSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFD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QkFBbUIsZ0RDWm5DLDJwY0FtT0E7OzJGRHhOYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsaUJBQWlCO3NJQU15QyxnQkFBZ0I7c0JBQW5GLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsRUFBQyx1QkFBdUIsRUFBRSxJQUFJLEVBQUM7Z0JBQ0ssdUJBQXVCO3NCQUE3RixlQUFlO3VCQUFDLG1CQUFtQixFQUFFLEVBQUMsdUJBQXVCLEVBQUUsSUFBSSxFQUFDO2dCQWM1RCxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUYsYUFBYTtzQkFEaEIsS0FBSzt1QkFBQyxTQUFTO2dCQXdCUSxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBJbnB1dCwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQge09iamVjdEZvcm1Db250cm9sV3JhcHBlcn0gZnJvbSAnLi4vb2JqZWN0LWZvcm0tY29udHJvbC13cmFwcGVyJztcbmltcG9ydCB7Rm9ybUVsZW1lbnRUZW1wbGF0ZX0gZnJvbSAnLi9mb3JtLWVsZW1lbnQtdGVtcGxhdGUuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tZm9ybS1lbGVtZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZWxlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZWxlbWVudC5jb21wb25lbnQuc2NzcyddLFxuICAvL2VuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVsZW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQFZpZXdDaGlsZHJlbihGb3JtRWxlbWVudFRlbXBsYXRlLCB7ZW1pdERpc3RpbmN0Q2hhbmdlc09ubHk6IHRydWV9KSBlbGVtZW50VGVtcGxhdGVzOiBRdWVyeUxpc3Q8Rm9ybUVsZW1lbnRUZW1wbGF0ZT47XG4gIEBDb250ZW50Q2hpbGRyZW4oRm9ybUVsZW1lbnRUZW1wbGF0ZSwge2VtaXREaXN0aW5jdENoYW5nZXNPbmx5OiB0cnVlfSkgY29udGVudEVsZW1lbnRUZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxGb3JtRWxlbWVudFRlbXBsYXRlPjtcblxuXG4gIFxuICBlbGVtZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gIGZvcm1FbGVtZW50UmVmOiBhbnk7XG4gIGVsZW1lbnQ6IE9iamVjdEZvcm1Db250cm9sV3JhcHBlcjtcbiAgZm9jdXNlZDtcbiAgaXNOdWxsOiBib29sZWFuO1xuICB0YWc6IHtcbiAgICBsYWJlbDogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmdcbiAgfTtcblxuICBASW5wdXQoKSBzaXR1YXRpb247XG4gIEBJbnB1dCgpIHNraXBUb2dnbGU6IGJvb2xlYW47XG5cbiAgLy8gZWxlbWVudCBpcyBzdXBwb3NlZCB0byBiZSBhIHNwZWNpYWwgVW50eXBlZEZvcm1Hcm91cCBob2xkaW5nIGEgc2luZ2xlIGZvcm0gZWxlbWVudFxuICBASW5wdXQoJ2VsZW1lbnQnKVxuICBzZXQgZWxlbWVudFNldHRlcihlbDogT2JqZWN0Rm9ybUNvbnRyb2xXcmFwcGVyKSB7XG4gICAgaWYgKGVsKSB7XG5cbiAgICAgIHRoaXMuZWxlbWVudCA9IGVsO1xuICAgICAgdGhpcy5mb3JtRWxlbWVudFJlZiA9IGVsLmNvbnRyb2xzW2VsLl9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZV07XG4gICAgICBpZiAodGhpcy5mb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5pc05vdFNldFZhbHVlKSB7XG4gICAgICAgIHRoaXMubGFiZWxUb2dnbGVkKHRydWUpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQudHlwZSA9PT0gJ1JFRkVSRU5DRScpIHtcbiAgICAgICAgdGhpcy5hZGREYXRhVG9SZW5kZXIodGhpcy5mb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5mb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC50eXBlID09PSAnSUQnKSB7XG4gICAgICAgIHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubWlubGVuID0gMzI7XG4gICAgICAgIHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubWF4bGVuID0gMzI7XG4gICAgICB9XG4gICAgICB0aGlzLmZldGNoVGFncygpO1xuXG4gICAgICBpZiAodGhpcy5mb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seSAmJiB0aGlzLmZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlcXVpcmVkKSB7XG4gICAgICAgIHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAVmlld0NoaWxkKCdmb3JtRmllbGQnKSBmb3JtRmllbGQ6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xuICB9XG5cbiAgcHJpdmF0ZSBhZGREYXRhVG9SZW5kZXIoZWxlbWVudCkge1xuICAgIGNvbnN0IG11bHRpc2VsZWN0ID0gZWxlbWVudC5tdWx0aXNlbGVjdDtcbiAgICBjb25zdCBkYXRhTWV0YSA9IGVsZW1lbnQuZGF0YU1ldGE7XG4gICAgaWYgKG11bHRpc2VsZWN0ICYmIGRhdGFNZXRhKSB7XG4gICAgICBlbGVtZW50LmRhdGFUb1JlbmRlciA9IGRhdGFNZXRhLm1hcCgoZE0sIGkpID0+IHtcbiAgICAgICAgZE0uaWQgPSBlbGVtZW50LnZhbHVlW2ldO1xuICAgICAgICByZXR1cm4gZE07XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKCFtdWx0aXNlbGVjdCAmJiBkYXRhTWV0YSkge1xuICAgICAgZGF0YU1ldGEuaWQgPSBlbGVtZW50LnZhbHVlO1xuICAgICAgZWxlbWVudC5kYXRhVG9SZW5kZXIgPSBbZGF0YU1ldGFdO1xuICAgIH1cbiAgfVxuXG4gIGxhYmVsVG9nZ2xlZCh0b2dnbGVkOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLnNraXBUb2dnbGUgJiYgdGhpcy5lbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICBjb25zdCB0b2dnbGVDbGFzcyA9ICdsYWJlbC10b2dnbGVkJztcbiAgICAgIHRoaXMuaXNOdWxsID0gdG9nZ2xlZDtcbiAgICAgIGlmICh0b2dnbGVkKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0b2dnbGVDbGFzcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdG9nZ2xlQ2xhc3MpO1xuICAgICAgfVxuICAgICAgdGhpcy5mb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5pc05vdFNldFZhbHVlID0gdG9nZ2xlZDtcbiAgICAgIHRoaXMuZWxlbWVudC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgb3JnYW5pemF0aW9uRGF0YU1ldGFSZXNvbHZlZChkYXRhKSB7XG4gICAgLy8gbmV3IG1ldGEgZGF0YSB3aWxsIGFsd2F5cyBhcnJpdmUgYXMgYXJyYXkgZXZlbiBmb3Igc2luZ2xlIGlucHV0cywgc28gd2UgaGF2ZSB0byBjb252ZXJ0XG4gICAgdGhpcy5mb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5kYXRhTWV0YSA9IHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubXVsdGlzZWxlY3QgPyBkYXRhIDogZGF0YVswXTtcbiAgfVxuXG4gIGZldGNoVGFncygpIHtcbiAgICB0aGlzLnRhZyA9IG51bGw7XG4gICAgaWYgKHRoaXMuc2l0dWF0aW9uID09PSAnQ1JFQVRFJyAmJlxuICAgICAgKHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuaGFzT3duUHJvcGVydHkoJ2RlZmF1bHR2YWx1ZWZ1bmN0aW9uJykgfHwgdGhpcy5mb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5oYXNPd25Qcm9wZXJ0eSgnZGVmYXVsdHZhbHVlJykpKSB7XG4gICAgICB0aGlzLnRhZyA9IHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZGVmYXVsdHZhbHVlZnVuY3Rpb24gPT09ICdFWFRSQUNUSU9OJyA/IHtcbiAgICAgICAgbGFiZWw6ICdleCcsXG4gICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5mb3JtLmVsZW1lbnQudGFnLmV4JylcbiAgICAgIH0gOiB7XG4gICAgICAgIGxhYmVsOiAnZGYnLFxuICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uZm9ybS5lbGVtZW50LnRhZy5kZicpXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB0cGxzID0gWy4uLnRoaXMuZWxlbWVudFRlbXBsYXRlcy50b0FycmF5KCksIC4uLnRoaXMuY29udGVudEVsZW1lbnRUZW1wbGF0ZXMudG9BcnJheSgpXTtcbiAgICBjb25zdCBkaXIgPSB0cGxzLmZpbmQodHBsID0+IHRwbC5wcm9wZXJ0eVR5cGUgPT09IHRoaXMuZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQudHlwZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmVsZW1lbnRUZW1wbGF0ZSA9IGRpciA/IGRpci50ZW1wbGF0ZSA6IHVuZGVmaW5lZFxuICAgIH0pXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWVsZW1lbnRcIiBbZm9ybUdyb3VwXT1cImVsZW1lbnRcIiAqbmdJZj1cImVsZW1lbnRcIj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZCB0LXt7Zm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQudHlwZX19XCIgI2Zvcm1GaWVsZFxuICAgIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogISFmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seX1cIiAqbmdJZj1cImVsZW1lbnRUZW1wbGF0ZVwiPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVsZW1lbnRUZW1wbGF0ZTsgY29udGV4dDoge2VsZW1lbnQsIGZvcm1FbGVtZW50UmVmfVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSB0aGUgZmllbGRzIGRlc2NyaXB0aW9uIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvblwiICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZGVzY3JpcHRpb25cIj57e2Zvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmRlc2NyaXB0aW9ufX08L2Rpdj5cblxuICAgIDwhLS0gZXJyb3IvdmFsaWRhdGlvbiBtZXNzYWdlcyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZXJyLW1zZ1wiICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuZXJyb3JzXCI+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMuZGF0ZXJhbmdlXCIgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkuZGF0ZXJhbmdlLmludmFsaWQ8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMubnVtYmVycmFuZ2VcIiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5udW1iZXJyYW5nZS5pbnZhbGlkPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuZXJyb3JzLm51bWJlclwiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5Lm51bWJlcjwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50UmVmLmVycm9ycy5wcmVjaXNpb25cIiB0cmFuc2xhdGVcbiAgICAgICAgW3RyYW5zbGF0ZVBhcmFtc109XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMucHJlY2lzaW9uLnRyYW5zbGF0ZVZhbHVlc1wiPlxuICAgICAgICB7e2Zvcm1FbGVtZW50UmVmLmVycm9ycy5wcmVjaXNpb24udHJhbnNsYXRlS2V5fX08L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMuc2NhbGVcIiB0cmFuc2xhdGVcbiAgICAgICAgW3RyYW5zbGF0ZVBhcmFtc109XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMuc2NhbGUudHJhbnNsYXRlVmFsdWVzXCI+e3tmb3JtRWxlbWVudFJlZi5lcnJvcnMuc2NhbGUudHJhbnNsYXRlS2V5fX1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuZXJyb3JzLnJlZ2V4IHx8IGZvcm1FbGVtZW50UmVmLmVycm9ycy5wYXR0ZXJuXCIgdHJhbnNsYXRlPlxuICAgICAgICBlby5mb3JtLnByb3BlcnR5LnN0cmluZy5yZWdleC5ub21hdGNoPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuZXJyb3JzLmNsYXNzaWZpY2F0aW9uZW1haWxcIiB0cmFuc2xhdGU+XG4gICAgICAgIGVvLmZvcm0ucHJvcGVydHkuc3RyaW5nLmVycm9yLmNsYXNzaWZpY2F0aW9uLmVtYWlsPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuZXJyb3JzLmNsYXNzaWZpY2F0aW9udXJsXCIgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkuc3RyaW5nLmVycm9yLmNsYXNzaWZpY2F0aW9uLnVybFxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuZXJyb3JzLm9ubHlXaGl0ZXNwYWNlc1wiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LnN0cmluZy5lcnJvci53aGl0ZXNwYWNlczwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50UmVmLmVycm9ycy5kYXRlY29udHJvbFwiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LmRhdGUuaW52YWxpZDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50UmVmLmVycm9ycy5jb2Rlc3lzdGVtXCIgdHJhbnNsYXRlPmVvLmZvcm0ucHJvcGVydHkuY29kZXN5c3RlbS52YWx1ZS5pbnZhbGlkPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuZXJyb3JzLmVvZm9ybVNjcmlwdFwiPnt7Zm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZXJyb3IubXNnfX08L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMucmVxdWlyZWRcIiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5yZXF1aXJlZDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImZvcm1FbGVtZW50UmVmLmVycm9ycy5tYXhsZW5ndGhcIiB0cmFuc2xhdGVcbiAgICAgICAgW3RyYW5zbGF0ZVBhcmFtc109XCJ7bWF4bGVuZ3RoOiBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5tYXhsZW59XCI+ZW8uZm9ybS5wcm9wZXJ0eS5tYXhsZW5ndGg8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMubWlubGVuZ3RoXCIgdHJhbnNsYXRlXG4gICAgICAgIFt0cmFuc2xhdGVQYXJhbXNdPVwie21pbmxlbmd0aDogZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubWlubGVufVwiPmVvLmZvcm0ucHJvcGVydHkubWlubGVuZ3RoPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZm9ybUVsZW1lbnRSZWYuZXJyb3JzLmRlbGV0ZWRJRFJlZmVyZW5jZVwiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5LmlkcmVmZXJlbmNlLmRlbGV0ZWQ8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5lcnJvcnMuZGVsZXRlZE9yZ09iamVjdFwiIHRyYW5zbGF0ZT5lby5mb3JtLnByb3BlcnR5Lm9yZ29iamVjdC5kZWxldGVkPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgPC9kaXY+XG5cblxuXG4gIDwhLS0gU1RSSU5HIC0tPlxuICA8bmctdGVtcGxhdGUgZW9Gb3JtRWxlbWVudFRlbXBsYXRlIHByb3BlcnR5VHlwZT1cIlNUUklOR1wiIGxldC1lbGVtZW50PVwiZWxlbWVudFwiIGxldC1mb3JtRWxlbWVudFJlZj1cImZvcm1FbGVtZW50UmVmXCI+XG4gICAgPGVvLWZvcm0taW5wdXQgW3RhZ109XCJ0YWdcIlxuICAgICAgW2xhYmVsXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsID8gZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgOiBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5uYW1lXCJcbiAgICAgIFtpc051bGxdPVwiaXNOdWxsXCJcbiAgICAgIFtza2lwVG9nZ2xlXT1cInNraXBUb2dnbGUgfHwgc2l0dWF0aW9uICE9PSAnU0VBUkNIJ1wiIChvblRvZ2dsZUxhYmVsKT1cImxhYmVsVG9nZ2xlZCgkZXZlbnQpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZFwiIFtkaXNhYmxlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXG4gICAgICBbaW52YWxpZF09XCJmb3JtRWxlbWVudFJlZi5pbnZhbGlkXCI+XG5cbiAgICAgIDxlby1zdHJpbmdcbiAgICAgICAgKm5nSWY9XCIhZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVmZXJlbmNlICYmIGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmNsYXNzaWZpY2F0aW9uICE9PSAnc2VsZWN0b3InXCJcbiAgICAgICAgW3NpdHVhdGlvbl09XCJlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5zaXR1YXRpb25cIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImVsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lXCJcbiAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5hdXRvY29tcGxldGVcIlxuICAgICAgICBbbXVsdGlzZWxlY3RdPVwiISFmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5tdWx0aXNlbGVjdFwiXG4gICAgICAgIFttdWx0aWxpbmVdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubXVsdGlsaW5lXCJcbiAgICAgICAgW2NsYXNzaWZpY2F0aW9uXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmNsYXNzaWZpY2F0aW9uXCIgW3JlZ2V4XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlZ2V4XCJcbiAgICAgICAgW3FuYW1lXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnFuYW1lXCIgW3NpemVdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuc2l6ZVwiXG4gICAgICAgIFtyZWFkb25seV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiIFttaW5MZW5ndGhdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubWlubGVuXCJcbiAgICAgICAgW21heExlbmd0aF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5tYXhsZW5cIj48L2VvLXN0cmluZz5cblxuICAgICAgPCEtLSBEeW5hbWljIExpc3QgLS0+XG4gICAgICA8ZW8tZHluYW1pYy1saXN0XG4gICAgICAgICpuZ0lmPVwiIWZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlZmVyZW5jZSAmJiBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5jbGFzc2lmaWNhdGlvbiA9PT0gJ3NlbGVjdG9yJ1wiXG4gICAgICAgIFtzaXR1YXRpb25dPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuc2l0dWF0aW9uXCIgW3BpY2tlclRpdGxlXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsXCJcbiAgICAgICAgW2ZpbHRlckZ1bmN0aW9uXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmZpbHRlckZ1bmN0aW9uXCJcbiAgICAgICAgW211bHRpc2VsZWN0XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm11bHRpc2VsZWN0XCIgW2xpc3RPYmplY3RdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGlzdFwiXG4gICAgICAgIFtyZWFkb25seV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXG4gICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWVcIj48L2VvLWR5bmFtaWMtbGlzdD5cblxuXG4gICAgICA8IS0tIFJlZmVyZW5jZSAtLT5cbiAgICAgIDxlby1yZWZlcmVuY2UgKm5nSWY9XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWZlcmVuY2VcIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImVsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5XCIgW3JlZmVyZW5jZV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWZlcmVuY2VcIlxuICAgICAgICBbbXVsdGlzZWxlY3RdPVwiISFmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5tdWx0aXNlbGVjdCA/IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm11bHRpc2VsZWN0IDogc2l0dWF0aW9uID09PSAnU0VBUkNIJ1wiXG4gICAgICAgIFttaW5MZW5ndGhdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubWlubGVuXCJcbiAgICAgICAgW21heExlbmd0aF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5tYXhsZW5cIj48L2VvLXJlZmVyZW5jZT5cbiAgICA8L2VvLWZvcm0taW5wdXQ+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPCEtLSBJRC1SZWZlcmVuY2UgLS0+XG4gIDxuZy10ZW1wbGF0ZSBlb0Zvcm1FbGVtZW50VGVtcGxhdGUgcHJvcGVydHlUeXBlPVwiUkVGRVJFTkNFXCIgbGV0LWVsZW1lbnQ9XCJlbGVtZW50XCIgbGV0LWZvcm1FbGVtZW50UmVmPVwiZm9ybUVsZW1lbnRSZWZcIj5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbdGFnXT1cInRhZ1wiXG4gICAgICBbbGFiZWxdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgPyBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5sYWJlbCA6IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm5hbWVcIlxuICAgICAgW2lzTnVsbF09XCJpc051bGxcIlxuICAgICAgW3NraXBUb2dnbGVdPVwic2tpcFRvZ2dsZSB8fCBzaXR1YXRpb24gIT09ICdTRUFSQ0gnXCIgKG9uVG9nZ2xlTGFiZWwpPVwibGFiZWxUb2dnbGVkKCRldmVudClcIlxuICAgICAgW3JlcXVpcmVkXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlcXVpcmVkXCIgW2Rpc2FibGVkXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5XCJcbiAgICAgIFtpbnZhbGlkXT1cImZvcm1FbGVtZW50UmVmLmludmFsaWRcIj5cblxuICAgICAgPGVvLWlkLXJlZmVyZW5jZSBbZm9ybUNvbnRyb2xOYW1lXT1cImVsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lXCJcbiAgICAgICAgW3NpdHVhdGlvbl09XCJlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5zaXR1YXRpb25cIlxuICAgICAgICBbZGF0YVRvUmVuZGVyXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmRhdGFUb1JlbmRlclwiXG4gICAgICAgIFtyZWZlcmVuY2VdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVmZXJlbmNlXCIgW3JlYWRvbmx5XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5XCJcbiAgICAgICAgW211bHRpc2VsZWN0XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm11bHRpc2VsZWN0XCIgW2NvbnRleHRJZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5jb250ZXh0SWRcIlxuICAgICAgICBbZXhjZXB0aW9uSURzXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmV4Y2VwdGlvbklEc1wiXG4gICAgICAgIFtxdWVyeUZpbHRlcnNdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucXVlcnlGaWx0ZXJzXCJcbiAgICAgICAgW29iamVjdFR5cGVzRmlsdGVyXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm9iamVjdFR5cGVzRmlsdGVyXCI+PC9lby1pZC1yZWZlcmVuY2U+XG4gICAgPC9lby1mb3JtLWlucHV0PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDwhLS0gSUQgLS0+XG4gIDxuZy10ZW1wbGF0ZSBlb0Zvcm1FbGVtZW50VGVtcGxhdGUgcHJvcGVydHlUeXBlPVwiSURcIiBsZXQtZWxlbWVudD1cImVsZW1lbnRcIiBsZXQtZm9ybUVsZW1lbnRSZWY9XCJmb3JtRWxlbWVudFJlZlwiPlxuICAgIDxlby1mb3JtLWlucHV0IFt0YWddPVwidGFnXCJcbiAgICAgIFtsYWJlbF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5sYWJlbCA/IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsIDogZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubmFtZVwiXG4gICAgICBbaXNOdWxsXT1cImlzTnVsbFwiXG4gICAgICBbc2tpcFRvZ2dsZV09XCJza2lwVG9nZ2xlIHx8IHNpdHVhdGlvbiAhPT0gJ1NFQVJDSCdcIiAob25Ub2dnbGVMYWJlbCk9XCJsYWJlbFRvZ2dsZWQoJGV2ZW50KVwiXG4gICAgICBbcmVxdWlyZWRdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVxdWlyZWRcIiBbZGlzYWJsZWRdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVhZG9ubHlcIlxuICAgICAgW2ludmFsaWRdPVwiZm9ybUVsZW1lbnRSZWYuaW52YWxpZFwiPlxuXG4gICAgICA8ZW8tc3RyaW5nIFtzaXR1YXRpb25dPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuc2l0dWF0aW9uXCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZVwiXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgW211bHRpc2VsZWN0XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm11bHRpc2VsZWN0XCIgW3JlZ2V4XT1cIideWzAtOWEtZkEtRl0qJCdcIlxuICAgICAgICBbcW5hbWVdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucW5hbWVcIiBbcmVhZG9ubHldPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVhZG9ubHlcIlxuICAgICAgICBbbWluTGVuZ3RoXT1cIjMyXCIgW21heExlbmd0aF09XCIzMlwiPjwvZW8tc3RyaW5nPlxuXG4gICAgPC9lby1mb3JtLWlucHV0PlxuICA8L25nLXRlbXBsYXRlPlxuXG5cbiAgPCEtLSBCT09MRUFOIC0tPlxuICA8bmctdGVtcGxhdGUgZW9Gb3JtRWxlbWVudFRlbXBsYXRlIHByb3BlcnR5VHlwZT1cIkJPT0xFQU5cIiBsZXQtZWxlbWVudD1cImVsZW1lbnRcIiBsZXQtZm9ybUVsZW1lbnRSZWY9XCJmb3JtRWxlbWVudFJlZlwiPlxuICAgIDxlby1mb3JtLWlucHV0IFt0YWddPVwidGFnXCIgY2xhc3M9XCJjaGVja2JveFwiXG4gICAgICBbbGFiZWxdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgPyBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5sYWJlbCA6IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm5hbWVcIlxuICAgICAgW2lzTnVsbF09XCJpc051bGxcIlxuICAgICAgW3NraXBUb2dnbGVdPVwic2tpcFRvZ2dsZSB8fCBzaXR1YXRpb24gIT09ICdTRUFSQ0gnXCIgW3JlcXVpcmVkXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlcXVpcmVkXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiIChvblRvZ2dsZUxhYmVsKT1cImxhYmVsVG9nZ2xlZCgkZXZlbnQpXCJcbiAgICAgIFtpbnZhbGlkXT1cImZvcm1FbGVtZW50UmVmLmludmFsaWRcIj5cblxuICAgICAgPGVvLWNoZWNrYm94IFtmb3JtQ29udHJvbE5hbWVdPVwiZWxlbWVudC5fZW9Gb3JtQ29udHJvbFdyYXBwZXIuY29udHJvbE5hbWVcIlxuICAgICAgICBbcmVxdWlyZWRdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVxdWlyZWRcIiBbcmVhZG9ubHldPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVhZG9ubHlcIlxuICAgICAgICBbdHJpc3RhdGVdPVwidHJ1ZVwiPjwvZW8tY2hlY2tib3g+XG4gICAgPC9lby1mb3JtLWlucHV0PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDwhLS0gQ09ERVNZU1RFTSAtLT5cbiAgPG5nLXRlbXBsYXRlIGVvRm9ybUVsZW1lbnRUZW1wbGF0ZSBwcm9wZXJ0eVR5cGU9XCJDT0RFU1lTVEVNXCIgbGV0LWVsZW1lbnQ9XCJlbGVtZW50XCJcbiAgICBsZXQtZm9ybUVsZW1lbnRSZWY9XCJmb3JtRWxlbWVudFJlZlwiPlxuICAgIDxlby1mb3JtLWlucHV0IFt0YWddPVwidGFnXCJcbiAgICAgIFtsYWJlbF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5sYWJlbCA/IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsIDogZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubmFtZVwiXG4gICAgICBbaXNOdWxsXT1cImlzTnVsbFwiXG4gICAgICBbc2tpcFRvZ2dsZV09XCJza2lwVG9nZ2xlIHx8IHNpdHVhdGlvbiAhPT0gJ1NFQVJDSCdcIiAob25Ub2dnbGVMYWJlbCk9XCJsYWJlbFRvZ2dsZWQoJGV2ZW50KVwiXG4gICAgICBbcmVxdWlyZWRdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVxdWlyZWRcIiBbZGlzYWJsZWRdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVhZG9ubHlcIlxuICAgICAgW2ludmFsaWRdPVwiZm9ybUVsZW1lbnRSZWYuaW52YWxpZFwiPlxuXG4gICAgICA8ZW8tY29kZXN5c3RlbSBbc2l0dWF0aW9uXT1cImVsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLnNpdHVhdGlvblwiXG4gICAgICAgIFtwaWNrZXJUaXRsZV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5sYWJlbFwiIFtyZWFkb25seV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXG4gICAgICAgIFtjb2Rlc3lzdGVtXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmNvZGVzeXN0ZW1cIlxuICAgICAgICBbbXVsdGlzZWxlY3RdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubXVsdGlzZWxlY3RcIlxuICAgICAgICBbZmlsdGVyRnVuY3Rpb25dPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZmlsdGVyRnVuY3Rpb25cIlxuICAgICAgICBbZGlzYWJsaW5nRmlsdGVyRnVuY3Rpb25dPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZGlzYWJsaW5nRmlsdGVyRnVuY3Rpb25cIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImVsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lXCI+PC9lby1jb2Rlc3lzdGVtPlxuICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8IS0tIE9SR0FOSVpBVElPTiAtLT5cbiAgPG5nLXRlbXBsYXRlIGVvRm9ybUVsZW1lbnRUZW1wbGF0ZSBwcm9wZXJ0eVR5cGU9XCJPUkdBTklaQVRJT05cIiBsZXQtZWxlbWVudD1cImVsZW1lbnRcIlxuICAgIGxldC1mb3JtRWxlbWVudFJlZj1cImZvcm1FbGVtZW50UmVmXCI+XG4gICAgPGVvLWZvcm0taW5wdXQgW3RhZ109XCJ0YWdcIlxuICAgICAgW2xhYmVsXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsID8gZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgOiBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5uYW1lXCJcbiAgICAgIFtpc051bGxdPVwiaXNOdWxsXCJcbiAgICAgIFtza2lwVG9nZ2xlXT1cInNraXBUb2dnbGUgfHwgc2l0dWF0aW9uICE9PSAnU0VBUkNIJ1wiIChvblRvZ2dsZUxhYmVsKT1cImxhYmVsVG9nZ2xlZCgkZXZlbnQpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZFwiIFtkaXNhYmxlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXG4gICAgICBbaW52YWxpZF09XCJmb3JtRWxlbWVudFJlZi5pbnZhbGlkXCI+XG5cbiAgICAgIDxlby1vcmdhbml6YXRpb24gW3NpdHVhdGlvbl09XCJlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5zaXR1YXRpb25cIlxuICAgICAgICBbZGF0YU1ldGFdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZGF0YU1ldGFcIiBbcmVhZG9ubHldPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQucmVhZG9ubHlcIlxuICAgICAgICBbZmlsdGVyT2JqZWN0XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmZpbHRlclwiIFttdWx0aXNlbGVjdF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5tdWx0aXNlbGVjdFwiXG4gICAgICAgIChvbkRhdGFNZXRhQ2hhbmdlZCk9XCJvcmdhbml6YXRpb25EYXRhTWV0YVJlc29sdmVkKCRldmVudClcIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImVsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lXCI+PC9lby1vcmdhbml6YXRpb24+XG4gICAgPC9lby1mb3JtLWlucHV0PlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDwhLS0gTlVNQkVSIC0tPlxuICA8bmctdGVtcGxhdGUgZW9Gb3JtRWxlbWVudFRlbXBsYXRlIHByb3BlcnR5VHlwZT1cIk5VTUJFUlwiIGxldC1lbGVtZW50PVwiZWxlbWVudFwiIGxldC1mb3JtRWxlbWVudFJlZj1cImZvcm1FbGVtZW50UmVmXCI+XG4gICAgPGVvLWZvcm0taW5wdXQgW3RhZ109XCJ0YWdcIlxuICAgICAgW2xhYmVsXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LmxhYmVsID8gZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgOiBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5uYW1lXCJcbiAgICAgIFtpc051bGxdPVwiaXNOdWxsXCJcbiAgICAgIFtza2lwVG9nZ2xlXT1cInNraXBUb2dnbGUgfHwgc2l0dWF0aW9uICE9PSAnU0VBUkNIJ1wiIChvblRvZ2dsZUxhYmVsKT1cImxhYmVsVG9nZ2xlZCgkZXZlbnQpXCJcbiAgICAgIFtyZXF1aXJlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZXF1aXJlZFwiIFtkaXNhYmxlZF09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5yZWFkb25seVwiXG4gICAgICBbaW52YWxpZF09XCJmb3JtRWxlbWVudFJlZi5pbnZhbGlkXCI+XG5cbiAgICAgIDxlby1udW1iZXIgKm5nSWY9XCJzaXR1YXRpb24gIT09ICdTRUFSQ0gnXCIgW3JlYWRvbmx5XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5XCJcbiAgICAgICAgW3ByZWNpc2lvbl09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5wcmVjaXNpb25cIiBbc2NhbGVdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuc2NhbGVcIlxuICAgICAgICBbZ3JvdXBpbmddPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZ3JvdXBpbmdcIiBbcGF0dGVybl09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5wYXR0ZXJuXCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZVwiPlxuICAgICAgPC9lby1udW1iZXI+XG5cbiAgICAgIDxlby1udW1iZXItcmFuZ2UgKm5nSWY9XCJzaXR1YXRpb24gPT09ICdTRUFSQ0gnXCIgW3JlYWRvbmx5XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5XCJcbiAgICAgICAgW3ByZWNpc2lvbl09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5wcmVjaXNpb25cIiBbc2NhbGVdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuc2NhbGVcIlxuICAgICAgICBbZ3JvdXBpbmddPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQuZ3JvdXBpbmdcIiBbcGF0dGVybl09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5wYXR0ZXJuXCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZVwiPjwvZW8tbnVtYmVyLXJhbmdlPlxuICAgIDwvZW8tZm9ybS1pbnB1dD5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8IS0tIERBVEUgQU5EIERBVEVUSU1FIC0tPlxuICA8bmctdGVtcGxhdGUgZW9Gb3JtRWxlbWVudFRlbXBsYXRlIHByb3BlcnR5VHlwZT1cIkRBVEVUSU1FXCIgbGV0LWVsZW1lbnQ9XCJlbGVtZW50XCIgbGV0LWZvcm1FbGVtZW50UmVmPVwiZm9ybUVsZW1lbnRSZWZcIj5cbiAgICA8ZW8tZm9ybS1pbnB1dCBbdGFnXT1cInRhZ1wiXG4gICAgICBbbGFiZWxdPVwiZm9ybUVsZW1lbnRSZWYuX2VvRm9ybUVsZW1lbnQubGFiZWwgPyBmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5sYWJlbCA6IGZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50Lm5hbWVcIlxuICAgICAgW2lzTnVsbF09XCJpc051bGxcIlxuICAgICAgW3NraXBUb2dnbGVdPVwic2tpcFRvZ2dsZSB8fCBzaXR1YXRpb24gIT09ICdTRUFSQ0gnXCIgKG9uVG9nZ2xlTGFiZWwpPVwibGFiZWxUb2dnbGVkKCRldmVudClcIlxuICAgICAgW3JlcXVpcmVkXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlcXVpcmVkXCIgW2Rpc2FibGVkXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5XCJcbiAgICAgIFtpbnZhbGlkXT1cImZvcm1FbGVtZW50UmVmLmludmFsaWRcIj5cblxuICAgICAgPGVvLWRhdGUgKm5nSWY9XCJzaXR1YXRpb24gIT09ICdTRUFSQ0gnXCIgW3dpdGhUaW1lXT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LndpdGh0aW1lXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cImZvcm1FbGVtZW50UmVmLl9lb0Zvcm1FbGVtZW50LnJlYWRvbmx5XCJcbiAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZVwiPjwvZW8tZGF0ZT5cblxuICAgICAgPGVvLWRhdGV0aW1lLXJhbmdlICpuZ0lmPVwic2l0dWF0aW9uID09PSAnU0VBUkNIJ1wiIFtwaWNrZXJUaXRsZV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC5sYWJlbFwiXG4gICAgICAgIFt3aXRoVGltZV09XCJmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC53aXRodGltZVwiXG4gICAgICAgIFtvcGVyYXRvcl09XCJlbGVtZW50Py52YWx1ZVtlbGVtZW50Ll9lb0Zvcm1Db250cm9sV3JhcHBlci5jb250cm9sTmFtZV0gPyBlbGVtZW50LnZhbHVlW2VsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lXT8ub3BlcmF0b3I6ICdlcSdcIlxuICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImVsZW1lbnQuX2VvRm9ybUNvbnRyb2xXcmFwcGVyLmNvbnRyb2xOYW1lXCI+PC9lby1kYXRldGltZS1yYW5nZT5cbiAgICA8L2VvLWZvcm0taW5wdXQ+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG4gIDwhLS0gcHJpbnQgb3V0IHRoZSB0eXBlIGlmIGl0J3Mgbm90IG1hdGNoaW5nIGFueXRoaW5nIC0tPlxuICA8bmctdGVtcGxhdGUgI3RwbFVua25vd24+PGI+e3tmb3JtRWxlbWVudFJlZi5fZW9Gb3JtRWxlbWVudC50eXBlfX08L2I+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19