@hmcts/ccd-case-ui-toolkit 7.0.3-case-flags-v2-1-release → 7.0.3-event-before-task

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 (335) hide show
  1. package/esm2020/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +48 -21
  2. package/esm2020/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.mjs +2 -2
  3. package/esm2020/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.mjs +2 -2
  4. package/esm2020/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +11 -2
  5. package/esm2020/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +124 -164
  6. package/esm2020/lib/shared/components/case-editor/case-editor.module.mjs +22 -17
  7. package/esm2020/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.mjs +3 -2
  8. package/esm2020/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +2 -2
  9. package/esm2020/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +5 -15
  10. package/esm2020/lib/shared/components/case-editor/services/cases.service.mjs +1 -6
  11. package/esm2020/lib/shared/components/case-editor/services/event-completion-state-machine.service.mjs +6 -25
  12. package/esm2020/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +17 -4
  13. package/esm2020/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +15 -40
  14. package/esm2020/lib/shared/components/case-viewer/case-viewer.module.mjs +5 -8
  15. package/esm2020/lib/shared/components/palette/base-field/field-read.component.mjs +1 -1
  16. package/esm2020/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.mjs +31 -70
  17. package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +46 -249
  18. package/esm2020/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.mjs +71 -140
  19. package/esm2020/lib/shared/components/palette/case-flag/components/index.mjs +1 -4
  20. package/esm2020/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.mjs +78 -73
  21. package/esm2020/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.mjs +99 -133
  22. package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.mjs +9 -22
  23. package/esm2020/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.mjs +107 -211
  24. package/esm2020/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.mjs +104 -439
  25. package/esm2020/lib/shared/components/palette/case-flag/domain/case-flag-state.model.mjs +1 -1
  26. package/esm2020/lib/shared/components/palette/case-flag/domain/case-flag.model.mjs +1 -1
  27. package/esm2020/lib/shared/components/palette/case-flag/domain/language.model.mjs +1 -1
  28. package/esm2020/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.mjs +1 -2
  29. package/esm2020/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.mjs +1 -3
  30. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.mjs +2 -3
  31. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.mjs +3 -11
  32. package/esm2020/lib/shared/components/palette/case-flag/enums/index.mjs +2 -9
  33. package/esm2020/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.mjs +2 -3
  34. package/esm2020/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.mjs +1 -4
  35. package/esm2020/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.mjs +1 -5
  36. package/esm2020/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.mjs +2 -7
  37. package/esm2020/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.mjs +7 -10
  38. package/esm2020/lib/shared/components/palette/case-flag/index.mjs +1 -2
  39. package/esm2020/lib/shared/components/palette/case-flag/read-case-flag-field.component.mjs +57 -156
  40. package/esm2020/lib/shared/components/palette/case-flag/write-case-flag-field.component.mjs +172 -385
  41. package/esm2020/lib/shared/components/palette/case-link/write-case-link-field.component.mjs +6 -5
  42. package/esm2020/lib/shared/components/palette/collection/write-collection-field.component.mjs +33 -29
  43. package/esm2020/lib/shared/components/palette/complex/read-complex-field.component.mjs +14 -12
  44. package/esm2020/lib/shared/components/palette/date/write-date-field.component.mjs +6 -5
  45. package/esm2020/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +6 -5
  46. package/esm2020/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.mjs +6 -5
  47. package/esm2020/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.mjs +6 -5
  48. package/esm2020/lib/shared/components/palette/email/write-email-field.component.mjs +6 -5
  49. package/esm2020/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.mjs +6 -5
  50. package/esm2020/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.mjs +6 -5
  51. package/esm2020/lib/shared/components/palette/index.mjs +1 -3
  52. package/esm2020/lib/shared/components/palette/markdown/index.mjs +1 -2
  53. package/esm2020/lib/shared/components/palette/markdown/markdown.component.mjs +4 -4
  54. package/esm2020/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.mjs +6 -5
  55. package/esm2020/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.mjs +6 -5
  56. package/esm2020/lib/shared/components/palette/number/write-number-field.component.mjs +6 -5
  57. package/esm2020/lib/shared/components/palette/palette.module.mjs +49 -148
  58. package/esm2020/lib/shared/components/palette/palette.service.mjs +2 -4
  59. package/esm2020/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.mjs +6 -5
  60. package/esm2020/lib/shared/components/palette/text/write-text-field.component.mjs +6 -5
  61. package/esm2020/lib/shared/components/palette/text-area/write-text-area-field.component.mjs +6 -5
  62. package/esm2020/lib/shared/components/palette/utils/first-error.pipe.mjs +9 -16
  63. package/esm2020/lib/shared/components/palette/yes-no/read-yes-no-field.component.mjs +5 -10
  64. package/esm2020/lib/shared/components/palette/yes-no/write-yes-no-field.component.mjs +9 -9
  65. package/esm2020/lib/shared/domain/case-flag/flag-type.model.mjs +2 -16
  66. package/esm2020/lib/shared/domain/case-view/case-view-trigger.model.mjs +2 -1
  67. package/esm2020/lib/shared/domain/definition/display-context-enum.model.mjs +1 -3
  68. package/esm2020/lib/shared/fixture/shared.test.fixture.mjs +1 -2
  69. package/esm2020/lib/shared/pipes/index.mjs +2 -3
  70. package/esm2020/lib/shared/pipes/pipes.module.mjs +5 -9
  71. package/esm2020/lib/shared/services/case-flag/case-flag-refdata.service.mjs +3 -9
  72. package/esm2020/lib/shared/services/fields/fields.utils.mjs +4 -22
  73. package/esm2020/lib/shared/services/form/form-value.service.mjs +11 -14
  74. package/esm2020/lib/shared/services/jurisdiction/jurisdiction.service.mjs +1 -2
  75. package/esm2020/lib/shared/services/request/request.options.builder.mjs +1 -7
  76. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs +4157 -8667
  77. package/fesm2015/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  78. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs +4362 -8454
  79. package/fesm2020/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  80. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts +4 -2
  81. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -1
  82. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  83. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +1 -1
  84. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  85. package/lib/shared/components/case-editor/case-editor.module.d.ts +20 -17
  86. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  87. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts.map +1 -1
  88. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -1
  89. package/lib/shared/components/case-editor/services/cases.service.d.ts +0 -1
  90. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  91. package/lib/shared/components/case-editor/services/event-completion-state-machine.service.d.ts.map +1 -1
  92. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  93. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +2 -6
  94. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  95. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +4 -4
  96. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  97. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  98. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +2 -6
  99. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  100. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +8 -25
  101. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -1
  102. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +1 -2
  103. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -1
  104. package/lib/shared/components/palette/case-flag/components/index.d.ts +0 -3
  105. package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -1
  106. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +8 -4
  107. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  108. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +8 -10
  109. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  110. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +1 -2
  111. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  112. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +9 -16
  113. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  114. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +11 -26
  115. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  116. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +10 -1
  117. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -1
  118. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +1 -12
  119. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
  120. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +0 -1
  121. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -1
  122. package/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.d.ts +0 -1
  123. package/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.d.ts.map +1 -1
  124. package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts +1 -3
  125. package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts.map +1 -1
  126. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +1 -2
  127. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -1
  128. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +3 -11
  129. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -1
  130. package/lib/shared/components/palette/case-flag/enums/index.d.ts +1 -8
  131. package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -1
  132. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +1 -2
  133. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -1
  134. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +0 -3
  135. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -1
  136. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +1 -5
  137. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -1
  138. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +2 -7
  139. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -1
  140. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +4 -7
  141. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -1
  142. package/lib/shared/components/palette/case-flag/index.d.ts +0 -1
  143. package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -1
  144. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +8 -12
  145. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  146. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +27 -52
  147. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  148. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +2 -3
  149. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  150. package/lib/shared/components/palette/complex/read-complex-field.component.d.ts.map +1 -1
  151. package/lib/shared/components/palette/index.d.ts +0 -2
  152. package/lib/shared/components/palette/index.d.ts.map +1 -1
  153. package/lib/shared/components/palette/markdown/index.d.ts +0 -1
  154. package/lib/shared/components/palette/markdown/index.d.ts.map +1 -1
  155. package/lib/shared/components/palette/palette.module.d.ts +118 -140
  156. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  157. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  158. package/lib/shared/components/palette/utils/first-error.pipe.d.ts +5 -8
  159. package/lib/shared/components/palette/utils/first-error.pipe.d.ts.map +1 -1
  160. package/lib/shared/components/palette/yes-no/read-yes-no-field.component.d.ts.map +1 -1
  161. package/lib/shared/domain/case-flag/flag-type.model.d.ts +1 -6
  162. package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -1
  163. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts +1 -0
  164. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts.map +1 -1
  165. package/lib/shared/domain/definition/display-context-enum.model.d.ts +1 -3
  166. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -1
  167. package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -1
  168. package/lib/shared/pipes/index.d.ts +1 -2
  169. package/lib/shared/pipes/index.d.ts.map +1 -1
  170. package/lib/shared/pipes/pipes.module.d.ts +2 -3
  171. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  172. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +2 -3
  173. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -1
  174. package/lib/shared/services/fields/fields.utils.d.ts +0 -1
  175. package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
  176. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  177. package/lib/shared/services/jurisdiction/jurisdiction.service.d.ts.map +1 -1
  178. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  179. package/package.json +1 -1
  180. package/esm2020/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.mjs +0 -7
  181. package/esm2020/lib/shared/components/case-editor/services/case-flag-state.service.mjs +0 -19
  182. package/esm2020/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.mjs +0 -165
  183. package/esm2020/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.mjs +0 -6
  184. package/esm2020/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.mjs +0 -267
  185. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.mjs +0 -12
  186. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.mjs +0 -15
  187. package/esm2020/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.mjs +0 -13
  188. package/esm2020/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.mjs +0 -6
  189. package/esm2020/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.mjs +0 -6
  190. package/esm2020/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.mjs +0 -6
  191. package/esm2020/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.mjs +0 -6
  192. package/esm2020/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.mjs +0 -41
  193. package/esm2020/lib/shared/components/palette/case-flag/pipes/index.mjs +0 -5
  194. package/esm2020/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.mjs +0 -41
  195. package/esm2020/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.mjs +0 -109
  196. package/esm2020/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.mjs +0 -77
  197. package/esm2020/lib/shared/components/palette/complex/sort-order.mjs +0 -7
  198. package/esm2020/lib/shared/components/palette/markdown/markdown-component.module.mjs +0 -40
  199. package/esm2020/lib/shared/components/palette/query-management/__mocks__/index.mjs +0 -210
  200. package/esm2020/lib/shared/components/palette/query-management/components/index.mjs +0 -13
  201. package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +0 -42
  202. package/esm2020/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +0 -144
  203. package/esm2020/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.mjs +0 -64
  204. package/esm2020/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.mjs +0 -60
  205. package/esm2020/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +0 -281
  206. package/esm2020/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +0 -327
  207. package/esm2020/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.mjs +0 -22
  208. package/esm2020/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +0 -164
  209. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.mjs +0 -74
  210. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.mjs +0 -107
  211. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +0 -201
  212. package/esm2020/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +0 -101
  213. package/esm2020/lib/shared/components/palette/query-management/enums/index.mjs +0 -6
  214. package/esm2020/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.mjs +0 -5
  215. package/esm2020/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.mjs +0 -6
  216. package/esm2020/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.mjs +0 -10
  217. package/esm2020/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.mjs +0 -6
  218. package/esm2020/lib/shared/components/palette/query-management/index.mjs +0 -7
  219. package/esm2020/lib/shared/components/palette/query-management/models/case-queries-collection.model.mjs +0 -2
  220. package/esm2020/lib/shared/components/palette/query-management/models/index.mjs +0 -8
  221. package/esm2020/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.mjs +0 -2
  222. package/esm2020/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.mjs +0 -2
  223. package/esm2020/lib/shared/components/palette/query-management/models/query-create-context.enum.mjs +0 -9
  224. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.mjs +0 -2
  225. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +0 -21
  226. package/esm2020/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +0 -38
  227. package/esm2020/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +0 -121
  228. package/esm2020/lib/shared/components/palette/query-management/utils/query-management.utils.mjs +0 -22
  229. package/esm2020/lib/shared/domain/case-view/case-view-event-ids.enum.mjs +0 -6
  230. package/esm2020/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.mjs +0 -16
  231. package/esm2020/lib/shared/pipes/generic/index.mjs +0 -2
  232. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.d.ts +0 -6
  233. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.d.ts.map +0 -1
  234. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +0 -11
  235. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +0 -1
  236. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +0 -28
  237. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +0 -1
  238. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts +0 -5
  239. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts.map +0 -1
  240. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +0 -27
  241. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +0 -1
  242. package/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.d.ts +0 -11
  243. package/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.d.ts.map +0 -1
  244. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts +0 -14
  245. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts.map +0 -1
  246. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts +0 -12
  247. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts.map +0 -1
  248. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts +0 -5
  249. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts.map +0 -1
  250. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts +0 -5
  251. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts.map +0 -1
  252. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts +0 -5
  253. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts.map +0 -1
  254. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts +0 -5
  255. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts.map +0 -1
  256. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts +0 -19
  257. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts.map +0 -1
  258. package/lib/shared/components/palette/case-flag/pipes/index.d.ts +0 -5
  259. package/lib/shared/components/palette/case-flag/pipes/index.d.ts.map +0 -1
  260. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts +0 -18
  261. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts.map +0 -1
  262. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts +0 -25
  263. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts.map +0 -1
  264. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts +0 -21
  265. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts.map +0 -1
  266. package/lib/shared/components/palette/complex/sort-order.d.ts +0 -6
  267. package/lib/shared/components/palette/complex/sort-order.d.ts.map +0 -1
  268. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +0 -13
  269. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts.map +0 -1
  270. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts +0 -11
  271. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts.map +0 -1
  272. package/lib/shared/components/palette/query-management/components/index.d.ts +0 -13
  273. package/lib/shared/components/palette/query-management/components/index.d.ts.map +0 -1
  274. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts +0 -8
  275. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts.map +0 -1
  276. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +0 -22
  277. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts.map +0 -1
  278. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts +0 -11
  279. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts.map +0 -1
  280. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts +0 -10
  281. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts.map +0 -1
  282. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +0 -30
  283. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +0 -1
  284. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +0 -16
  285. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +0 -1
  286. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts +0 -9
  287. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts.map +0 -1
  288. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +0 -18
  289. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts.map +0 -1
  290. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +0 -20
  291. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts.map +0 -1
  292. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts +0 -20
  293. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts.map +0 -1
  294. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +0 -11
  295. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +0 -1
  296. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +0 -21
  297. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +0 -1
  298. package/lib/shared/components/palette/query-management/enums/index.d.ts +0 -6
  299. package/lib/shared/components/palette/query-management/enums/index.d.ts.map +0 -1
  300. package/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.d.ts +0 -4
  301. package/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.d.ts.map +0 -1
  302. package/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.d.ts +0 -5
  303. package/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.d.ts.map +0 -1
  304. package/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.d.ts +0 -9
  305. package/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.d.ts.map +0 -1
  306. package/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.d.ts +0 -5
  307. package/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.d.ts.map +0 -1
  308. package/lib/shared/components/palette/query-management/index.d.ts +0 -7
  309. package/lib/shared/components/palette/query-management/index.d.ts.map +0 -1
  310. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts +0 -27
  311. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts.map +0 -1
  312. package/lib/shared/components/palette/query-management/models/index.d.ts +0 -8
  313. package/lib/shared/components/palette/query-management/models/index.d.ts.map +0 -1
  314. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts +0 -5
  315. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts.map +0 -1
  316. package/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.d.ts +0 -6
  317. package/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.d.ts.map +0 -1
  318. package/lib/shared/components/palette/query-management/models/query-create-context.enum.d.ts +0 -8
  319. package/lib/shared/components/palette/query-management/models/query-create-context.enum.d.ts.map +0 -1
  320. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts +0 -7
  321. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts.map +0 -1
  322. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts +0 -10
  323. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +0 -1
  324. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +0 -22
  325. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +0 -1
  326. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +0 -18
  327. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +0 -1
  328. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +0 -12
  329. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +0 -1
  330. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts +0 -5
  331. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts.map +0 -1
  332. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts +0 -8
  333. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts.map +0 -1
  334. package/lib/shared/pipes/generic/index.d.ts +0 -2
  335. package/lib/shared/pipes/generic/index.d.ts.map +0 -1
@@ -1,8 +1,10 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
2
  import { FormControl, FormGroup } from '@angular/forms';
3
- import { FieldsUtils } from '../../../../../services/fields';
4
- import { CaseFlagDisplayContextParameter, CaseFlagFieldState, CaseFlagStatus, CaseFlagWizardStepTitle, SelectFlagErrorMessage } from '../../enums';
3
+ import { CaseFlagFieldState, CaseFlagWizardStepTitle, SelectFlagErrorMessage } from '../../enums';
5
4
  import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "rpx-xui-translation";
6
8
  function ManageCaseFlagsComponent_div_7_Template(rf, ctx) { if (rf & 1) {
7
9
  i0.ɵɵelementStart(0, "div", 9)(1, "span", 10);
8
10
  i0.ɵɵtext(2);
@@ -21,7 +23,6 @@ function ManageCaseFlagsComponent_div_7_Template(rf, ctx) { if (rf & 1) {
21
23
  function ManageCaseFlagsComponent_div_9_Template(rf, ctx) { if (rf & 1) {
22
24
  i0.ɵɵelementStart(0, "div", 11);
23
25
  i0.ɵɵelement(1, "input", 12)(2, "label", 13);
24
- i0.ɵɵpipe(3, "manageCaseFlagsLabelDisplay");
25
26
  i0.ɵɵelementEnd();
26
27
  } if (rf & 2) {
27
28
  const flagDisplay_r3 = ctx.$implicit;
@@ -32,7 +33,7 @@ function ManageCaseFlagsComponent_div_9_Template(rf, ctx) { if (rf & 1) {
32
33
  i0.ɵɵproperty("name", ctx_r1.selectedControlName)("value", flagDisplay_r3)("formControlName", ctx_r1.selectedControlName);
33
34
  i0.ɵɵadvance(1);
34
35
  i0.ɵɵpropertyInterpolate1("for", "flag-selection-", i_r4, "");
35
- i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 6, flagDisplay_r3), i0.ɵɵsanitizeHtml);
36
+ i0.ɵɵproperty("innerHtml", flagDisplay_r3.label, i0.ɵɵsanitizeHtml);
36
37
  } }
37
38
  function ManageCaseFlagsComponent_div_10_Template(rf, ctx) { if (rf & 1) {
38
39
  const _r6 = i0.ɵɵgetCurrentView();
@@ -53,24 +54,23 @@ export class ManageCaseFlagsComponent {
53
54
  this.manageCaseFlagSelectedErrorMessage = null;
54
55
  this.noFlagsError = false;
55
56
  this.selectedControlName = 'selectedManageCaseLocation';
56
- this.excludedFlagStatuses = [CaseFlagStatus.INACTIVE, CaseFlagStatus.NOT_APPROVED];
57
57
  }
58
58
  ngOnInit() {
59
- this.manageCaseFlagTitle = this.setManageCaseFlagTitle(this.displayContextParameter);
60
- // Map flags instances to objects for display, filtering out any where the original status is either "Inactive" or
61
- // "Not approved"
62
- /* istanbul ignore else */
59
+ this.manageCaseFlagTitle = CaseFlagWizardStepTitle.MANAGE_CASE_FLAGS;
60
+ // Map flags instances to objects for display
63
61
  if (this.flagsData) {
64
62
  this.flagsDisplayData = this.flagsData.reduce((displayData, flagsInstance) => {
65
- /* istanbul ignore else */
66
63
  if (flagsInstance.flags.details && flagsInstance.flags.details.length > 0) {
67
64
  displayData = [
68
65
  ...displayData,
69
- ...flagsInstance.flags.details.map((detail) => this.mapFlagDetailForDisplay(detail, flagsInstance))
66
+ ...flagsInstance.flags.details.map(detail => this.mapFlagDetailForDisplay(detail, flagsInstance))
70
67
  ];
71
68
  }
72
69
  return displayData;
73
- }, []).filter((flagForDisplay) => !this.excludedFlagStatuses.includes(flagForDisplay.originalStatus));
70
+ }, []);
71
+ this.flagsDisplayData.forEach(flagDisplayData => {
72
+ flagDisplayData.label = this.processLabel(flagDisplayData);
73
+ });
74
74
  }
75
75
  // Add a FormControl for the selected case flag if there is at least one flags instance remaining after mapping
76
76
  if (this.flagsDisplayData && this.flagsDisplayData.length > 0) {
@@ -83,49 +83,70 @@ export class ManageCaseFlagsComponent {
83
83
  }
84
84
  }
85
85
  mapFlagDetailForDisplay(flagDetail, flagsInstance) {
86
- // Reset the flag status with the original persisted status. This is needed because ngOnInit() needs to filter
87
- // out any "Inactive" or "Not approved" flags based on their status *before* modification. If the user changes a
88
- // flag's status then decides to return to the start of the flag update journey, the flag's status would no
89
- // longer reflect its actual *persisted* status
90
- // Also reset comments and description fields (both English and Welsh) with the original persisted data, to avoid
91
- // the UI caching any changes that the user might not want persisted, if they start over and don't intend to add
92
- // translations subsequently
93
- let originalStatus;
94
- let formattedValue = flagsInstance.caseField?.formatted_value;
95
- // Use the pathToFlagsFormGroup property from the selected flag location to drill down to the correct part of the
96
- // CaseField formatted_value from which to get the original persisted data
97
- const pathToValue = flagsInstance.pathToFlagsFormGroup;
98
- // Root-level Flags CaseFields don't have a dot-delimited path - just the CaseField ID itself - so don't drill down
99
- if (pathToValue.indexOf('.') > -1) {
100
- pathToValue.slice(pathToValue.indexOf('.') + 1).split('.').forEach((part) => {
101
- if (formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {
102
- formattedValue = formattedValue[part];
103
- }
104
- });
105
- }
106
- if (formattedValue && FieldsUtils.isNonEmptyObject(formattedValue)) {
107
- const originalFlagDetail = formattedValue.details?.find((detail) => detail.id === flagDetail.id);
108
- if (originalFlagDetail) {
109
- originalStatus = originalFlagDetail.value?.status;
110
- flagDetail.flagComment = originalFlagDetail.value?.flagComment;
111
- flagDetail.flagComment_cy = originalFlagDetail.value?.flagComment_cy;
112
- flagDetail.otherDescription = originalFlagDetail.value?.otherDescription;
113
- flagDetail.otherDescription_cy = originalFlagDetail.value?.otherDescription_cy;
114
- }
115
- }
116
86
  return {
117
87
  flagDetailDisplay: {
118
- partyName: flagsInstance.flags?.partyName,
88
+ partyName: flagsInstance.flags.partyName,
119
89
  flagDetail,
120
- flagsCaseFieldId: flagsInstance.caseField?.id,
121
- visibility: flagsInstance.flags?.visibility
90
+ flagsCaseFieldId: flagsInstance.caseField.id
122
91
  },
123
92
  pathToFlagsFormGroup: flagsInstance.pathToFlagsFormGroup,
124
93
  caseField: flagsInstance.caseField,
125
- roleOnCase: flagsInstance.flags?.roleOnCase,
126
- originalStatus
94
+ roleOnCase: flagsInstance.flags.roleOnCase
127
95
  };
128
96
  }
97
+ processLabel(flagDisplay) {
98
+ const flagDetail = flagDisplay.flagDetailDisplay.flagDetail;
99
+ const partyName = this.getPartyName(flagDisplay);
100
+ const flagName = this.getFlagName(flagDetail);
101
+ const flagDescription = this.getFlagDescription(flagDetail);
102
+ const roleOnCase = this.getRoleOnCase(flagDisplay);
103
+ const flagComment = this.getFlagComments(flagDetail);
104
+ return flagName === flagDescription
105
+ ? `${partyName}${roleOnCase} - <span class="flag-name-and-description">${flagDescription}</span>${flagComment}`
106
+ : `${partyName}${roleOnCase} - <span class="flag-name-and-description">${flagName}, ${flagDescription}</span>${flagComment}`;
107
+ }
108
+ getPartyName(flagDisplay) {
109
+ if (flagDisplay.pathToFlagsFormGroup && flagDisplay.pathToFlagsFormGroup === ManageCaseFlagsComponent.CASE_LEVEL_CASE_FLAGS_FIELD_ID) {
110
+ return 'Case level';
111
+ }
112
+ if (flagDisplay.flagDetailDisplay.partyName) {
113
+ return `${flagDisplay.flagDetailDisplay.partyName}`;
114
+ }
115
+ return '';
116
+ }
117
+ getFlagName(flagDetail) {
118
+ if (flagDetail && flagDetail.path && flagDetail.path.length > 1) {
119
+ return flagDetail.path[1].value;
120
+ }
121
+ if (flagDetail.subTypeKey && flagDetail.subTypeValue) {
122
+ return flagDetail.subTypeValue;
123
+ }
124
+ return flagDetail.name;
125
+ }
126
+ getFlagDescription(flagDetail) {
127
+ if (flagDetail && flagDetail.name) {
128
+ if (flagDetail.name === 'Other' && flagDetail.otherDescription) {
129
+ return flagDetail.otherDescription;
130
+ }
131
+ if (flagDetail.subTypeKey && flagDetail.subTypeValue) {
132
+ return flagDetail.subTypeValue;
133
+ }
134
+ return flagDetail.name;
135
+ }
136
+ return '';
137
+ }
138
+ getRoleOnCase(flagDisplay) {
139
+ if (flagDisplay && flagDisplay.roleOnCase) {
140
+ return ` (${flagDisplay.roleOnCase})`;
141
+ }
142
+ return '';
143
+ }
144
+ getFlagComments(flagDetail) {
145
+ if (flagDetail.flagComment) {
146
+ return ` (${flagDetail.flagComment})`;
147
+ }
148
+ return '';
149
+ }
129
150
  onNext() {
130
151
  // Validate flag selection
131
152
  this.validateSelection();
@@ -137,29 +158,15 @@ export class ManageCaseFlagsComponent {
137
158
  ? this.formGroup.get(this.selectedControlName).value
138
159
  : null
139
160
  });
140
- window.scrollTo(0, 0);
141
- }
142
- setManageCaseFlagTitle(displayContextParameter) {
143
- switch (displayContextParameter) {
144
- case CaseFlagDisplayContextParameter.UPDATE:
145
- case CaseFlagDisplayContextParameter.UPDATE_2_POINT_1:
146
- return CaseFlagWizardStepTitle.MANAGE_CASE_FLAGS;
147
- case CaseFlagDisplayContextParameter.UPDATE_EXTERNAL:
148
- return CaseFlagWizardStepTitle.MANAGE_SUPPORT;
149
- default:
150
- return CaseFlagWizardStepTitle.NONE;
151
- }
152
161
  }
153
162
  validateSelection() {
154
163
  this.manageCaseFlagSelectedErrorMessage = null;
155
164
  this.errorMessages = [];
156
165
  if (!this.formGroup.get(this.selectedControlName).value) {
157
- const errorMessage = this.displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL ?
158
- SelectFlagErrorMessage.MANAGE_SUPPORT_FLAG_NOT_SELECTED : SelectFlagErrorMessage.MANAGE_CASE_FLAGS_FLAG_NOT_SELECTED;
159
- this.manageCaseFlagSelectedErrorMessage = errorMessage;
166
+ this.manageCaseFlagSelectedErrorMessage = SelectFlagErrorMessage.FLAG_NOT_SELECTED;
160
167
  this.errorMessages.push({
161
168
  title: '',
162
- description: errorMessage,
169
+ description: SelectFlagErrorMessage.FLAG_NOT_SELECTED,
163
170
  fieldId: 'conditional-radios-list'
164
171
  });
165
172
  }
@@ -176,19 +183,19 @@ export class ManageCaseFlagsComponent {
176
183
  });
177
184
  }
178
185
  }
186
+ ManageCaseFlagsComponent.CASE_LEVEL_CASE_FLAGS_FIELD_ID = 'caseFlags';
179
187
  ManageCaseFlagsComponent.ɵfac = function ManageCaseFlagsComponent_Factory(t) { return new (t || ManageCaseFlagsComponent)(); };
180
- ManageCaseFlagsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ManageCaseFlagsComponent, selectors: [["ccd-manage-case-flags"]], inputs: { formGroup: "formGroup", flagsData: "flagsData", caseTitle: "caseTitle", displayContextParameter: "displayContextParameter" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, decls: 11, vars: 10, consts: [[3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], ["aria-describedby", "manage-case-flag-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--m"], ["id", "manage-case-flag-heading", 1, "govuk-fieldset__heading"], ["id", "manage-case-flag-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", "id", "conditional-radios-list", 1, "govuk-radios", "govuk-radios--conditional"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf"], ["class", "govuk-button-group", 4, "ngIf"], ["id", "manage-case-flag-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "id", "name", "value", "formControlName"], [1, "govuk-label", "govuk-radios__label", 3, "for", "innerHtml"], [1, "govuk-button-group"], ["type", "button", 1, "button", "button-primary", 3, "click"]], template: function ManageCaseFlagsComponent_Template(rf, ctx) { if (rf & 1) {
181
- i0.ɵɵelementContainerStart(0, 0);
182
- i0.ɵɵelementStart(1, "div", 1)(2, "fieldset", 2)(3, "legend", 3)(4, "h1", 4);
188
+ ManageCaseFlagsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ManageCaseFlagsComponent, selectors: [["ccd-manage-case-flags"]], inputs: { formGroup: "formGroup", flagsData: "flagsData", caseTitle: "caseTitle" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, decls: 11, vars: 10, consts: [[1, "form-group", 3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], ["aria-describedby", "manage-case-flag-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--l"], ["id", "manage-case-flag-heading", 1, "govuk-fieldset__heading"], ["id", "manage-case-flag-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", "id", "conditional-radios-list", 1, "govuk-radios", "govuk-radios--conditional"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf"], ["class", "govuk-button-group", 4, "ngIf"], ["id", "manage-case-flag-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "id", "name", "value", "formControlName"], [1, "govuk-label", "govuk-radios__label", 3, "for", "innerHtml"], [1, "govuk-button-group"], ["type", "button", 1, "button", "button-primary", 3, "click"]], template: function ManageCaseFlagsComponent_Template(rf, ctx) { if (rf & 1) {
189
+ i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "fieldset", 2)(3, "legend", 3)(4, "h1", 4);
183
190
  i0.ɵɵtext(5);
184
191
  i0.ɵɵpipe(6, "rpxTranslate");
185
192
  i0.ɵɵelementEnd()();
186
193
  i0.ɵɵtemplate(7, ManageCaseFlagsComponent_div_7_Template, 6, 6, "div", 5);
187
194
  i0.ɵɵelementStart(8, "div", 6);
188
- i0.ɵɵtemplate(9, ManageCaseFlagsComponent_div_9_Template, 4, 8, "div", 7);
195
+ i0.ɵɵtemplate(9, ManageCaseFlagsComponent_div_9_Template, 3, 6, "div", 7);
189
196
  i0.ɵɵelementEnd()()();
190
- i0.ɵɵelementContainerEnd();
191
197
  i0.ɵɵtemplate(10, ManageCaseFlagsComponent_div_10_Template, 4, 3, "div", 8);
198
+ i0.ɵɵelementEnd();
192
199
  } if (rf & 2) {
193
200
  i0.ɵɵproperty("formGroup", ctx.formGroup);
194
201
  i0.ɵɵadvance(1);
@@ -201,19 +208,17 @@ ManageCaseFlagsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Ma
201
208
  i0.ɵɵproperty("ngForOf", ctx.flagsDisplayData);
202
209
  i0.ɵɵadvance(1);
203
210
  i0.ɵɵproperty("ngIf", !ctx.noFlagsError);
204
- } }, styles: [".flag-name-and-description{font-weight:700}\n"], encapsulation: 2 });
211
+ } }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.DefaultValueAccessor, i2.RadioControlValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, i3.RpxTranslatePipe], styles: [".flag-name-and-description{font-weight:700}\n"], encapsulation: 2 });
205
212
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ManageCaseFlagsComponent, [{
206
213
  type: Component,
207
- args: [{ selector: 'ccd-manage-case-flags', encapsulation: ViewEncapsulation.None, template: "<ng-container [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"manage-case-flag-heading\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--m\">\n <h1 id=\"manage-case-flag-heading\" class=\"govuk-fieldset__heading\">\n {{manageCaseFlagTitle | rpxTranslate}}\n </h1>\n </legend>\n <div id=\"manage-case-flag-not-selected-error-message\" class=\"govuk-error-message\"\n *ngIf=\"manageCaseFlagSelectedErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{manageCaseFlagSelectedErrorMessage | rpxTranslate}}\n </div>\n <div class=\"govuk-radios govuk-radios--conditional\" data-module=\"govuk-radios\" id=\"conditional-radios-list\">\n <div class=\"govuk-radios__item\" *ngFor=\"let flagDisplay of flagsDisplayData; index as i\">\n <input class=\"govuk-radios__input\" id=\"flag-selection-{{i}}\" [name]=\"selectedControlName\"\n type=\"radio\" [value]=\"flagDisplay\" [formControlName]=\"selectedControlName\"/>\n <label class=\"govuk-label govuk-radios__label\" for=\"flag-selection-{{i}}\" [innerHtml]=\"flagDisplay | manageCaseFlagsLabelDisplay\"></label>\n </div>\n </div>\n </fieldset>\n </div>\n</ng-container>\n\n<div class=\"govuk-button-group\" *ngIf=\"!noFlagsError\">\n <button class=\"button button-primary\" type=\"button\" (click)=\"onNext()\">{{'Next' | rpxTranslate}}</button>\n</div>\n", styles: [".flag-name-and-description{font-weight:700}\n"] }]
214
+ args: [{ selector: 'ccd-manage-case-flags', encapsulation: ViewEncapsulation.None, template: "<div class=\"form-group\" [formGroup]=\"formGroup\">\n <div class=\"govuk-form-group\" [ngClass]=\"{'form-group-error': errorMessages.length > 0}\">\n <fieldset class=\"govuk-fieldset\" aria-describedby=\"manage-case-flag-heading\">\n <legend class=\"govuk-fieldset__legend govuk-fieldset__legend--l\">\n <h1 id=\"manage-case-flag-heading\" class=\"govuk-fieldset__heading\">\n {{manageCaseFlagTitle | rpxTranslate}}\n </h1>\n </legend>\n <div id=\"manage-case-flag-not-selected-error-message\" class=\"govuk-error-message\"\n *ngIf=\"manageCaseFlagSelectedErrorMessage\">\n <span class=\"govuk-visually-hidden\">{{'Error:' | rpxTranslate}}</span> {{manageCaseFlagSelectedErrorMessage | rpxTranslate}}\n </div>\n <div class=\"govuk-radios govuk-radios--conditional\" data-module=\"govuk-radios\" id=\"conditional-radios-list\">\n <div class=\"govuk-radios__item\" *ngFor=\"let flagDisplay of flagsDisplayData; index as i\">\n <input class=\"govuk-radios__input\" id=\"flag-selection-{{i}}\" [name]=\"selectedControlName\"\n type=\"radio\" [value]=\"flagDisplay\" [formControlName]=\"selectedControlName\"/>\n <label class=\"govuk-label govuk-radios__label\" for=\"flag-selection-{{i}}\" [innerHtml]=\"flagDisplay.label\"></label>\n </div>\n </div>\n </fieldset>\n </div>\n <div class=\"govuk-button-group\" *ngIf=\"!noFlagsError\">\n <button class=\"button button-primary\" type=\"button\" (click)=\"onNext()\">{{'Next' | rpxTranslate}}</button>\n </div>\n</div>\n", styles: [".flag-name-and-description{font-weight:700}\n"] }]
208
215
  }], null, { formGroup: [{
209
216
  type: Input
210
217
  }], flagsData: [{
211
218
  type: Input
212
219
  }], caseTitle: [{
213
220
  type: Input
214
- }], displayContextParameter: [{
215
- type: Input
216
221
  }], caseFlagStateEmitter: [{
217
222
  type: Output
218
223
  }] }); })();
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUU3RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7SUNHN0ksOEJBQzZDLGVBQUE7SUFDUCxZQUEyQjs7SUFBQSxpQkFBTztJQUFDLFlBQ3pFOztJQUFBLGlCQUFNOzs7SUFEZ0MsZUFBMkI7SUFBM0Isb0RBQTJCO0lBQVEsZUFDekU7SUFEeUUsZ0dBQ3pFOzs7SUFFRSwrQkFBeUY7SUFDdkYsNEJBQzhFLGdCQUFBOztJQUVoRixpQkFBTTs7Ozs7SUFIK0IsZUFBeUI7SUFBekIsNERBQXlCO0lBQUMs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RUFFTTs7UUF6QlEseUNBQXVCO1FBQ0wsZUFBMEQ7UUFBMUQsa0ZBQTBEO1FBSWhGLGVBQ0Y7UUFERSw4RUFDRjtRQUdDLGVBQXdDO1FBQXhDLDZEQUF3QztRQUllLGVBQXFCO1FBQXJCLDhDQUFxQjtRQVVwRCxlQUFtQjtRQUFuQix3Q0FBbUI7O3VGRFZ2Qyx3QkFBd0I7Y0FOcEMsU0FBUzsyQkFDRSx1QkFBdUIsaUJBR2xCLGlCQUFpQixDQUFDLElBQUk7Z0JBR3JCLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1UsU0FBUztrQkFBeEIsS0FBSztZQUNVLHVCQUF1QjtrQkFBdEMsS0FBSztZQUNXLG9CQUFvQjtrQkFBcEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvZmllbGRzJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGUsIEZsYWdEZXRhaWwsIEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGgsIEZsYWdzLCBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIsIENhc2VGbGFnRmllbGRTdGF0ZSwgQ2FzZUZsYWdTdGF0dXMsIENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlLCBTZWxlY3RGbGFnRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtbWFuYWdlLWNhc2UtZmxhZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYW5hZ2UtY2FzZS1mbGFncy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE1hbmFnZUNhc2VGbGFnc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGZsYWdzRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBASW5wdXQoKSBwdWJsaWMgY2FzZVRpdGxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5Q29udGV4dFBhcmFtZXRlcjogc3RyaW5nO1xuICBAT3V0cHV0KCkgcHVibGljIGNhc2VGbGFnU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPENhc2VGbGFnU3RhdGU+KCk7XG5cbiAgcHVibGljIG1hbmFnZUNhc2VGbGFnVGl0bGU6IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlO1xuICBwdWJsaWMgZXJyb3JNZXNzYWdlczogRXJyb3JNZXNzYWdlW10gPSBbXTtcbiAgcHVibGljIG1hbmFnZUNhc2VGbGFnU2VsZWN0ZWRFcnJvck1lc3NhZ2U6IFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UgPSBudWxsO1xuICBwdWJsaWMgZmxhZ3NEaXNwbGF5RGF0YTogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBwdWJsaWMgZmxhZ3M6IEZsYWdzO1xuICBwdWJsaWMgbm9GbGFnc0Vycm9yID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZENvbnRyb2xOYW1lID0gJ3NlbGVjdGVkTWFuYWdlQ2FzZUxvY2F0aW9uJztcbiAgcHJpdmF0ZSByZWFkb25seSBleGNsdWRlZEZsYWdTdGF0dXNlczogQ2FzZUZsYWdTdGF0dXNbXSA9IFtDYXNlRmxhZ1N0YXR1cy5JTkFDVElWRSwgQ2FzZUZsYWdTdGF0dXMuTk9UX0FQUFJPVkVEXTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tYW5hZ2VDYXNlRmxhZ1RpdGxlID0gdGhpcy5zZXRNYW5hZ2VDYXNlRmxhZ1RpdGxlKHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIpO1xuXG4gICAgLy8gTWFwIGZsYWdzIGluc3RhbmNlcyB0byBvYmplY3RzIGZvciBkaXNwbGF5LCBmaWx0ZXJpbmcgb3V0IGFueSB3aGVyZSB0aGUgb3JpZ2luYWwgc3RhdHVzIGlzIGVpdGhlciBcIkluYWN0aXZlXCIgb3JcbiAgICAvLyBcIk5vdCBhcHByb3ZlZFwiXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5mbGFnc0RhdGEpIHtcbiAgICAgIHRoaXMuZmxhZ3NEaXNwbGF5RGF0YSA9IHRoaXMuZmxhZ3NEYXRhLnJlZHVjZSgoZGlzcGxheURhdGEsIGZsYWdzSW5zdGFuY2UpID0+IHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGZsYWdzSW5zdGFuY2UuZmxhZ3MuZGV0YWlscyAmJiBmbGFnc0luc3RhbmNlLmZsYWdzLmRldGFpbHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGRpc3BsYXlEYXRhID0gW1xuICAgICAgICAgICAgLi4uZGlzcGxheURhdGEsXG4gICAgICAgICAgICAuLi5mbGFnc0luc3RhbmNlLmZsYWdzLmRldGFpbHMubWFwKChkZXRhaWwpID0+IHRoaXMubWFwRmxhZ0RldGFpbEZvckRpc3BsYXkoZGV0YWlsLCBmbGFnc0luc3RhbmNlKSlcbiAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaXNwbGF5RGF0YTtcbiAgICAgIH0sIFtdKS5maWx0ZXIoKGZsYWdGb3JEaXNwbGF5KSA9PiAhdGhpcy5leGNsdWRlZEZsYWdTdGF0dXNlcy5pbmNsdWRlcyhmbGFnRm9yRGlzcGxheS5vcmlnaW5hbFN0YXR1cyBhcyBDYXNlRmxhZ1N0YXR1cykpO1xuICAgIH1cblxuICAgIC8vIEFkZCBhIEZvcm1Db250cm9sIGZvciB0aGUgc2VsZWN0ZWQgY2FzZSBmbGFnIGlmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBmbGFncyBpbnN0YW5jZSByZW1haW5pbmcgYWZ0ZXIgbWFwcGluZ1xuICAgIGlmICh0aGlzLmZsYWdzRGlzcGxheURhdGEgJiYgdGhpcy5mbGFnc0Rpc3BsYXlEYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwLmFkZENvbnRyb2wodGhpcy5zZWxlY3RlZENvbnRyb2xOYW1lLCBuZXcgRm9ybUNvbnRyb2wobnVsbCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBObyBmbGFncyBkaXNwbGF5IGRhdGEgbWVhbnMgdGhlcmUgYXJlIG5vIGZsYWdzIHRvIHNlbGVjdCBmcm9tLiBUaGUgdXNlciBjYW5ub3QgcHJvY2VlZCB3aXRoIGEgZmxhZyB1cGRhdGUuXG4gICAgICAvLyAoV2lsbCBuZWVkIHRvIGJlIGV4dGVuZGVkIHRvIGNoZWNrIGZvciBjYXNlLWxldmVsIGZsYWdzIGluIGZ1dHVyZSlcbiAgICAgIHRoaXMub25Ob0ZsYWdzRXJyb3IoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbWFwRmxhZ0RldGFpbEZvckRpc3BsYXkoZmxhZ0RldGFpbDogRmxhZ0RldGFpbCwgZmxhZ3NJbnN0YW5jZTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCk6IEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGgge1xuICAgIC8vIFJlc2V0IHRoZSBmbGFnIHN0YXR1cyB3aXRoIHRoZSBvcmlnaW5hbCBwZXJzaXN0ZWQgc3RhdHVzLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIG5nT25Jbml0KCkgbmVlZHMgdG8gZmlsdGVyXG4gICAgLy8gb3V0IGFueSBcIkluYWN0aXZlXCIgb3IgXCJOb3QgYXBwcm92ZWRcIiBmbGFncyBiYXNlZCBvbiB0aGVpciBzdGF0dXMgKmJlZm9yZSogbW9kaWZpY2F0aW9uLiBJZiB0aGUgdXNlciBjaGFuZ2VzIGFcbiAgICAvLyBmbGFnJ3Mgc3RhdHVzIHRoZW4gZGVjaWRlcyB0byByZXR1cm4gdG8gdGhlIHN0YXJ0IG9mIHRoZSBmbGFnIHVwZGF0ZSBqb3VybmV5LCB0aGUgZmxhZydzIHN0YXR1cyB3b3VsZCBub1xuICAgIC8vIGxvbmdlciByZWZsZWN0IGl0cyBhY3R1YWwgKnBlcnNpc3RlZCogc3RhdHVzXG4gICAgLy8gQWxzbyByZXNldCBjb21tZW50cyBhbmQgZGVzY3JpcHRpb24gZmllbGRzIChib3RoIEVuZ2xpc2ggYW5kIFdlbHNoKSB3aXRoIHRoZSBvcmlnaW5hbCBwZXJzaXN0ZWQgZGF0YSwgdG8gYXZvaWRcbiAgICAvLyB0aGUgVUkgY2FjaGluZyBhbnkgY2hhbmdlcyB0aGF0IHRoZSB1c2VyIG1pZ2h0IG5vdCB3YW50IHBlcnNpc3RlZCwgaWYgdGhleSBzdGFydCBvdmVyIGFuZCBkb24ndCBpbnRlbmQgdG8gYWRkXG4gICAgLy8gdHJhbnNsYXRpb25zIHN1YnNlcXVlbnRseVxuICAgIGxldCBvcmlnaW5hbFN0YXR1czogc3RyaW5nO1xuICAgIGxldCBmb3JtYXR0ZWRWYWx1ZSA9IGZsYWdzSW5zdGFuY2UuY2FzZUZpZWxkPy5mb3JtYXR0ZWRfdmFsdWU7XG4gICAgLy8gVXNlIHRoZSBwYXRoVG9GbGFnc0Zvcm1Hcm91cCBwcm9wZXJ0eSBmcm9tIHRoZSBzZWxlY3RlZCBmbGFnIGxvY2F0aW9uIHRvIGRyaWxsIGRvd24gdG8gdGhlIGNvcnJlY3QgcGFydCBvZiB0aGVcbiAgICAvLyBDYXNlRmllbGQgZm9ybWF0dGVkX3ZhbHVlIGZyb20gd2hpY2ggdG8gZ2V0IHRoZSBvcmlnaW5hbCBwZXJzaXN0ZWQgZGF0YVxuICAgIGNvbnN0IHBhdGhUb1ZhbHVlID0gZmxhZ3NJbnN0YW5jZS5wYXRoVG9GbGFnc0Zvcm1Hcm91cDtcbiAgICAvLyBSb290LWxldmVsIEZsYWdzIENhc2VGaWVsZHMgZG9uJ3QgaGF2ZSBhIGRvdC1kZWxpbWl0ZWQgcGF0aCAtIGp1c3QgdGhlIENhc2VGaWVsZCBJRCBpdHNlbGYgLSBzbyBkb24ndCBkcmlsbCBkb3duXG4gICAgaWYgKHBhdGhUb1ZhbHVlLmluZGV4T2YoJy4nKSA+IC0xKSB7XG4gICAgICBwYXRoVG9WYWx1ZS5zbGljZShwYXRoVG9WYWx1ZS5pbmRleE9mKCcuJykgKyAxKS5zcGxpdCgnLicpLmZvckVhY2goKHBhcnQpID0+IHtcbiAgICAgICAgaWYgKGZvcm1hdHRlZFZhbHVlICYmIEZpZWxkc1V0aWxzLmlzTm9uRW1wdHlPYmplY3QoZm9ybWF0dGVkVmFsdWUpKSB7XG4gICAgICAgICAgZm9ybWF0dGVkVmFsdWUgPSBmb3JtYXR0ZWRWYWx1ZVtwYXJ0XTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChmb3JtYXR0ZWRWYWx1ZSAmJiBGaWVsZHNVdGlscy5pc05vbkVtcHR5T2JqZWN0KGZvcm1hdHRlZFZhbHVlKSkge1xuICAgICAgY29uc3Qgb3JpZ2luYWxGbGFnRGV0YWlsID0gZm9ybWF0dGVkVmFsdWUuZGV0YWlscz8uZmluZCgoZGV0YWlsKSA9PiBkZXRhaWwuaWQgPT09IGZsYWdEZXRhaWwuaWQpO1xuICAgICAgaWYgKG9yaWdpbmFsRmxhZ0RldGFpbCkge1xuICAgICAgICBvcmlnaW5hbFN0YXR1cyA9IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8uc3RhdHVzO1xuICAgICAgICBmbGFnRGV0YWlsLmZsYWdDb21tZW50ID0gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlPy5mbGFnQ29tbWVudDtcbiAgICAgICAgZmxhZ0RldGFpbC5mbGFnQ29tbWVudF9jeSA9IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8uZmxhZ0NvbW1lbnRfY3k7XG4gICAgICAgIGZsYWdEZXRhaWwub3RoZXJEZXNjcmlwdGlvbiA9IG9yaWdpbmFsRmxhZ0RldGFpbC52YWx1ZT8ub3RoZXJEZXNjcmlwdGlvbjtcbiAgICAgICAgZmxhZ0RldGFpbC5vdGhlckRlc2NyaXB0aW9uX2N5ID0gb3JpZ2luYWxGbGFnRGV0YWlsLnZhbHVlPy5vdGhlckRlc2NyaXB0aW9uX2N5O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZmxhZ0RldGFpbERpc3BsYXk6IHtcbiAgICAgICAgcGFydHlOYW1lOiBmbGFnc0luc3RhbmNlLmZsYWdzPy5wYXJ0eU5hbWUsXG4gICAgICAgIGZsYWdEZXRhaWwsXG4gICAgICAgIGZsYWdzQ2FzZUZpZWxkSWQ6IGZsYWdzSW5zdGFuY2UuY2FzZUZpZWxkPy5pZCxcbiAgICAgICAgdmlzaWJpbGl0eTogZmxhZ3NJbnN0YW5jZS5mbGFncz8udmlzaWJpbGl0eVxuICAgICAgfSxcbiAgICAgIHBhdGhUb0ZsYWdzRm9ybUdyb3VwOiBmbGFnc0luc3RhbmNlLnBhdGhUb0ZsYWdzRm9ybUdyb3VwLFxuICAgICAgY2FzZUZpZWxkOiBmbGFnc0luc3RhbmNlLmNhc2VGaWVsZCxcbiAgICAgIHJvbGVPbkNhc2U6IGZsYWdzSW5zdGFuY2UuZmxhZ3M/LnJvbGVPbkNhc2UsXG4gICAgICBvcmlnaW5hbFN0YXR1c1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgIC8vIFZhbGlkYXRlIGZsYWcgc2VsZWN0aW9uXG4gICAgdGhpcy52YWxpZGF0ZVNlbGVjdGlvbigpO1xuICAgIC8vIFJldHVybiBjYXNlIGZsYWcgZmllbGQgc3RhdGUsIGVycm9yIG1lc3NhZ2VzLCBhbmQgZmxhZyBzZWxlY3Rpb24gdG8gdGhlIHBhcmVudFxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7XG4gICAgICBjdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19NQU5BR0VfQ0FTRV9GTEFHUyxcbiAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyxcbiAgICAgIHNlbGVjdGVkRmxhZzogdGhpcy5mb3JtR3JvdXAuZ2V0KHRoaXMuc2VsZWN0ZWRDb250cm9sTmFtZSkudmFsdWVcbiAgICAgICAgPyB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZENvbnRyb2xOYW1lKS52YWx1ZSBhcyBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoXG4gICAgICAgIDogbnVsbFxuICAgIH0pO1xuXG4gICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuICB9XG5cbiAgcHVibGljIHNldE1hbmFnZUNhc2VGbGFnVGl0bGUoZGlzcGxheUNvbnRleHRQYXJhbWV0ZXI6IHN0cmluZyk6IENhc2VGbGFnV2l6YXJkU3RlcFRpdGxlIHtcbiAgICBzd2l0Y2ggKGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyKSB7XG4gICAgICBjYXNlIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFOlxuICAgICAgY2FzZSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV8yX1BPSU5UXzE6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5NQU5BR0VfQ0FTRV9GTEFHUztcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEVfRVhURVJOQUw6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5NQU5BR0VfU1VQUE9SVDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5OT05FO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5tYW5hZ2VDYXNlRmxhZ1NlbGVjdGVkRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkQ29udHJvbE5hbWUpLnZhbHVlKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSB0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV9FWFRFUk5BTCA/XG4gICAgICAgIFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UuTUFOQUdFX1NVUFBPUlRfRkxBR19OT1RfU0VMRUNURUQgOiBTZWxlY3RGbGFnRXJyb3JNZXNzYWdlLk1BTkFHRV9DQVNFX0ZMQUdTX0ZMQUdfTk9UX1NFTEVDVEVEO1xuICAgICAgdGhpcy5tYW5hZ2VDYXNlRmxhZ1NlbGVjdGVkRXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgIGZpZWxkSWQ6ICdjb25kaXRpb25hbC1yYWRpb3MtbGlzdCdcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Ob0ZsYWdzRXJyb3IoKTogdm9pZCB7XG4gICAgLy8gU2V0IGVycm9yIGZsYWcgb24gY29tcG9uZW50IHRvIHJlbW92ZSB0aGUgXCJOZXh0XCIgYnV0dG9uICh1c2VyIGNhbm5vdCBwcm9jZWVkIHdpdGggZmxhZyBjcmVhdGlvbilcbiAgICB0aGlzLm5vRmxhZ3NFcnJvciA9IHRydWU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goeyB0aXRsZTogJycsIGRlc2NyaXB0aW9uOiBTZWxlY3RGbGFnRXJyb3JNZXNzYWdlLk5PX0ZMQUdTLCBmaWVsZElkOiAnY29uZGl0aW9uYWwtcmFkaW9zLWxpc3QnIH0pO1xuICAgIC8vIFJldHVybiBjYXNlIGZsYWcgZmllbGQgc3RhdGUgYW5kIGVycm9yIG1lc3NhZ2VzIHRvIHRoZSBwYXJlbnRcbiAgICB0aGlzLmNhc2VGbGFnU3RhdGVFbWl0dGVyLmVtaXQoe1xuICAgICAgY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZTogQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTUFOQUdFX0NBU0VfRkxBR1MsXG4gICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXNcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGVycm9yTWVzc2FnZXMubGVuZ3RoID4gMH1cIj5cbiAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJtYW5hZ2UtY2FzZS1mbGFnLWhlYWRpbmdcIj5cbiAgICAgIDxsZWdlbmQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldF9fbGVnZW5kIGdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLW1cIj5cbiAgICAgICAgPGgxIGlkPVwibWFuYWdlLWNhc2UtZmxhZy1oZWFkaW5nXCIgY2xhc3M9XCJnb3Z1ay1maWVsZHNldF9faGVhZGluZ1wiPlxuICAgICAgICAgIHt7bWFuYWdlQ2FzZUZsYWdUaXRsZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvaDE+XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxkaXYgaWQ9XCJtYW5hZ2UtY2FzZS1mbGFnLW5vdC1zZWxlY3RlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJtYW5hZ2VDYXNlRmxhZ1NlbGVjdGVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+e3snRXJyb3I6JyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPiB7e21hbmFnZUNhc2VGbGFnU2VsZWN0ZWRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zIGdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWxcIiBkYXRhLW1vZHVsZT1cImdvdnVrLXJhZGlvc1wiIGlkPVwiY29uZGl0aW9uYWwtcmFkaW9zLWxpc3RcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiICpuZ0Zvcj1cImxldCBmbGFnRGlzcGxheSBvZiBmbGFnc0Rpc3BsYXlEYXRhOyBpbmRleCBhcyBpXCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwiZmxhZy1zZWxlY3Rpb24te3tpfX1cIiBbbmFtZV09XCJzZWxlY3RlZENvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIFt2YWx1ZV09XCJmbGFnRGlzcGxheVwiIFtmb3JtQ29udHJvbE5hbWVdPVwic2VsZWN0ZWRDb250cm9sTmFtZVwiLz5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsXCIgZm9yPVwiZmxhZy1zZWxlY3Rpb24te3tpfX1cIiBbaW5uZXJIdG1sXT1cImZsYWdEaXNwbGF5IHwgbWFuYWdlQ2FzZUZsYWdzTGFiZWxEaXNwbGF5XCI+PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2ZpZWxkc2V0PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLWdyb3VwXCIgKm5nSWY9XCIhbm9GbGFnc0Vycm9yXCI+XG4gIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uTmV4dCgpXCI+e3snTmV4dCcgfCBycHhUcmFuc2xhdGV9fTwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0lDSTVGLDhCQUM2QyxlQUFBO0lBQ1AsWUFBMkI7O0lBQUEsaUJBQU87SUFBQyxZQUN6RTs7SUFBQSxpQkFBTTs7O0lBRGdDLGVBQTJCO0lBQTNCLG9EQUEyQjtJQUFRLGVBQ3pFO0lBRHlFLGdHQUN6RTs7O0lBRUUsK0JBQXlGO0lBQ3ZGLDRCQUM4RSxnQkFBQTtJQUVoRixpQkFBTTs7Ozs7SUFIK0IsZUFBeUI7SUFBekIsNERBQXlCO0lBQUMsaURBQTRCLHlCQUFBLCtDQUFBO0lBRTFDLGVBQTBCO0lBQTFCLDZEQUEwQjtJQUFDLG1FQUErQjs7OztJQUtq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QUEwRDtRQUExRCxrRkFBMEQ7UUFJaEYsZUFDRjtRQURFLDhFQUNGO1FBR0MsZUFBd0M7UUFBeEMsNkRBQXdDO1FBSWUsZUFBcUI7UUFBckIsOENBQXFCO1FBUWxELGVBQW1CO1FBQW5CLHdDQUFtQjs7dUZEVHpDLHdCQUF3QjtjQU5wQyxTQUFTOzJCQUNFLHVCQUF1QixpQkFHbEIsaUJBQWlCLENBQUMsSUFBSTtnQkFNckIsU0FBUztrQkFBeEIsS0FBSztZQUNVLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1csb0JBQW9CO2tCQUFwQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZSwgRmxhZ0RldGFpbCwgRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCwgRmxhZ3MsIEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdGaWVsZFN0YXRlLCBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZSwgU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLW1hbmFnZS1jYXNlLWZsYWdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hbmFnZS1jYXNlLWZsYWdzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBNYW5hZ2VDYXNlRmxhZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENBU0VfTEVWRUxfQ0FTRV9GTEFHU19GSUVMRF9JRCA9ICdjYXNlRmxhZ3MnO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGZsYWdzRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBASW5wdXQoKSBwdWJsaWMgY2FzZVRpdGxlOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2FzZUZsYWdTdGF0ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxDYXNlRmxhZ1N0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4oKTtcblxuICBwdWJsaWMgbWFuYWdlQ2FzZUZsYWdUaXRsZTogQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGU7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgbWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZTogU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyBmbGFnc0Rpc3BsYXlEYXRhOiBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoW107XG4gIHB1YmxpYyBmbGFnczogRmxhZ3M7XG4gIHB1YmxpYyBub0ZsYWdzRXJyb3IgPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkQ29udHJvbE5hbWUgPSAnc2VsZWN0ZWRNYW5hZ2VDYXNlTG9jYXRpb24nO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1hbmFnZUNhc2VGbGFnVGl0bGUgPSBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5NQU5BR0VfQ0FTRV9GTEFHUztcblxuICAgIC8vIE1hcCBmbGFncyBpbnN0YW5jZXMgdG8gb2JqZWN0cyBmb3IgZGlzcGxheVxuICAgIGlmICh0aGlzLmZsYWdzRGF0YSkge1xuICAgICAgdGhpcy5mbGFnc0Rpc3BsYXlEYXRhID0gdGhpcy5mbGFnc0RhdGEucmVkdWNlKChkaXNwbGF5RGF0YSwgZmxhZ3NJbnN0YW5jZSkgPT4ge1xuICAgICAgICBpZiAoZmxhZ3NJbnN0YW5jZS5mbGFncy5kZXRhaWxzICYmIGZsYWdzSW5zdGFuY2UuZmxhZ3MuZGV0YWlscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZGlzcGxheURhdGEgPSBbXG4gICAgICAgICAgICAuLi5kaXNwbGF5RGF0YSxcbiAgICAgICAgICAgIC4uLmZsYWdzSW5zdGFuY2UuZmxhZ3MuZGV0YWlscy5tYXAoZGV0YWlsID0+XG4gICAgICAgICAgICAgIHRoaXMubWFwRmxhZ0RldGFpbEZvckRpc3BsYXkoZGV0YWlsLCBmbGFnc0luc3RhbmNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpc3BsYXlEYXRhO1xuICAgICAgfSwgW10pO1xuXG4gICAgICB0aGlzLmZsYWdzRGlzcGxheURhdGEuZm9yRWFjaChmbGFnRGlzcGxheURhdGEgPT4ge1xuICAgICAgICBmbGFnRGlzcGxheURhdGEubGFiZWwgPSB0aGlzLnByb2Nlc3NMYWJlbChmbGFnRGlzcGxheURhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIGEgRm9ybUNvbnRyb2wgZm9yIHRoZSBzZWxlY3RlZCBjYXNlIGZsYWcgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGZsYWdzIGluc3RhbmNlIHJlbWFpbmluZyBhZnRlciBtYXBwaW5nXG4gICAgaWYgKHRoaXMuZmxhZ3NEaXNwbGF5RGF0YSAmJiB0aGlzLmZsYWdzRGlzcGxheURhdGEubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCh0aGlzLnNlbGVjdGVkQ29udHJvbE5hbWUsIG5ldyBGb3JtQ29udHJvbChudWxsKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGZsYWdzIGRpc3BsYXkgZGF0YSBtZWFucyB0aGVyZSBhcmUgbm8gZmxhZ3MgdG8gc2VsZWN0IGZyb20uIFRoZSB1c2VyIGNhbm5vdCBwcm9jZWVkIHdpdGggYSBmbGFnIHVwZGF0ZS5cbiAgICAgIC8vIChXaWxsIG5lZWQgdG8gYmUgZXh0ZW5kZWQgdG8gY2hlY2sgZm9yIGNhc2UtbGV2ZWwgZmxhZ3MgaW4gZnV0dXJlKVxuICAgICAgdGhpcy5vbk5vRmxhZ3NFcnJvcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBtYXBGbGFnRGV0YWlsRm9yRGlzcGxheShmbGFnRGV0YWlsOiBGbGFnRGV0YWlsLCBmbGFnc0luc3RhbmNlOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoKTogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZsYWdEZXRhaWxEaXNwbGF5OiB7XG4gICAgICAgIHBhcnR5TmFtZTogZmxhZ3NJbnN0YW5jZS5mbGFncy5wYXJ0eU5hbWUsXG4gICAgICAgIGZsYWdEZXRhaWwsXG4gICAgICAgIGZsYWdzQ2FzZUZpZWxkSWQ6IGZsYWdzSW5zdGFuY2UuY2FzZUZpZWxkLmlkXG4gICAgICB9LFxuICAgICAgcGF0aFRvRmxhZ3NGb3JtR3JvdXA6IGZsYWdzSW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAsXG4gICAgICBjYXNlRmllbGQ6IGZsYWdzSW5zdGFuY2UuY2FzZUZpZWxkLFxuICAgICAgcm9sZU9uQ2FzZTogZmxhZ3NJbnN0YW5jZS5mbGFncy5yb2xlT25DYXNlXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBwcm9jZXNzTGFiZWwoZmxhZ0Rpc3BsYXk6IEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZsYWdEZXRhaWwgPSBmbGFnRGlzcGxheS5mbGFnRGV0YWlsRGlzcGxheS5mbGFnRGV0YWlsO1xuICAgIGNvbnN0IHBhcnR5TmFtZSA9IHRoaXMuZ2V0UGFydHlOYW1lKGZsYWdEaXNwbGF5KTtcbiAgICBjb25zdCBmbGFnTmFtZSA9IHRoaXMuZ2V0RmxhZ05hbWUoZmxhZ0RldGFpbCk7XG4gICAgY29uc3QgZmxhZ0Rlc2NyaXB0aW9uID0gdGhpcy5nZXRGbGFnRGVzY3JpcHRpb24oZmxhZ0RldGFpbCk7XG4gICAgY29uc3Qgcm9sZU9uQ2FzZSA9IHRoaXMuZ2V0Um9sZU9uQ2FzZShmbGFnRGlzcGxheSk7XG4gICAgY29uc3QgZmxhZ0NvbW1lbnQgPSB0aGlzLmdldEZsYWdDb21tZW50cyhmbGFnRGV0YWlsKTtcblxuICAgIHJldHVybiBmbGFnTmFtZSA9PT0gZmxhZ0Rlc2NyaXB0aW9uXG4gICAgICA/IGAke3BhcnR5TmFtZX0ke3JvbGVPbkNhc2V9IC0gPHNwYW4gY2xhc3M9XCJmbGFnLW5hbWUtYW5kLWRlc2NyaXB0aW9uXCI+JHtmbGFnRGVzY3JpcHRpb259PC9zcGFuPiR7ZmxhZ0NvbW1lbnR9YFxuICAgICAgOiBgJHtwYXJ0eU5hbWV9JHtyb2xlT25DYXNlfSAtIDxzcGFuIGNsYXNzPVwiZmxhZy1uYW1lLWFuZC1kZXNjcmlwdGlvblwiPiR7ZmxhZ05hbWV9LCAke2ZsYWdEZXNjcmlwdGlvbn08L3NwYW4+JHtmbGFnQ29tbWVudH1gO1xuICB9XG5cbiAgcHVibGljIGdldFBhcnR5TmFtZShmbGFnRGlzcGxheTogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdEaXNwbGF5LnBhdGhUb0ZsYWdzRm9ybUdyb3VwICYmIGZsYWdEaXNwbGF5LnBhdGhUb0ZsYWdzRm9ybUdyb3VwID09PSBNYW5hZ2VDYXNlRmxhZ3NDb21wb25lbnQuQ0FTRV9MRVZFTF9DQVNFX0ZMQUdTX0ZJRUxEX0lEKSB7XG4gICAgICByZXR1cm4gJ0Nhc2UgbGV2ZWwnO1xuICAgIH1cbiAgICBpZiAoZmxhZ0Rpc3BsYXkuZmxhZ0RldGFpbERpc3BsYXkucGFydHlOYW1lKSB7XG4gICAgICByZXR1cm4gYCR7ZmxhZ0Rpc3BsYXkuZmxhZ0RldGFpbERpc3BsYXkucGFydHlOYW1lfWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRGbGFnTmFtZShmbGFnRGV0YWlsOiBGbGFnRGV0YWlsKTogc3RyaW5nIHtcbiAgICBpZiAoZmxhZ0RldGFpbCAmJiBmbGFnRGV0YWlsLnBhdGggJiYgZmxhZ0RldGFpbC5wYXRoLmxlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiBmbGFnRGV0YWlsLnBhdGhbMV0udmFsdWU7XG4gICAgfVxuICAgIGlmIChmbGFnRGV0YWlsLnN1YlR5cGVLZXkgJiYgZmxhZ0RldGFpbC5zdWJUeXBlVmFsdWUpIHtcbiAgICAgIHJldHVybiBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZsYWdEZXRhaWwubmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGbGFnRGVzY3JpcHRpb24oZmxhZ0RldGFpbDogRmxhZ0RldGFpbCk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdEZXRhaWwgJiYgZmxhZ0RldGFpbC5uYW1lKSB7XG4gICAgICBpZiAoZmxhZ0RldGFpbC5uYW1lID09PSAnT3RoZXInICYmIGZsYWdEZXRhaWwub3RoZXJEZXNjcmlwdGlvbikge1xuICAgICAgICByZXR1cm4gZmxhZ0RldGFpbC5vdGhlckRlc2NyaXB0aW9uO1xuICAgICAgfVxuICAgICAgaWYgKGZsYWdEZXRhaWwuc3ViVHlwZUtleSAmJiBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZSkge1xuICAgICAgICByZXR1cm4gZmxhZ0RldGFpbC5zdWJUeXBlVmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmxhZ0RldGFpbC5uYW1lO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um9sZU9uQ2FzZShmbGFnRGlzcGxheTogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdEaXNwbGF5ICYmIGZsYWdEaXNwbGF5LnJvbGVPbkNhc2UpIHtcbiAgICAgIHJldHVybiBgICgke2ZsYWdEaXNwbGF5LnJvbGVPbkNhc2V9KWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRGbGFnQ29tbWVudHMoZmxhZ0RldGFpbDogRmxhZ0RldGFpbCk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdEZXRhaWwuZmxhZ0NvbW1lbnQpIHtcbiAgICAgIHJldHVybiBgICgke2ZsYWdEZXRhaWwuZmxhZ0NvbW1lbnR9KWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgLy8gVmFsaWRhdGUgZmxhZyBzZWxlY3Rpb25cbiAgICB0aGlzLnZhbGlkYXRlU2VsZWN0aW9uKCk7XG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSwgZXJyb3IgbWVzc2FnZXMsIGFuZCBmbGFnIHNlbGVjdGlvbiB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX01BTkFHRV9DQVNFX0ZMQUdTLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgICAgc2VsZWN0ZWRGbGFnOiB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZENvbnRyb2xOYW1lKS52YWx1ZVxuICAgICAgICA/IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkQ29udHJvbE5hbWUpLnZhbHVlIGFzIEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGhcbiAgICAgICAgOiBudWxsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMubWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZENvbnRyb2xOYW1lKS52YWx1ZSkge1xuICAgICAgdGhpcy5tYW5hZ2VDYXNlRmxhZ1NlbGVjdGVkRXJyb3JNZXNzYWdlID0gU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZS5GTEFHX05PVF9TRUxFQ1RFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZS5GTEFHX05PVF9TRUxFQ1RFRCxcbiAgICAgICAgZmllbGRJZDogJ2NvbmRpdGlvbmFsLXJhZGlvcy1saXN0J1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbk5vRmxhZ3NFcnJvcigpOiB2b2lkIHtcbiAgICAvLyBTZXQgZXJyb3IgZmxhZyBvbiBjb21wb25lbnQgdG8gcmVtb3ZlIHRoZSBcIk5leHRcIiBidXR0b24gKHVzZXIgY2Fubm90IHByb2NlZWQgd2l0aCBmbGFnIGNyZWF0aW9uKVxuICAgIHRoaXMubm9GbGFnc0Vycm9yID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7IHRpdGxlOiAnJywgZGVzY3JpcHRpb246IFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UuTk9fRkxBR1MsIGZpZWxkSWQ6ICdjb25kaXRpb25hbC1yYWRpb3MtbGlzdCcgfSk7XG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSBhbmQgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHBhcmVudFxuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZUVtaXR0ZXIuZW1pdCh7XG4gICAgICBjdXJyZW50Q2FzZUZsYWdGaWVsZFN0YXRlOiBDYXNlRmxhZ0ZpZWxkU3RhdGUuRkxBR19NQU5BR0VfQ0FTRV9GTEFHUyxcbiAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlc1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yJzogZXJyb3JNZXNzYWdlcy5sZW5ndGggPiAwfVwiPlxuICAgIDxmaWVsZHNldCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0XCIgYXJpYS1kZXNjcmliZWRieT1cIm1hbmFnZS1jYXNlLWZsYWctaGVhZGluZ1wiPlxuICAgICAgPGxlZ2VuZCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19sZWdlbmQgZ292dWstZmllbGRzZXRfX2xlZ2VuZC0tbFwiPlxuICAgICAgICA8aDEgaWQ9XCJtYW5hZ2UtY2FzZS1mbGFnLWhlYWRpbmdcIiBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19oZWFkaW5nXCI+XG4gICAgICAgICAge3ttYW5hZ2VDYXNlRmxhZ1RpdGxlIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgPC9oMT5cbiAgICAgIDwvbGVnZW5kPlxuICAgICAgPGRpdiBpZD1cIm1hbmFnZS1jYXNlLWZsYWctbm90LXNlbGVjdGVkLWVycm9yLW1lc3NhZ2VcIiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIlxuICAgICAgICAqbmdJZj1cIm1hbmFnZUNhc2VGbGFnU2VsZWN0ZWRFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj57eydFcnJvcjonIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+IHt7bWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3MgZ292dWstcmFkaW9zLS1jb25kaXRpb25hbFwiIGRhdGEtbW9kdWxlPVwiZ292dWstcmFkaW9zXCIgaWQ9XCJjb25kaXRpb25hbC1yYWRpb3MtbGlzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zX19pdGVtXCIgKm5nRm9yPVwibGV0IGZsYWdEaXNwbGF5IG9mIGZsYWdzRGlzcGxheURhdGE7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2lucHV0XCIgaWQ9XCJmbGFnLXNlbGVjdGlvbi17e2l9fVwiIFtuYW1lXT1cInNlbGVjdGVkQ29udHJvbE5hbWVcIlxuICAgICAgICAgICAgdHlwZT1cInJhZGlvXCIgW3ZhbHVlXT1cImZsYWdEaXNwbGF5XCIgW2Zvcm1Db250cm9sTmFtZV09XCJzZWxlY3RlZENvbnRyb2xOYW1lXCIvPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLXJhZGlvc19fbGFiZWxcIiBmb3I9XCJmbGFnLXNlbGVjdGlvbi17e2l9fVwiIFtpbm5lckh0bWxdPVwiZmxhZ0Rpc3BsYXkubGFiZWxcIj48L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZmllbGRzZXQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLWdyb3VwXCIgKm5nSWY9XCIhbm9GbGFnc0Vycm9yXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25OZXh0KClcIj57eydOZXh0JyB8IHJweFRyYW5zbGF0ZX19PC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=