@reusa/ngx-reusa-app-lib 0.0.1305 → 0.0.1307

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 (536) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +2404 -1286
  2. package/esm2022/lib/components/add-participant/add-participant.component.mjs +159 -105
  3. package/esm2022/lib/components/add-payment/add-payment.component.mjs +59 -53
  4. package/esm2022/lib/components/add-wage/add-wage.component.mjs +161 -0
  5. package/esm2022/lib/components/address/address.component.mjs +285 -150
  6. package/esm2022/lib/components/address-popup/address-popup.component.mjs +97 -0
  7. package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +281 -0
  8. package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +245 -0
  9. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +203 -0
  10. package/esm2022/lib/components/bank-details/bank-details.component.mjs +79 -219
  11. package/esm2022/lib/components/claim-info/claim-info.component.mjs +408 -0
  12. package/esm2022/lib/components/contact-us/contact-us.component.mjs +17 -43
  13. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +3 -9
  14. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +21 -4
  15. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +30 -15
  16. package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
  17. package/esm2022/lib/components/dropdown/dropdown.component.mjs +4 -4
  18. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
  19. package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +596 -0
  20. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +356 -0
  21. package/esm2022/lib/components/email-update/email-update.component.mjs +63 -140
  22. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +363 -560
  23. package/esm2022/lib/components/employer-info/employer-info.component.mjs +319 -0
  24. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +238 -0
  25. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +302 -0
  26. package/esm2022/lib/components/error/error.component.mjs +22 -5
  27. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +172 -0
  28. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
  29. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +178 -49
  30. package/esm2022/lib/components/footer/footer.component.mjs +94 -83
  31. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +201 -0
  32. package/esm2022/lib/components/header/header.component.mjs +439 -171
  33. package/esm2022/lib/components/history-page/history-page.component.mjs +571 -0
  34. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +25 -36
  35. package/esm2022/lib/components/idme/idme.component.mjs +84 -0
  36. package/esm2022/lib/components/info/info.component.mjs +4 -12
  37. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +16 -22
  38. package/esm2022/lib/components/job-title/job-title.component.mjs +92 -97
  39. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +143 -513
  40. package/esm2022/lib/components/link/link.component.mjs +1 -1
  41. package/esm2022/lib/components/menu/menu.component.mjs +69 -100
  42. package/esm2022/lib/components/mfa/mfa.component.mjs +158 -287
  43. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +11 -18
  44. package/esm2022/lib/components/money-expect/money-expect.component.mjs +158 -54
  45. package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +3661 -0
  46. package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +258 -0
  47. package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +853 -0
  48. package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +251 -0
  49. package/esm2022/lib/components/profile/profile.component.mjs +717 -354
  50. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +108 -38
  51. package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +261 -0
  52. package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +510 -0
  53. package/esm2022/lib/components/questionnaire/AppValidators.mjs +296 -47
  54. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +110 -65
  55. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +377 -173
  56. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +76 -95
  57. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +849 -1070
  58. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +207 -667
  59. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +28 -22
  60. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +116 -32
  61. package/esm2022/lib/components/questionnaire/question-control.service.mjs +2 -1
  62. package/esm2022/lib/components/questionnaire/question.service.mjs +5 -7
  63. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +15 -29
  64. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +457 -233
  65. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +25 -0
  66. package/esm2022/lib/components/search-employer/search-employer.component.mjs +155 -30
  67. package/esm2022/lib/components/select/select.component.mjs +5 -10
  68. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
  69. package/esm2022/lib/components/sms/sms.component.mjs +336 -0
  70. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +52 -72
  71. package/esm2022/lib/components/user-login/user-login.component.mjs +139 -357
  72. package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +527 -0
  73. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +274 -0
  74. package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +147 -0
  75. package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +167 -0
  76. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +613 -237
  77. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +114 -59
  78. package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +804 -0
  79. package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +129 -0
  80. package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +136 -0
  81. package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +72 -0
  82. package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +50 -0
  83. package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +92 -0
  84. package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +1190 -0
  85. package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +683 -0
  86. package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +524 -0
  87. package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +394 -0
  88. package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +640 -0
  89. package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +33 -0
  90. package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +9 -0
  91. package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +5 -0
  92. package/esm2022/lib/guards/auth.guard.mjs +50 -2
  93. package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
  94. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +51 -3
  95. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
  96. package/esm2022/lib/models/ActiveClaimModel.mjs +3 -0
  97. package/esm2022/lib/models/CountyModel.mjs +3 -0
  98. package/esm2022/lib/models/DuaAppDataModel.mjs +3 -0
  99. package/esm2022/lib/models/DuaRequestModel.mjs +3 -0
  100. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +6 -0
  101. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
  102. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +4 -0
  103. package/esm2022/lib/models/EmployerPayInfoModel.mjs +6 -0
  104. package/esm2022/lib/models/FarmUsageComponentModel.mjs +2 -0
  105. package/esm2022/lib/models/GrossEarningsModel.mjs +3 -0
  106. package/esm2022/lib/models/HelpConstants.mjs +5 -0
  107. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +3 -0
  108. package/esm2022/lib/models/LibConstants.mjs +45 -6
  109. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  110. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +3 -0
  111. package/esm2022/lib/models/RetroWeeksModel.mjs +3 -0
  112. package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +3 -0
  113. package/esm2022/lib/models/SendOtpRequestModel.mjs +3 -0
  114. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +3 -0
  115. package/esm2022/lib/models/WageCalculatorModel.mjs +3 -0
  116. package/esm2022/lib/models/WageInfoModel.mjs +4 -0
  117. package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +3 -0
  118. package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +3 -0
  119. package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +3 -0
  120. package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +3 -0
  121. package/esm2022/lib/models/combo-model.mjs +343 -0
  122. package/esm2022/lib/models/dashboard-model.mjs +1 -1
  123. package/esm2022/lib/models/dependent.model.mjs +1 -1
  124. package/esm2022/lib/models/fileupload/DocUploadModel.mjs +7 -0
  125. package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +3 -0
  126. package/esm2022/lib/models/fileupload/FileObject.mjs +3 -0
  127. package/esm2022/lib/models/fileupload/FileObjectArray.mjs +7 -0
  128. package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +8 -0
  129. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  130. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +2 -1
  131. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  132. package/esm2022/lib/models/questionnaire/ComboModel.mjs +96 -653
  133. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  134. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  135. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +3 -0
  136. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  137. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +3 -0
  138. package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +3 -0
  139. package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +2 -0
  140. package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +7 -0
  141. package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +7 -0
  142. package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +6 -0
  143. package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +34 -0
  144. package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +15 -0
  145. package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +11 -0
  146. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +135 -23
  147. package/esm2022/lib/pages/BasePage.mjs +4 -23
  148. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +22 -18
  149. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +142 -124
  150. package/esm2022/lib/pages/common/landing/landing.component.mjs +7 -8
  151. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  152. package/esm2022/lib/pages/common/login/login.component.mjs +7 -11
  153. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  154. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  155. package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -2
  156. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
  157. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +7 -2
  158. package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +101 -0
  159. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  160. package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +151 -0
  161. package/esm2022/lib/services/appeal/appeal.service.mjs +37 -0
  162. package/esm2022/lib/services/base-service.mjs +4 -1
  163. package/esm2022/lib/services/birt-service/birt.service.mjs +57 -0
  164. package/esm2022/lib/services/chatbot/chatbot.service.mjs +1 -2
  165. package/esm2022/lib/services/claimant-service/claimant.service.mjs +7 -13
  166. package/esm2022/lib/services/claims/claims.service.mjs +102 -14
  167. package/esm2022/lib/services/employer/employer-service.mjs +35 -0
  168. package/esm2022/lib/services/event-service/event-service.mjs +44 -0
  169. package/esm2022/lib/services/help/help.service.mjs +1 -1
  170. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  171. package/esm2022/lib/services/login/login.service.mjs +29 -11
  172. package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +327 -0
  173. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +4 -1
  174. package/esm2022/lib/services/questionnaire/validation.service.mjs +4 -1
  175. package/esm2022/lib/services/security-service/security.service.mjs +23 -6
  176. package/esm2022/lib/services/util/util.service.mjs +61 -5
  177. package/esm2022/lib/services/weekly-cert/review.service.mjs +101 -0
  178. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +186 -14
  179. package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +37 -0
  180. package/esm2022/lib/services/weekly-cert/work-search.service.mjs +58 -0
  181. package/esm2022/lib/validations/AppRegex.mjs +1 -3
  182. package/esm2022/lib/validations/AppValidators.mjs +84 -31
  183. package/esm2022/public-api.mjs +47 -5
  184. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +41172 -23230
  185. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  186. package/lib/components/add-employer/add-employer.component.d.ts +137 -50
  187. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  188. package/lib/components/add-participant/add-participant.component.d.ts +11 -5
  189. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  190. package/lib/components/add-payment/add-payment.component.d.ts +9 -3
  191. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  192. package/lib/components/add-wage/add-wage.component.d.ts +30 -0
  193. package/lib/components/add-wage/add-wage.component.d.ts.map +1 -0
  194. package/lib/components/address/address.component.d.ts +42 -15
  195. package/lib/components/address/address.component.d.ts.map +1 -1
  196. package/lib/components/address-popup/address-popup.component.d.ts +16 -0
  197. package/lib/components/address-popup/address-popup.component.d.ts.map +1 -0
  198. package/lib/components/address-suggestion/address-suggestion.component.d.ts +43 -0
  199. package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +1 -0
  200. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +37 -0
  201. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +1 -0
  202. package/lib/components/associate-ssn/associate-ssn.component.d.ts +33 -0
  203. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +1 -0
  204. package/lib/components/bank-details/bank-details.component.d.ts +1 -23
  205. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  206. package/lib/components/claim-info/claim-info.component.d.ts +49 -0
  207. package/lib/components/claim-info/claim-info.component.d.ts.map +1 -0
  208. package/lib/components/contact-us/contact-us.component.d.ts +1 -4
  209. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  210. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
  211. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  212. package/lib/components/dua-request-page/dua-request-page.component.d.ts +74 -0
  213. package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +1 -0
  214. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +61 -0
  215. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +1 -0
  216. package/lib/components/email-update/email-update.component.d.ts +1 -12
  217. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  218. package/lib/components/employer-grid/employer-grid.component.d.ts +21 -14
  219. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  220. package/lib/components/employer-info/employer-info.component.d.ts +50 -0
  221. package/lib/components/employer-info/employer-info.component.d.ts.map +1 -0
  222. package/lib/components/employer-pay/employer-pay.component.d.ts +51 -0
  223. package/lib/components/employer-pay/employer-pay.component.d.ts.map +1 -0
  224. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +43 -0
  225. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +1 -0
  226. package/lib/components/error/error.component.d.ts +3 -2
  227. package/lib/components/error/error.component.d.ts.map +1 -1
  228. package/lib/components/farm-usage/farm-usage.component.d.ts +33 -0
  229. package/lib/components/farm-usage/farm-usage.component.d.ts.map +1 -0
  230. package/lib/components/file-uploader/file-uploader.component.d.ts +5 -1
  231. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
  232. package/lib/components/footer/footer.component.d.ts.map +1 -1
  233. package/lib/components/gross-earnings/gross-earnings.component.d.ts +42 -0
  234. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +1 -0
  235. package/lib/components/header/header.component.d.ts +17 -5
  236. package/lib/components/header/header.component.d.ts.map +1 -1
  237. package/lib/components/history-page/history-page.component.d.ts +80 -0
  238. package/lib/components/history-page/history-page.component.d.ts.map +1 -0
  239. package/lib/components/idme/idme.component.d.ts +19 -0
  240. package/lib/components/idme/idme.component.d.ts.map +1 -0
  241. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +1 -3
  242. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  243. package/lib/components/job-title/job-title.component.d.ts +22 -23
  244. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  245. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +5 -6
  246. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  247. package/lib/components/menu/menu.component.d.ts +3 -12
  248. package/lib/components/menu/menu.component.d.ts.map +1 -1
  249. package/lib/components/mfa/mfa.component.d.ts +7 -19
  250. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  251. package/lib/components/mfa-popup/mfa-popup.component.d.ts +6 -8
  252. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  253. package/lib/components/money-expect/money-expect.component.d.ts +15 -4
  254. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  255. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +311 -0
  256. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +1 -0
  257. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +33 -0
  258. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +1 -0
  259. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +97 -0
  260. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +1 -0
  261. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +33 -0
  262. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +1 -0
  263. package/lib/components/profile/profile.component.d.ts +83 -49
  264. package/lib/components/profile/profile.component.d.ts.map +1 -1
  265. package/lib/components/profile-redirect/profile-redirect.component.d.ts +9 -2
  266. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  267. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +54 -0
  268. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +1 -0
  269. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +74 -0
  270. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +1 -0
  271. package/lib/components/questionnaire/AppValidators.d.ts +1 -0
  272. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  273. package/lib/components/questionnaire/account-success/account-success.page.d.ts +13 -10
  274. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  275. package/lib/components/questionnaire/common-success/common-success.page.d.ts +7 -1
  276. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  277. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +3 -1
  278. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
  279. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +31 -33
  280. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  281. package/lib/components/questionnaire/dynamic-form.component.d.ts +10 -34
  282. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  283. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +0 -7
  284. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  285. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +7 -1
  286. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  287. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  288. package/lib/components/questionnaire/question.service.d.ts +0 -1
  289. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  290. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +1 -7
  291. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  292. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +10 -3
  293. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  294. package/lib/components/scrollable-text/scrollable-text.component.d.ts +11 -0
  295. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +1 -0
  296. package/lib/components/search-employer/search-employer.component.d.ts +5 -4
  297. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  298. package/lib/components/sms/sms.component.d.ts +63 -0
  299. package/lib/components/sms/sms.component.d.ts.map +1 -0
  300. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +1 -5
  301. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  302. package/lib/components/user-login/user-login.component.d.ts +5 -38
  303. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  304. package/lib/components/wage-calculator/wage-calculator.component.d.ts +44 -0
  305. package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +1 -0
  306. package/lib/components/wage-grid/wage-grid.component.d.ts +43 -0
  307. package/lib/components/wage-grid/wage-grid.component.d.ts.map +1 -0
  308. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +28 -0
  309. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +1 -0
  310. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +28 -0
  311. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +1 -0
  312. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +27 -10
  313. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  314. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +9 -3
  315. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  316. package/lib/components/weekly-certification/weekly-certification.component.d.ts +99 -0
  317. package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +1 -0
  318. package/lib/components/weekly-confirmation/confirmation.component.d.ts +21 -0
  319. package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +1 -0
  320. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +34 -0
  321. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +1 -0
  322. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +17 -0
  323. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +1 -0
  324. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +10 -0
  325. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +1 -0
  326. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +17 -0
  327. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +1 -0
  328. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +105 -0
  329. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +1 -0
  330. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +69 -0
  331. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +1 -0
  332. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +59 -0
  333. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +1 -0
  334. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +47 -0
  335. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +1 -0
  336. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +78 -0
  337. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +1 -0
  338. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +8 -0
  339. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +1 -0
  340. package/lib/enums/AddressValidationResponseEnum.d.ts +8 -0
  341. package/lib/enums/AddressValidationResponseEnum.d.ts.map +1 -0
  342. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +4 -0
  343. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +1 -0
  344. package/lib/guards/auth.guard.d.ts.map +1 -1
  345. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
  346. package/lib/models/ActiveClaimModel.d.ts +8 -0
  347. package/lib/models/ActiveClaimModel.d.ts.map +1 -0
  348. package/lib/models/CountyModel.d.ts +8 -0
  349. package/lib/models/CountyModel.d.ts.map +1 -0
  350. package/lib/models/DuaAppDataModel.d.ts +5 -0
  351. package/lib/models/DuaAppDataModel.d.ts.map +1 -0
  352. package/lib/models/DuaRequestModel.d.ts +10 -0
  353. package/lib/models/DuaRequestModel.d.ts.map +1 -0
  354. package/lib/models/DuaRetroWeeksComponentModel.d.ts +5 -0
  355. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +1 -0
  356. package/lib/models/EmployerDetailSearchResult.d.ts +4 -1
  357. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  358. package/lib/models/EmployerInfoComponentModel.d.ts +9 -0
  359. package/lib/models/EmployerInfoComponentModel.d.ts.map +1 -0
  360. package/lib/models/EmployerPayInfoModel.d.ts +20 -0
  361. package/lib/models/EmployerPayInfoModel.d.ts.map +1 -0
  362. package/lib/models/FarmUsageComponentModel.d.ts +10 -0
  363. package/lib/models/FarmUsageComponentModel.d.ts.map +1 -0
  364. package/lib/models/GrossEarningsModel.d.ts +6 -0
  365. package/lib/models/GrossEarningsModel.d.ts.map +1 -0
  366. package/lib/models/HelpConstants.d.ts +5 -0
  367. package/lib/models/HelpConstants.d.ts.map +1 -0
  368. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +7 -0
  369. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +1 -0
  370. package/lib/models/LibConstants.d.ts +40 -1
  371. package/lib/models/LibConstants.d.ts.map +1 -1
  372. package/lib/models/PaymentComponentModel.d.ts +1 -1
  373. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  374. package/lib/models/ReasonSeparationRequestModel.d.ts +7 -0
  375. package/lib/models/ReasonSeparationRequestModel.d.ts.map +1 -0
  376. package/lib/models/RetroWeeksModel.d.ts +11 -0
  377. package/lib/models/RetroWeeksModel.d.ts.map +1 -0
  378. package/lib/models/SecurityQuestionAnswerModel.d.ts +7 -0
  379. package/lib/models/SecurityQuestionAnswerModel.d.ts.map +1 -0
  380. package/lib/models/SendOtpRequestModel.d.ts +12 -0
  381. package/lib/models/SendOtpRequestModel.d.ts.map +1 -0
  382. package/lib/models/VerifyOtpRequestModel.d.ts +8 -0
  383. package/lib/models/VerifyOtpRequestModel.d.ts.map +1 -0
  384. package/lib/models/WageCalculatorModel.d.ts +15 -0
  385. package/lib/models/WageCalculatorModel.d.ts.map +1 -0
  386. package/lib/models/WageInfoModel.d.ts +9 -0
  387. package/lib/models/WageInfoModel.d.ts.map +1 -0
  388. package/lib/models/addressValidation/AddressRecommendationModel.d.ts +12 -0
  389. package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +1 -0
  390. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +11 -0
  391. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +1 -0
  392. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +6 -0
  393. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +1 -0
  394. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +16 -0
  395. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +1 -0
  396. package/lib/models/combo-model.d.ts +42 -0
  397. package/lib/models/combo-model.d.ts.map +1 -0
  398. package/lib/models/dashboard-model.d.ts +16 -0
  399. package/lib/models/dashboard-model.d.ts.map +1 -1
  400. package/lib/models/fileupload/DocUploadModel.d.ts +22 -0
  401. package/lib/models/fileupload/DocUploadModel.d.ts.map +1 -0
  402. package/lib/models/fileupload/EmployerDataModel.d.ts +6 -0
  403. package/lib/models/fileupload/EmployerDataModel.d.ts.map +1 -0
  404. package/lib/models/fileupload/FileObject.d.ts +8 -0
  405. package/lib/models/fileupload/FileObject.d.ts.map +1 -0
  406. package/lib/models/fileupload/FileObjectArray.d.ts +8 -0
  407. package/lib/models/fileupload/FileObjectArray.d.ts.map +1 -0
  408. package/lib/models/questionnaire/AppealParticipantModel.d.ts +17 -0
  409. package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +1 -0
  410. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +3 -0
  411. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  412. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +13 -4
  413. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  414. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +4 -1
  415. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  416. package/lib/models/questionnaire/ComboModel.d.ts +14 -82
  417. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  418. package/lib/models/questionnaire/ElementsModel.d.ts +0 -1
  419. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  420. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +2 -0
  421. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  422. package/lib/models/questionnaire/ScrollableTextModel.d.ts +4 -0
  423. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +1 -0
  424. package/lib/models/questionnaire/StatusModel.d.ts +1 -0
  425. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  426. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +4 -0
  427. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +1 -0
  428. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +9 -0
  429. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +1 -0
  430. package/lib/models/weekly-cert/address-detail-model.d.ts +14 -0
  431. package/lib/models/weekly-cert/address-detail-model.d.ts.map +1 -0
  432. package/lib/models/weekly-cert/admin-leave-details-model.d.ts +15 -0
  433. package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +1 -0
  434. package/lib/models/weekly-cert/employer-info-v2-model.d.ts +27 -0
  435. package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +1 -0
  436. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +57 -0
  437. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +1 -0
  438. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +59 -0
  439. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +1 -0
  440. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +66 -0
  441. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +1 -0
  442. package/lib/models/weekly-cert/work-search-v2-model.d.ts +18 -0
  443. package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +1 -0
  444. package/lib/ngx-reusa-app-lib.module.d.ts +124 -86
  445. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  446. package/lib/pages/BasePage.d.ts +3 -6
  447. package/lib/pages/BasePage.d.ts.map +1 -1
  448. package/lib/pages/common/change-password/change-password.page.d.ts +3 -0
  449. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  450. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  451. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  452. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
  453. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +14 -0
  454. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +1 -0
  455. package/lib/services/address-validation-service/address-validation.service.d.ts +44 -0
  456. package/lib/services/address-validation-service/address-validation.service.d.ts.map +1 -0
  457. package/lib/services/appeal/appeal.service.d.ts +16 -0
  458. package/lib/services/appeal/appeal.service.d.ts.map +1 -0
  459. package/lib/services/base-service.d.ts +12 -0
  460. package/lib/services/base-service.d.ts.map +1 -1
  461. package/lib/services/birt-service/birt.service.d.ts +17 -0
  462. package/lib/services/birt-service/birt.service.d.ts.map +1 -0
  463. package/lib/services/claimant-service/claimant.service.d.ts +5 -6
  464. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  465. package/lib/services/claims/claims.service.d.ts +38 -5
  466. package/lib/services/claims/claims.service.d.ts.map +1 -1
  467. package/lib/services/employer/employer-service.d.ts +16 -0
  468. package/lib/services/employer/employer-service.d.ts.map +1 -0
  469. package/lib/services/event-service/event-service.d.ts +20 -0
  470. package/lib/services/event-service/event-service.d.ts.map +1 -0
  471. package/lib/services/login/login.service.d.ts +5 -3
  472. package/lib/services/login/login.service.d.ts.map +1 -1
  473. package/lib/services/offline-claims/offline-claims.service.d.ts +64 -0
  474. package/lib/services/offline-claims/offline-claims.service.d.ts.map +1 -0
  475. package/lib/services/questionnaire/questionnaire.service.d.ts +1 -0
  476. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  477. package/lib/services/questionnaire/validation.service.d.ts +3 -0
  478. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  479. package/lib/services/security-service/security.service.d.ts +12 -4
  480. package/lib/services/security-service/security.service.d.ts.map +1 -1
  481. package/lib/services/util/util.service.d.ts +6 -0
  482. package/lib/services/util/util.service.d.ts.map +1 -1
  483. package/lib/services/weekly-cert/review.service.d.ts +23 -0
  484. package/lib/services/weekly-cert/review.service.d.ts.map +1 -0
  485. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +47 -5
  486. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
  487. package/lib/services/weekly-cert/weekly-cert.service.d.ts +17 -0
  488. package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +1 -0
  489. package/lib/services/weekly-cert/work-search.service.d.ts +26 -0
  490. package/lib/services/weekly-cert/work-search.service.d.ts.map +1 -0
  491. package/lib/validations/AppRegex.d.ts +0 -2
  492. package/lib/validations/AppRegex.d.ts.map +1 -1
  493. package/lib/validations/AppValidators.d.ts +20 -14
  494. package/lib/validations/AppValidators.d.ts.map +1 -1
  495. package/package.json +2 -2
  496. package/public-api.d.ts +46 -4
  497. package/public-api.d.ts.map +1 -1
  498. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +0 -402
  499. package/esm2022/lib/components/mfa2/mfa2.component.mjs +0 -285
  500. package/esm2022/lib/components/security-question/security-question.component.mjs +0 -199
  501. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +0 -2
  502. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +0 -2
  503. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +0 -2
  504. package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +0 -2
  505. package/esm2022/lib/models/LexisNexisResponseModel.mjs +0 -3
  506. package/esm2022/lib/models/PartialEmploymentModel.mjs +0 -3
  507. package/esm2022/lib/models/SecurityQuestionModel.mjs +0 -3
  508. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +0 -36
  509. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +0 -60
  510. package/esm2022/lib/services/ovp/ovp.service.mjs +0 -43
  511. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +0 -59
  512. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +0 -1
  513. package/lib/components/mfa2/mfa2.component.d.ts +0 -48
  514. package/lib/components/mfa2/mfa2.component.d.ts.map +0 -1
  515. package/lib/components/security-question/security-question.component.d.ts +0 -37
  516. package/lib/components/security-question/security-question.component.d.ts.map +0 -1
  517. package/lib/models/LexisNexisAccountCreationModel.d.ts +0 -15
  518. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +0 -1
  519. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +0 -16
  520. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +0 -1
  521. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +0 -39
  522. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +0 -1
  523. package/lib/models/LexisNexisEnabledResponseModel.d.ts +0 -5
  524. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +0 -1
  525. package/lib/models/LexisNexisResponseModel.d.ts +0 -7
  526. package/lib/models/LexisNexisResponseModel.d.ts.map +0 -1
  527. package/lib/models/PartialEmploymentModel.d.ts +0 -6
  528. package/lib/models/PartialEmploymentModel.d.ts.map +0 -1
  529. package/lib/models/SecurityQuestionModel.d.ts +0 -7
  530. package/lib/models/SecurityQuestionModel.d.ts.map +0 -1
  531. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +0 -16
  532. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +0 -1
  533. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +0 -26
  534. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +0 -1
  535. package/lib/services/ovp/ovp.service.d.ts +0 -17
  536. package/lib/services/ovp/ovp.service.d.ts.map +0 -1
@@ -0,0 +1,510 @@
1
+ import { Component, EventEmitter, Output, ViewChildren, Input, ViewChild } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "@ionic/angular";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "primeng/api";
8
+ import * as i5 from "primeng/tooltip";
9
+ import * as i6 from "primeng/table";
10
+ import * as i7 from "primeng/card";
11
+ import * as i8 from "@fortawesome/angular-fontawesome";
12
+ import * as i9 from "primeng/dropdown";
13
+ import * as i10 from "../overlay-info/overlay-info.component";
14
+ const _c0 = ["uploadFileFormDirective"];
15
+ const _c1 = ["fileInput"];
16
+ function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_2_div_5_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵelementStart(0, "div", 11);
18
+ i0.ɵɵelement(1, "app-overlay-info", 12);
19
+ i0.ɵɵelementEnd();
20
+ } if (rf & 2) {
21
+ const ctx_r7 = i0.ɵɵnextContext(4);
22
+ i0.ɵɵadvance(1);
23
+ i0.ɵɵproperty("overlayText", ctx_r7.iconInfo);
24
+ } }
25
+ function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {
26
+ i0.ɵɵelementStart(0, "tr")(1, "th");
27
+ i0.ɵɵtext(2, "Document Name");
28
+ i0.ɵɵelementEnd();
29
+ i0.ɵɵelementStart(3, "th", 9);
30
+ i0.ɵɵtext(4, " Document Type ");
31
+ i0.ɵɵtemplate(5, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_2_div_5_Template, 2, 1, "div", 10);
32
+ i0.ɵɵelementEnd();
33
+ i0.ɵɵelement(6, "th");
34
+ i0.ɵɵelementEnd();
35
+ } if (rf & 2) {
36
+ const ctx_r4 = i0.ɵɵnextContext(3);
37
+ i0.ɵɵadvance(5);
38
+ i0.ɵɵproperty("ngIf", ctx_r4.proofOfAnything);
39
+ } }
40
+ const _c2 = () => ({ "width": "90%" });
41
+ const _c3 = a0 => ({ "ng-invalid": a0 });
42
+ function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_3_Template(rf, ctx) { if (rf & 1) {
43
+ const _r11 = i0.ɵɵgetCurrentView();
44
+ i0.ɵɵelementContainerStart(0, 13);
45
+ i0.ɵɵelementStart(1, "tr", 14)(2, "td");
46
+ i0.ɵɵtext(3);
47
+ i0.ɵɵelementEnd();
48
+ i0.ɵɵelementStart(4, "td")(5, "p-dropdown", 15);
49
+ i0.ɵɵlistener("ngModelChange", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_3_Template_p_dropdown_ngModelChange_5_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r11); const fileObjectQueue_r8 = restoredCtx.$implicit; return i0.ɵɵresetView(fileObjectQueue_r8.selectedDocumentType = $event); })("onChange", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_3_Template_p_dropdown_onChange_5_listener($event) { const restoredCtx = i0.ɵɵrestoreView(_r11); const fileObjectQueue_r8 = restoredCtx.$implicit; const ctx_r12 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r12.changeDocType(fileObjectQueue_r8, $event)); })("onClear", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_3_Template_p_dropdown_onClear_5_listener() { const restoredCtx = i0.ɵɵrestoreView(_r11); const fileObjectQueue_r8 = restoredCtx.$implicit; const ctx_r13 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r13.clearDocType(fileObjectQueue_r8)); });
50
+ i0.ɵɵelementEnd()();
51
+ i0.ɵɵelementStart(6, "td", 16)(7, "ion-button", 17);
52
+ i0.ɵɵlistener("click", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_3_Template_ion_button_click_7_listener() { const restoredCtx = i0.ɵɵrestoreView(_r11); const fileObjectQueue_r8 = restoredCtx.$implicit; const ctx_r14 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r14.removeFromQueue(fileObjectQueue_r8)); });
53
+ i0.ɵɵelement(8, "ion-icon", 18);
54
+ i0.ɵɵelementEnd()()();
55
+ i0.ɵɵelementContainerEnd();
56
+ } if (rf & 2) {
57
+ const fileObjectQueue_r8 = ctx.$implicit;
58
+ const rowIndex_r9 = ctx.rowIndex;
59
+ const ctx_r5 = i0.ɵɵnextContext(3);
60
+ let tmp_6_0;
61
+ i0.ɵɵadvance(1);
62
+ i0.ɵɵproperty("formGroupName", rowIndex_r9);
63
+ i0.ɵɵadvance(2);
64
+ i0.ɵɵtextInterpolate(fileObjectQueue_r8 == null ? null : fileObjectQueue_r8.fileName);
65
+ i0.ɵɵadvance(2);
66
+ i0.ɵɵstyleMap(i0.ɵɵpureFunction0(8, _c2));
67
+ i0.ɵɵproperty("options", ctx_r5.docTypeDropdown)("ngModel", fileObjectQueue_r8.selectedDocumentType)("showClear", true)("ngClass", i0.ɵɵpureFunction1(9, _c3, (tmp_6_0 = ctx_r5.tableRows.controls[rowIndex_r9].get("docType")) == null ? null : tmp_6_0.invalid));
68
+ } }
69
+ const _c4 = () => ["fal", "plus"];
70
+ function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_4_tr_0_td_1_Template(rf, ctx) { if (rf & 1) {
71
+ const _r20 = i0.ɵɵgetCurrentView();
72
+ i0.ɵɵelementStart(0, "td", 20)(1, "div", 21)(2, "b");
73
+ i0.ɵɵtext(3, "+ Add");
74
+ i0.ɵɵelementEnd();
75
+ i0.ɵɵtext(4, " document");
76
+ i0.ɵɵelementEnd();
77
+ i0.ɵɵelementStart(5, "input", 22, 23);
78
+ i0.ɵɵlistener("change", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_4_tr_0_td_1_Template_input_change_5_listener($event) { i0.ɵɵrestoreView(_r20); const ctx_r19 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r19.addToQueue($event)); });
79
+ i0.ɵɵelementEnd();
80
+ i0.ɵɵelementStart(7, "ion-button", 24);
81
+ i0.ɵɵlistener("click", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_4_tr_0_td_1_Template_ion_button_click_7_listener() { i0.ɵɵrestoreView(_r20); const _r18 = i0.ɵɵreference(6); return i0.ɵɵresetView(_r18.click()); });
82
+ i0.ɵɵelement(8, "fa-icon", 25);
83
+ i0.ɵɵelementEnd()();
84
+ } if (rf & 2) {
85
+ const ctx_r16 = i0.ɵɵnextContext(5);
86
+ i0.ɵɵadvance(5);
87
+ i0.ɵɵproperty("accept", ctx_r16.allowedFileType);
88
+ i0.ɵɵadvance(3);
89
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c4));
90
+ } }
91
+ function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_4_tr_0_td_2_Template(rf, ctx) { if (rf & 1) {
92
+ const _r24 = i0.ɵɵgetCurrentView();
93
+ i0.ɵɵelementStart(0, "td", 20)(1, "div", 21)(2, "b");
94
+ i0.ɵɵtext(3, "+ Add");
95
+ i0.ɵɵelementEnd();
96
+ i0.ɵɵtext(4, " any other document");
97
+ i0.ɵɵelementEnd();
98
+ i0.ɵɵelementStart(5, "input", 22, 23);
99
+ i0.ɵɵlistener("change", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_4_tr_0_td_2_Template_input_change_5_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r23.addToQueue($event)); });
100
+ i0.ɵɵelementEnd();
101
+ i0.ɵɵelementStart(7, "ion-button", 24);
102
+ i0.ɵɵlistener("click", function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_4_tr_0_td_2_Template_ion_button_click_7_listener() { i0.ɵɵrestoreView(_r24); const _r22 = i0.ɵɵreference(6); return i0.ɵɵresetView(_r22.click()); });
103
+ i0.ɵɵelement(8, "fa-icon", 25);
104
+ i0.ɵɵelementEnd()();
105
+ } if (rf & 2) {
106
+ const ctx_r17 = i0.ɵɵnextContext(5);
107
+ i0.ɵɵadvance(5);
108
+ i0.ɵɵproperty("accept", ctx_r17.allowedFileType);
109
+ i0.ɵɵadvance(3);
110
+ i0.ɵɵproperty("icon", i0.ɵɵpureFunction0(2, _c4));
111
+ } }
112
+ function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_4_tr_0_Template(rf, ctx) { if (rf & 1) {
113
+ i0.ɵɵelementStart(0, "tr");
114
+ i0.ɵɵtemplate(1, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_4_tr_0_td_1_Template, 9, 3, "td", 19)(2, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_4_tr_0_td_2_Template, 9, 3, "td", 19);
115
+ i0.ɵɵelement(3, "td")(4, "td");
116
+ i0.ɵɵelementEnd();
117
+ } if (rf & 2) {
118
+ const ctx_r15 = i0.ɵɵnextContext(4);
119
+ i0.ɵɵadvance(1);
120
+ i0.ɵɵproperty("ngIf", ctx_r15.fileObjectQueue.length == 0);
121
+ i0.ɵɵadvance(1);
122
+ i0.ɵɵproperty("ngIf", ctx_r15.fileObjectQueue.length > 0);
123
+ } }
124
+ function ProofOfDocumentUploadComponent_form_0_section_2_ng_template_4_Template(rf, ctx) { if (rf & 1) {
125
+ i0.ɵɵtemplate(0, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_4_tr_0_Template, 5, 2, "tr", 4);
126
+ } if (rf & 2) {
127
+ const ctx_r6 = i0.ɵɵnextContext(3);
128
+ i0.ɵɵproperty("ngIf", ctx_r6.proofOfAnything);
129
+ } }
130
+ function ProofOfDocumentUploadComponent_form_0_section_2_Template(rf, ctx) { if (rf & 1) {
131
+ i0.ɵɵelementStart(0, "section")(1, "p-table", 5);
132
+ i0.ɵɵtemplate(2, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_2_Template, 7, 1, "ng-template", 6)(3, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_3_Template, 9, 11, "ng-template", 7)(4, ProofOfDocumentUploadComponent_form_0_section_2_ng_template_4_Template, 1, 1, "ng-template", 8);
133
+ i0.ɵɵelementEnd()();
134
+ } if (rf & 2) {
135
+ const ctx_r3 = i0.ɵɵnextContext(2);
136
+ i0.ɵɵadvance(1);
137
+ i0.ɵɵproperty("value", ctx_r3.fileObjectQueue)("loading", ctx_r3.showProgress);
138
+ } }
139
+ function ProofOfDocumentUploadComponent_form_0_Template(rf, ctx) { if (rf & 1) {
140
+ i0.ɵɵelementStart(0, "form", 2, 3);
141
+ i0.ɵɵtemplate(2, ProofOfDocumentUploadComponent_form_0_section_2_Template, 5, 2, "section", 4);
142
+ i0.ɵɵelementEnd();
143
+ } if (rf & 2) {
144
+ const ctx_r0 = i0.ɵɵnextContext();
145
+ i0.ɵɵproperty("formGroup", ctx_r0.formArray);
146
+ i0.ɵɵadvance(2);
147
+ i0.ɵɵproperty("ngIf", ctx_r0.context != "signature" && ctx_r0.context != "uploadZipCodes");
148
+ } }
149
+ function ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_6_Template(rf, ctx) { if (rf & 1) {
150
+ const _r40 = i0.ɵɵgetCurrentView();
151
+ i0.ɵɵelementStart(0, "div", 35);
152
+ i0.ɵɵelement(1, "i", 36);
153
+ i0.ɵɵelementStart(2, "input", 37, 23);
154
+ i0.ɵɵlistener("change", function ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_6_Template_input_change_2_listener($event) { i0.ɵɵrestoreView(_r40); const employer_r27 = i0.ɵɵnextContext(2).$implicit; const ctx_r38 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r38.addFileToEmployerData($event, employer_r27)); });
155
+ i0.ɵɵelementEnd();
156
+ i0.ɵɵelementStart(4, "ion-button", 38);
157
+ i0.ɵɵlistener("click", function ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_6_Template_ion_button_click_4_listener() { i0.ɵɵrestoreView(_r40); const _r37 = i0.ɵɵreference(3); return i0.ɵɵresetView(_r37.click()); });
158
+ i0.ɵɵtext(5, " Upload ");
159
+ i0.ɵɵelementEnd()();
160
+ } if (rf & 2) {
161
+ const ctx_r35 = i0.ɵɵnextContext(4);
162
+ i0.ɵɵadvance(2);
163
+ i0.ɵɵproperty("accept", ctx_r35.allowedFileType);
164
+ } }
165
+ function ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_7_Template(rf, ctx) { if (rf & 1) {
166
+ const _r44 = i0.ɵɵgetCurrentView();
167
+ i0.ɵɵelementStart(0, "div")(1, "div", 39)(2, "div", 40)(3, "span");
168
+ i0.ɵɵelement(4, "i", 41);
169
+ i0.ɵɵtext(5);
170
+ i0.ɵɵelementEnd();
171
+ i0.ɵɵelementStart(6, "ion-button", 42);
172
+ i0.ɵɵlistener("click", function ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_7_Template_ion_button_click_6_listener() { i0.ɵɵrestoreView(_r44); const employer_r27 = i0.ɵɵnextContext(2).$implicit; const ctx_r42 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r42.removeFileFromEmployerData(employer_r27)); });
173
+ i0.ɵɵelement(7, "ion-icon", 18);
174
+ i0.ɵɵelementEnd()()()();
175
+ } if (rf & 2) {
176
+ const employer_r27 = i0.ɵɵnextContext(2).$implicit;
177
+ i0.ɵɵadvance(5);
178
+ i0.ɵɵtextInterpolate1("", employer_r27.file.fileName, " ");
179
+ } }
180
+ function ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_Template(rf, ctx) { if (rf & 1) {
181
+ i0.ɵɵelementStart(0, "ion-row")(1, "ion-col", 31)(2, "h4", 32);
182
+ i0.ɵɵtext(3);
183
+ i0.ɵɵelementEnd();
184
+ i0.ɵɵelement(4, "app-overlay-info", 12);
185
+ i0.ɵɵelementEnd()();
186
+ i0.ɵɵelementStart(5, "div", 33);
187
+ i0.ɵɵtemplate(6, ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_6_Template, 6, 1, "div", 34)(7, ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_div_7_Template, 8, 1, "div", 4);
188
+ i0.ɵɵelementEnd();
189
+ } if (rf & 2) {
190
+ const employer_r27 = i0.ɵɵnextContext().$implicit;
191
+ const ctx_r29 = i0.ɵɵnextContext(2);
192
+ i0.ɵɵadvance(3);
193
+ i0.ɵɵtextInterpolate(employer_r27.employerName);
194
+ i0.ɵɵadvance(1);
195
+ i0.ɵɵproperty("overlayText", ctx_r29.iconInfo);
196
+ i0.ɵɵadvance(2);
197
+ i0.ɵɵproperty("ngIf", !employer_r27.file);
198
+ i0.ɵɵadvance(1);
199
+ i0.ɵɵproperty("ngIf", employer_r27.file);
200
+ } }
201
+ function ProofOfDocumentUploadComponent_ul_1_li_1_Template(rf, ctx) { if (rf & 1) {
202
+ i0.ɵɵelementStart(0, "li", 28)(1, "p-card", 29);
203
+ i0.ɵɵtemplate(2, ProofOfDocumentUploadComponent_ul_1_li_1_ng_template_2_Template, 8, 4, "ng-template", 30);
204
+ i0.ɵɵelementEnd()();
205
+ } }
206
+ function ProofOfDocumentUploadComponent_ul_1_Template(rf, ctx) { if (rf & 1) {
207
+ i0.ɵɵelementStart(0, "ul", 26);
208
+ i0.ɵɵtemplate(1, ProofOfDocumentUploadComponent_ul_1_li_1_Template, 3, 0, "li", 27);
209
+ i0.ɵɵelementEnd();
210
+ } if (rf & 2) {
211
+ const ctx_r1 = i0.ɵɵnextContext();
212
+ i0.ɵɵadvance(1);
213
+ i0.ɵɵproperty("ngForOf", ctx_r1.employerDataModel);
214
+ } }
215
+ export class ProofOfDocumentUploadComponent {
216
+ constructor(formBuilder, toastController) {
217
+ this.formBuilder = formBuilder;
218
+ this.toastController = toastController;
219
+ this.showProgress = false;
220
+ this.upload = new EventEmitter();
221
+ this.files = new EventEmitter();
222
+ this.uploadEmployerFile = new EventEmitter();
223
+ this.docForm = new EventEmitter();
224
+ this.queue = [];
225
+ this.fileObjectQueue = [];
226
+ this.mapOfFiles = new Map();
227
+ this.multiple = false;
228
+ this.proofOfAnything = false;
229
+ this.showSeparateAttachButton = false;
230
+ this.docUploadModel = null;
231
+ this.selectedDocumentType = null;
232
+ this.expandedRows = {};
233
+ this.onChange = () => {
234
+ };
235
+ }
236
+ get uploadFileCtrl() {
237
+ return this.uploadFileForm.controls['uploadFileCtrl'];
238
+ }
239
+ ngOnInit() {
240
+ this.formArray = this.formBuilder.group({
241
+ tableRowArray: this.formBuilder.array([])
242
+ });
243
+ this.docForm.emit(this.formArray);
244
+ this.docTypeDropdown = this.docType.map((i) => ({
245
+ label: i.docDescription,
246
+ value: i,
247
+ disabled: false
248
+ }));
249
+ this.fileTypes = this.allowedFileType.split(',');
250
+ }
251
+ writeValue() {
252
+ }
253
+ registerOnChange(fn) {
254
+ this.onChange = fn;
255
+ }
256
+ registerOnTouched() {
257
+ }
258
+ ngOnChanges() {
259
+ }
260
+ get tableRows() {
261
+ return this.formArray.get('tableRowArray');
262
+ }
263
+ checkFileType(file, approvedFileType) {
264
+ for (let type of approvedFileType) {
265
+ if (file.type === type) {
266
+ return true;
267
+ }
268
+ }
269
+ return false;
270
+ }
271
+ async addToQueue(event) {
272
+ let curUpldFileLen = event.target.files.length;
273
+ let preUpldFileLen = this.fileObjectQueue.length;
274
+ console.log('curUpldFileLen = ', curUpldFileLen);
275
+ console.log('preUpldFileLen = ', preUpldFileLen);
276
+ console.log('this.docUploadModel.totalDocs == ', this.docUploadModel.totalDocs);
277
+ if (this.docUploadModel.totalDocs !== null && (curUpldFileLen + preUpldFileLen) > this.docUploadModel.totalDocs) {
278
+ this.error("You can not upload more than " + this.docUploadModel.totalDocs + " file(s).");
279
+ return;
280
+ }
281
+ this.showProgress = true;
282
+ for (var i = 0; i < event.target.files.length; i++) {
283
+ const file = event.target.files[i];
284
+ let encoded;
285
+ console.log('size = ', this.getSizeInMB(file?.size));
286
+ if (this.fileObjectQueue.some(e => e.fileName === file.name)) {
287
+ this.error('Document with the same file name already exists.');
288
+ this.showProgress = false;
289
+ return;
290
+ }
291
+ if (this.docUploadModel.size !== null && this.getSizeInMB(file?.size) > this.docUploadModel.size) {
292
+ this.error('File size can not be more than ' + this.docUploadModel.size + ' MB.');
293
+ this.showProgress = false;
294
+ return;
295
+ }
296
+ if (!this.checkFileType(file, this.fileTypes)) {
297
+ this.error('File type not allowed');
298
+ this.showProgress = false;
299
+ return;
300
+ }
301
+ if (file) {
302
+ encoded = await toBase64(file);
303
+ }
304
+ const fileObject = new FileObject(this.selectedDocumentType?.docType, this.selectedDocumentType?.docDescription, file.name, file.type, encoded);
305
+ var uploadFileForm = this.formBuilder.group({
306
+ 'docType': [null, Validators.required]
307
+ });
308
+ this.tableRows.push(uploadFileForm);
309
+ this.fileObjectQueue.push(fileObject);
310
+ this.upload.emit(this.fileObjectQueue);
311
+ }
312
+ event.target.value = '';
313
+ this.showProgress = false;
314
+ }
315
+ async addFileToEmployerData(event, employer) {
316
+ for (var i = 0; i < event.target.files.length; i++) {
317
+ const file = event.target.files[i];
318
+ let encoded;
319
+ if (this.docUploadModel.size !== null && this.getSizeInMB(file?.size) > this.docUploadModel.size) {
320
+ this.error('File size can not be more than ' + this.docUploadModel.size + ' MB.');
321
+ this.showProgress = false;
322
+ return;
323
+ }
324
+ if (!this.checkFileType(file, this.fileTypes)) {
325
+ this.error('File type not allowed');
326
+ this.showProgress = false;
327
+ return;
328
+ }
329
+ if (file) {
330
+ encoded = await toBase64(file);
331
+ }
332
+ const fileObject = new FileObject(this.selectedDocumentType?.docType, this.selectedDocumentType?.docDescription, file.name, file.type, encoded, employer.recordId, employer.employerName);
333
+ employer.file = fileObject;
334
+ this.uploadEmployerFile.emit(this.employerDataModel);
335
+ }
336
+ event.target.value = '';
337
+ this.showProgress = false;
338
+ }
339
+ removeFileFromEmployerData(employer) {
340
+ employer.file = null;
341
+ this.uploadEmployerFile.emit(this.employerDataModel);
342
+ }
343
+ removeFromQueue(fileToRemove) {
344
+ let index;
345
+ for (var i = 0; i < this.fileObjectQueue.length; i++) {
346
+ if (this.fileObjectQueue[i].fileName === fileToRemove.fileName) {
347
+ index = i;
348
+ }
349
+ }
350
+ for (var i = 0; i < this.docTypeDropdown.length; i++) {
351
+ if (this.docTypeDropdown[i].value.docType === fileToRemove.docType) {
352
+ this.docTypeDropdown[i].disabled = false;
353
+ }
354
+ }
355
+ this.showProgress = true;
356
+ this.fileObjectQueue.splice(index, 1);
357
+ this.tableRows.removeAt(index);
358
+ this.mapOfFiles.delete(fileToRemove);
359
+ this.showProgress = false;
360
+ this.upload.emit(Array.from(this.mapOfFiles.values()));
361
+ this.files.emit(this.mapOfFiles);
362
+ }
363
+ changeDocType(file, event) {
364
+ console.log("166 changeDocType");
365
+ if (event.value === null) {
366
+ return;
367
+ }
368
+ let index;
369
+ let prevSelectedDoc;
370
+ for (var i = 0; i < this.fileObjectQueue.length; i++) {
371
+ if (this.fileObjectQueue[i].fileName === file.fileName) {
372
+ index = i;
373
+ prevSelectedDoc = this.fileObjectQueue[index].docType;
374
+ }
375
+ }
376
+ this.fileObjectQueue[index].docType = event.value.docType;
377
+ this.fileObjectQueue[index].name = event.value.docDescription;
378
+ for (var i = 0; i < this.docTypeDropdown.length; i++) {
379
+ if (event.value.docType === this.docTypeDropdown[i].value.docType) {
380
+ this.docTypeDropdown[i].disabled = true;
381
+ }
382
+ else if (this.docTypeDropdown[i].value.docType === prevSelectedDoc) {
383
+ this.docTypeDropdown[i].disabled = false;
384
+ }
385
+ }
386
+ }
387
+ clearDocType(file) {
388
+ let index;
389
+ let prevSelectedDoc;
390
+ for (var i = 0; i < this.fileObjectQueue.length; i++) {
391
+ if (this.fileObjectQueue[i].fileName === file.fileName) {
392
+ index = i;
393
+ prevSelectedDoc = this.fileObjectQueue[index].docType;
394
+ }
395
+ }
396
+ this.fileObjectQueue[index].docType = null;
397
+ this.fileObjectQueue[index].name = null;
398
+ for (var i = 0; i < this.docTypeDropdown.length; i++) {
399
+ if (this.docTypeDropdown[i].value.docType === prevSelectedDoc) {
400
+ this.docTypeDropdown[i].disabled = false;
401
+ }
402
+ }
403
+ }
404
+ updateQueueWithType(fileObject) {
405
+ console.log("166 updateQueueWithType");
406
+ for (var i = 0; i < this.fileObjectQueue.length; i++) {
407
+ if (this.fileObjectQueue[i].fileName === fileObject.fileName) {
408
+ this.fileObjectQueue[i].docType = this.selectedDocumentType.docType;
409
+ }
410
+ }
411
+ }
412
+ async presentToast(msg, color) {
413
+ const toast = await this.toastController.create({
414
+ message: msg,
415
+ duration: 5000,
416
+ color: color,
417
+ position: 'bottom'
418
+ });
419
+ toast.present();
420
+ }
421
+ success(msg) {
422
+ this.presentToast(msg, 'primary');
423
+ }
424
+ error(msg) {
425
+ this.presentToast(msg, 'danger');
426
+ }
427
+ getSizeInMB(num) {
428
+ return num / 1024 / 1024;
429
+ }
430
+ static { this.ɵfac = function ProofOfDocumentUploadComponent_Factory(t) { return new (t || ProofOfDocumentUploadComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.ToastController)); }; }
431
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProofOfDocumentUploadComponent, selectors: [["app-proof-of-document-upload"]], viewQuery: function ProofOfDocumentUploadComponent_Query(rf, ctx) { if (rf & 1) {
432
+ i0.ɵɵviewQuery(_c0, 5);
433
+ i0.ɵɵviewQuery(_c1, 5);
434
+ } if (rf & 2) {
435
+ let _t;
436
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.uploadFileFormDirective = _t.first);
437
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fileInput = _t);
438
+ } }, inputs: { allowedFileType: "allowedFileType", multiple: "multiple", proofOfAnything: "proofOfAnything", context: "context", showSeparateAttachButton: "showSeparateAttachButton", docUploadModel: "docUploadModel", selectedDocumentType: "selectedDocumentType", docType: "docType", iconInfo: "iconInfo", employerDataModel: "employerDataModel" }, outputs: { upload: "upload", files: "files", uploadEmployerFile: "uploadEmployerFile", docForm: "docForm" }, features: [i0.ɵɵProvidersFeature([{
439
+ provide: NG_VALUE_ACCESSOR,
440
+ useExisting: ProofOfDocumentUploadComponent,
441
+ multi: true
442
+ }]), i0.ɵɵNgOnChangesFeature], decls: 2, vars: 2, consts: [[3, "formGroup", 4, "ngIf"], ["class", "no-bullets gap-3", 4, "ngIf"], [3, "formGroup"], ["uploadFileFormDirective", "ngForm"], [4, "ngIf"], ["dataKey", "fileName", "responsiveLayout", "scroll", 3, "value", "loading"], ["pTemplate", "header"], ["pTemplate", "body"], ["pTemplate", "footer"], [1, "flex", "flex-row", "align-items-center"], ["class", "pl-1", 4, "ngIf"], [1, "pl-1"], [2, "margin-top", "2px", "margin-left", "6px", 3, "overlayText"], ["formArrayName", "tableRowArray"], [3, "formGroupName"], ["formControlName", "docType", "optionLabel", "label", "optionValue", "value", "placeholder", "Select a Document Type", "appendTo", "body", 1, "ng-invalid", "ng-dirty", 3, "options", "ngModel", "showClear", "ngClass", "ngModelChange", "onChange", "onClear"], [1, "ion-text-right", 2, "padding-right", "unset"], ["shape", "round", "fill", "outline", "size", "small", "pTooltip", "Remove", "tooltipPosition", "bottom", 1, "ion-padding-left", 3, "click"], ["name", "trash-outline"], ["class", "file-input-container flex flex-row align-items-center", 4, "ngIf"], [1, "file-input-container", "flex", "flex-row", "align-items-center"], [1, "pr-1"], ["type", "file", 3, "accept", "change"], ["fileInput", ""], ["aria-label", "Add Files", "fill", "outline", "size", "small", 1, "action-button", 3, "click"], [1, "action-icon", 3, "icon"], [1, "no-bullets", "gap-3"], ["class", "pb-3", 4, "ngFor", "ngForOf"], [1, "pb-3"], [1, "pb-2", "gap-3"], ["class", "p-3", "pTemplate", "content"], [1, "flex", "flex-row", "align-items-center", "gap-1"], ["stlye", "margin: 0", 1, "m-0"], [1, "flex", "align-items-center", "justify-content-center", "flex-column", "border-2", "border-dashed", "border-400", "rounded-sm", "p-2"], ["class", "flex align-items-center justify-content-center flex-column", 4, "ngIf"], [1, "flex", "align-items-center", "justify-content-center", "flex-column"], [1, "pi", "pi-upload", "border-2", "border-circle", "p-2", "m-2", "text-xl", "text-400"], ["id", "employerWorkSearchFileInput", "type", "file", 2, "display", "none", 3, "accept", "change"], ["aria-label", "Add Files", "fill", "outline", "size", "small", 1, "action-button", 2, "float", "inline-end", 3, "click"], [1, "flex", "align-items-center", "justify-content-center", "flex-column", "p-0", "sm:p-2", "gap-5"], [1, "card", "m-0", "px-6", "flex", "align-items-center", "justify-content-center", "flex-column", "gap-2"], [1, "pi", "pi-file", 2, "color", "#4478AA"], ["aria-label", "Remove Files", "fill", "outline", "size", "small", "pTooltip", "Remove", "tooltipPosition", "bottom", 1, "ion-padding-left", 2, "float", "inline-end", 3, "click"]], template: function ProofOfDocumentUploadComponent_Template(rf, ctx) { if (rf & 1) {
443
+ i0.ɵɵtemplate(0, ProofOfDocumentUploadComponent_form_0_Template, 3, 2, "form", 0)(1, ProofOfDocumentUploadComponent_ul_1_Template, 2, 1, "ul", 1);
444
+ } if (rf & 2) {
445
+ i0.ɵɵproperty("ngIf", !ctx.employerDataModel);
446
+ i0.ɵɵadvance(1);
447
+ i0.ɵɵproperty("ngIf", ctx.employerDataModel);
448
+ } }, dependencies: [i2.IonButton, i2.IonCol, i2.IonIcon, i2.IonRow, i3.NgClass, i3.NgForOf, i3.NgIf, i4.PrimeTemplate, i5.Tooltip, i1.ɵNgNoValidate, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i1.FormGroupName, i1.FormArrayName, i6.Table, i7.Card, i8.FaIconComponent, i9.Dropdown, i10.OverlayInfoComponent], styles: [".file-input-container[_ngcontent-%COMP%]{text-align:right}.file-input-container[_ngcontent-%COMP%] input[type=file][_ngcontent-%COMP%]{display:none}.file-input-container[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{border:1px solid #ccc;padding:6px 12px;cursor:pointer}.upload-input-container[_ngcontent-%COMP%] input[type=file][_ngcontent-%COMP%]{display:none}.upload-input-container[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{border:1px solid #ccc;cursor:pointer}[_nghost-%COMP%] .p-datatable .p-datatable-thead>tr>th{background:#fff!important;background-color:#fff!important}ol[_ngcontent-%COMP%], ul[_ngcontent-%COMP%]{list-style:none}ul[_ngcontent-%COMP%]{list-style-type:square}li[_ngcontent-%COMP%]{color:var(--ion-color-grey)}.ng-invalid[_ngcontent-%COMP%]{border-color:#f44336}.seperate-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:not(:first-child):not(:last-child){border-left:none;border-right:none}.seperate-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:first-child{border-right:none}.seperate-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:last-child{border-left:none;padding:1rem .55rem;padding-right:20px}.seperate-row[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border:1px solid #e4e4e4;font-family:\"Open Sans, Light\";font-size:26px;padding:1rem .55rem}.no-bullets[_ngcontent-%COMP%]{list-style-type:none;padding-left:0}[_nghost-%COMP%] .remove-header .p-fileupload-buttonbar{display:none}[_nghost-%COMP%] .remove-header .p-fileupload-content{border-top-right-radius:4px;border-top-left-radius:4px;padding:1rem}[_nghost-%COMP%] .p-card .p-card-body .p-card-content{padding:1rem!important}.border-400[_ngcontent-%COMP%]{border-color:#4478aa!important;border-radius:6px}"] }); }
449
+ }
450
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProofOfDocumentUploadComponent, [{
451
+ type: Component,
452
+ args: [{ selector: 'app-proof-of-document-upload', providers: [{
453
+ provide: NG_VALUE_ACCESSOR,
454
+ useExisting: ProofOfDocumentUploadComponent,
455
+ multi: true
456
+ }], template: "<form [formGroup]=\"formArray\" #uploadFileFormDirective=\"ngForm\" *ngIf=\"!employerDataModel\">\r\n <section *ngIf=\"this.context != 'signature' && this.context !='uploadZipCodes'\">\r\n <p-table dataKey=\"fileName\" [value]=\"fileObjectQueue\" responsiveLayout=\"scroll\" [loading]=\"showProgress\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th>Document Name</th>\r\n <th class=\"flex flex-row align-items-center\">\r\n Document Type\r\n <div *ngIf=\"proofOfAnything\" class=\"pl-1\">\r\n <app-overlay-info [overlayText]=\"iconInfo\"\r\n style=\"margin-top: 2px; margin-left: 6px; \"></app-overlay-info>\r\n </div>\r\n </th>\r\n <th></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-fileObjectQueue let-rowIndex=\"rowIndex\">\r\n <ng-container formArrayName=\"tableRowArray\">\r\n <tr [formGroupName]=\"rowIndex\">\r\n <td>{{ fileObjectQueue?.fileName }}</td>\r\n <td>\r\n <p-dropdown [options]=\"docTypeDropdown\" formControlName=\"docType\" [(ngModel)]=\"fileObjectQueue.selectedDocumentType\" \r\n (onChange)=\"changeDocType(fileObjectQueue,$event)\" \r\n optionLabel=\"label\" optionValue=\"value\" placeholder=\"Select a Document Type\" appendTo=body\r\n [style]=\"{'width':'90%'}\"\r\n class=\"ng-invalid ng-dirty\"\r\n [showClear]=\"true\"\r\n (onClear)=\"clearDocType(fileObjectQueue)\"\r\n [ngClass]=\"{'ng-invalid':tableRows.controls[rowIndex].get('docType')?.invalid}\"/>\r\n </td>\r\n <td class=\"ion-text-right\" style=\"padding-right: unset\">\r\n <ion-button shape=\"round\" fill=\"outline\" size=\"small\" pTooltip=\"Remove\" (click)=\"removeFromQueue(fileObjectQueue)\"\r\n tooltipPosition=\"bottom\" class=\"ion-padding-left\">\r\n <ion-icon name=\"trash-outline\"></ion-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n \r\n </ng-template>\r\n <ng-template pTemplate=\"footer\"> \r\n <tr *ngIf=\"proofOfAnything\">\r\n <td *ngIf=\"fileObjectQueue.length == 0\" class=\"file-input-container flex flex-row align-items-center\">\r\n <div class=\"pr-1\"><b>+ Add</b> document</div >\r\n <input type=\"file\" #fileInput [accept]=\"allowedFileType\"\r\n (change)=\"addToQueue($event)\" />\r\n <ion-button aria-label=\"Add Files\" (click)=\"fileInput.click()\" fill=\"outline\" size=\"small\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n <td *ngIf=\"fileObjectQueue.length > 0\" class=\"file-input-container flex flex-row align-items-center\">\r\n <div class=\"pr-1\"><b>+ Add</b> any other document</div >\r\n <input type=\"file\" #fileInput [accept]=\"allowedFileType\"\r\n (change)=\"addToQueue($event)\" />\r\n <ion-button aria-label=\"Add Files\" (click)=\"fileInput.click()\" fill=\"outline\" size=\"small\" class=\"action-button\">\r\n <fa-icon [icon]=\"['fal', 'plus']\" class=\"action-icon\"></fa-icon>\r\n </ion-button>\r\n </td>\r\n <td></td>\r\n <td >\r\n \r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </section>\r\n </form>\r\n <ul *ngIf=\"employerDataModel\" class=\"no-bullets gap-3\">\r\n <li class=\"pb-3\" *ngFor=\"let employer of employerDataModel; let i = index\">\r\n <p-card class=\"pb-2 gap-3\">\r\n <ng-template class=\"p-3\" pTemplate=\"content\" let-files let-uploadedFiles=\"uploadedFiles\" let-removeFileCallback=\"removeFileCallback\" let-removeUploadedFileCallback=\"removeUploadedFileCallback\" let-chooseCallback=\"chooseCallback\">\r\n \r\n <ion-row>\r\n <ion-col class=\"flex flex-row align-items-center gap-1\">\r\n <h4 class=\"m-0\" stlye=\"margin: 0\">{{employer.employerName}}</h4>\r\n <app-overlay-info [overlayText]=\"iconInfo\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"flex align-items-center justify-content-center flex-column border-2 border-dashed border-400 rounded-sm p-2\">\r\n <div *ngIf=\"!employer.file\" class=\"flex align-items-center justify-content-center flex-column\">\r\n <i class=\"pi pi-upload border-2 border-circle p-2 m-2 text-xl text-400\"></i>\r\n <input id=\"employerWorkSearchFileInput\" type=\"file\" #fileInput [accept]=\"allowedFileType\"\r\n (change)=\"addFileToEmployerData($event,employer)\" style=\"display: none\" />\r\n <ion-button aria-label=\"Add Files\" (click)=\"fileInput.click()\" fill=\"outline\" size=\"small\" class=\"action-button\" style=\"float:inline-end\">\r\n Upload\r\n </ion-button>\r\n </div>\r\n <div *ngIf=\"employer.file\">\r\n\r\n <div class=\"flex align-items-center justify-content-center flex-column p-0 sm:p-2 gap-5\">\r\n <div\r\n class=\"card m-0 px-6 flex align-items-center justify-content-center flex-column gap-2\"\r\n > \r\n <span>\r\n <i class=\"pi pi-file\" style=\"color: #4478AA\"></i>{{ employer.file.fileName }}\r\n </span>\r\n <ion-button aria-label=\"Remove Files\" fill=\"outline\" size=\"small\" pTooltip=\"Remove\" (click)=\"removeFileFromEmployerData(employer)\"\r\n tooltipPosition=\"bottom\" class=\"ion-padding-left\" style=\"float: inline-end\">\r\n <ion-icon name=\"trash-outline\"></ion-icon>\r\n </ion-button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n\r\n \r\n </ng-template>\r\n </p-card>\r\n </li>\r\n </ul>", styles: [".file-input-container{text-align:right}.file-input-container input[type=file]{display:none}.file-input-container label{border:1px solid #ccc;padding:6px 12px;cursor:pointer}.upload-input-container input[type=file]{display:none}.upload-input-container label{border:1px solid #ccc;cursor:pointer}:host ::ng-deep .p-datatable .p-datatable-thead>tr>th{background:#fff!important;background-color:#fff!important}ol,ul{list-style:none}ul{list-style-type:square}li{color:var(--ion-color-grey)}.ng-invalid{border-color:#f44336}.seperate-row td:not(:first-child):not(:last-child){border-left:none;border-right:none}.seperate-row td:first-child{border-right:none}.seperate-row td:last-child{border-left:none;padding:1rem .55rem;padding-right:20px}.seperate-row td{border:1px solid #e4e4e4;font-family:\"Open Sans, Light\";font-size:26px;padding:1rem .55rem}.no-bullets{list-style-type:none;padding-left:0}:host ::ng-deep .remove-header .p-fileupload-buttonbar{display:none}:host ::ng-deep .remove-header .p-fileupload-content{border-top-right-radius:4px;border-top-left-radius:4px;padding:1rem}:host ::ng-deep .p-card .p-card-body .p-card-content{padding:1rem!important}.border-400{border-color:#4478aa!important;border-radius:6px}\n"] }]
457
+ }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.ToastController }], { uploadFileFormDirective: [{
458
+ type: ViewChild,
459
+ args: ['uploadFileFormDirective', { static: false }]
460
+ }], upload: [{
461
+ type: Output
462
+ }], files: [{
463
+ type: Output
464
+ }], uploadEmployerFile: [{
465
+ type: Output
466
+ }], docForm: [{
467
+ type: Output
468
+ }], fileInput: [{
469
+ type: ViewChildren,
470
+ args: ['fileInput']
471
+ }], allowedFileType: [{
472
+ type: Input
473
+ }], multiple: [{
474
+ type: Input
475
+ }], proofOfAnything: [{
476
+ type: Input
477
+ }], context: [{
478
+ type: Input
479
+ }], showSeparateAttachButton: [{
480
+ type: Input
481
+ }], docUploadModel: [{
482
+ type: Input
483
+ }], selectedDocumentType: [{
484
+ type: Input
485
+ }], docType: [{
486
+ type: Input
487
+ }], iconInfo: [{
488
+ type: Input
489
+ }], employerDataModel: [{
490
+ type: Input
491
+ }] }); })();
492
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ProofOfDocumentUploadComponent, { className: "ProofOfDocumentUploadComponent", filePath: "lib\\components\\proof-of-document-upload\\proof-of-document-upload.component.ts", lineNumber: 20 }); })();
493
+ const toBase64 = file => new Promise((resolve, reject) => {
494
+ const reader = new FileReader();
495
+ reader.readAsDataURL(file);
496
+ reader.onload = () => resolve(reader.result);
497
+ reader.onerror = reject;
498
+ });
499
+ export class FileObject {
500
+ constructor(docType, name, fileName, contentType, fileInBased64, recordId, employerName) {
501
+ this.docType = docType;
502
+ this.name = name;
503
+ this.fileName = fileName;
504
+ this.contentType = contentType;
505
+ this.fileInBased64 = fileInBased64;
506
+ this.recordId = recordId;
507
+ this.employerName = employerName;
508
+ }
509
+ }
510
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvb2Ytb2YtZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9wcm9vZi1vZi1kb2N1bWVudC11cGxvYWQvcHJvb2Ytb2YtZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9wcm9vZi1vZi1kb2N1bWVudC11cGxvYWQvcHJvb2Ytb2YtZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUE0QixTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDL0ksT0FBTyxFQUFpRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0lDT2xILCtCQUEwQztJQUN4Qyx1Q0FDNkQ7SUFDL0QsaUJBQU07OztJQUZjLGVBQXdCO0lBQXhCLDZDQUF3Qjs7O0lBTGhELDBCQUFJLFNBQUE7SUFDRSw2QkFBYTtJQUFBLGlCQUFLO0lBQ3RCLDZCQUE2QztJQUMzQywrQkFDQTtJQUFBLCtHQUdNO0lBQ1IsaUJBQUs7SUFDTCxxQkFBUztJQUNYLGlCQUFLOzs7SUFOSyxlQUFxQjtJQUFyQiw2Q0FBcUI7Ozs7OztJQVMvQixpQ0FBNEM7SUFDMUMsOEJBQStCLFNBQUE7SUFDekIsWUFBK0I7SUFBQSxpQkFBSztJQUN4QywwQkFBSSxxQkFBQTtJQUNnRSxrUUFBYSxnRUFDekYsSUFEOEgsZ1JBQ3hHLGVBQUEsaURBQXFDLENBQUEsSUFEbUUsd1FBTXpHLGVBQUEsd0NBQTZCLENBQUEsSUFONEU7SUFBcEgs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TUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0FBQzFCLENBQUMsQ0FBQyxDQUFBO0FBRUYsTUFBTSxPQUFPLFVBQVU7SUFVckIsWUFBWSxPQUFlLEVBQUMsSUFBWSxFQUFFLFFBQWdCLEVBQUUsV0FBbUIsRUFBRSxhQUFxQixFQUFFLFFBQWdCLEVBQUUsWUFBb0I7UUFDNUksSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGRyZW4sIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiAgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLFVudHlwZWRGb3JtQXJyYXksIE5nRm9ybSwgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYXB0Y2hhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcHRjaGEvY2FwdGNoYS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2xhaW1hbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2xhaW1hbnQtc2VydmljZS9jbGFpbWFudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBEb2NUeXBlVXBsb2FkLCBEb2NVcGxvYWRNb2RlbCwgRG9jVHlwZURyb3Bkb3duT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbGV1cGxvYWQvRG9jVXBsb2FkTW9kZWwnO1xyXG5pbXBvcnQgeyBFbXBsb3llckRhdGFNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9maWxldXBsb2FkL0VtcGxveWVyRGF0YU1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXByb29mLW9mLWRvY3VtZW50LXVwbG9hZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb29mLW9mLWRvY3VtZW50LXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3Byb29mLW9mLWRvY3VtZW50LXVwbG9hZC5jb21wb25lbnQuc2NzcycsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogUHJvb2ZPZkRvY3VtZW50VXBsb2FkQ29tcG9uZW50LFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvb2ZPZkRvY3VtZW50VXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG5cclxuICBwdWJsaWMgc2hvd1Byb2dyZXNzID0gZmFsc2U7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3VwbG9hZEZpbGVGb3JtRGlyZWN0aXZlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHVwbG9hZEZpbGVGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHVwbG9hZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIGZpbGVzOiBFdmVudEVtaXR0ZXI8TWFwPEZpbGUsIHN0cmluZz4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB1cGxvYWRFbXBsb3llckZpbGU6IEV2ZW50RW1pdHRlcjxFbXBsb3llckRhdGFNb2RlbFtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQE91dHB1dCgpIFxyXG4gIGRvY0Zvcm06IEV2ZW50RW1pdHRlcjxVbnR5cGVkRm9ybUdyb3VwPiA9IG5ldyBFdmVudEVtaXR0ZXI8VW50eXBlZEZvcm1Hcm91cD4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbignZmlsZUlucHV0JykgZmlsZUlucHV0O1xyXG4gIFxyXG4gIHF1ZXVlOiBGaWxlW10gPSBbXTtcclxuXHJcbiAgZmlsZU9iamVjdFF1ZXVlOiBGaWxlT2JqZWN0W10gPSBbXTtcclxuXHJcbiAgbWFwT2ZGaWxlczogTWFwPEZpbGUsIHN0cmluZz4gPSBuZXcgTWFwKCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYWxsb3dlZEZpbGVUeXBlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwcm9vZk9mQW55dGhpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBjb250ZXh0OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd1NlcGFyYXRlQXR0YWNoQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZG9jVXBsb2FkTW9kZWw6IERvY1VwbG9hZE1vZGVsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KClcclxuICBzZWxlY3RlZERvY3VtZW50VHlwZTogRG9jVHlwZVVwbG9hZCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZG9jVHlwZTpEb2NUeXBlVXBsb2FkW10gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaWNvbkluZm86c3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBlbXBsb3llckRhdGFNb2RlbCA6IEVtcGxveWVyRGF0YU1vZGVsW107XHJcbiAgZG9jVHlwZURyb3Bkb3duOiBEb2NUeXBlRHJvcGRvd25PcHRpb25bXSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgcHVibGljIHVwbG9hZEZpbGVGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIGZvcm1BcnJheTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBpbWFnZUh0bWw6IHN0cmluZztcclxuICBkb2N1bWVudFR5cGVzOiBEb2NUeXBlVXBsb2FkW10gfCB1bmRlZmluZWQ7XHJcbiAgZmlsZVR5cGVzOiBzdHJpbmdbXTtcclxuICBleHBhbmRlZFJvd3M6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLCBcclxuICAgIHB1YmxpYyB0b2FzdENvbnRyb2xsZXI6IFRvYXN0Q29udHJvbGxlcikge1xyXG4gICAgIFxyXG4gIH1cclxuXHJcbiAgZ2V0IHVwbG9hZEZpbGVDdHJsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2FkRmlsZUZvcm0uY29udHJvbHNbJ3VwbG9hZEZpbGVDdHJsJ107XHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmZvcm1BcnJheSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICB0YWJsZVJvd0FycmF5OiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFtcclxuICAgICAgXSlcclxuICAgIH0pXHJcbiAgICB0aGlzLmRvY0Zvcm0uZW1pdCh0aGlzLmZvcm1BcnJheSk7XHJcbiAgICB0aGlzLmRvY1R5cGVEcm9wZG93biA9IHRoaXMuZG9jVHlwZS5tYXAoKGkpPT4oe1xyXG4gICAgICBsYWJlbDogaS5kb2NEZXNjcmlwdGlvbixcclxuICAgICAgdmFsdWU6IGksXHJcbiAgICAgIGRpc2FibGVkOiBmYWxzZVxyXG4gICAgfSkpO1xyXG5cclxuICAgIHRoaXMuZmlsZVR5cGVzID0gdGhpcy5hbGxvd2VkRmlsZVR5cGUuc3BsaXQoJywnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4ge1xyXG5cclxuICB9O1xyXG4gIHdyaXRlVmFsdWUoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKCk6IHZvaWQge1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG5cclxuICB9XHJcblxyXG4gIGdldCB0YWJsZVJvd3MoKTogVW50eXBlZEZvcm1BcnJheSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkuZ2V0KCd0YWJsZVJvd0FycmF5JykgYXMgVW50eXBlZEZvcm1BcnJheTtcclxuICB9XHJcblxyXG4gIGNoZWNrRmlsZVR5cGUoZmlsZTpGaWxlLCBhcHByb3ZlZEZpbGVUeXBlOnN0cmluZ1tdKTpib29sZWFue1xyXG4gICAgZm9yKGxldCB0eXBlIG9mIGFwcHJvdmVkRmlsZVR5cGUpe1xyXG4gICAgICBpZihmaWxlLnR5cGU9PT10eXBlKXtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBcclxuICBhc3luYyBhZGRUb1F1ZXVlKGV2ZW50KSB7XHJcbiAgICBsZXQgY3VyVXBsZEZpbGVMZW46IG51bWJlciA9IGV2ZW50LnRhcmdldC5maWxlcy5sZW5ndGg7XHJcbiAgICBsZXQgcHJlVXBsZEZpbGVMZW46IG51bWJlciA9IHRoaXMuZmlsZU9iamVjdFF1ZXVlLmxlbmd0aDtcclxuICAgIGNvbnNvbGUubG9nKCdjdXJVcGxkRmlsZUxlbiA9ICcsIGN1clVwbGRGaWxlTGVuKTtcclxuICAgIGNvbnNvbGUubG9nKCdwcmVVcGxkRmlsZUxlbiA9ICcsIHByZVVwbGRGaWxlTGVuKTtcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLmRvY1VwbG9hZE1vZGVsLnRvdGFsRG9jcyA9PSAnLCB0aGlzLmRvY1VwbG9hZE1vZGVsLnRvdGFsRG9jcyk7XHJcbiAgICBpZiAodGhpcy5kb2NVcGxvYWRNb2RlbC50b3RhbERvY3MhPT1udWxsICYmKGN1clVwbGRGaWxlTGVuICsgcHJlVXBsZEZpbGVMZW4pID4gdGhpcy5kb2NVcGxvYWRNb2RlbC50b3RhbERvY3MpIHtcclxuICAgICAgdGhpcy5lcnJvcihcIllvdSBjYW4gbm90IHVwbG9hZCBtb3JlIHRoYW4gXCIgKyB0aGlzLmRvY1VwbG9hZE1vZGVsLnRvdGFsRG9jcyArIFwiIGZpbGUocykuXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgZmlsZTogRmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1tpXTtcclxuICAgICAgbGV0IGVuY29kZWQ7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdzaXplID0gJywgdGhpcy5nZXRTaXplSW5NQihmaWxlPy5zaXplKSlcclxuICAgICAgaWYodGhpcy5maWxlT2JqZWN0UXVldWUuc29tZShlPT5lLmZpbGVOYW1lPT09IGZpbGUubmFtZSkpe1xyXG4gICAgICAgIHRoaXMuZXJyb3IoJ0RvY3VtZW50IHdpdGggdGhlIHNhbWUgZmlsZSBuYW1lIGFscmVhZHkgZXhpc3RzLicpO1xyXG4gICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRvY1VwbG9hZE1vZGVsLnNpemUhPT1udWxsICYmIHRoaXMuZ2V0U2l6ZUluTUIoZmlsZT8uc2l6ZSkgPiB0aGlzLmRvY1VwbG9hZE1vZGVsLnNpemUpIHtcclxuICAgICAgICB0aGlzLmVycm9yKCdGaWxlIHNpemUgY2FuIG5vdCBiZSBtb3JlIHRoYW4gJyArIHRoaXMuZG9jVXBsb2FkTW9kZWwuc2l6ZSArICcgTUIuJyk7XHJcbiAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYoIXRoaXMuY2hlY2tGaWxlVHlwZShmaWxlLHRoaXMuZmlsZVR5cGVzKSl7XHJcbiAgICAgICAgdGhpcy5lcnJvcignRmlsZSB0eXBlIG5vdCBhbGxvd2VkJyk7XHJcbiAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGZpbGUpIHtcclxuICAgICAgICBlbmNvZGVkID0gYXdhaXQgdG9CYXNlNjQoZmlsZSk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZmlsZU9iamVjdCA9IG5ldyBGaWxlT2JqZWN0KHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGU/LmRvY1R5cGUsdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZT8uZG9jRGVzY3JpcHRpb24sIGZpbGUubmFtZSwgZmlsZS50eXBlLCBlbmNvZGVkKTtcclxuICAgICAgdmFyIHVwbG9hZEZpbGVGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgJ2RvY1R5cGUnOltudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy50YWJsZVJvd3MucHVzaCh1cGxvYWRGaWxlRm9ybSlcclxuICAgICAgdGhpcy5maWxlT2JqZWN0UXVldWUucHVzaChmaWxlT2JqZWN0KTtcclxuICAgICBcclxuICAgICAgdGhpcy51cGxvYWQuZW1pdCh0aGlzLmZpbGVPYmplY3RRdWV1ZSk7XHJcbiAgICB9XHJcbiAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcclxuICAgIHRoaXMuc2hvd1Byb2dyZXNzID0gZmFsc2U7XHJcblxyXG4gIH1cclxuXHJcbiAgYXN5bmMgYWRkRmlsZVRvRW1wbG95ZXJEYXRhKGV2ZW50LGVtcGxveWVyKXtcclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGZpbGU6IEZpbGUgPSBldmVudC50YXJnZXQuZmlsZXNbaV07XHJcbiAgICAgIGxldCBlbmNvZGVkO1xyXG4gICAgICBpZiAodGhpcy5kb2NVcGxvYWRNb2RlbC5zaXplIT09bnVsbCAmJiB0aGlzLmdldFNpemVJbk1CKGZpbGU/LnNpemUpID4gdGhpcy5kb2NVcGxvYWRNb2RlbC5zaXplKSB7XHJcbiAgICAgICAgdGhpcy5lcnJvcignRmlsZSBzaXplIGNhbiBub3QgYmUgbW9yZSB0aGFuICcgKyB0aGlzLmRvY1VwbG9hZE1vZGVsLnNpemUgKyAnIE1CLicpO1xyXG4gICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKCF0aGlzLmNoZWNrRmlsZVR5cGUoZmlsZSx0aGlzLmZpbGVUeXBlcykpe1xyXG4gICAgICAgIHRoaXMuZXJyb3IoJ0ZpbGUgdHlwZSBub3QgYWxsb3dlZCcpO1xyXG4gICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChmaWxlKSB7XHJcbiAgICAgICAgZW5jb2RlZCA9IGF3YWl0IHRvQmFzZTY0KGZpbGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGZpbGVPYmplY3QgPSBuZXcgRmlsZU9iamVjdCh0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlPy5kb2NUeXBlLHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGU/LmRvY0Rlc2NyaXB0aW9uLCBmaWxlLm5hbWUsIGZpbGUudHlwZSwgZW5jb2RlZCxlbXBsb3llci5yZWNvcmRJZCwgZW1wbG95ZXIuZW1wbG95ZXJOYW1lKTsgICAgICBcclxuICAgICAgZW1wbG95ZXIuZmlsZSA9IGZpbGVPYmplY3RcclxuICAgICAgdGhpcy51cGxvYWRFbXBsb3llckZpbGUuZW1pdCh0aGlzLmVtcGxveWVyRGF0YU1vZGVsKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuICB9XHJcbiAgXHJcbiAgcmVtb3ZlRmlsZUZyb21FbXBsb3llckRhdGEoZW1wbG95ZXIpe1xyXG4gICAgZW1wbG95ZXIuZmlsZSA9IG51bGxcclxuICAgIHRoaXMudXBsb2FkRW1wbG95ZXJGaWxlLmVtaXQodGhpcy5lbXBsb3llckRhdGFNb2RlbCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVGcm9tUXVldWUoZmlsZVRvUmVtb3ZlKSB7XHJcbiAgICBsZXQgaW5kZXg7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZmlsZU9iamVjdFF1ZXVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGlzLmZpbGVPYmplY3RRdWV1ZVtpXS5maWxlTmFtZSA9PT0gZmlsZVRvUmVtb3ZlLmZpbGVOYW1lKSB7XHJcbiAgICAgICAgaW5kZXggPSBpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGZvcih2YXIgaSA9IDA7IGkgPCB0aGlzLmRvY1R5cGVEcm9wZG93bi5sZW5ndGg7IGkrKyl7XHJcbiAgICAgIGlmKHRoaXMuZG9jVHlwZURyb3Bkb3duW2ldLnZhbHVlLmRvY1R5cGU9PT1maWxlVG9SZW1vdmUuZG9jVHlwZSl7XHJcbiAgICAgICAgIHRoaXMuZG9jVHlwZURyb3Bkb3duW2ldLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICB9XHJcbiAgICAgfVxyXG4gICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgdGhpcy5maWxlT2JqZWN0UXVldWUuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMudGFibGVSb3dzLnJlbW92ZUF0KGluZGV4KTtcclxuICAgIHRoaXMubWFwT2ZGaWxlcy5kZWxldGUoZmlsZVRvUmVtb3ZlKTtcclxuICAgIHRoaXMuc2hvd1Byb2dyZXNzID0gZmFsc2U7XHJcbiAgICB0aGlzLnVwbG9hZC5lbWl0KEFycmF5LmZyb20odGhpcy5tYXBPZkZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICB0aGlzLmZpbGVzLmVtaXQodGhpcy5tYXBPZkZpbGVzKTtcclxuXHJcbiAgfVxyXG5cclxuICBjaGFuZ2VEb2NUeXBlKGZpbGUsZXZlbnQpe1xyXG5cdFx0ICBjb25zb2xlLmxvZyhcIjE2NiBjaGFuZ2VEb2NUeXBlXCIpO1xyXG4gICAgaWYoZXZlbnQudmFsdWUgPT09IG51bGwpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgaW5kZXg7XHJcbiAgICBsZXQgcHJldlNlbGVjdGVkRG9jIDogc3RyaW5nO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmZpbGVPYmplY3RRdWV1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy5maWxlT2JqZWN0UXVldWVbaV0uZmlsZU5hbWUgPT09IGZpbGUuZmlsZU5hbWUpIHtcclxuICAgICAgICBpbmRleCA9IGk7XHJcbiAgICAgICAgcHJldlNlbGVjdGVkRG9jID0gdGhpcy5maWxlT2JqZWN0UXVldWVbaW5kZXhdLmRvY1R5cGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZmlsZU9iamVjdFF1ZXVlW2luZGV4XS5kb2NUeXBlID0gZXZlbnQudmFsdWUuZG9jVHlwZTtcclxuICAgIHRoaXMuZmlsZU9iamVjdFF1ZXVlW2luZGV4XS5uYW1lID0gZXZlbnQudmFsdWUuZG9jRGVzY3JpcHRpb247XHJcblxyXG4gICAgZm9yKHZhciBpID0gMDsgaSA8IHRoaXMuZG9jVHlwZURyb3Bkb3duLmxlbmd0aDsgaSsrKXtcclxuICAgICAgaWYoZXZlbnQudmFsdWUuZG9jVHlwZT09PXRoaXMuZG9jVHlwZURyb3Bkb3duW2ldLnZhbHVlLmRvY1R5cGUpe1xyXG4gICAgICAgIHRoaXMuZG9jVHlwZURyb3Bkb3duW2ldLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgfWVsc2UgaWYodGhpcy5kb2NUeXBlRHJvcGRvd25baV0udmFsdWUuZG9jVHlwZT09PXByZXZTZWxlY3RlZERvYyl7XHJcbiAgICAgICAgdGhpcy5kb2NUeXBlRHJvcGRvd25baV0uZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgfVxyXG4gIGNsZWFyRG9jVHlwZShmaWxlKXtcclxuICAgIGxldCBpbmRleDtcclxuICAgIGxldCBwcmV2U2VsZWN0ZWREb2MgOiBzdHJpbmc7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuZmlsZU9iamVjdFF1ZXVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmICh0aGlzLmZpbGVPYmplY3RRdWV1ZVtpXS5maWxlTmFtZSA9PT0gZmlsZS5maWxlTmFtZSkge1xyXG4gICAgICAgIGluZGV4ID0gaTtcclxuICAgICAgICBwcmV2U2VsZWN0ZWREb2MgPSB0aGlzLmZpbGVPYmplY3RRdWV1ZVtpbmRleF0uZG9jVHlwZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5maWxlT2JqZWN0UXVldWVbaW5kZXhdLmRvY1R5cGUgPW51bGw7XHJcbiAgICB0aGlzLmZpbGVPYmplY3RRdWV1ZVtpbmRleF0ubmFtZSA9IG51bGw7XHJcbiAgICBmb3IodmFyIGkgPSAwOyBpIDwgdGhpcy5kb2NUeXBlRHJvcGRvd24ubGVuZ3RoOyBpKyspe1xyXG4gICAgIGlmKHRoaXMuZG9jVHlwZURyb3Bkb3duW2ldLnZhbHVlLmRvY1R5cGU9PT1wcmV2U2VsZWN0ZWREb2Mpe1xyXG4gICAgICAgIHRoaXMuZG9jVHlwZURyb3Bkb3duW2ldLmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgdXBkYXRlUXVldWVXaXRoVHlwZShmaWxlT2JqZWN0KSB7XHJcbiAgICBjb25zb2xlLmxvZyhcIjE2NiB1cGRhdGVRdWV1ZVdpdGhUeXBlXCIpO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmZpbGVPYmplY3RRdWV1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAodGhpcy5maWxlT2JqZWN0UXVldWVbaV0uZmlsZU5hbWUgPT09IGZpbGVPYmplY3QuZmlsZU5hbWUpIHtcclxuICAgICAgICB0aGlzLmZpbGVPYmplY3RRdWV1ZVtpXS5kb2NUeXBlID0gdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZS5kb2NUeXBlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIGFzeW5jIHByZXNlbnRUb2FzdChtc2csIGNvbG9yKSB7XHJcbiAgICBjb25zdCB0b2FzdCA9IGF3YWl0IHRoaXMudG9hc3RDb250cm9sbGVyLmNyZWF0ZSh7XHJcbiAgICAgIG1lc3NhZ2U6IG1zZyxcclxuICAgICAgZHVyYXRpb246IDUwMDAsXHJcbiAgICAgIGNvbG9yOiBjb2xvcixcclxuICAgICAgcG9zaXRpb246ICdib3R0b20nXHJcbiAgICB9KTtcclxuICAgIHRvYXN0LnByZXNlbnQoKTtcclxuICB9XHJcblxyXG4gIHN1Y2Nlc3MobXNnKSB7XHJcbiAgICB0aGlzLnByZXNlbnRUb2FzdChtc2csICdwcmltYXJ5Jyk7XHJcbiAgfVxyXG5cclxuICBlcnJvcihtc2cpIHtcclxuICAgIHRoaXMucHJlc2VudFRvYXN0KG1zZywgJ2RhbmdlcicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2l6ZUluTUIobnVtOiBudW1iZXIpIHtcclxuICAgIHJldHVybiBudW0gLyAxMDI0IC8gMTAyNFxyXG4gIH1cclxuICBcclxufVxyXG5cclxuY29uc3QgdG9CYXNlNjQgPSBmaWxlID0+IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpO1xyXG4gIHJlYWRlci5vbmVycm9yID0gcmVqZWN0O1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpbGVPYmplY3Qge1xyXG4gIGZpbGU6IEZpbGU7XHJcbiAgZG9jVHlwZTogc3RyaW5nO1xyXG4gIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgY29udGVudFR5cGU6IHN0cmluZztcclxuICBmaWxlSW5CYXNlZDY0OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG5cdHJlY29yZElkPzogc3RyaW5nO1xyXG4gIGVtcGxveWVyTmFtZT86IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoZG9jVHlwZTogc3RyaW5nLG5hbWU6IHN0cmluZywgZmlsZU5hbWU6IHN0cmluZywgY29udGVudFR5cGU6IHN0cmluZywgZmlsZUluQmFzZWQ2NDogc3RyaW5nLCByZWNvcmRJZD86c3RyaW5nLCBlbXBsb3llck5hbWU/OnN0cmluZykge1xyXG4gICAgdGhpcy5kb2NUeXBlID0gZG9jVHlwZTtcclxuICAgIHRoaXMubmFtZSA9IG5hbWU7XHJcbiAgICB0aGlzLmZpbGVOYW1lID0gZmlsZU5hbWU7XHJcbiAgICB0aGlzLmNvbnRlbnRUeXBlID0gY29udGVudFR5cGU7XHJcbiAgICB0aGlzLmZpbGVJbkJhc2VkNjQgPSBmaWxlSW5CYXNlZDY0O1xyXG4gICAgdGhpcy5yZWNvcmRJZCA9IHJlY29yZElkO1xyXG4gICAgdGhpcy5lbXBsb3llck5hbWUgPSBlbXBsb3llck5hbWU7IFxyXG4gIH1cclxufSIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUFycmF5XCIgI3VwbG9hZEZpbGVGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCIgKm5nSWY9XCIhZW1wbG95ZXJEYXRhTW9kZWxcIj5cclxuICAgIDxzZWN0aW9uICpuZ0lmPVwidGhpcy5jb250ZXh0ICE9ICdzaWduYXR1cmUnICYmIHRoaXMuY29udGV4dCAhPSd1cGxvYWRaaXBDb2RlcydcIj5cclxuICAgIDxwLXRhYmxlIGRhdGFLZXk9XCJmaWxlTmFtZVwiIFt2YWx1ZV09XCJmaWxlT2JqZWN0UXVldWVcIiByZXNwb25zaXZlTGF5b3V0PVwic2Nyb2xsXCIgW2xvYWRpbmddPVwic2hvd1Byb2dyZXNzXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICA8dHI+XHJcbiAgICAgICAgICA8dGg+RG9jdW1lbnQgTmFtZTwvdGg+XHJcbiAgICAgICAgICA8dGggY2xhc3M9XCJmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICBEb2N1bWVudCBUeXBlXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJwcm9vZk9mQW55dGhpbmdcIiBjbGFzcz1cInBsLTFcIj5cclxuICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiaWNvbkluZm9cIlxyXG4gICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDJweDsgbWFyZ2luLWxlZnQ6IDZweDsgXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICA8dGg+PC90aD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1maWxlT2JqZWN0UXVldWUgbGV0LXJvd0luZGV4PVwicm93SW5kZXhcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJ0YWJsZVJvd0FycmF5XCI+XHJcbiAgICAgICAgICA8dHIgW2Zvcm1Hcm91cE5hbWVdPVwicm93SW5kZXhcIj5cclxuICAgICAgICAgICAgPHRkPnt7IGZpbGVPYmplY3RRdWV1ZT8uZmlsZU5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwiZG9jVHlwZURyb3Bkb3duXCIgZm9ybUNvbnRyb2xOYW1lPVwiZG9jVHlwZVwiIFsobmdNb2RlbCldPVwiZmlsZU9iamVjdFF1ZXVlLnNlbGVjdGVkRG9jdW1lbnRUeXBlXCIgXHJcbiAgICAgICAgICAgICAgKG9uQ2hhbmdlKT1cImNoYW5nZURvY1R5cGUoZmlsZU9iamVjdFF1ZXVlLCRldmVudClcIiBcclxuICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cImxhYmVsXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGEgRG9jdW1lbnQgVHlwZVwiIGFwcGVuZFRvPWJvZHlcclxuICAgICAgICAgICAgICBbc3R5bGVdPVwieyd3aWR0aCc6JzkwJSd9XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm5nLWludmFsaWQgbmctZGlydHlcIlxyXG4gICAgICAgICAgICAgIFtzaG93Q2xlYXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgKG9uQ2xlYXIpPVwiY2xlYXJEb2NUeXBlKGZpbGVPYmplY3RRdWV1ZSlcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnbmctaW52YWxpZCc6dGFibGVSb3dzLmNvbnRyb2xzW3Jvd0luZGV4XS5nZXQoJ2RvY1R5cGUnKT8uaW52YWxpZH1cIi8+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCIgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiB1bnNldFwiPlxyXG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIHBUb29sdGlwPVwiUmVtb3ZlXCIgKGNsaWNrKT1cInJlbW92ZUZyb21RdWV1ZShmaWxlT2JqZWN0UXVldWUpXCJcclxuICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIGNsYXNzPVwiaW9uLXBhZGRpbmctbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ0cmFzaC1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIFxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+IFxyXG4gICAgICAgIDx0ciAqbmdJZj1cInByb29mT2ZBbnl0aGluZ1wiPlxyXG4gICAgICAgICAgPHRkICpuZ0lmPVwiZmlsZU9iamVjdFF1ZXVlLmxlbmd0aCA9PSAwXCIgY2xhc3M9XCJmaWxlLWlucHV0LWNvbnRhaW5lciBmbGV4IGZsZXgtcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHItMVwiPjxiPisgQWRkPC9iPiBkb2N1bWVudDwvZGl2ID5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGVJbnB1dCBbYWNjZXB0XT1cImFsbG93ZWRGaWxlVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cImFkZFRvUXVldWUoJGV2ZW50KVwiIC8+XHJcbiAgICAgICAgICAgICAgPGlvbi1idXR0b24gYXJpYS1sYWJlbD1cIkFkZCBGaWxlc1wiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIGZpbGw9XCJvdXRsaW5lXCIgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJbJ2ZhbCcsICdwbHVzJ11cIiBjbGFzcz1cImFjdGlvbi1pY29uXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8dGQgKm5nSWY9XCJmaWxlT2JqZWN0UXVldWUubGVuZ3RoID4gMFwiIGNsYXNzPVwiZmlsZS1pbnB1dC1jb250YWluZXIgZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByLTFcIj48Yj4rIEFkZDwvYj4gYW55IG90aGVyIGRvY3VtZW50PC9kaXYgPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiAjZmlsZUlucHV0IFthY2NlcHRdPVwiYWxsb3dlZEZpbGVUeXBlXCJcclxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiYWRkVG9RdWV1ZSgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQWRkIEZpbGVzXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCIgZmlsbD1cIm91dGxpbmVcIiBzaXplPVwic21hbGxcIiBjbGFzcz1cImFjdGlvbi1idXR0b25cIj5cclxuICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cIlsnZmFsJywgJ3BsdXMnXVwiIGNsYXNzPVwiYWN0aW9uLWljb25cIj48L2ZhLWljb24+XHJcbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDx0ZD48L3RkPlxyXG4gICAgICAgICAgPHRkID5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvcC10YWJsZT5cclxuICA8L3NlY3Rpb24+XHJcbiAgPC9mb3JtPlxyXG4gIDx1bCAqbmdJZj1cImVtcGxveWVyRGF0YU1vZGVsXCIgY2xhc3M9XCJuby1idWxsZXRzIGdhcC0zXCI+XHJcbiAgICA8bGkgY2xhc3M9XCJwYi0zXCIgKm5nRm9yPVwibGV0IGVtcGxveWVyIG9mIGVtcGxveWVyRGF0YU1vZGVsOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDxwLWNhcmQgY2xhc3M9XCJwYi0yIGdhcC0zXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBjbGFzcz1cInAtM1wiIHBUZW1wbGF0ZT1cImNvbnRlbnRcIiBsZXQtZmlsZXMgbGV0LXVwbG9hZGVkRmlsZXM9XCJ1cGxvYWRlZEZpbGVzXCIgbGV0LXJlbW92ZUZpbGVDYWxsYmFjaz1cInJlbW92ZUZpbGVDYWxsYmFja1wiIGxldC1yZW1vdmVVcGxvYWRlZEZpbGVDYWxsYmFjaz1cInJlbW92ZVVwbG9hZGVkRmlsZUNhbGxiYWNrXCIgbGV0LWNob29zZUNhbGxiYWNrPVwiY2hvb3NlQ2FsbGJhY2tcIj5cclxuICAgICAgICBcclxuICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICAgICAgICAgICAgPGg0IGNsYXNzPVwibS0wXCIgc3RseWU9XCJtYXJnaW46IDBcIj57e2VtcGxveWVyLmVtcGxveWVyTmFtZX19PC9oND5cclxuICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwiaWNvbkluZm9cIlxyXG4gICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogMnB4OyBtYXJnaW4tbGVmdDogNnB4O1wiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW4gYm9yZGVyLTIgYm9yZGVyLWRhc2hlZCBib3JkZXItNDAwIHJvdW5kZWQtc20gcC0yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhZW1wbG95ZXIuZmlsZVwiIGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICA8aSBjbGFzcz1cInBpIHBpLXVwbG9hZCBib3JkZXItMiBib3JkZXItY2lyY2xlIHAtMiBtLTIgdGV4dC14bCB0ZXh0LTQwMFwiPjwvaT5cclxuICAgICAgICAgICAgPGlucHV0IGlkPVwiZW1wbG95ZXJXb3JrU2VhcmNoRmlsZUlucHV0XCIgdHlwZT1cImZpbGVcIiAjZmlsZUlucHV0IFthY2NlcHRdPVwiYWxsb3dlZEZpbGVUeXBlXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJhZGRGaWxlVG9FbXBsb3llckRhdGEoJGV2ZW50LGVtcGxveWVyKVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiIC8+XHJcbiAgICAgICAgICAgIDxpb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJBZGQgRmlsZXNcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIiBmaWxsPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzPVwiYWN0aW9uLWJ1dHRvblwiIHN0eWxlPVwiZmxvYXQ6aW5saW5lLWVuZFwiPlxyXG4gICAgICAgICAgICAgIFVwbG9hZFxyXG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJlbXBsb3llci5maWxlXCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBwLTAgc206cC0yIGdhcC01XCI+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkIG0tMCBweC02IGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW4gZ2FwLTJcIlxyXG4gICAgICAgICAgICAgID4gXHJcbiAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1maWxlXCIgc3R5bGU9XCJjb2xvcjogIzQ0NzhBQVwiPjwvaT57eyBlbXBsb3llci5maWxlLmZpbGVOYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiUmVtb3ZlIEZpbGVzXCIgZmlsbD1cIm91dGxpbmVcIiBzaXplPVwic21hbGxcIiBwVG9vbHRpcD1cIlJlbW92ZVwiIChjbGljayk9XCJyZW1vdmVGaWxlRnJvbUVtcGxveWVyRGF0YShlbXBsb3llcilcIlxyXG4gICAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgY2xhc3M9XCJpb24tcGFkZGluZy1sZWZ0XCIgc3R5bGU9XCJmbG9hdDogaW5saW5lLWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInRyYXNoLW91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG5cclxuICAgICAgXHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvcC1jYXJkPlxyXG4gICAgPC9saT5cclxuICA8L3VsPiJdfQ==