@hmcts/ccd-case-ui-toolkit 6.19.13-restricted-case-access → 6.19.13-welsh-translation-FirstErrorPipe-fix

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 (341) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +9857 -4934
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/app.config.js +1 -1
  6. package/esm2015/lib/shared/components/case-editor/case-edit/case-edit.component.js +2 -2
  7. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +1 -1
  8. package/esm2015/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.js +1 -1
  9. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +2 -11
  10. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.js +7 -0
  11. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +167 -128
  12. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +17 -21
  13. package/esm2015/lib/shared/components/case-editor/case-event-completion/case-event-completion.component.js +2 -3
  14. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.js +2 -2
  15. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.js +2 -2
  16. package/esm2015/lib/shared/components/case-editor/services/case-flag-state.service.js +19 -0
  17. package/esm2015/lib/shared/components/case-editor/services/cases.service.js +6 -1
  18. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +5 -18
  19. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +77 -49
  20. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +5 -2
  21. package/esm2015/lib/shared/components/case-viewer/services/case.resolver.js +9 -16
  22. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +1 -1
  23. package/esm2015/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.js +76 -33
  24. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.js +264 -45
  25. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.js +144 -73
  26. package/esm2015/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.js +181 -0
  27. package/esm2015/lib/shared/components/palette/case-flag/components/index.js +4 -1
  28. package/esm2015/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.js +72 -77
  29. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.js +6 -0
  30. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.js +133 -101
  31. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.js +21 -8
  32. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.js +223 -114
  33. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.js +292 -0
  34. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.js +465 -109
  35. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag-state.model.js +1 -1
  36. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag.model.js +1 -1
  37. package/esm2015/lib/shared/components/palette/case-flag/domain/language.model.js +1 -1
  38. package/esm2015/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.js +2 -1
  39. package/esm2015/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.js +3 -1
  40. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.js +12 -0
  41. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.js +15 -0
  42. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.js +13 -0
  43. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.js +3 -2
  44. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.js +11 -3
  45. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.js +6 -0
  46. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.js +6 -0
  47. package/esm2015/lib/shared/components/palette/case-flag/enums/index.js +9 -2
  48. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.js +3 -2
  49. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.js +4 -1
  50. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.js +6 -0
  51. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.js +6 -0
  52. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.js +5 -1
  53. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.js +7 -2
  54. package/esm2015/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.js +10 -7
  55. package/esm2015/lib/shared/components/palette/case-flag/index.js +2 -1
  56. package/esm2015/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.js +41 -0
  57. package/esm2015/lib/shared/components/palette/case-flag/pipes/index.js +5 -0
  58. package/esm2015/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.js +41 -0
  59. package/esm2015/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.js +109 -0
  60. package/esm2015/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.js +77 -0
  61. package/esm2015/lib/shared/components/palette/case-flag/read-case-flag-field.component.js +153 -51
  62. package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +387 -171
  63. package/esm2015/lib/shared/components/palette/case-link/write-case-link-field.component.js +4 -5
  64. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +34 -37
  65. package/esm2015/lib/shared/components/palette/complex/read-complex-field.component.js +9 -7
  66. package/esm2015/lib/shared/components/palette/complex/sort-order.js +7 -0
  67. package/esm2015/lib/shared/components/palette/date/write-date-field.component.js +4 -5
  68. package/esm2015/lib/shared/components/palette/datetime-picker/datetime-picker.component.js +4 -5
  69. package/esm2015/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.js +4 -5
  70. package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +4 -5
  71. package/esm2015/lib/shared/components/palette/email/write-email-field.component.js +4 -5
  72. package/esm2015/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.js +4 -5
  73. package/esm2015/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.js +4 -5
  74. package/esm2015/lib/shared/components/palette/index.js +3 -1
  75. package/esm2015/lib/shared/components/palette/markdown/index.js +2 -1
  76. package/esm2015/lib/shared/components/palette/markdown/markdown-component.module.js +42 -0
  77. package/esm2015/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.js +4 -5
  78. package/esm2015/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js +4 -5
  79. package/esm2015/lib/shared/components/palette/number/write-number-field.component.js +4 -5
  80. package/esm2015/lib/shared/components/palette/palette.module.js +147 -50
  81. package/esm2015/lib/shared/components/palette/palette.service.js +4 -2
  82. package/esm2015/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.js +4 -5
  83. package/esm2015/lib/shared/components/palette/query-management/__mocks__/index.js +210 -0
  84. package/esm2015/lib/shared/components/palette/query-management/components/index.js +13 -0
  85. package/esm2015/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.js +45 -0
  86. package/esm2015/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.js +154 -0
  87. package/esm2015/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.js +69 -0
  88. package/esm2015/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.js +64 -0
  89. package/esm2015/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.js +316 -0
  90. package/esm2015/lib/shared/components/palette/query-management/components/query-details/query-details.component.js +380 -0
  91. package/esm2015/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.js +25 -0
  92. package/esm2015/lib/shared/components/palette/query-management/components/query-list/query-list.component.js +181 -0
  93. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.js +78 -0
  94. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.js +125 -0
  95. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.js +239 -0
  96. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.js +120 -0
  97. package/esm2015/lib/shared/components/palette/query-management/enums/index.js +6 -0
  98. package/esm2015/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.js +5 -0
  99. package/esm2015/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.js +6 -0
  100. package/esm2015/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.js +10 -0
  101. package/esm2015/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.js +6 -0
  102. package/esm2015/lib/shared/components/palette/query-management/index.js +7 -0
  103. package/esm2015/lib/shared/components/palette/query-management/models/case-queries-collection.model.js +2 -0
  104. package/esm2015/lib/shared/components/palette/query-management/models/index.js +8 -0
  105. package/esm2015/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.js +2 -0
  106. package/esm2015/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.js +2 -0
  107. package/esm2015/lib/shared/components/palette/query-management/models/query-create-context.enum.js +9 -0
  108. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.js +2 -0
  109. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.js +18 -0
  110. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.js +41 -0
  111. package/esm2015/lib/shared/components/palette/query-management/read-query-management-field.component.js +128 -0
  112. package/esm2015/lib/shared/components/palette/query-management/utils/query-management.utils.js +22 -0
  113. package/esm2015/lib/shared/components/palette/text/write-text-field.component.js +4 -5
  114. package/esm2015/lib/shared/components/palette/text-area/write-text-area-field.component.js +4 -5
  115. package/esm2015/lib/shared/components/palette/utils/first-error.pipe.js +16 -9
  116. package/esm2015/lib/shared/components/palette/yes-no/read-yes-no-field.component.js +7 -5
  117. package/esm2015/lib/shared/components/palette/yes-no/write-yes-no-field.component.js +8 -8
  118. package/esm2015/lib/shared/domain/case-flag/flag-type.model.js +17 -2
  119. package/esm2015/lib/shared/domain/case-view/case-view-event-ids.enum.js +6 -0
  120. package/esm2015/lib/shared/domain/case-view/case-view-trigger.model.js +1 -2
  121. package/esm2015/lib/shared/domain/definition/display-context-enum.model.js +3 -1
  122. package/esm2015/lib/shared/domain/http/http-error.model.js +1 -8
  123. package/esm2015/lib/shared/fixture/shared.test.fixture.js +2 -1
  124. package/esm2015/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.js +16 -0
  125. package/esm2015/lib/shared/pipes/generic/index.js +2 -0
  126. package/esm2015/lib/shared/pipes/index.js +3 -2
  127. package/esm2015/lib/shared/pipes/pipes.module.js +9 -5
  128. package/esm2015/lib/shared/services/case-flag/case-flag-refdata.service.js +9 -3
  129. package/esm2015/lib/shared/services/fields/fields.utils.js +21 -3
  130. package/esm2015/lib/shared/services/form/form-value.service.js +14 -11
  131. package/esm2015/lib/shared/services/http/http-error.service.js +5 -4
  132. package/esm2015/lib/shared/services/jurisdiction/jurisdiction.service.js +2 -1
  133. package/esm2015/lib/shared/services/request/request.options.builder.js +7 -1
  134. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +8445 -4051
  135. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  136. package/lib/app.config.d.ts +0 -2
  137. package/lib/app.config.d.ts.map +1 -1
  138. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -1
  139. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  140. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.d.ts +6 -0
  141. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit-titles.enum.d.ts.map +1 -0
  142. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +1 -1
  143. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  144. package/lib/shared/components/case-editor/case-editor.module.d.ts +17 -20
  145. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  146. 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
  147. 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
  148. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +11 -0
  149. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -0
  150. package/lib/shared/components/case-editor/services/cases.service.d.ts +1 -0
  151. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  152. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  153. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +6 -2
  154. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  155. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +4 -4
  156. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  157. package/lib/shared/components/case-viewer/services/case.resolver.d.ts +1 -3
  158. package/lib/shared/components/case-viewer/services/case.resolver.d.ts.map +1 -1
  159. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  160. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +6 -2
  161. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  162. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +23 -8
  163. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -1
  164. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +2 -1
  165. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -1
  166. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +28 -0
  167. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -0
  168. package/lib/shared/components/palette/case-flag/components/index.d.ts +3 -0
  169. package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -1
  170. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +4 -8
  171. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  172. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts +5 -0
  173. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts.map +1 -0
  174. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +10 -8
  175. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  176. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +2 -1
  177. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  178. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +16 -9
  179. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  180. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +27 -0
  181. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +1 -0
  182. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +26 -11
  183. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  184. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +1 -10
  185. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -1
  186. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +12 -1
  187. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
  188. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +1 -0
  189. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -1
  190. package/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.d.ts +1 -0
  191. package/lib/shared/components/palette/case-flag/enums/add-comments-error-message.enum.d.ts.map +1 -1
  192. package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts +3 -1
  193. package/lib/shared/components/palette/case-flag/enums/add-comments-step.enum.d.ts.map +1 -1
  194. package/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.d.ts +11 -0
  195. package/lib/shared/components/palette/case-flag/enums/case-flag-check-your-answers-step.enum.d.ts.map +1 -0
  196. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts +14 -0
  197. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts.map +1 -0
  198. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts +12 -0
  199. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts.map +1 -0
  200. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +2 -1
  201. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -1
  202. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +11 -3
  203. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -1
  204. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts +5 -0
  205. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts.map +1 -0
  206. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts +5 -0
  207. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts.map +1 -0
  208. package/lib/shared/components/palette/case-flag/enums/index.d.ts +8 -1
  209. package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -1
  210. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +2 -1
  211. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -1
  212. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +3 -0
  213. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -1
  214. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts +5 -0
  215. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts.map +1 -0
  216. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts +5 -0
  217. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts.map +1 -0
  218. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +5 -1
  219. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -1
  220. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +7 -2
  221. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -1
  222. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +7 -4
  223. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -1
  224. package/lib/shared/components/palette/case-flag/index.d.ts +1 -0
  225. package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -1
  226. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts +19 -0
  227. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts.map +1 -0
  228. package/lib/shared/components/palette/case-flag/pipes/index.d.ts +5 -0
  229. package/lib/shared/components/palette/case-flag/pipes/index.d.ts.map +1 -0
  230. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts +18 -0
  231. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts.map +1 -0
  232. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts +25 -0
  233. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts.map +1 -0
  234. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts +21 -0
  235. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts.map +1 -0
  236. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +12 -8
  237. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  238. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +51 -26
  239. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  240. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +3 -2
  241. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  242. package/lib/shared/components/palette/complex/sort-order.d.ts +6 -0
  243. package/lib/shared/components/palette/complex/sort-order.d.ts.map +1 -0
  244. package/lib/shared/components/palette/index.d.ts +2 -0
  245. package/lib/shared/components/palette/index.d.ts.map +1 -1
  246. package/lib/shared/components/palette/markdown/index.d.ts +1 -0
  247. package/lib/shared/components/palette/markdown/index.d.ts.map +1 -1
  248. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +13 -0
  249. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts.map +1 -0
  250. package/lib/shared/components/palette/palette.module.d.ts +140 -118
  251. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  252. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  253. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts +11 -0
  254. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts.map +1 -0
  255. package/lib/shared/components/palette/query-management/components/index.d.ts +13 -0
  256. package/lib/shared/components/palette/query-management/components/index.d.ts.map +1 -0
  257. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts +8 -0
  258. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts.map +1 -0
  259. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +22 -0
  260. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts.map +1 -0
  261. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts +11 -0
  262. package/lib/shared/components/palette/query-management/components/query-attachments-read/query-attachments-read.component.d.ts.map +1 -0
  263. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts +10 -0
  264. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts.map +1 -0
  265. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +30 -0
  266. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -0
  267. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +16 -0
  268. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -0
  269. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts +9 -0
  270. package/lib/shared/components/palette/query-management/components/query-event-completion/query-event-completion.component.d.ts.map +1 -0
  271. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +18 -0
  272. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts.map +1 -0
  273. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +20 -0
  274. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts.map +1 -0
  275. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts +20 -0
  276. package/lib/shared/components/palette/query-management/components/query-write/query-write-date-input/query-write-date-input.component.d.ts.map +1 -0
  277. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +11 -0
  278. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -0
  279. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +21 -0
  280. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -0
  281. package/lib/shared/components/palette/query-management/enums/index.d.ts +6 -0
  282. package/lib/shared/components/palette/query-management/enums/index.d.ts.map +1 -0
  283. package/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.d.ts +4 -0
  284. package/lib/shared/components/palette/query-management/enums/qualifying-questions-error-message.enum.d.ts.map +1 -0
  285. package/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.d.ts +5 -0
  286. package/lib/shared/components/palette/query-management/enums/query-item-response-status.enum.d.ts.map +1 -0
  287. package/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.d.ts +9 -0
  288. package/lib/shared/components/palette/query-management/enums/raise-query-error-message.enum.d.ts.map +1 -0
  289. package/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.d.ts +5 -0
  290. package/lib/shared/components/palette/query-management/enums/respond-to-query-error-messages.enum.d.ts.map +1 -0
  291. package/lib/shared/components/palette/query-management/index.d.ts +7 -0
  292. package/lib/shared/components/palette/query-management/index.d.ts.map +1 -0
  293. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts +27 -0
  294. package/lib/shared/components/palette/query-management/models/case-queries-collection.model.d.ts.map +1 -0
  295. package/lib/shared/components/palette/query-management/models/index.d.ts +8 -0
  296. package/lib/shared/components/palette/query-management/models/index.d.ts.map +1 -0
  297. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts +5 -0
  298. package/lib/shared/components/palette/query-management/models/qualifying-questions/casetype-qualifying-questions.model.d.ts.map +1 -0
  299. package/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.d.ts +6 -0
  300. package/lib/shared/components/palette/query-management/models/qualifying-questions/qualifying-question.model.d.ts.map +1 -0
  301. package/lib/shared/components/palette/query-management/models/query-create-context.enum.d.ts +8 -0
  302. package/lib/shared/components/palette/query-management/models/query-create-context.enum.d.ts.map +1 -0
  303. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts +7 -0
  304. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts.map +1 -0
  305. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts +10 -0
  306. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +1 -0
  307. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +22 -0
  308. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -0
  309. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +18 -0
  310. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -0
  311. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +12 -0
  312. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +1 -0
  313. package/lib/shared/components/palette/utils/first-error.pipe.d.ts +8 -5
  314. package/lib/shared/components/palette/utils/first-error.pipe.d.ts.map +1 -1
  315. package/lib/shared/domain/case-flag/flag-type.model.d.ts +6 -1
  316. package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -1
  317. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts +5 -0
  318. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts.map +1 -0
  319. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts +0 -1
  320. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts.map +1 -1
  321. package/lib/shared/domain/definition/display-context-enum.model.d.ts +3 -1
  322. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -1
  323. package/lib/shared/domain/http/http-error.model.d.ts.map +1 -1
  324. package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -1
  325. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts +8 -0
  326. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts.map +1 -0
  327. package/lib/shared/pipes/generic/index.d.ts +2 -0
  328. package/lib/shared/pipes/generic/index.d.ts.map +1 -0
  329. package/lib/shared/pipes/index.d.ts +2 -1
  330. package/lib/shared/pipes/index.d.ts.map +1 -1
  331. package/lib/shared/pipes/pipes.module.d.ts +3 -2
  332. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  333. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +3 -2
  334. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -1
  335. package/lib/shared/services/fields/fields.utils.d.ts +1 -0
  336. package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
  337. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  338. package/lib/shared/services/http/http-error.service.d.ts.map +1 -1
  339. package/lib/shared/services/jurisdiction/jurisdiction.service.d.ts.map +1 -1
  340. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  341. package/package.json +1 -1
@@ -5,37 +5,38 @@ import { CallbackErrorsComponent } from '../../error';
5
5
  import { PaletteContext } from '../../palette';
6
6
  import { CaseEditPageComponent } from '../case-edit-page/case-edit-page.component';
7
7
  import { CaseEditComponent } from '../case-edit/case-edit.component';
8
+ import { CaseEditSubmitTitles } from './case-edit-submit-titles.enum';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "../case-edit/case-edit.component";
10
11
  import * as i2 from "../../../services";
11
12
  import * as i3 from "@angular/router";
12
- function CaseEditSubmitComponent_div_0_div_3_Template(rf, ctx) { if (rf & 1) {
13
+ function CaseEditSubmitComponent_div_0_div_4_Template(rf, ctx) { if (rf & 1) {
13
14
  i0.ɵɵelement(0, "div");
14
15
  } }
15
- function CaseEditSubmitComponent_div_0_ng_template_4_Template(rf, ctx) { if (rf & 1) {
16
+ function CaseEditSubmitComponent_div_0_ng_template_5_Template(rf, ctx) { if (rf & 1) {
16
17
  i0.ɵɵelement(0, "ccd-markdown", 14);
17
18
  i0.ɵɵpipe(1, "ccdCaseTitle");
18
19
  } if (rf & 2) {
19
20
  const ctx_r4 = i0.ɵɵnextContext(2);
20
21
  i0.ɵɵproperty("content", i0.ɵɵpipeBind3(1, 1, ctx_r4.getCaseTitle(), ctx_r4.contextFields, ctx_r4.editForm.controls["data"]));
21
22
  } }
22
- function CaseEditSubmitComponent_div_0_ng_template_6_h2_0_Template(rf, ctx) { if (rf & 1) {
23
+ function CaseEditSubmitComponent_div_0_ng_template_7_h2_0_Template(rf, ctx) { if (rf & 1) {
23
24
  i0.ɵɵelementStart(0, "h2", 16);
24
25
  i0.ɵɵtext(1);
25
26
  i0.ɵɵpipe(2, "ccdCaseReference");
26
27
  i0.ɵɵelementEnd();
27
28
  } if (rf & 2) {
28
- const ctx_r10 = i0.ɵɵnextContext(3);
29
+ const ctx_r11 = i0.ɵɵnextContext(3);
29
30
  i0.ɵɵadvance(1);
30
- i0.ɵɵtextInterpolate1("#", i0.ɵɵpipeBind1(2, 1, ctx_r10.getCaseId()), "");
31
+ i0.ɵɵtextInterpolate1("#", i0.ɵɵpipeBind1(2, 1, ctx_r11.getCaseId()), "");
31
32
  } }
32
- function CaseEditSubmitComponent_div_0_ng_template_6_Template(rf, ctx) { if (rf & 1) {
33
- i0.ɵɵtemplate(0, CaseEditSubmitComponent_div_0_ng_template_6_h2_0_Template, 3, 3, "h2", 15);
33
+ function CaseEditSubmitComponent_div_0_ng_template_7_Template(rf, ctx) { if (rf & 1) {
34
+ i0.ɵɵtemplate(0, CaseEditSubmitComponent_div_0_ng_template_7_h2_0_Template, 3, 3, "h2", 15);
34
35
  } if (rf & 2) {
35
36
  const ctx_r6 = i0.ɵɵnextContext(2);
36
37
  i0.ɵɵproperty("ngIf", ctx_r6.getCaseId());
37
38
  } }
38
- function CaseEditSubmitComponent_div_0_ng_container_11_span_4_Template(rf, ctx) { if (rf & 1) {
39
+ function CaseEditSubmitComponent_div_0_ng_container_12_span_4_Template(rf, ctx) { if (rf & 1) {
39
40
  i0.ɵɵelementStart(0, "span", 20);
40
41
  i0.ɵɵtext(1);
41
42
  i0.ɵɵpipe(2, "rpxTranslate");
@@ -44,100 +45,115 @@ function CaseEditSubmitComponent_div_0_ng_container_11_span_4_Template(rf, ctx)
44
45
  i0.ɵɵadvance(1);
45
46
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "Check the information below carefully."));
46
47
  } }
47
- function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_ng_container_1_ng_container_1_ng_container_1_th_2_Template(rf, ctx) { if (rf & 1) {
48
- i0.ɵɵelementStart(0, "th", 27);
48
+ function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_ng_container_1_ng_container_1_th_2_Template(rf, ctx) { if (rf & 1) {
49
+ i0.ɵɵelementStart(0, "th", 25);
49
50
  i0.ɵɵelementStart(1, "span", 20);
50
51
  i0.ɵɵtext(2);
51
52
  i0.ɵɵelementEnd();
52
53
  i0.ɵɵelementEnd();
53
54
  } if (rf & 2) {
54
- const field_r16 = i0.ɵɵnextContext(2).$implicit;
55
+ const field_r17 = i0.ɵɵnextContext(2).$implicit;
55
56
  i0.ɵɵadvance(2);
56
- i0.ɵɵtextInterpolate(field_r16.label);
57
+ i0.ɵɵtextInterpolate(field_r17.label);
57
58
  } }
58
- function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_ng_container_1_ng_container_1_ng_container_1_a_6_Template(rf, ctx) { if (rf & 1) {
59
- const _r23 = i0.ɵɵgetCurrentView();
59
+ function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_ng_container_1_ng_container_1_ng_container_5_a_2_Template(rf, ctx) { if (rf & 1) {
60
+ const _r25 = i0.ɵɵgetCurrentView();
60
61
  i0.ɵɵelementStart(0, "a", 13);
61
- i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_ng_container_1_ng_container_1_ng_container_1_a_6_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r23); const page_r13 = i0.ɵɵnextContext(4).$implicit; const ctx_r21 = i0.ɵɵnextContext(3); return ctx_r21.navigateToPage(page_r13.id); });
62
+ i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_ng_container_1_ng_container_1_ng_container_5_a_2_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r25); const page_r14 = i0.ɵɵnextContext(5).$implicit; const ctx_r23 = i0.ɵɵnextContext(3); return ctx_r23.navigateToPage(page_r14.id); });
62
63
  i0.ɵɵelementStart(1, "span", 20);
63
- i0.ɵɵtext(2, "Change");
64
+ i0.ɵɵpipe(2, "rpxTranslate");
65
+ i0.ɵɵpipe(3, "rpxTranslate");
66
+ i0.ɵɵtext(4);
67
+ i0.ɵɵpipe(5, "rpxTranslate");
64
68
  i0.ɵɵelementEnd();
65
69
  i0.ɵɵelementEnd();
66
70
  } if (rf & 2) {
67
- const field_r16 = i0.ɵɵnextContext(2).$implicit;
71
+ const field_r17 = i0.ɵɵnextContext(3).$implicit;
68
72
  i0.ɵɵadvance(1);
69
- i0.ɵɵattributeInterpolate1("aria-label", "Change ", field_r16.label, "");
73
+ i0.ɵɵattributeInterpolate2("aria-label", "", i0.ɵɵpipeBind1(2, 3, "Change"), " ", i0.ɵɵpipeBind1(3, 5, field_r17.label), "");
74
+ i0.ɵɵadvance(3);
75
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(5, 7, "Change"), " ");
76
+ } }
77
+ function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_ng_container_1_ng_container_1_ng_container_5_Template(rf, ctx) { if (rf & 1) {
78
+ i0.ɵɵelementContainerStart(0);
79
+ i0.ɵɵelementStart(1, "td", 26);
80
+ i0.ɵɵtemplate(2, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_ng_container_1_ng_container_1_ng_container_5_a_2_Template, 6, 9, "a", 27);
81
+ i0.ɵɵelementEnd();
82
+ i0.ɵɵelementContainerEnd();
83
+ } if (rf & 2) {
84
+ const field_r17 = i0.ɵɵnextContext(2).$implicit;
85
+ const ctx_r20 = i0.ɵɵnextContext(5);
86
+ i0.ɵɵadvance(2);
87
+ i0.ɵɵproperty("ngIf", ctx_r20.isChangeAllowed(field_r17));
70
88
  } }
71
- function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_ng_container_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
89
+ function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
72
90
  i0.ɵɵelementContainerStart(0);
73
91
  i0.ɵɵelementStart(1, "tr", 21);
74
- i0.ɵɵtemplate(2, CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_ng_container_1_ng_container_1_ng_container_1_th_2_Template, 3, 1, "th", 22);
92
+ i0.ɵɵtemplate(2, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_ng_container_1_ng_container_1_th_2_Template, 3, 1, "th", 22);
75
93
  i0.ɵɵelementStart(3, "td", 23);
76
94
  i0.ɵɵelement(4, "ccd-field-read", 24);
77
95
  i0.ɵɵelementEnd();
78
- i0.ɵɵelementStart(5, "td", 25);
79
- i0.ɵɵtemplate(6, CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_ng_container_1_ng_container_1_ng_container_1_a_6_Template, 3, 1, "a", 26);
80
- i0.ɵɵelementEnd();
96
+ i0.ɵɵtemplate(5, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_ng_container_1_ng_container_1_ng_container_5_Template, 3, 1, "ng-container", 0);
81
97
  i0.ɵɵelementEnd();
82
98
  i0.ɵɵelementContainerEnd();
83
99
  } if (rf & 2) {
84
- const field_r16 = i0.ɵɵnextContext().$implicit;
85
- const ctx_r17 = i0.ɵɵnextContext(5);
100
+ const field_r17 = i0.ɵɵnextContext().$implicit;
101
+ const ctx_r18 = i0.ɵɵnextContext(5);
86
102
  i0.ɵɵadvance(1);
87
- i0.ɵɵproperty("caseField", field_r16)("hidden", field_r16.hidden)("formGroup", ctx_r17.editForm.controls["data"])("contextFields", ctx_r17.contextFields);
103
+ i0.ɵɵproperty("caseField", field_r17)("hidden", field_r17.hidden)("formGroup", ctx_r18.editForm.controls["data"])("contextFields", ctx_r18.contextFields);
88
104
  i0.ɵɵadvance(1);
89
- i0.ɵɵproperty("ngIf", !ctx_r17.isLabel(field_r16) && !ctx_r17.caseEdit.isCaseFlagSubmission);
105
+ i0.ɵɵproperty("ngIf", !ctx_r18.isLabel(field_r17) && !ctx_r18.caseEdit.isCaseFlagSubmission);
90
106
  i0.ɵɵadvance(1);
91
- i0.ɵɵattribute("colspan", ctx_r17.isLabel(field_r16) ? "2" : "1");
107
+ i0.ɵɵattribute("colspan", ctx_r18.isLabel(field_r17) ? "2" : "1");
92
108
  i0.ɵɵadvance(1);
93
- i0.ɵɵproperty("formGroup", ctx_r17.editForm.controls["data"])("topLevelFormGroup", ctx_r17.editForm.controls["data"])("caseField", ctx_r17.summaryCaseField(field_r16))("context", ctx_r17.paletteContext)("caseFields", ctx_r17.contextFields);
94
- i0.ɵɵadvance(2);
95
- i0.ɵɵproperty("ngIf", ctx_r17.isChangeAllowed(field_r16));
109
+ i0.ɵɵproperty("formGroup", ctx_r18.editForm.controls["data"])("topLevelFormGroup", ctx_r18.editForm.controls["data"])("caseField", ctx_r18.summaryCaseField(field_r17))("context", ctx_r18.paletteContext)("caseFields", ctx_r18.contextFields);
110
+ i0.ɵɵadvance(1);
111
+ i0.ɵɵproperty("ngIf", !ctx_r18.caseEdit.isCaseFlagSubmission);
96
112
  } }
97
- function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
113
+ function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
98
114
  i0.ɵɵelementContainerStart(0);
99
- i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_ng_container_1_ng_container_1_ng_container_1_Template, 7, 12, "ng-container", 0);
115
+ i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_ng_container_1_ng_container_1_Template, 6, 12, "ng-container", 0);
100
116
  i0.ɵɵelementContainerEnd();
101
117
  } if (rf & 2) {
102
- const field_r16 = ctx.$implicit;
103
- const ctx_r15 = i0.ɵɵnextContext(5);
118
+ const field_r17 = ctx.$implicit;
119
+ const ctx_r16 = i0.ɵɵnextContext(5);
104
120
  i0.ɵɵadvance(1);
105
- i0.ɵɵproperty("ngIf", ctx_r15.canShowFieldInCYA(field_r16));
121
+ i0.ɵɵproperty("ngIf", ctx_r16.canShowFieldInCYA(field_r17));
106
122
  } }
107
123
  const _c0 = function (a0, a4) { return [a0, false, undefined, true, a4]; };
108
- function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
124
+ function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_Template(rf, ctx) { if (rf & 1) {
109
125
  i0.ɵɵelementContainerStart(0);
110
- i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_ng_container_1_ng_container_1_Template, 2, 1, "ng-container", 19);
126
+ i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_ng_container_1_Template, 2, 1, "ng-container", 19);
111
127
  i0.ɵɵpipe(2, "ccdCYAPageLabelFilter");
112
128
  i0.ɵɵpipe(3, "ccdReadFieldsFilter");
113
129
  i0.ɵɵpipe(4, "ccdPageFields");
114
130
  i0.ɵɵelementContainerEnd();
115
131
  } if (rf & 2) {
116
- const page_r13 = i0.ɵɵnextContext().$implicit;
117
- const ctx_r14 = i0.ɵɵnextContext(3);
132
+ const page_r14 = i0.ɵɵnextContext().$implicit;
133
+ const ctx_r15 = i0.ɵɵnextContext(3);
118
134
  i0.ɵɵadvance(1);
119
- i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBindV(3, 3, i0.ɵɵpureFunction2(12, _c0, i0.ɵɵpipeBind2(4, 9, page_r13, ctx_r14.editForm), ctx_r14.editForm.controls["data"]))));
135
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, i0.ɵɵpipeBindV(3, 3, i0.ɵɵpureFunction2(12, _c0, i0.ɵɵpipeBind2(4, 9, page_r14, ctx_r15.editForm), ctx_r15.editForm.controls["data"]))));
120
136
  } }
121
- function CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_Template(rf, ctx) { if (rf & 1) {
137
+ function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_Template(rf, ctx) { if (rf & 1) {
122
138
  i0.ɵɵelementContainerStart(0);
123
- i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_ng_container_1_Template, 5, 15, "ng-container", 0);
139
+ i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_ng_container_1_Template, 5, 15, "ng-container", 0);
124
140
  i0.ɵɵelementContainerEnd();
125
141
  } if (rf & 2) {
126
- const page_r13 = ctx.$implicit;
127
- const ctx_r12 = i0.ɵɵnextContext(3);
142
+ const page_r14 = ctx.$implicit;
143
+ const ctx_r13 = i0.ɵɵnextContext(3);
128
144
  i0.ɵɵadvance(1);
129
- i0.ɵɵproperty("ngIf", ctx_r12.isShown(page_r13));
145
+ i0.ɵɵproperty("ngIf", ctx_r13.isShown(page_r14));
130
146
  } }
131
- function CaseEditSubmitComponent_div_0_ng_container_11_Template(rf, ctx) { if (rf & 1) {
147
+ function CaseEditSubmitComponent_div_0_ng_container_12_Template(rf, ctx) { if (rf & 1) {
132
148
  i0.ɵɵelementContainerStart(0);
133
149
  i0.ɵɵelementStart(1, "h2", 16);
134
150
  i0.ɵɵtext(2);
135
151
  i0.ɵɵpipe(3, "rpxTranslate");
136
152
  i0.ɵɵelementEnd();
137
- i0.ɵɵtemplate(4, CaseEditSubmitComponent_div_0_ng_container_11_span_4_Template, 3, 3, "span", 17);
153
+ i0.ɵɵtemplate(4, CaseEditSubmitComponent_div_0_ng_container_12_span_4_Template, 3, 3, "span", 17);
138
154
  i0.ɵɵelementStart(5, "table", 18);
139
155
  i0.ɵɵelementStart(6, "tbody");
140
- i0.ɵɵtemplate(7, CaseEditSubmitComponent_div_0_ng_container_11_ng_container_7_Template, 2, 1, "ng-container", 19);
156
+ i0.ɵɵtemplate(7, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_7_Template, 2, 1, "ng-container", 19);
141
157
  i0.ɵɵelementEnd();
142
158
  i0.ɵɵelementEnd();
143
159
  i0.ɵɵelementContainerEnd();
@@ -150,7 +166,7 @@ function CaseEditSubmitComponent_div_0_ng_container_11_Template(rf, ctx) { if (r
150
166
  i0.ɵɵadvance(3);
151
167
  i0.ɵɵproperty("ngForOf", ctx_r7.wizard.pages);
152
168
  } }
153
- function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_tr_3_Template(rf, ctx) { if (rf & 1) {
169
+ function CaseEditSubmitComponent_div_0_ng_container_13_ng_container_3_tr_3_Template(rf, ctx) { if (rf & 1) {
154
170
  i0.ɵɵelementStart(0, "tr", 32);
155
171
  i0.ɵɵelementStart(1, "th", 33);
156
172
  i0.ɵɵtext(2);
@@ -160,49 +176,49 @@ function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_tr_3_Templ
160
176
  i0.ɵɵelementEnd();
161
177
  i0.ɵɵelementEnd();
162
178
  } if (rf & 2) {
163
- const field_r28 = i0.ɵɵnextContext().$implicit;
164
- const ctx_r29 = i0.ɵɵnextContext(3);
165
- i0.ɵɵproperty("caseField", field_r28)("formGroup", ctx_r29.editForm.controls["data"])("contextFields", ctx_r29.contextFields);
179
+ const field_r31 = i0.ɵɵnextContext().$implicit;
180
+ const ctx_r32 = i0.ɵɵnextContext(3);
181
+ i0.ɵɵproperty("caseField", field_r31)("formGroup", ctx_r32.editForm.controls["data"])("contextFields", ctx_r32.contextFields);
166
182
  i0.ɵɵadvance(2);
167
- i0.ɵɵtextInterpolate(field_r28.label);
183
+ i0.ɵɵtextInterpolate(field_r31.label);
168
184
  i0.ɵɵadvance(2);
169
- i0.ɵɵproperty("formGroup", ctx_r29.editForm.controls["data"])("caseField", ctx_r29.summaryCaseField(field_r28));
185
+ i0.ɵɵproperty("formGroup", ctx_r32.editForm.controls["data"])("caseField", ctx_r32.summaryCaseField(field_r31));
170
186
  } }
171
- function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_tr_4_Template(rf, ctx) { if (rf & 1) {
187
+ function CaseEditSubmitComponent_div_0_ng_container_13_ng_container_3_tr_4_Template(rf, ctx) { if (rf & 1) {
172
188
  i0.ɵɵelementStart(0, "tr", 36);
173
189
  i0.ɵɵelementStart(1, "td", 37);
174
190
  i0.ɵɵelement(2, "ccd-field-read", 38);
175
191
  i0.ɵɵelementEnd();
176
192
  i0.ɵɵelementEnd();
177
193
  } if (rf & 2) {
178
- const field_r28 = i0.ɵɵnextContext().$implicit;
179
- const ctx_r30 = i0.ɵɵnextContext(3);
180
- i0.ɵɵproperty("caseField", field_r28)("formGroup", ctx_r30.editForm.controls["data"])("contextFields", ctx_r30.contextFields);
194
+ const field_r31 = i0.ɵɵnextContext().$implicit;
195
+ const ctx_r33 = i0.ɵɵnextContext(3);
196
+ i0.ɵɵproperty("caseField", field_r31)("formGroup", ctx_r33.editForm.controls["data"])("contextFields", ctx_r33.contextFields);
181
197
  i0.ɵɵadvance(2);
182
- i0.ɵɵproperty("formGroup", ctx_r30.editForm.controls["data"])("caseField", ctx_r30.summaryCaseField(field_r28))("caseFields", ctx_r30.contextFields);
198
+ i0.ɵɵproperty("formGroup", ctx_r33.editForm.controls["data"])("caseField", ctx_r33.summaryCaseField(field_r31))("caseFields", ctx_r33.contextFields);
183
199
  } }
184
- function CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_Template(rf, ctx) { if (rf & 1) {
200
+ function CaseEditSubmitComponent_div_0_ng_container_13_ng_container_3_Template(rf, ctx) { if (rf & 1) {
185
201
  i0.ɵɵelementContainerStart(0);
186
202
  i0.ɵɵelementContainerStart(1, 29);
187
203
  i0.ɵɵpipe(2, "ccdIsCompound");
188
- i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_tr_3_Template, 5, 6, "tr", 30);
189
- i0.ɵɵtemplate(4, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_tr_4_Template, 3, 6, "tr", 31);
204
+ i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_0_ng_container_13_ng_container_3_tr_3_Template, 5, 6, "tr", 30);
205
+ i0.ɵɵtemplate(4, CaseEditSubmitComponent_div_0_ng_container_13_ng_container_3_tr_4_Template, 3, 6, "tr", 31);
190
206
  i0.ɵɵelementContainerEnd();
191
207
  i0.ɵɵelementContainerEnd();
192
208
  } if (rf & 2) {
193
- const field_r28 = ctx.$implicit;
209
+ const field_r31 = ctx.$implicit;
194
210
  i0.ɵɵadvance(1);
195
- i0.ɵɵproperty("ngSwitch", !i0.ɵɵpipeBind1(2, 3, field_r28));
211
+ i0.ɵɵproperty("ngSwitch", !i0.ɵɵpipeBind1(2, 3, field_r31));
196
212
  i0.ɵɵadvance(2);
197
213
  i0.ɵɵproperty("ngSwitchCase", true);
198
214
  i0.ɵɵadvance(1);
199
215
  i0.ɵɵproperty("ngSwitchCase", false);
200
216
  } }
201
- function CaseEditSubmitComponent_div_0_ng_container_12_Template(rf, ctx) { if (rf & 1) {
217
+ function CaseEditSubmitComponent_div_0_ng_container_13_Template(rf, ctx) { if (rf & 1) {
202
218
  i0.ɵɵelementContainerStart(0);
203
219
  i0.ɵɵelementStart(1, "table", 28);
204
220
  i0.ɵɵelementStart(2, "tbody");
205
- i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_0_ng_container_12_ng_container_3_Template, 5, 5, "ng-container", 19);
221
+ i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_0_ng_container_13_ng_container_3_Template, 5, 5, "ng-container", 19);
206
222
  i0.ɵɵelementEnd();
207
223
  i0.ɵɵelementEnd();
208
224
  i0.ɵɵelementContainerEnd();
@@ -211,77 +227,83 @@ function CaseEditSubmitComponent_div_0_ng_container_12_Template(rf, ctx) { if (r
211
227
  i0.ɵɵadvance(3);
212
228
  i0.ɵɵproperty("ngForOf", ctx_r8.showSummaryFields);
213
229
  } }
214
- function CaseEditSubmitComponent_div_0_ng_container_13_fieldset_1_Template(rf, ctx) { if (rf & 1) {
215
- i0.ɵɵelementStart(0, "fieldset", 40);
216
- i0.ɵɵelement(1, "legend", 41);
217
- i0.ɵɵelementStart(2, "div", 42);
218
- i0.ɵɵelementStart(3, "label", 43);
219
- i0.ɵɵtext(4, " Event summary (optional) ");
220
- i0.ɵɵelementStart(5, "span", 44);
221
- i0.ɵɵtext(6, "A few words describing the purpose of the event.");
230
+ function CaseEditSubmitComponent_div_0_ng_container_14_Template(rf, ctx) { if (rf & 1) {
231
+ i0.ɵɵelementContainerStart(0);
232
+ i0.ɵɵelementStart(1, "fieldset", 39);
233
+ i0.ɵɵelement(2, "legend", 40);
234
+ i0.ɵɵelementStart(3, "div", 41);
235
+ i0.ɵɵelementStart(4, "label", 42);
236
+ i0.ɵɵtext(5, " Event summary (optional) ");
237
+ i0.ɵɵelementStart(6, "span", 43);
238
+ i0.ɵɵtext(7, "A few words describing the purpose of the event.");
222
239
  i0.ɵɵelementEnd();
223
240
  i0.ɵɵelementEnd();
224
- i0.ɵɵelement(7, "input", 45);
241
+ i0.ɵɵelement(8, "input", 44);
225
242
  i0.ɵɵelementEnd();
226
- i0.ɵɵelementStart(8, "div", 42);
227
- i0.ɵɵelementStart(9, "label", 46);
228
- i0.ɵɵtext(10, "Event description (optional)");
243
+ i0.ɵɵelementStart(9, "div", 41);
244
+ i0.ɵɵelementStart(10, "label", 45);
245
+ i0.ɵɵtext(11, "Event description (optional)");
229
246
  i0.ɵɵelementEnd();
230
- i0.ɵɵelement(11, "textarea", 47);
247
+ i0.ɵɵelement(12, "textarea", 46);
231
248
  i0.ɵɵelementEnd();
232
249
  i0.ɵɵelementEnd();
233
- } }
234
- function CaseEditSubmitComponent_div_0_ng_container_13_Template(rf, ctx) { if (rf & 1) {
235
- i0.ɵɵelementContainerStart(0);
236
- i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_0_ng_container_13_fieldset_1_Template, 12, 0, "fieldset", 39);
237
250
  i0.ɵɵelementContainerEnd();
251
+ } }
252
+ function CaseEditSubmitComponent_div_0_button_16_Template(rf, ctx) { if (rf & 1) {
253
+ const _r37 = i0.ɵɵgetCurrentView();
254
+ i0.ɵɵelementStart(0, "button", 47);
255
+ i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_button_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r37); const ctx_r36 = i0.ɵɵnextContext(2); return ctx_r36.previous(); });
256
+ i0.ɵɵtext(1);
257
+ i0.ɵɵpipe(2, "rpxTranslate");
258
+ i0.ɵɵelementEnd();
238
259
  } if (rf & 2) {
239
- const ctx_r9 = i0.ɵɵnextContext(2);
260
+ const ctx_r10 = i0.ɵɵnextContext(2);
261
+ i0.ɵɵproperty("disabled", !ctx_r10.hasPrevious() || ctx_r10.caseEdit.isSubmitting);
240
262
  i0.ɵɵadvance(1);
241
- i0.ɵɵproperty("ngIf", ctx_r9.profile && !ctx_r9.isSolicitor());
263
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 2, "Previous"), " ");
242
264
  } }
243
265
  function CaseEditSubmitComponent_div_0_Template(rf, ctx) { if (rf & 1) {
244
- const _r35 = i0.ɵɵgetCurrentView();
266
+ const _r39 = i0.ɵɵgetCurrentView();
245
267
  i0.ɵɵelementStart(0, "div");
246
268
  i0.ɵɵelementStart(1, "h1", 2);
247
269
  i0.ɵɵtext(2);
270
+ i0.ɵɵpipe(3, "rpxTranslate");
248
271
  i0.ɵɵelementEnd();
249
- i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_0_div_3_Template, 1, 0, "div", 3);
250
- i0.ɵɵtemplate(4, CaseEditSubmitComponent_div_0_ng_template_4_Template, 2, 5, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
251
- i0.ɵɵtemplate(6, CaseEditSubmitComponent_div_0_ng_template_6_Template, 1, 1, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
252
- i0.ɵɵelement(8, "ccd-case-edit-generic-errors", 6);
253
- i0.ɵɵelementStart(9, "ccd-callback-errors", 7);
254
- i0.ɵɵlistener("callbackErrorsContext", function CaseEditSubmitComponent_div_0_Template_ccd_callback_errors_callbackErrorsContext_9_listener($event) { i0.ɵɵrestoreView(_r35); const ctx_r34 = i0.ɵɵnextContext(); return ctx_r34.callbackErrorsNotify($event); });
255
- i0.ɵɵelementEnd();
256
- i0.ɵɵelementStart(10, "form", 8);
257
- i0.ɵɵlistener("submit", function CaseEditSubmitComponent_div_0_Template_form_submit_10_listener() { i0.ɵɵrestoreView(_r35); const ctx_r36 = i0.ɵɵnextContext(); return ctx_r36.submit(); });
258
- i0.ɵɵtemplate(11, CaseEditSubmitComponent_div_0_ng_container_11_Template, 8, 5, "ng-container", 0);
259
- i0.ɵɵtemplate(12, CaseEditSubmitComponent_div_0_ng_container_12_Template, 4, 1, "ng-container", 0);
260
- i0.ɵɵtemplate(13, CaseEditSubmitComponent_div_0_ng_container_13_Template, 2, 1, "ng-container", 0);
261
- i0.ɵɵelementStart(14, "div", 9);
262
- i0.ɵɵelementStart(15, "button", 10);
263
- i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r35); const ctx_r37 = i0.ɵɵnextContext(); return ctx_r37.previous(); });
264
- i0.ɵɵtext(16, "Previous");
265
- i0.ɵɵelementEnd();
272
+ i0.ɵɵtemplate(4, CaseEditSubmitComponent_div_0_div_4_Template, 1, 0, "div", 3);
273
+ i0.ɵɵtemplate(5, CaseEditSubmitComponent_div_0_ng_template_5_Template, 2, 5, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
274
+ i0.ɵɵtemplate(7, CaseEditSubmitComponent_div_0_ng_template_7_Template, 1, 1, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
275
+ i0.ɵɵelement(9, "ccd-case-edit-generic-errors", 6);
276
+ i0.ɵɵelementStart(10, "ccd-callback-errors", 7);
277
+ i0.ɵɵlistener("callbackErrorsContext", function CaseEditSubmitComponent_div_0_Template_ccd_callback_errors_callbackErrorsContext_10_listener($event) { i0.ɵɵrestoreView(_r39); const ctx_r38 = i0.ɵɵnextContext(); return ctx_r38.callbackErrorsNotify($event); });
278
+ i0.ɵɵelementEnd();
279
+ i0.ɵɵelementStart(11, "form", 8);
280
+ i0.ɵɵlistener("submit", function CaseEditSubmitComponent_div_0_Template_form_submit_11_listener() { i0.ɵɵrestoreView(_r39); const ctx_r40 = i0.ɵɵnextContext(); return ctx_r40.submit(); });
281
+ i0.ɵɵtemplate(12, CaseEditSubmitComponent_div_0_ng_container_12_Template, 8, 5, "ng-container", 0);
282
+ i0.ɵɵtemplate(13, CaseEditSubmitComponent_div_0_ng_container_13_Template, 4, 1, "ng-container", 0);
283
+ i0.ɵɵtemplate(14, CaseEditSubmitComponent_div_0_ng_container_14_Template, 13, 0, "ng-container", 0);
284
+ i0.ɵɵelementStart(15, "div", 9);
285
+ i0.ɵɵtemplate(16, CaseEditSubmitComponent_div_0_button_16_Template, 3, 4, "button", 10);
266
286
  i0.ɵɵelementStart(17, "button", 11);
267
287
  i0.ɵɵtext(18);
288
+ i0.ɵɵpipe(19, "rpxTranslate");
268
289
  i0.ɵɵelementEnd();
269
290
  i0.ɵɵelementEnd();
270
- i0.ɵɵelementStart(19, "p", 12);
271
- i0.ɵɵelementStart(20, "a", 13);
272
- i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_Template_a_click_20_listener() { i0.ɵɵrestoreView(_r35); const ctx_r38 = i0.ɵɵnextContext(); return ctx_r38.cancel(); });
273
- i0.ɵɵtext(21);
291
+ i0.ɵɵelementStart(20, "p", 12);
292
+ i0.ɵɵelementStart(21, "a", 13);
293
+ i0.ɵɵlistener("click", function CaseEditSubmitComponent_div_0_Template_a_click_21_listener() { i0.ɵɵrestoreView(_r39); const ctx_r41 = i0.ɵɵnextContext(); return ctx_r41.cancel(); });
294
+ i0.ɵɵtext(22);
295
+ i0.ɵɵpipe(23, "rpxTranslate");
274
296
  i0.ɵɵelementEnd();
275
297
  i0.ɵɵelementEnd();
276
298
  i0.ɵɵelementEnd();
277
299
  i0.ɵɵelementEnd();
278
300
  } if (rf & 2) {
279
- const _r3 = i0.ɵɵreference(5);
280
- const _r5 = i0.ɵɵreference(7);
301
+ const _r3 = i0.ɵɵreference(6);
302
+ const _r5 = i0.ɵɵreference(8);
281
303
  const ctx_r0 = i0.ɵɵnextContext();
282
304
  i0.ɵɵadvance(2);
283
- i0.ɵɵtextInterpolate(ctx_r0.eventTrigger.name);
284
- i0.ɵɵadvance(1);
305
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 16, ctx_r0.eventTrigger.name));
306
+ i0.ɵɵadvance(2);
285
307
  i0.ɵɵproperty("ngIf", ctx_r0.getCaseTitle())("ngIfThen", _r3)("ngIfElse", _r5);
286
308
  i0.ɵɵadvance(5);
287
309
  i0.ɵɵproperty("error", ctx_r0.caseEdit.error);
@@ -296,20 +318,20 @@ function CaseEditSubmitComponent_div_0_Template(rf, ctx) { if (rf & 1) {
296
318
  i0.ɵɵadvance(1);
297
319
  i0.ɵɵproperty("ngIf", ctx_r0.showEventNotes());
298
320
  i0.ɵɵadvance(2);
299
- i0.ɵɵproperty("disabled", !ctx_r0.hasPrevious() || ctx_r0.caseEdit.isSubmitting);
300
- i0.ɵɵadvance(2);
321
+ i0.ɵɵproperty("ngIf", !ctx_r0.caseEdit.isCaseFlagSubmission);
322
+ i0.ɵɵadvance(1);
301
323
  i0.ɵɵproperty("disabled", ctx_r0.isDisabled);
302
324
  i0.ɵɵadvance(1);
303
- i0.ɵɵtextInterpolate(ctx_r0.triggerText);
304
- i0.ɵɵadvance(2);
325
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(19, 18, ctx_r0.triggerText), " ");
326
+ i0.ɵɵadvance(3);
305
327
  i0.ɵɵclassProp("disabled", ctx_r0.caseEdit.isSubmitting);
306
328
  i0.ɵɵadvance(1);
307
- i0.ɵɵtextInterpolate(ctx_r0.getCancelText());
329
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(23, 20, ctx_r0.getCancelText()));
308
330
  } }
309
331
  function CaseEditSubmitComponent_ccd_case_event_completion_1_Template(rf, ctx) { if (rf & 1) {
310
- const _r40 = i0.ɵɵgetCurrentView();
332
+ const _r43 = i0.ɵɵgetCurrentView();
311
333
  i0.ɵɵelementStart(0, "ccd-case-event-completion", 48);
312
- i0.ɵɵlistener("eventCanBeCompleted", function CaseEditSubmitComponent_ccd_case_event_completion_1_Template_ccd_case_event_completion_eventCanBeCompleted_0_listener($event) { i0.ɵɵrestoreView(_r40); const ctx_r39 = i0.ɵɵnextContext(); return ctx_r39.onEventCanBeCompleted($event); });
334
+ i0.ɵɵlistener("eventCanBeCompleted", function CaseEditSubmitComponent_ccd_case_event_completion_1_Template_ccd_case_event_completion_eventCanBeCompleted_0_listener($event) { i0.ɵɵrestoreView(_r43); const ctx_r42 = i0.ɵɵnextContext(); return ctx_r42.onEventCanBeCompleted($event); });
313
335
  i0.ɵɵelementEnd();
314
336
  } if (rf & 2) {
315
337
  const ctx_r1 = i0.ɵɵnextContext();
@@ -348,7 +370,7 @@ export class CaseEditSubmitComponent {
348
370
  this.eventTrigger.case_fields.some(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']));
349
371
  this.caseEdit.isLinkedCasesSubmission =
350
372
  this.eventTrigger.case_fields.some(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['ComponentLauncher']));
351
- this.pageTitle = this.caseEdit.isCaseFlagSubmission ? 'Review flag details' : 'Check your answers';
373
+ this.pageTitle = this.getPageTitle();
352
374
  }
353
375
  ngOnDestroy() {
354
376
  /* istanbul ignore else */
@@ -373,6 +395,17 @@ export class CaseEditSubmitComponent {
373
395
  submit: this.caseEdit.submit,
374
396
  });
375
397
  }
398
+ getPageTitle() {
399
+ const caseFlagField = this.eventTrigger.case_fields.find(caseField => FieldsUtils.isCaseFieldOfType(caseField, ['FlagLauncher']));
400
+ if (caseFlagField) {
401
+ const isCaseFlagExternalMode = caseFlagField.display_context_parameter === '#ARGUMENT(UPDATE,EXTERNAL)' ||
402
+ caseFlagField.display_context_parameter === '#ARGUMENT(CREATE,EXTERNAL)';
403
+ return isCaseFlagExternalMode
404
+ ? CaseEditSubmitTitles.REVIEW_SUPPORT_REQUEST
405
+ : CaseEditSubmitTitles.REVIEW_FLAG_DETAILS;
406
+ }
407
+ return CaseEditSubmitTitles.CHECK_YOUR_ANSWERS;
408
+ }
376
409
  get hasErrors() {
377
410
  var _a, _b, _c;
378
411
  return (_c = (_b = (_a = this.caseEdit) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.callbackErrors) === null || _c === void 0 ? void 0 : _c.length;
@@ -438,7 +471,16 @@ export class CaseEditSubmitComponent {
438
471
  return this.eventTrigger.case_fields.some(field => field.show_summary_content_option >= 0);
439
472
  }
440
473
  showEventNotes() {
441
- return !!this.eventTrigger.show_event_notes;
474
+ var _a;
475
+ // Display event notes related controls only if the following conditions are met
476
+ // 1. show_event_notes flag is set to true
477
+ // 2. profile is not a solicitor
478
+ // 3. is not a case flags journey, as it uses a custom check your answers component
479
+ if (this.eventTrigger.show_event_notes) {
480
+ return !((_a = this.profile) === null || _a === void 0 ? void 0 : _a.isSolicitor())
481
+ && !this.caseEdit.isCaseFlagSubmission;
482
+ }
483
+ return false;
442
484
  }
443
485
  getLastPageShown() {
444
486
  let lastPage;
@@ -467,9 +509,6 @@ export class CaseEditSubmitComponent {
467
509
  canShowFieldInCYA(field) {
468
510
  return field.show_summary_change_option;
469
511
  }
470
- isSolicitor() {
471
- return this.profile.isSolicitor();
472
- }
473
512
  sortFieldsByShowSummaryContent(fields) {
474
513
  return this.orderService
475
514
  .sort(fields, CaseEditSubmitComponent.SHOW_SUMMARY_CONTENT_COMPARE_FUNCTION)
@@ -509,14 +548,14 @@ CaseEditSubmitComponent.SHOW_SUMMARY_CONTENT_COMPARE_FUNCTION = (a, b) => {
509
548
  return a.show_summary_content_option - b.show_summary_content_option;
510
549
  };
511
550
  CaseEditSubmitComponent.ɵfac = function CaseEditSubmitComponent_Factory(t) { return new (t || CaseEditSubmitComponent)(i0.ɵɵdirectiveInject(i1.CaseEditComponent), i0.ɵɵdirectiveInject(i2.FieldsUtils), i0.ɵɵdirectiveInject(i2.CaseFieldService), i0.ɵɵdirectiveInject(i3.ActivatedRoute), i0.ɵɵdirectiveInject(i2.OrderService), i0.ɵɵdirectiveInject(i2.ProfileNotifier)); };
512
- CaseEditSubmitComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], [1, "govuk-heading-l"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["titleBlock", ""], ["idBlock", ""], [3, "error"], [3, "callbackErrorsSubject", "callbackErrorsContext"], [1, "check-your-answers", 3, "formGroup", "submit"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "disabled", "click"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 3, "click"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["class", "text-16", 4, "ngIf"], ["aria-describedby", "check your answers table", 1, "form-table"], [4, "ngFor", "ngForOf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "hidden", "formGroup", "contextFields"], ["class", "valign-top case-field-label", 4, "ngIf"], [1, "form-cell", "case-field-content"], [3, "formGroup", "topLevelFormGroup", "caseField", "context", "caseFields"], [1, "valign-top", "check-your-answers__change", "case-field-change"], ["href", "javascript:void(0)", 3, "click", 4, "ngIf"], [1, "valign-top", "case-field-label"], ["aria-describedby", "summary fields table", 1, "summary-fields"], [3, "ngSwitch"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["class", "compound-field", "ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], ["id", "summary-field-label"], [1, "form-cell"], [3, "formGroup", "caseField"], ["ccdLabelSubstitutor", "", 1, "compound-field", 3, "caseField", "formGroup", "contextFields"], ["colspan", "2"], [3, "formGroup", "caseField", "caseFields"], ["id", "fieldset-event", "formGroupName", "event", 4, "ngIf"], ["id", "fieldset-event", "formGroupName", "event"], [2, "display", "none"], [1, "form-group"], ["for", "field-trigger-summary", 1, "form-label"], [1, "form-hint"], ["type", "text", "id", "field-trigger-summary", "formControlName", "summary", "maxlength", "1024", 1, "form-control", "bottom-30", "width-50"], ["for", "field-trigger-description", 1, "form-label"], ["id", "field-trigger-description", "formControlName", "description", "maxlength", "65536", 1, "form-control", "bottom-30", "width-50"], [3, "eventCompletionParams", "eventCanBeCompleted"]], template: function CaseEditSubmitComponent_Template(rf, ctx) { if (rf & 1) {
513
- i0.ɵɵtemplate(0, CaseEditSubmitComponent_div_0_Template, 22, 16, "div", 0);
551
+ CaseEditSubmitComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], decls: 2, vars: 2, consts: [[4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], [1, "govuk-heading-l"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["titleBlock", ""], ["idBlock", ""], [3, "error"], [3, "callbackErrorsSubject", "callbackErrorsContext"], [1, "check-your-answers", 3, "formGroup", "submit"], [1, "form-group", "form-group-related"], ["class", "button button-secondary", "type", "button", 3, "disabled", "click", 4, "ngIf"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 3, "click"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["class", "text-16", 4, "ngIf"], ["aria-describedby", "check your answers table", 1, "form-table"], [4, "ngFor", "ngForOf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "hidden", "formGroup", "contextFields"], ["class", "valign-top case-field-label", 4, "ngIf"], [1, "form-cell", "case-field-content"], [3, "formGroup", "topLevelFormGroup", "caseField", "context", "caseFields"], [1, "valign-top", "case-field-label"], [1, "valign-top", "check-your-answers__change", "case-field-change"], ["href", "javascript:void(0)", 3, "click", 4, "ngIf"], ["aria-describedby", "summary fields table", 1, "summary-fields"], [3, "ngSwitch"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["class", "compound-field", "ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], ["id", "summary-field-label"], [1, "form-cell"], [3, "formGroup", "caseField"], ["ccdLabelSubstitutor", "", 1, "compound-field", 3, "caseField", "formGroup", "contextFields"], ["colspan", "2"], [3, "formGroup", "caseField", "caseFields"], ["id", "fieldset-event", "formGroupName", "event"], [2, "display", "none"], [1, "form-group"], ["for", "field-trigger-summary", 1, "form-label"], [1, "form-hint"], ["type", "text", "id", "field-trigger-summary", "formControlName", "summary", "maxlength", "1024", 1, "form-control", "bottom-30", "width-50"], ["for", "field-trigger-description", 1, "form-label"], ["id", "field-trigger-description", "formControlName", "description", "maxlength", "65536", 1, "form-control", "bottom-30", "width-50"], ["type", "button", 1, "button", "button-secondary", 3, "disabled", "click"], [3, "eventCompletionParams", "eventCanBeCompleted"]], template: function CaseEditSubmitComponent_Template(rf, ctx) { if (rf & 1) {
552
+ i0.ɵɵtemplate(0, CaseEditSubmitComponent_div_0_Template, 24, 22, "div", 0);
514
553
  i0.ɵɵtemplate(1, CaseEditSubmitComponent_ccd_case_event_completion_1_Template, 1, 1, "ccd-case-event-completion", 1);
515
554
  } if (rf & 2) {
516
555
  i0.ɵɵproperty("ngIf", !ctx.caseEdit.isEventCompletionChecksRequired);
517
556
  i0.ɵɵadvance(1);
518
557
  i0.ɵɵproperty("ngIf", ctx.caseEdit.isEventCompletionChecksRequired);
519
- } }, styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:1px solid #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:0}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
558
+ } }, styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:1px solid #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:0}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.no-bottom-border[_ngcontent-%COMP%]{border-bottom:none}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
520
559
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditSubmitComponent, [{
521
560
  type: Component,
522
561
  args: [{
@@ -525,4 +564,4 @@ CaseEditSubmitComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditSubmitCom
525
564
  styleUrls: ['../case-edit.scss']
526
565
  }]
527
566
  }], function () { return [{ type: i1.CaseEditComponent }, { type: i2.FieldsUtils }, { type: i2.CaseFieldService }, { type: i3.ActivatedRoute }, { type: i2.OrderService }, { type: i2.ProfileNotifier }]; }, null); })();
528
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LXN1Ym1pdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvY2FzZS1lZGl0b3IvY2FzZS1lZGl0LXN1Ym1pdC9jYXNlLWVkaXQtc3VibWl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtc3VibWl0L2Nhc2UtZWRpdC1zdWJtaXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJakQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsWUFBWSxFQUNaLGVBQWUsR0FDaEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsdUJBQXVCLEVBQXlCLE1BQU0sYUFBYSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztJQ1ZuRSxzQkFBaUU7OztJQUUvRCxtQ0FBa0g7Ozs7SUFBcEcsNkhBQW9GOzs7SUFHbEcsOEJBQTJDO0lBQUEsWUFBcUM7O0lBQUEsaUJBQUs7OztJQUExQyxlQUFxQztJQUFyQyx5RUFBcUM7OztJQUFoRiwyRkFBcUY7OztJQUFoRix5Q0FBaUI7OztJQVlwQixnQ0FBNkQ7SUFBQSxZQUEyRDs7SUFBQSxpQkFBTzs7SUFBbEUs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QUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUU7WUFDcEMsT0FBTyxxQkFBcUIsQ0FBQztTQUM5QjthQUFNO1lBQ0wsT0FBTyxRQUFRLENBQUM7U0FDakI7SUFDSCxDQUFDOztBQXhOc0IsNkRBQXFDLEdBQUcsQ0FBQyxDQUFZLEVBQUUsQ0FBWSxFQUFVLEVBQUU7SUFDcEcsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLDJCQUEyQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsMkJBQTJCLENBQUM7SUFDeEYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLDJCQUEyQixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsMkJBQTJCLENBQUM7SUFFeEYsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUNmLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQzVCO0lBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUM7S0FDWDtJQUNELE9BQU8sQ0FBQyxDQUFDLDJCQUEyQixHQUFHLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztBQUN2RSxDQUFDLENBQUE7OEZBekJVLHVCQUF1Qjs0REFBdkIsdUJBQXVCO1FDeEJwQywwRUFrR007UUFDTixvSEFHNEI7O1FBdEd0QixvRUFBK0M7UUFtR3pCLGVBQThDO1FBQTlDLG1FQUE4Qzs7dUZEM0U3RCx1QkFBdUI7Y0FMbkMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLFdBQVcsRUFBRSx1QkFBdUI7Z0JBQ3BDLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlRXZlbnRUcmlnZ2VyLCBDYXNlRmllbGQsIFByb2ZpbGUgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFzayc7XG5pbXBvcnQge1xuICBDYXNlRmllbGRTZXJ2aWNlLFxuICBGaWVsZHNVdGlscyxcbiAgT3JkZXJTZXJ2aWNlLFxuICBQcm9maWxlTm90aWZpZXIsXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENhbGxiYWNrRXJyb3JzQ29tcG9uZW50LCBDYWxsYmFja0Vycm9yc0NvbnRleHQgfSBmcm9tICcuLi8uLi9lcnJvcic7XG5pbXBvcnQgeyBQYWxldHRlQ29udGV4dCB9IGZyb20gJy4uLy4uL3BhbGV0dGUnO1xuaW1wb3J0IHsgQ2FzZUVkaXRQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FzZS1lZGl0LXBhZ2UvY2FzZS1lZGl0LXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IENhc2VFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi4vY2FzZS1lZGl0L2Nhc2UtZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkLCBXaXphcmRQYWdlIH0gZnJvbSAnLi4vZG9tYWluJztcblxuLy8gQGR5bmFtaWNcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1jYXNlLWVkaXQtc3VibWl0JyxcbiAgdGVtcGxhdGVVcmw6ICdjYXNlLWVkaXQtc3VibWl0Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vY2FzZS1lZGl0LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDYXNlRWRpdFN1Ym1pdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGV2ZW50VHJpZ2dlcjogQ2FzZUV2ZW50VHJpZ2dlcjtcbiAgcHVibGljIGVkaXRGb3JtOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyB0cmlnZ2VyVGV4dDogc3RyaW5nO1xuICBwdWJsaWMgd2l6YXJkOiBXaXphcmQ7XG4gIHB1YmxpYyBwcm9maWxlOiBQcm9maWxlO1xuICBwdWJsaWMgc2hvd1N1bW1hcnlGaWVsZHM6IENhc2VGaWVsZFtdO1xuICBwdWJsaWMgcGFsZXR0ZUNvbnRleHQ6IFBhbGV0dGVDb250ZXh0ID0gUGFsZXR0ZUNvbnRleHQuQ0hFQ0tfWU9VUl9BTlNXRVI7XG4gIHB1YmxpYyBwcm9maWxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjb250ZXh0RmllbGRzOiBDYXNlRmllbGRbXTtcbiAgcHVibGljIHRhc2s6IFRhc2s7XG4gIHB1YmxpYyBwYWdlVGl0bGU6IHN0cmluZztcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNIT1dfU1VNTUFSWV9DT05URU5UX0NPTVBBUkVfRlVOQ1RJT04gPSAoYTogQ2FzZUZpZWxkLCBiOiBDYXNlRmllbGQpOiBudW1iZXIgPT4ge1xuICAgIGNvbnN0IGFDYXNlRmllbGQgPSBhLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbiA9PT0gMCB8fCBhLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbjtcbiAgICBjb25zdCBiQ2FzZUZpZWxkID0gYi5zaG93X3N1bW1hcnlfY29udGVudF9vcHRpb24gPT09IDAgfHwgYi5zaG93X3N1bW1hcnlfY29udGVudF9vcHRpb247XG5cbiAgICBpZiAoIWFDYXNlRmllbGQpIHtcbiAgICAgIHJldHVybiAhYkNhc2VGaWVsZCA/IDAgOiAxO1xuICAgIH1cblxuICAgIGlmICghYkNhc2VGaWVsZCkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cbiAgICByZXR1cm4gYS5zaG93X3N1bW1hcnlfY29udGVudF9vcHRpb24gLSBiLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAvLyBFVUktMzQ1Mi5cbiAgICAvLyBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIHRoZSB2YWxpZGl0eSBvZiB0aGUgZWRpdEZvcm0gYXMgaXQgaXMgcmVhZG9ubHkuXG4gICAgLy8gVGhpcyB3YXMgY2F1c2luZyBpc3N1ZXMgd2l0aCBoaWRkZW4gZmllbGRzIHRoYXQgYXJlbid0IHdhbnRlZCBidXQgaGF2ZVxuICAgIC8vIG5vdCBiZWVuIGRpc2FibGVkLlxuICAgIHJldHVybiB0aGlzLmNhc2VFZGl0LmlzU3VibWl0dGluZyB8fCB0aGlzLmhhc0Vycm9ycztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBjYXNlRWRpdDogQ2FzZUVkaXRDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWVsZHNVdGlsczogRmllbGRzVXRpbHMsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlRmllbGRTZXJ2aWNlOiBDYXNlRmllbGRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3JkZXJTZXJ2aWNlOiBPcmRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9maWxlTm90aWZpZXI6IFByb2ZpbGVOb3RpZmllcixcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wcm9maWxlU3Vic2NyaXB0aW9uID0gdGhpcy5wcm9maWxlTm90aWZpZXIucHJvZmlsZS5zdWJzY3JpYmUoXyA9PiB0aGlzLnByb2ZpbGUgPSBfKTtcbiAgICB0aGlzLmV2ZW50VHJpZ2dlciA9IHRoaXMuY2FzZUVkaXQuZXZlbnRUcmlnZ2VyO1xuICAgIHRoaXMudHJpZ2dlclRleHQgPSB0aGlzLmV2ZW50VHJpZ2dlci5lbmRfYnV0dG9uX2xhYmVsIHx8IENhbGxiYWNrRXJyb3JzQ29tcG9uZW50LlRSSUdHRVJfVEVYVF9TVUJNSVQ7XG4gICAgdGhpcy5lZGl0Rm9ybSA9IHRoaXMuY2FzZUVkaXQuZm9ybTtcbiAgICB0aGlzLndpemFyZCA9IHRoaXMuY2FzZUVkaXQud2l6YXJkO1xuICAgIHRoaXMuc2hvd1N1bW1hcnlGaWVsZHMgPSB0aGlzLnNvcnRGaWVsZHNCeVNob3dTdW1tYXJ5Q29udGVudCh0aGlzLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gICAgdGhpcy5jYXNlRWRpdC5pc1N1Ym1pdHRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmNvbnRleHRGaWVsZHMgPSB0aGlzLmdldENhc2VGaWVsZHMoKTtcbiAgICAvLyBJbmRpY2F0ZXMgaWYgdGhlIHN1Ym1pc3Npb24gaXMgZm9yIGEgQ2FzZSBGbGFnLCBhcyBvcHBvc2VkIHRvIGEgXCJyZWd1bGFyXCIgZm9ybSBzdWJtaXNzaW9uLCBieSB0aGUgcHJlc2VuY2Ugb2ZcbiAgICAvLyBhIEZsYWdMYXVuY2hlciBmaWVsZCBpbiB0aGUgZXZlbnQgdHJpZ2dlclxuICAgIHRoaXMuY2FzZUVkaXQuaXNDYXNlRmxhZ1N1Ym1pc3Npb24gPVxuICAgICAgdGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMuc29tZShjYXNlRmllbGQgPT4gRmllbGRzVXRpbHMuaXNDYXNlRmllbGRPZlR5cGUoY2FzZUZpZWxkLCBbJ0ZsYWdMYXVuY2hlciddKSk7XG4gICAgdGhpcy5jYXNlRWRpdC5pc0xpbmtlZENhc2VzU3VibWlzc2lvbiA9XG4gICAgICB0aGlzLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcy5zb21lKGNhc2VGaWVsZCA9PiBGaWVsZHNVdGlscy5pc0Nhc2VGaWVsZE9mVHlwZShjYXNlRmllbGQsIFsnQ29tcG9uZW50TGF1bmNoZXInXSkpO1xuICAgIHRoaXMucGFnZVRpdGxlID0gdGhpcy5jYXNlRWRpdC5pc0Nhc2VGbGFnU3VibWlzc2lvbiA/ICdSZXZpZXcgZmxhZyBkZXRhaWxzJyA6ICdDaGVjayB5b3VyIGFuc3dlcnMnO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnByb2ZpbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlRWRpdC5zdWJtaXRGb3JtKHtcbiAgICAgIGV2ZW50VHJpZ2dlcjogdGhpcy5ldmVudFRyaWdnZXIsXG4gICAgICBmb3JtOiB0aGlzLmVkaXRGb3JtLFxuICAgICAgc3VibWl0OiB0aGlzLmNhc2VFZGl0LnN1Ym1pdCxcbiAgICAgIGNhc2VEZXRhaWxzOiB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uRXZlbnRDYW5CZUNvbXBsZXRlZChldmVudENhbkJlQ29tcGxldGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlRWRpdC5vbkV2ZW50Q2FuQmVDb21wbGV0ZWQoe1xuICAgICAgZXZlbnRUcmlnZ2VyOiB0aGlzLmV2ZW50VHJpZ2dlcixcbiAgICAgIGV2ZW50Q2FuQmVDb21wbGV0ZWQsXG4gICAgICBjYXNlRGV0YWlsczogdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscyxcbiAgICAgIGZvcm06IHRoaXMuZWRpdEZvcm0sXG4gICAgICBzdWJtaXQ6IHRoaXMuY2FzZUVkaXQuc3VibWl0LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaGFzRXJyb3JzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VFZGl0Py5lcnJvcj8uY2FsbGJhY2tFcnJvcnM/Lmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvUGFnZShwYWdlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY2FzZUVkaXQubmF2aWdhdGVUb1BhZ2UocGFnZUlkKTtcbiAgfVxuXG4gIHB1YmxpYyBjYWxsYmFja0Vycm9yc05vdGlmeShlcnJvckNvbnRleHQ6IENhbGxiYWNrRXJyb3JzQ29udGV4dCk6IHZvaWQge1xuICAgIHRoaXMuY2FzZUVkaXQuaWdub3JlV2FybmluZyA9IGVycm9yQ29udGV4dC5pZ25vcmVXYXJuaW5nO1xuICAgIHRoaXMudHJpZ2dlclRleHQgPSBlcnJvckNvbnRleHQudHJpZ2dlclRleHQ7XG4gIH1cblxuICBwdWJsaWMgc3VtbWFyeUNhc2VGaWVsZChmaWVsZDogQ2FzZUZpZWxkKTogQ2FzZUZpZWxkIHtcbiAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAobnVsbCA9PT0gdGhpcy5lZGl0Rm9ybS5nZXQoJ2RhdGEnKS5nZXQoZmllbGQuaWQpKSB7XG4gICAgICAvLyBJZiBub3QgaW4gZm9ybSwgcmV0dXJuIGZpZWxkIGl0c2VsZlxuICAgICAgcmV0dXJuIGZpZWxkO1xuICAgIH1cblxuICAgIGNvbnN0IGNsb25lRmllbGQ6IENhc2VGaWVsZCA9IHRoaXMuZmllbGRzVXRpbHMuY2xvbmVDYXNlRmllbGQoZmllbGQpO1xuICAgIGNsb25lRmllbGQudmFsdWUgPSB0aGlzLmVkaXRGb3JtLmdldCgnZGF0YScpLmdldChmaWVsZC5pZCkudmFsdWU7XG5cbiAgICByZXR1cm4gY2xvbmVGaWVsZDtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXZlbnRUcmlnZ2VyLmNhbl9zYXZlX2RyYWZ0KSB7XG4gICAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldChDYXNlRWRpdENvbXBvbmVudC5PUklHSU5fUVVFUllfUEFSQU0pID09PSAndmlld0RyYWZ0Jykge1xuICAgICAgICB0aGlzLmNhc2VFZGl0LmNhbmNlbGxlZC5lbWl0KHtzdGF0dXM6IENhc2VFZGl0UGFnZUNvbXBvbmVudC5SRVNVTUVEX0ZPUk1fRElTQ0FSRH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYXNlRWRpdC5jYW5jZWxsZWQuZW1pdCh7c3RhdHVzOiBDYXNlRWRpdFBhZ2VDb21wb25lbnQuTkVXX0ZPUk1fRElTQ0FSRH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhc2VFZGl0LmNhbmNlbGxlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzTGFiZWwoZmllbGQ6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VGaWVsZFNlcnZpY2UuaXNMYWJlbChmaWVsZCk7XG4gIH1cblxuICBwdWJsaWMgaXNDaGFuZ2VBbGxvd2VkKGZpZWxkOiBDYXNlRmllbGQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuY2FzZUZpZWxkU2VydmljZS5pc1JlYWRPbmx5KGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja1lvdXJBbnN3ZXJGaWVsZHNUb0Rpc3BsYXlFeGlzdHMoKTogYm9vbGVhbiB7XG4gICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfc3VtbWFyeSB8fCB0aGlzLmV2ZW50VHJpZ2dlci5zaG93X3N1bW1hcnkgPT09IG51bGwpIHtcbiAgICAgIGZvciAoY29uc3QgcGFnZSBvZiB0aGlzLndpemFyZC5wYWdlcykge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgIGlmIChwYWdlLmNhc2VfZmllbGRzICYmIHRoaXMuaXNTaG93bihwYWdlKSkge1xuICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBwYWdlLmNhc2VfZmllbGRzKSB7XG4gICAgICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICAgICBpZiAodGhpcy5jYW5TaG93RmllbGRJbkNZQShmaWVsZCkpIHtcbiAgICAgICAgICAgICAvLyBhdCBsZWFzdCBvbmUgZmllbGQgbmVlZHMgc2hvd2luZ1xuICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgICAgfVxuICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGZvdW5kIG5vIGZpZWxkcyB0byBzaG93IGluIENZQSBzdW1tYXJ5IHBhZ2VcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVhZE9ubHlTdW1tYXJ5RmllbGRzVG9EaXNwbGF5RXhpc3RzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcy5zb21lKGZpZWxkID0+IGZpZWxkLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbiA+PSAwICk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0V2ZW50Tm90ZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5ldmVudFRyaWdnZXIuc2hvd19ldmVudF9ub3RlcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGFzdFBhZ2VTaG93bigpOiBXaXphcmRQYWdlIHtcbiAgICBsZXQgbGFzdFBhZ2U6IFdpemFyZFBhZ2U7XG4gICAgdGhpcy53aXphcmQucmV2ZXJzZSgpLmZvckVhY2gocGFnZSA9PiB7XG4gICAgICBpZiAoIWxhc3RQYWdlICYmIHRoaXMuaXNTaG93bihwYWdlKSkge1xuICAgICAgICBsYXN0UGFnZSA9IHBhZ2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8gbm9pbnNwZWN0aW9uIEpTVW51c2VkQXNzaWdubWVudFxuICAgIHJldHVybiBsYXN0UGFnZTtcbiAgfVxuXG4gIHB1YmxpYyBwcmV2aW91cygpOiB2b2lkIHtcbiAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5oYXNQcmV2aW91cygpKSB7XG4gICAgICB0aGlzLm5hdmlnYXRlVG9QYWdlKHRoaXMuZ2V0TGFzdFBhZ2VTaG93bigpLmlkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFzUHJldmlvdXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5nZXRMYXN0UGFnZVNob3duKCk7XG4gIH1cblxuICBwdWJsaWMgaXNTaG93bihwYWdlOiBXaXphcmRQYWdlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmllbGRzID0gdGhpcy5maWVsZHNVdGlsc1xuICAgICAgLm1lcmdlQ2FzZUZpZWxkc0FuZEZvcm1GaWVsZHModGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMsIHRoaXMuZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXS52YWx1ZSk7XG4gICAgcmV0dXJuIHBhZ2UucGFyc2VkU2hvd0NvbmRpdGlvbi5tYXRjaChmaWVsZHMpO1xuICB9XG5cbiAgcHVibGljIGNhblNob3dGaWVsZEluQ1lBKGZpZWxkOiBDYXNlRmllbGQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmllbGQuc2hvd19zdW1tYXJ5X2NoYW5nZV9vcHRpb247XG4gIH1cblxuICBwdWJsaWMgaXNTb2xpY2l0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZS5pc1NvbGljaXRvcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBzb3J0RmllbGRzQnlTaG93U3VtbWFyeUNvbnRlbnQoZmllbGRzOiBDYXNlRmllbGRbXSk6IENhc2VGaWVsZFtdIHtcbiAgICByZXR1cm4gdGhpcy5vcmRlclNlcnZpY2VcbiAgICAgIC5zb3J0KGZpZWxkcywgQ2FzZUVkaXRTdWJtaXRDb21wb25lbnQuU0hPV19TVU1NQVJZX0NPTlRFTlRfQ09NUEFSRV9GVU5DVElPTilcbiAgICAgIC5maWx0ZXIoY2YgPT4gY2Yuc2hvd19zdW1tYXJ5X2NvbnRlbnRfb3B0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FzZUZpZWxkcygpOiBDYXNlRmllbGRbXSB7XG4gICAgaWYgKHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMpIHtcbiAgICAgIHJldHVybiBGaWVsZHNVdGlscy5nZXRDYXNlRmllbGRzKHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcztcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRWRpdC5nZXRDYXNlSWQodGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZVRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzICYmIHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMuc3RhdGUgJiZcbiAgICB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLnN0YXRlLnRpdGxlX2Rpc3BsYXkgPyB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLnN0YXRlLnRpdGxlX2Rpc3BsYXkgOiAnJyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FuY2VsVGV4dCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmV2ZW50VHJpZ2dlci5jYW5fc2F2ZV9kcmFmdCkge1xuICAgICAgcmV0dXJuICdSZXR1cm4gdG8gY2FzZSBsaXN0JztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdDYW5jZWwnO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIiFjYXNlRWRpdC5pc0V2ZW50Q29tcGxldGlvbkNoZWNrc1JlcXVpcmVkXCI+XG4gIDwhLS0gRXZlbnQgdHJpZ2dlciBuYW1lIC0tPlxuICA8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWxcIj57eyBldmVudFRyaWdnZXIubmFtZX19PC9oMT5cblxuICA8IS0tQ2FzZSBJRCBvciBUaXRsZSAtLT5cbiAgPGRpdiAqbmdJZj1cImdldENhc2VUaXRsZSgpOyB0aGVuIHRpdGxlQmxvY2s7IGVsc2UgaWRCbG9ja1wiPjwvZGl2PlxuICA8bmctdGVtcGxhdGUgI3RpdGxlQmxvY2s+XG4gICAgPGNjZC1tYXJrZG93biBbY29udGVudF09XCJnZXRDYXNlVGl0bGUoKSB8IGNjZENhc2VUaXRsZTogY29udGV4dEZpZWxkcyA6IGVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIj48L2NjZC1tYXJrZG93bj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNpZEJsb2NrPlxuICAgIDxoMiAqbmdJZj1cImdldENhc2VJZCgpXCIgY2xhc3M9XCJoZWFkaW5nLWgyXCI+I3t7IGdldENhc2VJZCgpIHwgY2NkQ2FzZVJlZmVyZW5jZSB9fTwvaDI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPGNjZC1jYXNlLWVkaXQtZ2VuZXJpYy1lcnJvcnMgW2Vycm9yXT1cImNhc2VFZGl0LmVycm9yXCI+PC9jY2QtY2FzZS1lZGl0LWdlbmVyaWMtZXJyb3JzPlxuXG4gIDxjY2QtY2FsbGJhY2stZXJyb3JzIFtjYWxsYmFja0Vycm9yc1N1YmplY3RdPVwiY2FzZUVkaXQuY2FsbGJhY2tFcnJvcnNTdWJqZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAoY2FsbGJhY2tFcnJvcnNDb250ZXh0KT1cImNhbGxiYWNrRXJyb3JzTm90aWZ5KCRldmVudClcIj48L2NjZC1jYWxsYmFjay1lcnJvcnM+XG5cbiAgPGZvcm0gY2xhc3M9XCJjaGVjay15b3VyLWFuc3dlcnNcIiBbZm9ybUdyb3VwXT1cImVkaXRGb3JtXCIgKHN1Ym1pdCk9XCJzdWJtaXQoKVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGVja1lvdXJBbnN3ZXJGaWVsZHNUb0Rpc3BsYXlFeGlzdHMoKVwiPlxuXG4gICAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLWgyXCI+e3twYWdlVGl0bGUgfCBycHhUcmFuc2xhdGUgfX08L2gyPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCIgKm5nSWY9XCIhY2FzZUVkaXQuaXNDYXNlRmxhZ1N1Ym1pc3Npb25cIj57eydDaGVjayB0aGUgaW5mb3JtYXRpb24gYmVsb3cgY2FyZWZ1bGx5LicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cblxuICAgICAgPHRhYmxlIGNsYXNzPVwiZm9ybS10YWJsZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJjaGVjayB5b3VyIGFuc3dlcnMgdGFibGVcIj5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwYWdlIG9mIHdpemFyZC5wYWdlc1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Nob3duKHBhZ2UpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBwYWdlXG4gICAgICAgICAgICB8IGNjZFBhZ2VGaWVsZHM6IGVkaXRGb3JtXG4gICAgICAgICAgICB8IGNjZFJlYWRGaWVsZHNGaWx0ZXI6IGZhbHNlIDp1bmRlZmluZWQgOnRydWUgOiBlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddXG4gICAgICAgICAgICB8IGNjZENZQVBhZ2VMYWJlbEZpbHRlclwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FuU2hvd0ZpZWxkSW5DWUEoZmllbGQpXCI+XG4gICAgICAgICAgICAgICAgPHRyIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJmaWVsZFwiIFtoaWRkZW5dPVwiZmllbGQuaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddXCIgW2NvbnRleHRGaWVsZHNdPVwiY29udGV4dEZpZWxkc1wiPlxuICAgICAgICAgICAgICAgICAgPHRoICpuZ0lmPVwiIWlzTGFiZWwoZmllbGQpICYmICFjYXNlRWRpdC5pc0Nhc2VGbGFnU3VibWlzc2lvblwiIGNsYXNzPVwidmFsaWduLXRvcCBjYXNlLWZpZWxkLWxhYmVsXCI+PHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCI+e3tmaWVsZC5sYWJlbH19PC9zcGFuPjwvdGg+XG4gICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJmb3JtLWNlbGwgY2FzZS1maWVsZC1jb250ZW50XCIgW2F0dHIuY29sc3Bhbl09XCJpc0xhYmVsKGZpZWxkKSA/ICcyJyA6ICcxJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWRcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIiBbdG9wTGV2ZWxGb3JtR3JvdXBdPVwiZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZF09XCJzdW1tYXJ5Q2FzZUZpZWxkKGZpZWxkKVwiIFtjb250ZXh0XT1cInBhbGV0dGVDb250ZXh0XCIgW2Nhc2VGaWVsZHNdPVwiY29udGV4dEZpZWxkc1wiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidmFsaWduLXRvcCBjaGVjay15b3VyLWFuc3dlcnNfX2NoYW5nZSBjYXNlLWZpZWxkLWNoYW5nZVwiPlxuICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cImlzQ2hhbmdlQWxsb3dlZChmaWVsZClcIiAoY2xpY2spPVwibmF2aWdhdGVUb1BhZ2UocGFnZS5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj48c3BhbiBjbGFzcz1cInRleHQtMTZcIiBhdHRyLmFyaWEtbGFiZWw9XCJDaGFuZ2Uge3sgZmllbGQubGFiZWwgfX1cIj5DaGFuZ2U8L3NwYW4+PC9hPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlYWRPbmx5U3VtbWFyeUZpZWxkc1RvRGlzcGxheUV4aXN0cygpXCI+XG5cbiAgICAgIDx0YWJsZSBjbGFzcz1cInN1bW1hcnktZmllbGRzXCIgYXJpYS1kZXNjcmliZWRieT1cInN1bW1hcnkgZmllbGRzIHRhYmxlXCI+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBzaG93U3VtbWFyeUZpZWxkc1wiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCIhKGZpZWxkIHwgY2NkSXNDb21wb3VuZClcIj5cbiAgICAgICAgICAgICAgICA8dHIgKm5nU3dpdGNoQ2FzZT1cInRydWVcIiBjY2RMYWJlbFN1YnN0aXR1dG9yIFtjYXNlRmllbGRdPVwiZmllbGRcIiBbZm9ybUdyb3VwXT1cImVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIiBbY29udGV4dEZpZWxkc109XCJjb250ZXh0RmllbGRzXCI+XG4gICAgICAgICAgICAgICAgICA8dGggaWQ9XCJzdW1tYXJ5LWZpZWxkLWxhYmVsXCI+e3tmaWVsZC5sYWJlbH19PC90aD5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImZvcm0tY2VsbFwiPlxuICAgICAgICAgICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgW2Zvcm1Hcm91cF09XCJlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddXCIgW2Nhc2VGaWVsZF09XCJzdW1tYXJ5Q2FzZUZpZWxkKGZpZWxkKVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPHRyICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiIGNsYXNzPVwiY29tcG91bmQtZmllbGRcIiBjY2RMYWJlbFN1YnN0aXR1dG9yIFtjYXNlRmllbGRdPVwiZmllbGRcIiBbZm9ybUdyb3VwXT1cImVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIiBbY29udGV4dEZpZWxkc109XCJjb250ZXh0RmllbGRzXCI+XG4gICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiIFtjYXNlRmllbGRdPVwic3VtbWFyeUNhc2VGaWVsZChmaWVsZClcIiBbY2FzZUZpZWxkc109XCJjb250ZXh0RmllbGRzXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dFdmVudE5vdGVzKClcIj5cbiAgICAgIDxmaWVsZHNldCBpZD1cImZpZWxkc2V0LWV2ZW50XCIgZm9ybUdyb3VwTmFtZT1cImV2ZW50XCIgKm5nSWY9XCJwcm9maWxlICYmICFpc1NvbGljaXRvcigpXCI+XG4gICAgICAgIDxsZWdlbmQgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiPjwvbGVnZW5kPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWVsZC10cmlnZ2VyLXN1bW1hcnlcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5cbiAgICAgICAgICAgIEV2ZW50IHN1bW1hcnkgKG9wdGlvbmFsKVxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWhpbnRcIj5BIGZldyB3b3JkcyBkZXNjcmliaW5nIHRoZSBwdXJwb3NlIG9mIHRoZSBldmVudC48L3NwYW4+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBpZD1cImZpZWxkLXRyaWdnZXItc3VtbWFyeVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGJvdHRvbS0zMCB3aWR0aC01MFwiIGZvcm1Db250cm9sTmFtZT1cInN1bW1hcnlcIiBtYXhsZW5ndGg9XCIxMDI0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJmaWVsZC10cmlnZ2VyLWRlc2NyaXB0aW9uXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RXZlbnQgZGVzY3JpcHRpb24gKG9wdGlvbmFsKTwvbGFiZWw+XG4gICAgICAgICAgPHRleHRhcmVhIGlkPVwiZmllbGQtdHJpZ2dlci1kZXNjcmlwdGlvblwiIGNsYXNzPVwiZm9ybS1jb250cm9sIGJvdHRvbS0zMCB3aWR0aC01MFwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNjU1MzZcIj48L3RleHRhcmVhPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgZm9ybS1ncm91cC1yZWxhdGVkXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cIiFoYXNQcmV2aW91cygpIHx8IGNhc2VFZGl0LmlzU3VibWl0dGluZ1wiIChjbGljayk9XCJwcmV2aW91cygpXCI+UHJldmlvdXM8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgY2xhc3M9XCJidXR0b25cIj57e3RyaWdnZXJUZXh0fX08L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8cCBjbGFzcz1cImNhbmNlbFwiPjxhIChjbGljayk9XCJjYW5jZWwoKVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBbY2xhc3MuZGlzYWJsZWRdPVwiY2FzZUVkaXQuaXNTdWJtaXR0aW5nXCI+e3tnZXRDYW5jZWxUZXh0KCl9fTwvYT48L3A+XG4gIDwvZm9ybT5cbjwvZGl2PlxuPGNjZC1jYXNlLWV2ZW50LWNvbXBsZXRpb24gKm5nSWY9XCJjYXNlRWRpdC5pc0V2ZW50Q29tcGxldGlvbkNoZWNrc1JlcXVpcmVkXCJcbiAgW2V2ZW50Q29tcGxldGlvblBhcmFtc109XCJjYXNlRWRpdC5ldmVudENvbXBsZXRpb25QYXJhbXNcIlxuICAoZXZlbnRDYW5CZUNvbXBsZXRlZCk9XCJvbkV2ZW50Q2FuQmVDb21wbGV0ZWQoJGV2ZW50KVwiPlxuPC9jY2QtY2FzZS1ldmVudC1jb21wbGV0aW9uPlxuIl19
567
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LXN1Ym1pdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvY2FzZS1lZGl0b3IvY2FzZS1lZGl0LXN1Ym1pdC9jYXNlLWVkaXQtc3VibWl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtc3VibWl0L2Nhc2UtZWRpdC1zdWJtaXQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJakQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsWUFBWSxFQUNaLGVBQWUsR0FDaEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsdUJBQXVCLEVBQXlCLE1BQU0sYUFBYSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7OztJQ1pwRSxzQkFBaUU7OztJQUUvRCxtQ0FBa0g7Ozs7SUFBcEcsNkhBQW9GOzs7SUFHbEcsOEJBQTJDO0lBQUEsWUFBcUM7O0lBQUEsaUJBQUs7OztJQUExQyxlQUFxQztJQUFyQyx5RUFBcUM7OztJQUFoRiwyRkFBcUY7OztJQUFoRix5Q0FBaUI7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QUMsQ0FBQywyQkFBMkIsQ0FBQztJQUN4RixNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsMkJBQTJCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQywyQkFBMkIsQ0FBQztJQUV4RixJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ2YsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDNUI7SUFFRCxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ2YsT0FBTyxDQUFDLENBQUMsQ0FBQztLQUNYO0lBQ0QsT0FBTyxDQUFDLENBQUMsMkJBQTJCLEdBQUcsQ0FBQyxDQUFDLDJCQUEyQixDQUFDO0FBQ3ZFLENBQUMsQ0FBQTs4RkF6QlUsdUJBQXVCOzREQUF2Qix1QkFBdUI7UUN6QnBDLDBFQThHTTtRQUNOLG9IQUc0Qjs7UUFsSHRCLG9FQUErQztRQStHekIsZUFBOEM7UUFBOUMsbUVBQThDOzt1RkR0RjdELHVCQUF1QjtjQUxuQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsV0FBVyxFQUFFLHVCQUF1QjtnQkFDcEMsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhc2VFdmVudFRyaWdnZXIsIENhc2VGaWVsZCwgUHJvZmlsZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBUYXNrIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3dvcmstYWxsb2NhdGlvbi9UYXNrJztcbmltcG9ydCB7XG4gIENhc2VGaWVsZFNlcnZpY2UsXG4gIEZpZWxkc1V0aWxzLFxuICBPcmRlclNlcnZpY2UsXG4gIFByb2ZpbGVOb3RpZmllcixcbn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ2FsbGJhY2tFcnJvcnNDb21wb25lbnQsIENhbGxiYWNrRXJyb3JzQ29udGV4dCB9IGZyb20gJy4uLy4uL2Vycm9yJztcbmltcG9ydCB7IFBhbGV0dGVDb250ZXh0IH0gZnJvbSAnLi4vLi4vcGFsZXR0ZSc7XG5pbXBvcnQgeyBDYXNlRWRpdFBhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9jYXNlLWVkaXQtcGFnZS9jYXNlLWVkaXQtcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FzZUVkaXRDb21wb25lbnQgfSBmcm9tICcuLi9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaXphcmQsIFdpemFyZFBhZ2UgfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUVkaXRTdWJtaXRUaXRsZXMgfSBmcm9tICcuL2Nhc2UtZWRpdC1zdWJtaXQtdGl0bGVzLmVudW0nO1xuXG4vLyBAZHluYW1pY1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZWRpdC1zdWJtaXQnLFxuICB0ZW1wbGF0ZVVybDogJ2Nhc2UtZWRpdC1zdWJtaXQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi9jYXNlLWVkaXQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhc2VFZGl0U3VibWl0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgZXZlbnRUcmlnZ2VyOiBDYXNlRXZlbnRUcmlnZ2VyO1xuICBwdWJsaWMgZWRpdEZvcm06IEZvcm1Hcm91cDtcbiAgcHVibGljIHRyaWdnZXJUZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyB3aXphcmQ6IFdpemFyZDtcbiAgcHVibGljIHByb2ZpbGU6IFByb2ZpbGU7XG4gIHB1YmxpYyBzaG93U3VtbWFyeUZpZWxkczogQ2FzZUZpZWxkW107XG4gIHB1YmxpYyBwYWxldHRlQ29udGV4dDogUGFsZXR0ZUNvbnRleHQgPSBQYWxldHRlQ29udGV4dC5DSEVDS19ZT1VSX0FOU1dFUjtcbiAgcHVibGljIHByb2ZpbGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGNvbnRleHRGaWVsZHM6IENhc2VGaWVsZFtdO1xuICBwdWJsaWMgdGFzazogVGFzaztcbiAgcHVibGljIHBhZ2VUaXRsZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0hPV19TVU1NQVJZX0NPTlRFTlRfQ09NUEFSRV9GVU5DVElPTiA9IChhOiBDYXNlRmllbGQsIGI6IENhc2VGaWVsZCk6IG51bWJlciA9PiB7XG4gICAgY29uc3QgYUNhc2VGaWVsZCA9IGEuc2hvd19zdW1tYXJ5X2NvbnRlbnRfb3B0aW9uID09PSAwIHx8IGEuc2hvd19zdW1tYXJ5X2NvbnRlbnRfb3B0aW9uO1xuICAgIGNvbnN0IGJDYXNlRmllbGQgPSBiLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbiA9PT0gMCB8fCBiLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbjtcblxuICAgIGlmICghYUNhc2VGaWVsZCkge1xuICAgICAgcmV0dXJuICFiQ2FzZUZpZWxkID8gMCA6IDE7XG4gICAgfVxuXG4gICAgaWYgKCFiQ2FzZUZpZWxkKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuICAgIHJldHVybiBhLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbiAtIGIuc2hvd19zdW1tYXJ5X2NvbnRlbnRfb3B0aW9uO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIC8vIEVVSS0zNDUyLlxuICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBlZGl0Rm9ybSBhcyBpdCBpcyByZWFkb25seS5cbiAgICAvLyBUaGlzIHdhcyBjYXVzaW5nIGlzc3VlcyB3aXRoIGhpZGRlbiBmaWVsZHMgdGhhdCBhcmVuJ3Qgd2FudGVkIGJ1dCBoYXZlXG4gICAgLy8gbm90IGJlZW4gZGlzYWJsZWQuXG4gICAgcmV0dXJuIHRoaXMuY2FzZUVkaXQuaXNTdWJtaXR0aW5nIHx8IHRoaXMuaGFzRXJyb3JzO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGNhc2VFZGl0OiBDYXNlRWRpdENvbXBvbmVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc1V0aWxzOiBGaWVsZHNVdGlscyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VGaWVsZFNlcnZpY2U6IENhc2VGaWVsZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBvcmRlclNlcnZpY2U6IE9yZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb2ZpbGVOb3RpZmllcjogUHJvZmlsZU5vdGlmaWVyLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnByb2ZpbGVTdWJzY3JpcHRpb24gPSB0aGlzLnByb2ZpbGVOb3RpZmllci5wcm9maWxlLnN1YnNjcmliZShfID0+IHRoaXMucHJvZmlsZSA9IF8pO1xuICAgIHRoaXMuZXZlbnRUcmlnZ2VyID0gdGhpcy5jYXNlRWRpdC5ldmVudFRyaWdnZXI7XG4gICAgdGhpcy50cmlnZ2VyVGV4dCA9IHRoaXMuZXZlbnRUcmlnZ2VyLmVuZF9idXR0b25fbGFiZWwgfHwgQ2FsbGJhY2tFcnJvcnNDb21wb25lbnQuVFJJR0dFUl9URVhUX1NVQk1JVDtcbiAgICB0aGlzLmVkaXRGb3JtID0gdGhpcy5jYXNlRWRpdC5mb3JtO1xuICAgIHRoaXMud2l6YXJkID0gdGhpcy5jYXNlRWRpdC53aXphcmQ7XG4gICAgdGhpcy5zaG93U3VtbWFyeUZpZWxkcyA9IHRoaXMuc29ydEZpZWxkc0J5U2hvd1N1bW1hcnlDb250ZW50KHRoaXMuZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgICB0aGlzLmNhc2VFZGl0LmlzU3VibWl0dGluZyA9IGZhbHNlO1xuICAgIHRoaXMuY29udGV4dEZpZWxkcyA9IHRoaXMuZ2V0Q2FzZUZpZWxkcygpO1xuICAgIC8vIEluZGljYXRlcyBpZiB0aGUgc3VibWlzc2lvbiBpcyBmb3IgYSBDYXNlIEZsYWcsIGFzIG9wcG9zZWQgdG8gYSBcInJlZ3VsYXJcIiBmb3JtIHN1Ym1pc3Npb24sIGJ5IHRoZSBwcmVzZW5jZSBvZlxuICAgIC8vIGEgRmxhZ0xhdW5jaGVyIGZpZWxkIGluIHRoZSBldmVudCB0cmlnZ2VyXG4gICAgdGhpcy5jYXNlRWRpdC5pc0Nhc2VGbGFnU3VibWlzc2lvbiA9XG4gICAgICB0aGlzLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcy5zb21lKGNhc2VGaWVsZCA9PiBGaWVsZHNVdGlscy5pc0Nhc2VGaWVsZE9mVHlwZShjYXNlRmllbGQsIFsnRmxhZ0xhdW5jaGVyJ10pKTtcbiAgICB0aGlzLmNhc2VFZGl0LmlzTGlua2VkQ2FzZXNTdWJtaXNzaW9uID1cbiAgICAgIHRoaXMuZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLnNvbWUoY2FzZUZpZWxkID0+IEZpZWxkc1V0aWxzLmlzQ2FzZUZpZWxkT2ZUeXBlKGNhc2VGaWVsZCwgWydDb21wb25lbnRMYXVuY2hlciddKSk7XG4gICAgdGhpcy5wYWdlVGl0bGUgPSB0aGlzLmdldFBhZ2VUaXRsZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnByb2ZpbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlRWRpdC5zdWJtaXRGb3JtKHtcbiAgICAgIGV2ZW50VHJpZ2dlcjogdGhpcy5ldmVudFRyaWdnZXIsXG4gICAgICBmb3JtOiB0aGlzLmVkaXRGb3JtLFxuICAgICAgc3VibWl0OiB0aGlzLmNhc2VFZGl0LnN1Ym1pdCxcbiAgICAgIGNhc2VEZXRhaWxzOiB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uRXZlbnRDYW5CZUNvbXBsZXRlZChldmVudENhbkJlQ29tcGxldGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlRWRpdC5vbkV2ZW50Q2FuQmVDb21wbGV0ZWQoe1xuICAgICAgZXZlbnRUcmlnZ2VyOiB0aGlzLmV2ZW50VHJpZ2dlcixcbiAgICAgIGV2ZW50Q2FuQmVDb21wbGV0ZWQsXG4gICAgICBjYXNlRGV0YWlsczogdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscyxcbiAgICAgIGZvcm06IHRoaXMuZWRpdEZvcm0sXG4gICAgICBzdWJtaXQ6IHRoaXMuY2FzZUVkaXQuc3VibWl0LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYWdlVGl0bGUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjYXNlRmxhZ0ZpZWxkID0gdGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMuZmluZChjYXNlRmllbGQgPT4gRmllbGRzVXRpbHMuaXNDYXNlRmllbGRPZlR5cGUoY2FzZUZpZWxkLCBbJ0ZsYWdMYXVuY2hlciddKSk7XG4gICAgaWYgKGNhc2VGbGFnRmllbGQpIHtcbiAgICAgIGNvbnN0IGlzQ2FzZUZsYWdFeHRlcm5hbE1vZGUgPSBjYXNlRmxhZ0ZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09ICcjQVJHVU1FTlQoVVBEQVRFLEVYVEVSTkFMKScgfHxcbiAgICAgICAgY2FzZUZsYWdGaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyID09PSAnI0FSR1VNRU5UKENSRUFURSxFWFRFUk5BTCknO1xuICAgICAgcmV0dXJuIGlzQ2FzZUZsYWdFeHRlcm5hbE1vZGVcbiAgICAgICAgPyBDYXNlRWRpdFN1Ym1pdFRpdGxlcy5SRVZJRVdfU1VQUE9SVF9SRVFVRVNUXG4gICAgICAgIDogQ2FzZUVkaXRTdWJtaXRUaXRsZXMuUkVWSUVXX0ZMQUdfREVUQUlMUztcbiAgICB9XG4gICAgcmV0dXJuIENhc2VFZGl0U3VibWl0VGl0bGVzLkNIRUNLX1lPVVJfQU5TV0VSUztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRWRpdD8uZXJyb3I/LmNhbGxiYWNrRXJyb3JzPy5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1BhZ2UocGFnZUlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0Lm5hdmlnYXRlVG9QYWdlKHBhZ2VJZCk7XG4gIH1cblxuICBwdWJsaWMgY2FsbGJhY2tFcnJvcnNOb3RpZnkoZXJyb3JDb250ZXh0OiBDYWxsYmFja0Vycm9yc0NvbnRleHQpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0Lmlnbm9yZVdhcm5pbmcgPSBlcnJvckNvbnRleHQuaWdub3JlV2FybmluZztcbiAgICB0aGlzLnRyaWdnZXJUZXh0ID0gZXJyb3JDb250ZXh0LnRyaWdnZXJUZXh0O1xuICB9XG5cbiAgcHVibGljIHN1bW1hcnlDYXNlRmllbGQoZmllbGQ6IENhc2VGaWVsZCk6IENhc2VGaWVsZCB7XG4gICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKG51bGwgPT09IHRoaXMuZWRpdEZvcm0uZ2V0KCdkYXRhJykuZ2V0KGZpZWxkLmlkKSkge1xuICAgICAgLy8gSWYgbm90IGluIGZvcm0sIHJldHVybiBmaWVsZCBpdHNlbGZcbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9XG5cbiAgICBjb25zdCBjbG9uZUZpZWxkOiBDYXNlRmllbGQgPSB0aGlzLmZpZWxkc1V0aWxzLmNsb25lQ2FzZUZpZWxkKGZpZWxkKTtcbiAgICBjbG9uZUZpZWxkLnZhbHVlID0gdGhpcy5lZGl0Rm9ybS5nZXQoJ2RhdGEnKS5nZXQoZmllbGQuaWQpLnZhbHVlO1xuXG4gICAgcmV0dXJuIGNsb25lRmllbGQ7XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmV2ZW50VHJpZ2dlci5jYW5fc2F2ZV9kcmFmdCkge1xuICAgICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoQ2FzZUVkaXRDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNKSA9PT0gJ3ZpZXdEcmFmdCcpIHtcbiAgICAgICAgdGhpcy5jYXNlRWRpdC5jYW5jZWxsZWQuZW1pdCh7c3RhdHVzOiBDYXNlRWRpdFBhZ2VDb21wb25lbnQuUkVTVU1FRF9GT1JNX0RJU0NBUkR9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2FzZUVkaXQuY2FuY2VsbGVkLmVtaXQoe3N0YXR1czogQ2FzZUVkaXRQYWdlQ29tcG9uZW50Lk5FV19GT1JNX0RJU0NBUkR9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYXNlRWRpdC5jYW5jZWxsZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0xhYmVsKGZpZWxkOiBDYXNlRmllbGQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGRTZXJ2aWNlLmlzTGFiZWwoZmllbGQpO1xuICB9XG5cbiAgcHVibGljIGlzQ2hhbmdlQWxsb3dlZChmaWVsZDogQ2FzZUZpZWxkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmNhc2VGaWVsZFNlcnZpY2UuaXNSZWFkT25seShmaWVsZCk7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tZb3VyQW5zd2VyRmllbGRzVG9EaXNwbGF5RXhpc3RzKCk6IGJvb2xlYW4ge1xuICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmV2ZW50VHJpZ2dlci5zaG93X3N1bW1hcnkgfHwgdGhpcy5ldmVudFRyaWdnZXIuc2hvd19zdW1tYXJ5ID09PSBudWxsKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhZ2Ugb2YgdGhpcy53aXphcmQucGFnZXMpIHtcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICBpZiAocGFnZS5jYXNlX2ZpZWxkcyAmJiB0aGlzLmlzU2hvd24ocGFnZSkpIHtcbiAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgcGFnZS5jYXNlX2ZpZWxkcykge1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgICAgaWYgKHRoaXMuY2FuU2hvd0ZpZWxkSW5DWUEoZmllbGQpKSB7XG4gICAgICAgICAgICAgLy8gYXQgbGVhc3Qgb25lIGZpZWxkIG5lZWRzIHNob3dpbmdcbiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgfVxuICAgICAgICAgfVxuICAgICAgIH1cbiAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBmb3VuZCBubyBmaWVsZHMgdG8gc2hvdyBpbiBDWUEgc3VtbWFyeSBwYWdlXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlYWRPbmx5U3VtbWFyeUZpZWxkc1RvRGlzcGxheUV4aXN0cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHMuc29tZShmaWVsZCA9PiBmaWVsZC5zaG93X3N1bW1hcnlfY29udGVudF9vcHRpb24gPj0gMCApO1xuICB9XG5cbiAgcHVibGljIHNob3dFdmVudE5vdGVzKCk6IGJvb2xlYW4ge1xuICAgIC8vIERpc3BsYXkgZXZlbnQgbm90ZXMgcmVsYXRlZCBjb250cm9scyBvbmx5IGlmIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0XG4gICAgLy8gMS4gc2hvd19ldmVudF9ub3RlcyBmbGFnIGlzIHNldCB0byB0cnVlXG4gICAgLy8gMi4gcHJvZmlsZSBpcyBub3QgYSBzb2xpY2l0b3JcbiAgICAvLyAzLiBpcyBub3QgYSBjYXNlIGZsYWdzIGpvdXJuZXksIGFzIGl0IHVzZXMgYSBjdXN0b20gY2hlY2sgeW91ciBhbnN3ZXJzIGNvbXBvbmVudFxuICAgIGlmICh0aGlzLmV2ZW50VHJpZ2dlci5zaG93X2V2ZW50X25vdGVzKSB7XG4gICAgICByZXR1cm4gIXRoaXMucHJvZmlsZT8uaXNTb2xpY2l0b3IoKVxuICAgICAgICAmJiAhdGhpcy5jYXNlRWRpdC5pc0Nhc2VGbGFnU3VibWlzc2lvbjtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMYXN0UGFnZVNob3duKCk6IFdpemFyZFBhZ2Uge1xuICAgIGxldCBsYXN0UGFnZTogV2l6YXJkUGFnZTtcbiAgICB0aGlzLndpemFyZC5yZXZlcnNlKCkuZm9yRWFjaChwYWdlID0+IHtcbiAgICAgIGlmICghbGFzdFBhZ2UgJiYgdGhpcy5pc1Nob3duKHBhZ2UpKSB7XG4gICAgICAgIGxhc3RQYWdlID0gcGFnZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBub2luc3BlY3Rpb24gSlNVbnVzZWRBc3NpZ25tZW50XG4gICAgcmV0dXJuIGxhc3RQYWdlO1xuICB9XG5cbiAgcHVibGljIHByZXZpb3VzKCk6IHZvaWQge1xuICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmhhc1ByZXZpb3VzKCkpIHtcbiAgICAgIHRoaXMubmF2aWdhdGVUb1BhZ2UodGhpcy5nZXRMYXN0UGFnZVNob3duKCkuaWQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYXNQcmV2aW91cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmdldExhc3RQYWdlU2hvd24oKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1Nob3duKHBhZ2U6IFdpemFyZFBhZ2UpOiBib29sZWFuIHtcbiAgICBjb25zdCBmaWVsZHMgPSB0aGlzLmZpZWxkc1V0aWxzXG4gICAgICAubWVyZ2VDYXNlRmllbGRzQW5kRm9ybUZpZWxkcyh0aGlzLmV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcywgdGhpcy5lZGl0Rm9ybS5jb250cm9sc1snZGF0YSddLnZhbHVlKTtcbiAgICByZXR1cm4gcGFnZS5wYXJzZWRTaG93Q29uZGl0aW9uLm1hdGNoKGZpZWxkcyk7XG4gIH1cblxuICBwdWJsaWMgY2FuU2hvd0ZpZWxkSW5DWUEoZmllbGQ6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmaWVsZC5zaG93X3N1bW1hcnlfY2hhbmdlX29wdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgc29ydEZpZWxkc0J5U2hvd1N1bW1hcnlDb250ZW50KGZpZWxkczogQ2FzZUZpZWxkW10pOiBDYXNlRmllbGRbXSB7XG4gICAgcmV0dXJuIHRoaXMub3JkZXJTZXJ2aWNlXG4gICAgICAuc29ydChmaWVsZHMsIENhc2VFZGl0U3VibWl0Q29tcG9uZW50LlNIT1dfU1VNTUFSWV9DT05URU5UX0NPTVBBUkVfRlVOQ1RJT04pXG4gICAgICAuZmlsdGVyKGNmID0+IGNmLnNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGdldENhc2VGaWVsZHMoKTogQ2FzZUZpZWxkW10ge1xuICAgIGlmICh0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzKSB7XG4gICAgICByZXR1cm4gRmllbGRzVXRpbHMuZ2V0Q2FzZUZpZWxkcyh0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUVkaXQuZ2V0Q2FzZUlkKHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMpO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscyAmJiB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLnN0YXRlICYmXG4gICAgdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscy5zdGF0ZS50aXRsZV9kaXNwbGF5ID8gdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscy5zdGF0ZS50aXRsZV9kaXNwbGF5IDogJycpO1xuICB9XG5cbiAgcHVibGljIGdldENhbmNlbFRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5ldmVudFRyaWdnZXIuY2FuX3NhdmVfZHJhZnQpIHtcbiAgICAgIHJldHVybiAnUmV0dXJuIHRvIGNhc2UgbGlzdCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnQ2FuY2VsJztcbiAgICB9XG4gIH1cbn1cblxuIiwiPGRpdiAqbmdJZj1cIiFjYXNlRWRpdC5pc0V2ZW50Q29tcGxldGlvbkNoZWNrc1JlcXVpcmVkXCI+XG4gIDwhLS0gRXZlbnQgdHJpZ2dlciBuYW1lIC0tPlxuICA8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWxcIj57e2V2ZW50VHJpZ2dlci5uYW1lIHwgcnB4VHJhbnNsYXRlfX08L2gxPlxuXG4gIDwhLS1DYXNlIElEIG9yIFRpdGxlIC0tPlxuICA8ZGl2ICpuZ0lmPVwiZ2V0Q2FzZVRpdGxlKCk7IHRoZW4gdGl0bGVCbG9jazsgZWxzZSBpZEJsb2NrXCI+PC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjdGl0bGVCbG9jaz5cbiAgICA8Y2NkLW1hcmtkb3duIFtjb250ZW50XT1cImdldENhc2VUaXRsZSgpIHwgY2NkQ2FzZVRpdGxlOiBjb250ZXh0RmllbGRzIDogZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiPjwvY2NkLW1hcmtkb3duPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgI2lkQmxvY2s+XG4gICAgPGgyICpuZ0lmPVwiZ2V0Q2FzZUlkKClcIiBjbGFzcz1cImhlYWRpbmctaDJcIj4je3sgZ2V0Q2FzZUlkKCkgfCBjY2RDYXNlUmVmZXJlbmNlIH19PC9oMj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8Y2NkLWNhc2UtZWRpdC1nZW5lcmljLWVycm9ycyBbZXJyb3JdPVwiY2FzZUVkaXQuZXJyb3JcIj48L2NjZC1jYXNlLWVkaXQtZ2VuZXJpYy1lcnJvcnM+XG5cbiAgPGNjZC1jYWxsYmFjay1lcnJvcnMgW2NhbGxiYWNrRXJyb3JzU3ViamVjdF09XCJjYXNlRWRpdC5jYWxsYmFja0Vycm9yc1N1YmplY3RcIlxuICAgICAgICAgICAgICAgICAgICAgIChjYWxsYmFja0Vycm9yc0NvbnRleHQpPVwiY2FsbGJhY2tFcnJvcnNOb3RpZnkoJGV2ZW50KVwiPjwvY2NkLWNhbGxiYWNrLWVycm9ycz5cblxuICA8Zm9ybSBjbGFzcz1cImNoZWNrLXlvdXItYW5zd2Vyc1wiIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm1cIiAoc3VibWl0KT1cInN1Ym1pdCgpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNoZWNrWW91ckFuc3dlckZpZWxkc1RvRGlzcGxheUV4aXN0cygpXCI+XG5cbiAgICAgIDxoMiBjbGFzcz1cImhlYWRpbmctaDJcIj57e3BhZ2VUaXRsZSB8IHJweFRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQtMTZcIiAqbmdJZj1cIiFjYXNlRWRpdC5pc0Nhc2VGbGFnU3VibWlzc2lvblwiPnt7J0NoZWNrIHRoZSBpbmZvcm1hdGlvbiBiZWxvdyBjYXJlZnVsbHkuJyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuXG4gICAgICA8dGFibGUgY2xhc3M9XCJmb3JtLXRhYmxlXCIgYXJpYS1kZXNjcmliZWRieT1cImNoZWNrIHlvdXIgYW5zd2VycyB0YWJsZVwiPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBhZ2Ugb2Ygd2l6YXJkLnBhZ2VzXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd24ocGFnZSlcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIHBhZ2VcbiAgICAgICAgICAgIHwgY2NkUGFnZUZpZWxkczogZWRpdEZvcm1cbiAgICAgICAgICAgIHwgY2NkUmVhZEZpZWxkc0ZpbHRlcjogZmFsc2UgOnVuZGVmaW5lZCA6dHJ1ZSA6IGVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cbiAgICAgICAgICAgIHwgY2NkQ1lBUGFnZUxhYmVsRmlsdGVyXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5TaG93RmllbGRJbkNZQShmaWVsZClcIj5cbiAgICAgICAgICAgICAgICA8dHIgY2NkTGFiZWxTdWJzdGl0dXRvciBbY2FzZUZpZWxkXT1cImZpZWxkXCIgW2hpZGRlbl09XCJmaWVsZC5oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIiBbY29udGV4dEZpZWxkc109XCJjb250ZXh0RmllbGRzXCI+XG4gICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCIhaXNMYWJlbChmaWVsZCkgJiYgIWNhc2VFZGl0LmlzQ2FzZUZsYWdTdWJtaXNzaW9uXCIgY2xhc3M9XCJ2YWxpZ24tdG9wIGNhc2UtZmllbGQtbGFiZWxcIj48c3BhbiBjbGFzcz1cInRleHQtMTZcIj57e2ZpZWxkLmxhYmVsfX08L3NwYW4+PC90aD5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImZvcm0tY2VsbCBjYXNlLWZpZWxkLWNvbnRlbnRcIiBbYXR0ci5jb2xzcGFuXT1cImlzTGFiZWwoZmllbGQpID8gJzInIDogJzEnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZFxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiIFt0b3BMZXZlbEZvcm1Hcm91cF09XCJlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cInN1bW1hcnlDYXNlRmllbGQoZmllbGQpXCIgW2NvbnRleHRdPVwicGFsZXR0ZUNvbnRleHRcIiBbY2FzZUZpZWxkc109XCJjb250ZXh0RmllbGRzXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNhc2VFZGl0LmlzQ2FzZUZsYWdTdWJtaXNzaW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInZhbGlnbi10b3AgY2hlY2steW91ci1hbnN3ZXJzX19jaGFuZ2UgY2FzZS1maWVsZC1jaGFuZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cImlzQ2hhbmdlQWxsb3dlZChmaWVsZClcIiAoY2xpY2spPVwibmF2aWdhdGVUb1BhZ2UocGFnZS5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCIgYXR0ci5hcmlhLWxhYmVsPVwie3snQ2hhbmdlJyB8IHJweFRyYW5zbGF0ZX19IHt7IGZpZWxkLmxhYmVsIHwgcnB4VHJhbnNsYXRlIH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0NoYW5nZScgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVhZE9ubHlTdW1tYXJ5RmllbGRzVG9EaXNwbGF5RXhpc3RzKClcIj5cblxuICAgICAgPHRhYmxlIGNsYXNzPVwic3VtbWFyeS1maWVsZHNcIiBhcmlhLWRlc2NyaWJlZGJ5PVwic3VtbWFyeSBmaWVsZHMgdGFibGVcIj5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIHNob3dTdW1tYXJ5RmllbGRzXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cIiEoZmllbGQgfCBjY2RJc0NvbXBvdW5kKVwiPlxuICAgICAgICAgICAgICAgIDx0ciAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJmaWVsZFwiIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiIFtjb250ZXh0RmllbGRzXT1cImNvbnRleHRGaWVsZHNcIj5cbiAgICAgICAgICAgICAgICAgIDx0aCBpZD1cInN1bW1hcnktZmllbGQtbGFiZWxcIj57e2ZpZWxkLmxhYmVsfX08L3RoPlxuICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZm9ybS1jZWxsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCBbZm9ybUdyb3VwXT1cImVkaXRGb3JtLmNvbnRyb2xzWydkYXRhJ11cIiBbY2FzZUZpZWxkXT1cInN1bW1hcnlDYXNlRmllbGQoZmllbGQpXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8dHIgKm5nU3dpdGNoQ2FzZT1cImZhbHNlXCIgY2xhc3M9XCJjb21wb3VuZC1maWVsZFwiIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJmaWVsZFwiIFtmb3JtR3JvdXBdPVwiZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiIFtjb250ZXh0RmllbGRzXT1cImNvbnRleHRGaWVsZHNcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMlwiPlxuICAgICAgICAgICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgW2Zvcm1Hcm91cF09XCJlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddXCIgW2Nhc2VGaWVsZF09XCJzdW1tYXJ5Q2FzZUZpZWxkKGZpZWxkKVwiIFtjYXNlRmllbGRzXT1cImNvbnRleHRGaWVsZHNcIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0V2ZW50Tm90ZXMoKVwiPlxuICAgICAgPGZpZWxkc2V0IGlkPVwiZmllbGRzZXQtZXZlbnRcIiBmb3JtR3JvdXBOYW1lPVwiZXZlbnRcIj5cbiAgICAgICAgPGxlZ2VuZCBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+PC9sZWdlbmQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImZpZWxkLXRyaWdnZXItc3VtbWFyeVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlxuICAgICAgICAgICAgRXZlbnQgc3VtbWFyeSAob3B0aW9uYWwpXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0taGludFwiPkEgZmV3IHdvcmRzIGRlc2NyaWJpbmcgdGhlIHB1cnBvc2Ugb2YgdGhlIGV2ZW50Ljwvc3Bhbj5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPVwiZmllbGQtdHJpZ2dlci1zdW1tYXJ5XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYm90dG9tLTMwIHdpZHRoLTUwXCIgZm9ybUNvbnRyb2xOYW1lPVwic3VtbWFyeVwiIG1heGxlbmd0aD1cIjEwMjRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gICAgICAgICAgPGxhYmVsIGZvcj1cImZpZWxkLXRyaWdnZXItZGVzY3JpcHRpb25cIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5FdmVudCBkZXNjcmlwdGlvbiAob3B0aW9uYWwpPC9sYWJlbD5cbiAgICAgICAgICA8dGV4dGFyZWEgaWQ9XCJmaWVsZC10cmlnZ2VyLWRlc2NyaXB0aW9uXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYm90dG9tLTMwIHdpZHRoLTUwXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCI2NTUzNlwiPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9maWVsZHNldD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBmb3JtLWdyb3VwLXJlbGF0ZWRcIj5cbiAgICAgIDxidXR0b24gKm5nSWY9XCIhY2FzZUVkaXQuaXNDYXNlRmxhZ1N1Ym1pc3Npb25cIiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIFtkaXNhYmxlZF09XCIhaGFzUHJldmlvdXMoKSB8fCBjYXNlRWRpdC5pc1N1Ym1pdHRpbmdcIiAoY2xpY2spPVwicHJldmlvdXMoKVwiPlxuICAgICAgICB7eydQcmV2aW91cycgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiIGNsYXNzPVwiYnV0dG9uXCI+XG4gICAgICAgIHt7dHJpZ2dlclRleHQgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPHAgY2xhc3M9XCJjYW5jZWxcIj5cbiAgICAgIDxhIChjbGljayk9XCJjYW5jZWwoKVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBbY2xhc3MuZGlzYWJsZWRdPVwiY2FzZUVkaXQuaXNTdWJtaXR0aW5nXCI+e3tnZXRDYW5jZWxUZXh0KCkgfCBycHhUcmFuc2xhdGV9fTwvYT5cbiAgICA8L3A+XG4gIDwvZm9ybT5cbjwvZGl2PlxuPGNjZC1jYXNlLWV2ZW50LWNvbXBsZXRpb24gKm5nSWY9XCJjYXNlRWRpdC5pc0V2ZW50Q29tcGxldGlvbkNoZWNrc1JlcXVpcmVkXCJcbiAgW2V2ZW50Q29tcGxldGlvblBhcmFtc109XCJjYXNlRWRpdC5ldmVudENvbXBsZXRpb25QYXJhbXNcIlxuICAoZXZlbnRDYW5CZUNvbXBsZXRlZCk9XCJvbkV2ZW50Q2FuQmVDb21wbGV0ZWQoJGV2ZW50KVwiPlxuPC9jY2QtY2FzZS1ldmVudC1jb21wbGV0aW9uPlxuIl19