vcomply-workflow-engine 3.5.3 → 3.5.4

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 (645) hide show
  1. package/esm2022/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +897 -0
  2. package/esm2022/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.mjs +204 -0
  3. package/esm2022/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.mjs +1569 -0
  4. package/esm2022/lib/add-multiple-risk/add-multiple-risk.component.mjs +774 -0
  5. package/esm2022/lib/configurations.mjs +6 -0
  6. package/esm2022/lib/confirmation-alert/confirmation-alert.component.mjs +28 -0
  7. package/esm2022/lib/constants/link-responsibility.constants.mjs +9 -0
  8. package/esm2022/lib/constants/time.constants.mjs +3 -0
  9. package/esm2022/lib/create-documents/create-documents.component.mjs +145 -0
  10. package/esm2022/lib/formgroup/cs-checkbox/cs-checkbox.component.mjs +36 -0
  11. package/esm2022/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.mjs +35 -0
  12. package/esm2022/lib/formgroup/cs-radio/cs-radio.component.mjs +34 -0
  13. package/esm2022/lib/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -0
  14. package/esm2022/lib/formgroup/cs-select/cs-select.component.mjs +95 -0
  15. package/esm2022/lib/formgroup/cs-switch/cs-switch.component.mjs +31 -0
  16. package/esm2022/lib/formgroup/formgroup.module.mjs +56 -0
  17. package/esm2022/lib/formgroup/pipes/pascal.pipe.mjs +19 -0
  18. package/esm2022/lib/formgroup/select/cs-option/cs-option.component.mjs +42 -0
  19. package/esm2022/lib/formgroup/select/cs-select/cs-select.component.mjs +106 -0
  20. package/esm2022/lib/formgroup/select/select.module.mjs +21 -0
  21. package/esm2022/lib/formgroup/select/select.service.mjs +48 -0
  22. package/esm2022/lib/interfaces/categoryList.mjs +2 -0
  23. package/esm2022/lib/interfaces/confirmation-alert.mjs +2 -0
  24. package/esm2022/lib/interfaces/issue-data.mjs +2 -0
  25. package/esm2022/lib/log-an-issue/log-an-issue.component.mjs +1212 -0
  26. package/esm2022/lib/more-option/more-option.component.mjs +790 -0
  27. package/esm2022/lib/pipes/data-type.pipe.mjs +16 -0
  28. package/esm2022/lib/pipes/dom-sanitizer.pipe.mjs +24 -0
  29. package/esm2022/lib/pipes/filter.pipe.mjs +24 -0
  30. package/esm2022/lib/pipes/is-read-more.pipe.mjs +21 -0
  31. package/esm2022/lib/pipes/list-mapper.pipe.mjs +21 -0
  32. package/esm2022/lib/pipes/pipes.module.mjs +67 -0
  33. package/esm2022/lib/pipes/search.pipe.mjs +37 -0
  34. package/esm2022/lib/pipes/space-breaker.pipe.mjs +21 -0
  35. package/esm2022/lib/pipes/uncategorized-filter.pipe.mjs +21 -0
  36. package/esm2022/lib/pipes/user-filter.pipe.mjs +30 -0
  37. package/esm2022/lib/services/bulk-upload.service.mjs +44 -0
  38. package/esm2022/lib/services/common.service.mjs +41 -0
  39. package/esm2022/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.mjs +265 -0
  40. package/esm2022/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.mjs +73 -0
  41. package/esm2022/lib/sharedComponents/approval-workflow/approval-workflow.component.mjs +83 -0
  42. package/esm2022/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.mjs +347 -0
  43. package/esm2022/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.mjs +75 -0
  44. package/esm2022/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.mjs +33 -0
  45. package/esm2022/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.mjs +124 -0
  46. package/esm2022/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.mjs +154 -0
  47. package/esm2022/lib/sharedComponents/assessment-editor/components/build/build.module.mjs +111 -0
  48. package/esm2022/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.mjs +37 -0
  49. package/esm2022/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.mjs +74 -0
  50. package/esm2022/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.mjs +18 -0
  51. package/esm2022/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.mjs +37 -0
  52. package/esm2022/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.mjs +15 -0
  53. package/esm2022/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.mjs +14 -0
  54. package/esm2022/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.mjs +14 -0
  55. package/esm2022/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.mjs +37 -0
  56. package/esm2022/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.mjs +14 -0
  57. package/esm2022/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.mjs +14 -0
  58. package/esm2022/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.mjs +14 -0
  59. package/esm2022/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.mjs +28 -0
  60. package/esm2022/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.mjs +14 -0
  61. package/esm2022/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.mjs +56 -0
  62. package/esm2022/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.mjs +14 -0
  63. package/esm2022/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.mjs +179 -0
  64. package/esm2022/lib/sharedComponents/assessment-editor/components/errorInterface/error.mjs +2 -0
  65. package/esm2022/lib/sharedComponents/assessment-editor/components/errorInterface/question.mjs +2 -0
  66. package/esm2022/lib/sharedComponents/assessment-editor/components/errorInterface/validateStructure.mjs +2 -0
  67. package/esm2022/lib/sharedComponents/assessment-editor/components/logic/logic.component.mjs +104 -0
  68. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.mjs +26 -0
  69. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.mjs +14 -0
  70. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.mjs +56 -0
  71. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.mjs +33 -0
  72. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.mjs +17 -0
  73. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.mjs +26 -0
  74. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.mjs +16 -0
  75. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-questions.module.mjs +101 -0
  76. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.mjs +16 -0
  77. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.mjs +24 -0
  78. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.mjs +14 -0
  79. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.mjs +16 -0
  80. package/esm2022/lib/sharedComponents/assessment-editor/components/move/move.component.mjs +103 -0
  81. package/esm2022/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.mjs +23 -0
  82. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/current-page-question.pipe.mjs +22 -0
  83. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/error-message.pipe.mjs +27 -0
  84. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/formatter.pipe.mjs +21 -0
  85. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/question-filter.pipe.mjs +17 -0
  86. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/question-page-filter.pipe.mjs +16 -0
  87. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/question-parser.pipe.mjs +21 -0
  88. package/esm2022/lib/sharedComponents/assessment-editor/components/pipes/type-of.pipe.mjs +16 -0
  89. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.mjs +28 -0
  90. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.mjs +14 -0
  91. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.mjs +49 -0
  92. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.mjs +30 -0
  93. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.mjs +21 -0
  94. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.mjs +17 -0
  95. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.mjs +31 -0
  96. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.mjs +28 -0
  97. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.mjs +28 -0
  98. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.mjs +16 -0
  99. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.mjs +16 -0
  100. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.mjs +16 -0
  101. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.mjs +14 -0
  102. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.mjs +16 -0
  103. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.mjs +78 -0
  104. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/preview.module.mjs +152 -0
  105. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.mjs +14 -0
  106. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.mjs +14 -0
  107. package/esm2022/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.mjs +19 -0
  108. package/esm2022/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.mjs +252 -0
  109. package/esm2022/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.mjs +35 -0
  110. package/esm2022/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.mjs +61 -0
  111. package/esm2022/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.mjs +163 -0
  112. package/esm2022/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.mjs +118 -0
  113. package/esm2022/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.mjs +23 -0
  114. package/esm2022/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.mjs +97 -0
  115. package/esm2022/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.mjs +493 -0
  116. package/esm2022/lib/sharedComponents/assessment-editor/create-assessment.module.mjs +154 -0
  117. package/esm2022/lib/sharedComponents/assessment-editor/services/editor.service.mjs +635 -0
  118. package/esm2022/lib/sharedComponents/assessment-editor/services/result-criteria.service.mjs +48 -0
  119. package/esm2022/lib/sharedComponents/assessment-editor/services/validator.service.mjs +546 -0
  120. package/esm2022/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.mjs +15 -0
  121. package/esm2022/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.mjs +15 -0
  122. package/esm2022/lib/sharedComponents/assessment-list/assessment-list.component.mjs +207 -0
  123. package/esm2022/lib/sharedComponents/assessment-list/service/assessment.interface.mjs +2 -0
  124. package/esm2022/lib/sharedComponents/assessment-list/service/assessment.service.mjs +31 -0
  125. package/esm2022/lib/sharedComponents/assessment-preview/assessment-preview.module.mjs +113 -0
  126. package/esm2022/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.mjs +33 -0
  127. package/esm2022/lib/sharedComponents/assessment-preview/date-time/date-time.component.mjs +53 -0
  128. package/esm2022/lib/sharedComponents/assessment-preview/description-preview/description-preview.component.mjs +24 -0
  129. package/esm2022/lib/sharedComponents/assessment-preview/device/device.component.mjs +21 -0
  130. package/esm2022/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.mjs +22 -0
  131. package/esm2022/lib/sharedComponents/assessment-preview/page-header/page-header.component.mjs +21 -0
  132. package/esm2022/lib/sharedComponents/assessment-preview/pipes/get-section-order.pipe.mjs +24 -0
  133. package/esm2022/lib/sharedComponents/assessment-preview/preview/preview.component.mjs +62 -0
  134. package/esm2022/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.mjs +22 -0
  135. package/esm2022/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.mjs +22 -0
  136. package/esm2022/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.mjs +33 -0
  137. package/esm2022/lib/sharedComponents/assessment-preview/section-details/section-details.component.mjs +20 -0
  138. package/esm2022/lib/sharedComponents/assessment-preview/select-question/select-question.component.mjs +35 -0
  139. package/esm2022/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.mjs +21 -0
  140. package/esm2022/lib/sharedComponents/assessment-preview/welcome/welcome.component.mjs +17 -0
  141. package/esm2022/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +61 -0
  142. package/esm2022/lib/sharedComponents/audit-category-list/audit-category.model.mjs +2 -0
  143. package/esm2022/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs +72 -0
  144. package/esm2022/lib/sharedComponents/bulk-view/bulk-view.component.mjs +75 -0
  145. package/esm2022/lib/sharedComponents/category-list/category-list.component.mjs +84 -0
  146. package/esm2022/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs +166 -0
  147. package/esm2022/lib/sharedComponents/checkbox-list/checkbox-list.component.mjs +92 -0
  148. package/esm2022/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.mjs +315 -0
  149. package/esm2022/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.mjs +25 -0
  150. package/esm2022/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.mjs +149 -0
  151. package/esm2022/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.mjs +48 -0
  152. package/esm2022/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.mjs +77 -0
  153. package/esm2022/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.mjs +14 -0
  154. package/esm2022/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.mjs +197 -0
  155. package/esm2022/lib/sharedComponents/directive/autofocus.directive.mjs +22 -0
  156. package/esm2022/lib/sharedComponents/directive/conditional-focus.directive.mjs +35 -0
  157. package/esm2022/lib/sharedComponents/directive/drag-drop.directive.mjs +52 -0
  158. package/esm2022/lib/sharedComponents/directive/input-trim.directive.mjs +21 -0
  159. package/esm2022/lib/sharedComponents/directive/scroll-in-view.directive.mjs +35 -0
  160. package/esm2022/lib/sharedComponents/document-section/document-section.component.mjs +184 -0
  161. package/esm2022/lib/sharedComponents/floating-bar/floating-bar.component.mjs +122 -0
  162. package/esm2022/lib/sharedComponents/floating-bar/floating-bar.module.mjs +20 -0
  163. package/esm2022/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +308 -0
  164. package/esm2022/lib/sharedComponents/framework-list/framework-integration-interfaces.mjs +2 -0
  165. package/esm2022/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.mjs +38 -0
  166. package/esm2022/lib/sharedComponents/framework-list/framework-list.component.mjs +429 -0
  167. package/esm2022/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.mjs +43 -0
  168. package/esm2022/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.mjs +15 -0
  169. package/esm2022/lib/sharedComponents/framework-list/parent-table/parent-table.component.mjs +95 -0
  170. package/esm2022/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +297 -0
  171. package/esm2022/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +218 -0
  172. package/esm2022/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.mjs +36 -0
  173. package/esm2022/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +303 -0
  174. package/esm2022/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +152 -0
  175. package/esm2022/lib/sharedComponents/frequency/frequency-due-date/due-date.contant.mjs +21 -0
  176. package/esm2022/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.mjs +83 -0
  177. package/esm2022/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.mjs +199 -0
  178. package/esm2022/lib/sharedComponents/frequency/frequency-lifecycle/lifecycl.constant.mjs +12 -0
  179. package/esm2022/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +223 -0
  180. package/esm2022/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.mjs +170 -0
  181. package/esm2022/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +189 -0
  182. package/esm2022/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +75 -0
  183. package/esm2022/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +214 -0
  184. package/esm2022/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.mjs +36 -0
  185. package/esm2022/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +253 -0
  186. package/esm2022/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.mjs +213 -0
  187. package/esm2022/lib/sharedComponents/frequency/frequency-top/frequency-top.component.mjs +133 -0
  188. package/esm2022/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +200 -0
  189. package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +573 -0
  190. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +300 -0
  191. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +216 -0
  192. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.mjs +29 -0
  193. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.mjs +296 -0
  194. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.mjs +110 -0
  195. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +227 -0
  196. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +213 -0
  197. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +212 -0
  198. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.mjs +33 -0
  199. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.mjs +128 -0
  200. package/esm2022/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.mjs +197 -0
  201. package/esm2022/lib/sharedComponents/group-users-list/group-users-list.component.mjs +259 -0
  202. package/esm2022/lib/sharedComponents/link-program/link-program/link-program.component.mjs +472 -0
  203. package/esm2022/lib/sharedComponents/link-program/link-program/program-list-model.mjs +2 -0
  204. package/esm2022/lib/sharedComponents/link-program/program-integration-interfaces.mjs +2 -0
  205. package/esm2022/lib/sharedComponents/link-program/restapi.service.mjs +149 -0
  206. package/esm2022/lib/sharedComponents/link-program/tooltip-validation.pipe.mjs +28 -0
  207. package/esm2022/lib/sharedComponents/link-responsibility/link-responsibility.component.mjs +221 -0
  208. package/esm2022/lib/sharedComponents/list-loader/list-loader.component.mjs +15 -0
  209. package/esm2022/lib/sharedComponents/list-loader/list-loader.module.mjs +18 -0
  210. package/esm2022/lib/sharedComponents/no-data/no-data.component.mjs +36 -0
  211. package/esm2022/lib/sharedComponents/no-data/no-data.module.mjs +18 -0
  212. package/esm2022/lib/sharedComponents/owner-list/owner-list.component.mjs +176 -0
  213. package/esm2022/lib/sharedComponents/pipes/array-filter.pipe.mjs +18 -0
  214. package/esm2022/lib/sharedComponents/pipes/filterPipe.mjs +30 -0
  215. package/esm2022/lib/sharedComponents/pipes/rcTreeToolTip.pipe.mjs +26 -0
  216. package/esm2022/lib/sharedComponents/pipes/short-merge.pipe.mjs +24 -0
  217. package/esm2022/lib/sharedComponents/pipes/spaceTrim.pipe.mjs +18 -0
  218. package/esm2022/lib/sharedComponents/pipes/within-data.pipe.mjs +21 -0
  219. package/esm2022/lib/sharedComponents/policy-access/policy-access.component.mjs +88 -0
  220. package/esm2022/lib/sharedComponents/program-listing/program-list-model.mjs +2 -0
  221. package/esm2022/lib/sharedComponents/program-listing/program-listing.component.mjs +739 -0
  222. package/esm2022/lib/sharedComponents/radio-list/radio-list.component.mjs +82 -0
  223. package/esm2022/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.mjs +14 -0
  224. package/esm2022/lib/sharedComponents/radio-list-with-pagination/radio-list.component.mjs +128 -0
  225. package/esm2022/lib/sharedComponents/responsibility-centers-list/rc-list.module.mjs +40 -0
  226. package/esm2022/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.mjs +125 -0
  227. package/esm2022/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.mjs +81 -0
  228. package/esm2022/lib/sharedComponents/review-frequency/review-frequency.component.mjs +44 -0
  229. package/esm2022/lib/sharedComponents/risk-classification/risk-classification.component.mjs +102 -0
  230. package/esm2022/lib/sharedComponents/roles-list/roles-list.component.mjs +30 -0
  231. package/esm2022/lib/sharedComponents/select-approvers/select-approvers.component.mjs +78 -0
  232. package/esm2022/lib/sharedComponents/table-card-loader/table-card-loader.component.mjs +15 -0
  233. package/esm2022/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +83 -0
  234. package/esm2022/lib/sharedComponents/v-loader/loader/loader.component.mjs +21 -0
  235. package/esm2022/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.mjs +21 -0
  236. package/esm2022/lib/sharedComponents/v-loader/v-loader.module.mjs +19 -0
  237. package/esm2022/lib/ui-kit/action-dialog/action-dialog.module.mjs +21 -0
  238. package/esm2022/lib/ui-kit/action-dialog/active/active.component.mjs +32 -0
  239. package/esm2022/lib/ui-kit/action-dialog/deactivate/deactivate.component.mjs +33 -0
  240. package/esm2022/lib/ui-kit/action-dialog/delete/delete.component.mjs +26 -0
  241. package/esm2022/lib/ui-kit/action-dialog/duplicate/duplicate.component.mjs +28 -0
  242. package/esm2022/lib/ui-kit/click-outside/click-outside.directive.mjs +29 -0
  243. package/esm2022/lib/ui-kit/click-outside/click-outside.module.mjs +22 -0
  244. package/esm2022/lib/ui-kit/dialog/dialog-config.mjs +3 -0
  245. package/esm2022/lib/ui-kit/dialog/dialog-injector.mjs +14 -0
  246. package/esm2022/lib/ui-kit/dialog/dialog-ref.mjs +11 -0
  247. package/esm2022/lib/ui-kit/dialog/dialog.component.mjs +88 -0
  248. package/esm2022/lib/ui-kit/dialog/dialog.module.mjs +20 -0
  249. package/esm2022/lib/ui-kit/dialog/dialog.service.mjs +58 -0
  250. package/esm2022/lib/ui-kit/dialog/insertion.directive.mjs +16 -0
  251. package/esm2022/lib/ui-kit/directive/directive.module.mjs +24 -0
  252. package/esm2022/lib/ui-kit/directive/stop-propagation.directive.mjs +20 -0
  253. package/esm2022/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.mjs +15 -0
  254. package/esm2022/lib/ui-kit/editor-loader/editor-loader.module.mjs +22 -0
  255. package/esm2022/lib/ui-kit/format-html.pipe.mjs +20 -0
  256. package/esm2022/lib/ui-kit/formgroup/click-outside.directive.mjs +29 -0
  257. package/esm2022/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.mjs +31 -0
  258. package/esm2022/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.mjs +35 -0
  259. package/esm2022/lib/ui-kit/formgroup/cs-radio/cs-radio.component.mjs +30 -0
  260. package/esm2022/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.mjs +14 -0
  261. package/esm2022/lib/ui-kit/formgroup/cs-select/cs-select.component.mjs +100 -0
  262. package/esm2022/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +32 -0
  263. package/esm2022/lib/ui-kit/formgroup/formgroup.module.mjs +60 -0
  264. package/esm2022/lib/ui-kit/formgroup/pipes/pascal.pipe.mjs +19 -0
  265. package/esm2022/lib/ui-kit/formgroup/pipes/searchMultiSelect.pipe.mjs +24 -0
  266. package/esm2022/lib/ui-kit/line-loader/line-loader.component.mjs +15 -0
  267. package/esm2022/lib/ui-kit/line-loader/line-loader.module.mjs +18 -0
  268. package/esm2022/lib/ui-kit/no-data/no-data.component.mjs +45 -0
  269. package/esm2022/lib/ui-kit/no-data/no-data.module.mjs +18 -0
  270. package/esm2022/lib/ui-kit/pagination/pagination/pagination.component.mjs +116 -0
  271. package/esm2022/lib/ui-kit/pagination/pagination.module.mjs +28 -0
  272. package/esm2022/lib/ui-kit/popover/popover-event.directive.mjs +28 -0
  273. package/esm2022/lib/ui-kit/popover/popover-longpress.directive.mjs +44 -0
  274. package/esm2022/lib/ui-kit/popover/popover.component.mjs +138 -0
  275. package/esm2022/lib/ui-kit/popover/popover.directive.mjs +97 -0
  276. package/esm2022/lib/ui-kit/popover/popover.module.mjs +23 -0
  277. package/esm2022/lib/ui-kit/popover/popover.service.mjs +15 -0
  278. package/esm2022/lib/ui-kit/popover-hover/popover-hover.component.mjs +109 -0
  279. package/esm2022/lib/ui-kit/popover-hover/popover-hover.directive.mjs +34 -0
  280. package/esm2022/lib/ui-kit/popover-hover/popover-hover.module.mjs +31 -0
  281. package/esm2022/lib/ui-kit/popover-hover/popover-hover.service.mjs +14 -0
  282. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.component.mjs +43 -0
  283. package/esm2022/lib/ui-kit/smiley-dialog/smiley-dialog.module.mjs +18 -0
  284. package/esm2022/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.mjs +43 -0
  285. package/esm2022/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.module.mjs +18 -0
  286. package/esm2022/lib/ui-kit/snack-bar/snack-bar.component.mjs +51 -0
  287. package/esm2022/lib/ui-kit/snack-bar/snack-bar.module.mjs +18 -0
  288. package/esm2022/lib/ui-kit/snack-bar/snack-bar.service.mjs +32 -0
  289. package/esm2022/lib/ui-kit/time-picker/constants/constant.mjs +5 -0
  290. package/esm2022/lib/ui-kit/time-picker/time-picker/time-picker.component.mjs +220 -0
  291. package/esm2022/lib/ui-kit/time-picker/time-picker.module.mjs +24 -0
  292. package/esm2022/lib/ui-kit/tooltip/tooltip.directive.mjs +156 -0
  293. package/esm2022/lib/ui-kit/tooltip/tooltip.module.mjs +18 -0
  294. package/esm2022/lib/workflow/grc-object/grc-object-container/grc-object-container.component.mjs +831 -0
  295. package/esm2022/lib/workflow/grc-object/grc-object.module.mjs +64 -0
  296. package/esm2022/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.mjs +95 -0
  297. package/esm2022/lib/workflow/shared/components/attributes/attributes-dropdown/attributes-dropdown.component.mjs +110 -0
  298. package/esm2022/lib/workflow/shared/components/attributes/attributes-text-box/attributes-text-box.component.mjs +118 -0
  299. package/esm2022/lib/workflow/shared/components/attributes/attributes.component.mjs +100 -0
  300. package/esm2022/lib/workflow/shared/components/attributes/date-picker/date-picker.component.mjs +116 -0
  301. package/esm2022/lib/workflow/shared/components/edit-mode/edit-mode.component.mjs +216 -0
  302. package/esm2022/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.mjs +119 -0
  303. package/esm2022/lib/workflow/shared/components/grc-object-list/grc-object-list.component.mjs +198 -0
  304. package/esm2022/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.mjs +202 -0
  305. package/esm2022/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.mjs +191 -0
  306. package/esm2022/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.mjs +86 -0
  307. package/esm2022/lib/workflow/shared/components/list-popup/list-popup.component.mjs +209 -0
  308. package/esm2022/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.mjs +411 -0
  309. package/esm2022/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.mjs +241 -0
  310. package/esm2022/lib/workflow/shared/components/table-card/table-card.component.mjs +32 -0
  311. package/esm2022/lib/workflow/shared/components/text-field/text-field.component.mjs +143 -0
  312. package/esm2022/lib/workflow/shared/components/text-field-icon/text-field-icon.component.mjs +56 -0
  313. package/esm2022/lib/workflow/shared/constants/cdn-link.constant.mjs +11 -0
  314. package/esm2022/lib/workflow/shared/constants/field-text.constant.mjs +17 -0
  315. package/esm2022/lib/workflow/shared/constants/grcObject.constant.mjs +88 -0
  316. package/esm2022/lib/workflow/shared/constants/link-responsibility.constant.mjs +19 -0
  317. package/esm2022/lib/workflow/shared/constants/message.contstant.mjs +5 -0
  318. package/esm2022/lib/workflow/shared/constants/pagination-limits.constant.mjs +6 -0
  319. package/esm2022/lib/workflow/shared/constants/svg-link.constant.mjs +4 -0
  320. package/esm2022/lib/workflow/shared/constants/validation-message.constant.mjs +8 -0
  321. package/esm2022/lib/workflow/shared/interfaces/add-grc.mjs +2 -0
  322. package/esm2022/lib/workflow/shared/services/grc.service.mjs +310 -0
  323. package/esm2022/lib/workflow/shared/workflow-pipes/get-selected-value.pipe.mjs +30 -0
  324. package/esm2022/lib/workflow/shared/workflow-pipes/is-attributes-valid.pipe.mjs +48 -0
  325. package/esm2022/lib/workflow/shared/workflow-pipes/unique-responsibilities.pipe.mjs +24 -0
  326. package/esm2022/lib/workflow/shared/workflow-pipes/workflow-pipes.module.mjs +32 -0
  327. package/esm2022/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +668 -0
  328. package/esm2022/lib/workflow-assessment/workflow-assessment.component.mjs +254 -0
  329. package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +3913 -0
  330. package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +734 -0
  331. package/esm2022/lib/workflow-engine.module.mjs +467 -0
  332. package/esm2022/lib/workflow-engine.service.mjs +14 -0
  333. package/esm2022/lib/workflow-interfaces/create-policy-form.mjs +2 -0
  334. package/esm2022/lib/workflow-pagination/workflow-pagination.component.mjs +116 -0
  335. package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +1875 -0
  336. package/esm2022/lib/workflow-program/constants.mjs +51 -0
  337. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.mjs +15 -0
  338. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +292 -0
  339. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.mjs +15 -0
  340. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment.service.mjs +43 -0
  341. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/selected-assessment.pipe.mjs +22 -0
  342. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.mjs +116 -0
  343. package/esm2022/lib/workflow-program/create-program-ui/checkbox/checkbox.component.mjs +39 -0
  344. package/esm2022/lib/workflow-program/create-program-ui/create-program-ui.module.mjs +194 -0
  345. package/esm2022/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.mjs +44 -0
  346. package/esm2022/lib/workflow-program/create-program-ui/custom-field/custom-field.component.mjs +82 -0
  347. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.mjs +267 -0
  348. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/framework.service.mjs +44 -0
  349. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.mjs +15 -0
  350. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/category-all-select.pipe.mjs +23 -0
  351. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/search.pipe.mjs +23 -0
  352. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.mjs +26 -0
  353. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/tooltip-message.pipe.mjs +68 -0
  354. package/esm2022/lib/workflow-program/create-program-ui/directives/input-trim.directive.mjs +21 -0
  355. package/esm2022/lib/workflow-program/create-program-ui/file-pill/file-pill.component.mjs +27 -0
  356. package/esm2022/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.mjs +106 -0
  357. package/esm2022/lib/workflow-program/create-program-ui/form-field/form-field.component.mjs +16 -0
  358. package/esm2022/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.mjs +30 -0
  359. package/esm2022/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.mjs +166 -0
  360. package/esm2022/lib/workflow-program/create-program-ui/pagination/pagination.module.mjs +28 -0
  361. package/esm2022/lib/workflow-program/create-program-ui/pipes/array-concat.pipe.mjs +16 -0
  362. package/esm2022/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.mjs +27 -0
  363. package/esm2022/lib/workflow-program/create-program-ui/pipes/filter.pipe.mjs +30 -0
  364. package/esm2022/lib/workflow-program/create-program-ui/pipes/list-to-id.pipe.mjs +16 -0
  365. package/esm2022/lib/workflow-program/create-program-ui/pipes/pager.pipe.mjs +21 -0
  366. package/esm2022/lib/workflow-program/create-program-ui/pipes/ref-disconnect.pipe.mjs +17 -0
  367. package/esm2022/lib/workflow-program/create-program-ui/pipes/search.pipe.mjs +23 -0
  368. package/esm2022/lib/workflow-program/create-program-ui/role-list/loader/loader.component.mjs +15 -0
  369. package/esm2022/lib/workflow-program/create-program-ui/role-list/role-list.component.mjs +240 -0
  370. package/esm2022/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.mjs +43 -0
  371. package/esm2022/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.mjs +15 -0
  372. package/esm2022/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +434 -0
  373. package/esm2022/lib/workflow-program/workflow-program.component.mjs +1550 -0
  374. package/esm2022/lib/workflow-risk/workflow-risk.component.mjs +1642 -0
  375. package/esm2022/lib/workflow-services/add-risk.service.mjs +150 -0
  376. package/esm2022/lib/workflow-services/assessment.service.mjs +117 -0
  377. package/esm2022/lib/workflow-services/auth.service.mjs +229 -0
  378. package/esm2022/lib/workflow-services/frequency.service.mjs +173 -0
  379. package/esm2022/lib/workflow-services/log-issue.service.mjs +360 -0
  380. package/esm2022/lib/workflow-services/policy.service.mjs +163 -0
  381. package/esm2022/lib/workflow-services/programs.service.mjs +319 -0
  382. package/esm2022/lib/workflow-services/responsibility.service.mjs +293 -0
  383. package/esm2022/lib/workflow-services/token-decoder.service.mjs +38 -0
  384. package/esm2022/lib/workflow-services/ui-kit.service.mjs +17 -0
  385. package/esm2022/lib/workflow-survey-form/workflow-survey-form.component.mjs +26 -0
  386. package/esm2022/public-api.mjs +8 -0
  387. package/esm2022/vcomply-workflow-engine.mjs +5 -0
  388. package/fesm2022/vcomply-workflow-engine.mjs +44351 -0
  389. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -0
  390. package/lib/add-multiple-responsibility/add-multiple-responsibility.component.d.ts +1 -1
  391. package/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.d.ts +1 -1
  392. package/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.d.ts +1 -1
  393. package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +1 -1
  394. package/lib/confirmation-alert/confirmation-alert.component.d.ts +1 -1
  395. package/lib/create-documents/create-documents.component.d.ts +1 -1
  396. package/lib/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -1
  397. package/lib/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +1 -1
  398. package/lib/formgroup/cs-radio/cs-radio.component.d.ts +1 -1
  399. package/lib/formgroup/cs-radio-group/cs-radio-group.component.d.ts +1 -1
  400. package/lib/formgroup/cs-select/cs-select.component.d.ts +1 -1
  401. package/lib/formgroup/cs-switch/cs-switch.component.d.ts +1 -1
  402. package/lib/formgroup/select/cs-option/cs-option.component.d.ts +1 -1
  403. package/lib/formgroup/select/cs-select/cs-select.component.d.ts +1 -1
  404. package/lib/log-an-issue/log-an-issue.component.d.ts +7 -3
  405. package/lib/more-option/more-option.component.d.ts +1 -1
  406. package/lib/services/common.service.d.ts +14 -0
  407. package/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.d.ts +1 -1
  408. package/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.d.ts +1 -1
  409. package/lib/sharedComponents/approval-workflow/approval-workflow.component.d.ts +1 -1
  410. package/lib/sharedComponents/assessment-editor/components/add-logic/add-logic.component.d.ts +1 -1
  411. package/lib/sharedComponents/assessment-editor/components/add-page-details/add-page-details.component.d.ts +1 -1
  412. package/lib/sharedComponents/assessment-editor/components/add-response-set-popup/add-response-set-popup.component.d.ts +1 -1
  413. package/lib/sharedComponents/assessment-editor/components/add-segment-popup/add-segment-popup.component.d.ts +1 -1
  414. package/lib/sharedComponents/assessment-editor/components/assessment-settings/assessment-settings.component.d.ts +1 -1
  415. package/lib/sharedComponents/assessment-editor/components/build/checkbox/checkbox.component.d.ts +1 -1
  416. package/lib/sharedComponents/assessment-editor/components/build/choice-settings-panel/choice-settings-panel.component.d.ts +1 -1
  417. package/lib/sharedComponents/assessment-editor/components/build/date-time/date-time.component.d.ts +1 -1
  418. package/lib/sharedComponents/assessment-editor/components/build/dropdown/dropdown.component.d.ts +1 -1
  419. package/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.d.ts +1 -1
  420. package/lib/sharedComponents/assessment-editor/components/build/matrix-dropdown/matrix-dropdown.component.d.ts +1 -1
  421. package/lib/sharedComponents/assessment-editor/components/build/matrix-rating-scale/matrix-rating-scale.component.d.ts +1 -1
  422. package/lib/sharedComponents/assessment-editor/components/build/multiple-choice/multiple-choice.component.d.ts +1 -1
  423. package/lib/sharedComponents/assessment-editor/components/build/multiple-textbox/multiple-textbox.component.d.ts +1 -1
  424. package/lib/sharedComponents/assessment-editor/components/build/ranking/ranking.component.d.ts +1 -1
  425. package/lib/sharedComponents/assessment-editor/components/build/slider/slider.component.d.ts +1 -1
  426. package/lib/sharedComponents/assessment-editor/components/build/star-rating/star-rating.component.d.ts +1 -1
  427. package/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.d.ts +1 -1
  428. package/lib/sharedComponents/assessment-editor/components/build/weightage-selector/weightage-selector.component.d.ts +1 -1
  429. package/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.d.ts +1 -1
  430. package/lib/sharedComponents/assessment-editor/components/editor-wrapper/editor-wrapper.component.d.ts +1 -1
  431. package/lib/sharedComponents/assessment-editor/components/logic/logic.component.d.ts +1 -1
  432. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-checkbox/logic-checkbox.component.d.ts +1 -1
  433. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-comment-box/logic-comment-box.component.d.ts +1 -1
  434. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-date-time/logic-date-time.component.d.ts +7 -3
  435. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-dropdown/logic-dropdown.component.d.ts +1 -1
  436. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.d.ts +1 -1
  437. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-choice/logic-multiple-choice.component.d.ts +1 -1
  438. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-multiple-textbox/logic-multiple-textbox.component.d.ts +1 -1
  439. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-ranking/logic-ranking.component.d.ts +1 -1
  440. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-single-textbox/logic-single-textbox.component.d.ts +1 -1
  441. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-slider/logic-slider.component.d.ts +1 -1
  442. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-star-rating/logic-star-rating.component.d.ts +1 -1
  443. package/lib/sharedComponents/assessment-editor/components/move/move.component.d.ts +1 -1
  444. package/lib/sharedComponents/assessment-editor/components/page-header/page-header.component.d.ts +1 -1
  445. package/lib/sharedComponents/assessment-editor/components/preview/preview-checkbox/preview-checkbox.component.d.ts +1 -1
  446. package/lib/sharedComponents/assessment-editor/components/preview/preview-comment-box/preview-comment-box.component.d.ts +1 -1
  447. package/lib/sharedComponents/assessment-editor/components/preview/preview-date-time/preview-date-time.component.d.ts +8 -5
  448. package/lib/sharedComponents/assessment-editor/components/preview/preview-dropdown/preview-dropdown.component.d.ts +1 -1
  449. package/lib/sharedComponents/assessment-editor/components/preview/preview-file-upload/preview-file-upload.component.d.ts +1 -1
  450. package/lib/sharedComponents/assessment-editor/components/preview/preview-image-choice/preview-image-choice.component.d.ts +1 -1
  451. package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-dropdown/preview-matrix-dropdown.component.d.ts +1 -1
  452. package/lib/sharedComponents/assessment-editor/components/preview/preview-matrix-rating-scale/preview-matrix-rating-scale.component.d.ts +1 -1
  453. package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-choice/preview-multiple-choice.component.d.ts +1 -1
  454. package/lib/sharedComponents/assessment-editor/components/preview/preview-multiple-textbox/preview-multiple-textbox.component.d.ts +1 -1
  455. package/lib/sharedComponents/assessment-editor/components/preview/preview-ranking/preview-ranking.component.d.ts +1 -1
  456. package/lib/sharedComponents/assessment-editor/components/preview/preview-single-textbox/preview-single-textbox.component.d.ts +1 -1
  457. package/lib/sharedComponents/assessment-editor/components/preview/preview-slider/preview-slider.component.d.ts +1 -1
  458. package/lib/sharedComponents/assessment-editor/components/preview/preview-star-rating/preview-star-rating.component.d.ts +1 -1
  459. package/lib/sharedComponents/assessment-editor/components/preview/preview-wrapper/preview-wrapper.component.d.ts +1 -1
  460. package/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.d.ts +1 -1
  461. package/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.d.ts +1 -1
  462. package/lib/sharedComponents/assessment-editor/components/question-type/question-type.component.d.ts +1 -1
  463. package/lib/sharedComponents/assessment-editor/components/quick-settings/quick-settings.component.d.ts +1 -1
  464. package/lib/sharedComponents/assessment-editor/components/response-selector/response-selector.component.d.ts +1 -1
  465. package/lib/sharedComponents/assessment-editor/components/setting-anonymous/setting-anonymous.component.d.ts +1 -1
  466. package/lib/sharedComponents/assessment-editor/components/setting-response-segment/setting-response-segment.component.d.ts +1 -1
  467. package/lib/sharedComponents/assessment-editor/components/single-line-editor/single-line-editor.component.d.ts +1 -1
  468. package/lib/sharedComponents/assessment-editor/components/toolkit/toolkit.component.d.ts +1 -1
  469. package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.d.ts +1 -1
  470. package/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.d.ts +1 -1
  471. package/lib/sharedComponents/assessment-list/assessment-list-loader/assessment-list-loader.component.d.ts +1 -1
  472. package/lib/sharedComponents/assessment-list/assessment-list-sub-loader/assessment-list-sub-loader.component.d.ts +1 -1
  473. package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +1 -1
  474. package/lib/sharedComponents/assessment-preview/checkbox-question/checkbox-question.component.d.ts +1 -1
  475. package/lib/sharedComponents/assessment-preview/date-time/date-time.component.d.ts +8 -5
  476. package/lib/sharedComponents/assessment-preview/description-preview/description-preview.component.d.ts +1 -1
  477. package/lib/sharedComponents/assessment-preview/device/device.component.d.ts +1 -1
  478. package/lib/sharedComponents/assessment-preview/file-upload/file-upload.component.d.ts +1 -1
  479. package/lib/sharedComponents/assessment-preview/page-header/page-header.component.d.ts +1 -1
  480. package/lib/sharedComponents/assessment-preview/preview/preview.component.d.ts +1 -1
  481. package/lib/sharedComponents/assessment-preview/preview-container/preview-container.component.d.ts +1 -1
  482. package/lib/sharedComponents/assessment-preview/quick-settings/quick-settings.component.d.ts +1 -1
  483. package/lib/sharedComponents/assessment-preview/radio-question/radio-question.component.d.ts +1 -1
  484. package/lib/sharedComponents/assessment-preview/section-details/section-details.component.d.ts +1 -1
  485. package/lib/sharedComponents/assessment-preview/select-question/select-question.component.d.ts +1 -1
  486. package/lib/sharedComponents/assessment-preview/single-textbox/single-textbox.component.d.ts +1 -1
  487. package/lib/sharedComponents/assessment-preview/welcome/welcome.component.d.ts +1 -1
  488. package/lib/sharedComponents/audit-category-list/audit-category-list.component.d.ts +1 -1
  489. package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +1 -1
  490. package/lib/sharedComponents/bulk-view/bulk-view.component.d.ts +1 -1
  491. package/lib/sharedComponents/category-list/category-list.component.d.ts +1 -1
  492. package/lib/sharedComponents/category-multiselect/category-multi-select.component.d.ts +1 -1
  493. package/lib/sharedComponents/checkbox-list/checkbox-list.component.d.ts +1 -1
  494. package/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.d.ts +1 -1
  495. package/lib/sharedComponents/checkpoint/checkpoints-list/checkpoints-list.component.d.ts +1 -1
  496. package/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.d.ts +6 -2
  497. package/lib/sharedComponents/checkpoint-floating-bar/checkpoint-floating-bar.component.d.ts +1 -1
  498. package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.d.ts +1 -1
  499. package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-list/checkpoints-policy-list.component.d.ts +1 -1
  500. package/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.d.ts +1 -1
  501. package/lib/sharedComponents/directive/autofocus.directive.d.ts +1 -1
  502. package/lib/sharedComponents/directive/conditional-focus.directive.d.ts +1 -1
  503. package/lib/sharedComponents/directive/drag-drop.directive.d.ts +1 -1
  504. package/lib/sharedComponents/directive/input-trim.directive.d.ts +1 -1
  505. package/lib/sharedComponents/directive/scroll-in-view.directive.d.ts +1 -1
  506. package/lib/sharedComponents/document-section/document-section.component.d.ts +1 -1
  507. package/lib/sharedComponents/floating-bar/floating-bar.component.d.ts +1 -1
  508. package/lib/sharedComponents/format-and-evidence/format-and-evidence.component.d.ts +1 -1
  509. package/lib/sharedComponents/framework-list/framework-list-table/framework-list-table.component.d.ts +1 -1
  510. package/lib/sharedComponents/framework-list/framework-list.component.d.ts +1 -1
  511. package/lib/sharedComponents/framework-list/framework-responsibility-table/framework-responsibility-table.component.d.ts +1 -1
  512. package/lib/sharedComponents/framework-list/framework-table-loader/framework-table-loader.component.d.ts +1 -1
  513. package/lib/sharedComponents/framework-list/parent-table/parent-table.component.d.ts +1 -1
  514. package/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.d.ts +1 -1
  515. package/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.d.ts +1 -1
  516. package/lib/sharedComponents/frequency/frequency-checkbox-list/frequency-checkbox-list.component.d.ts +1 -1
  517. package/lib/sharedComponents/frequency/frequency-container/frequency-container.component.d.ts +1 -1
  518. package/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.d.ts +1 -1
  519. package/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.d.ts +1 -1
  520. package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +10 -4
  521. package/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.d.ts +1 -1
  522. package/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.d.ts +1 -1
  523. package/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.d.ts +9 -5
  524. package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts +1 -1
  525. package/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.d.ts +1 -1
  526. package/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.d.ts +1 -1
  527. package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts +1 -1
  528. package/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.d.ts +1 -1
  529. package/lib/sharedComponents/frequency/frequency-top/frequency-top.component.d.ts +1 -1
  530. package/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.d.ts +1 -1
  531. package/lib/sharedComponents/frequency/frequency.service.d.ts +1 -0
  532. package/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.d.ts +1 -1
  533. package/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.d.ts +1 -1
  534. package/lib/sharedComponents/frequency-dialog/frequency-dialog-checkbox-list/frequency-dialog-checkbox-list.component.d.ts +1 -1
  535. package/lib/sharedComponents/frequency-dialog/frequency-dialog-container/frequency-dialog-container.component.d.ts +1 -1
  536. package/lib/sharedComponents/frequency-dialog/frequency-dialog-due-date/frequency-dialog-due-date.component.d.ts +1 -1
  537. package/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.d.ts +1 -1
  538. package/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.d.ts +10 -5
  539. package/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.d.ts +1 -1
  540. package/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.d.ts +1 -1
  541. package/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.d.ts +1 -1
  542. package/lib/sharedComponents/frequency-dialog/frequency-dialog-weekly/frequency-dialog-weekly.component.d.ts +1 -1
  543. package/lib/sharedComponents/group-users-list/group-users-list.component.d.ts +1 -1
  544. package/lib/sharedComponents/link-program/link-program/link-program.component.d.ts +1 -1
  545. package/lib/sharedComponents/link-responsibility/link-responsibility.component.d.ts +1 -1
  546. package/lib/sharedComponents/list-loader/list-loader.component.d.ts +1 -1
  547. package/lib/sharedComponents/no-data/no-data.component.d.ts +1 -1
  548. package/lib/sharedComponents/owner-list/owner-list.component.d.ts +1 -1
  549. package/lib/sharedComponents/policy-access/policy-access.component.d.ts +1 -1
  550. package/lib/sharedComponents/program-listing/program-listing.component.d.ts +1 -1
  551. package/lib/sharedComponents/radio-list/radio-list.component.d.ts +1 -1
  552. package/lib/sharedComponents/radio-list-with-pagination/link-treatment-loader/link-treatment-loader.component.d.ts +1 -1
  553. package/lib/sharedComponents/radio-list-with-pagination/radio-list.component.d.ts +1 -1
  554. package/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.d.ts +1 -1
  555. package/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.d.ts +1 -1
  556. package/lib/sharedComponents/review-frequency/review-frequency.component.d.ts +1 -1
  557. package/lib/sharedComponents/risk-classification/risk-classification.component.d.ts +1 -1
  558. package/lib/sharedComponents/roles-list/roles-list.component.d.ts +1 -1
  559. package/lib/sharedComponents/select-approvers/select-approvers.component.d.ts +1 -1
  560. package/lib/sharedComponents/table-card-loader/table-card-loader.component.d.ts +1 -1
  561. package/lib/sharedComponents/users-radio-list/users-radio-list.component.d.ts +1 -1
  562. package/lib/sharedComponents/v-loader/loader/loader.component.d.ts +1 -1
  563. package/lib/sharedComponents/v-loader/loader-inline/loader-inline.component.d.ts +1 -1
  564. package/lib/ui-kit/action-dialog/active/active.component.d.ts +1 -1
  565. package/lib/ui-kit/action-dialog/deactivate/deactivate.component.d.ts +1 -1
  566. package/lib/ui-kit/action-dialog/delete/delete.component.d.ts +1 -1
  567. package/lib/ui-kit/action-dialog/duplicate/duplicate.component.d.ts +1 -1
  568. package/lib/ui-kit/click-outside/click-outside.directive.d.ts +1 -1
  569. package/lib/ui-kit/dialog/dialog-injector.d.ts +2 -2
  570. package/lib/ui-kit/dialog/dialog.component.d.ts +6 -4
  571. package/lib/ui-kit/dialog/dialog.service.d.ts +3 -3
  572. package/lib/ui-kit/dialog/insertion.directive.d.ts +1 -1
  573. package/lib/ui-kit/directive/stop-propagation.directive.d.ts +1 -1
  574. package/lib/ui-kit/editor-loader/editor-loader/editor-loader.component.d.ts +1 -1
  575. package/lib/ui-kit/formgroup/click-outside.directive.d.ts +1 -1
  576. package/lib/ui-kit/formgroup/cs-checkbox/cs-checkbox.component.d.ts +1 -1
  577. package/lib/ui-kit/formgroup/cs-checkbox-indeterminate/cs-checkbox-indeterminate.component.d.ts +1 -1
  578. package/lib/ui-kit/formgroup/cs-radio/cs-radio.component.d.ts +1 -1
  579. package/lib/ui-kit/formgroup/cs-radio-group/cs-radio-group.component.d.ts +1 -1
  580. package/lib/ui-kit/formgroup/cs-select/cs-select.component.d.ts +1 -1
  581. package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +1 -1
  582. package/lib/ui-kit/line-loader/line-loader.component.d.ts +1 -1
  583. package/lib/ui-kit/no-data/no-data.component.d.ts +1 -1
  584. package/lib/ui-kit/pagination/pagination/pagination.component.d.ts +1 -1
  585. package/lib/ui-kit/popover/popover-event.directive.d.ts +1 -1
  586. package/lib/ui-kit/popover/popover-longpress.directive.d.ts +1 -1
  587. package/lib/ui-kit/popover/popover.component.d.ts +1 -1
  588. package/lib/ui-kit/popover/popover.directive.d.ts +1 -1
  589. package/lib/ui-kit/popover-hover/popover-hover.component.d.ts +1 -1
  590. package/lib/ui-kit/popover-hover/popover-hover.directive.d.ts +1 -1
  591. package/lib/ui-kit/smiley-dialog/smiley-dialog.component.d.ts +1 -1
  592. package/lib/ui-kit/smiley-dialog-inline/smiley-dialog-inline.component.d.ts +1 -1
  593. package/lib/ui-kit/snack-bar/snack-bar.component.d.ts +1 -1
  594. package/lib/ui-kit/time-picker/time-picker/time-picker.component.d.ts +1 -1
  595. package/lib/ui-kit/tooltip/tooltip.directive.d.ts +1 -1
  596. package/lib/workflow/grc-object/grc-object-container/grc-object-container.component.d.ts +1 -1
  597. package/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.d.ts +1 -1
  598. package/lib/workflow/shared/components/attributes/attributes-dropdown/attributes-dropdown.component.d.ts +1 -1
  599. package/lib/workflow/shared/components/attributes/attributes-text-box/attributes-text-box.component.d.ts +1 -1
  600. package/lib/workflow/shared/components/attributes/attributes.component.d.ts +1 -1
  601. package/lib/workflow/shared/components/attributes/date-picker/date-picker.component.d.ts +1 -1
  602. package/lib/workflow/shared/components/edit-mode/edit-mode.component.d.ts +1 -1
  603. package/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.d.ts +1 -1
  604. package/lib/workflow/shared/components/grc-object-list/grc-object-list.component.d.ts +1 -1
  605. package/lib/workflow/shared/components/grc-responsibility-listing/grc-responsibility-listing.component.d.ts +1 -1
  606. package/lib/workflow/shared/components/grc-risk-listing/grc-risk-listing.component.d.ts +1 -1
  607. package/lib/workflow/shared/components/grc-sub-category-listing/grc-sub-category-listing.component.d.ts +1 -1
  608. package/lib/workflow/shared/components/list-popup/list-popup.component.d.ts +1 -1
  609. package/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.d.ts +1 -1
  610. package/lib/workflow/shared/components/risk-category-risk-listing/risk-category-risk-listing.component.d.ts +1 -1
  611. package/lib/workflow/shared/components/table-card/table-card.component.d.ts +1 -1
  612. package/lib/workflow/shared/components/text-field/text-field.component.d.ts +1 -1
  613. package/lib/workflow/shared/components/text-field-icon/text-field-icon.component.d.ts +1 -1
  614. package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.d.ts +1 -1
  615. package/lib/workflow-assessment/workflow-assessment.component.d.ts +1 -1
  616. package/lib/workflow-compliance/workflow-compliance.component.d.ts +1 -1
  617. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +1 -1
  618. package/lib/workflow-pagination/workflow-pagination.component.d.ts +1 -1
  619. package/lib/workflow-policy/workflow-policy.component.d.ts +7 -3
  620. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-loader/assessment-loader.component.d.ts +1 -1
  621. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +1 -1
  622. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-sub-loader/assessment-sub-loader.component.d.ts +1 -1
  623. package/lib/workflow-program/create-program-ui/assessment-picker/workflow-pagination/workflow-pagination.component.d.ts +1 -1
  624. package/lib/workflow-program/create-program-ui/checkbox/checkbox.component.d.ts +1 -1
  625. package/lib/workflow-program/create-program-ui/cs-switch/cs-switch.component.d.ts +1 -1
  626. package/lib/workflow-program/create-program-ui/custom-field/custom-field.component.d.ts +1 -1
  627. package/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.d.ts +1 -1
  628. package/lib/workflow-program/create-program-ui/define-framework-listing/loader/loader.component.d.ts +1 -1
  629. package/lib/workflow-program/create-program-ui/directives/input-trim.directive.d.ts +1 -1
  630. package/lib/workflow-program/create-program-ui/file-pill/file-pill.component.d.ts +1 -1
  631. package/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.d.ts +1 -1
  632. package/lib/workflow-program/create-program-ui/form-field/form-field.component.d.ts +1 -1
  633. package/lib/workflow-program/create-program-ui/input-with-pill/input-with-pill.component.d.ts +1 -1
  634. package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +1 -1
  635. package/lib/workflow-program/create-program-ui/role-list/loader/loader.component.d.ts +1 -1
  636. package/lib/workflow-program/create-program-ui/role-list/role-list.component.d.ts +1 -1
  637. package/lib/workflow-program/create-program-ui/tab-selector/tab-selector.component.d.ts +1 -1
  638. package/lib/workflow-program/create-program-ui/tick-mark/tick-mark.component.d.ts +1 -1
  639. package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.d.ts +1 -1
  640. package/lib/workflow-program/workflow-program.component.d.ts +1 -1
  641. package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
  642. package/lib/workflow-services/auth.service.d.ts +0 -1
  643. package/lib/workflow-services/log-issue.service.d.ts +1 -0
  644. package/lib/workflow-survey-form/workflow-survey-form.component.d.ts +1 -1
  645. package/package.json +5 -12
@@ -0,0 +1,72 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../../ui-kit/tooltip/tooltip.directive";
5
+ import * as i3 from "../v-loader/loader/loader.component";
6
+ export class BulkResponsibilityViewComponent {
7
+ constructor() {
8
+ this.loader = false;
9
+ this.tabType = 'frequency';
10
+ this.submitResponsibilityBulkUpload = new EventEmitter();
11
+ this.cancel = new EventEmitter();
12
+ this.selectedTab = new EventEmitter();
13
+ this.responsibilityType = 'singleTab';
14
+ this.finalResponsibilities = 0;
15
+ this.isConfirmClickable = false;
16
+ this.responsibilityMultiTabBulkUpload = [];
17
+ }
18
+ ngOnChanges() {
19
+ if (this.responsibilityBulkUpload) {
20
+ this.finalResponsibilities = 0;
21
+ this.responsibilityBulkUpload?.reports.forEach((risk) => {
22
+ if (risk.isValid) {
23
+ this.finalResponsibilities += 1;
24
+ }
25
+ });
26
+ }
27
+ if (this.responsibilityType === 'multiTab') {
28
+ this.responsibilityMultiTabBulkUpload =
29
+ this.bulkUpload?.frequency?.reports?.concat(this.bulkUpload?.ongoing?.reports, this.bulkUpload?.onCompletion?.reports);
30
+ this.isConfirmClickable = this.responsibilityMultiTabBulkUpload?.some((responsibility) => responsibility.isValid);
31
+ this.finalResponsibilities = 0;
32
+ this.responsibilityMultiTabBulkUpload?.forEach((risk) => {
33
+ if (risk.isValid) {
34
+ this.finalResponsibilities += 1;
35
+ }
36
+ });
37
+ }
38
+ }
39
+ submit() {
40
+ this.submitResponsibilityBulkUpload.emit();
41
+ }
42
+ close() {
43
+ this.cancel.emit();
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BulkResponsibilityViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: BulkResponsibilityViewComponent, selector: "app-bulk-responsibility-view", inputs: { responsibilityBulkUpload: "responsibilityBulkUpload", fileName: "fileName", defaultOwner: "defaultOwner", loader: "loader", tabType: "tabType", bulkUpload: "bulkUpload", responsibilityType: "responsibilityType" }, outputs: { submitResponsibilityBulkUpload: "submitResponsibilityBulkUpload", cancel: "cancel", selectedTab: "selectedTab" }, usesOnChanges: true, ngImport: i0, template: "\r\n<ng-container *ngIf=\"responsibilityType === 'singleTab'\">\r\n<div class=\"bulk-view\">\r\n <div class=\"bulk-view-head\">\r\n <h2 class=\"bulk-view-title\">\r\n {{fileName}}\r\n </h2>\r\n </div>\r\n <div class=\"bulk-view-body\">\r\n <div class=\"exel-view\">\r\n <div class=\"exel-view-row head\">\r\n <div class=\"exel-view-column sl-no\">#</div>\r\n <div class=\"exel-view-column\" *ngFor=\"let heading of responsibilityBulkUpload?.header\"\r\n [class.large]=\"heading && heading.startsWith('Inherent')\">\r\n <ng-container *ngIf=\"heading && !(heading.startsWith('Due')) && !(heading.startsWith('Oversight'))\">\r\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && heading.startsWith('Due')\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Due Date</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\">Day</div>\r\n <div class=\"exel-view-column\">Month</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && heading.startsWith('Oversight')\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Oversight </div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\">Always Notify</div>\r\n <div class=\"exel-view-column\">Notify on Failure</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\r\n <div class=\"exel-view-column sl-no\">{{i+1}}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">{{report?.responsibilityName}}\r\n <i *ngIf=\"!report?.responsibilityName\" class=\"icons\"\r\n [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\"\r\n delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\">\r\n {{report?.assignor}}\r\n <i *ngIf=\"((report?.assignor) && (report?.notifyOnFailure == report?.assignor||report?.alwaysNotify == report?.assignor))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Overseer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n<!--\r\n <i *ngIf=\"((report?.assignor) && (report?.reviewer == report?.assignor))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i> -->\r\n </div>\r\n <div class=\"exel-view-column\">\r\n {{report?.assignee}}\r\n\r\n <i *ngIf=\"((report?.assignee) && (report?.notifyOnFailure == report?.assignee||report?.alwaysNotify == report?.assignee))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Overseer cannot also be the Assignee of this responsibility. Select another user as the Assignee.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n\r\n <i *ngIf=\"((report?.assignee) && (report?.reviewer == report?.assignee))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Reviewer cannot also be the Assignee of this responsibility. Select another user as the Assignee.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n <div class=\"exel-view-column\" id=\"resCategory\" *ngIf=\"report?.responsibilityCategory!==null\">{{report?.responsibilityCategory}}</div>\r\n <div class=\"exel-view-column\" [class.error]=\"!report.frequency\">{{report?.frequency}}\r\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column multi-column\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column\" [class.error]=\"!report.isValidDueDate\">{{report?.day}}\r\n <i *ngIf=\"!report?.isValidDueDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"!report.isValidDueDate\">{{report?.month}}\r\n <i *ngIf=\"!report?.isValidDueDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\r\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\r\n <div class=\"exel-view-column\">{{report?.reportClass}}</div>\r\n <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\r\n <div class=\"exel-view-column\">\r\n {{report?.reviewer}}\r\n\r\n <i *ngIf=\"(report?.reviewer) && ((report?.reviewer == report?.alwaysNotify) || (report?.reviewer == report?.notifyOnFailure))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Overseer cannot also be the Reviewer of this responsibility. Select another user as the Reviewer'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n\r\n <i *ngIf=\"report?.reviewer && (report?.reviewer == report?.assignee)\" class=\"icons\"\r\n [appTooltip]=\"'The Assignee cannot also be the Reviewer of this responsibility. Select another user as the Reviewer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <!-- <i *ngIf=\"(report?.reviewer && report?.assignor)\"\r\n class=\"icons\"\r\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i> -->\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\r\n <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\r\n <div class=\"exel-view-column\">{{report?.formatForResponsibility}}</div>\r\n <div class=\"exel-view-column\">{{report?.notes}}</div>\r\n <div class=\"exel-view-column\">{{report?.documentEvidenceRequired}}</div>\r\n <div class=\"exel-view-column multi-column\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column\">\r\n {{report?.alwaysNotify}}\r\n <i *ngIf=\"(report?.alwaysNotify) && ((report?.reviewer == report?.alwaysNotify))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n\r\n <i *ngIf=\"report?.alwaysNotify && (report?.alwaysNotify == report?.assignee)\" class=\"icons\"\r\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <i *ngIf=\"((report?.alwaysNotify && report?.assignor) && (report?.alwaysNotify == report?.assignor)) ||((report?.alwaysNotify && (!report?.assignor)) && (report?.alwaysNotify == defaultOwner))\"\r\n class=\"icons\"\r\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n <div class=\"exel-view-column\">\r\n {{report?.notifyOnFailure}}\r\n <i *ngIf=\"(report?.notifyOnFailure) && ((report?.reviewer == report?.notifyOnFailure))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n\r\n <i *ngIf=\"report?.notifyOnFailure && (report?.notifyOnFailure == report?.assignee)\" class=\"icons\"\r\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <i *ngIf=\"((report?.notifyOnFailure && report?.assignor) && (report?.notifyOnFailure == report?.assignor)) ||((report?.notifyOnFailure && (!report?.assignor)) && (report?.notifyOnFailure == defaultOwner))\"\r\n class=\"icons\"\r\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\r\n <div class=\"exel-view-column\">{{report?.objective}}</div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"bulk-view-footer\">\r\n <div class=\"left\">\r\n <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\r\n uploaded.</p>\r\n </div>\r\n <div class=\"right\">\r\n <button (click)=\"close()\" id=\"bulk-resp-cancel\" >Cancel</button>\r\n <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"finalResponsibilities<1\" class=\"blue\">Confirm</button>\r\n </div>\r\n </div>\r\n</div>\r\n<app-loader *ngIf=\"loader\"></app-loader>\r\n\r\n</ng-container>\r\n\r\n<!-- --------------------------------------------------------------------upward is new one-------------------- -->\r\n<app-loader *ngIf=\"loader\"></app-loader>\r\n\r\n\r\n\r\n\r\n\r\n\r\n<!-- HTML for multiple tabs -->\r\n<ng-container *ngIf=\"responsibilityType === 'multiTab'\">\r\n <div class=\"bulk-view\">\r\n <div class=\"bulk-view-head\">\r\n <h2 class=\"bulk-view-title\">\r\n {{fileName}}\r\n </h2>\r\n </div>\r\n <div class=\"bulk-view-body bulk\">\r\n <div class=\"exel-view\">\r\n <div class=\"exel-view-row head\">\r\n <div class=\"exel-view-column sl-no\">#</div>\r\n <div class=\"exel-view-column\">Responsibility Name <span class=\"required\">*</span></div>\r\n <div class=\"exel-view-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Program</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-column\">Program Type</div>\r\n <div class=\"exel-view-column\">Program</div>\r\n <div class=\"exel-view-column\">Program Category</div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\">Entrusted By</div>\r\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Entrust To <span class=\"required\">*</span></div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\">Person or Group<span class=\"required\">*</span></div>\r\n <div class=\"exel-view-column\">All or Any Persons</div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\">Key Responsibility?</div>\r\n <div class=\"exel-view-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\r\n <div class=\"exel-view-row\">\r\n <!-- <div class=\"exel-view-column large\">Frequency of Occurrence and Completion Window <span class=\"required\">*</span></div> -->\r\n <div class=\"exel-view-column large\">{{responsibilityBulkUpload?.header.includes('Program') ? responsibilityBulkUpload?.header[8]?.slice(0, -1) : responsibilityBulkUpload?.header[5]?.slice(0, -1)}}<span class=\"required\">*</span></div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\r\n <ng-container *ngIf=\"tabType === 'frequency'\">\r\n <div class=\"exel-view-column\">Frequency <span class=\"required\">*</span></div>\r\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Day)</span></div>\r\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Month)</span></div>\r\n <div class=\"exel-view-column\">Start <span class=\"info-text\">(No. of days before the due date)</span></div>\r\n <div class=\"exel-view-column\">Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be completed on the due date)</span></div>\r\n </ng-container>\r\n <ng-container *ngIf=\"tabType === 'ongoing'\">\r\n <div class=\"exel-view-column\">Ongoing Frequency <span class=\"required\">*</span></div>\r\n <div class=\"exel-view-column\">Set a Reminder?</div>\r\n <div class=\"exel-view-column\">Frequency of Reminder</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"tabType === 'onCompletion'\">\r\n <div class=\"exel-view-column\">On Completion of Frequency <span class=\"required\">*</span></div>\r\n <div class=\"exel-view-column\">Parent Responsibility<span class=\"info-text\">(Day)</span></div>\r\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\" appTooltip=\"(No. of days after completion of the Parent Responsibility)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after completion of the Parent Responsibility)</span></div>\r\n <div class=\"exel-view-column\">Start <span class=\"info-text\" appTooltip=\"(No. of days before the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days before the due date)</span></div>\r\n <div class=\"exel-view-column\">Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be completed on the due date)</span></div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\">Responsibility Centre</div>\r\n <div class=\"exel-view-column\">Risk Class</div>\r\n <div class=\"exel-view-column\">Objective</div>\r\n <div class=\"exel-view-column\">Notes</div>\r\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Format & Evidence</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\" [class.three-column]=\"false\">\r\n <div class=\"exel-view-column\" [class.small-column]=\"true\">Format</div>\r\n <div class=\"exel-view-column\">Format For Responsibility (link)</div>\r\n <div class=\"exel-view-column\" [class.small-column]=\"true\">Evidence</div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"exel-view-column\">Assessments or Checkpoints</div> -->\r\n <div class=\"exel-view-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Review of Responsibility</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-column\">Reviewer</div>\r\n <div class=\"exel-view-column\">Review Start <span class=\"info-text\">(No. of days before the due date)</span></div>\r\n <div class=\"exel-view-column\">Review Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be reviewed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be reviewed on the due date)</span></div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Overseer</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\">Always Notify</div>\r\n <div class=\"exel-view-column\">Notify on Failure</div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"exel-view-column\">Overseer</div> -->\r\n\r\n </div>\r\n <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\r\n <div class=\"exel-view-column sl-no\" [class.error]=\"!report?.isValid\">{{i+1}}</div>\r\n <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">{{report?.responsibilityName}} <i *ngIf=\"!report.responsibilityName\" class=\"icons\" [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i></div>\r\n <div class=\"exel-view-column multi-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.error]=\"false\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-column\">{{report?.programType}}</div>\r\n <div class=\"exel-view-column\">{{report?.program}}</div>\r\n <div class=\"exel-view-column\">{{report?.programCategory}}</div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.assignor}}\r\n <!-- <i *ngIf=\"((report?.assignor) && (report?.reviewer === report?.assignor))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i> -->\r\n </div>\r\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.assignee || !report?.userValidateWithProgram?.isValidAssignee || (!report?.isValidUser)\">{{report?.assignee}}\r\n <!-- || (!report?.isValidUser) -->\r\n <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <i *ngIf=\"(report?.assignee) && !report?.userValidateWithProgram?.isValidAssignee\"\r\n class=\"icons\"\r\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.assigneeType}}</div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\r\n <div class=\"exel-view-column multi-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\r\n <ng-container *ngIf=\"tabType === 'frequency'\">\r\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\r\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">{{report?.day}}\r\n <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">{{report?.month}}\r\n <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\r\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"tabType === 'ongoing'\">\r\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\r\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.setReminder}}</div>\r\n <div class=\"exel-view-column\">{{report?.frequencyReminder}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"tabType === 'onCompletion'\">\r\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\r\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.parentResponsibility\">{{report?.parentResponsibility}}\r\n <i *ngIf=\"!report?.parentResponsibility\" class=\"icons\" [appTooltip]=\"'Select a parent responsibility on whose completion this responsibility will become active.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.dueDate}}</div>\r\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\r\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\r\n <div class=\"exel-view-column\">{{report?.reportClass}}</div>\r\n <div class=\"exel-view-column\">{{report?.objective}}</div>\r\n <div class=\"exel-view-column\">{{report?.notes}}</div>\r\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column multi-column\">\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.isFormat}}</div>\r\n <div class=\"exel-view-column\">{{report?.formatForResponsibility}}</div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.documentEvidenceRequired}}</div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"exel-view-column\">{{report?.assessments}}</div> -->\r\n <div class=\"exel-view-column multi-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"report?.reviewer && (\r\n !report?.userValidateWithProgram?.isValidReviewer )\">{{report?.reviewer}}\r\n\r\n <!-- <i *ngIf=\"(report?.reviewer && report?.reviewer === report?.assignor)\"\r\n class=\"icons\"\r\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i> -->\r\n <i *ngIf=\"report?.reviewer && !report?.userValidateWithProgram?.isValidReviewer\"\r\n class=\"icons\"\r\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\r\n <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"report?.overseer && (\r\n !report?.userValidateWithProgram?.isValidOverseer )\">\r\n {{report?.overseer}}\r\n\r\n <i *ngIf=\"(report?.overseer) && !report?.userValidateWithProgram?.isValidOverseer\"\r\n class=\"icons\"\r\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"report?.notifyOnFailure && (\r\n !report?.userValidateWithProgram?.isValidNotifyOnFailure )\">\r\n {{report?.notifyOnFailure}}\r\n\r\n <i *ngIf=\"(report?.notifyOnFailure) && !report?.userValidateWithProgram?.isValidNotifyOnFailure\"\r\n class=\"icons\"\r\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"exel-view-column\" [class.error]=\"(report?.overseer) && ((report?.overseer === report?.assignee) ||(report?.reviewer === report?.overseer) || (report?.overseer == report?.assignor) || (!report?.userValidateWithProgram?.isValidOverseer))\">\r\n {{report?.overseer}}\r\n <i *ngIf=\"(report?.overseer) && ((report?.reviewer === report?.overseer))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n\r\n <i *ngIf=\"report?.overseer && (report?.overseer === report?.assignee)\" class=\"icons\"\r\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <i *ngIf=\"((report?.overseer) && (report?.overseer == report?.assignor))\"\r\n class=\"icons\"\r\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <i *ngIf=\"!report?.userValidateWithProgram?.isValidOverseer\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Selected user is not a valid overseer for selected program.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div> -->\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!-- ------------------------------------------------old code dynamic------------------------------------------------- -->\r\n\r\n <!-- *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\" -->\r\n </div>\r\n </div>\r\n <div class=\"bulk-view-option\">\r\n <button *ngIf=\"bulkUpload?.frequency?.reports?.length\" [class.active]=\"tabType === 'frequency'\" (click)=\"selectedTab.emit('frequency')\">Frequency Responsibilities</button>\r\n <button *ngIf=\"bulkUpload?.ongoing?.reports?.length\" [class.active]=\"tabType === 'ongoing'\" (click)=\"selectedTab.emit('ongoing')\">Ongoing Responsibilities</button>\r\n <button *ngIf=\"bulkUpload?.onCompletion?.reports?.length\" [class.active]=\"tabType === 'onCompletion'\" (click)=\"selectedTab.emit('onCompletion')\">On Completion Responsibilities</button>\r\n </div>\r\n <div class=\"bulk-view-footer\">\r\n <!-- <div class=\"left\">\r\n <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\r\n uploaded.</p>\r\n </div> -->\r\n <div class=\"left\">\r\n <p>{{finalResponsibilities}} out of {{responsibilityMultiTabBulkUpload?.length}} {{responsibilityMultiTabBulkUpload?.length > 1 ? 'responsibilities' : 'responsibility'}} will be\r\n uploaded.</p>\r\n </div>\r\n <div class=\"right\">\r\n <button (click)=\"close()\" id=\"bulk-resp-cancel\">Cancel</button>\r\n <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"!isConfirmClickable\" class=\"blue\">Confirm</button>\r\n <!-- finalResponsibilities < 1 -->\r\n </div>\r\n </div>\r\n </div>\r\n <app-loader *ngIf=\"loader\"></app-loader>\r\n\r\n</ng-container>\r\n\r\n <!-- --------------------------------------------------------------------upward is new one-------------------- -->\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#fff}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0;word-break:unset}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #EB2424!important;padding-right:24px}.bulk-view-body .exel-view-column.error+.error{border-left:none!important}.bulk-view-body .exel-view-column span.required{color:#eb2424;display:contents}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-body .exel-view-column.sl-no.error{background:#eb242424;border:none;padding-right:10px;border-bottom:1px solid #dcdcdc}.bulk-view-body .exel-view-column.multi-column{padding:0;border:none}.bulk-view-body .exel-view-column.multi-column .exel-view-row{height:100%}.bulk-view-body .exel-view-column.multi-column .exel-view-column{width:50%;min-width:50%}.bulk-view-body .exel-view-column.multi-column .exel-view-column+.exel-view-column{border-left:none}.bulk-view-body.bulk{height:calc(100vh - 142px)}.bulk-view-body.bulk .exel-view-row.head{position:sticky;top:0;z-index:1}.bulk-view-body.bulk .exel-view-row.head .exel-view-column{min-height:34px}.bulk-view-body.bulk .exel-view-row.head .exel-view-column .info-text{font-size:10px;display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 8px}.bulk-view-body.bulk .exel-view-row.two-column .exel-view-column{min-width:250px!important}.bulk-view-body.bulk .exel-view-row.three-column .exel-view-column,.bulk-view-body.bulk .exel-view-row.five-column .exel-view-column{width:200px;min-width:200px!important}.bulk-view-body.bulk .exel-view-column .exel-view-row .exel-view-column.small-column{width:120px;min-width:120px!important}.bulk-view-body.bulk .exel-view-column.multi-column .exel-view-column{min-width:unset}.bulk-view-body.bulk .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body.bulk .exel-view-column.three-column{width:600px;min-width:600px!important}.bulk-view-body.bulk .exel-view-column.five-column{width:1000px;min-width:1000px!important}.bulk-view-option{background:#fff;border-top:1px solid #f1f1f1;padding:0 20px;position:fixed;width:100%;bottom:50px;display:flex;align-items:center}.bulk-view-option button{background:transparent;border-radius:0;border:none;border-left:1px solid #f1f1f1;color:#747576;font-size:11px;font-weight:500;padding:0 .5rem;margin:0;height:2rem;position:relative}.bulk-view-option button:last-of-type{border-right:1px solid #f1f1f1}.bulk-view-option button.active{color:#1e5dd3}.bulk-view-option button.active:before{background:#fff;content:\"\";position:absolute;top:-1px;left:0;height:1px;width:100%}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e03d259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#fff}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1e5dd3}.bulk-view-footer .right button:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i3.LoaderComponent, selector: "app-loader" }] }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: BulkResponsibilityViewComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'app-bulk-responsibility-view', template: "\r\n<ng-container *ngIf=\"responsibilityType === 'singleTab'\">\r\n<div class=\"bulk-view\">\r\n <div class=\"bulk-view-head\">\r\n <h2 class=\"bulk-view-title\">\r\n {{fileName}}\r\n </h2>\r\n </div>\r\n <div class=\"bulk-view-body\">\r\n <div class=\"exel-view\">\r\n <div class=\"exel-view-row head\">\r\n <div class=\"exel-view-column sl-no\">#</div>\r\n <div class=\"exel-view-column\" *ngFor=\"let heading of responsibilityBulkUpload?.header\"\r\n [class.large]=\"heading && heading.startsWith('Inherent')\">\r\n <ng-container *ngIf=\"heading && !(heading.startsWith('Due')) && !(heading.startsWith('Oversight'))\">\r\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && heading.startsWith('Due')\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Due Date</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\">Day</div>\r\n <div class=\"exel-view-column\">Month</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && heading.startsWith('Oversight')\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Oversight </div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\">Always Notify</div>\r\n <div class=\"exel-view-column\">Notify on Failure</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\r\n <div class=\"exel-view-column sl-no\">{{i+1}}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">{{report?.responsibilityName}}\r\n <i *ngIf=\"!report?.responsibilityName\" class=\"icons\"\r\n [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\"\r\n delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\">\r\n {{report?.assignor}}\r\n <i *ngIf=\"((report?.assignor) && (report?.notifyOnFailure == report?.assignor||report?.alwaysNotify == report?.assignor))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Overseer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n<!--\r\n <i *ngIf=\"((report?.assignor) && (report?.reviewer == report?.assignor))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i> -->\r\n </div>\r\n <div class=\"exel-view-column\">\r\n {{report?.assignee}}\r\n\r\n <i *ngIf=\"((report?.assignee) && (report?.notifyOnFailure == report?.assignee||report?.alwaysNotify == report?.assignee))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Overseer cannot also be the Assignee of this responsibility. Select another user as the Assignee.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n\r\n <i *ngIf=\"((report?.assignee) && (report?.reviewer == report?.assignee))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Reviewer cannot also be the Assignee of this responsibility. Select another user as the Assignee.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n <div class=\"exel-view-column\" id=\"resCategory\" *ngIf=\"report?.responsibilityCategory!==null\">{{report?.responsibilityCategory}}</div>\r\n <div class=\"exel-view-column\" [class.error]=\"!report.frequency\">{{report?.frequency}}\r\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column multi-column\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column\" [class.error]=\"!report.isValidDueDate\">{{report?.day}}\r\n <i *ngIf=\"!report?.isValidDueDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"!report.isValidDueDate\">{{report?.month}}\r\n <i *ngIf=\"!report?.isValidDueDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\r\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\r\n <div class=\"exel-view-column\">{{report?.reportClass}}</div>\r\n <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\r\n <div class=\"exel-view-column\">\r\n {{report?.reviewer}}\r\n\r\n <i *ngIf=\"(report?.reviewer) && ((report?.reviewer == report?.alwaysNotify) || (report?.reviewer == report?.notifyOnFailure))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Overseer cannot also be the Reviewer of this responsibility. Select another user as the Reviewer'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n\r\n <i *ngIf=\"report?.reviewer && (report?.reviewer == report?.assignee)\" class=\"icons\"\r\n [appTooltip]=\"'The Assignee cannot also be the Reviewer of this responsibility. Select another user as the Reviewer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <!-- <i *ngIf=\"(report?.reviewer && report?.assignor)\"\r\n class=\"icons\"\r\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i> -->\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\r\n <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\r\n <div class=\"exel-view-column\">{{report?.formatForResponsibility}}</div>\r\n <div class=\"exel-view-column\">{{report?.notes}}</div>\r\n <div class=\"exel-view-column\">{{report?.documentEvidenceRequired}}</div>\r\n <div class=\"exel-view-column multi-column\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column\">\r\n {{report?.alwaysNotify}}\r\n <i *ngIf=\"(report?.alwaysNotify) && ((report?.reviewer == report?.alwaysNotify))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n\r\n <i *ngIf=\"report?.alwaysNotify && (report?.alwaysNotify == report?.assignee)\" class=\"icons\"\r\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <i *ngIf=\"((report?.alwaysNotify && report?.assignor) && (report?.alwaysNotify == report?.assignor)) ||((report?.alwaysNotify && (!report?.assignor)) && (report?.alwaysNotify == defaultOwner))\"\r\n class=\"icons\"\r\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n <div class=\"exel-view-column\">\r\n {{report?.notifyOnFailure}}\r\n <i *ngIf=\"(report?.notifyOnFailure) && ((report?.reviewer == report?.notifyOnFailure))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n\r\n <i *ngIf=\"report?.notifyOnFailure && (report?.notifyOnFailure == report?.assignee)\" class=\"icons\"\r\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <i *ngIf=\"((report?.notifyOnFailure && report?.assignor) && (report?.notifyOnFailure == report?.assignor)) ||((report?.notifyOnFailure && (!report?.assignor)) && (report?.notifyOnFailure == defaultOwner))\"\r\n class=\"icons\"\r\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\r\n <div class=\"exel-view-column\">{{report?.objective}}</div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"bulk-view-footer\">\r\n <div class=\"left\">\r\n <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\r\n uploaded.</p>\r\n </div>\r\n <div class=\"right\">\r\n <button (click)=\"close()\" id=\"bulk-resp-cancel\" >Cancel</button>\r\n <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"finalResponsibilities<1\" class=\"blue\">Confirm</button>\r\n </div>\r\n </div>\r\n</div>\r\n<app-loader *ngIf=\"loader\"></app-loader>\r\n\r\n</ng-container>\r\n\r\n<!-- --------------------------------------------------------------------upward is new one-------------------- -->\r\n<app-loader *ngIf=\"loader\"></app-loader>\r\n\r\n\r\n\r\n\r\n\r\n\r\n<!-- HTML for multiple tabs -->\r\n<ng-container *ngIf=\"responsibilityType === 'multiTab'\">\r\n <div class=\"bulk-view\">\r\n <div class=\"bulk-view-head\">\r\n <h2 class=\"bulk-view-title\">\r\n {{fileName}}\r\n </h2>\r\n </div>\r\n <div class=\"bulk-view-body bulk\">\r\n <div class=\"exel-view\">\r\n <div class=\"exel-view-row head\">\r\n <div class=\"exel-view-column sl-no\">#</div>\r\n <div class=\"exel-view-column\">Responsibility Name <span class=\"required\">*</span></div>\r\n <div class=\"exel-view-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Program</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-column\">Program Type</div>\r\n <div class=\"exel-view-column\">Program</div>\r\n <div class=\"exel-view-column\">Program Category</div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\">Entrusted By</div>\r\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Entrust To <span class=\"required\">*</span></div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\">Person or Group<span class=\"required\">*</span></div>\r\n <div class=\"exel-view-column\">All or Any Persons</div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\">Key Responsibility?</div>\r\n <div class=\"exel-view-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\r\n <div class=\"exel-view-row\">\r\n <!-- <div class=\"exel-view-column large\">Frequency of Occurrence and Completion Window <span class=\"required\">*</span></div> -->\r\n <div class=\"exel-view-column large\">{{responsibilityBulkUpload?.header.includes('Program') ? responsibilityBulkUpload?.header[8]?.slice(0, -1) : responsibilityBulkUpload?.header[5]?.slice(0, -1)}}<span class=\"required\">*</span></div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\r\n <ng-container *ngIf=\"tabType === 'frequency'\">\r\n <div class=\"exel-view-column\">Frequency <span class=\"required\">*</span></div>\r\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Day)</span></div>\r\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\">(Month)</span></div>\r\n <div class=\"exel-view-column\">Start <span class=\"info-text\">(No. of days before the due date)</span></div>\r\n <div class=\"exel-view-column\">Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be completed on the due date)</span></div>\r\n </ng-container>\r\n <ng-container *ngIf=\"tabType === 'ongoing'\">\r\n <div class=\"exel-view-column\">Ongoing Frequency <span class=\"required\">*</span></div>\r\n <div class=\"exel-view-column\">Set a Reminder?</div>\r\n <div class=\"exel-view-column\">Frequency of Reminder</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"tabType === 'onCompletion'\">\r\n <div class=\"exel-view-column\">On Completion of Frequency <span class=\"required\">*</span></div>\r\n <div class=\"exel-view-column\">Parent Responsibility<span class=\"info-text\">(Day)</span></div>\r\n <div class=\"exel-view-column\">Due Date <span class=\"info-text\" appTooltip=\"(No. of days after completion of the Parent Responsibility)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after completion of the Parent Responsibility)</span></div>\r\n <div class=\"exel-view-column\">Start <span class=\"info-text\" appTooltip=\"(No. of days before the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days before the due date)</span></div>\r\n <div class=\"exel-view-column\">Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be completed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be completed on the due date)</span></div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\">Responsibility Centre</div>\r\n <div class=\"exel-view-column\">Risk Class</div>\r\n <div class=\"exel-view-column\">Objective</div>\r\n <div class=\"exel-view-column\">Notes</div>\r\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Format & Evidence</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\" [class.three-column]=\"false\">\r\n <div class=\"exel-view-column\" [class.small-column]=\"true\">Format</div>\r\n <div class=\"exel-view-column\">Format For Responsibility (link)</div>\r\n <div class=\"exel-view-column\" [class.small-column]=\"true\">Evidence</div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"exel-view-column\">Assessments or Checkpoints</div> -->\r\n <div class=\"exel-view-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Review of Responsibility</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-column\">Reviewer</div>\r\n <div class=\"exel-view-column\">Review Start <span class=\"info-text\">(No. of days before the due date)</span></div>\r\n <div class=\"exel-view-column\">Review Fail <span class=\"info-text\" appTooltip=\"(No. of days after the due date. Select '0' if the responsibility must be reviewed on the due date)\" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">(No. of days after the due date. Select \"0\" if the responsibility must be reviewed on the due date)</span></div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Overseer</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\">Always Notify</div>\r\n <div class=\"exel-view-column\">Notify on Failure</div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"exel-view-column\">Overseer</div> -->\r\n\r\n </div>\r\n <div class=\"exel-view-row\" *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\">\r\n <div class=\"exel-view-column sl-no\" [class.error]=\"!report?.isValid\">{{i+1}}</div>\r\n <div class=\"exel-view-column\" [class.error]=\"!report.responsibilityName\">{{report?.responsibilityName}} <i *ngIf=\"!report.responsibilityName\" class=\"icons\" [appTooltip]=\"'Enter a name for this responsibility.'\" placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i></div>\r\n <div class=\"exel-view-column multi-column\" *ngIf=\"responsibilityBulkUpload?.header.includes('Program')\" [class.error]=\"false\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-column\">{{report?.programType}}</div>\r\n <div class=\"exel-view-column\">{{report?.program}}</div>\r\n <div class=\"exel-view-column\">{{report?.programCategory}}</div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.assignor}}\r\n <!-- <i *ngIf=\"((report?.assignor) && (report?.reviewer === report?.assignor))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Reviewer cannot also be the Assignor of this responsibility. Select another user as the Assignor.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i> -->\r\n </div>\r\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.assignee || !report?.userValidateWithProgram?.isValidAssignee || (!report?.isValidUser)\">{{report?.assignee}}\r\n <!-- || (!report?.isValidUser) -->\r\n <i *ngIf=\"(!report?.assignee) || (!report?.isValidUser)\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Select the user responsible for completing this responsibility. '\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <i *ngIf=\"(report?.assignee) && !report?.userValidateWithProgram?.isValidAssignee\"\r\n class=\"icons\"\r\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.assigneeType}}</div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.keyResponsibility}}</div>\r\n <div class=\"exel-view-column multi-column\" [class.five-column]=\"tabType === 'frequency' || tabType === 'onCompletion'\" [class.three-column]=\"tabType === 'ongoing'\">\r\n <ng-container *ngIf=\"tabType === 'frequency'\">\r\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\r\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">{{report?.day}}\r\n <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.validDate || report?.isPastDate\">{{report?.month}}\r\n <i *ngIf=\"!report?.validDate\" class=\"icons\" [appTooltip]=\"'Invalid Due Date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n <i *ngIf=\"report?.isPastDate\" class=\"icons\" [appTooltip]=\"'This date occurs in the past. Select a future date.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\r\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"tabType === 'ongoing'\">\r\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\r\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.setReminder}}</div>\r\n <div class=\"exel-view-column\">{{report?.frequencyReminder}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"tabType === 'onCompletion'\">\r\n <div class=\"exel-view-row multi-column\" [class.five-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.frequency\">{{report?.frequency}}\r\n <i *ngIf=\"!report?.frequency\" class=\"icons\" [appTooltip]=\"'Select a frequency for this responsibility.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"!report?.parentResponsibility\">{{report?.parentResponsibility}}\r\n <i *ngIf=\"!report?.parentResponsibility\" class=\"icons\" [appTooltip]=\"'Select a parent responsibility on whose completion this responsibility will become active.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.dueDate}}</div>\r\n <div class=\"exel-view-column\">{{report?.responsibilityWindow}}</div>\r\n <div class=\"exel-view-column\">{{report?.failedAfter}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.responsibilityCenter}}</div>\r\n <div class=\"exel-view-column\">{{report?.reportClass}}</div>\r\n <div class=\"exel-view-column\">{{report?.objective}}</div>\r\n <div class=\"exel-view-column\">{{report?.notes}}</div>\r\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column multi-column\">\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.isFormat}}</div>\r\n <div class=\"exel-view-column\">{{report?.formatForResponsibility}}</div>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-column\" [class.small-column]=\"true\">{{report?.documentEvidenceRequired}}</div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"exel-view-column\">{{report?.assessments}}</div> -->\r\n <div class=\"exel-view-column multi-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-row multi-column\" [class.three-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"report?.reviewer && (\r\n !report?.userValidateWithProgram?.isValidReviewer )\">{{report?.reviewer}}\r\n\r\n <!-- <i *ngIf=\"(report?.reviewer && report?.reviewer === report?.assignor)\"\r\n class=\"icons\"\r\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Reviewer of this responsibility.':'You cannot be a Reviewer of this responsibility since you are the assignor. ') +'Select another user as the Reviewer'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i> -->\r\n <i *ngIf=\"report?.reviewer && !report?.userValidateWithProgram?.isValidReviewer\"\r\n class=\"icons\"\r\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n <div class=\"exel-view-column\">{{report?.reviewToBeCompletedWithin}}</div>\r\n <div class=\"exel-view-column\">{{report?.reviewWillBeFailedAfter}}</div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"exel-view-column multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"report?.overseer && (\r\n !report?.userValidateWithProgram?.isValidOverseer )\">\r\n {{report?.overseer}}\r\n\r\n <i *ngIf=\"(report?.overseer) && !report?.userValidateWithProgram?.isValidOverseer\"\r\n class=\"icons\"\r\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"report?.notifyOnFailure && (\r\n !report?.userValidateWithProgram?.isValidNotifyOnFailure )\">\r\n {{report?.notifyOnFailure}}\r\n\r\n <i *ngIf=\"(report?.notifyOnFailure) && !report?.userValidateWithProgram?.isValidNotifyOnFailure\"\r\n class=\"icons\"\r\n [appTooltip]=\"'This user is not associated with the selected Program.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"exel-view-column\" [class.error]=\"(report?.overseer) && ((report?.overseer === report?.assignee) ||(report?.reviewer === report?.overseer) || (report?.overseer == report?.assignor) || (!report?.userValidateWithProgram?.isValidOverseer))\">\r\n {{report?.overseer}}\r\n <i *ngIf=\"(report?.overseer) && ((report?.reviewer === report?.overseer))\"\r\n class=\"icons\"\r\n [appTooltip]=\"'The Reviewer cannot also be the Overseer of this responsibility. Select another user as the Overseer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n\r\n <i *ngIf=\"report?.overseer && (report?.overseer === report?.assignee)\" class=\"icons\"\r\n [appTooltip]=\"'The Assignee cannot also be the Overseer of this responsibility. Select another user as the Overseer'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <i *ngIf=\"((report?.overseer) && (report?.overseer == report?.assignor))\"\r\n class=\"icons\"\r\n [appTooltip]=\"((report?.assignor)?'The Assignor cannot also be the Overseer of this responsibility. ':'You cannot be an Overseer of this responsibility since you are the Assignor. ') +'Select another user as the Overseer.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n <i *ngIf=\"!report?.userValidateWithProgram?.isValidOverseer\"\r\n class=\"icons\"\r\n [appTooltip]=\"'Selected user is not a valid overseer for selected program.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;\r\n </i>\r\n </div> -->\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n\r\n <!-- ------------------------------------------------old code dynamic------------------------------------------------- -->\r\n\r\n <!-- *ngFor=\"let report of responsibilityBulkUpload?.reports; let i = index\" -->\r\n </div>\r\n </div>\r\n <div class=\"bulk-view-option\">\r\n <button *ngIf=\"bulkUpload?.frequency?.reports?.length\" [class.active]=\"tabType === 'frequency'\" (click)=\"selectedTab.emit('frequency')\">Frequency Responsibilities</button>\r\n <button *ngIf=\"bulkUpload?.ongoing?.reports?.length\" [class.active]=\"tabType === 'ongoing'\" (click)=\"selectedTab.emit('ongoing')\">Ongoing Responsibilities</button>\r\n <button *ngIf=\"bulkUpload?.onCompletion?.reports?.length\" [class.active]=\"tabType === 'onCompletion'\" (click)=\"selectedTab.emit('onCompletion')\">On Completion Responsibilities</button>\r\n </div>\r\n <div class=\"bulk-view-footer\">\r\n <!-- <div class=\"left\">\r\n <p>{{finalResponsibilities}} out of {{responsibilityBulkUpload?.reports?.length}} responsibilities will be\r\n uploaded.</p>\r\n </div> -->\r\n <div class=\"left\">\r\n <p>{{finalResponsibilities}} out of {{responsibilityMultiTabBulkUpload?.length}} {{responsibilityMultiTabBulkUpload?.length > 1 ? 'responsibilities' : 'responsibility'}} will be\r\n uploaded.</p>\r\n </div>\r\n <div class=\"right\">\r\n <button (click)=\"close()\" id=\"bulk-resp-cancel\">Cancel</button>\r\n <button (click)=\"submit()\" id=\"bulk-resp-confirm\" [disabled]=\"!isConfirmClickable\" class=\"blue\">Confirm</button>\r\n <!-- finalResponsibilities < 1 -->\r\n </div>\r\n </div>\r\n </div>\r\n <app-loader *ngIf=\"loader\"></app-loader>\r\n\r\n</ng-container>\r\n\r\n <!-- --------------------------------------------------------------------upward is new one-------------------- -->\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#fff}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0;word-break:unset}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #EB2424!important;padding-right:24px}.bulk-view-body .exel-view-column.error+.error{border-left:none!important}.bulk-view-body .exel-view-column span.required{color:#eb2424;display:contents}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-body .exel-view-column.sl-no.error{background:#eb242424;border:none;padding-right:10px;border-bottom:1px solid #dcdcdc}.bulk-view-body .exel-view-column.multi-column{padding:0;border:none}.bulk-view-body .exel-view-column.multi-column .exel-view-row{height:100%}.bulk-view-body .exel-view-column.multi-column .exel-view-column{width:50%;min-width:50%}.bulk-view-body .exel-view-column.multi-column .exel-view-column+.exel-view-column{border-left:none}.bulk-view-body.bulk{height:calc(100vh - 142px)}.bulk-view-body.bulk .exel-view-row.head{position:sticky;top:0;z-index:1}.bulk-view-body.bulk .exel-view-row.head .exel-view-column{min-height:34px}.bulk-view-body.bulk .exel-view-row.head .exel-view-column .info-text{font-size:10px;display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding:0 8px}.bulk-view-body.bulk .exel-view-row.two-column .exel-view-column{min-width:250px!important}.bulk-view-body.bulk .exel-view-row.three-column .exel-view-column,.bulk-view-body.bulk .exel-view-row.five-column .exel-view-column{width:200px;min-width:200px!important}.bulk-view-body.bulk .exel-view-column .exel-view-row .exel-view-column.small-column{width:120px;min-width:120px!important}.bulk-view-body.bulk .exel-view-column.multi-column .exel-view-column{min-width:unset}.bulk-view-body.bulk .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body.bulk .exel-view-column.three-column{width:600px;min-width:600px!important}.bulk-view-body.bulk .exel-view-column.five-column{width:1000px;min-width:1000px!important}.bulk-view-option{background:#fff;border-top:1px solid #f1f1f1;padding:0 20px;position:fixed;width:100%;bottom:50px;display:flex;align-items:center}.bulk-view-option button{background:transparent;border-radius:0;border:none;border-left:1px solid #f1f1f1;color:#747576;font-size:11px;font-weight:500;padding:0 .5rem;margin:0;height:2rem;position:relative}.bulk-view-option button:last-of-type{border-right:1px solid #f1f1f1}.bulk-view-option button.active{color:#1e5dd3}.bulk-view-option button.active:before{background:#fff;content:\"\";position:absolute;top:-1px;left:0;height:1px;width:100%}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e03d259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#fff}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1e5dd3}.bulk-view-footer .right button:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\n"] }]
51
+ }], propDecorators: { responsibilityBulkUpload: [{
52
+ type: Input
53
+ }], fileName: [{
54
+ type: Input
55
+ }], defaultOwner: [{
56
+ type: Input
57
+ }], loader: [{
58
+ type: Input
59
+ }], tabType: [{
60
+ type: Input
61
+ }], bulkUpload: [{
62
+ type: Input
63
+ }], submitResponsibilityBulkUpload: [{
64
+ type: Output
65
+ }], cancel: [{
66
+ type: Output
67
+ }], selectedTab: [{
68
+ type: Output
69
+ }], responsibilityType: [{
70
+ type: Input
71
+ }] } });
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1yZXNwb25zaWJpbGl0eS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYnVsay1yZXNwb25zaWJpbGl0eS12aWV3L2J1bGstcmVzcG9uc2liaWxpdHktdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2J1bGstcmVzcG9uc2liaWxpdHktdmlldy9idWxrLXJlc3BvbnNpYmlsaXR5LXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPdkUsTUFBTSxPQUFPLCtCQUErQjtJQUw1QztRQVNXLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixZQUFPLEdBQTZDLFdBQVcsQ0FBQztRQUcvRCxtQ0FBOEIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyx1QkFBa0IsR0FBRyxXQUFXLENBQUM7UUFDMUMsMEJBQXFCLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUNwQyxxQ0FBZ0MsR0FBUSxFQUFFLENBQUM7S0FvQzVDO0lBbENDLFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNqQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQzNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLHFCQUFxQixJQUFJLENBQUMsQ0FBQztpQkFDakM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEtBQUssVUFBVSxFQUFFO1lBQzFDLElBQUksQ0FBQyxnQ0FBZ0M7Z0JBQ25DLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQ3pDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFDakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUN2QyxDQUFDO1lBQ0osSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxJQUFJLENBQ25FLENBQUMsY0FBbUIsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FDaEQsQ0FBQztZQUNGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUMzRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLENBQUM7aUJBQ2pDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDOytHQWpEVSwrQkFBK0I7bUdBQS9CLCtCQUErQixzYkNQNUMsdTZ2Q0EyZkE7OzRGRHBmYSwrQkFBK0I7a0JBTDNDLFNBQVM7K0JBQ0UsOEJBQThCOzhCQUsvQix3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFSSw4QkFBOEI7c0JBQXZDLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0Usa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJ1bGstcmVzcG9uc2liaWxpdHktdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2J1bGstcmVzcG9uc2liaWxpdHktdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYnVsay1yZXNwb25zaWJpbGl0eS12aWV3LmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdWxrUmVzcG9uc2liaWxpdHlWaWV3Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQhOiBhbnk7XHJcbiAgQElucHV0KCkgZmlsZU5hbWUhOiBhbnk7XHJcbiAgQElucHV0KCkgZGVmYXVsdE93bmVyITogYW55O1xyXG4gIEBJbnB1dCgpIGxvYWRlciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRhYlR5cGU6ICdmcmVxdWVuY3knIHwgJ29uZ29pbmcnIHwgJ29uQ29tcGxldGlvbicgPSAnZnJlcXVlbmN5JztcclxuICBASW5wdXQoKSBidWxrVXBsb2FkOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBzdWJtaXRSZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRUYWIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgcmVzcG9uc2liaWxpdHlUeXBlID0gJ3NpbmdsZVRhYic7XHJcbiAgZmluYWxSZXNwb25zaWJpbGl0aWVzID0gMDtcclxuICBpc0NvbmZpcm1DbGlja2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZXNwb25zaWJpbGl0eU11bHRpVGFiQnVsa1VwbG9hZDogYW55ID0gW107XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgaWYgKHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkKSB7XHJcbiAgICAgIHRoaXMuZmluYWxSZXNwb25zaWJpbGl0aWVzID0gMDtcclxuICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnJlcG9ydHMuZm9yRWFjaCgocmlzazogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJpc2suaXNWYWxpZCkge1xyXG4gICAgICAgICAgdGhpcy5maW5hbFJlc3BvbnNpYmlsaXRpZXMgKz0gMTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVzcG9uc2liaWxpdHlUeXBlID09PSAnbXVsdGlUYWInKSB7XHJcbiAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlNdWx0aVRhYkJ1bGtVcGxvYWQgPVxyXG4gICAgICAgIHRoaXMuYnVsa1VwbG9hZD8uZnJlcXVlbmN5Py5yZXBvcnRzPy5jb25jYXQoXHJcbiAgICAgICAgICB0aGlzLmJ1bGtVcGxvYWQ/Lm9uZ29pbmc/LnJlcG9ydHMsXHJcbiAgICAgICAgICB0aGlzLmJ1bGtVcGxvYWQ/Lm9uQ29tcGxldGlvbj8ucmVwb3J0c1xyXG4gICAgICAgICk7XHJcbiAgICAgIHRoaXMuaXNDb25maXJtQ2xpY2thYmxlID0gdGhpcy5yZXNwb25zaWJpbGl0eU11bHRpVGFiQnVsa1VwbG9hZD8uc29tZShcclxuICAgICAgICAocmVzcG9uc2liaWxpdHk6IGFueSkgPT4gcmVzcG9uc2liaWxpdHkuaXNWYWxpZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmZpbmFsUmVzcG9uc2liaWxpdGllcyA9IDA7XHJcbiAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlNdWx0aVRhYkJ1bGtVcGxvYWQ/LmZvckVhY2goKHJpc2s6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyaXNrLmlzVmFsaWQpIHtcclxuICAgICAgICAgIHRoaXMuZmluYWxSZXNwb25zaWJpbGl0aWVzICs9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN1Ym1pdCgpIHtcclxuICAgIHRoaXMuc3VibWl0UmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCJcclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3BvbnNpYmlsaXR5VHlwZSA9PT0gJ3NpbmdsZVRhYidcIj5cclxuPGRpdiBjbGFzcz1cImJ1bGstdmlld1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImJ1bGstdmlldy1oZWFkXCI+XHJcbiAgICAgICAgPGgyIGNsYXNzPVwiYnVsay12aWV3LXRpdGxlXCI+XHJcbiAgICAgICAgICAgIHt7ZmlsZU5hbWV9fVxyXG4gICAgICAgIDwvaDI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXctYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgaGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gc2wtbm9cIj4jPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiICpuZ0Zvcj1cImxldCBoZWFkaW5nIG9mIHJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uaGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MubGFyZ2VdPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ0luaGVyZW50JylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiAhKGhlYWRpbmcuc3RhcnRzV2l0aCgnRHVlJykpICYmICEoaGVhZGluZy5zdGFydHNXaXRoKCdPdmVyc2lnaHQnKSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3soaGVhZGluZy5pbmNsdWRlcygnKicpPyBoZWFkaW5nLnJlcGxhY2UoJyonLCAnJykgOiBoZWFkaW5nKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGVhZGluZy5pbmNsdWRlcygnKicpXCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhlYWRpbmcgJiYgaGVhZGluZy5zdGFydHNXaXRoKCdEdWUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5EdWUgRGF0ZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkRheTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Nb250aDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ092ZXJzaWdodCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPk92ZXJzaWdodCA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5BbHdheXMgTm90aWZ5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPk5vdGlmeSBvbiBGYWlsdXJlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIiAqbmdGb3I9XCJsZXQgcmVwb3J0IG9mIHJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8ucmVwb3J0czsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gc2wtbm9cIj57e2krMX19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydC5yZXNwb25zaWJpbGl0eU5hbWVcIj57e3JlcG9ydD8ucmVzcG9uc2liaWxpdHlOYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LnJlc3BvbnNpYmlsaXR5TmFtZVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInRW50ZXIgYSBuYW1lIGZvciB0aGlzIHJlc3BvbnNpYmlsaXR5LidcIiBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICB7e3JlcG9ydD8uYXNzaWdub3J9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKChyZXBvcnQ/LmFzc2lnbm9yKSAmJiAocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgPT0gcmVwb3J0Py5hc3NpZ25vcnx8cmVwb3J0Py5hbHdheXNOb3RpZnkgPT0gcmVwb3J0Py5hc3NpZ25vcikpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgT3ZlcnNlZXIgY2Fubm90IGFsc28gYmUgdGhlIEFzc2lnbm9yIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIEFzc2lnbm9yLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgIDwvaT5cclxuPCEtLVxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKChyZXBvcnQ/LmFzc2lnbm9yKSAmJiAocmVwb3J0Py5yZXZpZXdlciA9PSByZXBvcnQ/LmFzc2lnbm9yKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBSZXZpZXdlciBjYW5ub3QgYWxzbyBiZSB0aGUgQXNzaWdub3Igb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgQXNzaWdub3IuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pPiAgICAgLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tyZXBvcnQ/LmFzc2lnbmVlfX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIoKHJlcG9ydD8uYXNzaWduZWUpICYmIChyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSA9PSByZXBvcnQ/LmFzc2lnbmVlfHxyZXBvcnQ/LmFsd2F5c05vdGlmeSA9PSByZXBvcnQ/LmFzc2lnbmVlKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBPdmVyc2VlciBjYW5ub3QgYWxzbyBiZSB0aGUgQXNzaWduZWUgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgQXNzaWduZWUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIigocmVwb3J0Py5hc3NpZ25lZSkgJiYgKHJlcG9ydD8ucmV2aWV3ZXIgPT0gcmVwb3J0Py5hc3NpZ25lZSkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgUmV2aWV3ZXIgY2Fubm90IGFsc28gYmUgdGhlIEFzc2lnbmVlIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIEFzc2lnbmVlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIighcmVwb3J0Py5hc3NpZ25lZSkgfHwgKCFyZXBvcnQ/LmlzVmFsaWRVc2VyKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1NlbGVjdCB0aGUgdXNlciByZXNwb25zaWJsZSBmb3IgY29tcGxldGluZyB0aGlzIHJlc3BvbnNpYmlsaXR5LiAnXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBpZD1cInJlc0NhdGVnb3J5XCIgKm5nSWY9XCJyZXBvcnQ/LnJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnkhPT1udWxsXCI+e3tyZXBvcnQ/LnJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydC5mcmVxdWVuY3lcIj57e3JlcG9ydD8uZnJlcXVlbmN5fX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LmZyZXF1ZW5jeVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInU2VsZWN0IGEgZnJlcXVlbmN5IGZvciB0aGlzIHJlc3BvbnNpYmlsaXR5LidcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBtdWx0aS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0LmlzVmFsaWREdWVEYXRlXCI+e3tyZXBvcnQ/LmRheX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LmlzVmFsaWREdWVEYXRlXCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidJbnZhbGlkIER1ZSBEYXRlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJyZXBvcnQ/LmlzUGFzdERhdGVcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgZGF0ZSBvY2N1cnMgaW4gdGhlIHBhc3QuIFNlbGVjdCBhIGZ1dHVyZSBkYXRlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydC5pc1ZhbGlkRHVlRGF0ZVwiPnt7cmVwb3J0Py5tb250aH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LmlzVmFsaWREdWVEYXRlXCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidJbnZhbGlkIER1ZSBEYXRlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJyZXBvcnQ/LmlzUGFzdERhdGVcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1RoaXMgZGF0ZSBvY2N1cnMgaW4gdGhlIHBhc3QuIFNlbGVjdCBhIGZ1dHVyZSBkYXRlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmVzcG9uc2liaWxpdHlXaW5kb3d9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uZmFpbGVkQWZ0ZXJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmVwb3J0Q2xhc3N9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmVzcG9uc2liaWxpdHlDZW50ZXJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICB7e3JlcG9ydD8ucmV2aWV3ZXJ9fVxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIihyZXBvcnQ/LnJldmlld2VyKSAmJiAoKHJlcG9ydD8ucmV2aWV3ZXIgPT0gcmVwb3J0Py5hbHdheXNOb3RpZnkpIHx8IChyZXBvcnQ/LnJldmlld2VyID09IHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBPdmVyc2VlciBjYW5ub3QgYWxzbyBiZSB0aGUgUmV2aWV3ZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgUmV2aWV3ZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICA8L2k+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwicmVwb3J0Py5yZXZpZXdlciAmJiAocmVwb3J0Py5yZXZpZXdlciA9PSByZXBvcnQ/LmFzc2lnbmVlKVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIEFzc2lnbmVlIGNhbm5vdCBhbHNvIGJlIHRoZSBSZXZpZXdlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBSZXZpZXdlci4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8aSAqbmdJZj1cIihyZXBvcnQ/LnJldmlld2VyICYmIHJlcG9ydD8uYXNzaWdub3IpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIigocmVwb3J0Py5hc3NpZ25vcik/J1RoZSBBc3NpZ25vciBjYW5ub3QgYWxzbyBiZSB0aGUgUmV2aWV3ZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4nOidZb3UgY2Fubm90IGJlIGEgUmV2aWV3ZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eSBzaW5jZSB5b3UgYXJlIHRoZSBhc3NpZ25vci4gJykgKydTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBSZXZpZXdlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgIDwvaT4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LnJldmlld1RvQmVDb21wbGV0ZWRXaXRoaW59fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmV2aWV3V2lsbEJlRmFpbGVkQWZ0ZXJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uZm9ybWF0Rm9yUmVzcG9uc2liaWxpdHl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ubm90ZXN9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uZG9jdW1lbnRFdmlkZW5jZVJlcXVpcmVkfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIG11bHRpLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3JlcG9ydD8uYWx3YXlzTm90aWZ5fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKHJlcG9ydD8uYWx3YXlzTm90aWZ5KSAmJiAoKHJlcG9ydD8ucmV2aWV3ZXIgPT0gcmVwb3J0Py5hbHdheXNOb3RpZnkpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBSZXZpZXdlciBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXIuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInJlcG9ydD8uYWx3YXlzTm90aWZ5ICYmIChyZXBvcnQ/LmFsd2F5c05vdGlmeSA9PSByZXBvcnQ/LmFzc2lnbmVlKVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgQXNzaWduZWUgY2Fubm90IGFsc28gYmUgdGhlIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKChyZXBvcnQ/LmFsd2F5c05vdGlmeSAmJiByZXBvcnQ/LmFzc2lnbm9yKSAmJiAocmVwb3J0Py5hbHdheXNOb3RpZnkgPT0gcmVwb3J0Py5hc3NpZ25vcikpIHx8KChyZXBvcnQ/LmFsd2F5c05vdGlmeSAmJiAoIXJlcG9ydD8uYXNzaWdub3IpKSAmJiAocmVwb3J0Py5hbHdheXNOb3RpZnkgPT0gZGVmYXVsdE93bmVyKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIigocmVwb3J0Py5hc3NpZ25vcik/J1RoZSBBc3NpZ25vciBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gJzonWW91IGNhbm5vdCBiZSBhbiBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5IHNpbmNlIHlvdSBhcmUgdGhlIEFzc2lnbm9yLiAnKSArJ1NlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIihyZXBvcnQ/Lm5vdGlmeU9uRmFpbHVyZSkgJiYgKChyZXBvcnQ/LnJldmlld2VyID09IHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIFJldmlld2VyIGNhbm5vdCBhbHNvIGJlIHRoZSBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2Vlci4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwicmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IHJlcG9ydD8uYXNzaWduZWUpXCIgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhlIEFzc2lnbmVlIGNhbm5vdCBhbHNvIGJlIHRoZSBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2VlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIigocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgJiYgcmVwb3J0Py5hc3NpZ25vcikgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IHJlcG9ydD8uYXNzaWdub3IpKSB8fCgocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUgJiYgKCFyZXBvcnQ/LmFzc2lnbm9yKSkgJiYgKHJlcG9ydD8ubm90aWZ5T25GYWlsdXJlID09IGRlZmF1bHRPd25lcikpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiKChyZXBvcnQ/LmFzc2lnbm9yKT8nVGhlIEFzc2lnbm9yIGNhbm5vdCBhbHNvIGJlIHRoZSBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5LiAnOidZb3UgY2Fubm90IGJlIGFuIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkgc2luY2UgeW91IGFyZSB0aGUgQXNzaWdub3IuICcpICsnU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXIuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LmtleVJlc3BvbnNpYmlsaXR5fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/Lm9iamVjdGl2ZX19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImJ1bGstdmlldy1mb290ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICA8cD57e2ZpbmFsUmVzcG9uc2liaWxpdGllc319IG91dCBvZiB7e3Jlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8ucmVwb3J0cz8ubGVuZ3RofX0gcmVzcG9uc2liaWxpdGllcyB3aWxsIGJlXHJcbiAgICAgICAgICAgICAgICB1cGxvYWRlZC48L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKClcIiBpZD1cImJ1bGstcmVzcC1jYW5jZWxcIiA+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN1Ym1pdCgpXCIgaWQ9XCJidWxrLXJlc3AtY29uZmlybVwiIFtkaXNhYmxlZF09XCJmaW5hbFJlc3BvbnNpYmlsaXRpZXM8MVwiIGNsYXNzPVwiYmx1ZVwiPkNvbmZpcm08L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGFwcC1sb2FkZXIgICpuZ0lmPVwibG9hZGVyXCI+PC9hcHAtbG9hZGVyPlxyXG5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48IS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tdXB3YXJkIGlzIG5ldyBvbmUtLS0tLS0tLS0tLS0tLS0tLS0tLSAtLT5cclxuPGFwcC1sb2FkZXIgICpuZ0lmPVwibG9hZGVyXCI+PC9hcHAtbG9hZGVyPlxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG48IS0tIEhUTUwgZm9yIG11bHRpcGxlIHRhYnMgLS0+XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNwb25zaWJpbGl0eVR5cGUgPT09ICdtdWx0aVRhYidcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWhlYWRcIj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwiYnVsay12aWV3LXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICB7e2ZpbGVOYW1lfX1cclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWJvZHkgYnVsa1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBoZWFkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gc2wtbm9cIj4jPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5SZXNwb25zaWJpbGl0eSBOYW1lIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nSWY9XCJyZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LmhlYWRlci5pbmNsdWRlcygnUHJvZ3JhbScpXCIgW2NsYXNzLnRocmVlLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPlByb2dyYW08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Qcm9ncmFtIFR5cGU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+UHJvZ3JhbTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Qcm9ncmFtIENhdGVnb3J5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+RW50cnVzdGVkIEJ5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPkVudHJ1c3QgVG8gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPlBlcnNvbiBvciBHcm91cDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5BbGwgb3IgQW55IFBlcnNvbnM8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5LZXkgUmVzcG9uc2liaWxpdHk/PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZml2ZS1jb2x1bW5dPVwidGFiVHlwZSA9PT0gJ2ZyZXF1ZW5jeScgfHwgdGFiVHlwZSA9PT0gJ29uQ29tcGxldGlvbidcIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cInRhYlR5cGUgPT09ICdvbmdvaW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPkZyZXF1ZW5jeSBvZiBPY2N1cnJlbmNlIGFuZCBDb21wbGV0aW9uIFdpbmRvdyA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPnt7cmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5oZWFkZXIuaW5jbHVkZXMoJ1Byb2dyYW0nKSA/IHJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uaGVhZGVyWzhdPy5zbGljZSgwLCAtMSkgOiByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LmhlYWRlcls1XT8uc2xpY2UoMCwgLTEpfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy5maXZlLWNvbHVtbl09XCJ0YWJUeXBlID09PSAnZnJlcXVlbmN5JyB8fCB0YWJUeXBlID09PSAnb25Db21wbGV0aW9uJ1wiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidGFiVHlwZSA9PT0gJ29uZ29pbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiVHlwZSA9PT0gJ2ZyZXF1ZW5jeSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkZyZXF1ZW5jeSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkR1ZSBEYXRlIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCI+KERheSk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5EdWUgRGF0ZSA8c3BhbiBjbGFzcz1cImluZm8tdGV4dFwiPihNb250aCk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5TdGFydCA8c3BhbiBjbGFzcz1cImluZm8tdGV4dFwiPihOby4gb2YgZGF5cyBiZWZvcmUgdGhlIGR1ZSBkYXRlKTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkZhaWwgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIiBhcHBUb29sdGlwPVwiKE5vLiBvZiBkYXlzIGFmdGVyIHRoZSBkdWUgZGF0ZS4gU2VsZWN0ICcwJyBpZiB0aGUgcmVzcG9uc2liaWxpdHkgbXVzdCBiZSBjb21wbGV0ZWQgb24gdGhlIGR1ZSBkYXRlKVwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+KE5vLiBvZiBkYXlzIGFmdGVyIHRoZSBkdWUgZGF0ZS4gU2VsZWN0IFwiMFwiIGlmIHRoZSByZXNwb25zaWJpbGl0eSBtdXN0IGJlIGNvbXBsZXRlZCBvbiB0aGUgZHVlIGRhdGUpPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiVHlwZSA9PT0gJ29uZ29pbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5PbmdvaW5nIEZyZXF1ZW5jeSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPlNldCBhIFJlbWluZGVyPzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+RnJlcXVlbmN5IG9mIFJlbWluZGVyPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJUeXBlID09PSAnb25Db21wbGV0aW9uJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+T24gQ29tcGxldGlvbiBvZiBGcmVxdWVuY3kgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5QYXJlbnQgUmVzcG9uc2liaWxpdHk8c3BhbiBjbGFzcz1cImluZm8tdGV4dFwiPihEYXkpPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+RHVlIERhdGUgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIiBhcHBUb29sdGlwPVwiKE5vLiBvZiBkYXlzIGFmdGVyIGNvbXBsZXRpb24gb2YgdGhlIFBhcmVudCBSZXNwb25zaWJpbGl0eSlcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPihOby4gb2YgZGF5cyBhZnRlciBjb21wbGV0aW9uIG9mIHRoZSBQYXJlbnQgUmVzcG9uc2liaWxpdHkpPC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+U3RhcnQgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIiBhcHBUb29sdGlwPVwiKE5vLiBvZiBkYXlzIGJlZm9yZSB0aGUgZHVlIGRhdGUpXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj4oTm8uIG9mIGRheXMgYmVmb3JlIHRoZSBkdWUgZGF0ZSk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5GYWlsIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCIgYXBwVG9vbHRpcD1cIihOby4gb2YgZGF5cyBhZnRlciB0aGUgZHVlIGRhdGUuIFNlbGVjdCAnMCcgaWYgdGhlIHJlc3BvbnNpYmlsaXR5IG11c3QgYmUgY29tcGxldGVkIG9uIHRoZSBkdWUgZGF0ZSlcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPihOby4gb2YgZGF5cyBhZnRlciB0aGUgZHVlIGRhdGUuIFNlbGVjdCBcIjBcIiBpZiB0aGUgcmVzcG9uc2liaWxpdHkgbXVzdCBiZSBjb21wbGV0ZWQgb24gdGhlIGR1ZSBkYXRlKTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPlJlc3BvbnNpYmlsaXR5IENlbnRyZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+UmlzayBDbGFzczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+T2JqZWN0aXZlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Ob3RlczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5Gb3JtYXQgJiBFdmlkZW5jZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLnNtYWxsLWNvbHVtbl09XCJ0cnVlXCI+Rm9ybWF0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPkZvcm1hdCBGb3IgUmVzcG9uc2liaWxpdHkgKGxpbmspPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5zbWFsbC1jb2x1bW5dPVwidHJ1ZVwiPkV2aWRlbmNlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5Bc3Nlc3NtZW50cyBvciBDaGVja3BvaW50czwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5SZXZpZXcgb2YgUmVzcG9uc2liaWxpdHk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5SZXZpZXdlcjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5SZXZpZXcgU3RhcnQgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIj4oTm8uIG9mIGRheXMgYmVmb3JlIHRoZSBkdWUgZGF0ZSk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPlJldmlldyBGYWlsIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCIgYXBwVG9vbHRpcD1cIihOby4gb2YgZGF5cyBhZnRlciB0aGUgZHVlIGRhdGUuIFNlbGVjdCAnMCcgaWYgdGhlIHJlc3BvbnNpYmlsaXR5IG11c3QgYmUgcmV2aWV3ZWQgb24gdGhlIGR1ZSBkYXRlKVwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+KE5vLiBvZiBkYXlzIGFmdGVyIHRoZSBkdWUgZGF0ZS4gU2VsZWN0IFwiMFwiIGlmIHRoZSByZXNwb25zaWJpbGl0eSBtdXN0IGJlIHJldmlld2VkIG9uIHRoZSBkdWUgZGF0ZSk8L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbGFyZ2VcIj5PdmVyc2VlcjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5BbHdheXMgTm90aWZ5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPk5vdGlmeSBvbiBGYWlsdXJlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj5PdmVyc2VlcjwvZGl2PiAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCIgKm5nRm9yPVwibGV0IHJlcG9ydCBvZiByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnJlcG9ydHM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBzbC1ub1wiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0Py5pc1ZhbGlkXCI+e3tpKzF9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyZXBvcnQucmVzcG9uc2liaWxpdHlOYW1lXCI+e3tyZXBvcnQ/LnJlc3BvbnNpYmlsaXR5TmFtZX19IDxpICpuZ0lmPVwiIXJlcG9ydC5yZXNwb25zaWJpbGl0eU5hbWVcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ0VudGVyIGEgbmFtZSBmb3IgdGhpcyByZXNwb25zaWJpbGl0eS4nXCIgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIG11bHRpLWNvbHVtblwiICpuZ0lmPVwicmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5oZWFkZXIuaW5jbHVkZXMoJ1Byb2dyYW0nKVwiIFtjbGFzcy5lcnJvcl09XCJmYWxzZVwiIFtjbGFzcy50aHJlZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LnByb2dyYW1UeXBlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LnByb2dyYW19fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucHJvZ3JhbUNhdGVnb3J5fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uYXNzaWdub3J9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpICpuZ0lmPVwiKChyZXBvcnQ/LmFzc2lnbm9yKSAmJiAocmVwb3J0Py5yZXZpZXdlciA9PT0gcmVwb3J0Py5hc3NpZ25vcikpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBSZXZpZXdlciBjYW5ub3QgYWxzbyBiZSB0aGUgQXNzaWdub3Igb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgQXNzaWdub3IuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2k+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJlcG9ydD8uYXNzaWduZWUgfHwgIXJlcG9ydD8udXNlclZhbGlkYXRlV2l0aFByb2dyYW0/LmlzVmFsaWRBc3NpZ25lZSB8fCAoIXJlcG9ydD8uaXNWYWxpZFVzZXIpXCI+e3tyZXBvcnQ/LmFzc2lnbmVlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIHx8ICghcmVwb3J0Py5pc1ZhbGlkVXNlcikgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIoIXJlcG9ydD8uYXNzaWduZWUpIHx8ICghcmVwb3J0Py5pc1ZhbGlkVXNlcilcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1NlbGVjdCB0aGUgdXNlciByZXNwb25zaWJsZSBmb3IgY29tcGxldGluZyB0aGlzIHJlc3BvbnNpYmlsaXR5LiAnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIocmVwb3J0Py5hc3NpZ25lZSkgJiYgIXJlcG9ydD8udXNlclZhbGlkYXRlV2l0aFByb2dyYW0/LmlzVmFsaWRBc3NpZ25lZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhpcyB1c2VyIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggdGhlIHNlbGVjdGVkIFByb2dyYW0uJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5hc3NpZ25lZVR5cGV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5rZXlSZXNwb25zaWJpbGl0eX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbXVsdGktY29sdW1uXCIgW2NsYXNzLmZpdmUtY29sdW1uXT1cInRhYlR5cGUgPT09ICdmcmVxdWVuY3knIHx8IHRhYlR5cGUgPT09ICdvbkNvbXBsZXRpb24nXCIgW2NsYXNzLnRocmVlLWNvbHVtbl09XCJ0YWJUeXBlID09PSAnb25nb2luZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYlR5cGUgPT09ICdmcmVxdWVuY3knXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MuZml2ZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyZXBvcnQ/LmZyZXF1ZW5jeVwiPnt7cmVwb3J0Py5mcmVxdWVuY3l9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LmZyZXF1ZW5jeVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInU2VsZWN0IGEgZnJlcXVlbmN5IGZvciB0aGlzIHJlc3BvbnNpYmlsaXR5LidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0Py52YWxpZERhdGUgfHwgcmVwb3J0Py5pc1Bhc3REYXRlXCI+e3tyZXBvcnQ/LmRheX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJlcG9ydD8udmFsaWREYXRlXCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidJbnZhbGlkIER1ZSBEYXRlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwicmVwb3J0Py5pc1Bhc3REYXRlXCIgY2xhc3M9XCJpY29uc1wiIFthcHBUb29sdGlwXT1cIidUaGlzIGRhdGUgb2NjdXJzIGluIHRoZSBwYXN0LiBTZWxlY3QgYSBmdXR1cmUgZGF0ZS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyZXBvcnQ/LnZhbGlkRGF0ZSB8fCByZXBvcnQ/LmlzUGFzdERhdGVcIj57e3JlcG9ydD8ubW9udGh9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LnZhbGlkRGF0ZVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInSW52YWxpZCBEdWUgRGF0ZS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cInJlcG9ydD8uaXNQYXN0RGF0ZVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInVGhpcyBkYXRlIG9jY3VycyBpbiB0aGUgcGFzdC4gU2VsZWN0IGEgZnV0dXJlIGRhdGUuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5yZXNwb25zaWJpbGl0eVdpbmRvd319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uZmFpbGVkQWZ0ZXJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGFiVHlwZSA9PT0gJ29uZ29pbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0Py5mcmVxdWVuY3lcIj57e3JlcG9ydD8uZnJlcXVlbmN5fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhcmVwb3J0Py5mcmVxdWVuY3lcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1NlbGVjdCBhIGZyZXF1ZW5jeSBmb3IgdGhpcyByZXNwb25zaWJpbGl0eS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uc2V0UmVtaW5kZXJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LmZyZXF1ZW5jeVJlbWluZGVyfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYlR5cGUgPT09ICdvbkNvbXBsZXRpb24nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MuZml2ZS1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cIiFyZXBvcnQ/LmZyZXF1ZW5jeVwiPnt7cmVwb3J0Py5mcmVxdWVuY3l9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LmZyZXF1ZW5jeVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInU2VsZWN0IGEgZnJlcXVlbmN5IGZvciB0aGlzIHJlc3BvbnNpYmlsaXR5LidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmVwb3J0Py5wYXJlbnRSZXNwb25zaWJpbGl0eVwiPnt7cmVwb3J0Py5wYXJlbnRSZXNwb25zaWJpbGl0eX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJlcG9ydD8ucGFyZW50UmVzcG9uc2liaWxpdHlcIiBjbGFzcz1cImljb25zXCIgW2FwcFRvb2x0aXBdPVwiJ1NlbGVjdCBhIHBhcmVudCByZXNwb25zaWJpbGl0eSBvbiB3aG9zZSBjb21wbGV0aW9uIHRoaXMgcmVzcG9uc2liaWxpdHkgd2lsbCBiZWNvbWUgYWN0aXZlLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5kdWVEYXRlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5yZXNwb25zaWJpbGl0eVdpbmRvd319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uZmFpbGVkQWZ0ZXJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LnJlc3BvbnNpYmlsaXR5Q2VudGVyfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5yZXBvcnRDbGFzc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ub2JqZWN0aXZlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5ub3Rlc319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBtdWx0aS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3Muc21hbGwtY29sdW1uXT1cInRydWVcIj57e3JlcG9ydD8uaXNGb3JtYXR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmVwb3J0Py5mb3JtYXRGb3JSZXNwb25zaWJpbGl0eX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLnNtYWxsLWNvbHVtbl09XCJ0cnVlXCI+e3tyZXBvcnQ/LmRvY3VtZW50RXZpZGVuY2VSZXF1aXJlZH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8uYXNzZXNzbWVudHN9fTwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudGhyZWUtY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3cgbXVsdGktY29sdW1uXCIgW2NsYXNzLnRocmVlLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCJyZXBvcnQ/LnJldmlld2VyICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXJlcG9ydD8udXNlclZhbGlkYXRlV2l0aFByb2dyYW0/LmlzVmFsaWRSZXZpZXdlciApXCI+e3tyZXBvcnQ/LnJldmlld2VyfX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGkgKm5nSWY9XCIocmVwb3J0Py5yZXZpZXdlciAmJiByZXBvcnQ/LnJldmlld2VyID09PSByZXBvcnQ/LmFzc2lnbm9yKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIigocmVwb3J0Py5hc3NpZ25vcik/J1RoZSBBc3NpZ25vciBjYW5ub3QgYWxzbyBiZSB0aGUgUmV2aWV3ZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4nOidZb3UgY2Fubm90IGJlIGEgUmV2aWV3ZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eSBzaW5jZSB5b3UgYXJlIHRoZSBhc3NpZ25vci4gJykgKydTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBSZXZpZXdlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJyZXBvcnQ/LnJldmlld2VyICYmICFyZXBvcnQ/LnVzZXJWYWxpZGF0ZVdpdGhQcm9ncmFtPy5pc1ZhbGlkUmV2aWV3ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInVGhpcyB1c2VyIGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggdGhlIHNlbGVjdGVkIFByb2dyYW0uJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyZXBvcnQ/LnJldmlld1RvQmVDb21wbGV0ZWRXaXRoaW59fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3JlcG9ydD8ucmV2aWV3V2lsbEJlRmFpbGVkQWZ0ZXJ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gbXVsdGktY29sdW1uXCIgW2NsYXNzLnR3by1jb2x1bW5dPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCJyZXBvcnQ/Lm92ZXJzZWVyICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXJlcG9ydD8udXNlclZhbGlkYXRlV2l0aFByb2dyYW0/LmlzVmFsaWRPdmVyc2VlciApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3JlcG9ydD8ub3ZlcnNlZXJ9fVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIihyZXBvcnQ/Lm92ZXJzZWVyKSAmJiAhcmVwb3J0Py51c2VyVmFsaWRhdGVXaXRoUHJvZ3JhbT8uaXNWYWxpZE92ZXJzZWVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGlzIHVzZXIgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VsZWN0ZWQgUHJvZ3JhbS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJlcG9ydD8ubm90aWZ5T25GYWlsdXJlICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICFyZXBvcnQ/LnVzZXJWYWxpZGF0ZVdpdGhQcm9ncmFtPy5pc1ZhbGlkTm90aWZ5T25GYWlsdXJlIClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3JlcG9ydD8ubm90aWZ5T25GYWlsdXJlfX1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIocmVwb3J0Py5ub3RpZnlPbkZhaWx1cmUpICYmICFyZXBvcnQ/LnVzZXJWYWxpZGF0ZVdpdGhQcm9ncmFtPy5pc1ZhbGlkTm90aWZ5T25GYWlsdXJlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGlzIHVzZXIgaXMgbm90IGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VsZWN0ZWQgUHJvZ3JhbS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiKHJlcG9ydD8ub3ZlcnNlZXIpICYmICgocmVwb3J0Py5vdmVyc2VlciA9PT0gcmVwb3J0Py5hc3NpZ25lZSkgfHwocmVwb3J0Py5yZXZpZXdlciA9PT0gcmVwb3J0Py5vdmVyc2VlcikgfHwgKHJlcG9ydD8ub3ZlcnNlZXIgPT0gcmVwb3J0Py5hc3NpZ25vcikgfHwgKCFyZXBvcnQ/LnVzZXJWYWxpZGF0ZVdpdGhQcm9ncmFtPy5pc1ZhbGlkT3ZlcnNlZXIpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e3JlcG9ydD8ub3ZlcnNlZXJ9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIihyZXBvcnQ/Lm92ZXJzZWVyKSAmJiAoKHJlcG9ydD8ucmV2aWV3ZXIgPT09IHJlcG9ydD8ub3ZlcnNlZXIpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidUaGUgUmV2aWV3ZXIgY2Fubm90IGFsc28gYmUgdGhlIE92ZXJzZWVyIG9mIHRoaXMgcmVzcG9uc2liaWxpdHkuIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJyZXBvcnQ/Lm92ZXJzZWVyICYmIChyZXBvcnQ/Lm92ZXJzZWVyID09PSByZXBvcnQ/LmFzc2lnbmVlKVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1RoZSBBc3NpZ25lZSBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gU2VsZWN0IGFub3RoZXIgdXNlciBhcyB0aGUgT3ZlcnNlZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIoKHJlcG9ydD8ub3ZlcnNlZXIpICYmIChyZXBvcnQ/Lm92ZXJzZWVyID09IHJlcG9ydD8uYXNzaWdub3IpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIigocmVwb3J0Py5hc3NpZ25vcik/J1RoZSBBc3NpZ25vciBjYW5ub3QgYWxzbyBiZSB0aGUgT3ZlcnNlZXIgb2YgdGhpcyByZXNwb25zaWJpbGl0eS4gJzonWW91IGNhbm5vdCBiZSBhbiBPdmVyc2VlciBvZiB0aGlzIHJlc3BvbnNpYmlsaXR5IHNpbmNlIHlvdSBhcmUgdGhlIEFzc2lnbm9yLiAnKSArJ1NlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyZXBvcnQ/LnVzZXJWYWxpZGF0ZVdpdGhQcm9ncmFtPy5pc1ZhbGlkT3ZlcnNlZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInU2VsZWN0ZWQgdXNlciBpcyBub3QgYSB2YWxpZCBvdmVyc2VlciBmb3Igc2VsZWN0ZWQgcHJvZ3JhbS4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tb2xkIGNvZGUgZHluYW1pYy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPCEtLSAqbmdGb3I9XCJsZXQgcmVwb3J0IG9mIHJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8ucmVwb3J0czsgbGV0IGkgPSBpbmRleFwiIC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LW9wdGlvblwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYnVsa1VwbG9hZD8uZnJlcXVlbmN5Py5yZXBvcnRzPy5sZW5ndGhcIiBbY2xhc3MuYWN0aXZlXT1cInRhYlR5cGUgPT09ICdmcmVxdWVuY3knXCIgKGNsaWNrKT1cInNlbGVjdGVkVGFiLmVtaXQoJ2ZyZXF1ZW5jeScpXCI+RnJlcXVlbmN5IFJlc3BvbnNpYmlsaXRpZXM8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImJ1bGtVcGxvYWQ/Lm9uZ29pbmc/LnJlcG9ydHM/Lmxlbmd0aFwiIFtjbGFzcy5hY3RpdmVdPVwidGFiVHlwZSA9PT0gJ29uZ29pbmcnXCIgKGNsaWNrKT1cInNlbGVjdGVkVGFiLmVtaXQoJ29uZ29pbmcnKVwiPk9uZ29pbmcgUmVzcG9uc2liaWxpdGllczwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYnVsa1VwbG9hZD8ub25Db21wbGV0aW9uPy5yZXBvcnRzPy5sZW5ndGhcIiBbY2xhc3MuYWN0aXZlXT1cInRhYlR5cGUgPT09ICdvbkNvbXBsZXRpb24nXCIgKGNsaWNrKT1cInNlbGVjdGVkVGFiLmVtaXQoJ29uQ29tcGxldGlvbicpXCI+T24gQ29tcGxldGlvbiBSZXNwb25zaWJpbGl0aWVzPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstdmlldy1mb290ZXJcIj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+e3tmaW5hbFJlc3BvbnNpYmlsaXRpZXN9fSBvdXQgb2Yge3tyZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnJlcG9ydHM/Lmxlbmd0aH19IHJlc3BvbnNpYmlsaXRpZXMgd2lsbCBiZVxyXG4gICAgICAgICAgICAgICAgICAgIHVwbG9hZGVkLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+e3tmaW5hbFJlc3BvbnNpYmlsaXRpZXN9fSBvdXQgb2Yge3tyZXNwb25zaWJpbGl0eU11bHRpVGFiQnVsa1VwbG9hZD8ubGVuZ3RofX0ge3tyZXNwb25zaWJpbGl0eU11bHRpVGFiQnVsa1VwbG9hZD8ubGVuZ3RoID4gMSA/ICdyZXNwb25zaWJpbGl0aWVzJyA6ICdyZXNwb25zaWJpbGl0eSd9fSB3aWxsIGJlXHJcbiAgICAgICAgICAgICAgICAgICAgdXBsb2FkZWQuPC9wPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgaWQ9XCJidWxrLXJlc3AtY2FuY2VsXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzdWJtaXQoKVwiIGlkPVwiYnVsay1yZXNwLWNvbmZpcm1cIiBbZGlzYWJsZWRdPVwiIWlzQ29uZmlybUNsaWNrYWJsZVwiIGNsYXNzPVwiYmx1ZVwiPkNvbmZpcm08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwhLS0gZmluYWxSZXNwb25zaWJpbGl0aWVzIDwgMSAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtbG9hZGVyICAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlcj5cclxuXHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS11cHdhcmQgaXMgbmV3IG9uZS0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tPlxyXG4iXX0=