@reusa/ngx-reusa-app-lib 0.0.999 → 0.1.101
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.
- package/README.md +46 -46
- package/esm2022/lib/annimations/app-animations.mjs +1 -1
- package/esm2022/lib/components/add-employer/add-employer.component.mjs +1130 -2312
- package/esm2022/lib/components/add-participant/add-participant.component.mjs +1 -1
- package/esm2022/lib/components/add-payment/add-payment.component.mjs +16 -36
- package/esm2022/lib/components/address/address.component.mjs +58 -52
- package/esm2022/lib/components/bank-details/bank-details.component.mjs +25 -29
- package/esm2022/lib/components/captcha/captcha.component.mjs +6 -6
- package/esm2022/lib/components/card/card.component.mjs +1 -1
- package/esm2022/lib/components/content/content.component.mjs +1 -1
- package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +1 -1
- package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +14 -19
- package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +6 -6
- package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
- package/esm2022/lib/components/email-update/email-update.component.mjs +32 -14
- package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +197 -192
- package/esm2022/lib/components/error/error.component.mjs +5 -22
- package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
- package/esm2022/lib/components/file-download/file-download.component.mjs +1 -1
- package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +1 -1
- package/esm2022/lib/components/footer/footer.component.mjs +67 -90
- package/esm2022/lib/components/header/header.component.mjs +105 -169
- package/esm2022/lib/components/help/help.component.mjs +1 -1
- package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +13 -13
- package/esm2022/lib/components/info/info.component.mjs +12 -4
- package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +1 -1
- package/esm2022/lib/components/job-title/job-title.component.mjs +94 -93
- package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +82 -93
- package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +329 -0
- package/esm2022/lib/components/link/link.component.mjs +1 -1
- package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +1 -1
- package/esm2022/lib/components/mask/mask.component.mjs +1 -1
- package/esm2022/lib/components/menu/menu.component.mjs +35 -44
- package/esm2022/lib/components/mfa/mfa.component.mjs +305 -103
- package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +16 -7
- package/esm2022/lib/components/mfa2/mfa2.component.mjs +260 -0
- package/esm2022/lib/components/money-expect/money-expect.component.mjs +36 -148
- package/esm2022/lib/components/msg/msg.component.mjs +1 -1
- package/esm2022/lib/components/news/news.component.mjs +1 -1
- package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +1 -1
- package/esm2022/lib/components/page/page.component.mjs +1 -1
- package/esm2022/lib/components/profile/profile.component.mjs +213 -56
- package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +33 -106
- package/esm2022/lib/components/questionnaire/AppValidators.mjs +14 -165
- package/esm2022/lib/components/questionnaire/FbConstants.mjs +1 -1
- package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +60 -110
- package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +123 -367
- package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +9 -9
- package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1029 -769
- package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +325 -157
- package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +17 -9
- package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +26 -93
- package/esm2022/lib/components/questionnaire/question-base.mjs +1 -1
- package/esm2022/lib/components/questionnaire/question-control.service.mjs +1 -2
- package/esm2022/lib/components/questionnaire/question.service.mjs +7 -5
- package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +25 -14
- package/esm2022/lib/components/read-more/read-more.component.mjs +6 -6
- package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +196 -333
- package/esm2022/lib/components/search-employer/search-employer.component.mjs +24 -47
- package/esm2022/lib/components/security-question/security-question.component.mjs +189 -0
- package/esm2022/lib/components/select/select.component.mjs +1 -1
- package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
- package/esm2022/lib/components/ssn/ssn.component.mjs +1 -1
- package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +4 -4
- package/esm2022/lib/components/test/test.component.mjs +1 -1
- package/esm2022/lib/components/user-login/user-login.component.mjs +226 -115
- package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +155 -287
- package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +46 -62
- package/esm2022/lib/directives/auto-focus/auto-focus.directive.mjs +1 -1
- package/esm2022/lib/directives/caps-lock.directive.mjs +1 -1
- package/esm2022/lib/directives/required-roles/required-roles.directive.mjs +1 -1
- package/esm2022/lib/enums/EmailStatusEnum.mjs +1 -1
- package/esm2022/lib/guards/auth.guard.mjs +4 -26
- package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
- package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +1 -1
- package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
- package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
- package/esm2022/lib/models/ErrorModel.mjs +1 -1
- package/esm2022/lib/models/FileModel.mjs +1 -1
- package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisResponseModel.mjs +3 -0
- package/esm2022/lib/models/LibConstants.mjs +15 -12
- package/esm2022/lib/models/NotificationModel.mjs +1 -1
- package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
- package/esm2022/lib/models/PartialEmploymentModel.mjs +3 -0
- package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
- package/esm2022/lib/models/SecurityQuestionModel.mjs +3 -0
- package/esm2022/lib/models/TrendModel.mjs +1 -1
- package/esm2022/lib/models/UserDetailsModel.mjs +1 -1
- package/esm2022/lib/models/UserModel.mjs +1 -1
- package/esm2022/lib/models/claimant/ClaimantModel.mjs +1 -1
- package/esm2022/lib/models/claimant/JobResultsData.mjs +1 -1
- package/esm2022/lib/models/claimant/MatchingJobs.mjs +1 -1
- package/esm2022/lib/models/claimant/ResetPasswordModel.mjs +1 -1
- package/esm2022/lib/models/dependent.model.mjs +1 -1
- package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +1 -2
- package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/ComboModel.mjs +175 -73
- package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/KeyValueModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
- package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
- package/esm2022/lib/ngx-reusa-app-lib.component.mjs +5 -5
- package/esm2022/lib/ngx-reusa-app-lib.module.mjs +13 -27
- package/esm2022/lib/ngx-reusa-app-lib.service.mjs +1 -1
- package/esm2022/lib/pages/BasePage.mjs +22 -3
- package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +18 -22
- package/esm2022/lib/pages/common/change-password/change-password.page.mjs +124 -142
- package/esm2022/lib/pages/common/landing/landing.component.mjs +8 -7
- package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
- package/esm2022/lib/pages/common/login/login.component.mjs +5 -5
- package/esm2022/lib/pages/common/not-found/not-found.page.mjs +1 -1
- package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
- package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
- package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +1 -1
- package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -1
- package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +1 -1
- package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +1 -1
- package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +1 -1
- package/esm2022/lib/pipes/filter.pipe.mjs +1 -1
- package/esm2022/lib/pipes/mask/mask.email.pipe.mjs +1 -1
- package/esm2022/lib/pipes/proper-case/proper-case.pipe.mjs +1 -1
- package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +1 -1
- package/esm2022/lib/pipes/trust-html/trust-html.pipe.mjs +1 -1
- package/esm2022/lib/services/base-service.mjs +1 -1
- package/esm2022/lib/services/captcha/captcha.service.mjs +1 -1
- package/esm2022/lib/services/chatbot/chatbot.service.mjs +2 -1
- package/esm2022/lib/services/chatbot/script.const.mjs +1 -1
- package/esm2022/lib/services/claimant/claimant.service.mjs +1 -1
- package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +36 -0
- package/esm2022/lib/services/claimant-service/claimant.service.mjs +13 -1
- package/esm2022/lib/services/claims/claims.service.mjs +14 -57
- package/esm2022/lib/services/dms-service/dms.service.mjs +1 -1
- package/esm2022/lib/services/fpjs/fingerprint.service.mjs +1 -1
- package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +1 -1
- package/esm2022/lib/services/help/help.service.mjs +1 -1
- package/esm2022/lib/services/idle/idle.service.mjs +1 -1
- package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +49 -0
- package/esm2022/lib/services/logger/logger.service.mjs +1 -1
- package/esm2022/lib/services/login/login.service.mjs +11 -1
- package/esm2022/lib/services/maintenance/maintenance.service.mjs +1 -1
- package/esm2022/lib/services/notification/notification.service.mjs +1 -1
- package/esm2022/lib/services/ovp/ovp.service.mjs +43 -0
- package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +1 -4
- package/esm2022/lib/services/questionnaire/validation.service.mjs +1 -4
- package/esm2022/lib/services/security-service/security.service.mjs +6 -5
- package/esm2022/lib/services/tour/tour.service.mjs +1 -1
- package/esm2022/lib/services/util/util.service.mjs +5 -5
- package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +42 -0
- package/esm2022/lib/validations/AppRegex.mjs +1 -1
- package/esm2022/lib/validations/AppValidators.mjs +14 -34
- package/esm2022/public-api.mjs +5 -16
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs +7480 -10431
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
- package/lib/components/add-employer/add-employer.component.d.ts +48 -77
- package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
- package/lib/components/add-payment/add-payment.component.d.ts +2 -7
- package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
- package/lib/components/address/address.component.d.ts +3 -2
- package/lib/components/address/address.component.d.ts.map +1 -1
- package/lib/components/email-update/email-update.component.d.ts +7 -1
- package/lib/components/email-update/email-update.component.d.ts.map +1 -1
- package/lib/components/employer-grid/employer-grid.component.d.ts +3 -1
- package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
- package/lib/components/error/error.component.d.ts +2 -3
- package/lib/components/error/error.component.d.ts.map +1 -1
- package/lib/components/footer/footer.component.d.ts.map +1 -1
- package/lib/components/header/header.component.d.ts +0 -1
- package/lib/components/header/header.component.d.ts.map +1 -1
- package/lib/components/job-title/job-title.component.d.ts +21 -22
- package/lib/components/job-title/job-title.component.d.ts.map +1 -1
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +2 -5
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
- package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +55 -0
- package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -0
- package/lib/components/menu/menu.component.d.ts.map +1 -1
- package/lib/components/mfa/mfa.component.d.ts +26 -3
- package/lib/components/mfa/mfa.component.d.ts.map +1 -1
- package/lib/components/mfa-popup/mfa-popup.component.d.ts +4 -1
- package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
- package/lib/components/mfa2/mfa2.component.d.ts +48 -0
- package/lib/components/mfa2/mfa2.component.d.ts.map +1 -0
- package/lib/components/money-expect/money-expect.component.d.ts +4 -15
- package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
- package/lib/components/profile/profile.component.d.ts +32 -4
- package/lib/components/profile/profile.component.d.ts.map +1 -1
- package/lib/components/profile-redirect/profile-redirect.component.d.ts +2 -9
- package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
- package/lib/components/questionnaire/AppValidators.d.ts +0 -1
- package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
- package/lib/components/questionnaire/account-success/account-success.page.d.ts +10 -13
- package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
- package/lib/components/questionnaire/common-success/common-success.page.d.ts +0 -7
- package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts +32 -14
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form.component.d.ts +24 -3
- package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +3 -0
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +1 -6
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
- package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
- package/lib/components/questionnaire/question.service.d.ts +1 -0
- package/lib/components/questionnaire/question.service.d.ts.map +1 -1
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +3 -1
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
- package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +3 -6
- package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
- package/lib/components/search-employer/search-employer.component.d.ts +2 -1
- package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
- package/lib/components/security-question/security-question.component.d.ts +37 -0
- package/lib/components/security-question/security-question.component.d.ts.map +1 -0
- package/lib/components/user-login/user-login.component.d.ts +22 -5
- package/lib/components/user-login/user-login.component.d.ts.map +1 -1
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +0 -6
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
- package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +0 -1
- package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
- package/lib/guards/auth.guard.d.ts +1 -3
- package/lib/guards/auth.guard.d.ts.map +1 -1
- package/lib/models/EmployerDetailSearchResult.d.ts +1 -3
- package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
- package/lib/models/LexisNexisAccountCreationModel.d.ts +15 -0
- package/lib/models/LexisNexisAccountCreationModel.d.ts.map +1 -0
- package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +16 -0
- package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +1 -0
- package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +39 -0
- package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +1 -0
- package/lib/models/LexisNexisResponseModel.d.ts +7 -0
- package/lib/models/LexisNexisResponseModel.d.ts.map +1 -0
- package/lib/models/LibConstants.d.ts +12 -9
- package/lib/models/LibConstants.d.ts.map +1 -1
- package/lib/models/PartialEmploymentModel.d.ts +6 -0
- package/lib/models/PartialEmploymentModel.d.ts.map +1 -0
- package/lib/models/PaymentComponentModel.d.ts +1 -1
- package/lib/models/PaymentComponentModel.d.ts.map +1 -1
- package/lib/models/SecurityQuestionModel.d.ts +7 -0
- package/lib/models/SecurityQuestionModel.d.ts.map +1 -0
- package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +0 -1
- package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +3 -13
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
- package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +1 -2
- package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
- package/lib/models/questionnaire/ComboModel.d.ts +16 -20
- package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
- package/lib/models/questionnaire/ElementsModel.d.ts +1 -0
- package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
- package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +0 -2
- package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
- package/lib/models/questionnaire/StatusModel.d.ts +0 -1
- package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
- package/lib/ngx-reusa-app-lib.module.d.ts +86 -95
- package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
- package/lib/pages/BasePage.d.ts +6 -3
- package/lib/pages/BasePage.d.ts.map +1 -1
- package/lib/pages/common/change-password/change-password.page.d.ts +0 -3
- package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
- package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +16 -0
- package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +1 -0
- package/lib/services/claimant-service/claimant.service.d.ts +5 -0
- package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
- package/lib/services/claims/claims.service.d.ts +5 -24
- package/lib/services/claims/claims.service.d.ts.map +1 -1
- package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +23 -0
- package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +1 -0
- package/lib/services/login/login.service.d.ts +3 -0
- package/lib/services/login/login.service.d.ts.map +1 -1
- package/lib/services/ovp/ovp.service.d.ts +17 -0
- package/lib/services/ovp/ovp.service.d.ts.map +1 -0
- package/lib/services/questionnaire/questionnaire.service.d.ts +0 -1
- package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
- package/lib/services/questionnaire/validation.service.d.ts +0 -3
- package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
- package/lib/services/security-service/security.service.d.ts +4 -5
- package/lib/services/security-service/security.service.d.ts.map +1 -1
- package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +17 -0
- package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -0
- package/lib/validations/AppValidators.d.ts +3 -7
- package/lib/validations/AppValidators.d.ts.map +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +4 -15
- package/public-api.d.ts.map +1 -1
- package/esm2022/lib/components/add-wage/add-wage.component.mjs +0 -160
- package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +0 -174
- package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +0 -335
- package/esm2022/lib/components/employer-info/employer-info.component.mjs +0 -326
- package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +0 -243
- package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +0 -302
- package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +0 -172
- package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +0 -179
- package/esm2022/lib/components/idme/idme.component.mjs +0 -80
- package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +0 -25
- package/esm2022/lib/components/sms/sms.component.mjs +0 -334
- package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +0 -274
- package/esm2022/lib/models/CountyModel.mjs +0 -3
- package/esm2022/lib/models/DuaRequestModel.mjs +0 -3
- package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +0 -6
- package/esm2022/lib/models/EmployerInfoComponentModel.mjs +0 -4
- package/esm2022/lib/models/EmployerPayInfoModel.mjs +0 -6
- package/esm2022/lib/models/FarmUsageComponentModel.mjs +0 -2
- package/esm2022/lib/models/GrossEarningsModel.mjs +0 -3
- package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +0 -3
- package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +0 -3
- package/esm2022/lib/models/RetroWeeksModel.mjs +0 -3
- package/esm2022/lib/models/SendOtpRequestModel.mjs +0 -3
- package/esm2022/lib/models/VerifyOtpRequestModel.mjs +0 -3
- package/esm2022/lib/models/WageInfoModel.mjs +0 -4
- package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +0 -3
- package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +0 -3
- package/esm2022/lib/services/employer/employer-service.mjs +0 -35
- package/lib/components/add-wage/add-wage.component.d.ts +0 -29
- package/lib/components/add-wage/add-wage.component.d.ts.map +0 -1
- package/lib/components/associate-ssn/associate-ssn.component.d.ts +0 -28
- package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +0 -1
- package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +0 -59
- package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +0 -1
- package/lib/components/employer-info/employer-info.component.d.ts +0 -48
- package/lib/components/employer-info/employer-info.component.d.ts.map +0 -1
- package/lib/components/employer-pay/employer-pay.component.d.ts +0 -51
- package/lib/components/employer-pay/employer-pay.component.d.ts.map +0 -1
- package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +0 -43
- package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +0 -1
- package/lib/components/farm-usage/farm-usage.component.d.ts +0 -33
- package/lib/components/farm-usage/farm-usage.component.d.ts.map +0 -1
- package/lib/components/gross-earnings/gross-earnings.component.d.ts +0 -37
- package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +0 -1
- package/lib/components/idme/idme.component.d.ts +0 -19
- package/lib/components/idme/idme.component.d.ts.map +0 -1
- package/lib/components/scrollable-text/scrollable-text.component.d.ts +0 -11
- package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +0 -1
- package/lib/components/sms/sms.component.d.ts +0 -63
- package/lib/components/sms/sms.component.d.ts.map +0 -1
- package/lib/components/wage-grid/wage-grid.component.d.ts +0 -43
- package/lib/components/wage-grid/wage-grid.component.d.ts.map +0 -1
- package/lib/models/CountyModel.d.ts +0 -8
- package/lib/models/CountyModel.d.ts.map +0 -1
- package/lib/models/DuaRequestModel.d.ts +0 -10
- package/lib/models/DuaRequestModel.d.ts.map +0 -1
- package/lib/models/DuaRetroWeeksComponentModel.d.ts +0 -5
- package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +0 -1
- package/lib/models/EmployerInfoComponentModel.d.ts +0 -9
- package/lib/models/EmployerInfoComponentModel.d.ts.map +0 -1
- package/lib/models/EmployerPayInfoModel.d.ts +0 -20
- package/lib/models/EmployerPayInfoModel.d.ts.map +0 -1
- package/lib/models/FarmUsageComponentModel.d.ts +0 -10
- package/lib/models/FarmUsageComponentModel.d.ts.map +0 -1
- package/lib/models/GrossEarningsModel.d.ts +0 -6
- package/lib/models/GrossEarningsModel.d.ts.map +0 -1
- package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +0 -7
- package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +0 -1
- package/lib/models/ReasonSeparationRequestModel.d.ts +0 -7
- package/lib/models/ReasonSeparationRequestModel.d.ts.map +0 -1
- package/lib/models/RetroWeeksModel.d.ts +0 -10
- package/lib/models/RetroWeeksModel.d.ts.map +0 -1
- package/lib/models/SendOtpRequestModel.d.ts +0 -12
- package/lib/models/SendOtpRequestModel.d.ts.map +0 -1
- package/lib/models/VerifyOtpRequestModel.d.ts +0 -8
- package/lib/models/VerifyOtpRequestModel.d.ts.map +0 -1
- package/lib/models/WageInfoModel.d.ts +0 -9
- package/lib/models/WageInfoModel.d.ts.map +0 -1
- package/lib/models/questionnaire/ScrollableTextModel.d.ts +0 -4
- package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +0 -1
- package/lib/models/questionnaire/WbaHelperTextModel.d.ts +0 -4
- package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +0 -1
- package/lib/services/employer/employer-service.d.ts +0 -16
- package/lib/services/employer/employer-service.d.ts.map +0 -1
|
@@ -2,7 +2,7 @@ import { HttpParams } from '@angular/common/http';
|
|
|
2
2
|
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewChildren } from '@angular/core';
|
|
3
3
|
import { ValidationModel } from '../../models/questionnaire/ValidationModel';
|
|
4
4
|
import { rowExpansionTrigger } from '../../annimations/app-animations';
|
|
5
|
-
import {
|
|
5
|
+
import { PartialEmploymentModel } from '../../models/PartialEmploymentModel';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "./question-control.service";
|
|
8
8
|
import * as i2 from "./question.service";
|
|
@@ -11,56 +11,51 @@ import * as i4 from "../../services/questionnaire/validation.service";
|
|
|
11
11
|
import * as i5 from "../../services/util/util.service";
|
|
12
12
|
import * as i6 from "@ionic/angular";
|
|
13
13
|
import * as i7 from "../../services/logger/logger.service";
|
|
14
|
-
import * as i8 from "
|
|
15
|
-
import * as i9 from "
|
|
16
|
-
import * as i10 from "
|
|
17
|
-
import * as i11 from "@angular/
|
|
18
|
-
import * as i12 from "primeng/
|
|
19
|
-
import * as i13 from "
|
|
20
|
-
import * as i14 from "primeng/
|
|
21
|
-
import * as i15 from "primeng/
|
|
22
|
-
import * as i16 from "primeng/
|
|
23
|
-
import * as i17 from "primeng/
|
|
24
|
-
import * as i18 from "primeng/
|
|
25
|
-
import * as i19 from "primeng/
|
|
26
|
-
import * as i20 from "primeng/
|
|
27
|
-
import * as i21 from "primeng/
|
|
28
|
-
import * as i22 from "
|
|
29
|
-
import * as i23 from "
|
|
30
|
-
import * as i24 from "../
|
|
31
|
-
import * as i25 from "../
|
|
32
|
-
import * as i26 from "../
|
|
33
|
-
import * as i27 from "../
|
|
34
|
-
import * as i28 from "../
|
|
35
|
-
import * as i29 from "../
|
|
36
|
-
import * as i30 from "../
|
|
37
|
-
import * as i31 from "../
|
|
38
|
-
import * as i32 from "../
|
|
39
|
-
import * as i33 from "../
|
|
40
|
-
import * as i34 from "../
|
|
41
|
-
import * as i35 from "../
|
|
42
|
-
import * as i36 from "../add-
|
|
43
|
-
import * as i37 from "../
|
|
44
|
-
import * as i38 from "../
|
|
45
|
-
import * as i39 from "../
|
|
46
|
-
import * as i40 from "../
|
|
47
|
-
import * as i41 from "../
|
|
48
|
-
import * as i42 from "../
|
|
49
|
-
import * as i43 from "
|
|
50
|
-
import * as i44 from "
|
|
51
|
-
import * as i45 from "../job-title/job-title.component";
|
|
52
|
-
import * as i46 from "../employer-info/employer-info.component";
|
|
53
|
-
import * as i47 from "../idme/idme.component";
|
|
54
|
-
import * as i48 from "../../pipes/translate/dynamic-translate.pipe";
|
|
55
|
-
import * as i49 from "../../pipes/trust-html/trust-html.pipe";
|
|
14
|
+
import * as i8 from "../../services/claimant-service/claimant.service";
|
|
15
|
+
import * as i9 from "../../services/weekly-cert/weekly-cert-v2.service";
|
|
16
|
+
import * as i10 from "../../services/login/login.service";
|
|
17
|
+
import * as i11 from "@angular/common";
|
|
18
|
+
import * as i12 from "primeng/api";
|
|
19
|
+
import * as i13 from "@angular/forms";
|
|
20
|
+
import * as i14 from "primeng/autocomplete";
|
|
21
|
+
import * as i15 from "primeng/dialog";
|
|
22
|
+
import * as i16 from "primeng/password";
|
|
23
|
+
import * as i17 from "primeng/inputtext";
|
|
24
|
+
import * as i18 from "primeng/inputmask";
|
|
25
|
+
import * as i19 from "primeng/divider";
|
|
26
|
+
import * as i20 from "primeng/calendar";
|
|
27
|
+
import * as i21 from "primeng/checkbox";
|
|
28
|
+
import * as i22 from "primeng/selectbutton";
|
|
29
|
+
import * as i23 from "primeng/inputnumber";
|
|
30
|
+
import * as i24 from "../captcha/captcha.component";
|
|
31
|
+
import * as i25 from "../file-uploader/file-uploader.component";
|
|
32
|
+
import * as i26 from "../overlay-info/overlay-info.component";
|
|
33
|
+
import * as i27 from "../employer-grid/employer-grid.component";
|
|
34
|
+
import * as i28 from "../legal-disclaimar/legal-disclaimar.component";
|
|
35
|
+
import * as i29 from "../money-expect/money-expect.component";
|
|
36
|
+
import * as i30 from "../search-employer/search-employer.component";
|
|
37
|
+
import * as i31 from "../address/address.component";
|
|
38
|
+
import * as i32 from "../bank-details/bank-details.component";
|
|
39
|
+
import * as i33 from "../mfa2/mfa2.component";
|
|
40
|
+
import * as i34 from "../dependent-grid/dependent-grid.component";
|
|
41
|
+
import * as i35 from "../weekly-cert-employer-grid/weekly-cert-employer-grid.component";
|
|
42
|
+
import * as i36 from "../add-participant/add-participant.component";
|
|
43
|
+
import * as i37 from "../dropdown/dropdown.component";
|
|
44
|
+
import * as i38 from "../requalify-lift-previous-issues/requalify-lift-previous-issues.component";
|
|
45
|
+
import * as i39 from "../add-payment/add-payment.component";
|
|
46
|
+
import * as i40 from "../link/link.component";
|
|
47
|
+
import * as i41 from "../sign-ssn/sign-ssn.component";
|
|
48
|
+
import * as i42 from "../job-title/job-title.component";
|
|
49
|
+
import * as i43 from "../../pipes/translate/dynamic-translate.pipe";
|
|
50
|
+
import * as i44 from "../../pipes/trust-html/trust-html.pipe";
|
|
56
51
|
const _c0 = ["bankdtls"];
|
|
57
52
|
const _c1 = ["wcEmployerGrid"];
|
|
58
|
-
const _c2 = ["
|
|
53
|
+
const _c2 = ["pCalendar"];
|
|
59
54
|
const _c3 = ["address"];
|
|
60
|
-
function
|
|
55
|
+
function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_0_Template(rf, ctx) { if (rf & 1) {
|
|
61
56
|
const _r30 = i0.ɵɵgetCurrentView();
|
|
62
|
-
i0.ɵɵelementStart(0, "ion-button",
|
|
63
|
-
i0.ɵɵlistener("click", function
|
|
57
|
+
i0.ɵɵelementStart(0, "ion-button", 14);
|
|
58
|
+
i0.ɵɵlistener("click", function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_0_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r30); const ctx_r29 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r29.reject()); });
|
|
64
59
|
i0.ɵɵtext(1);
|
|
65
60
|
i0.ɵɵelementEnd();
|
|
66
61
|
} if (rf & 2) {
|
|
@@ -68,10 +63,10 @@ function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_0_Temp
|
|
|
68
63
|
i0.ɵɵadvance(1);
|
|
69
64
|
i0.ɵɵtextInterpolate1(" ", ctx_r27.popUpNoActionLabel, " ");
|
|
70
65
|
} }
|
|
71
|
-
function
|
|
66
|
+
function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_1_Template(rf, ctx) { if (rf & 1) {
|
|
72
67
|
const _r32 = i0.ɵɵgetCurrentView();
|
|
73
|
-
i0.ɵɵelementStart(0, "ion-button",
|
|
74
|
-
i0.ɵɵlistener("click", function
|
|
68
|
+
i0.ɵɵelementStart(0, "ion-button", 15);
|
|
69
|
+
i0.ɵɵlistener("click", function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_1_Template_ion_button_click_0_listener() { i0.ɵɵrestoreView(_r32); const ctx_r31 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r31.accept()); });
|
|
75
70
|
i0.ɵɵtext(1);
|
|
76
71
|
i0.ɵɵelementEnd();
|
|
77
72
|
} if (rf & 2) {
|
|
@@ -79,8 +74,8 @@ function DynamicFormQuestionComponent_p_dialog_1_ng_template_4_ion_button_1_Temp
|
|
|
79
74
|
i0.ɵɵadvance(1);
|
|
80
75
|
i0.ɵɵtextInterpolate1(" ", ctx_r28.popUpYesActionLabel, " ");
|
|
81
76
|
} }
|
|
82
|
-
function
|
|
83
|
-
i0.ɵɵtemplate(0,
|
|
77
|
+
function DynamicFormQuestionComponent_p_dialog_1_ng_template_5_Template(rf, ctx) { if (rf & 1) {
|
|
78
|
+
i0.ɵɵtemplate(0, DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_0_Template, 2, 1, "ion-button", 12)(1, DynamicFormQuestionComponent_p_dialog_1_ng_template_5_ion_button_1_Template, 2, 1, "ion-button", 13);
|
|
84
79
|
} if (rf & 2) {
|
|
85
80
|
const ctx_r26 = i0.ɵɵnextContext(2);
|
|
86
81
|
i0.ɵɵproperty("ngIf", ctx_r26.popUpNoActionLabel);
|
|
@@ -96,8 +91,10 @@ function DynamicFormQuestionComponent_p_dialog_1_Template(rf, ctx) { if (rf & 1)
|
|
|
96
91
|
i0.ɵɵelementStart(1, "h4", 10);
|
|
97
92
|
i0.ɵɵtext(2);
|
|
98
93
|
i0.ɵɵelementEnd();
|
|
99
|
-
i0.ɵɵ
|
|
100
|
-
i0.ɵɵ
|
|
94
|
+
i0.ɵɵelementStart(3, "p");
|
|
95
|
+
i0.ɵɵtext(4);
|
|
96
|
+
i0.ɵɵelementEnd();
|
|
97
|
+
i0.ɵɵtemplate(5, DynamicFormQuestionComponent_p_dialog_1_ng_template_5_Template, 2, 2, "ng-template", 11);
|
|
101
98
|
i0.ɵɵelementEnd();
|
|
102
99
|
} if (rf & 2) {
|
|
103
100
|
const ctx_r0 = i0.ɵɵnextContext();
|
|
@@ -106,12 +103,12 @@ function DynamicFormQuestionComponent_p_dialog_1_Template(rf, ctx) { if (rf & 1)
|
|
|
106
103
|
i0.ɵɵattribute("aria-label", ctx_r0.question.title);
|
|
107
104
|
i0.ɵɵadvance(2);
|
|
108
105
|
i0.ɵɵtextInterpolate1(" ", ctx_r0.popUpHeader, " ");
|
|
109
|
-
i0.ɵɵadvance(
|
|
110
|
-
i0.ɵɵ
|
|
106
|
+
i0.ɵɵadvance(2);
|
|
107
|
+
i0.ɵɵtextInterpolate1("", ctx_r0.popUpText, " ");
|
|
111
108
|
} }
|
|
112
109
|
function DynamicFormQuestionComponent_div_2_label_1_Template(rf, ctx) { if (rf & 1) {
|
|
113
110
|
i0.ɵɵelementStart(0, "label");
|
|
114
|
-
i0.ɵɵelement(1, "span",
|
|
111
|
+
i0.ɵɵelement(1, "span", 17);
|
|
115
112
|
i0.ɵɵpipe(2, "trustHtml");
|
|
116
113
|
i0.ɵɵpipe(3, "dynamicTranslate");
|
|
117
114
|
i0.ɵɵelementEnd();
|
|
@@ -122,7 +119,7 @@ function DynamicFormQuestionComponent_div_2_label_1_Template(rf, ctx) { if (rf &
|
|
|
122
119
|
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r35.question.title, ctx_r35.dynamicParam)), i0.ɵɵsanitizeHtml);
|
|
123
120
|
} }
|
|
124
121
|
function DynamicFormQuestionComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
125
|
-
i0.ɵɵelementStart(0, "div",
|
|
122
|
+
i0.ɵɵelementStart(0, "div", 16);
|
|
126
123
|
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_2_label_1_Template, 4, 7, "label", 3);
|
|
127
124
|
i0.ɵɵelementEnd();
|
|
128
125
|
} if (rf & 2) {
|
|
@@ -132,200 +129,152 @@ function DynamicFormQuestionComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
132
129
|
i0.ɵɵproperty("ngIf", ctx_r1.question.indent === 1 && ctx_r1.question.type != "html" && ctx_r1.question.type != "hidden" && ctx_r1.question.type != "label");
|
|
133
130
|
} }
|
|
134
131
|
function DynamicFormQuestionComponent_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
135
|
-
i0.ɵɵelementStart(0, "div",
|
|
136
|
-
i0.ɵɵelement(
|
|
137
|
-
i0.ɵɵpipe(
|
|
138
|
-
i0.ɵɵpipe(
|
|
139
|
-
i0.ɵɵelementEnd();
|
|
132
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "label");
|
|
133
|
+
i0.ɵɵelement(2, "span", 17);
|
|
134
|
+
i0.ɵɵpipe(3, "trustHtml");
|
|
135
|
+
i0.ɵɵpipe(4, "dynamicTranslate");
|
|
136
|
+
i0.ɵɵelementEnd()();
|
|
140
137
|
} if (rf & 2) {
|
|
141
138
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
142
139
|
i0.ɵɵproperty("ngStyle", ctx_r2.setStyle(ctx_r2.question.indent));
|
|
143
140
|
i0.ɵɵadvance(1);
|
|
144
|
-
i0.ɵɵ
|
|
141
|
+
i0.ɵɵattribute("for", ctx_r2.question.name);
|
|
142
|
+
i0.ɵɵadvance(1);
|
|
143
|
+
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 3, i0.ɵɵpipeBind2(4, 5, ctx_r2.question.title, ctx_r2.dynamicParam)), i0.ɵɵsanitizeHtml);
|
|
145
144
|
} }
|
|
146
145
|
function DynamicFormQuestionComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
147
|
-
i0.ɵɵelementStart(0, "div",
|
|
148
|
-
i0.ɵɵelement(
|
|
149
|
-
i0.ɵɵpipe(
|
|
150
|
-
i0.ɵɵpipe(
|
|
151
|
-
i0.ɵɵelementEnd();
|
|
146
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "label");
|
|
147
|
+
i0.ɵɵelement(2, "span", 17);
|
|
148
|
+
i0.ɵɵpipe(3, "trustHtml");
|
|
149
|
+
i0.ɵɵpipe(4, "dynamicTranslate");
|
|
150
|
+
i0.ɵɵelementEnd()();
|
|
152
151
|
} if (rf & 2) {
|
|
153
152
|
const ctx_r3 = i0.ɵɵnextContext();
|
|
154
153
|
i0.ɵɵproperty("ngStyle", ctx_r3.setStyle(ctx_r3.question.indent));
|
|
155
154
|
i0.ɵɵadvance(1);
|
|
156
|
-
i0.ɵɵ
|
|
155
|
+
i0.ɵɵattribute("for", ctx_r3.question.name);
|
|
156
|
+
i0.ɵɵadvance(1);
|
|
157
|
+
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 3, i0.ɵɵpipeBind2(4, 5, ctx_r3.question.title, ctx_r3.dynamicParam)), i0.ɵɵsanitizeHtml);
|
|
157
158
|
} }
|
|
158
159
|
function DynamicFormQuestionComponent_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
159
|
-
i0.ɵɵelementStart(0, "div",
|
|
160
|
-
i0.ɵɵelement(
|
|
161
|
-
i0.ɵɵpipe(
|
|
162
|
-
i0.ɵɵpipe(
|
|
163
|
-
i0.ɵɵelementEnd();
|
|
160
|
+
i0.ɵɵelementStart(0, "div", 16)(1, "label");
|
|
161
|
+
i0.ɵɵelement(2, "span", 17);
|
|
162
|
+
i0.ɵɵpipe(3, "trustHtml");
|
|
163
|
+
i0.ɵɵpipe(4, "dynamicTranslate");
|
|
164
|
+
i0.ɵɵelementEnd()();
|
|
164
165
|
} if (rf & 2) {
|
|
165
166
|
const ctx_r4 = i0.ɵɵnextContext();
|
|
166
167
|
i0.ɵɵproperty("ngStyle", ctx_r4.setStyle(ctx_r4.question.indent));
|
|
167
168
|
i0.ɵɵadvance(1);
|
|
168
|
-
i0.ɵɵ
|
|
169
|
+
i0.ɵɵattribute("for", ctx_r4.question.name);
|
|
170
|
+
i0.ɵɵadvance(1);
|
|
171
|
+
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 3, i0.ɵɵpipeBind2(4, 5, ctx_r4.question.title, ctx_r4.dynamicParam)), i0.ɵɵsanitizeHtml);
|
|
169
172
|
} }
|
|
170
173
|
function DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template(rf, ctx) { if (rf & 1) {
|
|
171
|
-
const
|
|
172
|
-
i0.ɵɵelementStart(0, "app-employer-grid",
|
|
173
|
-
i0.ɵɵlistener("modelDisplay", function DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template_app_employer_grid_modelDisplay_0_listener($event) { i0.ɵɵrestoreView(
|
|
174
|
+
const _r53 = i0.ɵɵgetCurrentView();
|
|
175
|
+
i0.ɵɵelementStart(0, "app-employer-grid", 29);
|
|
176
|
+
i0.ɵɵlistener("modelDisplay", function DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template_app_employer_grid_modelDisplay_0_listener($event) { i0.ɵɵrestoreView(_r53); const ctx_r52 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r52.onModelDisplay($event)); });
|
|
174
177
|
i0.ɵɵelementEnd();
|
|
175
178
|
} if (rf & 2) {
|
|
176
179
|
const ctx_r36 = i0.ɵɵnextContext(2);
|
|
177
180
|
i0.ɵɵproperty("formControlName", ctx_r36.question.name)("form", ctx_r36.form)("dynamicParam", ctx_r36.dynamicParam);
|
|
178
181
|
} }
|
|
179
182
|
function DynamicFormQuestionComponent_div_6_app_legal_disclaimar_2_Template(rf, ctx) { if (rf & 1) {
|
|
180
|
-
const
|
|
181
|
-
i0.ɵɵelementStart(0, "app-legal-disclaimar",
|
|
182
|
-
i0.ɵɵlistener("accepted", function DynamicFormQuestionComponent_div_6_app_legal_disclaimar_2_Template_app_legal_disclaimar_accepted_0_listener($event) { i0.ɵɵrestoreView(
|
|
183
|
+
const _r55 = i0.ɵɵgetCurrentView();
|
|
184
|
+
i0.ɵɵelementStart(0, "app-legal-disclaimar", 30);
|
|
185
|
+
i0.ɵɵlistener("accepted", function DynamicFormQuestionComponent_div_6_app_legal_disclaimar_2_Template_app_legal_disclaimar_accepted_0_listener($event) { i0.ɵɵrestoreView(_r55); const ctx_r54 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r54.onAccepted($event)); });
|
|
183
186
|
i0.ɵɵelementEnd();
|
|
184
187
|
} if (rf & 2) {
|
|
185
188
|
const ctx_r37 = i0.ɵɵnextContext(2);
|
|
186
189
|
i0.ɵɵproperty("componentData", ctx_r37.question.componentData)("question", ctx_r37.question)("form", ctx_r37.form);
|
|
187
190
|
} }
|
|
188
191
|
function DynamicFormQuestionComponent_div_6_money_expect_3_Template(rf, ctx) { if (rf & 1) {
|
|
189
|
-
i0.ɵɵelement(0, "money-expect"
|
|
190
|
-
} if (rf & 2) {
|
|
191
|
-
const ctx_r38 = i0.ɵɵnextContext(2);
|
|
192
|
-
i0.ɵɵproperty("componentData", ctx_r38.question.componentData);
|
|
192
|
+
i0.ɵɵelement(0, "money-expect");
|
|
193
193
|
} }
|
|
194
194
|
function DynamicFormQuestionComponent_div_6_app_captcha_4_Template(rf, ctx) { if (rf & 1) {
|
|
195
|
-
i0.ɵɵelement(0, "app-captcha",
|
|
195
|
+
i0.ɵɵelement(0, "app-captcha", 31);
|
|
196
196
|
} if (rf & 2) {
|
|
197
197
|
const ctx_r39 = i0.ɵɵnextContext(2);
|
|
198
198
|
i0.ɵɵproperty("formControlName", ctx_r39.question.name);
|
|
199
199
|
} }
|
|
200
200
|
function DynamicFormQuestionComponent_div_6_app_file_uploader_5_Template(rf, ctx) { if (rf & 1) {
|
|
201
|
-
i0.ɵɵelement(0, "app-file-uploader",
|
|
201
|
+
i0.ɵɵelement(0, "app-file-uploader", 31);
|
|
202
202
|
} if (rf & 2) {
|
|
203
203
|
const ctx_r40 = i0.ɵɵnextContext(2);
|
|
204
204
|
i0.ɵɵproperty("formControlName", ctx_r40.question.name);
|
|
205
205
|
} }
|
|
206
206
|
function DynamicFormQuestionComponent_div_6_app_address_6_Template(rf, ctx) { if (rf & 1) {
|
|
207
|
-
i0.ɵɵelement(0, "app-address",
|
|
207
|
+
i0.ɵɵelement(0, "app-address", 32, 33);
|
|
208
208
|
} if (rf & 2) {
|
|
209
209
|
const ctx_r41 = i0.ɵɵnextContext(2);
|
|
210
210
|
i0.ɵɵproperty("formControlName", ctx_r41.question.name)("fromPopup", false)("countyRequired", ctx_r41.question.countyRequired)("inputId", ctx_r41.question.name);
|
|
211
211
|
} }
|
|
212
|
-
function
|
|
213
|
-
i0.ɵɵelement(0, "app-
|
|
212
|
+
function DynamicFormQuestionComponent_div_6_app_bank_details_7_Template(rf, ctx) { if (rf & 1) {
|
|
213
|
+
i0.ɵɵelement(0, "app-bank-details", 31, 34);
|
|
214
214
|
} if (rf & 2) {
|
|
215
215
|
const ctx_r42 = i0.ɵɵnextContext(2);
|
|
216
|
-
i0.ɵɵproperty("formControlName", ctx_r42.question.name)
|
|
216
|
+
i0.ɵɵproperty("formControlName", ctx_r42.question.name);
|
|
217
217
|
} }
|
|
218
|
-
function
|
|
219
|
-
i0.ɵɵelement(0, "app-
|
|
218
|
+
function DynamicFormQuestionComponent_div_6_app_requalify_lift_previous_issues_8_Template(rf, ctx) { if (rf & 1) {
|
|
219
|
+
i0.ɵɵelement(0, "app-requalify-lift-previous-issues", 35);
|
|
220
220
|
} if (rf & 2) {
|
|
221
221
|
const ctx_r43 = i0.ɵɵnextContext(2);
|
|
222
|
-
i0.ɵɵproperty("formControlName", ctx_r43.question.name);
|
|
222
|
+
i0.ɵɵproperty("formControlName", ctx_r43.question.name)("componentData", ctx_r43.question.componentData)("form", ctx_r43.form);
|
|
223
223
|
} }
|
|
224
|
-
function
|
|
225
|
-
i0.ɵɵelement(0, "app-
|
|
224
|
+
function DynamicFormQuestionComponent_div_6_app_dependent_grid_9_Template(rf, ctx) { if (rf & 1) {
|
|
225
|
+
i0.ɵɵelement(0, "app-dependent-grid", 31);
|
|
226
226
|
} if (rf & 2) {
|
|
227
227
|
const ctx_r44 = i0.ɵɵnextContext(2);
|
|
228
|
-
i0.ɵɵproperty("formControlName", ctx_r44.question.name)
|
|
228
|
+
i0.ɵɵproperty("formControlName", ctx_r44.question.name);
|
|
229
229
|
} }
|
|
230
|
-
function
|
|
231
|
-
i0.ɵɵelement(0, "app-
|
|
230
|
+
function DynamicFormQuestionComponent_div_6_app_weekly_cert_employer_grid_10_Template(rf, ctx) { if (rf & 1) {
|
|
231
|
+
i0.ɵɵelement(0, "app-weekly-cert-employer-grid", 36, 37);
|
|
232
232
|
} if (rf & 2) {
|
|
233
233
|
const ctx_r45 = i0.ɵɵnextContext(2);
|
|
234
|
-
i0.ɵɵproperty("formControlName", ctx_r45.question.name);
|
|
234
|
+
i0.ɵɵproperty("dynamicParam", ctx_r45.dynamicParam)("formControlName", ctx_r45.question.name);
|
|
235
235
|
} }
|
|
236
|
-
function
|
|
237
|
-
i0.ɵɵ
|
|
236
|
+
function DynamicFormQuestionComponent_div_6_app_search_employer_11_Template(rf, ctx) { if (rf & 1) {
|
|
237
|
+
const _r60 = i0.ɵɵgetCurrentView();
|
|
238
|
+
i0.ɵɵelementStart(0, "app-search-employer", 38);
|
|
239
|
+
i0.ɵɵlistener("onFound", function DynamicFormQuestionComponent_div_6_app_search_employer_11_Template_app_search_employer_onFound_0_listener($event) { i0.ɵɵrestoreView(_r60); const ctx_r59 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r59.setEmployer($event)); })("onEmpty", function DynamicFormQuestionComponent_div_6_app_search_employer_11_Template_app_search_employer_onEmpty_0_listener() { i0.ɵɵrestoreView(_r60); const ctx_r61 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r61.resetEmployer()); });
|
|
240
|
+
i0.ɵɵelementEnd();
|
|
238
241
|
} if (rf & 2) {
|
|
239
242
|
const ctx_r46 = i0.ɵɵnextContext(2);
|
|
240
|
-
i0.ɵɵproperty("
|
|
243
|
+
i0.ɵɵproperty("formControlName", ctx_r46.question.name);
|
|
241
244
|
} }
|
|
242
|
-
function
|
|
243
|
-
|
|
244
|
-
i0.ɵɵelementStart(0, "app-search-employer", 44);
|
|
245
|
-
i0.ɵɵlistener("onFound", function DynamicFormQuestionComponent_div_6_app_search_employer_12_Template_app_search_employer_onFound_0_listener($event) { i0.ɵɵrestoreView(_r68); const ctx_r67 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r67.setEmployer($event)); })("onEmpty", function DynamicFormQuestionComponent_div_6_app_search_employer_12_Template_app_search_employer_onEmpty_0_listener() { i0.ɵɵrestoreView(_r68); const ctx_r69 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r69.resetEmployer()); });
|
|
246
|
-
i0.ɵɵelementEnd();
|
|
245
|
+
function DynamicFormQuestionComponent_div_6_app_add_participant_12_Template(rf, ctx) { if (rf & 1) {
|
|
246
|
+
i0.ɵɵelement(0, "app-add-participant", 31);
|
|
247
247
|
} if (rf & 2) {
|
|
248
248
|
const ctx_r47 = i0.ɵɵnextContext(2);
|
|
249
249
|
i0.ɵɵproperty("formControlName", ctx_r47.question.name);
|
|
250
250
|
} }
|
|
251
|
-
function
|
|
252
|
-
i0.ɵɵelement(0, "app-add-
|
|
251
|
+
function DynamicFormQuestionComponent_div_6_app_add_payment_13_Template(rf, ctx) { if (rf & 1) {
|
|
252
|
+
i0.ɵɵelement(0, "app-add-payment", 39);
|
|
253
253
|
} if (rf & 2) {
|
|
254
254
|
const ctx_r48 = i0.ɵɵnextContext(2);
|
|
255
|
-
i0.ɵɵproperty("formControlName", ctx_r48.question.name);
|
|
255
|
+
i0.ɵɵproperty("potentialIssueId", ctx_r48.potentialIssueId)("formControlName", ctx_r48.question.name);
|
|
256
256
|
} }
|
|
257
|
-
function
|
|
258
|
-
i0.ɵɵelement(0, "app-
|
|
257
|
+
function DynamicFormQuestionComponent_div_6_app_link_14_Template(rf, ctx) { if (rf & 1) {
|
|
258
|
+
i0.ɵɵelement(0, "app-link", 40);
|
|
259
259
|
} if (rf & 2) {
|
|
260
260
|
const ctx_r49 = i0.ɵɵnextContext(2);
|
|
261
|
-
i0.ɵɵproperty("
|
|
261
|
+
i0.ɵɵproperty("isRequired", ctx_r49.question.isRequired)("formControlName", ctx_r49.question.name)("text", ctx_r49.linkComponentData == null ? null : ctx_r49.linkComponentData.text)("uri", ctx_r49.linkComponentData == null ? null : ctx_r49.linkComponentData.uri)("externalUrl", ctx_r49.linkComponentData == null ? null : ctx_r49.linkComponentData.externalUrl);
|
|
262
262
|
} }
|
|
263
|
-
function
|
|
264
|
-
i0.ɵɵelement(0, "app-
|
|
263
|
+
function DynamicFormQuestionComponent_div_6_app_sign_ssn_15_Template(rf, ctx) { if (rf & 1) {
|
|
264
|
+
i0.ɵɵelement(0, "app-sign-ssn", 41);
|
|
265
265
|
} if (rf & 2) {
|
|
266
266
|
const ctx_r50 = i0.ɵɵnextContext(2);
|
|
267
|
-
i0.ɵɵproperty("isRequired", ctx_r50.question.isRequired)("formControlName", ctx_r50.question.name)("
|
|
267
|
+
i0.ɵɵproperty("isRequired", ctx_r50.question.isRequired)("formControlName", ctx_r50.question.name)("inputId", ctx_r50.question.name);
|
|
268
268
|
} }
|
|
269
|
-
function
|
|
270
|
-
i0.ɵɵelement(0, "app-
|
|
269
|
+
function DynamicFormQuestionComponent_div_6_app_job_title_16_Template(rf, ctx) { if (rf & 1) {
|
|
270
|
+
i0.ɵɵelement(0, "app-job-title", 42, 43);
|
|
271
271
|
} if (rf & 2) {
|
|
272
272
|
const ctx_r51 = i0.ɵɵnextContext(2);
|
|
273
|
-
i0.ɵɵproperty("
|
|
274
|
-
} }
|
|
275
|
-
function DynamicFormQuestionComponent_div_6_app_employer_pay_grid_17_Template(rf, ctx) { if (rf & 1) {
|
|
276
|
-
i0.ɵɵelement(0, "app-employer-pay-grid", 36);
|
|
277
|
-
} if (rf & 2) {
|
|
278
|
-
const ctx_r52 = i0.ɵɵnextContext(2);
|
|
279
|
-
i0.ɵɵproperty("formControlName", ctx_r52.question.name);
|
|
280
|
-
} }
|
|
281
|
-
function DynamicFormQuestionComponent_div_6_app_sms_18_Template(rf, ctx) { if (rf & 1) {
|
|
282
|
-
const _r71 = i0.ɵɵgetCurrentView();
|
|
283
|
-
i0.ɵɵelementStart(0, "app-sms", 48);
|
|
284
|
-
i0.ɵɵlistener("accepted", function DynamicFormQuestionComponent_div_6_app_sms_18_Template_app_sms_accepted_0_listener($event) { i0.ɵɵrestoreView(_r71); const ctx_r70 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r70.onAcceptedOtp($event)); });
|
|
285
|
-
i0.ɵɵelementEnd();
|
|
286
|
-
} if (rf & 2) {
|
|
287
|
-
const ctx_r53 = i0.ɵɵnextContext(2);
|
|
288
|
-
i0.ɵɵproperty("formControlName", ctx_r53.question.name)("question", ctx_r53.question)("form", ctx_r53.form);
|
|
289
|
-
} }
|
|
290
|
-
function DynamicFormQuestionComponent_div_6_app_farm_usage_19_Template(rf, ctx) { if (rf & 1) {
|
|
291
|
-
i0.ɵɵelement(0, "app-farm-usage", 36);
|
|
292
|
-
} if (rf & 2) {
|
|
293
|
-
const ctx_r54 = i0.ɵɵnextContext(2);
|
|
294
|
-
i0.ɵɵproperty("formControlName", ctx_r54.question.name);
|
|
295
|
-
} }
|
|
296
|
-
function DynamicFormQuestionComponent_div_6_app_wage_grid_20_Template(rf, ctx) { if (rf & 1) {
|
|
297
|
-
i0.ɵɵelement(0, "app-wage-grid", 36);
|
|
298
|
-
} if (rf & 2) {
|
|
299
|
-
const ctx_r55 = i0.ɵɵnextContext(2);
|
|
300
|
-
i0.ɵɵproperty("formControlName", ctx_r55.question.name);
|
|
301
|
-
} }
|
|
302
|
-
function DynamicFormQuestionComponent_div_6_app_gross_earnings_21_Template(rf, ctx) { if (rf & 1) {
|
|
303
|
-
i0.ɵɵelement(0, "app-gross-earnings", 36);
|
|
304
|
-
} if (rf & 2) {
|
|
305
|
-
const ctx_r56 = i0.ɵɵnextContext(2);
|
|
306
|
-
i0.ɵɵproperty("formControlName", ctx_r56.question.name);
|
|
307
|
-
} }
|
|
308
|
-
function DynamicFormQuestionComponent_div_6_app_scrollable_text_22_Template(rf, ctx) { if (rf & 1) {
|
|
309
|
-
i0.ɵɵelement(0, "app-scrollable-text", 49);
|
|
310
|
-
} if (rf & 2) {
|
|
311
|
-
const ctx_r57 = i0.ɵɵnextContext(2);
|
|
312
|
-
i0.ɵɵproperty("componentData", ctx_r57.question.componentData)("formControlName", ctx_r57.question.name);
|
|
313
|
-
} }
|
|
314
|
-
function DynamicFormQuestionComponent_div_6_app_employer_info_23_Template(rf, ctx) { if (rf & 1) {
|
|
315
|
-
i0.ɵɵelement(0, "app-employer-info", 36);
|
|
316
|
-
} if (rf & 2) {
|
|
317
|
-
const ctx_r58 = i0.ɵɵnextContext(2);
|
|
318
|
-
i0.ɵɵproperty("formControlName", ctx_r58.question.name);
|
|
319
|
-
} }
|
|
320
|
-
function DynamicFormQuestionComponent_div_6_app_idme_24_Template(rf, ctx) { if (rf & 1) {
|
|
321
|
-
i0.ɵɵelement(0, "app-idme", 36);
|
|
322
|
-
} if (rf & 2) {
|
|
323
|
-
const ctx_r59 = i0.ɵɵnextContext(2);
|
|
324
|
-
i0.ɵɵproperty("formControlName", ctx_r59.question.name);
|
|
273
|
+
i0.ɵɵproperty("control", ctx_r51.form.controls[ctx_r51.question.name]);
|
|
325
274
|
} }
|
|
326
275
|
function DynamicFormQuestionComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
327
276
|
i0.ɵɵelementStart(0, "div");
|
|
328
|
-
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template, 1, 3, "app-employer-grid",
|
|
277
|
+
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_6_app_employer_grid_1_Template, 1, 3, "app-employer-grid", 18)(2, DynamicFormQuestionComponent_div_6_app_legal_disclaimar_2_Template, 1, 3, "app-legal-disclaimar", 19)(3, DynamicFormQuestionComponent_div_6_money_expect_3_Template, 1, 0, "money-expect", 3)(4, DynamicFormQuestionComponent_div_6_app_captcha_4_Template, 1, 1, "app-captcha", 20)(5, DynamicFormQuestionComponent_div_6_app_file_uploader_5_Template, 1, 1, "app-file-uploader", 20)(6, DynamicFormQuestionComponent_div_6_app_address_6_Template, 2, 4, "app-address", 21)(7, DynamicFormQuestionComponent_div_6_app_bank_details_7_Template, 2, 1, "app-bank-details", 20)(8, DynamicFormQuestionComponent_div_6_app_requalify_lift_previous_issues_8_Template, 1, 3, "app-requalify-lift-previous-issues", 22)(9, DynamicFormQuestionComponent_div_6_app_dependent_grid_9_Template, 1, 1, "app-dependent-grid", 20)(10, DynamicFormQuestionComponent_div_6_app_weekly_cert_employer_grid_10_Template, 2, 2, "app-weekly-cert-employer-grid", 23)(11, DynamicFormQuestionComponent_div_6_app_search_employer_11_Template, 1, 1, "app-search-employer", 24)(12, DynamicFormQuestionComponent_div_6_app_add_participant_12_Template, 1, 1, "app-add-participant", 20)(13, DynamicFormQuestionComponent_div_6_app_add_payment_13_Template, 1, 2, "app-add-payment", 25)(14, DynamicFormQuestionComponent_div_6_app_link_14_Template, 1, 5, "app-link", 26)(15, DynamicFormQuestionComponent_div_6_app_sign_ssn_15_Template, 1, 3, "app-sign-ssn", 27)(16, DynamicFormQuestionComponent_div_6_app_job_title_16_Template, 2, 1, "app-job-title", 28);
|
|
329
278
|
i0.ɵɵelementEnd();
|
|
330
279
|
} if (rf & 2) {
|
|
331
280
|
const ctx_r5 = i0.ɵɵnextContext();
|
|
@@ -342,8 +291,6 @@ function DynamicFormQuestionComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
342
291
|
i0.ɵɵadvance(1);
|
|
343
292
|
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-address");
|
|
344
293
|
i0.ɵɵadvance(1);
|
|
345
|
-
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-job-title");
|
|
346
|
-
i0.ɵɵadvance(1);
|
|
347
294
|
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-bank-details");
|
|
348
295
|
i0.ɵɵadvance(1);
|
|
349
296
|
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-requalify-lift-previous-issues");
|
|
@@ -362,25 +309,11 @@ function DynamicFormQuestionComponent_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
362
309
|
i0.ɵɵadvance(1);
|
|
363
310
|
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-sign-ssn");
|
|
364
311
|
i0.ɵɵadvance(1);
|
|
365
|
-
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-
|
|
366
|
-
i0.ɵɵadvance(1);
|
|
367
|
-
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-sms");
|
|
368
|
-
i0.ɵɵadvance(1);
|
|
369
|
-
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-farm-usage");
|
|
370
|
-
i0.ɵɵadvance(1);
|
|
371
|
-
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-wage-grid");
|
|
372
|
-
i0.ɵɵadvance(1);
|
|
373
|
-
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-gross-earnings");
|
|
374
|
-
i0.ɵɵadvance(1);
|
|
375
|
-
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-scrollable-text");
|
|
376
|
-
i0.ɵɵadvance(1);
|
|
377
|
-
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-employer-info");
|
|
378
|
-
i0.ɵɵadvance(1);
|
|
379
|
-
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-idme");
|
|
312
|
+
i0.ɵɵproperty("ngIf", ctx_r5.question.componentName === "app-job-title");
|
|
380
313
|
} }
|
|
381
314
|
function DynamicFormQuestionComponent_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
382
|
-
i0.ɵɵelementStart(0, "div",
|
|
383
|
-
i0.ɵɵelement(1, "span",
|
|
315
|
+
i0.ɵɵelementStart(0, "div", 16);
|
|
316
|
+
i0.ɵɵelement(1, "span", 17);
|
|
384
317
|
i0.ɵɵpipe(2, "trustHtml");
|
|
385
318
|
i0.ɵɵpipe(3, "dynamicTranslate");
|
|
386
319
|
i0.ɵɵelementEnd();
|
|
@@ -391,21 +324,21 @@ function DynamicFormQuestionComponent_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
|
391
324
|
i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(2, 2, i0.ɵɵpipeBind2(3, 4, ctx_r6.question.title, ctx_r6.dynamicParam)), i0.ɵɵsanitizeHtml);
|
|
392
325
|
} }
|
|
393
326
|
function DynamicFormQuestionComponent_div_8_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
394
|
-
i0.ɵɵelementStart(0, "div",
|
|
395
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
327
|
+
i0.ɵɵelementStart(0, "div", 47);
|
|
328
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
396
329
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
397
330
|
i0.ɵɵelementEnd();
|
|
398
331
|
} if (rf & 2) {
|
|
399
|
-
const
|
|
332
|
+
const ctx_r63 = i0.ɵɵnextContext(2);
|
|
400
333
|
i0.ɵɵadvance(1);
|
|
401
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
334
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r63.question.description, ctx_r63.dynamicParam));
|
|
402
335
|
} }
|
|
403
336
|
function DynamicFormQuestionComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
404
|
-
i0.ɵɵelementStart(0, "div",
|
|
405
|
-
i0.ɵɵelement(1, "div",
|
|
337
|
+
i0.ɵɵelementStart(0, "div", 44);
|
|
338
|
+
i0.ɵɵelement(1, "div", 45);
|
|
406
339
|
i0.ɵɵpipe(2, "trustHtml");
|
|
407
340
|
i0.ɵɵpipe(3, "dynamicTranslate");
|
|
408
|
-
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_div_8_div_4_Template, 3, 4, "div",
|
|
341
|
+
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_div_8_div_4_Template, 3, 4, "div", 46);
|
|
409
342
|
i0.ɵɵelementEnd();
|
|
410
343
|
} if (rf & 2) {
|
|
411
344
|
const ctx_r7 = i0.ɵɵnextContext();
|
|
@@ -415,307 +348,401 @@ function DynamicFormQuestionComponent_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
|
415
348
|
i0.ɵɵproperty("ngIf", ctx_r7.question.description);
|
|
416
349
|
} }
|
|
417
350
|
function DynamicFormQuestionComponent_ng_container_10_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
418
|
-
const
|
|
419
|
-
i0.ɵɵelementStart(0, "div")(1, "div",
|
|
420
|
-
i0.ɵɵlistener("onBlur", function
|
|
351
|
+
const _r85 = i0.ɵɵgetCurrentView();
|
|
352
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 51, 52)(3, "p-calendar", 53);
|
|
353
|
+
i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onBlur_3_listener() { i0.ɵɵrestoreView(_r85); const ctx_r84 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r84.validate(ctx_r84.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onSelect_3_listener() { i0.ɵɵrestoreView(_r85); const ctx_r86 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r86.validate(ctx_r86.question)); })("onInput", function DynamicFormQuestionComponent_ng_container_10_div_2_Template_p_calendar_onInput_3_listener($event) { i0.ɵɵrestoreView(_r85); const ctx_r87 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r87.dateInput($event)); });
|
|
421
354
|
i0.ɵɵelementEnd()()();
|
|
422
355
|
} if (rf & 2) {
|
|
423
|
-
const
|
|
424
|
-
i0.ɵɵadvance(1);
|
|
425
|
-
i0.ɵɵproperty("ngStyle", ctx_r73.setStyle(ctx_r73.question.indent));
|
|
356
|
+
const ctx_r64 = i0.ɵɵnextContext(2);
|
|
426
357
|
i0.ɵɵadvance(1);
|
|
427
|
-
i0.ɵɵproperty("
|
|
358
|
+
i0.ɵɵproperty("ngStyle", ctx_r64.setStyle(ctx_r64.question.indent));
|
|
359
|
+
i0.ɵɵadvance(2);
|
|
360
|
+
i0.ɵɵproperty("formControlName", ctx_r64.question.name)("inputId", ctx_r64.question.name)("monthNavigator", true)("yearNavigator", true)("showIcon", true)("minDate", ctx_r64.showMinDate ? ctx_r64.minDate : null)("maxDate", ctx_r64.showMaxDate ? ctx_r64.maxDate : null)("showOnFocus", false)("iconAriaLabel", ctx_r64.question.title);
|
|
428
361
|
} }
|
|
429
362
|
function DynamicFormQuestionComponent_ng_container_10_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
430
|
-
const
|
|
431
|
-
i0.ɵɵelementStart(0, "div",
|
|
432
|
-
i0.ɵɵlistener("
|
|
433
|
-
i0.ɵɵelementEnd()();
|
|
363
|
+
const _r90 = i0.ɵɵgetCurrentView();
|
|
364
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 51, 52)(3, "p-calendar", 54);
|
|
365
|
+
i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_calendar_onBlur_3_listener() { i0.ɵɵrestoreView(_r90); const ctx_r89 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r89.validate(ctx_r89.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_calendar_onSelect_3_listener() { i0.ɵɵrestoreView(_r90); const ctx_r91 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r91.validate(ctx_r91.question)); })("onInput", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_calendar_onInput_3_listener($event) { i0.ɵɵrestoreView(_r90); const ctx_r92 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r92.dateInput($event)); })("onClose", function DynamicFormQuestionComponent_ng_container_10_div_3_Template_p_calendar_onClose_3_listener() { i0.ɵɵrestoreView(_r90); const ctx_r93 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r93.checkIfUserExist()); });
|
|
366
|
+
i0.ɵɵelementEnd()()();
|
|
434
367
|
} if (rf & 2) {
|
|
435
|
-
const
|
|
436
|
-
i0.ɵɵproperty("ngStyle", ctx_r74.setStyle(ctx_r74.question.indent));
|
|
368
|
+
const ctx_r65 = i0.ɵɵnextContext(2);
|
|
437
369
|
i0.ɵɵadvance(1);
|
|
438
|
-
i0.ɵɵproperty("
|
|
439
|
-
i0.ɵɵ
|
|
370
|
+
i0.ɵɵproperty("ngStyle", ctx_r65.setStyle(ctx_r65.question.indent));
|
|
371
|
+
i0.ɵɵadvance(2);
|
|
372
|
+
i0.ɵɵproperty("formControlName", ctx_r65.question.name)("inputId", ctx_r65.question.name)("monthNavigator", true)("yearNavigator", true)("showIcon", true)("minDate", ctx_r65.minDateDOB)("maxDate", ctx_r65.maxDateDOB)("showOnFocus", false)("iconAriaLabel", ctx_r65.question.title);
|
|
440
373
|
} }
|
|
441
374
|
function DynamicFormQuestionComponent_ng_container_10_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
442
375
|
const _r95 = i0.ɵɵgetCurrentView();
|
|
443
|
-
i0.ɵɵelementStart(0, "div",
|
|
444
|
-
i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r95); const ctx_r94 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r94.validate(ctx_r94.question)); });
|
|
376
|
+
i0.ɵɵelementStart(0, "div", 51)(1, "p-inputMask", 55);
|
|
377
|
+
i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r95); const ctx_r94 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r94.validate(ctx_r94.question)); })("onFocus", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onFocus_1_listener($event) { i0.ɵɵrestoreView(_r95); const ctx_r96 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r96.unmask($event)); })("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_4_Template_p_inputMask_onBlur_1_listener($event) { i0.ɵɵrestoreView(_r95); const ctx_r97 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r97.mask($event)); });
|
|
445
378
|
i0.ɵɵelementEnd()();
|
|
446
379
|
} if (rf & 2) {
|
|
447
|
-
const
|
|
448
|
-
i0.ɵɵproperty("ngStyle",
|
|
380
|
+
const ctx_r66 = i0.ɵɵnextContext(2);
|
|
381
|
+
i0.ɵɵproperty("ngStyle", ctx_r66.setStyle(ctx_r66.question.indent));
|
|
449
382
|
i0.ɵɵadvance(1);
|
|
450
|
-
i0.ɵɵ
|
|
383
|
+
i0.ɵɵclassProp("hide-content", ctx_r66.maskClass);
|
|
384
|
+
i0.ɵɵproperty("inputId", ctx_r66.question.name)("formControlName", ctx_r66.question.name);
|
|
385
|
+
i0.ɵɵattribute("aria-label", ctx_r66.question.title);
|
|
451
386
|
} }
|
|
452
387
|
function DynamicFormQuestionComponent_ng_container_10_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
453
|
-
i0.ɵɵ
|
|
454
|
-
i0.ɵɵ
|
|
455
|
-
i0.ɵɵ
|
|
388
|
+
const _r99 = i0.ɵɵgetCurrentView();
|
|
389
|
+
i0.ɵɵelementStart(0, "div", 51)(1, "p-inputMask", 56);
|
|
390
|
+
i0.ɵɵlistener("onComplete", function DynamicFormQuestionComponent_ng_container_10_div_5_Template_p_inputMask_onComplete_1_listener() { i0.ɵɵrestoreView(_r99); const ctx_r98 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r98.validate(ctx_r98.question)); });
|
|
391
|
+
i0.ɵɵelementEnd()();
|
|
456
392
|
} if (rf & 2) {
|
|
457
|
-
const
|
|
458
|
-
i0.ɵɵproperty("ngStyle",
|
|
393
|
+
const ctx_r67 = i0.ɵɵnextContext(2);
|
|
394
|
+
i0.ɵɵproperty("ngStyle", ctx_r67.setStyle(ctx_r67.question.indent));
|
|
459
395
|
i0.ɵɵadvance(1);
|
|
460
|
-
i0.ɵɵproperty("inputId",
|
|
461
|
-
} }
|
|
462
|
-
function DynamicFormQuestionComponent_ng_container_10_div_6_input_1_Template(rf, ctx) { if (rf & 1) {
|
|
463
|
-
i0.ɵɵelement(0, "input", 65);
|
|
464
|
-
} if (rf & 2) {
|
|
465
|
-
const ctx_r96 = i0.ɵɵnextContext(3);
|
|
466
|
-
i0.ɵɵproperty("maxLength", ctx_r96.question.maxLength)("id", ctx_r96.question.name)("formControlName", ctx_r96.question.name);
|
|
467
|
-
i0.ɵɵattribute("aria-label", ctx_r96.question.title);
|
|
468
|
-
} }
|
|
469
|
-
function DynamicFormQuestionComponent_ng_container_10_div_6_input_2_Template(rf, ctx) { if (rf & 1) {
|
|
470
|
-
i0.ɵɵelement(0, "input", 66);
|
|
471
|
-
} if (rf & 2) {
|
|
472
|
-
const ctx_r97 = i0.ɵɵnextContext(3);
|
|
473
|
-
i0.ɵɵproperty("id", ctx_r97.question.name)("formControlName", ctx_r97.question.name);
|
|
474
|
-
i0.ɵɵattribute("aria-label", ctx_r97.question.title);
|
|
475
|
-
} }
|
|
476
|
-
function DynamicFormQuestionComponent_ng_container_10_div_6_input_3_Template(rf, ctx) { if (rf & 1) {
|
|
477
|
-
i0.ɵɵelement(0, "input", 65);
|
|
478
|
-
} if (rf & 2) {
|
|
479
|
-
const ctx_r98 = i0.ɵɵnextContext(3);
|
|
480
|
-
i0.ɵɵproperty("maxLength", ctx_r98.question.maxLength)("id", ctx_r98.question.name)("formControlName", ctx_r98.question.name);
|
|
481
|
-
} }
|
|
482
|
-
function DynamicFormQuestionComponent_ng_container_10_div_6_input_4_Template(rf, ctx) { if (rf & 1) {
|
|
483
|
-
i0.ɵɵelement(0, "input", 67);
|
|
484
|
-
} if (rf & 2) {
|
|
485
|
-
const ctx_r99 = i0.ɵɵnextContext(3);
|
|
486
|
-
i0.ɵɵproperty("id", ctx_r99.question.name)("formControlName", ctx_r99.question.name);
|
|
487
|
-
i0.ɵɵattribute("aria-label", ctx_r99.question.title);
|
|
396
|
+
i0.ɵɵproperty("inputId", ctx_r67.question.name)("formControlName", ctx_r67.question.name)("value", 81 - 586 - 0 - 1);
|
|
488
397
|
} }
|
|
489
398
|
function DynamicFormQuestionComponent_ng_container_10_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
490
|
-
i0.ɵɵelementStart(0, "div",
|
|
491
|
-
i0.ɵɵ
|
|
399
|
+
i0.ɵɵelementStart(0, "div", 51);
|
|
400
|
+
i0.ɵɵelement(1, "p-inputNumber", 57);
|
|
492
401
|
i0.ɵɵelementEnd();
|
|
493
402
|
} if (rf & 2) {
|
|
494
|
-
const
|
|
495
|
-
i0.ɵɵproperty("ngStyle",
|
|
496
|
-
i0.ɵɵadvance(1);
|
|
497
|
-
i0.ɵɵproperty("ngIf", ctx_r77.question.size && ctx_r77.question.maxLength);
|
|
498
|
-
i0.ɵɵadvance(1);
|
|
499
|
-
i0.ɵɵproperty("ngIf", ctx_r77.question.size && !ctx_r77.question.maxLength);
|
|
403
|
+
const ctx_r68 = i0.ɵɵnextContext(2);
|
|
404
|
+
i0.ɵɵproperty("ngStyle", ctx_r68.setStyle(ctx_r68.question.indent));
|
|
500
405
|
i0.ɵɵadvance(1);
|
|
501
|
-
i0.ɵɵproperty("
|
|
502
|
-
i0.ɵɵadvance(1);
|
|
503
|
-
i0.ɵɵproperty("ngIf", !ctx_r77.question.size && !ctx_r77.question.maxLength);
|
|
406
|
+
i0.ɵɵproperty("inputId", ctx_r68.question.name)("formControlName", ctx_r68.question.name)("minFractionDigits", 2)("ariaLabel", ctx_r68.question.title);
|
|
504
407
|
} }
|
|
505
408
|
function DynamicFormQuestionComponent_ng_container_10_div_7_input_1_Template(rf, ctx) { if (rf & 1) {
|
|
506
|
-
i0.ɵɵelement(0, "input",
|
|
409
|
+
i0.ɵɵelement(0, "input", 61);
|
|
507
410
|
} if (rf & 2) {
|
|
508
411
|
const ctx_r100 = i0.ɵɵnextContext(3);
|
|
509
|
-
i0.ɵɵproperty("maxLength", ctx_r100.question.maxLength)("id", ctx_r100.question.name)("formControlName", ctx_r100.question.name)
|
|
412
|
+
i0.ɵɵproperty("maxLength", ctx_r100.question.maxLength)("id", ctx_r100.question.name)("formControlName", ctx_r100.question.name);
|
|
510
413
|
i0.ɵɵattribute("aria-label", ctx_r100.question.title);
|
|
511
414
|
} }
|
|
512
415
|
function DynamicFormQuestionComponent_ng_container_10_div_7_input_2_Template(rf, ctx) { if (rf & 1) {
|
|
513
|
-
i0.ɵɵelement(0, "input",
|
|
416
|
+
i0.ɵɵelement(0, "input", 62);
|
|
514
417
|
} if (rf & 2) {
|
|
515
418
|
const ctx_r101 = i0.ɵɵnextContext(3);
|
|
516
|
-
i0.ɵɵproperty("id", ctx_r101.question.name)("formControlName", ctx_r101.question.name)
|
|
419
|
+
i0.ɵɵproperty("id", ctx_r101.question.name)("formControlName", ctx_r101.question.name);
|
|
517
420
|
i0.ɵɵattribute("aria-label", ctx_r101.question.title);
|
|
518
421
|
} }
|
|
519
422
|
function DynamicFormQuestionComponent_ng_container_10_div_7_input_3_Template(rf, ctx) { if (rf & 1) {
|
|
520
|
-
i0.ɵɵelement(0, "input",
|
|
423
|
+
i0.ɵɵelement(0, "input", 61);
|
|
521
424
|
} if (rf & 2) {
|
|
522
425
|
const ctx_r102 = i0.ɵɵnextContext(3);
|
|
523
|
-
i0.ɵɵproperty("maxLength", ctx_r102.question.maxLength)("id", ctx_r102.question.name)("formControlName", ctx_r102.question.name)
|
|
524
|
-
i0.ɵɵattribute("aria-label", ctx_r102.question.title);
|
|
426
|
+
i0.ɵɵproperty("maxLength", ctx_r102.question.maxLength)("id", ctx_r102.question.name)("formControlName", ctx_r102.question.name);
|
|
525
427
|
} }
|
|
526
428
|
function DynamicFormQuestionComponent_ng_container_10_div_7_input_4_Template(rf, ctx) { if (rf & 1) {
|
|
527
|
-
i0.ɵɵelement(0, "input",
|
|
429
|
+
i0.ɵɵelement(0, "input", 63);
|
|
528
430
|
} if (rf & 2) {
|
|
529
431
|
const ctx_r103 = i0.ɵɵnextContext(3);
|
|
530
|
-
i0.ɵɵproperty("id", ctx_r103.question.name)("formControlName", ctx_r103.question.name)
|
|
432
|
+
i0.ɵɵproperty("id", ctx_r103.question.name)("formControlName", ctx_r103.question.name);
|
|
531
433
|
i0.ɵɵattribute("aria-label", ctx_r103.question.title);
|
|
532
434
|
} }
|
|
533
435
|
function DynamicFormQuestionComponent_ng_container_10_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
534
|
-
i0.ɵɵelementStart(0, "div",
|
|
535
|
-
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_7_input_1_Template, 1,
|
|
436
|
+
i0.ɵɵelementStart(0, "div", 51);
|
|
437
|
+
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_7_input_1_Template, 1, 4, "input", 58)(2, DynamicFormQuestionComponent_ng_container_10_div_7_input_2_Template, 1, 3, "input", 59)(3, DynamicFormQuestionComponent_ng_container_10_div_7_input_3_Template, 1, 3, "input", 58)(4, DynamicFormQuestionComponent_ng_container_10_div_7_input_4_Template, 1, 3, "input", 60);
|
|
536
438
|
i0.ɵɵelementEnd();
|
|
537
439
|
} if (rf & 2) {
|
|
538
|
-
const
|
|
539
|
-
i0.ɵɵproperty("ngStyle",
|
|
440
|
+
const ctx_r69 = i0.ɵɵnextContext(2);
|
|
441
|
+
i0.ɵɵproperty("ngStyle", ctx_r69.setStyle(ctx_r69.question.indent));
|
|
540
442
|
i0.ɵɵadvance(1);
|
|
541
|
-
i0.ɵɵproperty("ngIf",
|
|
443
|
+
i0.ɵɵproperty("ngIf", ctx_r69.question.size && ctx_r69.question.maxLength);
|
|
542
444
|
i0.ɵɵadvance(1);
|
|
543
|
-
i0.ɵɵproperty("ngIf",
|
|
445
|
+
i0.ɵɵproperty("ngIf", ctx_r69.question.size && !ctx_r69.question.maxLength);
|
|
544
446
|
i0.ɵɵadvance(1);
|
|
545
|
-
i0.ɵɵproperty("ngIf", !
|
|
447
|
+
i0.ɵɵproperty("ngIf", !ctx_r69.question.size && ctx_r69.question.maxLength);
|
|
546
448
|
i0.ɵɵadvance(1);
|
|
547
|
-
i0.ɵɵproperty("ngIf", !
|
|
449
|
+
i0.ɵɵproperty("ngIf", !ctx_r69.question.size && !ctx_r69.question.maxLength);
|
|
450
|
+
} }
|
|
451
|
+
function DynamicFormQuestionComponent_ng_container_10_div_8_input_1_Template(rf, ctx) { if (rf & 1) {
|
|
452
|
+
i0.ɵɵelement(0, "input", 66);
|
|
453
|
+
} if (rf & 2) {
|
|
454
|
+
const ctx_r104 = i0.ɵɵnextContext(3);
|
|
455
|
+
i0.ɵɵproperty("maxLength", ctx_r104.question.maxLength)("id", ctx_r104.question.name)("formControlName", ctx_r104.question.name)("placeholder", ctx_r104.question.placeholder ? ctx_r104.question.placeholder : "");
|
|
456
|
+
i0.ɵɵattribute("aria-label", ctx_r104.question.title);
|
|
457
|
+
} }
|
|
458
|
+
function DynamicFormQuestionComponent_ng_container_10_div_8_input_2_Template(rf, ctx) { if (rf & 1) {
|
|
459
|
+
i0.ɵɵelement(0, "input", 67);
|
|
460
|
+
} if (rf & 2) {
|
|
461
|
+
const ctx_r105 = i0.ɵɵnextContext(3);
|
|
462
|
+
i0.ɵɵproperty("id", ctx_r105.question.name)("formControlName", ctx_r105.question.name)("placeholder", ctx_r105.question.placeholder ? ctx_r105.question.placeholder : "");
|
|
463
|
+
i0.ɵɵattribute("aria-label", ctx_r105.question.title);
|
|
464
|
+
} }
|
|
465
|
+
function DynamicFormQuestionComponent_ng_container_10_div_8_input_3_Template(rf, ctx) { if (rf & 1) {
|
|
466
|
+
i0.ɵɵelement(0, "input", 66);
|
|
467
|
+
} if (rf & 2) {
|
|
468
|
+
const ctx_r106 = i0.ɵɵnextContext(3);
|
|
469
|
+
i0.ɵɵproperty("maxLength", ctx_r106.question.maxLength)("id", ctx_r106.question.name)("formControlName", ctx_r106.question.name)("placeholder", ctx_r106.question.placeholder ? ctx_r106.question.placeholder : "");
|
|
470
|
+
i0.ɵɵattribute("aria-label", ctx_r106.question.title);
|
|
471
|
+
} }
|
|
472
|
+
function DynamicFormQuestionComponent_ng_container_10_div_8_input_4_Template(rf, ctx) { if (rf & 1) {
|
|
473
|
+
i0.ɵɵelement(0, "input", 67);
|
|
474
|
+
} if (rf & 2) {
|
|
475
|
+
const ctx_r107 = i0.ɵɵnextContext(3);
|
|
476
|
+
i0.ɵɵproperty("id", ctx_r107.question.name)("formControlName", ctx_r107.question.name)("placeholder", ctx_r107.question.placeholder ? ctx_r107.question.placeholder : "");
|
|
477
|
+
i0.ɵɵattribute("aria-label", ctx_r107.question.title);
|
|
548
478
|
} }
|
|
549
|
-
const _c6 = a0 => ({ "padding-left.px": a0 });
|
|
550
479
|
function DynamicFormQuestionComponent_ng_container_10_div_8_Template(rf, ctx) { if (rf & 1) {
|
|
551
|
-
i0.ɵɵelementStart(0, "div",
|
|
552
|
-
i0.ɵɵ
|
|
480
|
+
i0.ɵɵelementStart(0, "div", 51);
|
|
481
|
+
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_8_input_1_Template, 1, 5, "input", 64)(2, DynamicFormQuestionComponent_ng_container_10_div_8_input_2_Template, 1, 4, "input", 65)(3, DynamicFormQuestionComponent_ng_container_10_div_8_input_3_Template, 1, 5, "input", 64)(4, DynamicFormQuestionComponent_ng_container_10_div_8_input_4_Template, 1, 4, "input", 65);
|
|
553
482
|
i0.ɵɵelementEnd();
|
|
554
483
|
} if (rf & 2) {
|
|
555
|
-
const
|
|
556
|
-
i0.ɵɵproperty("ngStyle",
|
|
484
|
+
const ctx_r70 = i0.ɵɵnextContext(2);
|
|
485
|
+
i0.ɵɵproperty("ngStyle", ctx_r70.setStyle(ctx_r70.question.indent));
|
|
486
|
+
i0.ɵɵadvance(1);
|
|
487
|
+
i0.ɵɵproperty("ngIf", ctx_r70.question.size && ctx_r70.question.maxLength);
|
|
488
|
+
i0.ɵɵadvance(1);
|
|
489
|
+
i0.ɵɵproperty("ngIf", ctx_r70.question.size && !ctx_r70.question.maxLength);
|
|
557
490
|
i0.ɵɵadvance(1);
|
|
558
|
-
i0.ɵɵproperty("
|
|
559
|
-
i0.ɵɵ
|
|
491
|
+
i0.ɵɵproperty("ngIf", !ctx_r70.question.size && ctx_r70.question.maxLength);
|
|
492
|
+
i0.ɵɵadvance(1);
|
|
493
|
+
i0.ɵɵproperty("ngIf", !ctx_r70.question.size && !ctx_r70.question.maxLength);
|
|
560
494
|
} }
|
|
561
|
-
function
|
|
562
|
-
|
|
563
|
-
i0.ɵɵelementStart(0, "p-inputMask", 73);
|
|
564
|
-
i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_9_p_inputMask_1_Template_p_inputMask_onBlur_0_listener($event) { i0.ɵɵrestoreView(_r106); const ctx_r105 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r105.checkForValueChange($event)); });
|
|
565
|
-
i0.ɵɵelementEnd();
|
|
495
|
+
function DynamicFormQuestionComponent_ng_container_10_div_9_input_1_Template(rf, ctx) { if (rf & 1) {
|
|
496
|
+
i0.ɵɵelement(0, "input", 71);
|
|
566
497
|
} if (rf & 2) {
|
|
567
|
-
const
|
|
568
|
-
i0.ɵɵproperty("
|
|
569
|
-
i0.ɵɵattribute("aria-label",
|
|
498
|
+
const ctx_r108 = i0.ɵɵnextContext(3);
|
|
499
|
+
i0.ɵɵproperty("maxLength", ctx_r108.question.maxLength)("id", ctx_r108.question.name)("formControlName", ctx_r108.question.name)("disabled", !ctx_r108.phoneVerified)("autocomplete", (ctx_r108.question == null ? null : ctx_r108.question.name.includes("secAns")) ? "off" : "on");
|
|
500
|
+
i0.ɵɵattribute("aria-label", ctx_r108.question.title);
|
|
501
|
+
} }
|
|
502
|
+
function DynamicFormQuestionComponent_ng_container_10_div_9_input_2_Template(rf, ctx) { if (rf & 1) {
|
|
503
|
+
i0.ɵɵelement(0, "input", 72);
|
|
504
|
+
} if (rf & 2) {
|
|
505
|
+
const ctx_r109 = i0.ɵɵnextContext(3);
|
|
506
|
+
i0.ɵɵproperty("id", ctx_r109.question.name)("formControlName", ctx_r109.question.name)("disabled", !ctx_r109.phoneVerified);
|
|
507
|
+
i0.ɵɵattribute("aria-label", ctx_r109.question.title);
|
|
508
|
+
} }
|
|
509
|
+
function DynamicFormQuestionComponent_ng_container_10_div_9_input_3_Template(rf, ctx) { if (rf & 1) {
|
|
510
|
+
i0.ɵɵelement(0, "input", 73);
|
|
511
|
+
} if (rf & 2) {
|
|
512
|
+
const ctx_r110 = i0.ɵɵnextContext(3);
|
|
513
|
+
i0.ɵɵproperty("maxLength", ctx_r110.question.maxLength)("id", ctx_r110.question.name)("formControlName", ctx_r110.question.name)("disabled", !ctx_r110.phoneVerified);
|
|
514
|
+
i0.ɵɵattribute("aria-label", ctx_r110.question.title);
|
|
515
|
+
} }
|
|
516
|
+
function DynamicFormQuestionComponent_ng_container_10_div_9_input_4_Template(rf, ctx) { if (rf & 1) {
|
|
517
|
+
i0.ɵɵelement(0, "input", 72);
|
|
518
|
+
} if (rf & 2) {
|
|
519
|
+
const ctx_r111 = i0.ɵɵnextContext(3);
|
|
520
|
+
i0.ɵɵproperty("id", ctx_r111.question.name)("formControlName", ctx_r111.question.name)("disabled", !ctx_r111.phoneVerified);
|
|
521
|
+
i0.ɵɵattribute("aria-label", ctx_r111.question.title);
|
|
570
522
|
} }
|
|
571
523
|
function DynamicFormQuestionComponent_ng_container_10_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
572
|
-
i0.ɵɵelementStart(0, "div");
|
|
573
|
-
i0.ɵɵtemplate(1,
|
|
524
|
+
i0.ɵɵelementStart(0, "div", 51);
|
|
525
|
+
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_9_input_1_Template, 1, 6, "input", 68)(2, DynamicFormQuestionComponent_ng_container_10_div_9_input_2_Template, 1, 4, "input", 69)(3, DynamicFormQuestionComponent_ng_container_10_div_9_input_3_Template, 1, 5, "input", 70)(4, DynamicFormQuestionComponent_ng_container_10_div_9_input_4_Template, 1, 4, "input", 69);
|
|
574
526
|
i0.ɵɵelementEnd();
|
|
575
527
|
} if (rf & 2) {
|
|
576
|
-
const
|
|
528
|
+
const ctx_r71 = i0.ɵɵnextContext(2);
|
|
529
|
+
i0.ɵɵproperty("ngStyle", ctx_r71.setStyle(ctx_r71.question.indent));
|
|
530
|
+
i0.ɵɵadvance(1);
|
|
531
|
+
i0.ɵɵproperty("ngIf", ctx_r71.question.size && ctx_r71.question.maxLength);
|
|
532
|
+
i0.ɵɵadvance(1);
|
|
533
|
+
i0.ɵɵproperty("ngIf", ctx_r71.question.size && !ctx_r71.question.maxLength);
|
|
534
|
+
i0.ɵɵadvance(1);
|
|
535
|
+
i0.ɵɵproperty("ngIf", !ctx_r71.question.size && ctx_r71.question.maxLength);
|
|
577
536
|
i0.ɵɵadvance(1);
|
|
578
|
-
i0.ɵɵproperty("ngIf",
|
|
537
|
+
i0.ɵɵproperty("ngIf", !ctx_r71.question.size && !ctx_r71.question.maxLength);
|
|
579
538
|
} }
|
|
580
|
-
function
|
|
581
|
-
i0.ɵɵelementStart(0, "
|
|
582
|
-
i0.ɵɵ
|
|
583
|
-
i0.ɵɵelementStart(2, "b");
|
|
584
|
-
i0.ɵɵtext(3, "_ @ * $ ! # .");
|
|
539
|
+
function DynamicFormQuestionComponent_ng_container_10_div_10_Template(rf, ctx) { if (rf & 1) {
|
|
540
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 51);
|
|
541
|
+
i0.ɵɵelement(2, "input", 74);
|
|
585
542
|
i0.ɵɵelementEnd()();
|
|
543
|
+
} if (rf & 2) {
|
|
544
|
+
const ctx_r72 = i0.ɵɵnextContext(2);
|
|
545
|
+
i0.ɵɵadvance(1);
|
|
546
|
+
i0.ɵɵproperty("ngStyle", ctx_r72.setStyle(ctx_r72.question.indent));
|
|
547
|
+
i0.ɵɵadvance(1);
|
|
548
|
+
i0.ɵɵproperty("maxLength", ctx_r72.question.maxLength)("id", ctx_r72.question.name)("formControlName", ctx_r72.question.name);
|
|
549
|
+
i0.ɵɵattribute("aria-label", ctx_r72.question.title)("aria-label", ctx_r72.question.title);
|
|
586
550
|
} }
|
|
587
|
-
function
|
|
588
|
-
i0.ɵɵelementStart(0, "
|
|
589
|
-
i0.ɵɵ
|
|
590
|
-
i0.ɵɵelementStart(2, "b");
|
|
591
|
-
i0.ɵɵtext(3, "_ @ * $ ! # .");
|
|
551
|
+
function DynamicFormQuestionComponent_ng_container_10_div_11_Template(rf, ctx) { if (rf & 1) {
|
|
552
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 51);
|
|
553
|
+
i0.ɵɵelement(2, "input", 74);
|
|
592
554
|
i0.ɵɵelementEnd()();
|
|
555
|
+
} if (rf & 2) {
|
|
556
|
+
const ctx_r73 = i0.ɵɵnextContext(2);
|
|
557
|
+
i0.ɵɵadvance(1);
|
|
558
|
+
i0.ɵɵproperty("ngStyle", ctx_r73.setStyle(ctx_r73.question.indent));
|
|
559
|
+
i0.ɵɵadvance(1);
|
|
560
|
+
i0.ɵɵproperty("maxLength", ctx_r73.question.maxLength)("id", ctx_r73.question.name)("formControlName", ctx_r73.question.name);
|
|
561
|
+
i0.ɵɵattribute("aria-label", ctx_r73.question.title)("aria-label", ctx_r73.question.title);
|
|
562
|
+
} }
|
|
563
|
+
const _c6 = a0 => ({ "padding-left.px": a0 });
|
|
564
|
+
function DynamicFormQuestionComponent_ng_container_10_div_12_Template(rf, ctx) { if (rf & 1) {
|
|
565
|
+
i0.ɵɵelementStart(0, "div", 51);
|
|
566
|
+
i0.ɵɵelement(1, "input", 67);
|
|
567
|
+
i0.ɵɵelementEnd();
|
|
568
|
+
} if (rf & 2) {
|
|
569
|
+
const ctx_r74 = i0.ɵɵnextContext(2);
|
|
570
|
+
i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(6, _c6, ctx_r74.question.indent * 10))("ngStyle", ctx_r74.setStyle(ctx_r74.question.indent));
|
|
571
|
+
i0.ɵɵadvance(1);
|
|
572
|
+
i0.ɵɵproperty("id", ctx_r74.question.name)("formControlName", ctx_r74.question.name)("placeholder", ctx_r74.question.placeholder ? ctx_r74.question.placeholder : "");
|
|
573
|
+
i0.ɵɵattribute("aria-label", ctx_r74.question.title);
|
|
593
574
|
} }
|
|
594
|
-
function
|
|
595
|
-
i0.ɵɵ
|
|
596
|
-
i0.ɵɵ
|
|
575
|
+
function DynamicFormQuestionComponent_ng_container_10_div_13_p_inputMask_1_Template(rf, ctx) { if (rf & 1) {
|
|
576
|
+
const _r114 = i0.ɵɵgetCurrentView();
|
|
577
|
+
i0.ɵɵelementStart(0, "p-inputMask", 76);
|
|
578
|
+
i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_13_p_inputMask_1_Template_p_inputMask_onBlur_0_listener($event) { i0.ɵɵrestoreView(_r114); const ctx_r113 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r113.checkForValueChange($event)); });
|
|
597
579
|
i0.ɵɵelementEnd();
|
|
580
|
+
} if (rf & 2) {
|
|
581
|
+
const ctx_r112 = i0.ɵɵnextContext(3);
|
|
582
|
+
i0.ɵɵproperty("inputId", ctx_r112.question.name)("formControlName", ctx_r112.question.name)("placeholder", ctx_r112.question.isRequired ? "999-999-9999" : "Optional");
|
|
583
|
+
i0.ɵɵattribute("aria-label", ctx_r112.question.title);
|
|
598
584
|
} }
|
|
599
|
-
function
|
|
600
|
-
i0.ɵɵelementStart(0, "
|
|
601
|
-
i0.ɵɵ
|
|
585
|
+
function DynamicFormQuestionComponent_ng_container_10_div_13_Template(rf, ctx) { if (rf & 1) {
|
|
586
|
+
i0.ɵɵelementStart(0, "div");
|
|
587
|
+
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_13_p_inputMask_1_Template, 1, 4, "p-inputMask", 75);
|
|
602
588
|
i0.ɵɵelementEnd();
|
|
589
|
+
} if (rf & 2) {
|
|
590
|
+
const ctx_r75 = i0.ɵɵnextContext(2);
|
|
591
|
+
i0.ɵɵadvance(1);
|
|
592
|
+
i0.ɵɵproperty("ngIf", ctx_r75.question.inputType && ctx_r75.question.inputType === "text");
|
|
603
593
|
} }
|
|
604
|
-
function
|
|
594
|
+
function DynamicFormQuestionComponent_ng_container_10_div_14_p_inputMask_1_Template(rf, ctx) { if (rf & 1) {
|
|
595
|
+
const _r117 = i0.ɵɵgetCurrentView();
|
|
596
|
+
i0.ɵɵelementStart(0, "p-inputMask", 78);
|
|
597
|
+
i0.ɵɵlistener("onBlur", function DynamicFormQuestionComponent_ng_container_10_div_14_p_inputMask_1_Template_p_inputMask_onBlur_0_listener($event) { i0.ɵɵrestoreView(_r117); const ctx_r116 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r116.checkForValueChange($event)); });
|
|
598
|
+
i0.ɵɵelementEnd();
|
|
599
|
+
} if (rf & 2) {
|
|
600
|
+
const ctx_r115 = i0.ɵɵnextContext(3);
|
|
601
|
+
i0.ɵɵproperty("inputId", ctx_r115.question.name)("formControlName", ctx_r115.question.name)("placeholder", ctx_r115.question.isRequired ? "999 999-9999" : "Optional");
|
|
602
|
+
i0.ɵɵattribute("aria-label", ctx_r115.question.title);
|
|
603
|
+
} }
|
|
604
|
+
function DynamicFormQuestionComponent_ng_container_10_div_14_Template(rf, ctx) { if (rf & 1) {
|
|
605
|
+
i0.ɵɵelementStart(0, "div");
|
|
606
|
+
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_14_p_inputMask_1_Template, 1, 4, "p-inputMask", 77);
|
|
607
|
+
i0.ɵɵelementEnd();
|
|
608
|
+
} if (rf & 2) {
|
|
609
|
+
const ctx_r76 = i0.ɵɵnextContext(2);
|
|
610
|
+
i0.ɵɵadvance(1);
|
|
611
|
+
i0.ɵɵproperty("ngIf", ctx_r76.question.inputType && ctx_r76.question.inputType === "text");
|
|
612
|
+
} }
|
|
613
|
+
function DynamicFormQuestionComponent_ng_container_10_div_15_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
605
614
|
i0.ɵɵelement(0, "p-divider");
|
|
606
|
-
i0.ɵɵelementStart(1, "p",
|
|
615
|
+
i0.ɵɵelementStart(1, "p", 80);
|
|
607
616
|
i0.ɵɵtext(2, "Password must include at least");
|
|
608
617
|
i0.ɵɵelementEnd();
|
|
609
|
-
i0.ɵɵelementStart(3, "ul",
|
|
610
|
-
i0.ɵɵtext(5, "1
|
|
618
|
+
i0.ɵɵelementStart(3, "ul", 81)(4, "li", 82);
|
|
619
|
+
i0.ɵɵtext(5, "1 uppercase letter");
|
|
611
620
|
i0.ɵɵelementEnd();
|
|
612
|
-
i0.ɵɵelementStart(6, "li",
|
|
613
|
-
i0.ɵɵtext(7, "1
|
|
621
|
+
i0.ɵɵelementStart(6, "li", 82);
|
|
622
|
+
i0.ɵɵtext(7, "1 lowercase letter");
|
|
614
623
|
i0.ɵɵelementEnd();
|
|
615
|
-
i0.ɵɵelementStart(8, "li",
|
|
624
|
+
i0.ɵɵelementStart(8, "li", 82);
|
|
616
625
|
i0.ɵɵtext(9, "1 number");
|
|
617
626
|
i0.ɵɵelementEnd();
|
|
618
|
-
i0.ɵɵ
|
|
627
|
+
i0.ɵɵelementStart(10, "li", 82);
|
|
628
|
+
i0.ɵɵtext(11, "1 of the following characters ");
|
|
629
|
+
i0.ɵɵelementStart(12, "b");
|
|
630
|
+
i0.ɵɵtext(13, "_ @ * $ ! # .");
|
|
631
|
+
i0.ɵɵelementEnd()();
|
|
632
|
+
i0.ɵɵelementStart(14, "li", 82);
|
|
633
|
+
i0.ɵɵtext(15, "8 characters");
|
|
634
|
+
i0.ɵɵelementEnd()();
|
|
635
|
+
i0.ɵɵelement(16, "p-divider");
|
|
636
|
+
i0.ɵɵelementStart(17, "p", 80);
|
|
637
|
+
i0.ɵɵtext(18, "Suggestion");
|
|
619
638
|
i0.ɵɵelementEnd();
|
|
620
|
-
i0.ɵɵ
|
|
621
|
-
i0.ɵɵ
|
|
622
|
-
i0.ɵɵtext(16, "Suggestion");
|
|
639
|
+
i0.ɵɵelementStart(19, "ul", 81)(20, "li", 82);
|
|
640
|
+
i0.ɵɵtext(21, "Don't use your name, email or phone.");
|
|
623
641
|
i0.ɵɵelementEnd();
|
|
624
|
-
i0.ɵɵelementStart(
|
|
625
|
-
i0.ɵɵtext(
|
|
642
|
+
i0.ɵɵelementStart(22, "li", 82);
|
|
643
|
+
i0.ɵɵtext(23, "Don't use your kid, partner or pet name.");
|
|
626
644
|
i0.ɵɵelementEnd();
|
|
627
|
-
i0.ɵɵelementStart(
|
|
628
|
-
i0.ɵɵtext(
|
|
645
|
+
i0.ɵɵelementStart(24, "li", 82);
|
|
646
|
+
i0.ɵɵtext(25, "Your password cannot contain your name and/or your user id.");
|
|
629
647
|
i0.ɵɵelementEnd()();
|
|
630
|
-
} if (rf & 2) {
|
|
631
|
-
const ctx_r107 = i0.ɵɵnextContext(3);
|
|
632
|
-
i0.ɵɵadvance(10);
|
|
633
|
-
i0.ɵɵproperty("ngIf", !ctx_r107.isSameSymbolPolicyForClaimantAndAgency);
|
|
634
|
-
i0.ɵɵadvance(1);
|
|
635
|
-
i0.ɵɵproperty("ngIf", ctx_r107.isSameSymbolPolicyForClaimantAndAgency);
|
|
636
|
-
i0.ɵɵadvance(1);
|
|
637
|
-
i0.ɵɵproperty("ngIf", !ctx_r107.isNewPasswordPolicyEnabledForClaimant);
|
|
638
|
-
i0.ɵɵadvance(1);
|
|
639
|
-
i0.ɵɵproperty("ngIf", ctx_r107.isNewPasswordPolicyEnabledForClaimant);
|
|
640
648
|
} }
|
|
641
|
-
function
|
|
642
|
-
i0.ɵɵelementStart(0, "div")(1, "p-password",
|
|
643
|
-
i0.ɵɵtemplate(2,
|
|
649
|
+
function DynamicFormQuestionComponent_ng_container_10_div_15_Template(rf, ctx) { if (rf & 1) {
|
|
650
|
+
i0.ɵɵelementStart(0, "div")(1, "p-password", 79);
|
|
651
|
+
i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_10_div_15_ng_template_2_Template, 26, 0, "ng-template", 11);
|
|
644
652
|
i0.ɵɵelementEnd()();
|
|
645
653
|
} if (rf & 2) {
|
|
646
|
-
const
|
|
654
|
+
const ctx_r77 = i0.ɵɵnextContext(2);
|
|
647
655
|
i0.ɵɵadvance(1);
|
|
648
|
-
i0.ɵɵproperty("inputId",
|
|
656
|
+
i0.ɵɵproperty("inputId", ctx_r77.question.name)("formControlName", ctx_r77.question.name)("toggleMask", true)("maxLength", ctx_r77.question.maxLength)("ariaLabel", ctx_r77.question.title);
|
|
649
657
|
} }
|
|
650
|
-
function
|
|
658
|
+
function DynamicFormQuestionComponent_ng_container_10_div_16_Template(rf, ctx) { if (rf & 1) {
|
|
651
659
|
i0.ɵɵelementStart(0, "div");
|
|
652
|
-
i0.ɵɵelement(1, "app-file-uploader",
|
|
660
|
+
i0.ɵɵelement(1, "app-file-uploader", 83);
|
|
653
661
|
i0.ɵɵelementEnd();
|
|
654
662
|
} if (rf & 2) {
|
|
655
|
-
const
|
|
663
|
+
const ctx_r78 = i0.ɵɵnextContext(2);
|
|
656
664
|
i0.ɵɵadvance(1);
|
|
657
|
-
i0.ɵɵproperty("allowedFileType",
|
|
658
|
-
i0.ɵɵattribute("aria-label",
|
|
665
|
+
i0.ɵɵproperty("allowedFileType", ctx_r78.question.allowedFileType)("formControlName", ctx_r78.question.name)("maxSizeInMB", ctx_r78.question.sizeInMB)("multiple", ctx_r78.question.multiple)("noOfFilesToUpload", ctx_r78.question.noOFFiles);
|
|
666
|
+
i0.ɵɵattribute("aria-label", ctx_r78.question.title);
|
|
659
667
|
} }
|
|
660
|
-
function
|
|
661
|
-
const
|
|
662
|
-
i0.ɵɵelementStart(0, "div")(1, "div",
|
|
663
|
-
i0.ɵɵlistener("blur", function
|
|
668
|
+
function DynamicFormQuestionComponent_ng_container_10_div_17_Template(rf, ctx) { if (rf & 1) {
|
|
669
|
+
const _r120 = i0.ɵɵgetCurrentView();
|
|
670
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 51)(2, "input", 84);
|
|
671
|
+
i0.ɵɵlistener("blur", function DynamicFormQuestionComponent_ng_container_10_div_17_Template_input_blur_2_listener($event) { i0.ɵɵrestoreView(_r120); const ctx_r119 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r119.checkForValueChange($event)); });
|
|
664
672
|
i0.ɵɵelementEnd()()();
|
|
665
673
|
} if (rf & 2) {
|
|
666
|
-
const
|
|
674
|
+
const ctx_r79 = i0.ɵɵnextContext(2);
|
|
667
675
|
i0.ɵɵadvance(1);
|
|
668
|
-
i0.ɵɵproperty("ngStyle",
|
|
676
|
+
i0.ɵɵproperty("ngStyle", ctx_r79.setStyle(ctx_r79.question.indent));
|
|
669
677
|
i0.ɵɵadvance(1);
|
|
670
|
-
i0.ɵɵproperty("id",
|
|
671
|
-
i0.ɵɵattribute("aria-label",
|
|
678
|
+
i0.ɵɵproperty("id", ctx_r79.question.name)("formControlName", ctx_r79.question.name)("disabled", true)("placeholder", ctx_r79.question.placeholder ? ctx_r79.question.placeholder : "");
|
|
679
|
+
i0.ɵɵattribute("aria-label", ctx_r79.question.title)("aria-label", ctx_r79.question.title);
|
|
672
680
|
} }
|
|
673
|
-
function
|
|
674
|
-
i0.ɵɵ
|
|
681
|
+
function DynamicFormQuestionComponent_ng_container_10_div_19_Template(rf, ctx) { if (rf & 1) {
|
|
682
|
+
const _r122 = i0.ɵɵgetCurrentView();
|
|
683
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 51)(2, "input", 85);
|
|
684
|
+
i0.ɵɵlistener("blur", function DynamicFormQuestionComponent_ng_container_10_div_19_Template_input_blur_2_listener($event) { i0.ɵɵrestoreView(_r122); const ctx_r121 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r121.checkForValueChange($event)); });
|
|
685
|
+
i0.ɵɵelementEnd()()();
|
|
675
686
|
} if (rf & 2) {
|
|
676
|
-
const
|
|
677
|
-
i0.ɵɵ
|
|
678
|
-
i0.ɵɵ
|
|
687
|
+
const ctx_r80 = i0.ɵɵnextContext(2);
|
|
688
|
+
i0.ɵɵadvance(1);
|
|
689
|
+
i0.ɵɵproperty("ngStyle", ctx_r80.setStyle(ctx_r80.question.indent));
|
|
690
|
+
i0.ɵɵadvance(1);
|
|
691
|
+
i0.ɵɵproperty("id", ctx_r80.question.name)("formControlName", ctx_r80.question.name);
|
|
692
|
+
i0.ɵɵattribute("aria-label", ctx_r80.question.title)("aria-label", ctx_r80.question.title);
|
|
679
693
|
} }
|
|
680
|
-
function
|
|
681
|
-
i0.ɵɵelement(0, "input",
|
|
694
|
+
function DynamicFormQuestionComponent_ng_container_10_div_20_input_1_Template(rf, ctx) { if (rf & 1) {
|
|
695
|
+
i0.ɵɵelement(0, "input", 67);
|
|
682
696
|
} if (rf & 2) {
|
|
683
|
-
const
|
|
684
|
-
i0.ɵɵproperty("id",
|
|
685
|
-
i0.ɵɵattribute("aria-label",
|
|
697
|
+
const ctx_r123 = i0.ɵɵnextContext(3);
|
|
698
|
+
i0.ɵɵproperty("id", ctx_r123.question.name)("formControlName", ctx_r123.question.name)("placeholder", ctx_r123.question.placeholder ? ctx_r123.question.placeholder : "");
|
|
699
|
+
i0.ɵɵattribute("aria-label", ctx_r123.question.title);
|
|
686
700
|
} }
|
|
687
|
-
function
|
|
688
|
-
i0.ɵɵ
|
|
689
|
-
|
|
701
|
+
function DynamicFormQuestionComponent_ng_container_10_div_20_input_2_Template(rf, ctx) { if (rf & 1) {
|
|
702
|
+
i0.ɵɵelement(0, "input", 67);
|
|
703
|
+
} if (rf & 2) {
|
|
704
|
+
const ctx_r124 = i0.ɵɵnextContext(3);
|
|
705
|
+
i0.ɵɵproperty("id", ctx_r124.question.name)("formControlName", ctx_r124.question.name)("placeholder", ctx_r124.question.placeholder ? ctx_r124.question.placeholder : "");
|
|
706
|
+
i0.ɵɵattribute("aria-label", ctx_r124.question.title);
|
|
707
|
+
} }
|
|
708
|
+
function DynamicFormQuestionComponent_ng_container_10_div_20_Template(rf, ctx) { if (rf & 1) {
|
|
709
|
+
i0.ɵɵelementStart(0, "div", 51);
|
|
710
|
+
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_10_div_20_input_1_Template, 1, 4, "input", 65)(2, DynamicFormQuestionComponent_ng_container_10_div_20_input_2_Template, 1, 4, "input", 65);
|
|
690
711
|
i0.ɵɵelementEnd();
|
|
691
712
|
} if (rf & 2) {
|
|
692
|
-
const
|
|
693
|
-
i0.ɵɵproperty("ngStyle",
|
|
713
|
+
const ctx_r81 = i0.ɵɵnextContext(2);
|
|
714
|
+
i0.ɵɵproperty("ngStyle", ctx_r81.setStyle(ctx_r81.question.indent));
|
|
694
715
|
i0.ɵɵadvance(1);
|
|
695
|
-
i0.ɵɵproperty("ngIf",
|
|
716
|
+
i0.ɵɵproperty("ngIf", ctx_r81.question.size);
|
|
696
717
|
i0.ɵɵadvance(1);
|
|
697
|
-
i0.ɵɵproperty("ngIf", !
|
|
718
|
+
i0.ɵɵproperty("ngIf", !ctx_r81.question.size);
|
|
698
719
|
} }
|
|
699
|
-
function
|
|
700
|
-
i0.ɵɵelementStart(0, "div",
|
|
701
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
720
|
+
function DynamicFormQuestionComponent_ng_container_10_div_21_Template(rf, ctx) { if (rf & 1) {
|
|
721
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
722
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
702
723
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
703
724
|
i0.ɵɵelementEnd();
|
|
704
725
|
} if (rf & 2) {
|
|
705
|
-
const
|
|
726
|
+
const ctx_r82 = i0.ɵɵnextContext(2);
|
|
706
727
|
i0.ɵɵadvance(1);
|
|
707
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
728
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r82.question.description, ctx_r82.dynamicParam));
|
|
708
729
|
} }
|
|
709
730
|
function DynamicFormQuestionComponent_ng_container_10_Template(rf, ctx) { if (rf & 1) {
|
|
710
731
|
i0.ɵɵelementContainerStart(0);
|
|
711
|
-
i0.ɵɵelementStart(1, "div",
|
|
712
|
-
i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_10_div_2_Template,
|
|
732
|
+
i0.ɵɵelementStart(1, "div", 49);
|
|
733
|
+
i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_10_div_2_Template, 4, 10, "div", 3)(3, DynamicFormQuestionComponent_ng_container_10_div_3_Template, 4, 10, "div", 3)(4, DynamicFormQuestionComponent_ng_container_10_div_4_Template, 2, 6, "div", 8)(5, DynamicFormQuestionComponent_ng_container_10_div_5_Template, 2, 4, "div", 8)(6, DynamicFormQuestionComponent_ng_container_10_div_6_Template, 2, 5, "div", 8)(7, DynamicFormQuestionComponent_ng_container_10_div_7_Template, 5, 5, "div", 8)(8, DynamicFormQuestionComponent_ng_container_10_div_8_Template, 5, 5, "div", 8)(9, DynamicFormQuestionComponent_ng_container_10_div_9_Template, 5, 5, "div", 8)(10, DynamicFormQuestionComponent_ng_container_10_div_10_Template, 3, 6, "div", 3)(11, DynamicFormQuestionComponent_ng_container_10_div_11_Template, 3, 6, "div", 3)(12, DynamicFormQuestionComponent_ng_container_10_div_12_Template, 2, 8, "div", 8)(13, DynamicFormQuestionComponent_ng_container_10_div_13_Template, 2, 1, "div", 3)(14, DynamicFormQuestionComponent_ng_container_10_div_14_Template, 2, 1, "div", 3)(15, DynamicFormQuestionComponent_ng_container_10_div_15_Template, 3, 5, "div", 3)(16, DynamicFormQuestionComponent_ng_container_10_div_16_Template, 2, 6, "div", 3)(17, DynamicFormQuestionComponent_ng_container_10_div_17_Template, 3, 7, "div", 3);
|
|
734
|
+
i0.ɵɵelementStart(18, "div");
|
|
735
|
+
i0.ɵɵtemplate(19, DynamicFormQuestionComponent_ng_container_10_div_19_Template, 3, 5, "div", 3);
|
|
736
|
+
i0.ɵɵelementEnd();
|
|
737
|
+
i0.ɵɵtemplate(20, DynamicFormQuestionComponent_ng_container_10_div_20_Template, 3, 3, "div", 8)(21, DynamicFormQuestionComponent_ng_container_10_div_21_Template, 3, 4, "div", 50);
|
|
713
738
|
i0.ɵɵelementEnd();
|
|
714
739
|
i0.ɵɵelementContainerEnd();
|
|
715
740
|
} if (rf & 2) {
|
|
716
741
|
const ctx_r8 = i0.ɵɵnextContext();
|
|
717
742
|
i0.ɵɵadvance(2);
|
|
718
|
-
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "date");
|
|
743
|
+
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "date" && ctx_r8.question.name && ctx_r8.question.name != "dob");
|
|
744
|
+
i0.ɵɵadvance(1);
|
|
745
|
+
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "date" && ctx_r8.question.name && ctx_r8.question.name === "dob");
|
|
719
746
|
i0.ɵɵadvance(1);
|
|
720
747
|
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag === "ssn");
|
|
721
748
|
i0.ɵɵadvance(1);
|
|
@@ -725,69 +752,79 @@ function DynamicFormQuestionComponent_ng_container_10_Template(rf, ctx) { if (rf
|
|
|
725
752
|
i0.ɵɵadvance(1);
|
|
726
753
|
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && (!ctx_r8.question.customTag || ctx_r8.question.customTag === "Optional") && !ctx_r8.question.isRequired);
|
|
727
754
|
i0.ɵɵadvance(1);
|
|
728
|
-
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && !ctx_r8.question.customTag && ctx_r8.question.isRequired);
|
|
755
|
+
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && !ctx_r8.question.customTag && ctx_r8.question.isRequired && !ctx_r8.checkFlowKey());
|
|
756
|
+
i0.ɵɵadvance(1);
|
|
757
|
+
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && !ctx_r8.question.customTag && ctx_r8.question.isRequired && ctx_r8.checkFlowKey());
|
|
758
|
+
i0.ɵɵadvance(1);
|
|
759
|
+
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag.includes("firstName") && ctx_r8.checkFlowKey());
|
|
760
|
+
i0.ɵɵadvance(1);
|
|
761
|
+
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && ctx_r8.question.customTag.includes("lastName") && ctx_r8.checkFlowKey());
|
|
729
762
|
i0.ɵɵadvance(1);
|
|
730
763
|
i0.ɵɵproperty("ngIf", !ctx_r8.question.inputType && ctx_r8.question.customTag && !ctx_r8.question.customTag.includes("phone"));
|
|
731
764
|
i0.ɵɵadvance(1);
|
|
732
|
-
i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("phone"));
|
|
765
|
+
i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("phone") && !ctx_r8.checkFlowKey());
|
|
766
|
+
i0.ɵɵadvance(1);
|
|
767
|
+
i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("phone") && ctx_r8.checkFlowKey());
|
|
733
768
|
i0.ɵɵadvance(1);
|
|
734
769
|
i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("password"));
|
|
735
770
|
i0.ɵɵadvance(1);
|
|
736
771
|
i0.ɵɵproperty("ngIf", ctx_r8.question.customTag && ctx_r8.question.customTag.includes("fileupload"));
|
|
737
772
|
i0.ɵɵadvance(1);
|
|
738
|
-
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && (ctx_r8.question.customTag != "ssn" && ctx_r8.question.customTag != "Optional" && ctx_r8.question.customTag != "fileupload" && ctx_r8.question.customTag != "phone" && ctx_r8.question.customTag != "ean" && ctx_r8.question.customTag != "dueamt" && ctx_r8.question.customTag != "password"));
|
|
773
|
+
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && (ctx_r8.question.customTag != "ssn" && ctx_r8.question.customTag != "Optional" && ctx_r8.question.customTag != "fileupload" && ctx_r8.question.customTag != "phone" && ctx_r8.question.customTag != "firstName" && ctx_r8.question.customTag != "lastName" && ctx_r8.question.customTag != "ean" && ctx_r8.question.customTag != "dueamt" && ctx_r8.question.customTag != "password") && ctx_r8.checkFlowKey());
|
|
774
|
+
i0.ɵɵadvance(2);
|
|
775
|
+
i0.ɵɵproperty("ngIf", ctx_r8.question.inputType && ctx_r8.question.inputType === "text" && ctx_r8.question.customTag && (ctx_r8.question.customTag != "ssn" && ctx_r8.question.customTag != "Optional" && ctx_r8.question.customTag != "fileupload" && ctx_r8.question.customTag != "phone" && ctx_r8.question.customTag != "ean" && ctx_r8.question.customTag != "dueamt" && ctx_r8.question.customTag != "password") && !ctx_r8.checkFlowKey());
|
|
739
776
|
i0.ɵɵadvance(1);
|
|
740
777
|
i0.ɵɵproperty("ngIf", !ctx_r8.question.inputType && !ctx_r8.question.customTag);
|
|
741
778
|
i0.ɵɵadvance(1);
|
|
742
779
|
i0.ɵɵproperty("ngIf", ctx_r8.question.description);
|
|
743
780
|
} }
|
|
744
781
|
function DynamicFormQuestionComponent_ng_container_11_div_1_small_3_Template(rf, ctx) { if (rf & 1) {
|
|
745
|
-
i0.ɵɵelementStart(0, "small",
|
|
782
|
+
i0.ɵɵelementStart(0, "small", 89);
|
|
746
783
|
i0.ɵɵtext(1);
|
|
747
784
|
i0.ɵɵelementEnd();
|
|
748
785
|
} if (rf & 2) {
|
|
749
|
-
const
|
|
786
|
+
const ctx_r127 = i0.ɵɵnextContext(3);
|
|
750
787
|
i0.ɵɵadvance(1);
|
|
751
|
-
i0.ɵɵtextInterpolate(
|
|
788
|
+
i0.ɵɵtextInterpolate(ctx_r127.question.description);
|
|
752
789
|
} }
|
|
753
790
|
function DynamicFormQuestionComponent_ng_container_11_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
754
|
-
i0.ɵɵelementStart(0, "div",
|
|
755
|
-
i0.ɵɵelement(1, "textarea",
|
|
791
|
+
i0.ɵɵelementStart(0, "div", 51);
|
|
792
|
+
i0.ɵɵelement(1, "textarea", 87);
|
|
756
793
|
i0.ɵɵelementStart(2, "div");
|
|
757
|
-
i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_11_div_1_small_3_Template, 2, 1, "small",
|
|
794
|
+
i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_11_div_1_small_3_Template, 2, 1, "small", 88);
|
|
758
795
|
i0.ɵɵelementEnd()();
|
|
759
796
|
} if (rf & 2) {
|
|
760
|
-
const
|
|
761
|
-
i0.ɵɵproperty("ngStyle",
|
|
797
|
+
const ctx_r125 = i0.ɵɵnextContext(2);
|
|
798
|
+
i0.ɵɵproperty("ngStyle", ctx_r125.setStyle(ctx_r125.question.indent));
|
|
762
799
|
i0.ɵɵadvance(1);
|
|
763
|
-
i0.ɵɵproperty("id",
|
|
764
|
-
i0.ɵɵattribute("aria-label",
|
|
800
|
+
i0.ɵɵproperty("id", ctx_r125.question.name)("formControlName", ctx_r125.question.name)("maxLength", ctx_r125.question.maxLength)("rows", 3)("cols", 35)("placeholder", ctx_r125.question.placeholder ? ctx_r125.question.placeholder : "");
|
|
801
|
+
i0.ɵɵattribute("aria-label", ctx_r125.question.title);
|
|
765
802
|
i0.ɵɵadvance(2);
|
|
766
|
-
i0.ɵɵproperty("ngIf",
|
|
803
|
+
i0.ɵɵproperty("ngIf", ctx_r125.question.description);
|
|
767
804
|
} }
|
|
768
805
|
function DynamicFormQuestionComponent_ng_container_11_div_2_small_3_Template(rf, ctx) { if (rf & 1) {
|
|
769
|
-
i0.ɵɵelementStart(0, "small",
|
|
806
|
+
i0.ɵɵelementStart(0, "small", 89);
|
|
770
807
|
i0.ɵɵtext(1);
|
|
771
808
|
i0.ɵɵelementEnd();
|
|
772
809
|
} if (rf & 2) {
|
|
773
|
-
const
|
|
810
|
+
const ctx_r128 = i0.ɵɵnextContext(3);
|
|
774
811
|
i0.ɵɵadvance(1);
|
|
775
|
-
i0.ɵɵtextInterpolate(
|
|
812
|
+
i0.ɵɵtextInterpolate(ctx_r128.question.description);
|
|
776
813
|
} }
|
|
777
814
|
function DynamicFormQuestionComponent_ng_container_11_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
778
|
-
i0.ɵɵelementStart(0, "div",
|
|
779
|
-
i0.ɵɵelement(1, "textarea",
|
|
815
|
+
i0.ɵɵelementStart(0, "div", 51);
|
|
816
|
+
i0.ɵɵelement(1, "textarea", 90);
|
|
780
817
|
i0.ɵɵelementStart(2, "div");
|
|
781
|
-
i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_11_div_2_small_3_Template, 2, 1, "small",
|
|
818
|
+
i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_11_div_2_small_3_Template, 2, 1, "small", 88);
|
|
782
819
|
i0.ɵɵelementEnd()();
|
|
783
820
|
} if (rf & 2) {
|
|
784
|
-
const
|
|
785
|
-
i0.ɵɵproperty("ngStyle",
|
|
821
|
+
const ctx_r126 = i0.ɵɵnextContext(2);
|
|
822
|
+
i0.ɵɵproperty("ngStyle", ctx_r126.setStyle(ctx_r126.question.indent));
|
|
786
823
|
i0.ɵɵadvance(1);
|
|
787
|
-
i0.ɵɵproperty("id",
|
|
788
|
-
i0.ɵɵattribute("aria-label",
|
|
824
|
+
i0.ɵɵproperty("id", ctx_r126.question.name)("formControlName", ctx_r126.question.name)("rows", 3)("cols", 35)("placeholder", ctx_r126.question.placeholder ? ctx_r126.question.placeholder : "");
|
|
825
|
+
i0.ɵɵattribute("aria-label", ctx_r126.question.title);
|
|
789
826
|
i0.ɵɵadvance(2);
|
|
790
|
-
i0.ɵɵproperty("ngIf",
|
|
827
|
+
i0.ɵɵproperty("ngIf", ctx_r126.question.description);
|
|
791
828
|
} }
|
|
792
829
|
function DynamicFormQuestionComponent_ng_container_11_Template(rf, ctx) { if (rf & 1) {
|
|
793
830
|
i0.ɵɵelementContainerStart(0);
|
|
@@ -805,39 +842,39 @@ function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_ng_templa
|
|
|
805
842
|
i0.ɵɵtext(2);
|
|
806
843
|
i0.ɵɵelementEnd()();
|
|
807
844
|
} if (rf & 2) {
|
|
808
|
-
const
|
|
845
|
+
const value_r132 = ctx.$implicit;
|
|
809
846
|
i0.ɵɵadvance(2);
|
|
810
|
-
i0.ɵɵtextInterpolate(
|
|
847
|
+
i0.ɵɵtextInterpolate(value_r132.text);
|
|
811
848
|
} }
|
|
812
849
|
function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template(rf, ctx) { if (rf & 1) {
|
|
813
|
-
const
|
|
814
|
-
i0.ɵɵelementStart(0, "p-autoComplete",
|
|
815
|
-
i0.ɵɵlistener("completeMethod", function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template_p_autoComplete_completeMethod_0_listener($event) { i0.ɵɵrestoreView(
|
|
816
|
-
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_ng_template_1_Template, 3, 1, "ng-template",
|
|
850
|
+
const _r134 = i0.ɵɵgetCurrentView();
|
|
851
|
+
i0.ɵɵelementStart(0, "p-autoComplete", 93);
|
|
852
|
+
i0.ɵɵlistener("completeMethod", function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template_p_autoComplete_completeMethod_0_listener($event) { i0.ɵɵrestoreView(_r134); const ctx_r133 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r133.filterValue($event, ctx_r133.question)); })("onSelect", function DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template_p_autoComplete_onSelect_0_listener($event) { i0.ɵɵrestoreView(_r134); const ctx_r135 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r135.onSelect($event, ctx_r135.question.name)); });
|
|
853
|
+
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_ng_template_1_Template, 3, 1, "ng-template", 94);
|
|
817
854
|
i0.ɵɵelementEnd();
|
|
818
855
|
} if (rf & 2) {
|
|
819
|
-
const
|
|
820
|
-
i0.ɵɵproperty("formControlName",
|
|
856
|
+
const ctx_r129 = i0.ɵɵnextContext(2);
|
|
857
|
+
i0.ɵɵproperty("formControlName", ctx_r129.question.name)("suggestions", ctx_r129.filterResult)("dropdown", true)("forceSelection", true)("completeOnFocus", true);
|
|
821
858
|
} }
|
|
822
859
|
function DynamicFormQuestionComponent_ng_container_12_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
823
|
-
i0.ɵɵelementStart(0, "div",
|
|
824
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
860
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
861
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
825
862
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
826
863
|
i0.ɵɵelementEnd();
|
|
827
864
|
} if (rf & 2) {
|
|
828
|
-
const
|
|
865
|
+
const ctx_r130 = i0.ɵɵnextContext(2);
|
|
829
866
|
i0.ɵɵadvance(1);
|
|
830
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
867
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r130.question.description, ctx_r130.dynamicParam));
|
|
831
868
|
} }
|
|
832
869
|
function DynamicFormQuestionComponent_ng_container_12_Template(rf, ctx) { if (rf & 1) {
|
|
833
|
-
const
|
|
870
|
+
const _r137 = i0.ɵɵgetCurrentView();
|
|
834
871
|
i0.ɵɵelementContainerStart(0);
|
|
835
|
-
i0.ɵɵelementStart(1, "div",
|
|
836
|
-
i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template, 2, 5, "p-autoComplete",
|
|
837
|
-
i0.ɵɵelementStart(4, "app-dropdown",
|
|
838
|
-
i0.ɵɵlistener("onChange", function DynamicFormQuestionComponent_ng_container_12_Template_app_dropdown_onChange_4_listener($event) { i0.ɵɵrestoreView(
|
|
872
|
+
i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
|
|
873
|
+
i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_12_p_autoComplete_3_Template, 2, 5, "p-autoComplete", 91);
|
|
874
|
+
i0.ɵɵelementStart(4, "app-dropdown", 92);
|
|
875
|
+
i0.ɵɵlistener("onChange", function DynamicFormQuestionComponent_ng_container_12_Template_app_dropdown_onChange_4_listener($event) { i0.ɵɵrestoreView(_r137); const ctx_r136 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r136.onSelect($event, ctx_r136.question.name)); })("onClick", function DynamicFormQuestionComponent_ng_container_12_Template_app_dropdown_onClick_4_listener($event) { i0.ɵɵrestoreView(_r137); const ctx_r138 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r138.filterValue($event, ctx_r138.question)); });
|
|
839
876
|
i0.ɵɵelementEnd()();
|
|
840
|
-
i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_12_div_5_Template, 3, 4, "div",
|
|
877
|
+
i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_12_div_5_Template, 3, 4, "div", 50);
|
|
841
878
|
i0.ɵɵelementEnd();
|
|
842
879
|
i0.ɵɵelementContainerEnd();
|
|
843
880
|
} if (rf & 2) {
|
|
@@ -847,54 +884,102 @@ function DynamicFormQuestionComponent_ng_container_12_Template(rf, ctx) { if (rf
|
|
|
847
884
|
i0.ɵɵadvance(1);
|
|
848
885
|
i0.ɵɵproperty("ngIf", false);
|
|
849
886
|
i0.ɵɵadvance(1);
|
|
850
|
-
i0.ɵɵproperty("options", ctx_r10.filterResult)("formControlName", ctx_r10.question.name)("autoDisplayFirst", false)("inputId", ctx_r10.question.name)("ariaLabel", ctx_r10.question.title)
|
|
887
|
+
i0.ɵɵproperty("options", ctx_r10.filterResult)("formControlName", ctx_r10.question.name)("autoDisplayFirst", false)("inputId", ctx_r10.question.name)("ariaLabel", ctx_r10.question.title);
|
|
851
888
|
i0.ɵɵadvance(1);
|
|
852
889
|
i0.ɵɵproperty("ngIf", ctx_r10.question.description);
|
|
853
890
|
} }
|
|
854
|
-
function
|
|
855
|
-
i0.ɵɵelementStart(0, "div"
|
|
856
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
891
|
+
function DynamicFormQuestionComponent_ng_container_13_div_2_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
892
|
+
i0.ɵɵelementStart(0, "div");
|
|
893
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
857
894
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
858
895
|
i0.ɵɵelementEnd();
|
|
859
896
|
} if (rf & 2) {
|
|
860
|
-
const
|
|
897
|
+
const ctx_r141 = i0.ɵɵnextContext(3);
|
|
861
898
|
i0.ɵɵadvance(1);
|
|
862
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
899
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r141.question.description, ctx_r141.dynamicParam));
|
|
900
|
+
} }
|
|
901
|
+
function DynamicFormQuestionComponent_ng_container_13_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
902
|
+
const _r143 = i0.ɵɵgetCurrentView();
|
|
903
|
+
i0.ɵɵelementStart(0, "div", 97)(1, "div", 51)(2, "p-selectButton", 98);
|
|
904
|
+
i0.ɵɵlistener("onOptionClick", function DynamicFormQuestionComponent_ng_container_13_div_2_Template_p_selectButton_onOptionClick_2_listener($event) { i0.ɵɵrestoreView(_r143); const ctx_r142 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r142.onRadioOptionClick($event, ctx_r142.question)); });
|
|
905
|
+
i0.ɵɵelementEnd()();
|
|
906
|
+
i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_13_div_2_div_3_Template, 3, 4, "div", 3);
|
|
907
|
+
i0.ɵɵelementEnd();
|
|
908
|
+
} if (rf & 2) {
|
|
909
|
+
const ctx_r139 = i0.ɵɵnextContext(2);
|
|
910
|
+
i0.ɵɵadvance(1);
|
|
911
|
+
i0.ɵɵproperty("ngStyle", ctx_r139.setStyle(ctx_r139.question.indent));
|
|
912
|
+
i0.ɵɵadvance(1);
|
|
913
|
+
i0.ɵɵproperty("options", ctx_r139.question.choices)("formControlName", ctx_r139.question.name);
|
|
914
|
+
i0.ɵɵadvance(1);
|
|
915
|
+
i0.ɵɵproperty("ngIf", ctx_r139.question.description);
|
|
916
|
+
} }
|
|
917
|
+
function DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template(rf, ctx) { if (rf & 1) {
|
|
918
|
+
const _r147 = i0.ɵɵgetCurrentView();
|
|
919
|
+
i0.ɵɵelementStart(0, "app-mfa2", 101);
|
|
920
|
+
i0.ɵɵlistener("formChange", function DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template_app_mfa2_formChange_0_listener($event) { i0.ɵɵrestoreView(_r147); const ctx_r146 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r146.form = $event); })("success", function DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template_app_mfa2_success_0_listener() { i0.ɵɵrestoreView(_r147); const ctx_r148 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r148.enableFields()); });
|
|
921
|
+
i0.ɵɵelementEnd();
|
|
922
|
+
} if (rf & 2) {
|
|
923
|
+
const ctx_r144 = i0.ɵɵnextContext(3);
|
|
924
|
+
i0.ɵɵproperty("display", ctx_r144.isOtpModalEnabled)("returningUser", ctx_r144.isReturningUser)("form", ctx_r144.form);
|
|
925
|
+
} }
|
|
926
|
+
function DynamicFormQuestionComponent_ng_container_13_div_3_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
927
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
928
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
929
|
+
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
930
|
+
i0.ɵɵelementEnd();
|
|
931
|
+
} if (rf & 2) {
|
|
932
|
+
const ctx_r145 = i0.ɵɵnextContext(3);
|
|
933
|
+
i0.ɵɵadvance(1);
|
|
934
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r145.question.description, ctx_r145.dynamicParam));
|
|
935
|
+
} }
|
|
936
|
+
function DynamicFormQuestionComponent_ng_container_13_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
937
|
+
const _r150 = i0.ɵɵgetCurrentView();
|
|
938
|
+
i0.ɵɵelementStart(0, "div")(1, "div", 51)(2, "p-selectButton", 99);
|
|
939
|
+
i0.ɵɵlistener("onOptionClick", function DynamicFormQuestionComponent_ng_container_13_div_3_Template_p_selectButton_onOptionClick_2_listener($event) { i0.ɵɵrestoreView(_r150); const ctx_r149 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r149.generateOtpForNewUserCreation($event, ctx_r149.form)); });
|
|
940
|
+
i0.ɵɵelementEnd()();
|
|
941
|
+
i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_13_div_3_app_mfa2_3_Template, 1, 3, "app-mfa2", 100)(4, DynamicFormQuestionComponent_ng_container_13_div_3_div_4_Template, 3, 4, "div", 50);
|
|
942
|
+
i0.ɵɵelementEnd();
|
|
943
|
+
} if (rf & 2) {
|
|
944
|
+
const ctx_r140 = i0.ɵɵnextContext(2);
|
|
945
|
+
i0.ɵɵadvance(1);
|
|
946
|
+
i0.ɵɵproperty("ngStyle", ctx_r140.setStyle(ctx_r140.question.indent));
|
|
947
|
+
i0.ɵɵadvance(1);
|
|
948
|
+
i0.ɵɵproperty("options", ctx_r140.question.choices)("formControlName", ctx_r140.question.name);
|
|
949
|
+
i0.ɵɵadvance(1);
|
|
950
|
+
i0.ɵɵproperty("ngIf", ctx_r140.isOtpModalEnabled);
|
|
951
|
+
i0.ɵɵadvance(1);
|
|
952
|
+
i0.ɵɵproperty("ngIf", ctx_r140.question.description);
|
|
863
953
|
} }
|
|
864
954
|
function DynamicFormQuestionComponent_ng_container_13_Template(rf, ctx) { if (rf & 1) {
|
|
865
|
-
const _r132 = i0.ɵɵgetCurrentView();
|
|
866
955
|
i0.ɵɵelementContainerStart(0);
|
|
867
|
-
i0.ɵɵelementStart(1, "div",
|
|
868
|
-
i0.ɵɵ
|
|
869
|
-
i0.ɵɵelementEnd()();
|
|
870
|
-
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_13_div_4_Template, 3, 4, "div", 56);
|
|
956
|
+
i0.ɵɵelementStart(1, "div", 95);
|
|
957
|
+
i0.ɵɵtemplate(2, DynamicFormQuestionComponent_ng_container_13_div_2_Template, 4, 4, "div", 96)(3, DynamicFormQuestionComponent_ng_container_13_div_3_Template, 5, 5, "div", 3);
|
|
871
958
|
i0.ɵɵelementEnd();
|
|
872
959
|
i0.ɵɵelementContainerEnd();
|
|
873
960
|
} if (rf & 2) {
|
|
874
961
|
const ctx_r11 = i0.ɵɵnextContext();
|
|
875
962
|
i0.ɵɵadvance(2);
|
|
876
|
-
i0.ɵɵproperty("
|
|
877
|
-
i0.ɵɵadvance(1);
|
|
878
|
-
i0.ɵɵproperty("options", ctx_r11.question.choices)("formControlName", ctx_r11.question.name);
|
|
963
|
+
i0.ɵɵproperty("ngIf", ctx_r11.question.name && ctx_r11.question.name != "verification");
|
|
879
964
|
i0.ɵɵadvance(1);
|
|
880
|
-
i0.ɵɵproperty("ngIf", ctx_r11.question.
|
|
965
|
+
i0.ɵɵproperty("ngIf", ctx_r11.question.name && ctx_r11.question.name === "verification");
|
|
881
966
|
} }
|
|
882
967
|
function DynamicFormQuestionComponent_ng_container_14_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
883
|
-
i0.ɵɵelementStart(0, "div",
|
|
884
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
968
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
969
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
885
970
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
886
971
|
i0.ɵɵelementEnd();
|
|
887
972
|
} if (rf & 2) {
|
|
888
|
-
const
|
|
973
|
+
const ctx_r151 = i0.ɵɵnextContext(2);
|
|
889
974
|
i0.ɵɵadvance(1);
|
|
890
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
975
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r151.question.description, ctx_r151.dynamicParam));
|
|
891
976
|
} }
|
|
892
977
|
function DynamicFormQuestionComponent_ng_container_14_Template(rf, ctx) { if (rf & 1) {
|
|
893
978
|
i0.ɵɵelementContainerStart(0);
|
|
894
|
-
i0.ɵɵelementStart(1, "div",
|
|
895
|
-
i0.ɵɵelement(3, "p-inputNumber",
|
|
979
|
+
i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
|
|
980
|
+
i0.ɵɵelement(3, "p-inputNumber", 102);
|
|
896
981
|
i0.ɵɵelementEnd();
|
|
897
|
-
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_14_div_4_Template, 3, 4, "div",
|
|
982
|
+
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_14_div_4_Template, 3, 4, "div", 50);
|
|
898
983
|
i0.ɵɵelementEnd();
|
|
899
984
|
i0.ɵɵelementContainerEnd();
|
|
900
985
|
} if (rf & 2) {
|
|
@@ -903,26 +988,26 @@ function DynamicFormQuestionComponent_ng_container_14_Template(rf, ctx) { if (rf
|
|
|
903
988
|
i0.ɵɵproperty("ngStyle", ctx_r12.setStyle(ctx_r12.question.indent));
|
|
904
989
|
i0.ɵɵadvance(1);
|
|
905
990
|
i0.ɵɵpropertyInterpolate("formControlName", ctx_r12.question.name);
|
|
906
|
-
i0.ɵɵproperty("inputId", ctx_r12.question.name)("useGrouping", false)("min", ctx_r12.minValue)("max", ctx_r12.maxValue)("size", ctx_r12.question.size ? ctx_r12.question.size : null)("maxlength", ctx_r12.question.maxLength ? ctx_r12.question.maxLength : null)("ariaLabel", ctx_r12.question.title)("placeholder", ctx_r12.question.placeholder ? ctx_r12.question.placeholder : "")
|
|
991
|
+
i0.ɵɵproperty("inputId", ctx_r12.question.name)("useGrouping", false)("min", ctx_r12.minValue)("max", ctx_r12.maxValue)("size", ctx_r12.question.size ? ctx_r12.question.size : null)("maxlength", ctx_r12.question.maxLength ? ctx_r12.question.maxLength : null)("ariaLabel", ctx_r12.question.title)("placeholder", ctx_r12.question.placeholder ? ctx_r12.question.placeholder : "");
|
|
907
992
|
i0.ɵɵadvance(1);
|
|
908
993
|
i0.ɵɵproperty("ngIf", ctx_r12.question.description);
|
|
909
994
|
} }
|
|
910
995
|
function DynamicFormQuestionComponent_ng_container_15_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
911
|
-
i0.ɵɵelementStart(0, "div",
|
|
912
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
996
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
997
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
913
998
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
914
999
|
i0.ɵɵelementEnd();
|
|
915
1000
|
} if (rf & 2) {
|
|
916
|
-
const
|
|
1001
|
+
const ctx_r152 = i0.ɵɵnextContext(2);
|
|
917
1002
|
i0.ɵɵadvance(1);
|
|
918
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
1003
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r152.question.description, ctx_r152.dynamicParam));
|
|
919
1004
|
} }
|
|
920
1005
|
function DynamicFormQuestionComponent_ng_container_15_Template(rf, ctx) { if (rf & 1) {
|
|
921
1006
|
i0.ɵɵelementContainerStart(0);
|
|
922
|
-
i0.ɵɵelementStart(1, "div",
|
|
923
|
-
i0.ɵɵelement(3, "p-inputNumber",
|
|
1007
|
+
i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
|
|
1008
|
+
i0.ɵɵelement(3, "p-inputNumber", 103);
|
|
924
1009
|
i0.ɵɵelementEnd();
|
|
925
|
-
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_15_div_4_Template, 3, 4, "div",
|
|
1010
|
+
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_15_div_4_Template, 3, 4, "div", 50);
|
|
926
1011
|
i0.ɵɵelementEnd();
|
|
927
1012
|
i0.ɵɵelementContainerEnd();
|
|
928
1013
|
} if (rf & 2) {
|
|
@@ -931,26 +1016,26 @@ function DynamicFormQuestionComponent_ng_container_15_Template(rf, ctx) { if (rf
|
|
|
931
1016
|
i0.ɵɵproperty("ngStyle", ctx_r13.setStyle(ctx_r13.question.indent));
|
|
932
1017
|
i0.ɵɵadvance(1);
|
|
933
1018
|
i0.ɵɵpropertyInterpolate("formControlName", ctx_r13.question.name);
|
|
934
|
-
i0.ɵɵproperty("inputId", ctx_r13.question.name)("useGrouping", false)("minFractionDigits", 2)("maxFractionDigits", 2)("min", ctx_r13.minValue)("max", ctx_r13.maxValue)("size", ctx_r13.question.size ? ctx_r13.question.size : null)("maxlength", ctx_r13.question.maxLength ? ctx_r13.question.maxLength : null)("ariaLabel", ctx_r13.question.title)("placeholder", ctx_r13.question.placeholder ? ctx_r13.question.placeholder : "")
|
|
1019
|
+
i0.ɵɵproperty("inputId", ctx_r13.question.name)("useGrouping", false)("minFractionDigits", 2)("maxFractionDigits", 2)("min", ctx_r13.minValue)("max", ctx_r13.maxValue)("size", ctx_r13.question.size ? ctx_r13.question.size : null)("maxlength", ctx_r13.question.maxLength ? ctx_r13.question.maxLength : null)("ariaLabel", ctx_r13.question.title)("placeholder", ctx_r13.question.placeholder ? ctx_r13.question.placeholder : "");
|
|
935
1020
|
i0.ɵɵadvance(1);
|
|
936
1021
|
i0.ɵɵproperty("ngIf", ctx_r13.question.description);
|
|
937
1022
|
} }
|
|
938
1023
|
function DynamicFormQuestionComponent_ng_container_16_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
939
|
-
i0.ɵɵelementStart(0, "div",
|
|
940
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
1024
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
1025
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
941
1026
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
942
1027
|
i0.ɵɵelementEnd();
|
|
943
1028
|
} if (rf & 2) {
|
|
944
|
-
const
|
|
1029
|
+
const ctx_r153 = i0.ɵɵnextContext(2);
|
|
945
1030
|
i0.ɵɵadvance(1);
|
|
946
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
1031
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r153.question.description, ctx_r153.dynamicParam));
|
|
947
1032
|
} }
|
|
948
1033
|
function DynamicFormQuestionComponent_ng_container_16_Template(rf, ctx) { if (rf & 1) {
|
|
949
1034
|
i0.ɵɵelementContainerStart(0);
|
|
950
|
-
i0.ɵɵelementStart(1, "div",
|
|
951
|
-
i0.ɵɵelement(3, "p-inputNumber",
|
|
1035
|
+
i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
|
|
1036
|
+
i0.ɵɵelement(3, "p-inputNumber", 104);
|
|
952
1037
|
i0.ɵɵelementEnd();
|
|
953
|
-
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_16_div_4_Template, 3, 4, "div",
|
|
1038
|
+
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_16_div_4_Template, 3, 4, "div", 50);
|
|
954
1039
|
i0.ɵɵelementEnd();
|
|
955
1040
|
i0.ɵɵelementContainerEnd();
|
|
956
1041
|
} if (rf & 2) {
|
|
@@ -959,34 +1044,34 @@ function DynamicFormQuestionComponent_ng_container_16_Template(rf, ctx) { if (rf
|
|
|
959
1044
|
i0.ɵɵproperty("ngStyle", ctx_r14.setStyle(ctx_r14.question.indent));
|
|
960
1045
|
i0.ɵɵadvance(1);
|
|
961
1046
|
i0.ɵɵpropertyInterpolate("formControlName", ctx_r14.question.name);
|
|
962
|
-
i0.ɵɵproperty("inputId", ctx_r14.question.name)("useGrouping", false)("minFractionDigits", 2)("maxFractionDigits", 2)("min", ctx_r14.minValue)("max", ctx_r14.maxValue)("size", ctx_r14.question.size ? ctx_r14.question.size : null)("maxlength", ctx_r14.question.maxLength ? ctx_r14.question.maxLength : null)("ariaLabel", ctx_r14.question.title)("placeholder", ctx_r14.question.placeholder ? ctx_r14.question.placeholder : "")
|
|
1047
|
+
i0.ɵɵproperty("inputId", ctx_r14.question.name)("useGrouping", false)("minFractionDigits", 2)("maxFractionDigits", 2)("min", ctx_r14.minValue)("max", ctx_r14.maxValue)("size", ctx_r14.question.size ? ctx_r14.question.size : null)("maxlength", ctx_r14.question.maxLength ? ctx_r14.question.maxLength : null)("ariaLabel", ctx_r14.question.title)("placeholder", ctx_r14.question.placeholder ? ctx_r14.question.placeholder : "");
|
|
963
1048
|
i0.ɵɵadvance(1);
|
|
964
1049
|
i0.ɵɵproperty("ngIf", ctx_r14.question.description);
|
|
965
1050
|
} }
|
|
966
1051
|
function DynamicFormQuestionComponent_ng_container_17_p_checkbox_3_Template(rf, ctx) { if (rf & 1) {
|
|
967
|
-
i0.ɵɵelement(0, "p-checkbox",
|
|
1052
|
+
i0.ɵɵelement(0, "p-checkbox", 107);
|
|
968
1053
|
} if (rf & 2) {
|
|
969
|
-
const
|
|
970
|
-
const
|
|
971
|
-
i0.ɵɵproperty("name",
|
|
972
|
-
i0.ɵɵattribute("aria-label",
|
|
1054
|
+
const choice_r156 = ctx.$implicit;
|
|
1055
|
+
const ctx_r154 = i0.ɵɵnextContext(2);
|
|
1056
|
+
i0.ɵɵproperty("name", ctx_r154.question.name + "-group")("value", choice_r156.value)("label", choice_r156.text)("formControl", ctx_r154.form.controls[ctx_r154.question.name])("inputId", ctx_r154.question.name + "-" + choice_r156.value);
|
|
1057
|
+
i0.ɵɵattribute("aria-label", ctx_r154.question.title);
|
|
973
1058
|
} }
|
|
974
1059
|
function DynamicFormQuestionComponent_ng_container_17_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
975
|
-
i0.ɵɵelementStart(0, "div",
|
|
976
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
1060
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
1061
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
977
1062
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
978
1063
|
i0.ɵɵelementEnd();
|
|
979
1064
|
} if (rf & 2) {
|
|
980
|
-
const
|
|
1065
|
+
const ctx_r155 = i0.ɵɵnextContext(2);
|
|
981
1066
|
i0.ɵɵadvance(1);
|
|
982
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
1067
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r155.question.description, ctx_r155.dynamicParam));
|
|
983
1068
|
} }
|
|
984
1069
|
function DynamicFormQuestionComponent_ng_container_17_Template(rf, ctx) { if (rf & 1) {
|
|
985
1070
|
i0.ɵɵelementContainerStart(0);
|
|
986
|
-
i0.ɵɵelementStart(1, "div",
|
|
987
|
-
i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_17_p_checkbox_3_Template, 1, 6, "p-checkbox",
|
|
1071
|
+
i0.ɵɵelementStart(1, "div", 49)(2, "div", 105);
|
|
1072
|
+
i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_17_p_checkbox_3_Template, 1, 6, "p-checkbox", 106);
|
|
988
1073
|
i0.ɵɵelementEnd();
|
|
989
|
-
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_17_div_4_Template, 3, 4, "div",
|
|
1074
|
+
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_17_div_4_Template, 3, 4, "div", 50);
|
|
990
1075
|
i0.ɵɵelementEnd();
|
|
991
1076
|
i0.ɵɵelementContainerEnd();
|
|
992
1077
|
} if (rf & 2) {
|
|
@@ -999,29 +1084,29 @@ function DynamicFormQuestionComponent_ng_container_17_Template(rf, ctx) { if (rf
|
|
|
999
1084
|
i0.ɵɵproperty("ngIf", ctx_r15.question.description);
|
|
1000
1085
|
} }
|
|
1001
1086
|
function DynamicFormQuestionComponent_ng_container_18_p_checkbox_3_Template(rf, ctx) { if (rf & 1) {
|
|
1002
|
-
i0.ɵɵelement(0, "p-checkbox",
|
|
1087
|
+
i0.ɵɵelement(0, "p-checkbox", 107);
|
|
1003
1088
|
} if (rf & 2) {
|
|
1004
|
-
const
|
|
1005
|
-
const
|
|
1006
|
-
i0.ɵɵproperty("name",
|
|
1007
|
-
i0.ɵɵattribute("aria-label",
|
|
1089
|
+
const choice_r159 = ctx.$implicit;
|
|
1090
|
+
const ctx_r157 = i0.ɵɵnextContext(2);
|
|
1091
|
+
i0.ɵɵproperty("name", ctx_r157.question.name + "-group")("value", choice_r159.value)("label", choice_r159.text)("formControl", ctx_r157.form.controls[ctx_r157.question.name])("inputId", ctx_r157.question.name + "-" + choice_r159.value);
|
|
1092
|
+
i0.ɵɵattribute("aria-label", ctx_r157.question.title);
|
|
1008
1093
|
} }
|
|
1009
1094
|
function DynamicFormQuestionComponent_ng_container_18_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
1010
|
-
i0.ɵɵelementStart(0, "div",
|
|
1011
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
1095
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
1096
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
1012
1097
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
1013
1098
|
i0.ɵɵelementEnd();
|
|
1014
1099
|
} if (rf & 2) {
|
|
1015
|
-
const
|
|
1100
|
+
const ctx_r158 = i0.ɵɵnextContext(2);
|
|
1016
1101
|
i0.ɵɵadvance(1);
|
|
1017
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
1102
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r158.question.description, ctx_r158.dynamicParam));
|
|
1018
1103
|
} }
|
|
1019
1104
|
function DynamicFormQuestionComponent_ng_container_18_Template(rf, ctx) { if (rf & 1) {
|
|
1020
1105
|
i0.ɵɵelementContainerStart(0);
|
|
1021
|
-
i0.ɵɵelementStart(1, "div",
|
|
1022
|
-
i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_18_p_checkbox_3_Template, 1, 6, "p-checkbox",
|
|
1106
|
+
i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
|
|
1107
|
+
i0.ɵɵtemplate(3, DynamicFormQuestionComponent_ng_container_18_p_checkbox_3_Template, 1, 6, "p-checkbox", 106);
|
|
1023
1108
|
i0.ɵɵelementEnd();
|
|
1024
|
-
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_18_div_4_Template, 3, 4, "div",
|
|
1109
|
+
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_18_div_4_Template, 3, 4, "div", 50);
|
|
1025
1110
|
i0.ɵɵelementEnd();
|
|
1026
1111
|
i0.ɵɵelementContainerEnd();
|
|
1027
1112
|
} if (rf & 2) {
|
|
@@ -1034,21 +1119,21 @@ function DynamicFormQuestionComponent_ng_container_18_Template(rf, ctx) { if (rf
|
|
|
1034
1119
|
i0.ɵɵproperty("ngIf", ctx_r16.question.description);
|
|
1035
1120
|
} }
|
|
1036
1121
|
function DynamicFormQuestionComponent_ng_container_19_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
1037
|
-
i0.ɵɵelementStart(0, "div",
|
|
1038
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
1122
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
1123
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
1039
1124
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
1040
1125
|
i0.ɵɵelementEnd();
|
|
1041
1126
|
} if (rf & 2) {
|
|
1042
|
-
const
|
|
1127
|
+
const ctx_r160 = i0.ɵɵnextContext(2);
|
|
1043
1128
|
i0.ɵɵadvance(1);
|
|
1044
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
1129
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r160.question.description, ctx_r160.dynamicParam));
|
|
1045
1130
|
} }
|
|
1046
1131
|
function DynamicFormQuestionComponent_ng_container_19_Template(rf, ctx) { if (rf & 1) {
|
|
1047
1132
|
i0.ɵɵelementContainerStart(0);
|
|
1048
|
-
i0.ɵɵelementStart(1, "div",
|
|
1049
|
-
i0.ɵɵelement(3, "p-selectButton",
|
|
1133
|
+
i0.ɵɵelementStart(1, "div", 49)(2, "div", 51);
|
|
1134
|
+
i0.ɵɵelement(3, "p-selectButton", 108);
|
|
1050
1135
|
i0.ɵɵelementEnd();
|
|
1051
|
-
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_19_div_4_Template, 3, 4, "div",
|
|
1136
|
+
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_19_div_4_Template, 3, 4, "div", 50);
|
|
1052
1137
|
i0.ɵɵelementEnd();
|
|
1053
1138
|
i0.ɵɵelementContainerEnd();
|
|
1054
1139
|
} if (rf & 2) {
|
|
@@ -1062,23 +1147,23 @@ function DynamicFormQuestionComponent_ng_container_19_Template(rf, ctx) { if (rf
|
|
|
1062
1147
|
i0.ɵɵproperty("ngIf", ctx_r17.question.description);
|
|
1063
1148
|
} }
|
|
1064
1149
|
function DynamicFormQuestionComponent_ng_container_20_div_6_Template(rf, ctx) { if (rf & 1) {
|
|
1065
|
-
i0.ɵɵelementStart(0, "div",
|
|
1066
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
1150
|
+
i0.ɵɵelementStart(0, "div", 86);
|
|
1151
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
1067
1152
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
1068
1153
|
i0.ɵɵelementEnd();
|
|
1069
1154
|
} if (rf & 2) {
|
|
1070
|
-
const
|
|
1155
|
+
const ctx_r161 = i0.ɵɵnextContext(2);
|
|
1071
1156
|
i0.ɵɵadvance(1);
|
|
1072
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
1157
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r161.question.description, ctx_r161.dynamicParam));
|
|
1073
1158
|
} }
|
|
1074
1159
|
function DynamicFormQuestionComponent_ng_container_20_Template(rf, ctx) { if (rf & 1) {
|
|
1075
1160
|
i0.ɵɵelementContainerStart(0);
|
|
1076
|
-
i0.ɵɵelementStart(1, "div",
|
|
1077
|
-
i0.ɵɵelement(3, "p-checkbox",
|
|
1078
|
-
i0.ɵɵelementStart(4, "label",
|
|
1161
|
+
i0.ɵɵelementStart(1, "div", 49)(2, "div", 109);
|
|
1162
|
+
i0.ɵɵelement(3, "p-checkbox", 110);
|
|
1163
|
+
i0.ɵɵelementStart(4, "label", 111);
|
|
1079
1164
|
i0.ɵɵtext(5);
|
|
1080
1165
|
i0.ɵɵelementEnd()();
|
|
1081
|
-
i0.ɵɵtemplate(6, DynamicFormQuestionComponent_ng_container_20_div_6_Template, 3, 4, "div",
|
|
1166
|
+
i0.ɵɵtemplate(6, DynamicFormQuestionComponent_ng_container_20_div_6_Template, 3, 4, "div", 112);
|
|
1082
1167
|
i0.ɵɵelementEnd();
|
|
1083
1168
|
i0.ɵɵelementContainerEnd();
|
|
1084
1169
|
} if (rf & 2) {
|
|
@@ -1092,22 +1177,22 @@ function DynamicFormQuestionComponent_ng_container_20_Template(rf, ctx) { if (rf
|
|
|
1092
1177
|
i0.ɵɵproperty("ngIf", ctx_r18.question.description);
|
|
1093
1178
|
} }
|
|
1094
1179
|
function DynamicFormQuestionComponent_ng_container_21_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
1095
|
-
i0.ɵɵelementStart(0, "div",
|
|
1096
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
1180
|
+
i0.ɵɵelementStart(0, "div", 115);
|
|
1181
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
1097
1182
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
1098
1183
|
i0.ɵɵelementEnd();
|
|
1099
1184
|
} if (rf & 2) {
|
|
1100
|
-
const
|
|
1185
|
+
const ctx_r162 = i0.ɵɵnextContext(2);
|
|
1101
1186
|
i0.ɵɵadvance(1);
|
|
1102
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
1187
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r162.question.description, ctx_r162.dynamicParam));
|
|
1103
1188
|
} }
|
|
1104
1189
|
function DynamicFormQuestionComponent_ng_container_21_Template(rf, ctx) { if (rf & 1) {
|
|
1105
1190
|
i0.ɵɵelementContainerStart(0);
|
|
1106
|
-
i0.ɵɵelementStart(1, "div",
|
|
1191
|
+
i0.ɵɵelementStart(1, "div", 49)(2, "label");
|
|
1107
1192
|
i0.ɵɵtext(3);
|
|
1108
1193
|
i0.ɵɵelementEnd();
|
|
1109
|
-
i0.ɵɵelement(4, "input",
|
|
1110
|
-
i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_21_div_5_Template, 3, 4, "div",
|
|
1194
|
+
i0.ɵɵelement(4, "input", 113);
|
|
1195
|
+
i0.ɵɵtemplate(5, DynamicFormQuestionComponent_ng_container_21_div_5_Template, 3, 4, "div", 114);
|
|
1111
1196
|
i0.ɵɵelementEnd();
|
|
1112
1197
|
i0.ɵɵelementContainerEnd();
|
|
1113
1198
|
} if (rf & 2) {
|
|
@@ -1121,21 +1206,21 @@ function DynamicFormQuestionComponent_ng_container_21_Template(rf, ctx) { if (rf
|
|
|
1121
1206
|
i0.ɵɵproperty("ngIf", ctx_r19.question.description);
|
|
1122
1207
|
} }
|
|
1123
1208
|
function DynamicFormQuestionComponent_ng_container_22_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
1124
|
-
i0.ɵɵelementStart(0, "div",
|
|
1125
|
-
i0.ɵɵelement(1, "app-overlay-info",
|
|
1209
|
+
i0.ɵɵelementStart(0, "div", 115);
|
|
1210
|
+
i0.ɵɵelement(1, "app-overlay-info", 48);
|
|
1126
1211
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
1127
1212
|
i0.ɵɵelementEnd();
|
|
1128
1213
|
} if (rf & 2) {
|
|
1129
|
-
const
|
|
1214
|
+
const ctx_r163 = i0.ɵɵnextContext(2);
|
|
1130
1215
|
i0.ɵɵadvance(1);
|
|
1131
|
-
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1,
|
|
1216
|
+
i0.ɵɵproperty("overlayText", i0.ɵɵpipeBind2(2, 1, ctx_r163.question.description, ctx_r163.dynamicParam));
|
|
1132
1217
|
} }
|
|
1133
1218
|
function DynamicFormQuestionComponent_ng_container_22_Template(rf, ctx) { if (rf & 1) {
|
|
1134
1219
|
i0.ɵɵelementContainerStart(0);
|
|
1135
|
-
i0.ɵɵelementStart(1, "div",
|
|
1220
|
+
i0.ɵɵelementStart(1, "div", 49)(2, "label");
|
|
1136
1221
|
i0.ɵɵtext(3);
|
|
1137
1222
|
i0.ɵɵelementEnd();
|
|
1138
|
-
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_22_div_4_Template, 3, 4, "div",
|
|
1223
|
+
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_22_div_4_Template, 3, 4, "div", 114);
|
|
1139
1224
|
i0.ɵɵelementEnd();
|
|
1140
1225
|
i0.ɵɵelementContainerEnd();
|
|
1141
1226
|
} if (rf & 2) {
|
|
@@ -1147,8 +1232,8 @@ function DynamicFormQuestionComponent_ng_container_22_Template(rf, ctx) { if (rf
|
|
|
1147
1232
|
} }
|
|
1148
1233
|
function DynamicFormQuestionComponent_ng_container_23_Template(rf, ctx) { if (rf & 1) {
|
|
1149
1234
|
i0.ɵɵelementContainerStart(0);
|
|
1150
|
-
i0.ɵɵelementStart(1, "div",
|
|
1151
|
-
i0.ɵɵelement(2, "app-overlay-info",
|
|
1235
|
+
i0.ɵɵelementStart(1, "div", 49);
|
|
1236
|
+
i0.ɵɵelement(2, "app-overlay-info", 116);
|
|
1152
1237
|
i0.ɵɵpipe(3, "dynamicTranslate");
|
|
1153
1238
|
i0.ɵɵelementEnd();
|
|
1154
1239
|
i0.ɵɵelementContainerEnd();
|
|
@@ -1159,8 +1244,8 @@ function DynamicFormQuestionComponent_ng_container_23_Template(rf, ctx) { if (rf
|
|
|
1159
1244
|
} }
|
|
1160
1245
|
function DynamicFormQuestionComponent_ng_container_24_Template(rf, ctx) { if (rf & 1) {
|
|
1161
1246
|
i0.ɵɵelementContainerStart(0);
|
|
1162
|
-
i0.ɵɵelementStart(1, "div",
|
|
1163
|
-
i0.ɵɵelement(2, "app-overlay-info",
|
|
1247
|
+
i0.ɵɵelementStart(1, "div", 49);
|
|
1248
|
+
i0.ɵɵelement(2, "app-overlay-info", 117);
|
|
1164
1249
|
i0.ɵɵpipe(3, "dynamicTranslate");
|
|
1165
1250
|
i0.ɵɵelementEnd();
|
|
1166
1251
|
i0.ɵɵelementContainerEnd();
|
|
@@ -1171,8 +1256,8 @@ function DynamicFormQuestionComponent_ng_container_24_Template(rf, ctx) { if (rf
|
|
|
1171
1256
|
} }
|
|
1172
1257
|
function DynamicFormQuestionComponent_ng_container_25_Template(rf, ctx) { if (rf & 1) {
|
|
1173
1258
|
i0.ɵɵelementContainerStart(0);
|
|
1174
|
-
i0.ɵɵelementStart(1, "div",
|
|
1175
|
-
i0.ɵɵelement(2, "app-overlay-info",
|
|
1259
|
+
i0.ɵɵelementStart(1, "div", 49);
|
|
1260
|
+
i0.ɵɵelement(2, "app-overlay-info", 118);
|
|
1176
1261
|
i0.ɵɵpipe(3, "dynamicTranslate");
|
|
1177
1262
|
i0.ɵɵelementEnd();
|
|
1178
1263
|
i0.ɵɵelementContainerEnd();
|
|
@@ -1182,54 +1267,54 @@ function DynamicFormQuestionComponent_ng_container_25_Template(rf, ctx) { if (rf
|
|
|
1182
1267
|
i0.ɵɵproperty("displayText", ctx_r23.question.title)("formControlName", ctx_r23.question.name)("labelWithPopup", i0.ɵɵpipeBind2(3, 4, ctx_r23.question.description, ctx_r23.dynamicParam))("labelWithLink", true);
|
|
1183
1268
|
} }
|
|
1184
1269
|
function DynamicFormQuestionComponent_ng_container_26_ng_container_4_ion_col_1_Template(rf, ctx) { if (rf & 1) {
|
|
1185
|
-
i0.ɵɵelementStart(0, "ion-col",
|
|
1186
|
-
i0.ɵɵelement(1, "app-question",
|
|
1270
|
+
i0.ɵɵelementStart(0, "ion-col", 122);
|
|
1271
|
+
i0.ɵɵelement(1, "app-question", 123);
|
|
1187
1272
|
i0.ɵɵelementEnd();
|
|
1188
1273
|
} if (rf & 2) {
|
|
1189
|
-
const
|
|
1190
|
-
const
|
|
1191
|
-
i0.ɵɵproperty("sizeXl",
|
|
1274
|
+
const element_r166 = i0.ɵɵnextContext().$implicit;
|
|
1275
|
+
const ctx_r167 = i0.ɵɵnextContext(2);
|
|
1276
|
+
i0.ɵɵproperty("sizeXl", element_r166.sizeXL)("sizeLg", element_r166.sizeLG)("sizeMd", element_r166.sizeMD)("offsetMd", element_r166.offSetMD);
|
|
1192
1277
|
i0.ɵɵadvance(1);
|
|
1193
|
-
i0.ɵɵproperty("question",
|
|
1278
|
+
i0.ɵɵproperty("question", element_r166)("form", ctx_r167.form)("forScreenQuestionnaire", ctx_r167.forScreenQuestionnaire);
|
|
1194
1279
|
} }
|
|
1195
1280
|
function DynamicFormQuestionComponent_ng_container_26_ng_container_4_Template(rf, ctx) { if (rf & 1) {
|
|
1196
1281
|
i0.ɵɵelementContainerStart(0);
|
|
1197
|
-
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_4_ion_col_1_Template, 2, 7, "ion-col",
|
|
1282
|
+
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_4_ion_col_1_Template, 2, 7, "ion-col", 121);
|
|
1198
1283
|
i0.ɵɵelementContainerEnd();
|
|
1199
1284
|
} if (rf & 2) {
|
|
1200
|
-
const
|
|
1201
|
-
const
|
|
1285
|
+
const element_r166 = ctx.$implicit;
|
|
1286
|
+
const ctx_r164 = i0.ɵɵnextContext(2);
|
|
1202
1287
|
i0.ɵɵadvance(1);
|
|
1203
|
-
i0.ɵɵproperty("ngIf",
|
|
1288
|
+
i0.ɵɵproperty("ngIf", element_r166.colElement === "COL1" && ctx_r164.visibleIf(element_r166.visibleIf, element_r166.name));
|
|
1204
1289
|
} }
|
|
1205
1290
|
function DynamicFormQuestionComponent_ng_container_26_ng_container_7_ion_col_1_Template(rf, ctx) { if (rf & 1) {
|
|
1206
|
-
i0.ɵɵelementStart(0, "ion-col",
|
|
1207
|
-
i0.ɵɵelement(1, "app-question",
|
|
1291
|
+
i0.ɵɵelementStart(0, "ion-col", 125);
|
|
1292
|
+
i0.ɵɵelement(1, "app-question", 123);
|
|
1208
1293
|
i0.ɵɵelementEnd();
|
|
1209
1294
|
} if (rf & 2) {
|
|
1210
|
-
const
|
|
1211
|
-
const
|
|
1212
|
-
i0.ɵɵproperty("sizeXl",
|
|
1295
|
+
const element_r169 = i0.ɵɵnextContext().$implicit;
|
|
1296
|
+
const ctx_r170 = i0.ɵɵnextContext(2);
|
|
1297
|
+
i0.ɵɵproperty("sizeXl", element_r169.sizeXL)("sizeLg", element_r169.sizeLG)("sizeMd", element_r169.sizeMD)("offsetMd", element_r169.offSetMD);
|
|
1213
1298
|
i0.ɵɵadvance(1);
|
|
1214
|
-
i0.ɵɵproperty("question",
|
|
1299
|
+
i0.ɵɵproperty("question", element_r169)("form", ctx_r170.form)("forScreenQuestionnaire", ctx_r170.forScreenQuestionnaire);
|
|
1215
1300
|
} }
|
|
1216
1301
|
function DynamicFormQuestionComponent_ng_container_26_ng_container_7_Template(rf, ctx) { if (rf & 1) {
|
|
1217
1302
|
i0.ɵɵelementContainerStart(0);
|
|
1218
|
-
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_7_ion_col_1_Template, 2, 7, "ion-col",
|
|
1303
|
+
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_ng_container_26_ng_container_7_ion_col_1_Template, 2, 7, "ion-col", 124);
|
|
1219
1304
|
i0.ɵɵelementContainerEnd();
|
|
1220
1305
|
} if (rf & 2) {
|
|
1221
|
-
const
|
|
1222
|
-
const
|
|
1306
|
+
const element_r169 = ctx.$implicit;
|
|
1307
|
+
const ctx_r165 = i0.ɵɵnextContext(2);
|
|
1223
1308
|
i0.ɵɵadvance(1);
|
|
1224
|
-
i0.ɵɵproperty("ngIf",
|
|
1309
|
+
i0.ɵɵproperty("ngIf", element_r169.colElement === "COL2" && ctx_r165.visibleIf(element_r169.visibleIf, element_r169.name));
|
|
1225
1310
|
} }
|
|
1226
1311
|
function DynamicFormQuestionComponent_ng_container_26_Template(rf, ctx) { if (rf & 1) {
|
|
1227
|
-
i0.ɵɵelementContainerStart(0,
|
|
1312
|
+
i0.ɵɵelementContainerStart(0, 119);
|
|
1228
1313
|
i0.ɵɵelementStart(1, "ion-row")(2, "ion-col")(3, "ion-row");
|
|
1229
|
-
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_26_ng_container_4_Template, 2, 1, "ng-container",
|
|
1314
|
+
i0.ɵɵtemplate(4, DynamicFormQuestionComponent_ng_container_26_ng_container_4_Template, 2, 1, "ng-container", 120);
|
|
1230
1315
|
i0.ɵɵelementEnd()();
|
|
1231
1316
|
i0.ɵɵelementStart(5, "ion-col")(6, "ion-row");
|
|
1232
|
-
i0.ɵɵtemplate(7, DynamicFormQuestionComponent_ng_container_26_ng_container_7_Template, 2, 1, "ng-container",
|
|
1317
|
+
i0.ɵɵtemplate(7, DynamicFormQuestionComponent_ng_container_26_ng_container_7_Template, 2, 1, "ng-container", 120);
|
|
1233
1318
|
i0.ɵɵelementEnd()()();
|
|
1234
1319
|
i0.ɵɵelementContainerEnd();
|
|
1235
1320
|
} if (rf & 2) {
|
|
@@ -1240,19 +1325,19 @@ function DynamicFormQuestionComponent_ng_container_26_Template(rf, ctx) { if (rf
|
|
|
1240
1325
|
i0.ɵɵproperty("ngForOf", ctx_r24.question.elements);
|
|
1241
1326
|
} }
|
|
1242
1327
|
function DynamicFormQuestionComponent_div_27_small_1_Template(rf, ctx) { if (rf & 1) {
|
|
1243
|
-
i0.ɵɵelementStart(0, "small",
|
|
1328
|
+
i0.ɵɵelementStart(0, "small", 127);
|
|
1244
1329
|
i0.ɵɵtext(1);
|
|
1245
1330
|
i0.ɵɵpipe(2, "dynamicTranslate");
|
|
1246
1331
|
i0.ɵɵelementEnd();
|
|
1247
1332
|
} if (rf & 2) {
|
|
1248
|
-
const
|
|
1333
|
+
const ctx_r172 = i0.ɵɵnextContext(2);
|
|
1249
1334
|
i0.ɵɵproperty("@rowExpansionTrigger", "active");
|
|
1250
1335
|
i0.ɵɵadvance(1);
|
|
1251
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 2,
|
|
1336
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 2, ctx_r172.isValid, ctx_r172.dynamicParam));
|
|
1252
1337
|
} }
|
|
1253
1338
|
function DynamicFormQuestionComponent_div_27_Template(rf, ctx) { if (rf & 1) {
|
|
1254
|
-
i0.ɵɵelementStart(0, "div",
|
|
1255
|
-
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_27_small_1_Template, 3, 5, "small",
|
|
1339
|
+
i0.ɵɵelementStart(0, "div", 51);
|
|
1340
|
+
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_div_27_small_1_Template, 3, 5, "small", 126);
|
|
1256
1341
|
i0.ɵɵelementEnd();
|
|
1257
1342
|
} if (rf & 2) {
|
|
1258
1343
|
const ctx_r25 = i0.ɵɵnextContext();
|
|
@@ -1261,7 +1346,7 @@ function DynamicFormQuestionComponent_div_27_Template(rf, ctx) { if (rf & 1) {
|
|
|
1261
1346
|
i0.ɵɵproperty("ngIf", ctx_r25.isValid != "");
|
|
1262
1347
|
} }
|
|
1263
1348
|
export class DynamicFormQuestionComponent {
|
|
1264
|
-
constructor(qcs, service, translate, validationService, util, navController, logger,
|
|
1349
|
+
constructor(qcs, service, translate, validationService, util, navController, logger, claimantService, weeklycertService, elementRef, renderer, ls) {
|
|
1265
1350
|
this.qcs = qcs;
|
|
1266
1351
|
this.service = service;
|
|
1267
1352
|
this.translate = translate;
|
|
@@ -1269,21 +1354,34 @@ export class DynamicFormQuestionComponent {
|
|
|
1269
1354
|
this.util = util;
|
|
1270
1355
|
this.navController = navController;
|
|
1271
1356
|
this.logger = logger;
|
|
1272
|
-
this.
|
|
1357
|
+
this.claimantService = claimantService;
|
|
1358
|
+
this.weeklycertService = weeklycertService;
|
|
1359
|
+
this.elementRef = elementRef;
|
|
1360
|
+
this.renderer = renderer;
|
|
1361
|
+
this.ls = ls;
|
|
1273
1362
|
this.onDynamicParamUpdate = new EventEmitter();
|
|
1274
|
-
this.isNewPasswordPolicyEnabled = LibConstants.isNewPasswordPolicyEnabled == 'true';
|
|
1275
|
-
this.isNewPasswordPolicyEnabledForClaimant = LibConstants.isNewPasswordPolicyEnabledForClaimant == 'true';
|
|
1276
|
-
this.isNewPasswordPolicyEnabledForEmployer = LibConstants.isNewPasswordPolicyEnabledForEmployer == 'true';
|
|
1277
|
-
this.isSameSymbolPolicyForClaimantAndAgency = LibConstants.isSameSymbolPolicyForClaimantAndAgency == 'true';
|
|
1278
1363
|
this.legalAccepted = null;
|
|
1279
|
-
this.OtpCompleted = null;
|
|
1280
1364
|
this.index = 1;
|
|
1281
1365
|
this.returnModel = new ValidationModel();
|
|
1282
|
-
this.
|
|
1366
|
+
this.maskClass = true;
|
|
1283
1367
|
this.showMinDate = false;
|
|
1284
1368
|
this.showMaxDate = false;
|
|
1285
1369
|
this.minValue = null;
|
|
1286
1370
|
this.maxValue = null;
|
|
1371
|
+
this.toDayDate = new Date();
|
|
1372
|
+
this.registerClaimantFlag = false;
|
|
1373
|
+
this.phoneVerified = true;
|
|
1374
|
+
this.isFieldDisabled = true;
|
|
1375
|
+
this.partEmpModel = new PartialEmploymentModel();
|
|
1376
|
+
this.isOtpModalEnabled = false;
|
|
1377
|
+
this.isReturningUser = false;
|
|
1378
|
+
this.minDateDOB = new Date(this.toDayDate.getFullYear() - 100, this.toDayDate.getMonth(), this.toDayDate.getDate());
|
|
1379
|
+
this.maxDateDOB = new Date(this.toDayDate.getFullYear() - 10, this.toDayDate.getMonth(), this.toDayDate.getDate());
|
|
1380
|
+
}
|
|
1381
|
+
ngAfterViewInit() {
|
|
1382
|
+
if (this.pCalendar) {
|
|
1383
|
+
this.modifyCalendarAttributes();
|
|
1384
|
+
}
|
|
1287
1385
|
}
|
|
1288
1386
|
visibleIf(strExp, elementName) {
|
|
1289
1387
|
if (!strExp) {
|
|
@@ -1292,7 +1390,9 @@ export class DynamicFormQuestionComponent {
|
|
|
1292
1390
|
let isVisible = false;
|
|
1293
1391
|
if (strExp.includes('&&')) {
|
|
1294
1392
|
let expr = strExp.split('&&');
|
|
1295
|
-
isVisible =
|
|
1393
|
+
isVisible =
|
|
1394
|
+
this.calculateOperandValue(expr[0]) &&
|
|
1395
|
+
this.calculateOperandValue(expr[1]);
|
|
1296
1396
|
if (expr.length >= 3) {
|
|
1297
1397
|
isVisible = isVisible && this.calculateOperandValue(expr[2]);
|
|
1298
1398
|
}
|
|
@@ -1308,7 +1408,9 @@ export class DynamicFormQuestionComponent {
|
|
|
1308
1408
|
}
|
|
1309
1409
|
if (strExp.includes('||')) {
|
|
1310
1410
|
let expr = strExp.split('||');
|
|
1311
|
-
isVisible =
|
|
1411
|
+
isVisible =
|
|
1412
|
+
this.calculateOperandValue(expr[0]) ||
|
|
1413
|
+
this.calculateOperandValue(expr[1]);
|
|
1312
1414
|
if (expr.length >= 3) {
|
|
1313
1415
|
isVisible = isVisible || this.calculateOperandValue(expr[2]);
|
|
1314
1416
|
}
|
|
@@ -1343,13 +1445,15 @@ export class DynamicFormQuestionComponent {
|
|
|
1343
1445
|
let operand1 = splitArray[0];
|
|
1344
1446
|
let operand2 = splitArray[1];
|
|
1345
1447
|
operand1 = operand1.replace('{', '').replace('}', '').trim(); //claimantPriorPay102 diffmailaddress315
|
|
1346
|
-
operand2 = operand2.replace('{', '').replace('}', '').trim(); //null
|
|
1448
|
+
operand2 = operand2.replace('{', '').replace('}', '').trim(); //null
|
|
1347
1449
|
if (this.form.controls[operand1]) {
|
|
1348
1450
|
var valueOfCnrtrlToCheck;
|
|
1349
|
-
if (this.form.controls[operand1].value &&
|
|
1451
|
+
if (this.form.controls[operand1].value &&
|
|
1452
|
+
typeof this.form.controls[operand1].value === 'string') {
|
|
1350
1453
|
valueOfCnrtrlToCheck = this.form.controls[operand1].value;
|
|
1351
1454
|
}
|
|
1352
|
-
if (this.form.controls[operand1].value &&
|
|
1455
|
+
if (this.form.controls[operand1].value &&
|
|
1456
|
+
typeof this.form.controls[operand1].value != 'string') {
|
|
1353
1457
|
valueOfCnrtrlToCheck = this.form.controls[operand1].value['value'];
|
|
1354
1458
|
}
|
|
1355
1459
|
if (operand2 === 'null' && isDoesNotEqual && valueOfCnrtrlToCheck) {
|
|
@@ -1358,11 +1462,15 @@ export class DynamicFormQuestionComponent {
|
|
|
1358
1462
|
if (operand2 === 'null' && !isDoesNotEqual && !valueOfCnrtrlToCheck) {
|
|
1359
1463
|
return true;
|
|
1360
1464
|
}
|
|
1361
|
-
operand2 = operand2.replace('
|
|
1362
|
-
if (operand2 != 'null' &&
|
|
1465
|
+
operand2 = operand2.replace("'", '').replace("'", '').trim(); //null
|
|
1466
|
+
if (operand2 != 'null' &&
|
|
1467
|
+
!isDoesNotEqual &&
|
|
1468
|
+
valueOfCnrtrlToCheck === operand2) {
|
|
1363
1469
|
return true;
|
|
1364
1470
|
}
|
|
1365
|
-
if (operand2 != 'null' &&
|
|
1471
|
+
if (operand2 != 'null' &&
|
|
1472
|
+
isDoesNotEqual &&
|
|
1473
|
+
valueOfCnrtrlToCheck != operand2) {
|
|
1366
1474
|
return true;
|
|
1367
1475
|
}
|
|
1368
1476
|
return false;
|
|
@@ -1370,24 +1478,119 @@ export class DynamicFormQuestionComponent {
|
|
|
1370
1478
|
}
|
|
1371
1479
|
ngOnInit() {
|
|
1372
1480
|
// this.logger.debug('is DynamicFormQuestionComponent ngOnInit called', this.question)
|
|
1481
|
+
this.getPartialEmploymentInfo();
|
|
1373
1482
|
this.filterResult = this.question.choices;
|
|
1374
1483
|
this.setMinMaxDate();
|
|
1375
1484
|
this.setMinMaxValue();
|
|
1376
1485
|
this.setDefaultValue();
|
|
1377
1486
|
this.setLinkComponentData();
|
|
1487
|
+
let currentQes = this.service.searchBs.getValue();
|
|
1488
|
+
this.currentflowkey = currentQes.flowKey;
|
|
1489
|
+
if ((localStorage.getItem('disableFieldsOnSignup') === 'true') && localStorage.getItem("flowKey") == '345') {
|
|
1490
|
+
this.disableFields();
|
|
1491
|
+
}
|
|
1492
|
+
}
|
|
1493
|
+
checkFlowKey() {
|
|
1494
|
+
if (this.currentflowkey === 'register-claimant') {
|
|
1495
|
+
//console.info("currentflowkey ",this.currentflowkey)
|
|
1496
|
+
return (this.registerClaimantFlag = true);
|
|
1497
|
+
}
|
|
1498
|
+
else {
|
|
1499
|
+
return this.registerClaimantFlag;
|
|
1500
|
+
}
|
|
1501
|
+
}
|
|
1502
|
+
// phoneNumberVerified(): boolean{
|
|
1503
|
+
// return this.phoneVerified,
|
|
1504
|
+
// }
|
|
1505
|
+
disableFields() {
|
|
1506
|
+
if (this.checkFlowKey()) {
|
|
1507
|
+
this.form.get('email').disable();
|
|
1508
|
+
this.form.get('username').disable();
|
|
1509
|
+
this.form.get('password').disable();
|
|
1510
|
+
this.form.get('confirmPassword').disable();
|
|
1511
|
+
this.form.get('secQues1').disable();
|
|
1512
|
+
this.form.get('secAns1').disable();
|
|
1513
|
+
this.form.get('secQues2').disable();
|
|
1514
|
+
this.form.get('secAns2').disable();
|
|
1515
|
+
this.form.get('secQues3').disable();
|
|
1516
|
+
this.form.get('secAns3').disable();
|
|
1517
|
+
this.form.get('resAdress').disable();
|
|
1518
|
+
this.form.get('diffmailaddress').disable();
|
|
1519
|
+
//this.form.get('mailaddress').disable();
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
enableFields() {
|
|
1523
|
+
this.form.get('email').enable();
|
|
1524
|
+
this.form.get('username').enable();
|
|
1525
|
+
this.form.get('password').enable();
|
|
1526
|
+
this.form.get('confirmPassword').enable();
|
|
1527
|
+
this.form.get('secQues1').enable();
|
|
1528
|
+
this.form.get('secAns1').enable();
|
|
1529
|
+
this.form.get('secQues2').enable();
|
|
1530
|
+
this.form.get('secAns2').enable();
|
|
1531
|
+
this.form.get('secQues3').enable();
|
|
1532
|
+
this.form.get('secAns3').enable();
|
|
1533
|
+
this.form.get('resAdress').enable();
|
|
1534
|
+
this.form.get('diffmailaddress').enable();
|
|
1535
|
+
//this.form.get('mailaddress').enable();
|
|
1536
|
+
}
|
|
1537
|
+
checkIfUserExist() {
|
|
1538
|
+
// console.info("dob ", this.form.get("dob").value);
|
|
1539
|
+
if (!this.form.get('ssn').value &&
|
|
1540
|
+
!this.form.get('dob').value &&
|
|
1541
|
+
!this.checkFlowKey()) {
|
|
1542
|
+
}
|
|
1543
|
+
else {
|
|
1544
|
+
let ssnfromuser = this.form.get('ssn').value;
|
|
1545
|
+
//console.info("test with ssnfromuser ", ssnfromuser);
|
|
1546
|
+
this.claimantService.checkIfUserAlreadyExist(ssnfromuser).subscribe((x) => {
|
|
1547
|
+
if (x != null) {
|
|
1548
|
+
/* Phone is displayed in the frontend input field, but not exactly set in the object*/
|
|
1549
|
+
this.form.get('phone').setValue(x);
|
|
1550
|
+
//this.form.get('phone').disable();
|
|
1551
|
+
}
|
|
1552
|
+
//console.info('test with x ', x);
|
|
1553
|
+
}, (err) => {
|
|
1554
|
+
this.util.hideLoader();
|
|
1555
|
+
this.util.errorHandler(err);
|
|
1556
|
+
});
|
|
1557
|
+
}
|
|
1558
|
+
}
|
|
1559
|
+
getPartialEmploymentInfo() {
|
|
1560
|
+
console.log('Inside PartialEmpInfo', this.question.name);
|
|
1561
|
+
if (this.question.name === 'workPerformed') {
|
|
1562
|
+
this.weeklycertService
|
|
1563
|
+
.getPartialEmployment()
|
|
1564
|
+
.subscribe((res) => {
|
|
1565
|
+
if (res.partialEmploymentFlag === '1') {
|
|
1566
|
+
this.form.value[this.question.name] = 'Y';
|
|
1567
|
+
this.form.controls[this.question.name].addValidators((control) => {
|
|
1568
|
+
return control.value !== 'Y' ? { forceYes: true } : null;
|
|
1569
|
+
});
|
|
1570
|
+
}
|
|
1571
|
+
});
|
|
1572
|
+
}
|
|
1378
1573
|
}
|
|
1379
1574
|
setLinkComponentData() {
|
|
1380
1575
|
if (this.question.componentName == 'app-link') {
|
|
1381
|
-
this.linkComponentData = this.question.componentData
|
|
1576
|
+
this.linkComponentData = this.question.componentData
|
|
1577
|
+
? JSON.parse(this.question.componentData)
|
|
1578
|
+
: null;
|
|
1382
1579
|
}
|
|
1383
1580
|
}
|
|
1384
1581
|
showLabelForCustomComponent() {
|
|
1385
|
-
let parsedData = this.question.componentData
|
|
1582
|
+
let parsedData = this.question.componentData
|
|
1583
|
+
? JSON.parse(this.question.componentData)
|
|
1584
|
+
: null;
|
|
1386
1585
|
return parsedData?.showLabel == 'Y';
|
|
1387
1586
|
}
|
|
1388
1587
|
setMinMaxValue() {
|
|
1389
|
-
if (this.question.type === 'number' ||
|
|
1390
|
-
|
|
1588
|
+
if (this.question.type === 'number' ||
|
|
1589
|
+
this.question.type === 'decimal' ||
|
|
1590
|
+
this.question.type === 'currency') {
|
|
1591
|
+
let minMaxModel = this.question.componentData
|
|
1592
|
+
? JSON.parse(this.question.componentData)
|
|
1593
|
+
: null;
|
|
1391
1594
|
if (minMaxModel) {
|
|
1392
1595
|
if (minMaxModel.minValue) {
|
|
1393
1596
|
this.minValue = minMaxModel.minValue;
|
|
@@ -1400,7 +1603,9 @@ export class DynamicFormQuestionComponent {
|
|
|
1400
1603
|
}
|
|
1401
1604
|
setMinMaxDate() {
|
|
1402
1605
|
if (this.question.inputType === 'date') {
|
|
1403
|
-
let minMaxModel = this.question.componentData
|
|
1606
|
+
let minMaxModel = this.question.componentData
|
|
1607
|
+
? JSON.parse(this.question.componentData)
|
|
1608
|
+
: null;
|
|
1404
1609
|
if (minMaxModel && (minMaxModel.maxDateKey || minMaxModel.minDateKey)) {
|
|
1405
1610
|
if (this.dynamicParam[minMaxModel.minDateKey]) {
|
|
1406
1611
|
this.parseDate(this.dynamicParam[minMaxModel.minDateKey], 'min');
|
|
@@ -1444,31 +1649,46 @@ export class DynamicFormQuestionComponent {
|
|
|
1444
1649
|
setStyle(indent) {
|
|
1445
1650
|
let padding = indent <= 1 ? '0 px' : indent * 10 + 'px';
|
|
1446
1651
|
let styleObj = {
|
|
1447
|
-
'padding-left': padding
|
|
1652
|
+
'padding-left': padding,
|
|
1448
1653
|
};
|
|
1449
1654
|
return Object.assign(styleObj);
|
|
1450
1655
|
}
|
|
1451
1656
|
setMargin(margin) {
|
|
1452
1657
|
let mar = margin + 'px';
|
|
1453
1658
|
let styleObj = {
|
|
1454
|
-
'margin-right': mar
|
|
1659
|
+
'margin-right': mar,
|
|
1455
1660
|
};
|
|
1456
1661
|
return Object.assign(styleObj);
|
|
1457
1662
|
}
|
|
1458
1663
|
get isValid() {
|
|
1459
|
-
let message =
|
|
1664
|
+
let message = '';
|
|
1460
1665
|
let questionType = this.question.type;
|
|
1461
|
-
if ('html' === questionType ||
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1666
|
+
if ('html' === questionType ||
|
|
1667
|
+
'label' === questionType ||
|
|
1668
|
+
'simpleLabel' === questionType ||
|
|
1669
|
+
'displaytextaslabel' === questionType ||
|
|
1670
|
+
('button' === questionType &&
|
|
1671
|
+
!this.question.validators &&
|
|
1672
|
+
this.question.componentName != 'app-sign-ssn' &&
|
|
1673
|
+
this.question.componentName != 'app-link') ||
|
|
1674
|
+
'label-with-overlay' === questionType) {
|
|
1675
|
+
return '';
|
|
1465
1676
|
}
|
|
1466
|
-
if (this.question &&
|
|
1467
|
-
|
|
1677
|
+
if (this.question &&
|
|
1678
|
+
this.question.name &&
|
|
1679
|
+
this.form &&
|
|
1680
|
+
this.form.controls[this.question.name].errors?.required &&
|
|
1681
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1682
|
+
this.form.controls[this.question.name].touched)) {
|
|
1468
1683
|
this.form.controls[this.question.name].markAsDirty();
|
|
1469
1684
|
return this.question.requiredErrorText;
|
|
1470
1685
|
}
|
|
1471
|
-
if (this.question &&
|
|
1686
|
+
if (this.question &&
|
|
1687
|
+
this.question.name &&
|
|
1688
|
+
this.form &&
|
|
1689
|
+
this.form.controls[this.question.name].errors?.maxlength &&
|
|
1690
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1691
|
+
this.form.controls[this.question.name].touched)) {
|
|
1472
1692
|
this.logger.debug('errors?.maxLength', this.question);
|
|
1473
1693
|
this.form.controls[this.question.name].markAsDirty();
|
|
1474
1694
|
if (this.question.description) {
|
|
@@ -1476,7 +1696,7 @@ export class DynamicFormQuestionComponent {
|
|
|
1476
1696
|
}
|
|
1477
1697
|
let validatorList = this.question.validators;
|
|
1478
1698
|
var keepGoing = true;
|
|
1479
|
-
validatorList.forEach(validator => {
|
|
1699
|
+
validatorList.forEach((validator) => {
|
|
1480
1700
|
this.logger.debug('validator.type ', validator.type);
|
|
1481
1701
|
if (keepGoing) {
|
|
1482
1702
|
if (validator.type === 'text' && validator.maxLength) {
|
|
@@ -1485,18 +1705,22 @@ export class DynamicFormQuestionComponent {
|
|
|
1485
1705
|
keepGoing = false;
|
|
1486
1706
|
}
|
|
1487
1707
|
else {
|
|
1488
|
-
message =
|
|
1708
|
+
message = '';
|
|
1489
1709
|
}
|
|
1490
1710
|
}
|
|
1491
1711
|
});
|
|
1492
1712
|
return message;
|
|
1493
1713
|
}
|
|
1494
|
-
if (this.question &&
|
|
1495
|
-
|
|
1714
|
+
if (this.question &&
|
|
1715
|
+
this.question.name &&
|
|
1716
|
+
this.form &&
|
|
1717
|
+
this.form.controls[this.question.name].errors?.pattern &&
|
|
1718
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1719
|
+
this.form.controls[this.question.name].touched)) {
|
|
1496
1720
|
// this.logger.debug('errors?.pattern',this.question)
|
|
1497
1721
|
let validatorList = this.question.validators;
|
|
1498
1722
|
var keepGoing = true;
|
|
1499
|
-
validatorList.forEach(validator => {
|
|
1723
|
+
validatorList.forEach((validator) => {
|
|
1500
1724
|
// this.logger.debug('validator.type ', validator.type)
|
|
1501
1725
|
if (keepGoing) {
|
|
1502
1726
|
if (validator.type === 'regex') {
|
|
@@ -1506,18 +1730,22 @@ export class DynamicFormQuestionComponent {
|
|
|
1506
1730
|
keepGoing = false;
|
|
1507
1731
|
}
|
|
1508
1732
|
else {
|
|
1509
|
-
message =
|
|
1733
|
+
message = '';
|
|
1510
1734
|
}
|
|
1511
1735
|
}
|
|
1512
1736
|
});
|
|
1513
1737
|
return message;
|
|
1514
1738
|
}
|
|
1515
|
-
if (this.question &&
|
|
1516
|
-
|
|
1739
|
+
if (this.question &&
|
|
1740
|
+
this.question.name &&
|
|
1741
|
+
this.form &&
|
|
1742
|
+
this.form.controls[this.question.name].errors?.dateComparision &&
|
|
1743
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1744
|
+
this.form.controls[this.question.name].touched)) {
|
|
1517
1745
|
let validatorList = this.question.validators;
|
|
1518
1746
|
var keepGoing = true;
|
|
1519
|
-
let message =
|
|
1520
|
-
validatorList.forEach(validator => {
|
|
1747
|
+
let message = '';
|
|
1748
|
+
validatorList.forEach((validator) => {
|
|
1521
1749
|
if (keepGoing) {
|
|
1522
1750
|
// this.logger.debug('validator.type.minlength ', validator.type)
|
|
1523
1751
|
if (validator.type === 'expression') {
|
|
@@ -1527,167 +1755,174 @@ export class DynamicFormQuestionComponent {
|
|
|
1527
1755
|
this.form.controls[this.question.name].markAsDirty();
|
|
1528
1756
|
}
|
|
1529
1757
|
else {
|
|
1530
|
-
message =
|
|
1758
|
+
message = '';
|
|
1531
1759
|
}
|
|
1532
1760
|
}
|
|
1533
1761
|
});
|
|
1534
1762
|
return message;
|
|
1535
1763
|
}
|
|
1536
|
-
if (this.question &&
|
|
1537
|
-
|
|
1764
|
+
if (this.question &&
|
|
1765
|
+
this.question.name &&
|
|
1766
|
+
this.form &&
|
|
1767
|
+
this.form.controls[this.question.name].errors?.minlength &&
|
|
1768
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1769
|
+
this.form.controls[this.question.name].touched)) {
|
|
1538
1770
|
let validatorList = this.question.validators;
|
|
1539
1771
|
var keepGoing = true;
|
|
1540
|
-
let message =
|
|
1541
|
-
validatorList.forEach(validator => {
|
|
1772
|
+
let message = '';
|
|
1773
|
+
validatorList.forEach((validator) => {
|
|
1542
1774
|
if (keepGoing) {
|
|
1543
|
-
//
|
|
1775
|
+
//console.log('validator.type.minlength ', validator.type)
|
|
1544
1776
|
if (validator.type === 'text') {
|
|
1545
|
-
//
|
|
1777
|
+
//console.log('validator.text ', validator.text)
|
|
1546
1778
|
message = validator.text;
|
|
1547
1779
|
this.form.controls[this.question.name].markAsDirty();
|
|
1548
1780
|
keepGoing = false;
|
|
1549
1781
|
}
|
|
1550
1782
|
else {
|
|
1551
|
-
message =
|
|
1783
|
+
message = '';
|
|
1552
1784
|
}
|
|
1553
1785
|
}
|
|
1554
1786
|
});
|
|
1555
1787
|
return message;
|
|
1556
1788
|
}
|
|
1557
|
-
if (this.question &&
|
|
1558
|
-
|
|
1789
|
+
if (this.question &&
|
|
1790
|
+
this.question.name &&
|
|
1791
|
+
this.form &&
|
|
1792
|
+
this.form.controls[this.question.name].errors?.passwordComparision &&
|
|
1793
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1794
|
+
this.form.controls[this.question.name].touched)) {
|
|
1559
1795
|
let validatorList = this.question.validators;
|
|
1560
1796
|
var keepGoing = true;
|
|
1561
|
-
let message =
|
|
1562
|
-
validatorList.forEach(validator => {
|
|
1797
|
+
let message = '';
|
|
1798
|
+
validatorList.forEach((validator) => {
|
|
1563
1799
|
if (keepGoing) {
|
|
1564
|
-
//
|
|
1800
|
+
// console.log('validator.type.minlength ', validator.type)
|
|
1565
1801
|
if (validator.type === 'expression') {
|
|
1566
|
-
//
|
|
1802
|
+
// console.log('validator.text ', validator.text)
|
|
1567
1803
|
message = validator.text;
|
|
1568
1804
|
this.form.controls[this.question.name].markAsDirty();
|
|
1569
1805
|
keepGoing = false;
|
|
1570
1806
|
}
|
|
1571
1807
|
else {
|
|
1572
|
-
message =
|
|
1808
|
+
message = '';
|
|
1573
1809
|
}
|
|
1574
1810
|
}
|
|
1575
1811
|
});
|
|
1576
1812
|
return message;
|
|
1577
1813
|
}
|
|
1578
|
-
if (this.question &&
|
|
1579
|
-
|
|
1814
|
+
if (this.question &&
|
|
1815
|
+
this.question.name &&
|
|
1816
|
+
this.form &&
|
|
1817
|
+
this.form.controls[this.question.name].errors?.requiredIf &&
|
|
1818
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1819
|
+
this.form.controls[this.question.name].touched)) {
|
|
1580
1820
|
this.form.controls[this.question.name].markAsDirty();
|
|
1581
|
-
return
|
|
1821
|
+
return 'required';
|
|
1582
1822
|
}
|
|
1583
|
-
if (this.question &&
|
|
1584
|
-
|
|
1823
|
+
if (this.question &&
|
|
1824
|
+
this.question.name &&
|
|
1825
|
+
this.form &&
|
|
1826
|
+
this.form.controls[this.question.name].errors?.bpEmplrFlag &&
|
|
1827
|
+
this.form.controls[this.question.name].dirty &&
|
|
1828
|
+
this.form.controls[this.question.name].touched) {
|
|
1585
1829
|
var keepGoing = true;
|
|
1586
|
-
let message =
|
|
1830
|
+
let message = 'Confirm or Delete each employer(s) to continue';
|
|
1587
1831
|
this.form.controls[this.question.name].markAsDirty();
|
|
1588
1832
|
return message;
|
|
1589
1833
|
}
|
|
1590
|
-
if (this.question &&
|
|
1591
|
-
|
|
1834
|
+
if (this.question &&
|
|
1835
|
+
this.question.name &&
|
|
1836
|
+
this.form &&
|
|
1837
|
+
this.form.controls[this.question.name].errors
|
|
1838
|
+
?.simpleCheckBoxValidationFlag &&
|
|
1839
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1840
|
+
this.form.controls[this.question.name].touched)) {
|
|
1592
1841
|
var keepGoing = true;
|
|
1593
|
-
let message =
|
|
1842
|
+
let message = 'required';
|
|
1594
1843
|
this.form.controls[this.question.name].markAsDirty();
|
|
1595
1844
|
return message;
|
|
1596
1845
|
}
|
|
1597
|
-
if (this.question &&
|
|
1598
|
-
|
|
1846
|
+
if (this.question &&
|
|
1847
|
+
this.question.name &&
|
|
1848
|
+
this.form &&
|
|
1849
|
+
this.form.controls[this.question.name].errors?.cpatchvalidationFlag &&
|
|
1850
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1851
|
+
this.form.controls[this.question.name].touched)) {
|
|
1599
1852
|
var keepGoing = true;
|
|
1600
|
-
let message =
|
|
1853
|
+
let message = 'required';
|
|
1601
1854
|
this.form.controls[this.question.name].markAsDirty();
|
|
1602
1855
|
return message;
|
|
1603
1856
|
}
|
|
1604
|
-
if (this.question &&
|
|
1605
|
-
|
|
1857
|
+
if (this.question &&
|
|
1858
|
+
this.question.name &&
|
|
1859
|
+
this.form &&
|
|
1860
|
+
this.form.controls[this.question.name].errors?.uploadvalidationFlag &&
|
|
1861
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1862
|
+
this.form.controls[this.question.name].touched)) {
|
|
1606
1863
|
var keepGoing = true;
|
|
1607
|
-
let message =
|
|
1864
|
+
let message = 'required';
|
|
1608
1865
|
this.form.controls[this.question.name].markAsDirty();
|
|
1609
1866
|
return message;
|
|
1610
1867
|
}
|
|
1611
|
-
if (this.question &&
|
|
1612
|
-
|
|
1868
|
+
if (this.question &&
|
|
1869
|
+
this.question.name &&
|
|
1870
|
+
this.form &&
|
|
1871
|
+
this.form.controls[this.question.name].errors?.bpEmplrLengthFlag &&
|
|
1872
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1873
|
+
this.form.controls[this.question.name].touched)) {
|
|
1613
1874
|
var keepGoing = true;
|
|
1614
|
-
let message =
|
|
1875
|
+
let message = 'Add previous employment details';
|
|
1615
1876
|
this.form.controls[this.question.name].markAsDirty();
|
|
1616
1877
|
return message;
|
|
1617
1878
|
}
|
|
1618
|
-
if (this.question &&
|
|
1619
|
-
|
|
1879
|
+
if (this.question &&
|
|
1880
|
+
this.question.name &&
|
|
1881
|
+
this.form &&
|
|
1882
|
+
this.form.controls[this.question.name].errors?.addressValidationFlag &&
|
|
1883
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1884
|
+
this.form.controls[this.question.name].touched)) {
|
|
1620
1885
|
var keepGoing = true;
|
|
1621
1886
|
//let message: string = "Please provide valid address.";
|
|
1622
|
-
this.addresses.forEach(address => address.submit());
|
|
1887
|
+
this.addresses.forEach((address) => address.submit());
|
|
1623
1888
|
this.form.controls[this.question.name].markAsDirty();
|
|
1624
1889
|
return message;
|
|
1625
1890
|
}
|
|
1626
|
-
if (this.question &&
|
|
1627
|
-
|
|
1891
|
+
if (this.question &&
|
|
1892
|
+
this.question.name &&
|
|
1893
|
+
this.form &&
|
|
1894
|
+
this.form.controls[this.question.name].errors
|
|
1895
|
+
?.bankDetailsValidationFlag &&
|
|
1896
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1897
|
+
this.form.controls[this.question.name].touched)) {
|
|
1628
1898
|
var keepGoing = true;
|
|
1629
1899
|
//let message: string = "Please provide valid bank details.";
|
|
1630
1900
|
this.bankdtls?.submit();
|
|
1631
1901
|
this.form.controls[this.question.name].markAsDirty();
|
|
1632
1902
|
return message;
|
|
1633
1903
|
}
|
|
1634
|
-
if (this.question &&
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
this.
|
|
1639
|
-
this.form.controls[this.question.name].
|
|
1640
|
-
return message;
|
|
1641
|
-
}
|
|
1642
|
-
if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcEmployerValidation
|
|
1643
|
-
&& (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
|
|
1904
|
+
if (this.question &&
|
|
1905
|
+
this.question.name &&
|
|
1906
|
+
this.form &&
|
|
1907
|
+
this.form.controls[this.question.name].errors?.wcEmployerValidation &&
|
|
1908
|
+
this.form.controls[this.question.name].dirty &&
|
|
1909
|
+
this.form.controls[this.question.name].touched) {
|
|
1644
1910
|
var keepGoing = true;
|
|
1645
|
-
let message = "
|
|
1911
|
+
//let message: string = "Please provide valid bank details.";
|
|
1646
1912
|
this.wcEmployerGrid?.submit();
|
|
1647
1913
|
this.form.controls[this.question.name].markAsDirty();
|
|
1648
1914
|
return message;
|
|
1649
1915
|
}
|
|
1650
|
-
if (this.question &&
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
this.form.controls[this.question.name].
|
|
1655
|
-
|
|
1656
|
-
}
|
|
1657
|
-
if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcDependentRequired
|
|
1658
|
-
&& (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
|
|
1659
|
-
var keepGoing = true;
|
|
1660
|
-
let message = "Add dependent details";
|
|
1661
|
-
this.form.controls[this.question.name].markAsDirty();
|
|
1662
|
-
return message;
|
|
1663
|
-
}
|
|
1664
|
-
if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.wcEmployerPaymentInfoRequired
|
|
1665
|
-
&& (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
|
|
1666
|
-
var keepGoing = true;
|
|
1667
|
-
let message = "Add employer payment details";
|
|
1668
|
-
this.form.controls[this.question.name].markAsDirty();
|
|
1669
|
-
return message;
|
|
1670
|
-
}
|
|
1671
|
-
if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.remunerationPaymentInfoRequired
|
|
1672
|
-
&& (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
|
|
1673
|
-
var keepGoing = true;
|
|
1674
|
-
let message = "Add remuneration payment details";
|
|
1675
|
-
this.form.controls[this.question.name].markAsDirty();
|
|
1676
|
-
return message;
|
|
1677
|
-
}
|
|
1678
|
-
if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.grossEarningsInfoRequired
|
|
1679
|
-
&& (this.form.controls[this.question.name].dirty && this.form.controls[this.question.name].touched)) {
|
|
1680
|
-
var keepGoing = true;
|
|
1681
|
-
let message = "Add hours worked details";
|
|
1682
|
-
this.form.controls[this.question.name].markAsDirty();
|
|
1683
|
-
return message;
|
|
1684
|
-
}
|
|
1685
|
-
if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.notEquals
|
|
1686
|
-
&& (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
|
|
1916
|
+
if (this.question &&
|
|
1917
|
+
this.question.name &&
|
|
1918
|
+
this.form &&
|
|
1919
|
+
this.form.controls[this.question.name].errors?.notEquals &&
|
|
1920
|
+
(this.form.controls[this.question.name].dirty ||
|
|
1921
|
+
this.form.controls[this.question.name].touched)) {
|
|
1687
1922
|
let validatorList = this.question.validators;
|
|
1688
1923
|
var keepGoing = true;
|
|
1689
|
-
let message =
|
|
1690
|
-
validatorList.forEach(validator => {
|
|
1924
|
+
let message = '';
|
|
1925
|
+
validatorList.forEach((validator) => {
|
|
1691
1926
|
if (keepGoing) {
|
|
1692
1927
|
if (validator.type === 'customvalidation') {
|
|
1693
1928
|
message = validator.text;
|
|
@@ -1695,25 +1930,7 @@ export class DynamicFormQuestionComponent {
|
|
|
1695
1930
|
keepGoing = false;
|
|
1696
1931
|
}
|
|
1697
1932
|
else {
|
|
1698
|
-
message =
|
|
1699
|
-
}
|
|
1700
|
-
}
|
|
1701
|
-
});
|
|
1702
|
-
var keepGoing = true;
|
|
1703
|
-
this.form.controls[this.question.name].markAsDirty();
|
|
1704
|
-
return message;
|
|
1705
|
-
}
|
|
1706
|
-
if (this.question && this.question.name && this.form && this.form.controls[this.question.name].errors?.atLeastOne
|
|
1707
|
-
&& (this.form.controls[this.question.name].dirty || this.form.controls[this.question.name].touched)) {
|
|
1708
|
-
let validatorList = this.question.validators;
|
|
1709
|
-
var keepGoing = true;
|
|
1710
|
-
let message = "";
|
|
1711
|
-
validatorList.forEach(validator => {
|
|
1712
|
-
if (keepGoing) {
|
|
1713
|
-
if (validator.type === 'customvalidation') {
|
|
1714
|
-
message = validator.text;
|
|
1715
|
-
this.form.controls[this.question.name].markAsDirty();
|
|
1716
|
-
keepGoing = false;
|
|
1933
|
+
message = '';
|
|
1717
1934
|
}
|
|
1718
1935
|
}
|
|
1719
1936
|
});
|
|
@@ -1724,59 +1941,84 @@ export class DynamicFormQuestionComponent {
|
|
|
1724
1941
|
// this.logger.debug('message from panel outer-- ',message);
|
|
1725
1942
|
return message;
|
|
1726
1943
|
}
|
|
1727
|
-
onAcceptedOtp(agreed) {
|
|
1728
|
-
this.OtpCompleted = agreed;
|
|
1729
|
-
}
|
|
1730
1944
|
onAccepted(agreed) {
|
|
1731
|
-
//
|
|
1945
|
+
//console.log('onAccepted called',agreed);
|
|
1732
1946
|
this.legalAccepted = agreed;
|
|
1733
1947
|
}
|
|
1734
1948
|
onCompleteRequalify(requalifyData) {
|
|
1735
|
-
//
|
|
1949
|
+
//console.log("onCompleteRequalify", requalifyData);
|
|
1736
1950
|
}
|
|
1737
1951
|
onModelDisplay(modelDisplay) {
|
|
1738
|
-
//
|
|
1952
|
+
//console.log('modelDisplay called',modelDisplay);
|
|
1953
|
+
}
|
|
1954
|
+
generateOtpForNewUserCreation(event, form) {
|
|
1955
|
+
if (form.value.phone == null || form.value.verification == null) {
|
|
1956
|
+
this.isOtpModalEnabled = false;
|
|
1957
|
+
console.log("Fields are null.");
|
|
1958
|
+
return;
|
|
1959
|
+
}
|
|
1960
|
+
// Remove non-numeric characters
|
|
1961
|
+
let validPhone = form.value.phone.replace(/\D/g, '');
|
|
1962
|
+
// Count digits
|
|
1963
|
+
let phoneLength = validPhone.length;
|
|
1964
|
+
if (phoneLength != 10) {
|
|
1965
|
+
console.log("Phone number must be of length 10");
|
|
1966
|
+
return;
|
|
1967
|
+
}
|
|
1968
|
+
this.ls
|
|
1969
|
+
.generateOtpForNewUserCreation(form.value.phone, event.option.value)
|
|
1970
|
+
.subscribe({
|
|
1971
|
+
next: (res) => {
|
|
1972
|
+
console.log('Access code sent successfully.');
|
|
1973
|
+
this.isOtpModalEnabled = true;
|
|
1974
|
+
},
|
|
1975
|
+
error: (err) => {
|
|
1976
|
+
console.log('Could not generate the authentication OTP code.');
|
|
1977
|
+
console.error(err);
|
|
1978
|
+
},
|
|
1979
|
+
});
|
|
1739
1980
|
}
|
|
1740
1981
|
onRadioOptionClick(event, element) {
|
|
1982
|
+
if (element?.name === "diffmailaddress" && localStorage.getItem("flowKey") == '345') {
|
|
1983
|
+
localStorage.setItem('disableFieldsOnSignup', 'false');
|
|
1984
|
+
}
|
|
1741
1985
|
let query = event.query;
|
|
1742
1986
|
if (element.serviceType && element.serviceType === 'FETCH') {
|
|
1743
1987
|
let serviceCallType = element.serviceCallType;
|
|
1744
1988
|
let serviceName = element.serviceName;
|
|
1745
|
-
const options = event.option.value
|
|
1989
|
+
const options = event.option.value
|
|
1990
|
+
? { params: new HttpParams().set('selection', event.option.value) }
|
|
1991
|
+
: {};
|
|
1746
1992
|
if (serviceCallType === 'GET') {
|
|
1747
1993
|
this.util.showLoader();
|
|
1748
|
-
this.validationService
|
|
1749
|
-
.get(`${serviceName}`, options)
|
|
1750
|
-
.subscribe(res => {
|
|
1994
|
+
this.validationService.get(`${serviceName}`, options).subscribe((res) => {
|
|
1751
1995
|
let values = res;
|
|
1752
1996
|
if (values.success == true) {
|
|
1753
|
-
//
|
|
1754
|
-
//
|
|
1755
|
-
if (values.serviceCallValues &&
|
|
1756
|
-
|
|
1997
|
+
//console.log(values.serviceCallValues.serviceType);
|
|
1998
|
+
//console.log(values.serviceCallValues);
|
|
1999
|
+
if (values.serviceCallValues &&
|
|
2000
|
+
values.serviceCallValues.serviceType &&
|
|
2001
|
+
values.serviceCallValues.serviceType === 'FETCH') {
|
|
1757
2002
|
let serviceCallTypeInTrue = values.serviceCallValues.serviceCallType;
|
|
1758
2003
|
let serviceNameInTrue = values.serviceCallValues.serviceName;
|
|
1759
2004
|
if (serviceCallTypeInTrue === 'GET') {
|
|
1760
2005
|
this.util.showLoader();
|
|
1761
|
-
this.validationService
|
|
1762
|
-
.get(`${serviceNameInTrue}`)
|
|
1763
|
-
.subscribe(resp => {
|
|
2006
|
+
this.validationService.get(`${serviceNameInTrue}`).subscribe((resp) => {
|
|
1764
2007
|
let loaderModel = resp;
|
|
1765
|
-
|
|
2008
|
+
// console.log(" value from loader = ", loaderModel);
|
|
1766
2009
|
this.setFormValues(loaderModel.data);
|
|
1767
2010
|
this.util.hideLoader();
|
|
1768
|
-
}, errp => {
|
|
2011
|
+
}, (errp) => {
|
|
1769
2012
|
this.util.hideLoader();
|
|
1770
2013
|
this.form.controls[element.name]?.reset();
|
|
1771
2014
|
this.form.controls[element.name]?.updateValueAndValidity();
|
|
1772
2015
|
this.util.errorHandler(errp);
|
|
1773
2016
|
});
|
|
1774
2017
|
}
|
|
1775
|
-
;
|
|
1776
2018
|
}
|
|
1777
2019
|
this.util.hideLoader();
|
|
1778
2020
|
}
|
|
1779
|
-
}, err => {
|
|
2021
|
+
}, (err) => {
|
|
1780
2022
|
this.util.hideLoader();
|
|
1781
2023
|
this.form.controls[element.name]?.reset();
|
|
1782
2024
|
this.form.controls[element.name]?.updateValueAndValidity();
|
|
@@ -1786,8 +2028,7 @@ export class DynamicFormQuestionComponent {
|
|
|
1786
2028
|
}
|
|
1787
2029
|
}
|
|
1788
2030
|
setFormValues(data) {
|
|
1789
|
-
Object.keys(data)
|
|
1790
|
-
.forEach(key => {
|
|
2031
|
+
Object.keys(data).forEach((key) => {
|
|
1791
2032
|
let valueToSet = data[key];
|
|
1792
2033
|
this.setValueInFormControl(key, valueToSet);
|
|
1793
2034
|
});
|
|
@@ -1813,9 +2054,7 @@ export class DynamicFormQuestionComponent {
|
|
|
1813
2054
|
let serviceUpdateParam = element.serviceUpdateParam;
|
|
1814
2055
|
if (serviceCallType === 'GET') {
|
|
1815
2056
|
// this.logger.debug('Inside GET');
|
|
1816
|
-
this.validationService
|
|
1817
|
-
.get(`${serviceName}`)
|
|
1818
|
-
.subscribe(res => {
|
|
2057
|
+
this.validationService.get(`${serviceName}`).subscribe((res) => {
|
|
1819
2058
|
this.logger.debug('res--', res, ' - res[0].length -', res);
|
|
1820
2059
|
choices.push(res);
|
|
1821
2060
|
let query = event.query;
|
|
@@ -1829,7 +2068,7 @@ export class DynamicFormQuestionComponent {
|
|
|
1829
2068
|
}
|
|
1830
2069
|
this.filterResult = filtered;
|
|
1831
2070
|
this.logger.debug('this.filterResult123--', this.filterResult);
|
|
1832
|
-
}, err => {
|
|
2071
|
+
}, (err) => {
|
|
1833
2072
|
this.util.hideLoader();
|
|
1834
2073
|
this.util.errorHandler(err);
|
|
1835
2074
|
});
|
|
@@ -1846,8 +2085,7 @@ export class DynamicFormQuestionComponent {
|
|
|
1846
2085
|
this.filterResult = filtered;
|
|
1847
2086
|
}
|
|
1848
2087
|
}
|
|
1849
|
-
onSelect(event, cntrlName) {
|
|
1850
|
-
}
|
|
2088
|
+
onSelect(event, cntrlName) { }
|
|
1851
2089
|
//This shoud be similira to method present in panel
|
|
1852
2090
|
validate(element) {
|
|
1853
2091
|
if (!element.serviceName) {
|
|
@@ -1864,7 +2102,7 @@ export class DynamicFormQuestionComponent {
|
|
|
1864
2102
|
let allValuePresent = true;
|
|
1865
2103
|
// this.logger.debug('serviceCallParam',serviceCallParam);
|
|
1866
2104
|
if (serviceCallParam) {
|
|
1867
|
-
var splitted = serviceCallParam.split(
|
|
2105
|
+
var splitted = serviceCallParam.split(',');
|
|
1868
2106
|
let valueArr = [];
|
|
1869
2107
|
let paramArr = [];
|
|
1870
2108
|
for (let i = 0; i < splitted.length; i++) {
|
|
@@ -1886,11 +2124,10 @@ export class DynamicFormQuestionComponent {
|
|
|
1886
2124
|
if (allValuePresent) {
|
|
1887
2125
|
if (serviceCallType === 'POST') {
|
|
1888
2126
|
// this.logger.debug('Inside GET');
|
|
1889
|
-
this.validationService
|
|
1890
|
-
.post(`${serviceName}`, model)
|
|
1891
|
-
.subscribe(res => {
|
|
2127
|
+
this.validationService.post(`${serviceName}`, model).subscribe((res) => {
|
|
1892
2128
|
this.returnModel = res;
|
|
1893
|
-
if (this.returnModel.returnType &&
|
|
2129
|
+
if (this.returnModel.returnType &&
|
|
2130
|
+
this.returnModel.returnType === 'POPUP') {
|
|
1894
2131
|
this.displayPosition = true;
|
|
1895
2132
|
this.position = 'top';
|
|
1896
2133
|
this.popUpHeader = this.returnModel.popUpHeader;
|
|
@@ -1899,7 +2136,7 @@ export class DynamicFormQuestionComponent {
|
|
|
1899
2136
|
this.popUpNoActionLabel = this.returnModel.popUpNoButtonLabel;
|
|
1900
2137
|
}
|
|
1901
2138
|
this.logger.debug('this.returnModel ', this.returnModel);
|
|
1902
|
-
}, err => {
|
|
2139
|
+
}, (err) => {
|
|
1903
2140
|
this.util.hideLoader();
|
|
1904
2141
|
this.util.errorHandler(err);
|
|
1905
2142
|
});
|
|
@@ -1908,7 +2145,7 @@ export class DynamicFormQuestionComponent {
|
|
|
1908
2145
|
}
|
|
1909
2146
|
}
|
|
1910
2147
|
accept() {
|
|
1911
|
-
|
|
2148
|
+
console.log('accept called123', this.returnModel.identifier);
|
|
1912
2149
|
let paramArray = [];
|
|
1913
2150
|
if (this.returnModel.identifier) {
|
|
1914
2151
|
let modelArr = this.returnModel.identifier;
|
|
@@ -1917,10 +2154,13 @@ export class DynamicFormQuestionComponent {
|
|
|
1917
2154
|
}
|
|
1918
2155
|
const params = paramArray.reduce((arrObj, item) => Object.assign(arrObj, item, {}));
|
|
1919
2156
|
//this.util.openPageByContextRootWithData(this.getContextRoot(), this.returnModel.yesAction, params, this.navController)
|
|
1920
|
-
this.navController.navigateRoot(this.returnModel.yesAction, {
|
|
2157
|
+
this.navController.navigateRoot(this.returnModel.yesAction, {
|
|
2158
|
+
queryParams: params,
|
|
2159
|
+
});
|
|
1921
2160
|
return;
|
|
1922
2161
|
}
|
|
1923
|
-
if (this.returnModel.yesAction &&
|
|
2162
|
+
if (this.returnModel.yesAction &&
|
|
2163
|
+
this.returnModel.yesAction.substring(0, 4) != '/cp/') {
|
|
1924
2164
|
this.navController.navigateRoot([this.returnModel.yesAction]);
|
|
1925
2165
|
this.displayPosition = false;
|
|
1926
2166
|
return;
|
|
@@ -1931,7 +2171,8 @@ export class DynamicFormQuestionComponent {
|
|
|
1931
2171
|
this.navController.navigateRoot([this.returnModel.yesAction]);
|
|
1932
2172
|
}
|
|
1933
2173
|
reject() {
|
|
1934
|
-
if (this.returnModel.noAction &&
|
|
2174
|
+
if (this.returnModel.noAction &&
|
|
2175
|
+
this.returnModel.noAction.substring(0, 4) != '/cp/') {
|
|
1935
2176
|
this.navController.navigateRoot([this.returnModel.noAction]);
|
|
1936
2177
|
this.displayPosition = false;
|
|
1937
2178
|
}
|
|
@@ -1940,10 +2181,9 @@ export class DynamicFormQuestionComponent {
|
|
|
1940
2181
|
}
|
|
1941
2182
|
}
|
|
1942
2183
|
getContextRoot() {
|
|
1943
|
-
return window.location.pathname.substring(0, window.location.pathname.indexOf(
|
|
1944
|
-
}
|
|
1945
|
-
uploadFile(ev) {
|
|
2184
|
+
return window.location.pathname.substring(0, window.location.pathname.indexOf('/', 2));
|
|
1946
2185
|
}
|
|
2186
|
+
uploadFile(ev) { }
|
|
1947
2187
|
getTranslation(key, dynamicParam) {
|
|
1948
2188
|
if (!dynamicParam) {
|
|
1949
2189
|
return key;
|
|
@@ -1953,7 +2193,7 @@ export class DynamicFormQuestionComponent {
|
|
|
1953
2193
|
let params;
|
|
1954
2194
|
if (Array.isArray(dynamicParam)) {
|
|
1955
2195
|
params = dynamicParam;
|
|
1956
|
-
params.forEach(prm => {
|
|
2196
|
+
params.forEach((prm) => {
|
|
1957
2197
|
dynamicObj[prm.key] = prm.value;
|
|
1958
2198
|
});
|
|
1959
2199
|
}
|
|
@@ -1962,7 +2202,7 @@ export class DynamicFormQuestionComponent {
|
|
|
1962
2202
|
dynamicObj[param.key] = param.value;
|
|
1963
2203
|
}
|
|
1964
2204
|
this.translate.use('en');
|
|
1965
|
-
let translatedString =
|
|
2205
|
+
let translatedString = '';
|
|
1966
2206
|
this.translate.set(key, key);
|
|
1967
2207
|
translatedString = this.translate.instant(key, Object.assign(dynamicObj));
|
|
1968
2208
|
return translatedString;
|
|
@@ -1971,19 +2211,19 @@ export class DynamicFormQuestionComponent {
|
|
|
1971
2211
|
return object?.text ? object?.text : object;
|
|
1972
2212
|
}
|
|
1973
2213
|
unmask(event) {
|
|
1974
|
-
this.
|
|
2214
|
+
this.maskClass = false;
|
|
1975
2215
|
}
|
|
1976
2216
|
mask(event) {
|
|
1977
|
-
this.
|
|
2217
|
+
this.maskClass = true;
|
|
1978
2218
|
}
|
|
1979
2219
|
dateInput(event) {
|
|
1980
2220
|
let currentValue = event.srcElement.value;
|
|
1981
2221
|
if (currentValue) {
|
|
1982
2222
|
if (currentValue.length == 2 && currentValue.charAt(2) != '/') {
|
|
1983
|
-
event.target.value = currentValue +
|
|
2223
|
+
event.target.value = currentValue + '/';
|
|
1984
2224
|
}
|
|
1985
2225
|
if (currentValue.length == 5 && currentValue.charAt(5) != '/') {
|
|
1986
|
-
event.target.value = currentValue +
|
|
2226
|
+
event.target.value = currentValue + '/';
|
|
1987
2227
|
}
|
|
1988
2228
|
}
|
|
1989
2229
|
}
|
|
@@ -1998,7 +2238,10 @@ export class DynamicFormQuestionComponent {
|
|
|
1998
2238
|
this.form.updateValueAndValidity();
|
|
1999
2239
|
this.dynamicParam = this.dynamicParam ? this.dynamicParam : [];
|
|
2000
2240
|
if (Array.isArray(this.dynamicParam)) {
|
|
2001
|
-
this.dynamicParam.push({
|
|
2241
|
+
this.dynamicParam.push({
|
|
2242
|
+
key: this.question.name,
|
|
2243
|
+
value: currentValue,
|
|
2244
|
+
});
|
|
2002
2245
|
}
|
|
2003
2246
|
else {
|
|
2004
2247
|
this.dynamicParam[this.question.name] = currentValue;
|
|
@@ -2018,11 +2261,16 @@ export class DynamicFormQuestionComponent {
|
|
|
2018
2261
|
let compData = JSON.parse(this.question.componentData);
|
|
2019
2262
|
let addressFc = this.form.get(compData.addressFormControlName);
|
|
2020
2263
|
let empIdFc = this.form.get(compData.employerIdFormControlName);
|
|
2021
|
-
empIdFc.setValue(employer.employerId ? employer.employerId :
|
|
2264
|
+
empIdFc.setValue(employer.employerId ? employer.employerId : '-1');
|
|
2022
2265
|
addressFc.setValue({
|
|
2023
|
-
country: employer.country,
|
|
2024
|
-
|
|
2025
|
-
|
|
2266
|
+
country: employer.country,
|
|
2267
|
+
city: employer.city,
|
|
2268
|
+
zip: employer.zip,
|
|
2269
|
+
streetAddress: employer.addressDisplayVal,
|
|
2270
|
+
state: employer.state,
|
|
2271
|
+
optionalAddress: null,
|
|
2272
|
+
county: null,
|
|
2273
|
+
town: null,
|
|
2026
2274
|
});
|
|
2027
2275
|
}
|
|
2028
2276
|
}
|
|
@@ -2031,11 +2279,16 @@ export class DynamicFormQuestionComponent {
|
|
|
2031
2279
|
let compData = JSON.parse(this.question.componentData);
|
|
2032
2280
|
let addressFc = this.form.get(compData.addressFormControlName);
|
|
2033
2281
|
let empIdFc = this.form.get(compData.employerIdFormControlName);
|
|
2034
|
-
empIdFc.setValue(
|
|
2282
|
+
empIdFc.setValue('-1');
|
|
2035
2283
|
addressFc.setValue({
|
|
2036
|
-
country: null,
|
|
2037
|
-
|
|
2038
|
-
|
|
2284
|
+
country: null,
|
|
2285
|
+
city: null,
|
|
2286
|
+
zip: null,
|
|
2287
|
+
streetAddress: null,
|
|
2288
|
+
state: null,
|
|
2289
|
+
optionalAddress: null,
|
|
2290
|
+
county: null,
|
|
2291
|
+
town: null,
|
|
2039
2292
|
});
|
|
2040
2293
|
}
|
|
2041
2294
|
}
|
|
@@ -2050,14 +2303,21 @@ export class DynamicFormQuestionComponent {
|
|
|
2050
2303
|
if (this.question.type == 'dropdown') {
|
|
2051
2304
|
const choice = this.question.defaultValue;
|
|
2052
2305
|
var jsonObject = JSON.parse(choice);
|
|
2053
|
-
this.setFormControlValue(this.question.name, this.question.choices.filter(c => c.value == jsonObject.value)[0]);
|
|
2306
|
+
this.setFormControlValue(this.question.name, this.question.choices.filter((c) => c.value == jsonObject.value)[0]);
|
|
2054
2307
|
}
|
|
2055
2308
|
else {
|
|
2056
2309
|
this.setFormControlValue(this.question.name, value);
|
|
2057
2310
|
}
|
|
2058
2311
|
}
|
|
2059
2312
|
}
|
|
2060
|
-
|
|
2313
|
+
modifyCalendarAttributes() {
|
|
2314
|
+
const inputElement = this.pCalendar.nativeElement.querySelectorAll('p-calendar [aria-controls]');
|
|
2315
|
+
inputElement.forEach((element) => {
|
|
2316
|
+
this.renderer.setAttribute(element, 'aria-controls', this.question.name);
|
|
2317
|
+
this.renderer.setAttribute(element, 'aria-expanded', 'false');
|
|
2318
|
+
});
|
|
2319
|
+
}
|
|
2320
|
+
static { this.ɵfac = function DynamicFormQuestionComponent_Factory(t) { return new (t || DynamicFormQuestionComponent)(i0.ɵɵdirectiveInject(i1.QuestionControlService), i0.ɵɵdirectiveInject(i2.QuestionService), i0.ɵɵdirectiveInject(i3.TranslateService), i0.ɵɵdirectiveInject(i4.ValidationService), i0.ɵɵdirectiveInject(i5.UtilService), i0.ɵɵdirectiveInject(i6.NavController), i0.ɵɵdirectiveInject(i7.LoggerService), i0.ɵɵdirectiveInject(i8.ClaimantService), i0.ɵɵdirectiveInject(i9.WeeklyCertServiceV2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i10.LoginService)); }; }
|
|
2061
2321
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DynamicFormQuestionComponent, selectors: [["app-question"]], viewQuery: function DynamicFormQuestionComponent_Query(rf, ctx) { if (rf & 1) {
|
|
2062
2322
|
i0.ɵɵviewQuery(_c0, 5);
|
|
2063
2323
|
i0.ɵɵviewQuery(_c1, 5);
|
|
@@ -2067,13 +2327,13 @@ export class DynamicFormQuestionComponent {
|
|
|
2067
2327
|
let _t;
|
|
2068
2328
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.bankdtls = _t.first);
|
|
2069
2329
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.wcEmployerGrid = _t.first);
|
|
2070
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.
|
|
2330
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.pCalendar = _t.first);
|
|
2071
2331
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.addresses = _t);
|
|
2072
|
-
} }, inputs: { question: "question", form: "form", indexNumber: "indexNumber", forScreenQuestionnaire: "forScreenQuestionnaire", dynamicParam: "dynamicParam", potentialIssueId: "potentialIssueId" }, outputs: { onDynamicParamUpdate: "onDynamicParamUpdate" }, decls: 28, vars: 29, consts: [[3, "formGroup", "id"], ["appendTo", "body", "closeOnEscape", "false", 3, "visible", "position", "modal", "breakpoints", "style", "baseZIndex", "draggable", "resizable", "visibleChange", 4, "ngIf"], ["class", "form-label", 3, "ngStyle", 4, "ngIf"], [4, "ngIf"], ["style", "display: flex;", 4, "ngIf"], [3, "ngSwitch"], [4, "ngSwitchCase"], ["class", "responsive", 4, "ngSwitchCase"], [3, "ngStyle", 4, "ngIf"], ["appendTo", "body", "closeOnEscape", "false", 3, "visible", "position", "modal", "breakpoints", "baseZIndex", "draggable", "resizable", "visibleChange"], [1, "heading", "ion-padding-left"], [
|
|
2332
|
+
} }, inputs: { question: "question", form: "form", indexNumber: "indexNumber", forScreenQuestionnaire: "forScreenQuestionnaire", dynamicParam: "dynamicParam", potentialIssueId: "potentialIssueId" }, outputs: { onDynamicParamUpdate: "onDynamicParamUpdate" }, decls: 28, vars: 29, consts: [[3, "formGroup", "id"], ["appendTo", "body", "closeOnEscape", "false", 3, "visible", "position", "modal", "breakpoints", "style", "baseZIndex", "draggable", "resizable", "visibleChange", 4, "ngIf"], ["class", "form-label", 3, "ngStyle", 4, "ngIf"], [4, "ngIf"], ["style", "display: flex;", 4, "ngIf"], [3, "ngSwitch"], [4, "ngSwitchCase"], ["class", "responsive", 4, "ngSwitchCase"], [3, "ngStyle", 4, "ngIf"], ["appendTo", "body", "closeOnEscape", "false", 3, "visible", "position", "modal", "breakpoints", "baseZIndex", "draggable", "resizable", "visibleChange"], [1, "heading", "ion-padding-left"], ["pTemplate", "footer"], ["shape", "round", "size", "small", "type", "submit", "fill", "outline", 3, "click", 4, "ngIf"], ["shape", "round", "size", "small", "type", "submit", "fill", "solid", 3, "click", 4, "ngIf"], ["shape", "round", "size", "small", "type", "submit", "fill", "outline", 3, "click"], ["shape", "round", "size", "small", "type", "submit", "fill", "solid", 3, "click"], [1, "form-label", 3, "ngStyle"], [3, "innerHtml"], [3, "formControlName", "form", "dynamicParam", "modelDisplay", 4, "ngIf"], [3, "componentData", "question", "form", "accepted", 4, "ngIf"], [3, "formControlName", 4, "ngIf"], [3, "formControlName", "fromPopup", "countyRequired", "inputId", 4, "ngIf"], [3, "formControlName", "componentData", "form", 4, "ngIf"], [3, "dynamicParam", "formControlName", 4, "ngIf"], ["empType", "REG", 3, "formControlName", "onFound", "onEmpty", 4, "ngIf"], [3, "potentialIssueId", "formControlName", 4, "ngIf"], [3, "isRequired", "formControlName", "text", "uri", "externalUrl", 4, "ngIf"], [3, "isRequired", "formControlName", "inputId", 4, "ngIf"], [3, "control", 4, "ngIf"], [3, "formControlName", "form", "dynamicParam", "modelDisplay"], [3, "componentData", "question", "form", "accepted"], [3, "formControlName"], [3, "formControlName", "fromPopup", "countyRequired", "inputId"], ["address", ""], ["bankdtls", ""], [3, "formControlName", "componentData", "form"], [3, "dynamicParam", "formControlName"], ["wcEmployerGrid", ""], ["empType", "REG", 3, "formControlName", "onFound", "onEmpty"], [3, "potentialIssueId", "formControlName"], [3, "isRequired", "formControlName", "text", "uri", "externalUrl"], [3, "isRequired", "formControlName", "inputId"], [3, "control"], ["jobTitle", ""], [2, "display", "flex"], [1, "heading", 2, "color", "var(--ion-color-medium-gray)", "padding-top", "20px", 3, "innerHTML"], ["style", "padding-left: 8px; padding-top:13px", 4, "ngIf"], [2, "padding-left", "8px", "padding-top", "13px"], [3, "overlayText"], [1, "container", 2, "display", "flex"], ["style", "flex-grow: 1;", "style", "padding-left: 8px; padding-top:3px", 4, "ngIf"], [3, "ngStyle"], ["pCalendar", ""], ["yearRange", "1901:2099", "dateFormat", "mm/dd/yy", "appendTo", "body", "dataType", "string", "placeholder", "mm/dd/yyyy", 3, "formControlName", "inputId", "monthNavigator", "yearNavigator", "showIcon", "minDate", "maxDate", "showOnFocus", "iconAriaLabel", "onBlur", "onSelect", "onInput"], ["yearRange", "1901:2050", "dateFormat", "mm/dd/yy", "appendTo", "body", "dataType", "string", "placeholder", "mm/dd/yyyy", 3, "formControlName", "inputId", "monthNavigator", "yearNavigator", "showIcon", "minDate", "maxDate", "showOnFocus", "iconAriaLabel", "onBlur", "onSelect", "onInput", "onClose"], ["autocomplete", "off", "mask", "999-99-9999", "placeholder", "999-99-9999", 3, "inputId", "formControlName", "onComplete", "onFocus", "onBlur"], ["autocomplete", "off", "mask", "99-99999-9-99", "placeholder", "99-99999-9-99", 3, "inputId", "formControlName", "value", "onComplete"], ["mode", "decimal", "locale", "en-US", 3, "inputId", "formControlName", "minFractionDigits", "ariaLabel"], ["type", "text", "placeholder", "Optional", "pInputText", "", 3, "maxLength", "id", "formControlName", 4, "ngIf"], ["type", "text", "placeholder", "Optional", "pInputText", "", 3, "id", "formControlName", 4, "ngIf"], ["type", "text", "pInputText", "", "placeholder", "Optional", 3, "id", "formControlName", 4, "ngIf"], ["type", "text", "placeholder", "Optional", "pInputText", "", 3, "maxLength", "id", "formControlName"], ["type", "text", "placeholder", "Optional", "pInputText", "", 3, "id", "formControlName"], ["type", "text", "pInputText", "", "placeholder", "Optional", 3, "id", "formControlName"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "placeholder", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "placeholder", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "placeholder"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "placeholder"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "disabled", "autocomplete", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "disabled", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "disabled", 4, "ngIf"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "disabled", "autocomplete"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "disabled"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName", "disabled"], ["type", "text", "pInputText", "", 3, "maxLength", "id", "formControlName"], ["autocomplete", "off", "mask", "999-999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur", 4, "ngIf"], ["autocomplete", "off", "mask", "999-999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur"], ["autocomplete", "off", "mask", "999 999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur", 4, "ngIf"], ["autocomplete", "off", "mask", "999 999-9999", 3, "inputId", "formControlName", "placeholder", "onBlur"], ["weakLabel", "Weak password", "mediumLabel", "Weak password", "strongLabel", "Strong password", "strongRegex", "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})(?=.*[_@*$!#.])", 3, "inputId", "formControlName", "toggleMask", "maxLength", "ariaLabel"], [1, "mt-1", 2, "font-size", "small"], [2, "line-height", "1.25"], [2, "margin-left", "-25px", "font-size", "small"], [3, "allowedFileType", "formControlName", "maxSizeInMB", "multiple", "noOfFilesToUpload"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "disabled", "placeholder", "blur"], ["type", "text", "pInputText", "", 3, "id", "formControlName", "blur"], [2, "padding-left", "8px", "padding-top", "3px"], ["autoResize", "true", 3, "id", "formControlName", "maxLength", "rows", "cols", "placeholder"], ["styleClass", "p-d-block", 4, "ngIf"], ["styleClass", "p-d-block"], ["autoResize", "true", 3, "id", "formControlName", "rows", "cols", "placeholder"], ["appendTo", "body", "field", "text", "minLength", "1", 3, "formControlName", "suggestions", "dropdown", "forceSelection", "completeOnFocus", "completeMethod", "onSelect", 4, "ngIf"], ["optionLabel", "text", "appendTo", "body", 3, "options", "formControlName", "autoDisplayFirst", "inputId", "ariaLabel", "onChange", "onClick"], ["appendTo", "body", "field", "text", "minLength", "1", 3, "formControlName", "suggestions", "dropdown", "forceSelection", "completeOnFocus", "completeMethod", "onSelect"], ["pTemplate", "item"], [1, "container"], ["class", "shared-row", 4, "ngIf"], [1, "shared-row"], ["unselectable", "true", "optionLabel", "text", "optionValue", "value", 3, "options", "formControlName", "onOptionClick"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControlName", "onOptionClick"], [3, "display", "returningUser", "form", "formChange", "success", 4, "ngIf"], [3, "display", "returningUser", "form", "formChange", "success"], ["mode", "decimal", 3, "formControlName", "inputId", "useGrouping", "min", "max", "size", "maxlength", "ariaLabel", "placeholder"], ["mode", "decimal", 3, "formControlName", "inputId", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "size", "maxlength", "ariaLabel", "placeholder"], ["mode", "currency", "currency", "USD", 3, "formControlName", "inputId", "useGrouping", "minFractionDigits", "maxFractionDigits", "min", "max", "size", "maxlength", "ariaLabel", "placeholder"], [1, "formgroup-inline", 3, "ngStyle"], ["styleClass", "app-p-checkbox", 3, "name", "value", "label", "formControl", "inputId", 4, "ngFor", "ngForOf"], ["styleClass", "app-p-checkbox", 3, "name", "value", "label", "formControl", "inputId"], ["unselectable", "true", "optionLabel", "text", "optionValue", "value", 3, "options", "formControlName", "multiple"], [1, "field-checkbox"], ["binary", "true", "inputId", "binary", 3, "formControlName"], ["for", "binary"], ["style", "flex-grow: 1;", "style", "padding-left: 8px; padding-top: 3px", 4, "ngIf"], ["type", "hidden", 3, "formControlName"], ["style", "flex-grow: 1;", "style", "padding-left: 2px", 4, "ngIf"], [2, "padding-left", "2px"], [3, "displayText", "overlayText", "displayAsLabel"], [3, "displayText", "formControlName", "overlayText", "labelWithLink"], [3, "displayText", "formControlName", "labelWithPopup", "labelWithLink"], [1, "responsive"], [4, "ngFor", "ngForOf"], ["class", "col-fit-content", 3, "sizeXl", "sizeLg", "sizeMd", "offsetMd", 4, "ngIf"], [1, "col-fit-content", 3, "sizeXl", "sizeLg", "sizeMd", "offsetMd"], [3, "question", "form", "forScreenQuestionnaire"], [3, "sizeXl", "sizeLg", "sizeMd", "offsetMd", 4, "ngIf"], [3, "sizeXl", "sizeLg", "sizeMd", "offsetMd"], ["class", "p-error", 4, "ngIf"], [1, "p-error"]], template: function DynamicFormQuestionComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2073
2333
|
i0.ɵɵelementStart(0, "div", 0);
|
|
2074
|
-
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_p_dialog_1_Template,
|
|
2334
|
+
i0.ɵɵtemplate(1, DynamicFormQuestionComponent_p_dialog_1_Template, 6, 14, "p-dialog", 1)(2, DynamicFormQuestionComponent_div_2_Template, 2, 2, "div", 2)(3, DynamicFormQuestionComponent_div_3_Template, 5, 8, "div", 2)(4, DynamicFormQuestionComponent_div_4_Template, 5, 8, "div", 2)(5, DynamicFormQuestionComponent_div_5_Template, 5, 8, "div", 2)(6, DynamicFormQuestionComponent_div_6_Template, 17, 16, "div", 3)(7, DynamicFormQuestionComponent_div_7_Template, 4, 7, "div", 2)(8, DynamicFormQuestionComponent_div_8_Template, 5, 7, "div", 4);
|
|
2075
2335
|
i0.ɵɵelementStart(9, "div", 5);
|
|
2076
|
-
i0.ɵɵtemplate(10, DynamicFormQuestionComponent_ng_container_10_Template,
|
|
2336
|
+
i0.ɵɵtemplate(10, DynamicFormQuestionComponent_ng_container_10_Template, 22, 19, "ng-container", 6)(11, DynamicFormQuestionComponent_ng_container_11_Template, 3, 2, "ng-container", 6)(12, DynamicFormQuestionComponent_ng_container_12_Template, 6, 8, "ng-container", 6)(13, DynamicFormQuestionComponent_ng_container_13_Template, 4, 2, "ng-container", 6)(14, DynamicFormQuestionComponent_ng_container_14_Template, 5, 11, "ng-container", 6)(15, DynamicFormQuestionComponent_ng_container_15_Template, 5, 13, "ng-container", 6)(16, DynamicFormQuestionComponent_ng_container_16_Template, 5, 13, "ng-container", 6)(17, DynamicFormQuestionComponent_ng_container_17_Template, 5, 3, "ng-container", 6)(18, DynamicFormQuestionComponent_ng_container_18_Template, 5, 3, "ng-container", 6)(19, DynamicFormQuestionComponent_ng_container_19_Template, 5, 6, "ng-container", 6)(20, DynamicFormQuestionComponent_ng_container_20_Template, 7, 4, "ng-container", 6)(21, DynamicFormQuestionComponent_ng_container_21_Template, 6, 4, "ng-container", 6)(22, DynamicFormQuestionComponent_ng_container_22_Template, 5, 2, "ng-container", 6)(23, DynamicFormQuestionComponent_ng_container_23_Template, 4, 6, "ng-container", 6)(24, DynamicFormQuestionComponent_ng_container_24_Template, 4, 7, "ng-container", 6)(25, DynamicFormQuestionComponent_ng_container_25_Template, 4, 7, "ng-container", 6)(26, DynamicFormQuestionComponent_ng_container_26_Template, 8, 2, "ng-container", 7);
|
|
2077
2337
|
i0.ɵɵelementEnd();
|
|
2078
2338
|
i0.ɵɵtemplate(27, DynamicFormQuestionComponent_div_27_Template, 2, 2, "div", 8);
|
|
2079
2339
|
i0.ɵɵelementEnd();
|
|
@@ -2133,12 +2393,12 @@ export class DynamicFormQuestionComponent {
|
|
|
2133
2393
|
i0.ɵɵproperty("ngSwitchCase", "panel");
|
|
2134
2394
|
i0.ɵɵadvance(1);
|
|
2135
2395
|
i0.ɵɵproperty("ngIf", ctx.question.type != "panel");
|
|
2136
|
-
} }, dependencies: [i6.IonButton, i6.IonCol, i6.IonRow,
|
|
2396
|
+
} }, dependencies: [i6.IonButton, i6.IonCol, i6.IonRow, i11.NgForOf, i11.NgIf, i11.NgStyle, i11.NgSwitch, i11.NgSwitchCase, i12.PrimeTemplate, i13.DefaultValueAccessor, i13.NgControlStatus, i13.NgControlStatusGroup, i13.MaxLengthValidator, i13.FormControlDirective, i13.FormGroupDirective, i13.FormControlName, i14.AutoComplete, i15.Dialog, i16.Password, i17.InputText, i18.InputMask, i19.Divider, i20.Calendar, i21.Checkbox, i22.SelectButton, i23.InputNumber, i24.CaptchaComponent, i25.FileUploaderComponent, DynamicFormQuestionComponent, i26.OverlayInfoComponent, i27.EmployerGridComponent, i28.LegalDisclaimarComponent, i29.MoneyExpectComponent, i30.SearchEmployerComponent, i31.AddressComponent, i32.BankDetailsComponent, i33.Mfa2Component, i34.DependentGridComponent, i35.WeeklyCertEmployerGridComponent, i36.AddParticipantComponent, i37.Dropdown, i38.RequalifyLiftPreviousIssuesComponent, i39.AddPaymentComponent, i40.LinkComponent, i41.SignSsnComponent, i42.JobTitleComponent, i43.DynamicTranslatePipe, i44.TrustHtmlPipe], styles: [".form-label[_ngcontent-%COMP%]{display:inline-block;margin-bottom:6px;margin-top:16px}.p-checkbox-label[_ngcontent-%COMP%]{line-height:1.5;text-align:justify;margin-left:1rem}.p-checkbox[_ngcontent-%COMP%]{padding:6px 0;width:-webkit-fill-available}.p-dropdown[_ngcontent-%COMP%]{display:inline-flex;min-width:185px}.p-calendar[_ngcontent-%COMP%] .p-inputtext[_ngcontent-%COMP%]{max-width:134px}[_nghost-%COMP%] .p-dropdown{display:inline-flex;min-width:185px}[_nghost-%COMP%] .p-calendar .p-inputtext{max-width:134px!important}.col-fit-content[_ngcontent-%COMP%]{max-width:-moz-fit-content;max-width:fit-content}.hide-content[_ngcontent-%COMP%]{position:relative;display:inline-block}.hide-content[_ngcontent-%COMP%]:after{content:\"***-**\";position:absolute;left:8px;bottom:6px;background-color:#fff;pointer-events:none}.shared-row[_ngcontent-%COMP%]{display:flex;column-gap:15px}"], data: { animation: [rowExpansionTrigger] } }); }
|
|
2137
2397
|
}
|
|
2138
2398
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DynamicFormQuestionComponent, [{
|
|
2139
2399
|
type: Component,
|
|
2140
|
-
args: [{ selector: 'app-question', changeDetection: ChangeDetectionStrategy.Default, animations: [rowExpansionTrigger], template: "<div [formGroup]=\"form\" [id]=\"'question-div-' + question.name\">\r\n <p-dialog *ngIf=\"displayPosition\" [(visible)]=\"displayPosition\" [position]=\"position\"\r\n [modal]=\"true\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n [baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" appendTo=\"body\" closeOnEscape=\"false\" [attr.aria-label]=\"question.title\">\r\n\r\n <h4 class=\"heading ion-padding-left\">\r\n {{popUpHeader}}\r\n </h4>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(popUpText)\"></div>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" *ngIf=\"popUpNoActionLabel\" size=\"small\" type=\"submit\" fill=\"outline\" (click)=\"reject()\">\r\n {{popUpNoActionLabel}}\r\n </ion-button>\r\n\r\n <ion-button shape=\"round\" *ngIf=\"popUpYesActionLabel\" size=\"small\" type=\"submit\" fill=\"solid\" (click)=\"accept()\">\r\n {{popUpYesActionLabel}}\r\n </ion-button>\r\n\r\n </ng-template>\r\n </p-dialog>\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"!forScreenQuestionnaire\" class=\"form-label\">\r\n <label [attr.for]=\"question.name\" *ngIf=\"question.indent===1 && question.type!='html' && question.type!='hidden' && question.type!='label'\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && question.indent===1 && question.type!='html' && question.type!='hidden' && question.description && question.type!='simplecheckbox' && question.type!='label' && question.type!='label-with-overlay'\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && question.customTag && (question.customTag!='component' || (question.customTag=='component' && showLabelForCustomComponent())) && question.indent===1 && question.type!='html' && question.type!='hidden' && !question.description && question.type!='label' && question.type!='simplecheckbox'\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && !question.customTag && question.indent===1 && question.type!='html' && question.type!='hidden' && !question.description && question.type!='simplecheckbox' && question.type!='label' && question.type!='label-with-overlay'\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </div>\r\n\r\n\r\n\r\n <div *ngIf=\"question.customTag && question.customTag==='component' && question.type!='html' && !question.description\">\r\n <app-employer-grid [formControlName]=\"question.name\" [form]=\"form\" [dynamicParam]=\"dynamicParam\"\r\n *ngIf=\"question.componentName==='app-employer-grid'\" (modelDisplay)=\"onModelDisplay($event)\"></app-employer-grid>\r\n <app-legal-disclaimar *ngIf=\"question.componentName==='app-legal-disclaimar'\"\r\n [componentData]=\"question.componentData\" (accepted)=\"onAccepted($event)\" [question]=\"question\" [form]=\"form\">\r\n </app-legal-disclaimar>\r\n <money-expect *ngIf=\"question.componentName==='money-expect'\" [componentData]=\"question.componentData\" ></money-expect>\r\n <app-captcha [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-captcha'\"></app-captcha>\r\n\r\n <app-file-uploader [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-file-uploader'\">\r\n </app-file-uploader>\r\n <app-address [formControlName]=\"question.name\" [fromPopup]=\"false\" [countyRequired]=\"question.countyRequired\"\r\n *ngIf=\"question.componentName==='app-address'\" #address [inputId]=\"question.name\"> </app-address>\r\n \r\n <app-job-title [formControlName]=\"question.name\" [isRequired]=\"question.isRequired\"\r\n *ngIf=\"question.componentName==='app-job-title'\" > </app-job-title> \r\n \r\n <app-bank-details [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-bank-details'\" #bankdtls>\r\n </app-bank-details>\r\n <app-requalify-lift-previous-issues *ngIf=\"question.componentName==='app-requalify-lift-previous-issues'\"\r\n [formControlName]=\"question.name\" [componentData]=\"question.componentData\" [form]=\"form\" >\r\n </app-requalify-lift-previous-issues> \r\n <app-dependent-grid [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-dependent-grid'\"></app-dependent-grid>\r\n <app-weekly-cert-employer-grid #wcEmployerGrid [dynamicParam]=\"dynamicParam\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-weekly-cert-employer-grid'\"></app-weekly-cert-employer-grid>\r\n <app-search-employer [formControlName]=\"question.name\" empType=\"REG\" (onFound)=\"setEmployer($event)\" \r\n (onEmpty)=\"resetEmployer()\" *ngIf=\"question.componentName==='app-search-employer'\"></app-search-employer>\r\n <app-add-participant [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-add-participant'\"> </app-add-participant>\r\n <app-add-payment [potentialIssueId]=\"potentialIssueId\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-add-payment'\"></app-add-payment>\r\n <app-link [isRequired]=\"question.isRequired\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-link'\" [text]=\"linkComponentData?.text\" [uri]=\"linkComponentData?.uri\" [externalUrl]=\"linkComponentData?.externalUrl\"></app-link>\r\n <app-sign-ssn [isRequired]=\"question.isRequired\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-sign-ssn'\" [inputId]=\"question.name\"></app-sign-ssn>\r\n <app-employer-pay-grid [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-employer-pay-grid'\"></app-employer-pay-grid>\r\n <app-sms [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-sms'\" [question]=\"question\" [form]=\"form\"\r\n (accepted)=\"onAcceptedOtp($event)\"></app-sms>\r\n <app-farm-usage [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-farm-usage'\"></app-farm-usage>\r\n <app-wage-grid [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-wage-grid'\"></app-wage-grid>\r\n <app-gross-earnings [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-gross-earnings'\"></app-gross-earnings>\r\n <app-scrollable-text [componentData]=\"question.componentData\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-scrollable-text'\"></app-scrollable-text>\r\n <app-employer-info [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-employer-info'\"></app-employer-info>\r\n <app-idme [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-idme'\"></app-idme>\r\n </div>\r\n\r\n <div *ngIf=\"question.indent!=1 && question.type!='html' && question.type!='label' && question.type!='hidden'\" class=\"form-label\" [ngStyle]=\"setStyle(question.indent)\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </div>\r\n\r\n <div *ngIf=\"question.type==='html'\" style=\"display: flex;\">\r\n <div [innerHTML]=\"question.html | dynamicTranslate:dynamicParam | trustHtml\"\r\n style=\"color:var(--ion-color-medium-gray); padding-top: 20px;\" class=\"heading\">\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:13px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n \r\n <div [ngSwitch]=\"question.type\">\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div *ngIf=\"question.inputType && question.inputType==='date'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-calendar [formControlName]=\"question.name\" [inputId]=\"question.name\" [monthNavigator]=\"true\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2099\" [showIcon]=\"true\" [minDate]=\"showMinDate ? minDate : null\"\r\n [maxDate]=\"showMaxDate ? maxDate : null\" dateFormat=\"mm/dd/yy\" appendTo=\"body\" dataType=\"string\"\r\n (onBlur)=\"validate(question)\" (onSelect)=\"validate(question)\" placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" \r\n (onInput)=\"dateInput($event)\" [iconAriaLabel]=\"question.title\">\r\n </p-calendar>\r\n </div>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='ssn'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask mask=\"999-99-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\"\r\n placeholder=\"999-99-9999\" (onComplete)=\"validate(question)\" (onFocus)=\"unmask($event)\" (onBlur)=\"mask($event)\" [type]=\"type\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='ean'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask mask=\"99-99999-9-99\" [inputId]=\"question.name\" [formControlName]=\"question.name\"\r\n placeholder=\"99-99999-9-99\" [value]=\"81-00586-0-01\" (onComplete)=\"validate(question)\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='dueamt'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber [inputId]=\"question.name\" [formControlName]=\"question.name\" mode=\"decimal\" locale=\"en-US\"\r\n [minFractionDigits]=\"2\" [ariaLabel]=\"question.title\"></p-inputNumber>\r\n </div>\r\n\r\n\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && (!question.customTag || question.customTag==='Optional') && !question.isRequired\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\"\r\n [maxLength]=\"question.maxLength\" placeholder=\"Optional\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" placeholder=\"Optional\"\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n placeholder=\"Optional\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" />\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" placeholder=\"Optional\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n\r\n <!--User Name-->\r\n <div *ngIf=\"question.inputType && question.inputType==='text' && !question.customTag && question.isRequired\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\" \r\n [maxLength]=\"question.maxLength\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" \r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" [id]=\"question.name\"\r\n pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n\r\n <div *ngIf=\"!question.inputType && question.customTag && !question.customTag.includes('phone')\"\r\n [ngStyle]=\"{'padding-left.px': question.indent*10}\" [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"question.customTag && question.customTag.includes('phone')\">\r\n <p-inputMask mask=\"999-999-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\" \r\n [placeholder]=\"question.isRequired ? '999-999-9999' : 'Optional'\"\r\n *ngIf=\"question.inputType && question.inputType==='text'\" (onBlur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div *ngIf=\"question.customTag && question.customTag.includes('password')\">\r\n <p-password [inputId]=\"question.name\" [formControlName]=\"question.name\" [toggleMask]=\"true\" [maxLength]=\"question.maxLength\" weakLabel=\"Weak password\" \r\n mediumLabel=\"Weak password\" strongLabel=\"Strong password\" strongRegex=\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[_@*$!#.]+.*[_@*$!#.])(?=.{14,})\" [ariaLabel]=\"question.title\">\r\n \r\n <ng-template pTemplate=\"footer\">\r\n <p-divider></p-divider>\r\n <p class=\"mt-1\" style=\"font-size: small;\">Password must include at least</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">1 lowercase letter</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">1 uppercase letter</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">1 number</li>\r\n <li style=\"margin-left: -25px; font-size: small;\" *ngIf=\"!isSameSymbolPolicyForClaimantAndAgency\">1 of the following characters <b>_ @ * $ ! # .</b></li>\r\n <li style=\"margin-left: -25px; font-size: small;\" *ngIf=\"isSameSymbolPolicyForClaimantAndAgency\">2 of the following characters <b>_ @ * $ ! # .</b></li>\r\n <li style=\"margin-left: -25px; font-size: small;\" *ngIf=\"!isNewPasswordPolicyEnabledForClaimant\">8 characters</li>\r\n <li style=\"margin-left: -25px; font-size: small;\" *ngIf=\"isNewPasswordPolicyEnabledForClaimant\">14 characters</li>\r\n </ul>\r\n <p-divider></p-divider>\r\n <p class=\"mt-1\" style=\"font-size: small;\">Suggestion</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">Don't use your name, email or phone</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">Don't use your kid, partner or pet name.</li>\r\n </ul>\r\n </ng-template>\r\n </p-password>\r\n </div>\r\n\r\n <div *ngIf=\"question.customTag && question.customTag.includes('fileupload')\">\r\n <app-file-uploader [allowedFileType]=\"question.allowedFileType\" [formControlName]=\"question.name\"\r\n [maxSizeInMB]=\"question.sizeInMB\" [multiple]=\"question.multiple\" [noOfFilesToUpload]=\"question.noOFFiles\" [attr.aria-label]=\"question.title\">\r\n </app-file-uploader>\r\n </div>\r\n\r\n <!--Email Address-->\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && (question.customTag!='ssn' && question.customTag!='Optional' && question.customTag!='fileupload' \r\n && question.customTag!='phone' && question.customTag!='ean' && question.customTag!='dueamt' && question.customTag!='password') \">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" \r\n (blur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!question.inputType && !question.customTag\" [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" *ngIf=\"question.size\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" [id]=\"question.name\" *ngIf=\"!question.size\" pInputText [formControlName]=\"question.name\" \r\n [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n <!-- </ion-col>\r\n <ion-col size=\"1\" *ngIf=\"question.description\" style=\"padding-top: 12px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </ion-col>\r\n </ion-row> -->\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'comment'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"question.maxLength\">\r\n <textarea [id]=\"question.name\" autoResize=\"true\" [formControlName]=\"question.name\"\r\n [maxLength]=\"question.maxLength\" [rows]=\"3\" [cols]=\"35\" [attr.aria-label]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"></textarea>\r\n <div>\r\n\r\n <small styleClass=\"p-d-block\" *ngIf=\"question.description\">{{question.description}}</small>\r\n </div>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"!question.maxLength\">\r\n <textarea [id]=\"question.name\" autoResize=\"true\" [formControlName]=\"question.name\" [rows]=\"3\"\r\n [cols]=\"35\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"></textarea>\r\n <div>\r\n\r\n <small styleClass=\"p-d-block\" *ngIf=\"question.description\">{{question.description}}</small>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-autoComplete *ngIf=\"false\" [formControlName]=\"question.name\" [suggestions]=\"filterResult\" appendTo=\"body\"\r\n (completeMethod)=\"filterValue($event,question)\" field=\"text\" [dropdown]=\"true\" minLength=\"1\"\r\n [forceSelection]=\"true\" (onSelect)=\"onSelect($event,question.name)\" [completeOnFocus]=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.text}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n <app-dropdown [options]=\"filterResult\" [formControlName]=\"question.name\" optionLabel=\"text\" appendTo=\"body\"\r\n (onChange)=\"onSelect($event,question.name)\" [autoDisplayFirst]=\"false\" (onClick)=\"filterValue($event,question)\" [inputId]=\"question.name\"\r\n [ariaLabel]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"></app-dropdown>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'radiogroup' \">\r\n\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton unselectable=\"true\" [options]=\"question.choices\" [formControlName]=\"question.name\" optionLabel=\"text\"\r\n optionValue=\"value\" (onOptionClick)=\"onRadioOptionClick($event,question)\"></p-selectButton>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"decimal\" [inputId]=\"question.name\" [useGrouping]=\"false\"\r\n [min]=\"minValue\" [max]=\"maxValue\"\r\n [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" [ariaLabel]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\" [required]=\"question.isRequired\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"decimal\" [inputId]=\"question.name\" [useGrouping]=\"false\" \r\n [minFractionDigits]=\"2\" [maxFractionDigits]=\"2\" [min]=\"minValue\" \r\n [max]=\"maxValue\" [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" [ariaLabel]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\" [required]=\"question.isRequired\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"currency\" [inputId]=\"question.name\" [useGrouping]=\"false\" \r\n [minFractionDigits]=\"2\" [maxFractionDigits]=\"2\" currency=\"USD\" [min]=\"minValue\" \r\n [max]=\"maxValue\" [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" \r\n [ariaLabel]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\" [required]=\"question.isRequired\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"formgroup-inline\">\r\n <p-checkbox [name]=\"question.name + '-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of question.choices\" [formControl]=\"form.controls[question.name]\"\r\n styleClass=\"app-p-checkbox\" [inputId]=\"question.name + '-' + choice.value\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'multicheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-checkbox [name]=\"question.name + '-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of question.choices\" [formControl]=\"form.controls[question.name]\"\r\n styleClass=\"app-p-checkbox\" [inputId]=\"question.name + '-' + choice.value\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'singleselectcheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton unselectable=\"true\" [options]=\"question.choices\" [formControlName]=\"question.name\" [multiple]=false\r\n optionLabel=\"text\" optionValue=\"value\" [attr.aria-label]=\"question.title\"></p-selectButton>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'simplecheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div class=\"field-checkbox\">\r\n <p-checkbox binary=\"true\" inputId=\"binary\" [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n <label for=\"binary\">{{question.title}}</label>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top: 3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'displaytextaslabel'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <label>{{getText(form.controls[question.name].value)}}</label>\r\n <input type=\"hidden\" [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 2px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'label'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <label>{{question.title}}</label>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 2px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-overlay'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [overlayText]=\"question.description | dynamicTranslate:dynamicParam\" [displayAsLabel]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-link'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [formControlName]=\"question.name\" [overlayText]=\"question.description | dynamicTranslate:dynamicParam\" [labelWithLink]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-popup'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [formControlName]=\"question.name\" [labelWithPopup]=\"question.description | dynamicTranslate:dynamicParam\" [labelWithLink]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container class=\"responsive\" *ngSwitchCase=\"'panel'\">\r\n <ion-row>\r\n <ion-col>\r\n <ion-row>\r\n <ng-container *ngFor=\"let element of question.elements\">\r\n <ion-col *ngIf=\"element.colElement==='COL1' && visibleIf(element.visibleIf,element.name)\"\r\n [sizeXl]=\"element.sizeXL\" [sizeLg]=\"element.sizeLG\" [sizeMd]=\"element.sizeMD\"\r\n [offsetMd]=\"element.offSetMD\" class=\"col-fit-content\">\r\n <app-question [question]=\"element\" [form]=\"form\" [forScreenQuestionnaire]=\"forScreenQuestionnaire\">\r\n </app-question>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n </ion-col>\r\n <ion-col>\r\n <ion-row>\r\n <ng-container *ngFor=\"let element of question.elements\">\r\n <ion-col *ngIf=\"element.colElement==='COL2' && visibleIf(element.visibleIf,element.name)\"\r\n [sizeXl]=\"element.sizeXL\" [sizeLg]=\"element.sizeLG\" [sizeMd]=\"element.sizeMD\"\r\n [offsetMd]=\"element.offSetMD\">\r\n <app-question [question]=\"element\" [form]=\"form\" [forScreenQuestionnaire]=\"forScreenQuestionnaire\">\r\n </app-question>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n </ion-col>\r\n </ion-row>\r\n </ng-container>\r\n </div>\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"question.type!='panel'\">\r\n <small class=\"p-error\" *ngIf=\"isValid!=''\" [@rowExpansionTrigger]=\"'active'\">{{isValid | dynamicTranslate:dynamicParam}}</small>\r\n </div>\r\n</div>", styles: [".form-label{display:inline-block;margin-bottom:6px;margin-top:16px}.p-checkbox-label{line-height:1.5;text-align:justify;margin-left:1rem}.p-checkbox{padding:6px 0;width:-webkit-fill-available}.p-dropdown{display:inline-flex;min-width:185px}.p-calendar .p-inputtext{max-width:134px}:host ::ng-deep .p-dropdown{display:inline-flex;min-width:185px}:host ::ng-deep .p-calendar .p-inputtext{max-width:134px!important}.col-fit-content{max-width:-moz-fit-content;max-width:fit-content}\n"] }]
|
|
2141
|
-
}], () => [{ type: i1.QuestionControlService }, { type: i2.QuestionService }, { type: i3.TranslateService }, { type: i4.ValidationService }, { type: i5.UtilService }, { type: i6.NavController }, { type: i7.LoggerService }, { type: i8.
|
|
2400
|
+
args: [{ selector: 'app-question', changeDetection: ChangeDetectionStrategy.Default, animations: [rowExpansionTrigger], template: "<div [formGroup]=\"form\" [id]=\"'question-div-' + question.name\">\r\n <p-dialog *ngIf=\"displayPosition\" [(visible)]=\"displayPosition\" [position]=\"position\"\r\n [modal]=\"true\" [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\" [style]=\"{width: '45vw'}\"\r\n [baseZIndex]=\"5000\" [draggable]=\"false\" [resizable]=\"false\" appendTo=\"body\" closeOnEscape=\"false\" [attr.aria-label]=\"question.title\">\r\n\r\n <h4 class=\"heading ion-padding-left\">\r\n {{popUpHeader}}\r\n </h4>\r\n <p>{{popUpText}}\r\n </p>\r\n <ng-template pTemplate=\"footer\">\r\n <ion-button shape=\"round\" *ngIf=\"popUpNoActionLabel\" size=\"small\" type=\"submit\" fill=\"outline\" (click)=\"reject()\">\r\n {{popUpNoActionLabel}}\r\n </ion-button>\r\n\r\n <ion-button shape=\"round\" *ngIf=\"popUpYesActionLabel\" size=\"small\" type=\"submit\" fill=\"solid\" (click)=\"accept()\">\r\n {{popUpYesActionLabel}}\r\n </ion-button>\r\n\r\n </ng-template>\r\n </p-dialog>\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"!forScreenQuestionnaire\" class=\"form-label\">\r\n <label [attr.for]=\"question.name\" *ngIf=\"question.indent===1 && question.type!='html' && question.type!='hidden' && question.type!='label'\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && question.indent===1 && question.type!='html' && question.type!='hidden' && question.description && question.type!='simplecheckbox' && question.type!='label' && question.type!='label-with-overlay'\">\r\n <label [attr.for]=\"question.name\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && question.customTag && (question.customTag!='component' || (question.customTag=='component' && showLabelForCustomComponent())) && question.indent===1 && question.type!='html' && question.type!='hidden' && !question.description && question.type!='label' && question.type!='simplecheckbox'\">\r\n <label [attr.for]=\"question.name\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"form-label\"\r\n *ngIf=\"forScreenQuestionnaire && !question.customTag && question.indent===1 && question.type!='html' && question.type!='hidden' && !question.description && question.type!='simplecheckbox' && question.type!='label' && question.type!='label-with-overlay'\">\r\n <label [attr.for]=\"question.name\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </label>\r\n </div>\r\n\r\n\r\n\r\n <div *ngIf=\"question.customTag && question.customTag==='component' && question.type!='html' && !question.description\">\r\n <app-employer-grid [formControlName]=\"question.name\" [form]=\"form\" [dynamicParam]=\"dynamicParam\"\r\n *ngIf=\"question.componentName==='app-employer-grid'\" (modelDisplay)=\"onModelDisplay($event)\"></app-employer-grid>\r\n <app-legal-disclaimar *ngIf=\"question.componentName==='app-legal-disclaimar'\"\r\n [componentData]=\"question.componentData\" (accepted)=\"onAccepted($event)\" [question]=\"question\" [form]=\"form\">\r\n </app-legal-disclaimar>\r\n <money-expect *ngIf=\"question.componentName==='money-expect'\"></money-expect>\r\n <app-captcha [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-captcha'\"></app-captcha>\r\n\r\n <app-file-uploader [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-file-uploader'\">\r\n </app-file-uploader>\r\n <app-address [formControlName]=\"question.name\" [fromPopup]=\"false\" [countyRequired]=\"question.countyRequired\"\r\n *ngIf=\"question.componentName==='app-address'\" #address [inputId]=\"question.name\"> </app-address>\r\n <app-bank-details [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-bank-details'\" #bankdtls>\r\n </app-bank-details>\r\n <app-requalify-lift-previous-issues *ngIf=\"question.componentName==='app-requalify-lift-previous-issues'\"\r\n [formControlName]=\"question.name\" [componentData]=\"question.componentData\" [form]=\"form\" >\r\n </app-requalify-lift-previous-issues> \r\n <app-dependent-grid [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-dependent-grid'\"></app-dependent-grid>\r\n <app-weekly-cert-employer-grid #wcEmployerGrid [dynamicParam]=\"dynamicParam\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-weekly-cert-employer-grid'\"></app-weekly-cert-employer-grid>\r\n <app-search-employer [formControlName]=\"question.name\" empType=\"REG\" (onFound)=\"setEmployer($event)\" \r\n (onEmpty)=\"resetEmployer()\" *ngIf=\"question.componentName==='app-search-employer'\"></app-search-employer>\r\n <app-add-participant [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-add-participant'\"> </app-add-participant>\r\n <app-add-payment [potentialIssueId]=\"potentialIssueId\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-add-payment'\"></app-add-payment>\r\n <app-link [isRequired]=\"question.isRequired\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-link'\" [text]=\"linkComponentData?.text\" [uri]=\"linkComponentData?.uri\" [externalUrl]=\"linkComponentData?.externalUrl\"></app-link>\r\n <app-sign-ssn [isRequired]=\"question.isRequired\" [formControlName]=\"question.name\" *ngIf=\"question.componentName==='app-sign-ssn'\" [inputId]=\"question.name\"></app-sign-ssn>\r\n <app-job-title [control]=\"form.controls[question.name]\" *ngIf=\"question.componentName==='app-job-title'\" #jobTitle> </app-job-title>\r\n </div>\r\n\r\n <div *ngIf=\"question.indent!=1 && question.type!='html' && question.type!='label' && question.type!='hidden'\" class=\"form-label\" [ngStyle]=\"setStyle(question.indent)\">\r\n <span [innerHtml]=\"question.title | dynamicTranslate:dynamicParam | trustHtml\"></span>\r\n </div>\r\n\r\n <div *ngIf=\"question.type==='html'\" style=\"display: flex;\">\r\n <div [innerHTML]=\"question.html | dynamicTranslate:dynamicParam | trustHtml\"\r\n style=\"color:var(--ion-color-medium-gray); padding-top: 20px;\" class=\"heading\">\r\n </div>\r\n <div *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:13px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n \r\n <div [ngSwitch]=\"question.type\">\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div *ngIf=\"question.inputType && question.inputType==='date' && question.name && question.name!='dob'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" #pCalendar>\r\n <p-calendar [formControlName]=\"question.name\" [inputId]=\"question.name\" [monthNavigator]=\"true\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2099\" [showIcon]=\"true\" [minDate]=\"showMinDate ? minDate : null\"\r\n [maxDate]=\"showMaxDate ? maxDate : null\" dateFormat=\"mm/dd/yy\" appendTo=\"body\" dataType=\"string\"\r\n (onBlur)=\"validate(question)\" (onSelect)=\"validate(question)\" placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" \r\n (onInput)=\"dateInput($event)\" [iconAriaLabel]=\"question.title\">\r\n </p-calendar>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"question.inputType && question.inputType==='date' && question.name && question.name==='dob'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" #pCalendar>\r\n <p-calendar [formControlName]=\"question.name\" [inputId]=\"question.name\" [monthNavigator]=\"true\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2050\" [showIcon]=\"true\" [minDate]=\"minDateDOB\"\r\n [maxDate]=\"maxDateDOB\" dateFormat=\"mm/dd/yy\" appendTo=\"body\" dataType=\"string\"\r\n (onBlur)=\"validate(question)\" (onSelect)=\"validate(question)\" placeholder=\"mm/dd/yyyy\" [showOnFocus]=\"false\" \r\n (onInput)=\"dateInput($event)\" [iconAriaLabel]=\"question.title\" (onClose)=\"checkIfUserExist()\">\r\n </p-calendar>\r\n </div>\r\n </div>\r\n \r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='ssn'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask autocomplete=\"off\" [class.hide-content]=\"maskClass\" mask=\"999-99-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\"\r\n placeholder=\"999-99-9999\" (onComplete)=\"validate(question)\" (onFocus)=\"unmask($event)\" (onBlur)=\"mask($event)\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='ean'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputMask autocomplete=\"off\" mask=\"99-99999-9-99\" [inputId]=\"question.name\" [formControlName]=\"question.name\"\r\n placeholder=\"99-99999-9-99\" [value]=\"81-00586-0-01\" (onComplete)=\"validate(question)\">\r\n </p-inputMask>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && question.customTag && question.customTag==='dueamt'\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber [inputId]=\"question.name\" [formControlName]=\"question.name\" mode=\"decimal\" locale=\"en-US\"\r\n [minFractionDigits]=\"2\" [ariaLabel]=\"question.title\"></p-inputNumber>\r\n </div>\r\n\r\n\r\n\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text' && (!question.customTag || question.customTag==='Optional') && !question.isRequired\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\"\r\n [maxLength]=\"question.maxLength\" placeholder=\"Optional\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" placeholder=\"Optional\"\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n placeholder=\"Optional\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" />\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" placeholder=\"Optional\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n\r\n <!--User Name-->\r\n <div *ngIf=\"question.inputType && question.inputType==='text' && !question.customTag && question.isRequired && !checkFlowKey()\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\" \r\n [maxLength]=\"question.maxLength\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" \r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" [id]=\"question.name\"\r\n pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n \r\n\r\n <div *ngIf=\"question.inputType && question.inputType==='text' && !question.customTag && question.isRequired && checkFlowKey()\"\r\n [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" *ngIf=\"question.size && question.maxLength\" \r\n [maxLength]=\"question.maxLength\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [disabled]=\"!phoneVerified\" [autocomplete]=\"question?.name.includes('secAns')?'off': 'on'\"/>\r\n <input type=\"text\" *ngIf=\"question.size && !question.maxLength\" [id]=\"question.name\"\r\n pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [disabled]=\"!phoneVerified\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && question.maxLength\" [maxLength]=\"question.maxLength\"\r\n [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [disabled]=\"!phoneVerified\"/>\r\n <input type=\"text\" *ngIf=\"!question.size && !question.maxLength\" [id]=\"question.name\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [disabled]=\"!phoneVerified\"/>\r\n </div>\r\n\r\n <div \r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && question.customTag.includes('firstName') && checkFlowKey() \">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [maxLength]=\"question.maxLength\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n </div>\r\n <div \r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && question.customTag.includes('lastName') && checkFlowKey() \">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [maxLength]=\"question.maxLength\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!question.inputType && question.customTag && !question.customTag.includes('phone')\"\r\n [ngStyle]=\"{'padding-left.px': question.indent*10}\" [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" pInputText [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n\r\n\r\n <div *ngIf=\"question.customTag && question.customTag.includes('phone') && !checkFlowKey()\">\r\n <p-inputMask autocomplete=\"off\" mask=\"999-999-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\" \r\n [placeholder]=\"question.isRequired ? '999-999-9999' : 'Optional'\"\r\n *ngIf=\"question.inputType && question.inputType==='text'\" (onBlur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n <div *ngIf=\"question.customTag && question.customTag.includes('phone') && checkFlowKey()\">\r\n <p-inputMask autocomplete=\"off\" mask=\"999 999-9999\" [inputId]=\"question.name\" [formControlName]=\"question.name\" \r\n [placeholder]=\"question.isRequired ? '999 999-9999' : 'Optional'\"\r\n *ngIf=\"question.inputType && question.inputType==='text'\" (onBlur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\">\r\n </p-inputMask>\r\n </div>\r\n\r\n \r\n <div *ngIf=\"question.customTag && question.customTag.includes('password')\">\r\n <p-password [inputId]=\"question.name\" [formControlName]=\"question.name\" [toggleMask]=\"true\" [maxLength]=\"question.maxLength\" weakLabel=\"Weak password\" \r\n mediumLabel=\"Weak password\" strongLabel=\"Strong password\" strongRegex=\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})(?=.*[_@*$!#.])\" [ariaLabel]=\"question.title\">\r\n \r\n <ng-template pTemplate=\"footer\">\r\n <p-divider></p-divider>\r\n <p class=\"mt-1\" style=\"font-size: small;\">Password must include at least</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">1 uppercase letter</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">1 lowercase letter</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">1 number</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">1 of the following characters <b>_ @ * $ ! # .</b></li>\r\n <li style=\"margin-left: -25px; font-size: small;\">8 characters</li>\r\n </ul>\r\n <p-divider></p-divider>\r\n <p class=\"mt-1\" style=\"font-size: small;\">Suggestion</p>\r\n <ul style=\"line-height: 1.25\">\r\n <li style=\"margin-left: -25px; font-size: small;\">Don't use your name, email or phone.</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">Don't use your kid, partner or pet name.</li>\r\n <li style=\"margin-left: -25px; font-size: small;\">Your password cannot contain your name and/or your user id.</li>\r\n </ul>\r\n </ng-template>\r\n </p-password>\r\n </div>\r\n\r\n <div *ngIf=\"question.customTag && question.customTag.includes('fileupload')\">\r\n <app-file-uploader [allowedFileType]=\"question.allowedFileType\" [formControlName]=\"question.name\"\r\n [maxSizeInMB]=\"question.sizeInMB\" [multiple]=\"question.multiple\" [noOfFilesToUpload]=\"question.noOFFiles\" [attr.aria-label]=\"question.title\">\r\n </app-file-uploader>\r\n </div>\r\n\r\n <!--Email Address-->\r\n <div\r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && (question.customTag!='ssn' && question.customTag!='Optional' && question.customTag!='fileupload' \r\n && question.customTag!='phone' && question.customTag!='firstName' && question.customTag!='lastName' && question.customTag!='ean' && question.customTag!='dueamt' && question.customTag!='password') && checkFlowKey()\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" [disabled]=\"true\"\r\n (blur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n </div>\r\n <div>\r\n <div \r\n *ngIf=\"question.inputType && question.inputType==='text'\r\n && question.customTag && (question.customTag!='ssn' && question.customTag!='Optional' && question.customTag!='fileupload' \r\n && question.customTag!='phone' && question.customTag!='ean' && question.customTag!='dueamt' && question.customTag!='password') && !checkFlowKey()\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" [attr.aria-label]=\"question.title\" pInputText [formControlName]=\"question.name\" (blur)=\"checkForValueChange($event)\" [attr.aria-label]=\"question.title\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!question.inputType && !question.customTag\" [ngStyle]=\"setStyle(question.indent)\">\r\n <input type=\"text\" [id]=\"question.name\" *ngIf=\"question.size\" pInputText\r\n [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n <input type=\"text\" [id]=\"question.name\" *ngIf=\"!question.size\" pInputText [formControlName]=\"question.name\" \r\n [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"/>\r\n </div>\r\n <!-- </ion-col>\r\n <ion-col size=\"1\" *ngIf=\"question.description\" style=\"padding-top: 12px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </ion-col>\r\n </ion-row> -->\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'comment'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"question.maxLength\">\r\n <textarea [id]=\"question.name\" autoResize=\"true\" [formControlName]=\"question.name\"\r\n [maxLength]=\"question.maxLength\" [rows]=\"3\" [cols]=\"35\" [attr.aria-label]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"></textarea>\r\n <div>\r\n\r\n <small styleClass=\"p-d-block\" *ngIf=\"question.description\">{{question.description}}</small>\r\n </div>\r\n </div>\r\n\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"!question.maxLength\">\r\n <textarea [id]=\"question.name\" autoResize=\"true\" [formControlName]=\"question.name\" [rows]=\"3\"\r\n [cols]=\"35\" [attr.aria-label]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"></textarea>\r\n <div>\r\n\r\n <small styleClass=\"p-d-block\" *ngIf=\"question.description\">{{question.description}}</small>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-autoComplete *ngIf=\"false\" [formControlName]=\"question.name\" [suggestions]=\"filterResult\" appendTo=\"body\"\r\n (completeMethod)=\"filterValue($event,question)\" field=\"text\" [dropdown]=\"true\" minLength=\"1\"\r\n [forceSelection]=\"true\" (onSelect)=\"onSelect($event,question.name)\" [completeOnFocus]=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.text}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n <app-dropdown [options]=\"filterResult\" [formControlName]=\"question.name\" optionLabel=\"text\" appendTo=\"body\"\r\n (onChange)=\"onSelect($event,question.name)\" [autoDisplayFirst]=\"false\" (onClick)=\"filterValue($event,question)\" [inputId]=\"question.name\"\r\n [ariaLabel]=\"question.title\"></app-dropdown>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'radiogroup'\">\r\n\r\n <div class=\"container\"> \r\n <div class=\"shared-row\" *ngIf=\"question.name && question.name!='verification'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton unselectable=\"true\" [options]=\"question.choices\" [formControlName]=\"question.name\" optionLabel=\"text\"\r\n optionValue=\"value\" (onOptionClick)=\"onRadioOptionClick($event,question)\"></p-selectButton>\r\n </div>\r\n <div *ngIf=\"question.description\" >\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"question.name && question.name==='verification'\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton [options]=\"question.choices\" [formControlName]=\"question.name\" optionLabel=\"text\"\r\n optionValue=\"value\" (onOptionClick)=\"generateOtpForNewUserCreation($event,form)\"></p-selectButton>\r\n </div>\r\n <app-mfa2 *ngIf=\"isOtpModalEnabled\" [display]=\"isOtpModalEnabled\" [returningUser]=\"isReturningUser\" [(form)]=\"form\" (success)=\"enableFields()\"></app-mfa2>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"decimal\" [inputId]=\"question.name\" [useGrouping]=\"false\"\r\n [min]=\"minValue\" [max]=\"maxValue\"\r\n [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" [ariaLabel]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"decimal\" [inputId]=\"question.name\" [useGrouping]=\"false\" \r\n [minFractionDigits]=\"2\" [maxFractionDigits]=\"2\" [min]=\"minValue\" \r\n [max]=\"maxValue\" [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" [ariaLabel]=\"question.title\"\r\n [placeholder]=\"question.placeholder ? question.placeholder : ''\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-inputNumber formControlName=\"{{question.name}}\" mode=\"currency\" [inputId]=\"question.name\" [useGrouping]=\"false\" \r\n [minFractionDigits]=\"2\" [maxFractionDigits]=\"2\" currency=\"USD\" [min]=\"minValue\" \r\n [max]=\"maxValue\" [size]=\"question.size ? question.size : null\" [maxlength]=\"question.maxLength ? question.maxLength : null\" \r\n [ariaLabel]=\"question.title\" [placeholder]=\"question.placeholder ? question.placeholder : ''\"></p-inputNumber>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\" class=\"formgroup-inline\">\r\n <p-checkbox [name]=\"question.name + '-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of question.choices\" [formControl]=\"form.controls[question.name]\"\r\n styleClass=\"app-p-checkbox\" [inputId]=\"question.name + '-' + choice.value\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'multicheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-checkbox [name]=\"question.name + '-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of question.choices\" [formControl]=\"form.controls[question.name]\"\r\n styleClass=\"app-p-checkbox\" [inputId]=\"question.name + '-' + choice.value\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'singleselectcheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div [ngStyle]=\"setStyle(question.indent)\">\r\n <p-selectButton unselectable=\"true\" [options]=\"question.choices\" [formControlName]=\"question.name\" [multiple]=false\r\n optionLabel=\"text\" optionValue=\"value\" [attr.aria-label]=\"question.title\"></p-selectButton>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top:3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'simplecheckbox'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <div class=\"field-checkbox\">\r\n <p-checkbox binary=\"true\" inputId=\"binary\" [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"></p-checkbox>\r\n <label for=\"binary\">{{question.title}}</label>\r\n </div>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 8px; padding-top: 3px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'displaytextaslabel'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <label>{{getText(form.controls[question.name].value)}}</label>\r\n <input type=\"hidden\" [formControlName]=\"question.name\" [attr.aria-label]=\"question.title\"/>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 2px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'label'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <label>{{question.title}}</label>\r\n <div style=\"flex-grow: 1;\" *ngIf=\"question.description\" style=\"padding-left: 2px\">\r\n <app-overlay-info [overlayText]=\"question.description | dynamicTranslate:dynamicParam\"></app-overlay-info>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-overlay'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [overlayText]=\"question.description | dynamicTranslate:dynamicParam\" [displayAsLabel]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-link'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [formControlName]=\"question.name\" [overlayText]=\"question.description | dynamicTranslate:dynamicParam\" [labelWithLink]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'label-with-popup'\">\r\n <div class=\"container\" style=\"display: flex;\">\r\n <app-overlay-info [displayText]=\"question.title\" [formControlName]=\"question.name\" [labelWithPopup]=\"question.description | dynamicTranslate:dynamicParam\" [labelWithLink]=\"true\"></app-overlay-info>\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container class=\"responsive\" *ngSwitchCase=\"'panel'\">\r\n <ion-row>\r\n <ion-col>\r\n <ion-row>\r\n <ng-container *ngFor=\"let element of question.elements\">\r\n <ion-col *ngIf=\"element.colElement==='COL1' && visibleIf(element.visibleIf,element.name)\"\r\n [sizeXl]=\"element.sizeXL\" [sizeLg]=\"element.sizeLG\" [sizeMd]=\"element.sizeMD\"\r\n [offsetMd]=\"element.offSetMD\" class=\"col-fit-content\">\r\n <app-question [question]=\"element\" [form]=\"form\" [forScreenQuestionnaire]=\"forScreenQuestionnaire\">\r\n </app-question>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n </ion-col>\r\n <ion-col>\r\n <ion-row>\r\n <ng-container *ngFor=\"let element of question.elements\">\r\n <ion-col *ngIf=\"element.colElement==='COL2' && visibleIf(element.visibleIf,element.name)\"\r\n [sizeXl]=\"element.sizeXL\" [sizeLg]=\"element.sizeLG\" [sizeMd]=\"element.sizeMD\"\r\n [offsetMd]=\"element.offSetMD\">\r\n <app-question [question]=\"element\" [form]=\"form\" [forScreenQuestionnaire]=\"forScreenQuestionnaire\">\r\n </app-question>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n </ion-col>\r\n </ion-row>\r\n </ng-container>\r\n </div>\r\n <div [ngStyle]=\"setStyle(question.indent)\" *ngIf=\"question.type!='panel'\">\r\n <small class=\"p-error\" *ngIf=\"isValid!=''\" [@rowExpansionTrigger]=\"'active'\">{{isValid | dynamicTranslate:dynamicParam}}</small>\r\n </div>\r\n</div>", styles: [".form-label{display:inline-block;margin-bottom:6px;margin-top:16px}.p-checkbox-label{line-height:1.5;text-align:justify;margin-left:1rem}.p-checkbox{padding:6px 0;width:-webkit-fill-available}.p-dropdown{display:inline-flex;min-width:185px}.p-calendar .p-inputtext{max-width:134px}:host ::ng-deep .p-dropdown{display:inline-flex;min-width:185px}:host ::ng-deep .p-calendar .p-inputtext{max-width:134px!important}.col-fit-content{max-width:-moz-fit-content;max-width:fit-content}.hide-content{position:relative;display:inline-block}.hide-content:after{content:\"***-**\";position:absolute;left:8px;bottom:6px;background-color:#fff;pointer-events:none}.shared-row{display:flex;column-gap:15px}\n"] }]
|
|
2401
|
+
}], () => [{ type: i1.QuestionControlService }, { type: i2.QuestionService }, { type: i3.TranslateService }, { type: i4.ValidationService }, { type: i5.UtilService }, { type: i6.NavController }, { type: i7.LoggerService }, { type: i8.ClaimantService }, { type: i9.WeeklyCertServiceV2 }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i10.LoginService }], { question: [{
|
|
2142
2402
|
type: Input
|
|
2143
2403
|
}], form: [{
|
|
2144
2404
|
type: Input
|
|
@@ -2161,9 +2421,9 @@ export class DynamicFormQuestionComponent {
|
|
|
2161
2421
|
}], wcEmployerGrid: [{
|
|
2162
2422
|
type: ViewChild,
|
|
2163
2423
|
args: ['wcEmployerGrid']
|
|
2164
|
-
}],
|
|
2424
|
+
}], pCalendar: [{
|
|
2165
2425
|
type: ViewChild,
|
|
2166
|
-
args: ['
|
|
2426
|
+
args: ['pCalendar']
|
|
2167
2427
|
}] }); })();
|
|
2168
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DynamicFormQuestionComponent, { className: "DynamicFormQuestionComponent", filePath: "lib\\components\\questionnaire\\dynamic-form-question.component.ts", lineNumber:
|
|
2169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbm5haXJlL2R5bmFtaWMtZm9ybS1xdWVzdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9keW5hbWljLWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVFwSSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFVN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFHdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNibkQsc0NBQWtIO0lBQW5CLGdOQUFTLGVBQUEsZ0JBQVEsQ0FBQSxJQUFDO0lBQy9HLFlBQ0Y7SUFBQSxpQkFBYTs7O0lBRFgsZUFDRjtJQURFLDJEQUNGOzs7O0lBRUEsc0NBQWlIO0lBQW5CLGdOQUFTLGVBQUEsZ0JBQVEsQ0FBQSxJQUFDO0lBQzlHLFlBQ0Y7SUFBQSxpQkFBYTs7O0lBRFgsZUFDRjtJQURFLDREQUNGOzs7SUFOQSxxSEFFYSx3R0FBQTs7O0lBRmMsaURBQXdCO0lBSXhCLGVBQXlC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O2tCQUE3QixNQUFNO1lBMEJnQixRQUFRO2tCQUE5QixTQUFTO21CQUFDLFVBQVU7WUFDSSxTQUFTO2tCQUFqQyxZQUFZO21CQUFDLFNBQVM7WUFDTSxjQUFjO2tCQUExQyxTQUFTO21CQUFDLGdCQUFnQjtZQUNKLFFBQVE7a0JBQTlCLFNBQVM7bUJBQUMsVUFBVTs7a0ZBckNWLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExpbmtDb21wb25lbnQgfSBmcm9tICcuLy4uL2xpbmsvbGluay5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBFbGVtZW50c01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvRWxlbWVudHNNb2RlbCc7XG5pbXBvcnQgeyBLZXlWYWx1ZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvS2V5VmFsdWVNb2RlbCc7XG5pbXBvcnQgeyBTZXJ2aWNlQWN0aW9uUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1NlcnZpY2VBY3Rpb25SZXNwb25zZU1vZGVsJztcbmltcG9ydCB7IFZhbGlkYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1ZhbGlkYXRpb25Nb2RlbCc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXVlc3Rpb25uYWlyZS92YWxpZGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBDaG9pY2VzLCBRdWVzdGlvbkNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi9xdWVzdGlvbi1jb250cm9sLnNlcnZpY2UnO1xuaW1wb3J0IHsgUXVlc3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9xdWVzdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IExvYWRlck1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvTG9hZGVyTW9kZWwnO1xuaW1wb3J0IHsgQWRkcmVzc0NvbXBvbmVudCB9IGZyb20gJy4uL2FkZHJlc3MvYWRkcmVzcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFua0RldGFpbHNDb21wb25lbnQgfSBmcm9tICcuLi9iYW5rLWRldGFpbHMvYmFuay1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0VtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0JztcbmltcG9ydCB7IHJvd0V4cGFuc2lvblRyaWdnZXIgfSBmcm9tICcuLi8uLi9hbm5pbWF0aW9ucy9hcHAtYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBXZWVrbHlDZXJ0RW1wbG95ZXJHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi4vd2Vla2x5LWNlcnQtZW1wbG95ZXItZ3JpZC93ZWVrbHktY2VydC1lbXBsb3llci1ncmlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBKb2JUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uL2pvYi10aXRsZS9qb2ItdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmludGVyZmFjZSBWYWx1ZUNoYW5nZUNvbXBvbmVudE1vZGVsIHtcbiAgb3JpZ2luYWxWYWx1ZUNvbnRyb2w6IHN0cmluZztcbiAgZm9ybUNvbnRyb2xUb1VwZGF0ZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRW1wbG95ZXJBZGRyZXNzVXBkYXRlTW9kZWwge1xuICBhZGRyZXNzRm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIGVtcGxveWVySWRGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE1pbk1heERhdGVNb2RlbCB7XG4gIG1pbkRhdGVLZXk6IHN0cmluZztcbiAgbWF4RGF0ZUtleTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgTWluTWF4VmFsdWVNb2RlbCB7XG4gIG1pblZhbHVlOiBzdHJpbmc7XG4gIG1heFZhbHVlOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBMaW5rQ29tcG9uZW50TW9kZWwge1xuICB1cmk6IHN0cmluZztcbiAgZXh0ZXJuYWxVcmw6IHN0cmluZztcbiAgdGV4dDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcXVlc3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXCIuL2R5bmFtaWMtZm9ybS1xdWVzdGlvbi5jb21wb25lbnQuc2Nzc1wiXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxuICBhbmltYXRpb25zOiBbcm93RXhwYW5zaW9uVHJpZ2dlcl1cbn0pXG5cbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVF1ZXN0aW9uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgcXVlc3Rpb246IEVsZW1lbnRzTW9kZWw7XG4gIEBJbnB1dCgpIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIGluZGV4TnVtYmVyOiBudW1iZXI7XG4gIEBJbnB1dCgpIGZvclNjcmVlblF1ZXN0aW9ubmFpcmU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGR5bmFtaWNQYXJhbTogYW55O1xuICBASW5wdXQoKSBwb3RlbnRpYWxJc3N1ZUlkOiBudW1iZXI7XG5cbiAgQE91dHB1dCgpIG9uRHluYW1pY1BhcmFtVXBkYXRlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWQgPSBMaWJDb25zdGFudHMuaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWQgPT0gJ3RydWUnO1xuICBwdWJsaWMgaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWRGb3JDbGFpbWFudCA9IExpYkNvbnN0YW50cy5pc05ld1Bhc3N3b3JkUG9saWN5RW5hYmxlZEZvckNsYWltYW50ID09ICd0cnVlJztcbiAgcHVibGljIGlzTmV3UGFzc3dvcmRQb2xpY3lFbmFibGVkRm9yRW1wbG95ZXIgPSBMaWJDb25zdGFudHMuaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWRGb3JFbXBsb3llciA9PSAndHJ1ZSc7XG4gIHB1YmxpYyBpc1NhbWVTeW1ib2xQb2xpY3lGb3JDbGFpbWFudEFuZEFnZW5jeSA9IExpYkNvbnN0YW50cy5pc1NhbWVTeW1ib2xQb2xpY3lGb3JDbGFpbWFudEFuZEFnZW5jeSA9PSAndHJ1ZSc7XG4gIFxuICBmaWx0ZXJSZXN1bHQ6IGFueVtdO1xuICBtaW5EYXRlOiBEYXRlO1xuICBsZWdhbEFjY2VwdGVkOiBib29sZWFuID0gbnVsbDtcbiAgT3RwQ29tcGxldGVkOiBib29sZWFuID0gbnVsbDtcbiAgbWF4RGF0ZTogRGF0ZTtcbiAgaW5kZXg6IG51bWJlciA9IDE7XG4gIHJldHVybk1vZGVsID0gbmV3IFZhbGlkYXRpb25Nb2RlbCgpO1xuICBkaXNwbGF5UG9zaXRpb246IGJvb2xlYW47XG4gIHBvc2l0aW9uOiBzdHJpbmc7XG4gIHBvcFVwSGVhZGVyOiBzdHJpbmc7XG4gIHBvcFVwVGV4dDogc3RyaW5nO1xuICBwb3BVcFllc0FjdGlvbkxhYmVsOiBzdHJpbmc7XG4gIHBvcFVwTm9BY3Rpb25MYWJlbDogc3RyaW5nO1xuICB0eXBlID0gJ3RleHQnO1xuICBzaG93TWluRGF0ZSA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd01heERhdGUgOiBib29sZWFuID0gZmFsc2U7XG4gIG1pblZhbHVlID0gbnVsbDtcbiAgbWF4VmFsdWUgPSBudWxsO1xuXG4gIEBWaWV3Q2hpbGQoJ2JhbmtkdGxzJykgYmFua2R0bHM6IEJhbmtEZXRhaWxzQ29tcG9uZW50O1xuICBAVmlld0NoaWxkcmVuKCdhZGRyZXNzJykgYWRkcmVzc2VzOiBRdWVyeUxpc3Q8QWRkcmVzc0NvbXBvbmVudD47XG4gIEBWaWV3Q2hpbGQoJ3djRW1wbG95ZXJHcmlkJykgd2NFbXBsb3llckdyaWQ6IFdlZWtseUNlcnRFbXBsb3llckdyaWRDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2pvYlRpdGxlJykgam9iVGl0bGU6IEpvYlRpdGxlQ29tcG9uZW50O1xuXG4gIGxpbmtDb21wb25lbnREYXRhIDogTGlua0NvbXBvbmVudE1vZGVsO1xuICBcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHFjczogUXVlc3Rpb25Db250cm9sU2VydmljZSwgcHVibGljIHNlcnZpY2U6IFF1ZXN0aW9uU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHVibGljIHZhbGlkYXRpb25TZXJ2aWNlOiBWYWxpZGF0aW9uU2VydmljZSwgcHVibGljIHV0aWw6IFV0aWxTZXJ2aWNlLCBwdWJsaWMgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlciwgXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIHB1YmxpYyBzYW5pdGl6ZXIgOiBEb21TYW5pdGl6ZXIpIHtcblxuICB9XG5cblxuICB2aXNpYmxlSWYoc3RyRXhwOiBzdHJpbmcsIGVsZW1lbnROYW1lOiBzdHJpbmcpIHtcblxuICAgIGlmICghc3RyRXhwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBsZXQgaXNWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gICAgaWYgKHN0ckV4cC5pbmNsdWRlcygnJiYnKSkge1xuICAgICAgbGV0IGV4cHI6IHN0cmluZ1tdID0gc3RyRXhwLnNwbGl0KCcmJicpO1xuICAgICAgaXNWaXNpYmxlID0gdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclswXSkgJiYgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclsxXSlcbiAgICAgIGlmKGV4cHIubGVuZ3RoID49IDMpe1xuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgJiYgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclsyXSlcbiAgICAgIH1cbiAgICAgIGlmKGV4cHIubGVuZ3RoID49IDQpe1xuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgJiYgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclszXSlcbiAgICAgIH1cbiAgICAgIGlmKGV4cHIubGVuZ3RoID09IDUpe1xuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgJiYgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwcls0XSlcbiAgICAgIH1cbiAgICAgIGlmKGV4cHIubGVuZ3RoID4gNSl7XG4gICAgICAgICAgdGhyb3cgXCJBcHBWYWxpZGF0b3JzIDogTW9yZSB0aGFuIDUgJyYmJyBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZC5cIjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHN0ckV4cC5pbmNsdWRlcygnfHwnKSkge1xuICAgICAgbGV0IGV4cHI6IHN0cmluZ1tdID0gc3RyRXhwLnNwbGl0KCd8fCcpO1xuICAgICAgaXNWaXNpYmxlID0gdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclswXSkgfHwgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclsxXSlcbiAgICAgIGlmKGV4cHIubGVuZ3RoID49IDMpe1xuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgfHwgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclsyXSlcbiAgICAgIH1cbiAgICAgIGlmKGV4cHIubGVuZ3RoID49IDQpe1xuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgfHwgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclszXSlcbiAgICAgIH1cbiAgICAgIGlmKGV4cHIubGVuZ3RoID09IDUpe1xuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgfHwgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwcls0XSlcbiAgICAgIH1cbiAgICAgIGlmKGV4cHIubGVuZ3RoID4gNSl7XG4gICAgICAgICAgdGhyb3cgXCJBcHBWYWxpZGF0b3JzIDogTW9yZSB0aGFuIDUgJ3x8JyBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZC5cIjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICByZXR1cm4gaXNWaXNpYmxlO1xuICAgIH1cblxuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZShlbGVtZW50TmFtZSwgbnVsbCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY2FsY3VsYXRlT3BlcmFuZFZhbHVlKHN0ckV4cDogc3RyaW5nKSB7XG4gICAgdmFyIHNwbGl0QXJyYXk6IHN0cmluZ1tdO1xuICAgIGxldCBpc0RvZXNOb3RFcXVhbDogYm9vbGVhbjtcbiAgICBsZXQgaW5kZXg6IG51bWJlciA9IHN0ckV4cC5pbmRleE9mKCchPScpO1xuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgIHNwbGl0QXJyYXkgPSBzdHJFeHAuc3BsaXQoJz09Jyk7XG4gICAgICBpc0RvZXNOb3RFcXVhbCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzcGxpdEFycmF5ID0gc3RyRXhwLnNwbGl0KCchPScpO1xuICAgICAgaXNEb2VzTm90RXF1YWwgPSB0cnVlO1xuICAgIH1cbiAgICBsZXQgb3BlcmFuZDE6IHN0cmluZyA9IHNwbGl0QXJyYXlbMF07XG4gICAgbGV0IG9wZXJhbmQyOiBzdHJpbmcgPSBzcGxpdEFycmF5WzFdO1xuICAgIG9wZXJhbmQxID0gb3BlcmFuZDEucmVwbGFjZSgneycsICcnKS5yZXBsYWNlKCd9JywgJycpLnRyaW0oKTsgLy9jbGFpbWFudFByaW9yUGF5MTAyIGRpZmZtYWlsYWRkcmVzczMxNVxuICAgIG9wZXJhbmQyID0gb3BlcmFuZDIucmVwbGFjZSgneycsICcnKS5yZXBsYWNlKCd9JywgJycpLnRyaW0oKTsgLy9udWxsIFxuICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdKSB7XG4gICAgICB2YXIgdmFsdWVPZkNucnRybFRvQ2hlY2s7XG5cbiAgICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlICYmIHR5cGVvZiAodGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXSkudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhbHVlT2ZDbnJ0cmxUb0NoZWNrID0gdGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXS52YWx1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0udmFsdWUgJiYgdHlwZW9mICh0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdKS52YWx1ZSAhPSAnc3RyaW5nJykge1xuICAgICAgICB2YWx1ZU9mQ25ydHJsVG9DaGVjayA9IHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0udmFsdWVbJ3ZhbHVlJ107XG4gICAgICB9XG5cbiAgICAgIGlmIChvcGVyYW5kMiA9PT0gJ251bGwnICYmIGlzRG9lc05vdEVxdWFsICYmIHZhbHVlT2ZDbnJ0cmxUb0NoZWNrKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKG9wZXJhbmQyID09PSAnbnVsbCcgJiYgIWlzRG9lc05vdEVxdWFsICYmICF2YWx1ZU9mQ25ydHJsVG9DaGVjaykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIG9wZXJhbmQyID0gb3BlcmFuZDIucmVwbGFjZSgnXFwnJywgJycpLnJlcGxhY2UoJ1xcJycsICcnKS50cmltKCk7IC8vbnVsbFxuXG4gICAgICBpZiAob3BlcmFuZDIgIT0gJ251bGwnICYmICFpc0RvZXNOb3RFcXVhbCAmJiAodmFsdWVPZkNucnRybFRvQ2hlY2sgPT09IG9wZXJhbmQyKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wZXJhbmQyICE9ICdudWxsJyAmJiBpc0RvZXNOb3RFcXVhbCAmJiAodmFsdWVPZkNucnRybFRvQ2hlY2sgIT0gb3BlcmFuZDIpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gICB0aGlzLmxvZ2dlci5kZWJ1ZygnaXMgRHluYW1pY0Zvcm1RdWVzdGlvbkNvbXBvbmVudCBuZ09uSW5pdCBjYWxsZWQnLCB0aGlzLnF1ZXN0aW9uKVxuXG4gICAgdGhpcy5maWx0ZXJSZXN1bHQgPSB0aGlzLnF1ZXN0aW9uLmNob2ljZXM7XG4gICAgdGhpcy5zZXRNaW5NYXhEYXRlKCk7XG4gICAgdGhpcy5zZXRNaW5NYXhWYWx1ZSgpO1xuICAgIHRoaXMuc2V0RGVmYXVsdFZhbHVlKCk7XG4gICAgdGhpcy5zZXRMaW5rQ29tcG9uZW50RGF0YSgpO1xuICB9XG5cbiAgc2V0TGlua0NvbXBvbmVudERhdGEoKSB7XG4gICAgaWYodGhpcy5xdWVzdGlvbi5jb21wb25lbnROYW1lID09ICdhcHAtbGluaycpe1xuICAgICAgdGhpcy5saW5rQ29tcG9uZW50RGF0YSA9IHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSA/IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKSA6IG51bGw7XG4gICAgfVxuICB9XG5cbiAgc2hvd0xhYmVsRm9yQ3VzdG9tQ29tcG9uZW50KCkge1xuICAgIGxldCBwYXJzZWREYXRhID0gdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhID8gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpIDogbnVsbDtcbiAgICByZXR1cm4gcGFyc2VkRGF0YT8uc2hvd0xhYmVsID09ICdZJztcbiAgfVxuXG4gIHNldE1pbk1heFZhbHVlKCkge1xuICAgICBpZiAodGhpcy5xdWVzdGlvbi50eXBlID09PSAnbnVtYmVyJyB8fCB0aGlzLnF1ZXN0aW9uLnR5cGUgPT09ICdkZWNpbWFsJyB8fCB0aGlzLnF1ZXN0aW9uLnR5cGUgPT09ICdjdXJyZW5jeScpIHtcbiAgICAgIGxldCBtaW5NYXhNb2RlbCA6IE1pbk1heFZhbHVlTW9kZWwgPSB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEgPyBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSkgOiBudWxsO1xuICAgICAgaWYobWluTWF4TW9kZWwpe1xuICAgICAgICBpZihtaW5NYXhNb2RlbC5taW5WYWx1ZSl7XG4gICAgICAgICAgdGhpcy5taW5WYWx1ZSA9IG1pbk1heE1vZGVsLm1pblZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmKG1pbk1heE1vZGVsLm1heFZhbHVlKXtcbiAgICAgICAgICB0aGlzLm1heFZhbHVlID0gbWluTWF4TW9kZWwubWF4VmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgfVxuICB9XG5cbiAgc2V0TWluTWF4RGF0ZSgpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5pbnB1dFR5cGUgPT09ICdkYXRlJykge1xuICAgICAgbGV0IG1pbk1heE1vZGVsIDogTWluTWF4RGF0ZU1vZGVsID0gdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhID8gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpIDogbnVsbDtcbiAgICAgIGlmKG1pbk1heE1vZGVsICYmIChtaW5NYXhNb2RlbC5tYXhEYXRlS2V5IHx8IG1pbk1heE1vZGVsLm1pbkRhdGVLZXkpKXtcbiAgICAgICAgaWYodGhpcy5keW5hbWljUGFyYW1bbWluTWF4TW9kZWwubWluRGF0ZUtleV0pe1xuICAgICAgICAgIHRoaXMucGFyc2VEYXRlKHRoaXMuZHluYW1pY1BhcmFtW21pbk1heE1vZGVsLm1pbkRhdGVLZXldLCAnbWluJyk7XG4gICAgICAgICAgdGhpcy5zaG93TWluRGF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYodGhpcy5keW5hbWljUGFyYW1bbWluTWF4TW9kZWwubWF4RGF0ZUtleV0pe1xuICAgICAgICAgIHRoaXMucGFyc2VEYXRlKHRoaXMuZHluYW1pY1BhcmFtW21pbk1heE1vZGVsLm1heERhdGVLZXldLCAnbWF4Jyk7XG4gICAgICAgICAgdGhpcy5zaG93TWF4RGF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZXtcbiAgICAgICAgaWYgKHRoaXMucXVlc3Rpb24ubWluKSB7XG4gICAgICAgICAgdGhpcy5wYXJzZURhdGUodGhpcy5xdWVzdGlvbi5taW4sICdtaW4nKVxuICAgICAgICAgIHRoaXMuc2hvd01pbkRhdGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLm1heCkge1xuICAgICAgICAgIHRoaXMucGFyc2VEYXRlKHRoaXMucXVlc3Rpb24ubWF4LCAnbWF4JylcbiAgICAgICAgICB0aGlzLnNob3dNYXhEYXRlID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBwYXJzZURhdGUoc3RyRGF0ZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpOiBEYXRlIHtcbiAgICBpZiAoc3RyRGF0ZSAmJiB0eXBlID09PSAnbWF4Jykge1xuICAgICAgdmFyIHNwbGl0QXJyYXkgPSBzdHJEYXRlLnNwbGl0KCctJyk7XG4gICAgICB0aGlzLm1heERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgdGhpcy5tYXhEYXRlLnNldE1vbnRoKE51bWJlcihzcGxpdEFycmF5WzBdKSAtIDEpO1xuICAgICAgdGhpcy5tYXhEYXRlLnNldEZ1bGxZZWFyKE51bWJlcihzcGxpdEFycmF5WzJdKSk7XG4gICAgICB0aGlzLm1heERhdGUuc2V0RGF0ZShOdW1iZXIoc3BsaXRBcnJheVsxXSkpO1xuICAgICAgcmV0dXJuIHRoaXMubWF4RGF0ZTtcbiAgICB9XG5cbiAgICBpZiAoc3RyRGF0ZSAmJiB0eXBlID09PSAnbWluJykge1xuICAgICAgdmFyIHNwbGl0QXJyYXkgPSBzdHJEYXRlLnNwbGl0KCctJyk7XG4gICAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgdGhpcy5taW5EYXRlLnNldE1vbnRoKE51bWJlcihzcGxpdEFycmF5WzBdKSAtIDEpO1xuICAgICAgdGhpcy5taW5EYXRlLnNldEZ1bGxZZWFyKE51bWJlcihzcGxpdEFycmF5WzJdKSk7XG4gICAgICB0aGlzLm1pbkRhdGUuc2V0RGF0ZShOdW1iZXIoc3BsaXRBcnJheVsxXSkpO1xuICAgICAgcmV0dXJuIHRoaXMubWluRGF0ZTtcbiAgICB9XG4gIH1cblxuXG4gIHNldFN0eWxlKGluZGVudDogbnVtYmVyKTogb2JqZWN0IHtcbiAgICBsZXQgcGFkZGluZyA9IGluZGVudCA8PSAxID8gJzAgcHgnIDogaW5kZW50ICogMTAgKyAncHgnO1xuXG4gICAgbGV0IHN0eWxlT2JqID0ge1xuICAgICAgJ3BhZGRpbmctbGVmdCc6IHBhZGRpbmdcbiAgICB9O1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3R5bGVPYmopO1xuICB9XG5cbiAgc2V0TWFyZ2luKG1hcmdpbjogbnVtYmVyKTogb2JqZWN0IHtcbiAgICBsZXQgbWFyID0gbWFyZ2luICsgJ3B4JztcbiAgICBsZXQgc3R5bGVPYmogPSB7XG4gICAgICAnbWFyZ2luLXJpZ2h0JzogbWFyXG4gICAgfTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHN0eWxlT2JqKTtcbiAgfVxuXG4gIGdldCBpc1ZhbGlkKCkge1xuICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xuICAgIGxldCBxdWVzdGlvblR5cGU6IHN0cmluZyA9IHRoaXMucXVlc3Rpb24udHlwZTtcbiAgICBpZiAoJ2h0bWwnID09PSBxdWVzdGlvblR5cGUgfHwgJ2xhYmVsJyA9PT0gcXVlc3Rpb25UeXBlIHx8ICdzaW1wbGVMYWJlbCcgPT09IHF1ZXN0aW9uVHlwZSB8fCAnZGlzcGxheXRleHRhc2xhYmVsJyA9PT0gcXVlc3Rpb25UeXBlIFxuICAgICAgICB8fCAoJ2J1dHRvbicgPT09IHF1ZXN0aW9uVHlwZSAmJiAhdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzICYmIHRoaXMucXVlc3Rpb24uY29tcG9uZW50TmFtZSAhPSAnYXBwLXNpZ24tc3NuJyAmJiB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudE5hbWUgIT0gJ2FwcC1saW5rJykgXG4gICAgICAgIHx8ICdsYWJlbC13aXRoLW92ZXJsYXknID09PSBxdWVzdGlvblR5cGUpIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucmVxdWlyZWRcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiB0aGlzLnF1ZXN0aW9uLnJlcXVpcmVkRXJyb3JUZXh0O1xuICAgIH1cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ubWF4bGVuZ3RoICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2Vycm9ycz8ubWF4TGVuZ3RoJywgdGhpcy5xdWVzdGlvbilcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICBpZiAodGhpcy5xdWVzdGlvbi5kZXNjcmlwdGlvbikge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi5kZXNjcmlwdGlvbjtcbiAgICAgIH1cbiAgICAgIGxldCB2YWxpZGF0b3JMaXN0ID0gdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzO1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlICcsIHZhbGlkYXRvci50eXBlKVxuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAndGV4dCcgJiYgdmFsaWRhdG9yLm1heExlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50ZXh0ICcsIHZhbGlkYXRvci50ZXh0KVxuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5wYXR0ZXJuXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHwgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdlcnJvcnM/LnBhdHRlcm4nLHRoaXMucXVlc3Rpb24pXG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuXG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlICcsIHZhbGlkYXRvci50eXBlKVxuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAncmVnZXgnKSB7XG4gICAgICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBcIlwiO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuXG4gICAgfVxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5kYXRlQ29tcGFyaXNpb25cbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcbiAgICAgICAgICAvLyAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudHlwZS5taW5sZW5ndGggJywgdmFsaWRhdG9yLnR5cGUpXG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAnZXhwcmVzc2lvbicpIHtcbiAgICAgICAgICAgIC8vICB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XG4gICAgICAgICAgICBrZWVwR29pbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbWVzc2FnZSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/Lm1pbmxlbmd0aFxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xuICAgICAgICAgIC8vdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlLm1pbmxlbmd0aCAnLCB2YWxpZGF0b3IudHlwZSlcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICAgICAgLy90aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbWVzc2FnZSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG5cbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucGFzc3dvcmRDb21wYXJpc2lvblxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xuICAgICAgICAgIC8vICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlLm1pbmxlbmd0aCAnLCB2YWxpZGF0b3IudHlwZSlcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICdleHByZXNzaW9uJykge1xuICAgICAgICAgICAgLy8gIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudGV4dCAnLCB2YWxpZGF0b3IudGV4dClcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0b3IudGV4dDtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICBrZWVwR29pbmcgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gXCJcIjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucmVxdWlyZWRJZlxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIFwicmVxdWlyZWRcIjtcblxuICAgIH1cblxuXG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uYnBFbXBsckZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJDb25maXJtIG9yIERlbGV0ZSBlYWNoIGVtcGxveWVyKHMpIHRvIGNvbnRpbnVlXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnNpbXBsZUNoZWNrQm94VmFsaWRhdGlvbkZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJyZXF1aXJlZFwiO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5jcGF0Y2h2YWxpZGF0aW9uRmxhZ1xuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcInJlcXVpcmVkXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnVwbG9hZHZhbGlkYXRpb25GbGFnXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHwgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwicmVxdWlyZWRcIjtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uYnBFbXBsckxlbmd0aEZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJBZGQgcHJldmlvdXMgZW1wbG95bWVudCBkZXRhaWxzXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5hZGRyZXNzVmFsaWRhdGlvbkZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICAvL2xldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlBsZWFzZSBwcm92aWRlIHZhbGlkIGFkZHJlc3MuXCI7XG4gICAgICB0aGlzLmFkZHJlc3Nlcy5mb3JFYWNoKGFkZHJlc3MgPT4gYWRkcmVzcy5zdWJtaXQoKSk7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmJhbmtEZXRhaWxzVmFsaWRhdGlvbkZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICAvL2xldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlBsZWFzZSBwcm92aWRlIHZhbGlkIGJhbmsgZGV0YWlscy5cIjtcbiAgICAgIHRoaXMuYmFua2R0bHM/LnN1Ym1pdCgpO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5qb2JUaXRsZUZsYWdcbiAgICAgICYmICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fCB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKSkge1xuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gXCJyZXF1aXJlZFwiO1xuICAgICAgdGhpcy5qb2JUaXRsZT8uc3VibWl0KCk7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LndjRW1wbG95ZXJWYWxpZGF0aW9uXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiVXBkYXRlIGVtcGxveWVyKHMpIHRvIGNvbnRpbnVlXCI7XG4gICAgICB0aGlzLndjRW1wbG95ZXJHcmlkPy5zdWJtaXQoKTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ud2NFbXBsb3llclJlcXVpcmVkXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiQWRkIGVtcGxveWVyIGRldGFpbHNcIjtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ud2NEZXBlbmRlbnRSZXF1aXJlZFxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIkFkZCBkZXBlbmRlbnQgZGV0YWlsc1wiO1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcbiAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy53Y0VtcGxveWVyUGF5bWVudEluZm9SZXF1aXJlZFxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIkFkZCBlbXBsb3llciBwYXltZW50IGRldGFpbHNcIjtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucmVtdW5lcmF0aW9uUGF5bWVudEluZm9SZXF1aXJlZFxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSBcIkFkZCByZW11bmVyYXRpb24gcGF5bWVudCBkZXRhaWxzXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfSAgIFxuICAgIFxuICAgIGlmICh0aGlzLnF1ZXN0aW9uICYmIHRoaXMucXVlc3Rpb24ubmFtZSAmJiB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5ncm9zc0Vhcm5pbmdzSW5mb1JlcXVpcmVkXG4gICAgICAmJiAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgJiYgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZCkpIHtcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiQWRkIGhvdXJzIHdvcmtlZCBkZXRhaWxzXCI7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfSAgIFxuXG4gICAgaWYgKHRoaXMucXVlc3Rpb24gJiYgdGhpcy5xdWVzdGlvbi5uYW1lICYmIHRoaXMuZm9ybSAmJiB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/Lm5vdEVxdWFsc1xuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ2N1c3RvbXZhbGlkYXRpb24nKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbWVzc2FnZSA9IFwiXCI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5xdWVzdGlvbiAmJiB0aGlzLnF1ZXN0aW9uLm5hbWUgJiYgdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uYXRMZWFzdE9uZVxuICAgICAgJiYgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8IHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpKSB7XG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2godmFsaWRhdG9yID0+IHtcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ2N1c3RvbXZhbGlkYXRpb24nKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XG4gICAgICByZXR1cm4gbWVzc2FnZTtcbiAgICB9XG5cbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnbWVzc2FnZSBmcm9tIHBhbmVsIG91dGVyLS0gJyxtZXNzYWdlKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIG9uQWNjZXB0ZWRPdHAoYWdyZWVkIDogYm9vbGVhbil7XG4gICAgIHRoaXMuT3RwQ29tcGxldGVkID0gYWdyZWVkO1xuICB9XG4gIG9uQWNjZXB0ZWQoYWdyZWVkOiBib29sZWFuKSB7XG4gICAgLy90aGlzLmxvZ2dlci5kZWJ1Zygnb25BY2NlcHRlZCBjYWxsZWQnLGFncmVlZCk7XG4gICAgdGhpcy5sZWdhbEFjY2VwdGVkID0gYWdyZWVkO1xuICB9XG5cbiAgb25Db21wbGV0ZVJlcXVhbGlmeShyZXF1YWxpZnlEYXRhOiBVbnR5cGVkRm9ybUdyb3VwKXtcblxuICAgIC8vdGhpcy5sb2dnZXIuZGVidWcoXCJvbkNvbXBsZXRlUmVxdWFsaWZ5XCIsIHJlcXVhbGlmeURhdGEpO1xuICB9XG5cbiAgb25Nb2RlbERpc3BsYXkobW9kZWxEaXNwbGF5OiBib29sZWFuKSB7XG4gICAgLy90aGlzLmxvZ2dlci5kZWJ1ZygnbW9kZWxEaXNwbGF5IGNhbGxlZCcsbW9kZWxEaXNwbGF5KTtcbiAgfVxuXG4gIG9uUmFkaW9PcHRpb25DbGljayhldmVudCwgZWxlbWVudDogRWxlbWVudHNNb2RlbCkge1xuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xuICAgIGlmIChlbGVtZW50LnNlcnZpY2VUeXBlICYmIGVsZW1lbnQuc2VydmljZVR5cGUgPT09ICdGRVRDSCcpIHtcbiAgICAgIGxldCBzZXJ2aWNlQ2FsbFR5cGUgPSBlbGVtZW50LnNlcnZpY2VDYWxsVHlwZTtcbiAgICAgIGxldCBzZXJ2aWNlTmFtZTogc3RyaW5nID0gZWxlbWVudC5zZXJ2aWNlTmFtZTtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBldmVudC5vcHRpb24udmFsdWUgPyB7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3NlbGVjdGlvbicsIGV2ZW50Lm9wdGlvbi52YWx1ZSkgfSA6IHt9O1xuICAgICAgaWYgKHNlcnZpY2VDYWxsVHlwZSA9PT0gJ0dFVCcpIHtcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZVxuICAgICAgICAgIC5nZXQoYCR7c2VydmljZU5hbWV9YCwgb3B0aW9ucylcbiAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgbGV0IHZhbHVlczogU2VydmljZUFjdGlvblJlc3BvbnNlTW9kZWwgPSByZXM7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZXMuc3VjY2VzcyA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgLy90aGlzLmxvZ2dlci5kZWJ1Zyh2YWx1ZXMuc2VydmljZUNhbGxWYWx1ZXMuc2VydmljZVR5cGUpO1xuICAgICAgICAgICAgICAgIC8vdGhpcy5sb2dnZXIuZGVidWcodmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzKTtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzICYmIHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlVHlwZVxuICAgICAgICAgICAgICAgICAgJiYgdmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VUeXBlID09PSAnRkVUQ0gnKSB7XG4gICAgICAgICAgICAgICAgICBsZXQgc2VydmljZUNhbGxUeXBlSW5UcnVlID0gdmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VDYWxsVHlwZTtcbiAgICAgICAgICAgICAgICAgIGxldCBzZXJ2aWNlTmFtZUluVHJ1ZTogc3RyaW5nID0gdmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VOYW1lO1xuICAgICAgICAgICAgICAgICAgaWYgKHNlcnZpY2VDYWxsVHlwZUluVHJ1ZSA9PT0gJ0dFVCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgIC5nZXQoYCR7c2VydmljZU5hbWVJblRydWV9YClcbiAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsb2FkZXJNb2RlbDogTG9hZGVyTW9kZWwgPSByZXNwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXCIgdmFsdWUgZnJvbSBsb2FkZXIgPSBcIiwgbG9hZGVyTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEZvcm1WYWx1ZXMobG9hZGVyTW9kZWwuZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJycCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tlbGVtZW50Lm5hbWVdPy5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudC5uYW1lXT8udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycnApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudC5uYW1lXT8ucmVzZXQoKTtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnQubmFtZV0/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0Rm9ybVZhbHVlcyhkYXRhKSB7XG4gICAgT2JqZWN0LmtleXMoZGF0YSlcbiAgICAgIC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGxldCB2YWx1ZVRvU2V0ID0gZGF0YVtrZXldO1xuICAgICAgICB0aGlzLnNldFZhbHVlSW5Gb3JtQ29udHJvbChrZXksIHZhbHVlVG9TZXQpO1xuICAgICAgfSk7XG4gIH1cblxuICBzZXRWYWx1ZUluRm9ybUNvbnRyb2wobmFtZSwgdmFsdWUpIHtcbiAgICBsZXQgY29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1tuYW1lXTtcbiAgICBpZiAoY29udHJvbCkge1xuICAgICAgY29udHJvbC5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignTm8gZm9ybSBjb250cm9sIHByZXNlbnQgd2l0aCBuYW1lICcsIG5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGZpbHRlclZhbHVlKGV2ZW50LCBlbGVtZW50OiBFbGVtZW50c01vZGVsKSB7XG4gICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ2Nob2ljZXMtLScsY2hvaWNlcyk7XG5cbiAgICBsZXQgY2hvaWNlczogYW55W10gPSBbXTtcblxuICAgIGxldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcblxuXG4gICAgaWYgKGVsZW1lbnQuc2VydmljZVR5cGUgJiYgZWxlbWVudC5zZXJ2aWNlVHlwZSA9PT0gJ0ZFVENIJykge1xuXG4gICAgICBsZXQgc2VydmljZUNhbGxQYXJhbSA9IGVsZW1lbnQuc2VydmljZUNhbGxQYXJhbTsgLy9zc24zMjAsbHN0bmFtZTMyMFxuICAgICAgbGV0IHNlcnZpY2VDYWxsVHlwZSA9IGVsZW1lbnQuc2VydmljZUNhbGxUeXBlOyAgLy9cIkdFVFwiXG4gICAgICBsZXQgc2VydmljZU5hbWU6IHN0cmluZyA9IGVsZW1lbnQuc2VydmljZU5hbWU7IC8vL3NlY3VyaXR5LXNlcnZpY2UvdmFsaWRhdGVTU04vXG4gICAgICBsZXQgc2VydmljZVVwZGF0ZVBhcmFtID0gZWxlbWVudC5zZXJ2aWNlVXBkYXRlUGFyYW07XG5cbiAgICAgIGlmIChzZXJ2aWNlQ2FsbFR5cGUgPT09ICdHRVQnKSB7XG4gICAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdJbnNpZGUgR0VUJyk7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2VcbiAgICAgICAgICAuZ2V0KGAke3NlcnZpY2VOYW1lfWApXG4gICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXMtLScsIHJlcywgJyAtIHJlc1swXS5sZW5ndGggLScsIHJlcyk7XG4gICAgICAgICAgICAgIGNob2ljZXMucHVzaChyZXMpO1xuICAgICAgICAgICAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcbiAgICAgICAgICAgICAgLy9sZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XG4gICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hvaWNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBjaG9pY2UgPSBjaG9pY2VzW2ldO1xuICAgICAgICAgICAgICAgIC8vdGhpcy5sb2dnZXIuZGVidWcoJ2Nob2ljZSAtICcsIGNob2ljZSwgJ2Nob2ljZS50ZXh0LS0nLCBjaG9pY2UudGV4dCwgJ3F1ZXJ5LnRvTG93ZXJDYXNlKCknLCBxdWVyeT8udG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgLy9pZiAoY2hvaWNlLnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpID09IDApIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZC5wdXNoKGNob2ljZVswXSk7XG4gICAgICAgICAgICAgICAgLy99XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5maWx0ZXJSZXN1bHQgPSBmaWx0ZXJlZDtcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMuZmlsdGVyUmVzdWx0MTIzLS0nLCB0aGlzLmZpbHRlclJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAsXG4gICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgZWxzZSB7XG4gICAgICBjaG9pY2VzID0gZWxlbWVudC5jaG9pY2VzO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaG9pY2VzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBjb3VudHJ5ID0gY2hvaWNlc1tpXTtcbiAgICAgICAgLy9pZiAoY291bnRyeS50ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihxdWVyeS50b0xvd2VyQ2FzZSgpKSA9PSAwKSB7XG4gICAgICAgIGZpbHRlcmVkLnB1c2goY291bnRyeSk7XG4gICAgICAgIC8vfVxuICAgICAgfVxuICAgICAgdGhpcy5maWx0ZXJSZXN1bHQgPSBmaWx0ZXJlZDtcbiAgICB9XG5cbiAgfVxuXG4gIG9uU2VsZWN0KGV2ZW50LCBjbnRybE5hbWU6IHN0cmluZykge1xuICB9XG5cblxuICAvL1RoaXMgc2hvdWQgYmUgc2ltaWxpcmEgdG8gbWV0aG9kIHByZXNlbnQgaW4gcGFuZWxcbiAgdmFsaWRhdGUoZWxlbWVudDogRWxlbWVudHNNb2RlbCkge1xuXG5cbiAgICBpZiAoIWVsZW1lbnQuc2VydmljZU5hbWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgc2VydmljZVR5cGUgPSBlbGVtZW50LnNlcnZpY2VUeXBlO1xuICAgIGlmIChlbGVtZW50LnNlcnZpY2VUeXBlID09PSAnRkVUQ0gnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG5cbiAgICBsZXQgc2VydmljZUNhbGxQYXJhbSA9IGVsZW1lbnQuc2VydmljZUNhbGxQYXJhbTsgLy9zc24zMjAsbHN0bmFtZTMyMFxuICAgIGxldCBzZXJ2aWNlQ2FsbFR5cGUgPSBlbGVtZW50LnNlcnZpY2VDYWxsVHlwZTsgIC8vXCJHRVRcIlxuICAgIGxldCBzZXJ2aWNlTmFtZTogc3RyaW5nID0gZWxlbWVudC5zZXJ2aWNlTmFtZTsgLy8vc2VjdXJpdHktc2VydmljZS92YWxpZGF0ZVNTTi9cbiAgICBsZXQgc2VydmljZVVwZGF0ZVBhcmFtID0gZWxlbWVudC5zZXJ2aWNlVXBkYXRlUGFyYW07XG4gICAgbGV0IGFsbFZhbHVlUHJlc2VudDogQm9vbGVhbiA9IHRydWU7XG4gICAgLy8gIHRoaXMubG9nZ2VyLmRlYnVnKCdzZXJ2aWNlQ2FsbFBhcmFtJyxzZXJ2aWNlQ2FsbFBhcmFtKTtcbiAgICBpZiAoc2VydmljZUNhbGxQYXJhbSkge1xuICAgICAgdmFyIHNwbGl0dGVkID0gc2VydmljZUNhbGxQYXJhbS5zcGxpdChcIixcIik7XG4gICAgICBsZXQgdmFsdWVBcnI6IHN0cmluZ1tdID0gW107XG4gICAgICBsZXQgcGFyYW1BcnI6IHN0cmluZ1tdID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwbGl0dGVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIC8vdXNlIGkgaW5zdGVhZCBvZiAwIGRvYjMyMFxuICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnZG9iMzIwJyx0aGlzLmZvcm0uY29udHJvbHNbJ2RvYjMyMCddLnZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5jb250cm9sc1tzcGxpdHRlZFtpXV0udmFsdWUpIHtcbiAgICAgICAgICBwYXJhbUFyci5wdXNoKHNwbGl0dGVkW2ldKTtcbiAgICAgICAgICB2YWx1ZUFyci5wdXNoKHRoaXMuZm9ybS5jb250cm9sc1tzcGxpdHRlZFtpXV0udmFsdWUpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYWxsVmFsdWVQcmVzZW50ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWx1ZUFycjEyJywgdmFsdWVBcnIsICdwYXJhbUFycjExICcsIHBhcmFtQXJyLCAnIGVsZW1lbnQnLCBlbGVtZW50KTtcblxuICAgICAgdmFyIG1vZGVsOiBWYWxpZGF0aW9uTW9kZWwgPSB7fTtcbiAgICAgIG1vZGVsLnBhcmFtTmFtZSA9IHBhcmFtQXJyO1xuICAgICAgbW9kZWwucGFyYW1WYWx1ZSA9IHZhbHVlQXJyO1xuICAgICAgLy8gcmV0dXJuIHRoaXMucG9zdChgcXVlc3Rpb25uYWlyZS9zY3JlZW4tcXVlc3Rpb25uYWlyZWAsIHF1ZXN0aW9ubmFpcmVEYXRhKTtcbiAgICAgIGlmIChhbGxWYWx1ZVByZXNlbnQpIHtcbiAgICAgICAgaWYgKHNlcnZpY2VDYWxsVHlwZSA9PT0gJ1BPU1QnKSB7XG4gICAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ0luc2lkZSBHRVQnKTtcbiAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlXG4gICAgICAgICAgICAucG9zdChgJHtzZXJ2aWNlTmFtZX1gLCBtb2RlbClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5Nb2RlbCA9IHJlcztcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXR1cm5Nb2RlbC5yZXR1cm5UeXBlICYmIHRoaXMucmV0dXJuTW9kZWwucmV0dXJuVHlwZSA9PT0gJ1BPUFVQJykge1xuXG4gICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQb3NpdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gJ3RvcCc7XG4gICAgICAgICAgICAgICAgICB0aGlzLnBvcFVwSGVhZGVyID0gdGhpcy5yZXR1cm5Nb2RlbC5wb3BVcEhlYWRlcjtcbiAgICAgICAgICAgICAgICAgIHRoaXMucG9wVXBUZXh0ID0gdGhpcy5yZXR1cm5Nb2RlbC5wb3BVcFRleHQ7XG4gICAgICAgICAgICAgICAgICB0aGlzLnBvcFVwWWVzQWN0aW9uTGFiZWwgPSB0aGlzLnJldHVybk1vZGVsLnBvcFVwWWVzQnV0dG9uTGFiZWw7XG4gICAgICAgICAgICAgICAgICB0aGlzLnBvcFVwTm9BY3Rpb25MYWJlbCA9IHRoaXMucmV0dXJuTW9kZWwucG9wVXBOb0J1dHRvbkxhYmVsO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLnJldHVybk1vZGVsICcsIHRoaXMucmV0dXJuTW9kZWwpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgLFxuICAgICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhY2NlcHQoKSB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2FjY2VwdCBjYWxsZWQxMjMnLCB0aGlzLnJldHVybk1vZGVsLmlkZW50aWZpZXIpXG4gICAgbGV0IHBhcmFtQXJyYXk6IFBhcmFtc1tdID0gW107XG4gICAgaWYgKHRoaXMucmV0dXJuTW9kZWwuaWRlbnRpZmllcikge1xuICAgICAgbGV0IG1vZGVsQXJyOiBLZXlWYWx1ZU1vZGVsW10gPSB0aGlzLnJldHVybk1vZGVsLmlkZW50aWZpZXI7XG4gICAgICBmb3IgKHZhciB2YWwgb2YgbW9kZWxBcnIpIHtcbiAgICAgICAgcGFyYW1BcnJheS5wdXNoKHsgW3ZhbC5rZXldOiB2YWwudmFsdWUgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCBwYXJhbXMgPSBwYXJhbUFycmF5LnJlZHVjZSgoYXJyT2JqLCBpdGVtKSA9PiBPYmplY3QuYXNzaWduKGFyck9iaiwgaXRlbSwge30pKTtcbiAgICAgIC8vdGhpcy51dGlsLm9wZW5QYWdlQnlDb250ZXh0Um9vdFdpdGhEYXRhKHRoaXMuZ2V0Q29udGV4dFJvb3QoKSwgdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24sIHBhcmFtcywgdGhpcy5uYXZDb250cm9sbGVyKVxuICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdCh0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbiwgeyBxdWVyeVBhcmFtczogcGFyYW1zIH0pXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbiAmJiB0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbi5zdWJzdHJpbmcoMCwgNCkgIT0gJy9jcC8nKSB7XG4gICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFt0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbl0pO1xuICAgICAgdGhpcy5kaXNwbGF5UG9zaXRpb24gPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93Lm9wZW4obG9jYXRpb24ub3JpZ2luICsgdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24sICdfc2VsZicpO1xuICAgIH1cbiAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFt0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbl0pO1xuICB9XG5cbiAgcmVqZWN0KCkge1xuICAgIGlmICh0aGlzLnJldHVybk1vZGVsLm5vQWN0aW9uICYmIHRoaXMucmV0dXJuTW9kZWwubm9BY3Rpb24uc3Vic3RyaW5nKDAsIDQpICE9ICcvY3AvJykge1xuICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbdGhpcy5yZXR1cm5Nb2RlbC5ub0FjdGlvbl0pO1xuICAgICAgdGhpcy5kaXNwbGF5UG9zaXRpb24gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93Lm9wZW4obG9jYXRpb24ub3JpZ2luICsgdGhpcy5yZXR1cm5Nb2RlbC5ub0FjdGlvbiwgJ19zZWxmJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29udGV4dFJvb3QoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoMCwgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLmluZGV4T2YoXCIvXCIsIDIpKTtcbiAgfVxuXG4gIHVwbG9hZEZpbGUoZXY6IGFueSkge1xuXG4gIH1cblxuICBnZXRUcmFuc2xhdGlvbihrZXk6IHN0cmluZywgZHluYW1pY1BhcmFtOiBhbnkpIHtcbiAgICBpZiAoIWR5bmFtaWNQYXJhbSkge1xuICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG5cbiAgICBsZXQgZHluYW1pY09iaiA9IHt9O1xuXG4gICAgbGV0IHBhcmFtOiBLZXlWYWx1ZU1vZGVsO1xuICAgIGxldCBwYXJhbXM6IEtleVZhbHVlTW9kZWxbXTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGR5bmFtaWNQYXJhbSkpIHtcbiAgICAgIHBhcmFtcyA9IGR5bmFtaWNQYXJhbTtcbiAgICAgIHBhcmFtcy5mb3JFYWNoKHBybSA9PiB7XG4gICAgICAgIGR5bmFtaWNPYmpbcHJtLmtleV0gPSBwcm0udmFsdWU7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW0gPSBkeW5hbWljUGFyYW07XG4gICAgICBkeW5hbWljT2JqW3BhcmFtLmtleV0gPSBwYXJhbS52YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnRyYW5zbGF0ZS51c2UoJ2VuJyk7XG4gICAgbGV0IHRyYW5zbGF0ZWRTdHJpbmc6IFN0cmluZyA9IFwiXCI7XG4gICAgdGhpcy50cmFuc2xhdGUuc2V0KFxuICAgICAga2V5LCBrZXkpO1xuICAgIHRyYW5zbGF0ZWRTdHJpbmcgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAga2V5LCBPYmplY3QuYXNzaWduKGR5bmFtaWNPYmopKTtcbiAgICByZXR1cm4gdHJhbnNsYXRlZFN0cmluZztcbiAgfVxuXG4gIGdldFRleHQob2JqZWN0KSB7XG4gICAgcmV0dXJuIG9iamVjdD8udGV4dCA/IG9iamVjdD8udGV4dCA6IG9iamVjdDtcbiAgfVxuXG4gIHVubWFzayhldmVudCkge1xuICAgIHRoaXMudHlwZSA9ICd0ZXh0JztcbiAgfVxuXG4gIG1hc2soZXZlbnQpIHtcbiAgICB0aGlzLnR5cGUgPSAncGFzc3dvcmQnO1xuICB9XG5cbiAgZGF0ZUlucHV0KGV2ZW50KSB7XG4gICAgbGV0IGN1cnJlbnRWYWx1ZTogc3RyaW5nID0gZXZlbnQuc3JjRWxlbWVudC52YWx1ZTtcbiAgICBpZiAoY3VycmVudFZhbHVlKSB7XG4gICAgICBpZiAoY3VycmVudFZhbHVlLmxlbmd0aCA9PSAyICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoMikgIT0gJy8nKSB7XG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArIFwiL1wiO1xuICAgICAgfVxuICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gNSAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDUpICE9ICcvJykge1xuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGVja0ZvclZhbHVlQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSkge1xuICAgICAgbGV0IGNvbXBEYXRhOiBWYWx1ZUNoYW5nZUNvbXBvbmVudE1vZGVsID0gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpO1xuICAgICAgbGV0IGN1cnJlbnRWYWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgIGxldCBvcmlnaW5hbFZhbHVlID0gdGhpcy5mb3JtLmdldChjb21wRGF0YS5vcmlnaW5hbFZhbHVlQ29udHJvbCk/LnZhbHVlO1xuICAgICAgbGV0IGZvcm1Db250cm9sVG9VcGRhdGU6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoY29tcERhdGEuZm9ybUNvbnRyb2xUb1VwZGF0ZSk7XG4gICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnBhdGNoVmFsdWUoJ04nKVxuICAgICAgZm9ybUNvbnRyb2xUb1VwZGF0ZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgdGhpcy5keW5hbWljUGFyYW0gPSB0aGlzLmR5bmFtaWNQYXJhbSA/IHRoaXMuZHluYW1pY1BhcmFtIDogW107XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmR5bmFtaWNQYXJhbSkpIHtcbiAgICAgICAgdGhpcy5keW5hbWljUGFyYW0ucHVzaCh7IGtleTogdGhpcy5xdWVzdGlvbi5uYW1lLCB2YWx1ZTogY3VycmVudFZhbHVlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5keW5hbWljUGFyYW1bdGhpcy5xdWVzdGlvbi5uYW1lXSA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChjdXJyZW50VmFsdWUgIT0gb3JpZ2luYWxWYWx1ZSkge1xuICAgICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnBhdGNoVmFsdWUoJ1knKTtcbiAgICAgICAgdGhpcy5vbkR5bmFtaWNQYXJhbVVwZGF0ZS5lbWl0KHRoaXMuZHluYW1pY1BhcmFtKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvcm1Db250cm9sVG9VcGRhdGUucGF0Y2hWYWx1ZSgnTicpXG4gICAgICB9XG4gICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICBzZXRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpIHtcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKSB7XG4gICAgICBsZXQgY29tcERhdGE6IEVtcGxveWVyQWRkcmVzc1VwZGF0ZU1vZGVsID0gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpO1xuICAgICAgbGV0IGFkZHJlc3NGYzogQWJzdHJhY3RDb250cm9sID0gdGhpcy5mb3JtLmdldChjb21wRGF0YS5hZGRyZXNzRm9ybUNvbnRyb2xOYW1lKTtcbiAgICAgIGxldCBlbXBJZEZjOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGNvbXBEYXRhLmVtcGxveWVySWRGb3JtQ29udHJvbE5hbWUpO1xuICAgICAgZW1wSWRGYy5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llcklkID8gZW1wbG95ZXIuZW1wbG95ZXJJZCA6IFwiLTFcIik7XG4gICAgICBhZGRyZXNzRmMuc2V0VmFsdWUoe1xuICAgICAgICBjb3VudHJ5OiBlbXBsb3llci5jb3VudHJ5LCBjaXR5OiBlbXBsb3llci5jaXR5XG4gICAgICAgICwgemlwOiBlbXBsb3llci56aXAsIHN0cmVldEFkZHJlc3M6IGVtcGxveWVyLmFkZHJlc3NEaXNwbGF5VmFsLCBzdGF0ZTogZW1wbG95ZXIuc3RhdGUsXG4gICAgICAgIG9wdGlvbmFsQWRkcmVzczogbnVsbCwgY291bnR5OiBudWxsLCB0b3duOiBudWxsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXNldEVtcGxveWVyKCkge1xuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpIHtcbiAgICAgIGxldCBjb21wRGF0YTogRW1wbG95ZXJBZGRyZXNzVXBkYXRlTW9kZWwgPSBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSk7XG4gICAgICBsZXQgYWRkcmVzc0ZjOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KGNvbXBEYXRhLmFkZHJlc3NGb3JtQ29udHJvbE5hbWUpO1xuICAgICAgbGV0IGVtcElkRmM6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoY29tcERhdGEuZW1wbG95ZXJJZEZvcm1Db250cm9sTmFtZSk7XG4gICAgICBlbXBJZEZjLnNldFZhbHVlKFwiLTFcIik7XG4gICAgICBhZGRyZXNzRmMuc2V0VmFsdWUoe1xuICAgICAgICBjb3VudHJ5OiBudWxsLCBjaXR5OiBudWxsXG4gICAgICAgICwgemlwOiBudWxsLCBzdHJlZXRBZGRyZXNzOiBudWxsLCBzdGF0ZTogbnVsbCxcbiAgICAgICAgb3B0aW9uYWxBZGRyZXNzOiBudWxsLCBjb3VudHk6IG51bGwsIHRvd246IG51bGxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldEZvcm1Db250cm9sVmFsdWUoZWxlbWVudE5hbWUsIGVsZW1lbnRWYWx1ZSkge1xuICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudE5hbWVdKSB7XG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudE5hbWVdLnBhdGNoVmFsdWUoZWxlbWVudFZhbHVlKTtcbiAgICB9XG4gIH1cbiAgXG4gIHNldERlZmF1bHRWYWx1ZSgpIHtcbiAgICBpZih0aGlzLnF1ZXN0aW9uLmRlZmF1bHRWYWx1ZSl7XG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLnF1ZXN0aW9uLmRlZmF1bHRWYWx1ZTtcbiAgICAgIGlmKHRoaXMucXVlc3Rpb24udHlwZSA9PSAnZHJvcGRvd24nKXtcbiAgICAgICAgY29uc3QgY2hvaWNlOnN0cmluZyA9IHRoaXMucXVlc3Rpb24uZGVmYXVsdFZhbHVlO1xuICAgICAgICB2YXIganNvbk9iamVjdDogQ2hvaWNlcyA9IEpTT04ucGFyc2UoY2hvaWNlKTsgIFxuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUodGhpcy5xdWVzdGlvbi5uYW1lLCB0aGlzLnF1ZXN0aW9uLmNob2ljZXMuZmlsdGVyKGMgPT4gYy52YWx1ZSA9PSBqc29uT2JqZWN0LnZhbHVlKVswXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUodGhpcy5xdWVzdGlvbi5uYW1lLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIFtpZF09XCIncXVlc3Rpb24tZGl2LScgKyBxdWVzdGlvbi5uYW1lXCI+XHJcbiAgPHAtZGlhbG9nICpuZ0lmPVwiZGlzcGxheVBvc2l0aW9uXCIgWyh2aXNpYmxlKV09XCJkaXNwbGF5UG9zaXRpb25cIiBbcG9zaXRpb25dPVwicG9zaXRpb25cIlxyXG4gICAgW21vZGFsXT1cInRydWVcIiBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc0NXZ3J31cIlxyXG4gICAgW2Jhc2VaSW5kZXhdPVwiNTAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCIgYXBwZW5kVG89XCJib2R5XCIgY2xvc2VPbkVzY2FwZT1cImZhbHNlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG5cclxuICAgIDxoNCBjbGFzcz1cImhlYWRpbmcgaW9uLXBhZGRpbmctbGVmdFwiPlxyXG4gICAgICB7e3BvcFVwSGVhZGVyfX1cclxuICAgIDwvaDQ+XHJcbiAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBvcFVwVGV4dClcIj48L2Rpdj5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiICpuZ0lmPVwicG9wVXBOb0FjdGlvbkxhYmVsXCIgc2l6ZT1cInNtYWxsXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cInJlamVjdCgpXCI+XHJcbiAgICAgICAge3twb3BVcE5vQWN0aW9uTGFiZWx9fVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKm5nSWY9XCJwb3BVcFllc0FjdGlvbkxhYmVsXCIgc2l6ZT1cInNtYWxsXCIgdHlwZT1cInN1Ym1pdFwiIGZpbGw9XCJzb2xpZFwiIChjbGljayk9XCJhY2NlcHQoKVwiPlxyXG4gICAgICAgIHt7cG9wVXBZZXNBY3Rpb25MYWJlbH19XHJcbiAgICAgIDwvaW9uLWJ1dHRvbj5cclxuXHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvcC1kaWFsb2c+XHJcbiAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgKm5nSWY9XCIhZm9yU2NyZWVuUXVlc3Rpb25uYWlyZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlxyXG4gICAgPGxhYmVsIFthdHRyLmZvcl09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5pbmRlbnQ9PT0xICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiBxdWVzdGlvbi50eXBlIT0naGlkZGVuJyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnXCI+XHJcbiAgICAgIDxzcGFuIFtpbm5lckh0bWxdPVwicXVlc3Rpb24udGl0bGUgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAqbmdJZj1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmUgJiYgcXVlc3Rpb24uaW5kZW50PT09MSAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbicgJiYgcXVlc3Rpb24uZGVzY3JpcHRpb24gJiYgcXVlc3Rpb24udHlwZSE9J3NpbXBsZWNoZWNrYm94JyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbC13aXRoLW92ZXJsYXknXCI+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiXHJcbiAgICAqbmdJZj1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmUgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmIChxdWVzdGlvbi5jdXN0b21UYWchPSdjb21wb25lbnQnIHx8IChxdWVzdGlvbi5jdXN0b21UYWc9PSdjb21wb25lbnQnICYmIHNob3dMYWJlbEZvckN1c3RvbUNvbXBvbmVudCgpKSkgJiYgcXVlc3Rpb24uaW5kZW50PT09MSAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbicgJiYgIXF1ZXN0aW9uLmRlc2NyaXB0aW9uICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbCcgJiYgcXVlc3Rpb24udHlwZSE9J3NpbXBsZWNoZWNrYm94J1wiPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCJxdWVzdGlvbi50aXRsZSB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgKm5nSWY9XCJmb3JTY3JlZW5RdWVzdGlvbm5haXJlICYmICFxdWVzdGlvbi5jdXN0b21UYWcgICYmIHF1ZXN0aW9uLmluZGVudD09PTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdoaWRkZW4nICYmICFxdWVzdGlvbi5kZXNjcmlwdGlvbiAmJiBxdWVzdGlvbi50eXBlIT0nc2ltcGxlY2hlY2tib3gnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbCcgJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsLXdpdGgtb3ZlcmxheSdcIj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwicXVlc3Rpb24udGl0bGUgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdjb21wb25lbnQnICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiAhcXVlc3Rpb24uZGVzY3JpcHRpb25cIj5cclxuICAgIDxhcHAtZW1wbG95ZXItZ3JpZCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybV09XCJmb3JtXCIgW2R5bmFtaWNQYXJhbV09XCJkeW5hbWljUGFyYW1cIlxyXG4gICAgICAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWVtcGxveWVyLWdyaWQnXCIgKG1vZGVsRGlzcGxheSk9XCJvbk1vZGVsRGlzcGxheSgkZXZlbnQpXCI+PC9hcHAtZW1wbG95ZXItZ3JpZD5cclxuICAgIDxhcHAtbGVnYWwtZGlzY2xhaW1hciAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWxlZ2FsLWRpc2NsYWltYXInXCJcclxuICAgICAgW2NvbXBvbmVudERhdGFdPVwicXVlc3Rpb24uY29tcG9uZW50RGF0YVwiIChhY2NlcHRlZCk9XCJvbkFjY2VwdGVkKCRldmVudClcIiBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIiBbZm9ybV09XCJmb3JtXCI+XHJcbiAgICA8L2FwcC1sZWdhbC1kaXNjbGFpbWFyPlxyXG4gICAgPG1vbmV5LWV4cGVjdCAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nbW9uZXktZXhwZWN0J1wiIFtjb21wb25lbnREYXRhXT1cInF1ZXN0aW9uLmNvbXBvbmVudERhdGFcIiA+PC9tb25leS1leHBlY3Q+XHJcbiAgICA8YXBwLWNhcHRjaGEgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1jYXB0Y2hhJ1wiPjwvYXBwLWNhcHRjaGE+XHJcblxyXG4gICAgPGFwcC1maWxlLXVwbG9hZGVyIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtZmlsZS11cGxvYWRlcidcIj5cclxuICAgIDwvYXBwLWZpbGUtdXBsb2FkZXI+XHJcbiAgICA8YXBwLWFkZHJlc3MgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2Zyb21Qb3B1cF09XCJmYWxzZVwiIFtjb3VudHlSZXF1aXJlZF09XCJxdWVzdGlvbi5jb3VudHlSZXF1aXJlZFwiXHJcbiAgICAgICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtYWRkcmVzcydcIiAjYWRkcmVzcyBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCI+IDwvYXBwLWFkZHJlc3M+XHJcbiAgICBcclxuICAgIDxhcHAtam9iLXRpdGxlIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtpc1JlcXVpcmVkXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWRcIlxyXG4gICAgICAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWpvYi10aXRsZSdcIiA+IDwvYXBwLWpvYi10aXRsZT4gIFxyXG4gICAgXHJcbiAgICA8YXBwLWJhbmstZGV0YWlscyBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWJhbmstZGV0YWlscydcIiAjYmFua2R0bHM+XHJcbiAgICA8L2FwcC1iYW5rLWRldGFpbHM+XHJcbiAgICA8YXBwLXJlcXVhbGlmeS1saWZ0LXByZXZpb3VzLWlzc3VlcyAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXJlcXVhbGlmeS1saWZ0LXByZXZpb3VzLWlzc3VlcydcIlxyXG4gICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2NvbXBvbmVudERhdGFdPVwicXVlc3Rpb24uY29tcG9uZW50RGF0YVwiIFtmb3JtXT1cImZvcm1cIiA+XHJcbiAgICA8L2FwcC1yZXF1YWxpZnktbGlmdC1wcmV2aW91cy1pc3N1ZXM+IFxyXG4gICAgPGFwcC1kZXBlbmRlbnQtZ3JpZCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWRlcGVuZGVudC1ncmlkJ1wiPjwvYXBwLWRlcGVuZGVudC1ncmlkPlxyXG4gICAgPGFwcC13ZWVrbHktY2VydC1lbXBsb3llci1ncmlkICN3Y0VtcGxveWVyR3JpZCBbZHluYW1pY1BhcmFtXT1cImR5bmFtaWNQYXJhbVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtd2Vla2x5LWNlcnQtZW1wbG95ZXItZ3JpZCdcIj48L2FwcC13ZWVrbHktY2VydC1lbXBsb3llci1ncmlkPlxyXG4gICAgPGFwcC1zZWFyY2gtZW1wbG95ZXIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgZW1wVHlwZT1cIlJFR1wiIChvbkZvdW5kKT1cInNldEVtcGxveWVyKCRldmVudClcIiBcclxuICAgIChvbkVtcHR5KT1cInJlc2V0RW1wbG95ZXIoKVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtc2VhcmNoLWVtcGxveWVyJ1wiPjwvYXBwLXNlYXJjaC1lbXBsb3llcj5cclxuICAgIDxhcHAtYWRkLXBhcnRpY2lwYW50IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtYWRkLXBhcnRpY2lwYW50J1wiPiA8L2FwcC1hZGQtcGFydGljaXBhbnQ+XHJcbiAgICA8YXBwLWFkZC1wYXltZW50IFtwb3RlbnRpYWxJc3N1ZUlkXT1cInBvdGVudGlhbElzc3VlSWRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWFkZC1wYXltZW50J1wiPjwvYXBwLWFkZC1wYXltZW50PlxyXG4gICAgPGFwcC1saW5rIFtpc1JlcXVpcmVkXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWxpbmsnXCIgW3RleHRdPVwibGlua0NvbXBvbmVudERhdGE/LnRleHRcIiBbdXJpXT1cImxpbmtDb21wb25lbnREYXRhPy51cmlcIiBbZXh0ZXJuYWxVcmxdPVwibGlua0NvbXBvbmVudERhdGE/LmV4dGVybmFsVXJsXCI+PC9hcHAtbGluaz5cclxuICAgIDxhcHAtc2lnbi1zc24gW2lzUmVxdWlyZWRdPVwicXVlc3Rpb24uaXNSZXF1aXJlZFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtc2lnbi1zc24nXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiPjwvYXBwLXNpZ24tc3NuPlxyXG4gICAgPGFwcC1lbXBsb3llci1wYXktZ3JpZCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWVtcGxveWVyLXBheS1ncmlkJ1wiPjwvYXBwLWVtcGxveWVyLXBheS1ncmlkPlxyXG4gICAgPGFwcC1zbXMgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1zbXMnXCIgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCIgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgKGFjY2VwdGVkKT1cIm9uQWNjZXB0ZWRPdHAoJGV2ZW50KVwiPjwvYXBwLXNtcz5cclxuICAgIDxhcHAtZmFybS11c2FnZSBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWZhcm0tdXNhZ2UnXCI+PC9hcHAtZmFybS11c2FnZT5cclxuICAgIDxhcHAtd2FnZS1ncmlkIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtd2FnZS1ncmlkJ1wiPjwvYXBwLXdhZ2UtZ3JpZD5cclxuICAgIDxhcHAtZ3Jvc3MtZWFybmluZ3MgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1ncm9zcy1lYXJuaW5ncydcIj48L2FwcC1ncm9zcy1lYXJuaW5ncz5cclxuICAgIDxhcHAtc2Nyb2xsYWJsZS10ZXh0IFtjb21wb25lbnREYXRhXT1cInF1ZXN0aW9uLmNvbXBvbmVudERhdGFcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLXNjcm9sbGFibGUtdGV4dCdcIj48L2FwcC1zY3JvbGxhYmxlLXRleHQ+XHJcbiAgICA8YXBwLWVtcGxveWVyLWluZm8gW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1lbXBsb3llci1pbmZvJ1wiPjwvYXBwLWVtcGxveWVyLWluZm8+XHJcbiAgICA8YXBwLWlkbWUgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1pZG1lJ1wiPjwvYXBwLWlkbWU+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5pbmRlbnQhPTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbidcIiBjbGFzcz1cImZvcm0tbGFiZWxcIiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi50eXBlPT09J2h0bWwnXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgPGRpdiAgW2lubmVySFRNTF09XCJxdWVzdGlvbi5odG1sIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIlxyXG4gICAgICBzdHlsZT1cImNvbG9yOnZhcigtLWlvbi1jb2xvci1tZWRpdW0tZ3JheSk7IHBhZGRpbmctdG9wOiAyMHB4O1wiIGNsYXNzPVwiaGVhZGluZ1wiPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDoxM3B4XCI+XHJcbiAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgXHJcbiAgPGRpdiBbbmdTd2l0Y2hdPVwicXVlc3Rpb24udHlwZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0nZGF0ZSdcIj5cclxuICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgICA8cC1jYWxlbmRhciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW21vbnRoTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwOTlcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIFttaW5EYXRlXT1cInNob3dNaW5EYXRlID8gbWluRGF0ZSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgIFttYXhEYXRlXT1cInNob3dNYXhEYXRlID8gbWF4RGF0ZSA6IG51bGxcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBhcHBlbmRUbz1cImJvZHlcIiBkYXRhVHlwZT1cInN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgKG9uQmx1cik9XCJ2YWxpZGF0ZShxdWVzdGlvbilcIiAob25TZWxlY3QpPVwidmFsaWRhdGUocXVlc3Rpb24pXCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICAgICAgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIiBbaWNvbkFyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWc9PT0nc3NuJ1wiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OS05OS05OTk5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiOTk5LTk5LTk5OTlcIiAob25Db21wbGV0ZSk9XCJ2YWxpZGF0ZShxdWVzdGlvbilcIiAob25Gb2N1cyk9XCJ1bm1hc2soJGV2ZW50KVwiIChvbkJsdXIpPVwibWFzaygkZXZlbnQpXCIgW3R5cGVdPVwidHlwZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgIDwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnPT09J2VhbidcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXRNYXNrIG1hc2s9XCI5OS05OTk5OS05LTk5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiOTktOTk5OTktOS05OVwiIFt2YWx1ZV09XCI4MS0wMDU4Ni0wLTAxXCIgKG9uQ29tcGxldGUpPVwidmFsaWRhdGUocXVlc3Rpb24pXCI+XHJcbiAgICAgICAgICA8L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdkdWVhbXQnXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBtb2RlPVwiZGVjaW1hbFwiIGxvY2FsZT1cImVuLVVTXCJcclxuICAgICAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiAoIXF1ZXN0aW9uLmN1c3RvbVRhZyAgfHwgIHF1ZXN0aW9uLmN1c3RvbVRhZz09PSdPcHRpb25hbCcpICYmICFxdWVzdGlvbi5pc1JlcXVpcmVkXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwicXVlc3Rpb24uc2l6ZSAmJiBxdWVzdGlvbi5tYXhMZW5ndGhcIlxyXG4gICAgICAgICAgICBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIHBsYWNlaG9sZGVyPVwiT3B0aW9uYWxcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwicXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgIHBsYWNlaG9sZGVyPVwiT3B0aW9uYWxcIlxyXG4gICAgICAgICAgICBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXF1ZXN0aW9uLnNpemUgJiYgcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk9wdGlvbmFsXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIC8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmICFxdWVzdGlvbi5tYXhMZW5ndGhcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgcGxhY2Vob2xkZXI9XCJPcHRpb25hbFwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS1Vc2VyIE5hbWUtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiAhcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmlzUmVxdWlyZWRcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiIFxyXG4gICAgICAgICAgICBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgIXF1ZXN0aW9uLm1heExlbmd0aFwiICBbaWRdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgICFxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bob25lJylcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwieydwYWRkaW5nLWxlZnQucHgnOiBxdWVzdGlvbi5pbmRlbnQqMTB9XCIgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bob25lJylcIj5cclxuICAgICAgICAgIDxwLWlucHV0TWFzayBtYXNrPVwiOTk5LTk5OS05OTk5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24uaXNSZXF1aXJlZCA/ICc5OTktOTk5LTk5OTknIDogJ09wdGlvbmFsJ1wiXHJcbiAgICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1wiIChvbkJsdXIpPVwiY2hlY2tGb3JWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bhc3N3b3JkJylcIj5cclxuICAgICAgICAgIDxwLXBhc3N3b3JkIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbdG9nZ2xlTWFza109XCJ0cnVlXCIgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiB3ZWFrTGFiZWw9XCJXZWFrIHBhc3N3b3JkXCIgXHJcbiAgICAgICAgICBtZWRpdW1MYWJlbD1cIldlYWsgcGFzc3dvcmRcIiBzdHJvbmdMYWJlbD1cIlN0cm9uZyBwYXNzd29yZFwiIHN0cm9uZ1JlZ2V4PVwiXig/PS4qW2Etel0pKD89LipbQS1aXSkoPz0uKlswLTldKSg/PS4qW19AKiQhIy5dKy4qW19AKiQhIy5dKSg/PS57MTQsfSlcIiBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgICAgICAgICAgIDxwLWRpdmlkZXI+PC9wLWRpdmlkZXI+XHJcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtdC0xXCIgc3R5bGU9XCJmb250LXNpemU6IHNtYWxsO1wiPlBhc3N3b3JkIG11c3QgaW5jbHVkZSBhdCBsZWFzdDwvcD5cclxuICAgICAgICAgICAgICA8dWwgc3R5bGU9XCJsaW5lLWhlaWdodDogMS4yNVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+MSBsb3dlcmNhc2UgbGV0dGVyPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPjEgdXBwZXJjYXNlIGxldHRlcjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj4xIG51bWJlcjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIiAqbmdJZj1cIiFpc1NhbWVTeW1ib2xQb2xpY3lGb3JDbGFpbWFudEFuZEFnZW5jeVwiPjEgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIDxiPl8gJiM2NDsgKiAkICEgIyAuPC9iPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIiAqbmdJZj1cImlzU2FtZVN5bWJvbFBvbGljeUZvckNsYWltYW50QW5kQWdlbmN5XCI+MiBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnMgPGI+XyAmIzY0OyAqICQgISAjIC48L2I+PC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiICpuZ0lmPVwiIWlzTmV3UGFzc3dvcmRQb2xpY3lFbmFibGVkRm9yQ2xhaW1hbnRcIj44IGNoYXJhY3RlcnM8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCIgKm5nSWY9XCJpc05ld1Bhc3N3b3JkUG9saWN5RW5hYmxlZEZvckNsYWltYW50XCI+MTQgY2hhcmFjdGVyczwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICA8cC1kaXZpZGVyPjwvcC1kaXZpZGVyPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwibXQtMVwiIHN0eWxlPVwiZm9udC1zaXplOiBzbWFsbDtcIj5TdWdnZXN0aW9uPC9wPlxyXG4gICAgICAgICAgICAgIDx1bCBzdHlsZT1cImxpbmUtaGVpZ2h0OiAxLjI1XCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+RG9uJ3QgdXNlIHlvdXIgbmFtZSwgZW1haWwgb3IgcGhvbmU8L2xpPlxyXG4gICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPkRvbid0IHVzZSB5b3VyIGtpZCwgcGFydG5lciBvciBwZXQgbmFtZS48L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9wLXBhc3N3b3JkPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZy5pbmNsdWRlcygnZmlsZXVwbG9hZCcpXCI+XHJcbiAgICAgICAgICA8YXBwLWZpbGUtdXBsb2FkZXIgW2FsbG93ZWRGaWxlVHlwZV09XCJxdWVzdGlvbi5hbGxvd2VkRmlsZVR5cGVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgICBbbWF4U2l6ZUluTUJdPVwicXVlc3Rpb24uc2l6ZUluTUJcIiBbbXVsdGlwbGVdPVwicXVlc3Rpb24ubXVsdGlwbGVcIiBbbm9PZkZpbGVzVG9VcGxvYWRdPVwicXVlc3Rpb24ubm9PRkZpbGVzXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgPC9hcHAtZmlsZS11cGxvYWRlcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLUVtYWlsIEFkZHJlc3MtLT5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnXHJcbiAgICAgICAgICAgICAgICAgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAgJiYgKHF1ZXN0aW9uLmN1c3RvbVRhZyE9J3NzbicgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nT3B0aW9uYWwnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2ZpbGV1cGxvYWQnICBcclxuICAgICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0ncGhvbmUnICAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdlYW4nICAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdkdWVhbXQnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J3Bhc3N3b3JkJykgXCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBcclxuICAgICAgICAgICAgKGJsdXIpPVwiY2hlY2tGb3JWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFxdWVzdGlvbi5pbnB1dFR5cGUgJiYgIXF1ZXN0aW9uLmN1c3RvbVRhZ1wiIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplXCIgIHBJbnB1dFRleHRcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwiIXF1ZXN0aW9uLnNpemVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSA8L2lvbi1jb2w+XHJcbiAgICA8aW9uLWNvbCBzaXplPVwiMVwiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctdG9wOiAxMnB4XCI+XHJcbiAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgPC9pb24tY29sPlxyXG4gIDwvaW9uLXJvdz4gLS0+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29tbWVudCdcIj5cclxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgKm5nSWY9XCJxdWVzdGlvbi5tYXhMZW5ndGhcIj5cclxuICAgICAgICA8dGV4dGFyZWEgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBhdXRvUmVzaXplPVwidHJ1ZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIFtyb3dzXT1cIjNcIiBbY29sc109XCIzNVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgPGRpdj5cclxuXHJcbiAgICAgICAgICA8c21hbGwgc3R5bGVDbGFzcz1cInAtZC1ibG9ja1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIj57e3F1ZXN0aW9uLmRlc2NyaXB0aW9ufX08L3NtYWxsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiICpuZ0lmPVwiIXF1ZXN0aW9uLm1heExlbmd0aFwiPlxyXG4gICAgICAgIDx0ZXh0YXJlYSBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIGF1dG9SZXNpemU9XCJ0cnVlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW3Jvd3NdPVwiM1wiXHJcbiAgICAgICAgICBbY29sc109XCIzNVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICA8ZGl2PlxyXG5cclxuICAgICAgICAgIDxzbWFsbCBzdHlsZUNsYXNzPVwicC1kLWJsb2NrXCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiPnt7cXVlc3Rpb24uZGVzY3JpcHRpb259fTwvc21hbGw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkcm9wZG93bidcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWF1dG9Db21wbGV0ZSAqbmdJZj1cImZhbHNlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW3N1Z2dlc3Rpb25zXT1cImZpbHRlclJlc3VsdFwiIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAgIChjb21wbGV0ZU1ldGhvZCk9XCJmaWx0ZXJWYWx1ZSgkZXZlbnQscXVlc3Rpb24pXCIgZmllbGQ9XCJ0ZXh0XCIgW2Ryb3Bkb3duXT1cInRydWVcIiBtaW5MZW5ndGg9XCIxXCJcclxuICAgICAgICAgICAgW2ZvcmNlU2VsZWN0aW9uXT1cInRydWVcIiAob25TZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50LHF1ZXN0aW9uLm5hbWUpXCIgW2NvbXBsZXRlT25Gb2N1c109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFsdWUgcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2Pnt7dmFsdWUudGV4dH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPlxyXG4gICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJmaWx0ZXJSZXN1bHRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBvcHRpb25MYWJlbD1cInRleHRcIiBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgKG9uQ2hhbmdlKT1cIm9uU2VsZWN0KCRldmVudCxxdWVzdGlvbi5uYW1lKVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgKG9uQ2xpY2spPVwiZmlsdGVyVmFsdWUoJGV2ZW50LHF1ZXN0aW9uKVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncmFkaW9ncm91cCcgXCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJxdWVzdGlvbi5jaG9pY2VzXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIChvbk9wdGlvbkNsaWNrKT1cIm9uUmFkaW9PcHRpb25DbGljaygkZXZlbnQscXVlc3Rpb24pXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE51bWJlciBmb3JtQ29udHJvbE5hbWU9XCJ7e3F1ZXN0aW9uLm5hbWV9fVwiIG1vZGU9XCJkZWNpbWFsXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiXHJcbiAgICAgICAgICBbbWluXT1cIm1pblZhbHVlXCIgW21heF09XCJtYXhWYWx1ZVwiXHJcbiAgICAgICAgICBbc2l6ZV09XCJxdWVzdGlvbi5zaXplID8gcXVlc3Rpb24uc2l6ZSA6IG51bGxcIiBbbWF4bGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aCA/IHF1ZXN0aW9uLm1heExlbmd0aCA6IG51bGxcIiBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIiBbcmVxdWlyZWRdPVwicXVlc3Rpb24uaXNSZXF1aXJlZFwiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkZWNpbWFsJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXROdW1iZXIgZm9ybUNvbnRyb2xOYW1lPVwie3txdWVzdGlvbi5uYW1lfX1cIiBtb2RlPVwiZGVjaW1hbFwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBcclxuICAgICAgICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCIgW21heEZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbbWluXT1cIm1pblZhbHVlXCIgXHJcbiAgICAgICAgICBbbWF4XT1cIm1heFZhbHVlXCIgW3NpemVdPVwicXVlc3Rpb24uc2l6ZSA/IHF1ZXN0aW9uLnNpemUgOiBudWxsXCIgIFttYXhsZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoID8gcXVlc3Rpb24ubWF4TGVuZ3RoIDogbnVsbFwiIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiIFtyZXF1aXJlZF09XCJxdWVzdGlvbi5pc1JlcXVpcmVkXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2N1cnJlbmN5J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXROdW1iZXIgZm9ybUNvbnRyb2xOYW1lPVwie3txdWVzdGlvbi5uYW1lfX1cIiBtb2RlPVwiY3VycmVuY3lcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCIgXHJcbiAgICAgICAgICBbbWluRnJhY3Rpb25EaWdpdHNdPVwiMlwiIFttYXhGcmFjdGlvbkRpZ2l0c109XCIyXCIgY3VycmVuY3k9XCJVU0RcIiBbbWluXT1cIm1pblZhbHVlXCIgXHJcbiAgICAgICAgICBbbWF4XT1cIm1heFZhbHVlXCIgW3NpemVdPVwicXVlc3Rpb24uc2l6ZSA/IHF1ZXN0aW9uLnNpemUgOiBudWxsXCIgIFttYXhsZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoID8gcXVlc3Rpb24ubWF4TGVuZ3RoIDogbnVsbFwiIFxyXG4gICAgICAgICAgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIiBbcmVxdWlyZWRdPVwicXVlc3Rpb24uaXNSZXF1aXJlZFwiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjaGVja2JveCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiBjbGFzcz1cImZvcm1ncm91cC1pbmxpbmVcIj5cclxuICAgICAgICAgICAgPHAtY2hlY2tib3ggW25hbWVdPVwicXVlc3Rpb24ubmFtZSArICctZ3JvdXAnXCIgW3ZhbHVlXT1cImNob2ljZS52YWx1ZVwiIFxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJjaG9pY2UudGV4dFwiICpuZ0Zvcj1cImxldCBjaG9pY2Ugb2YgcXVlc3Rpb24uY2hvaWNlc1wiIFtmb3JtQ29udHJvbF09XCJmb3JtLmNvbnRyb2xzW3F1ZXN0aW9uLm5hbWVdXCJcclxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiYXBwLXAtY2hlY2tib3hcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lICsgJy0nICsgY2hvaWNlLnZhbHVlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbXVsdGljaGVja2JveCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgICAgPHAtY2hlY2tib3ggW25hbWVdPVwicXVlc3Rpb24ubmFtZSArICctZ3JvdXAnXCIgW3ZhbHVlXT1cImNob2ljZS52YWx1ZVwiIFxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJjaG9pY2UudGV4dFwiICpuZ0Zvcj1cImxldCBjaG9pY2Ugb2YgcXVlc3Rpb24uY2hvaWNlc1wiIFtmb3JtQ29udHJvbF09XCJmb3JtLmNvbnRyb2xzW3F1ZXN0aW9uLm5hbWVdXCJcclxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiYXBwLXAtY2hlY2tib3hcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lICsgJy0nICsgY2hvaWNlLnZhbHVlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2luZ2xlc2VsZWN0Y2hlY2tib3gnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInF1ZXN0aW9uLmNob2ljZXNcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbbXVsdGlwbGVdPWZhbHNlXHJcbiAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2ltcGxlY2hlY2tib3gnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLWNoZWNrYm94XCI+XHJcbiAgICAgICAgICA8cC1jaGVja2JveCBiaW5hcnk9XCJ0cnVlXCIgaW5wdXRJZD1cImJpbmFyeVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj48L3AtY2hlY2tib3g+XHJcbiAgICAgICAgICA8bGFiZWwgZm9yPVwiYmluYXJ5XCI+e3txdWVzdGlvbi50aXRsZX19PC9sYWJlbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDogM3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Rpc3BsYXl0ZXh0YXNsYWJlbCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8bGFiZWw+e3tnZXRUZXh0KGZvcm0uY29udHJvbHNbcXVlc3Rpb24ubmFtZV0udmFsdWUpfX08L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiLz5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xhYmVsJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxsYWJlbD57e3F1ZXN0aW9uLnRpdGxlfX08L2xhYmVsPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAycHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xhYmVsLXdpdGgtb3ZlcmxheSdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbZGlzcGxheVRleHRdPVwicXVlc3Rpb24udGl0bGVcIiAgW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIiBbZGlzcGxheUFzTGFiZWxdPVwidHJ1ZVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidsYWJlbC13aXRoLWxpbmsnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW2Rpc3BsYXlUZXh0XT1cInF1ZXN0aW9uLnRpdGxlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIiBbbGFiZWxXaXRoTGlua109XCJ0cnVlXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xhYmVsLXdpdGgtcG9wdXAnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW2Rpc3BsYXlUZXh0XT1cInF1ZXN0aW9uLnRpdGxlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2xhYmVsV2l0aFBvcHVwXT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIiBbbGFiZWxXaXRoTGlua109XCJ0cnVlXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgXHJcbiAgICA8bmctY29udGFpbmVyIGNsYXNzPVwicmVzcG9uc2l2ZVwiICpuZ1N3aXRjaENhc2U9XCIncGFuZWwnXCI+XHJcbiAgICAgIDxpb24tcm93PlxyXG4gICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgcXVlc3Rpb24uZWxlbWVudHNcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCAqbmdJZj1cImVsZW1lbnQuY29sRWxlbWVudD09PSdDT0wxJyAmJiB2aXNpYmxlSWYoZWxlbWVudC52aXNpYmxlSWYsZWxlbWVudC5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICBbc2l6ZVhsXT1cImVsZW1lbnQuc2l6ZVhMXCIgW3NpemVMZ109XCJlbGVtZW50LnNpemVMR1wiIFtzaXplTWRdPVwiZWxlbWVudC5zaXplTURcIlxyXG4gICAgICAgICAgICAgICAgW29mZnNldE1kXT1cImVsZW1lbnQub2ZmU2V0TURcIiBjbGFzcz1cImNvbC1maXQtY29udGVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1xdWVzdGlvbiBbcXVlc3Rpb25dPVwiZWxlbWVudFwiIFtmb3JtXT1cImZvcm1cIiBbZm9yU2NyZWVuUXVlc3Rpb25uYWlyZV09XCJmb3JTY3JlZW5RdWVzdGlvbm5haXJlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1xdWVzdGlvbj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHF1ZXN0aW9uLmVsZW1lbnRzXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJlbGVtZW50LmNvbEVsZW1lbnQ9PT0nQ09MMicgJiYgdmlzaWJsZUlmKGVsZW1lbnQudmlzaWJsZUlmLGVsZW1lbnQubmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgW3NpemVYbF09XCJlbGVtZW50LnNpemVYTFwiIFtzaXplTGddPVwiZWxlbWVudC5zaXplTEdcIiBbc2l6ZU1kXT1cImVsZW1lbnQuc2l6ZU1EXCJcclxuICAgICAgICAgICAgICAgIFtvZmZzZXRNZF09XCJlbGVtZW50Lm9mZlNldE1EXCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXF1ZXN0aW9uIFtxdWVzdGlvbl09XCJlbGVtZW50XCIgW2Zvcm1dPVwiZm9ybVwiIFtmb3JTY3JlZW5RdWVzdGlvbm5haXJlXT1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmVcIj5cclxuICAgICAgICAgICAgICAgIDwvYXBwLXF1ZXN0aW9uPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiAqbmdJZj1cInF1ZXN0aW9uLnR5cGUhPSdwYW5lbCdcIj5cclxuICAgIDxzbWFsbCBjbGFzcz1cInAtZXJyb3JcIiAqbmdJZj1cImlzVmFsaWQhPScnXCIgW0Byb3dFeHBhbnNpb25UcmlnZ2VyXT1cIidhY3RpdmUnXCI+e3tpc1ZhbGlkIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW19fTwvc21hbGw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
2428
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DynamicFormQuestionComponent, { className: "DynamicFormQuestionComponent", filePath: "lib\\components\\questionnaire\\dynamic-form-question.component.ts", lineNumber: 60 }); })();
|
|
2429
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXF1ZXN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbm5haXJlL2R5bmFtaWMtZm9ybS1xdWVzdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb25uYWlyZS9keW5hbWljLWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUF3QixTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBUWxMLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQVU3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUl2RSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQ1pyRSxzQ0FBa0g7SUFBbkIsZ05BQVMsZUFBQSxnQkFBUSxDQUFBLElBQUM7SUFDL0csWUFDRjtJQUFBLGlCQUFhOzs7SUFEWCxlQUNGO0lBREUsMkRBQ0Y7Ozs7SUFFQSxzQ0FBaUg7SUFBbkIsZ05BQVMsZUFBQSxnQkFBUSxDQUFBLElBQUM7SUFDOUcsWUFDRjtJQUFBLGlCQUFhOzs7SUFEWCxlQUNGO0lBREUsNERBQ0Y7OztJQU5BLHFIQUVhLHdHQUFBOzs7SUFGYyxpREFBd0I7SUFJeEIsZUFBeUI7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RyxZQUFZO2tCQUFwQixLQUFLO1lBQ0csZ0JBQWdCO2tCQUF4QixLQUFLO1lBRUksb0JBQW9CO2tCQUE3QixNQUFNO1lBdUNnQixRQUFRO2tCQUE5QixTQUFTO21CQUFDLFVBQVU7WUFDSSxTQUFTO2tCQUFqQyxZQUFZO21CQUFDLFNBQVM7WUFDTSxjQUFjO2tCQUExQyxTQUFTO21CQUFDLGdCQUFnQjtZQUNILFNBQVM7a0JBQWhDLFNBQVM7bUJBQUMsV0FBVzs7a0ZBbERYLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9FbGVtZW50c01vZGVsJztcclxuaW1wb3J0IHsgS2V5VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0tleVZhbHVlTW9kZWwnO1xyXG5pbXBvcnQgeyBTZXJ2aWNlQWN0aW9uUmVzcG9uc2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL1NlcnZpY2VBY3Rpb25SZXNwb25zZU1vZGVsJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvVmFsaWRhdGlvbk1vZGVsJztcclxuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcXVlc3Rpb25uYWlyZS92YWxpZGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hvaWNlcywgUXVlc3Rpb25Db250cm9sU2VydmljZSB9IGZyb20gJy4vcXVlc3Rpb24tY29udHJvbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUXVlc3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9xdWVzdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9hZGVyTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9Mb2FkZXJNb2RlbCc7XHJcbmltcG9ydCB7IEFkZHJlc3NDb21wb25lbnQgfSBmcm9tICcuLi9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFua0RldGFpbHNDb21wb25lbnQgfSBmcm9tICcuLi9iYW5rLWRldGFpbHMvYmFuay1kZXRhaWxzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQnO1xyXG5pbXBvcnQgeyByb3dFeHBhbnNpb25UcmlnZ2VyIH0gZnJvbSAnLi4vLi4vYW5uaW1hdGlvbnMvYXBwLWFuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBXZWVrbHlDZXJ0RW1wbG95ZXJHcmlkQ29tcG9uZW50IH0gZnJvbSAnLi4vd2Vla2x5LWNlcnQtZW1wbG95ZXItZ3JpZC93ZWVrbHktY2VydC1lbXBsb3llci1ncmlkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENsYWltYW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltYW50LXNlcnZpY2UvY2xhaW1hbnQuc2VydmljZSc7XHJcbmltcG9ydCB7V2Vla2x5Q2VydFNlcnZpY2VWMn0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtdjIuc2VydmljZSc7XHJcbmltcG9ydCB7UGFydGlhbEVtcGxveW1lbnRNb2RlbH0gZnJvbSAnLi4vLi4vbW9kZWxzL1BhcnRpYWxFbXBsb3ltZW50TW9kZWwnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuXHJcbmludGVyZmFjZSBWYWx1ZUNoYW5nZUNvbXBvbmVudE1vZGVsIHtcclxuICBvcmlnaW5hbFZhbHVlQ29udHJvbDogc3RyaW5nO1xyXG4gIGZvcm1Db250cm9sVG9VcGRhdGU6IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIEVtcGxveWVyQWRkcmVzc1VwZGF0ZU1vZGVsIHtcclxuICBhZGRyZXNzRm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgZW1wbG95ZXJJZEZvcm1Db250cm9sTmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTWluTWF4RGF0ZU1vZGVsIHtcclxuICBtaW5EYXRlS2V5OiBzdHJpbmc7XHJcbiAgbWF4RGF0ZUtleTogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTWluTWF4VmFsdWVNb2RlbCB7XHJcbiAgbWluVmFsdWU6IHN0cmluZztcclxuICBtYXhWYWx1ZTogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTGlua0NvbXBvbmVudE1vZGVsIHtcclxuICB1cmk6IHN0cmluZztcclxuICBleHRlcm5hbFVybDogc3RyaW5nO1xyXG4gIHRleHQ6IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtcXVlc3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZvcm0tcXVlc3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS1xdWVzdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxuICBhbmltYXRpb25zOiBbcm93RXhwYW5zaW9uVHJpZ2dlcl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVF1ZXN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBASW5wdXQoKSBxdWVzdGlvbjogRWxlbWVudHNNb2RlbDtcclxuICBASW5wdXQoKSBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGluZGV4TnVtYmVyOiBudW1iZXI7XHJcbiAgQElucHV0KCkgZm9yU2NyZWVuUXVlc3Rpb25uYWlyZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkeW5hbWljUGFyYW06IGFueTtcclxuICBASW5wdXQoKSBwb3RlbnRpYWxJc3N1ZUlkOiBudW1iZXI7XHJcblxyXG4gIEBPdXRwdXQoKSBvbkR5bmFtaWNQYXJhbVVwZGF0ZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGZpbHRlclJlc3VsdDogYW55W107XHJcbiAgbWluRGF0ZTogRGF0ZTtcclxuICBsZWdhbEFjY2VwdGVkOiBib29sZWFuID0gbnVsbDtcclxuICBtYXhEYXRlOiBEYXRlO1xyXG4gIGluZGV4OiBudW1iZXIgPSAxO1xyXG4gIHJldHVybk1vZGVsID0gbmV3IFZhbGlkYXRpb25Nb2RlbCgpO1xyXG4gIGRpc3BsYXlQb3NpdGlvbjogYm9vbGVhbjtcclxuICBwb3NpdGlvbjogc3RyaW5nO1xyXG4gIHBvcFVwSGVhZGVyOiBzdHJpbmc7XHJcbiAgcG9wVXBUZXh0OiBzdHJpbmc7XHJcbiAgcG9wVXBZZXNBY3Rpb25MYWJlbDogc3RyaW5nO1xyXG4gIHBvcFVwTm9BY3Rpb25MYWJlbDogc3RyaW5nO1xyXG4gIG1hc2tDbGFzcyA9IHRydWU7XHJcbiAgc2hvd01pbkRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaG93TWF4RGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1pblZhbHVlID0gbnVsbDtcclxuICBtYXhWYWx1ZSA9IG51bGw7XHJcbiAgdG9EYXlEYXRlID0gbmV3IERhdGUoKTtcclxuICBjdXJyZW50Zmxvd2tleTogc3RyaW5nO1xyXG4gIHJlZ2lzdGVyQ2xhaW1hbnRGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGhvbmVWZXJpZmllZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgaXNGaWVsZERpc2FibGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBwYXJ0RW1wTW9kZWwgPSBuZXcgUGFydGlhbEVtcGxveW1lbnRNb2RlbCgpO1xyXG4gIGlzT3RwTW9kYWxFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGlzUmV0dXJuaW5nVXNlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBtaW5EYXRlRE9COiBEYXRlID0gbmV3IERhdGUoXHJcbiAgICB0aGlzLnRvRGF5RGF0ZS5nZXRGdWxsWWVhcigpIC0gMTAwLFxyXG4gICAgdGhpcy50b0RheURhdGUuZ2V0TW9udGgoKSxcclxuICAgIHRoaXMudG9EYXlEYXRlLmdldERhdGUoKVxyXG4gICk7XHJcbiAgbWF4RGF0ZURPQjogRGF0ZSA9IG5ldyBEYXRlKFxyXG4gICAgdGhpcy50b0RheURhdGUuZ2V0RnVsbFllYXIoKSAtIDEwLFxyXG4gICAgdGhpcy50b0RheURhdGUuZ2V0TW9udGgoKSxcclxuICAgIHRoaXMudG9EYXlEYXRlLmdldERhdGUoKVxyXG4gICk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2JhbmtkdGxzJykgYmFua2R0bHM6IEJhbmtEZXRhaWxzQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ2FkZHJlc3MnKSBhZGRyZXNzZXM6IFF1ZXJ5TGlzdDxBZGRyZXNzQ29tcG9uZW50PjtcclxuICBAVmlld0NoaWxkKCd3Y0VtcGxveWVyR3JpZCcpIHdjRW1wbG95ZXJHcmlkOiBXZWVrbHlDZXJ0RW1wbG95ZXJHcmlkQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3BDYWxlbmRhcicpIHBDYWxlbmRhcjogRWxlbWVudFJlZjtcclxuXHJcbiAgbGlua0NvbXBvbmVudERhdGE6IExpbmtDb21wb25lbnRNb2RlbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHFjczogUXVlc3Rpb25Db250cm9sU2VydmljZSxcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBRdWVzdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHB1YmxpYyB2YWxpZGF0aW9uU2VydmljZTogVmFsaWRhdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlcixcclxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxyXG4gICAgcHVibGljIGNsYWltYW50U2VydmljZTogQ2xhaW1hbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHdlZWtseWNlcnRTZXJ2aWNlOiBXZWVrbHlDZXJ0U2VydmljZVYyLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSBsczogTG9naW5TZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5wQ2FsZW5kYXIpIHtcclxuICAgICAgdGhpcy5tb2RpZnlDYWxlbmRhckF0dHJpYnV0ZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHZpc2libGVJZihzdHJFeHA6IHN0cmluZywgZWxlbWVudE5hbWU6IHN0cmluZykge1xyXG4gICAgaWYgKCFzdHJFeHApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGlzVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHN0ckV4cC5pbmNsdWRlcygnJiYnKSkge1xyXG4gICAgICBsZXQgZXhwcjogc3RyaW5nW10gPSBzdHJFeHAuc3BsaXQoJyYmJyk7XHJcbiAgICAgIGlzVmlzaWJsZSA9XHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclswXSkgJiZcclxuICAgICAgICB0aGlzLmNhbGN1bGF0ZU9wZXJhbmRWYWx1ZShleHByWzFdKTtcclxuICAgICAgaWYgKGV4cHIubGVuZ3RoID49IDMpIHtcclxuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgJiYgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclsyXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGV4cHIubGVuZ3RoID49IDQpIHtcclxuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgJiYgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclszXSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGV4cHIubGVuZ3RoID09IDUpIHtcclxuICAgICAgICBpc1Zpc2libGUgPSBpc1Zpc2libGUgJiYgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwcls0XSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGV4cHIubGVuZ3RoID4gNSkge1xyXG4gICAgICAgIHRocm93IFwiQXBwVmFsaWRhdG9ycyA6IE1vcmUgdGhhbiA1ICcmJicgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQuXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChzdHJFeHAuaW5jbHVkZXMoJ3x8JykpIHtcclxuICAgICAgbGV0IGV4cHI6IHN0cmluZ1tdID0gc3RyRXhwLnNwbGl0KCd8fCcpO1xyXG4gICAgICBpc1Zpc2libGUgPVxyXG4gICAgICAgIHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMF0pIHx8XHJcbiAgICAgICAgdGhpcy5jYWxjdWxhdGVPcGVyYW5kVmFsdWUoZXhwclsxXSk7XHJcbiAgICAgIGlmIChleHByLmxlbmd0aCA+PSAzKSB7XHJcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlIHx8IHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbMl0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChleHByLmxlbmd0aCA+PSA0KSB7XHJcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlIHx8IHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbM10pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChleHByLmxlbmd0aCA9PSA1KSB7XHJcbiAgICAgICAgaXNWaXNpYmxlID0gaXNWaXNpYmxlIHx8IHRoaXMuY2FsY3VsYXRlT3BlcmFuZFZhbHVlKGV4cHJbNF0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChleHByLmxlbmd0aCA+IDUpIHtcclxuICAgICAgICB0aHJvdyBcIkFwcFZhbGlkYXRvcnMgOiBNb3JlIHRoYW4gNSAnfHwnIGV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVkLlwiO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGlzVmlzaWJsZSkge1xyXG4gICAgICByZXR1cm4gaXNWaXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZShlbGVtZW50TmFtZSwgbnVsbCk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVPcGVyYW5kVmFsdWUoc3RyRXhwOiBzdHJpbmcpIHtcclxuICAgIHZhciBzcGxpdEFycmF5OiBzdHJpbmdbXTtcclxuICAgIGxldCBpc0RvZXNOb3RFcXVhbDogYm9vbGVhbjtcclxuICAgIGxldCBpbmRleDogbnVtYmVyID0gc3RyRXhwLmluZGV4T2YoJyE9Jyk7XHJcbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XHJcbiAgICAgIHNwbGl0QXJyYXkgPSBzdHJFeHAuc3BsaXQoJz09Jyk7XHJcbiAgICAgIGlzRG9lc05vdEVxdWFsID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzcGxpdEFycmF5ID0gc3RyRXhwLnNwbGl0KCchPScpO1xyXG4gICAgICBpc0RvZXNOb3RFcXVhbCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBsZXQgb3BlcmFuZDE6IHN0cmluZyA9IHNwbGl0QXJyYXlbMF07XHJcbiAgICBsZXQgb3BlcmFuZDI6IHN0cmluZyA9IHNwbGl0QXJyYXlbMV07XHJcbiAgICBvcGVyYW5kMSA9IG9wZXJhbmQxLnJlcGxhY2UoJ3snLCAnJykucmVwbGFjZSgnfScsICcnKS50cmltKCk7IC8vY2xhaW1hbnRQcmlvclBheTEwMiBkaWZmbWFpbGFkZHJlc3MzMTVcclxuICAgIG9wZXJhbmQyID0gb3BlcmFuZDIucmVwbGFjZSgneycsICcnKS5yZXBsYWNlKCd9JywgJycpLnRyaW0oKTsgLy9udWxsXHJcbiAgICBpZiAodGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXSkge1xyXG4gICAgICB2YXIgdmFsdWVPZkNucnRybFRvQ2hlY2s7XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW29wZXJhbmQxXS52YWx1ZSAmJlxyXG4gICAgICAgIHR5cGVvZiB0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlID09PSAnc3RyaW5nJ1xyXG4gICAgICApIHtcclxuICAgICAgICB2YWx1ZU9mQ25ydHJsVG9DaGVjayA9IHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0udmFsdWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlICYmXHJcbiAgICAgICAgdHlwZW9mIHRoaXMuZm9ybS5jb250cm9sc1tvcGVyYW5kMV0udmFsdWUgIT0gJ3N0cmluZydcclxuICAgICAgKSB7XHJcbiAgICAgICAgdmFsdWVPZkNucnRybFRvQ2hlY2sgPSB0aGlzLmZvcm0uY29udHJvbHNbb3BlcmFuZDFdLnZhbHVlWyd2YWx1ZSddO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAob3BlcmFuZDIgPT09ICdudWxsJyAmJiBpc0RvZXNOb3RFcXVhbCAmJiB2YWx1ZU9mQ25ydHJsVG9DaGVjaykge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvcGVyYW5kMiA9PT0gJ251bGwnICYmICFpc0RvZXNOb3RFcXVhbCAmJiAhdmFsdWVPZkNucnRybFRvQ2hlY2spIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBvcGVyYW5kMiA9IG9wZXJhbmQyLnJlcGxhY2UoXCInXCIsICcnKS5yZXBsYWNlKFwiJ1wiLCAnJykudHJpbSgpOyAvL251bGxcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICBvcGVyYW5kMiAhPSAnbnVsbCcgJiZcclxuICAgICAgICAhaXNEb2VzTm90RXF1YWwgJiZcclxuICAgICAgICB2YWx1ZU9mQ25ydHJsVG9DaGVjayA9PT0gb3BlcmFuZDJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICBvcGVyYW5kMiAhPSAnbnVsbCcgJiZcclxuICAgICAgICBpc0RvZXNOb3RFcXVhbCAmJlxyXG4gICAgICAgIHZhbHVlT2ZDbnJ0cmxUb0NoZWNrICE9IG9wZXJhbmQyXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vICAgdGhpcy5sb2dnZXIuZGVidWcoJ2lzIER5bmFtaWNGb3JtUXVlc3Rpb25Db21wb25lbnQgbmdPbkluaXQgY2FsbGVkJywgdGhpcy5xdWVzdGlvbilcclxuICAgIHRoaXMuZ2V0UGFydGlhbEVtcGxveW1lbnRJbmZvKCk7XHJcbiAgICB0aGlzLmZpbHRlclJlc3VsdCA9IHRoaXMucXVlc3Rpb24uY2hvaWNlcztcclxuICAgIHRoaXMuc2V0TWluTWF4RGF0ZSgpO1xyXG4gICAgdGhpcy5zZXRNaW5NYXhWYWx1ZSgpO1xyXG4gICAgdGhpcy5zZXREZWZhdWx0VmFsdWUoKTtcclxuICAgIHRoaXMuc2V0TGlua0NvbXBvbmVudERhdGEoKTtcclxuICAgIGxldCBjdXJyZW50UWVzID0gdGhpcy5zZXJ2aWNlLnNlYXJjaEJzLmdldFZhbHVlKCk7XHJcbiAgICB0aGlzLmN1cnJlbnRmbG93a2V5ID0gY3VycmVudFFlcy5mbG93S2V5O1xyXG4gICAgaWYoKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdkaXNhYmxlRmllbGRzT25TaWdudXAnKSA9PT0gJ3RydWUnKSAmJiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImZsb3dLZXlcIikgPT0gJzM0NScpe1xyXG4gICAgICB0aGlzLmRpc2FibGVGaWVsZHMoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2hlY2tGbG93S2V5KCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudGZsb3drZXkgPT09ICdyZWdpc3Rlci1jbGFpbWFudCcpIHtcclxuICAgICAgLy9jb25zb2xlLmluZm8oXCJjdXJyZW50Zmxvd2tleSBcIix0aGlzLmN1cnJlbnRmbG93a2V5KVxyXG4gICAgICByZXR1cm4gKHRoaXMucmVnaXN0ZXJDbGFpbWFudEZsYWcgPSB0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlZ2lzdGVyQ2xhaW1hbnRGbGFnO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBwaG9uZU51bWJlclZlcmlmaWVkKCk6IGJvb2xlYW57XHJcbiAgLy8gICByZXR1cm4gdGhpcy5waG9uZVZlcmlmaWVkLFxyXG4gIC8vIH1cclxuXHJcbiAgZGlzYWJsZUZpZWxkcygpIHtcclxuICAgIGlmICh0aGlzLmNoZWNrRmxvd0tleSgpKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ2VtYWlsJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCd1c2VybmFtZScpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgncGFzc3dvcmQnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnc2VjUXVlczEnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3NlY0FuczEnKS5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQoJ3NlY1F1ZXMyJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdzZWNBbnMyJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdzZWNRdWVzMycpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgnc2VjQW5zMycpLmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5mb3JtLmdldCgncmVzQWRyZXNzJykuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLmZvcm0uZ2V0KCdkaWZmbWFpbGFkZHJlc3MnKS5kaXNhYmxlKCk7XHJcbiAgICAgIC8vdGhpcy5mb3JtLmdldCgnbWFpbGFkZHJlc3MnKS5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBlbmFibGVGaWVsZHMoKSB7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdlbWFpbCcpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgndXNlcm5hbWUnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3Bhc3N3b3JkJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3NlY1F1ZXMxJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdzZWNBbnMxJykuZW5hYmxlKCk7XHJcbiAgICB0aGlzLmZvcm0uZ2V0KCdzZWNRdWVzMicpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnc2VjQW5zMicpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnc2VjUXVlczMnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3NlY0FuczMnKS5lbmFibGUoKTtcclxuICAgIHRoaXMuZm9ybS5nZXQoJ3Jlc0FkcmVzcycpLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5mb3JtLmdldCgnZGlmZm1haWxhZGRyZXNzJykuZW5hYmxlKCk7XHJcbiAgICAvL3RoaXMuZm9ybS5nZXQoJ21haWxhZGRyZXNzJykuZW5hYmxlKCk7XHJcbiAgfVxyXG5cclxuICBjaGVja0lmVXNlckV4aXN0KCkge1xyXG4gICAgLy8gY29uc29sZS5pbmZvKFwiZG9iIFwiLCB0aGlzLmZvcm0uZ2V0KFwiZG9iXCIpLnZhbHVlKTtcclxuICAgIGlmIChcclxuICAgICAgIXRoaXMuZm9ybS5nZXQoJ3NzbicpLnZhbHVlICYmXHJcbiAgICAgICF0aGlzLmZvcm0uZ2V0KCdkb2InKS52YWx1ZSAmJlxyXG4gICAgICAhdGhpcy5jaGVja0Zsb3dLZXkoKVxyXG4gICAgKSB7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgc3NuZnJvbXVzZXIgPSB0aGlzLmZvcm0uZ2V0KCdzc24nKS52YWx1ZTtcclxuICAgICAgLy9jb25zb2xlLmluZm8oXCJ0ZXN0IHdpdGggc3NuZnJvbXVzZXIgXCIsIHNzbmZyb211c2VyKTtcclxuICAgICAgdGhpcy5jbGFpbWFudFNlcnZpY2UuY2hlY2tJZlVzZXJBbHJlYWR5RXhpc3Qoc3NuZnJvbXVzZXIpLnN1YnNjcmliZShcclxuICAgICAgICAoeCkgPT4ge1xyXG4gICAgICAgICAgaWYoeCE9bnVsbCl7XHJcbiAgICAgICAgICAgIC8qIFBob25lIGlzIGRpc3BsYXllZCBpbiB0aGUgZnJvbnRlbmQgaW5wdXQgZmllbGQsIGJ1dCBub3QgZXhhY3RseSBzZXQgaW4gdGhlIG9iamVjdCovXHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoJ3Bob25lJykuc2V0VmFsdWUoeCk7XHJcbiAgICAgICAgICAgIC8vdGhpcy5mb3JtLmdldCgncGhvbmUnKS5kaXNhYmxlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvL2NvbnNvbGUuaW5mbygndGVzdCB3aXRoIHggJywgeCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFBhcnRpYWxFbXBsb3ltZW50SW5mbygpIHtcclxuICAgIGNvbnNvbGUubG9nKCdJbnNpZGUgUGFydGlhbEVtcEluZm8nLCB0aGlzLnF1ZXN0aW9uLm5hbWUpO1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb24ubmFtZSA9PT0gJ3dvcmtQZXJmb3JtZWQnKSB7XHJcbiAgICAgIHRoaXMud2Vla2x5Y2VydFNlcnZpY2VcclxuICAgICAgICAuZ2V0UGFydGlhbEVtcGxveW1lbnQoKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlczogUGFydGlhbEVtcGxveW1lbnRNb2RlbCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5wYXJ0aWFsRW1wbG95bWVudEZsYWcgPT09ICcxJykge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0udmFsdWVbdGhpcy5xdWVzdGlvbi5uYW1lXSA9ICdZJztcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uYWRkVmFsaWRhdG9ycyhcclxuICAgICAgICAgICAgICAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udHJvbC52YWx1ZSAhPT0gJ1knID8geyBmb3JjZVllczogdHJ1ZSB9IDogbnVsbDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRMaW5rQ29tcG9uZW50RGF0YSgpIHtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudE5hbWUgPT0gJ2FwcC1saW5rJykge1xyXG4gICAgICB0aGlzLmxpbmtDb21wb25lbnREYXRhID0gdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhXHJcbiAgICAgICAgPyBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSlcclxuICAgICAgICA6IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93TGFiZWxGb3JDdXN0b21Db21wb25lbnQoKSB7XHJcbiAgICBsZXQgcGFyc2VkRGF0YSA9IHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YVxyXG4gICAgICA/IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKVxyXG4gICAgICA6IG51bGw7XHJcbiAgICByZXR1cm4gcGFyc2VkRGF0YT8uc2hvd0xhYmVsID09ICdZJztcclxuICB9XHJcblxyXG4gIHNldE1pbk1heFZhbHVlKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLnR5cGUgPT09ICdudW1iZXInIHx8XHJcbiAgICAgIHRoaXMucXVlc3Rpb24udHlwZSA9PT0gJ2RlY2ltYWwnIHx8XHJcbiAgICAgIHRoaXMucXVlc3Rpb24udHlwZSA9PT0gJ2N1cnJlbmN5J1xyXG4gICAgKSB7XHJcbiAgICAgIGxldCBtaW5NYXhNb2RlbDogTWluTWF4VmFsdWVNb2RlbCA9IHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YVxyXG4gICAgICAgID8gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGEpXHJcbiAgICAgICAgOiBudWxsO1xyXG4gICAgICBpZiAobWluTWF4TW9kZWwpIHtcclxuICAgICAgICBpZiAobWluTWF4TW9kZWwubWluVmFsdWUpIHtcclxuICAgICAgICAgIHRoaXMubWluVmFsdWUgPSBtaW5NYXhNb2RlbC5taW5WYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG1pbk1heE1vZGVsLm1heFZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLm1heFZhbHVlID0gbWluTWF4TW9kZWwubWF4VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRNaW5NYXhEYXRlKCkge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb24uaW5wdXRUeXBlID09PSAnZGF0ZScpIHtcclxuICAgICAgbGV0IG1pbk1heE1vZGVsOiBNaW5NYXhEYXRlTW9kZWwgPSB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGFcclxuICAgICAgICA/IEpTT04ucGFyc2UodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKVxyXG4gICAgICAgIDogbnVsbDtcclxuICAgICAgaWYgKG1pbk1heE1vZGVsICYmIChtaW5NYXhNb2RlbC5tYXhEYXRlS2V5IHx8IG1pbk1heE1vZGVsLm1pbkRhdGVLZXkpKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZHluYW1pY1BhcmFtW21pbk1heE1vZGVsLm1pbkRhdGVLZXldKSB7XHJcbiAgICAgICAgICB0aGlzLnBhcnNlRGF0ZSh0aGlzLmR5bmFtaWNQYXJhbVttaW5NYXhNb2RlbC5taW5EYXRlS2V5XSwgJ21pbicpO1xyXG4gICAgICAgICAgdGhpcy5zaG93TWluRGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmR5bmFtaWNQYXJhbVttaW5NYXhNb2RlbC5tYXhEYXRlS2V5XSkge1xyXG4gICAgICAgICAgdGhpcy5wYXJzZURhdGUodGhpcy5keW5hbWljUGFyYW1bbWluTWF4TW9kZWwubWF4RGF0ZUtleV0sICdtYXgnKTtcclxuICAgICAgICAgIHRoaXMuc2hvd01heERhdGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5xdWVzdGlvbi5taW4pIHtcclxuICAgICAgICAgIHRoaXMucGFyc2VEYXRlKHRoaXMucXVlc3Rpb24ubWluLCAnbWluJyk7XHJcbiAgICAgICAgICB0aGlzLnNob3dNaW5EYXRlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMucXVlc3Rpb24ubWF4KSB7XHJcbiAgICAgICAgICB0aGlzLnBhcnNlRGF0ZSh0aGlzLnF1ZXN0aW9uLm1heCwgJ21heCcpO1xyXG4gICAgICAgICAgdGhpcy5zaG93TWF4RGF0ZSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHBhcnNlRGF0ZShzdHJEYXRlOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IERhdGUge1xyXG4gICAgaWYgKHN0ckRhdGUgJiYgdHlwZSA9PT0gJ21heCcpIHtcclxuICAgICAgdmFyIHNwbGl0QXJyYXkgPSBzdHJEYXRlLnNwbGl0KCctJyk7XHJcbiAgICAgIHRoaXMubWF4RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIHRoaXMubWF4RGF0ZS5zZXRNb250aChOdW1iZXIoc3BsaXRBcnJheVswXSkgLSAxKTtcclxuICAgICAgdGhpcy5tYXhEYXRlLnNldEZ1bGxZZWFyKE51bWJlcihzcGxpdEFycmF5WzJdKSk7XHJcbiAgICAgIHRoaXMubWF4RGF0ZS5zZXREYXRlKE51bWJlcihzcGxpdEFycmF5WzFdKSk7XHJcbiAgICAgIHJldHVybiB0aGlzLm1heERhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0ckRhdGUgJiYgdHlwZSA9PT0gJ21pbicpIHtcclxuICAgICAgdmFyIHNwbGl0QXJyYXkgPSBzdHJEYXRlLnNwbGl0KCctJyk7XHJcbiAgICAgIHRoaXMubWluRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIHRoaXMubWluRGF0ZS5zZXRNb250aChOdW1iZXIoc3BsaXRBcnJheVswXSkgLSAxKTtcclxuICAgICAgdGhpcy5taW5EYXRlLnNldEZ1bGxZZWFyKE51bWJlcihzcGxpdEFycmF5WzJdKSk7XHJcbiAgICAgIHRoaXMubWluRGF0ZS5zZXREYXRlKE51bWJlcihzcGxpdEFycmF5WzFdKSk7XHJcbiAgICAgIHJldHVybiB0aGlzLm1pbkRhdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTdHlsZShpbmRlbnQ6IG51bWJlcik6IG9iamVjdCB7XHJcbiAgICBsZXQgcGFkZGluZyA9IGluZGVudCA8PSAxID8gJzAgcHgnIDogaW5kZW50ICogMTAgKyAncHgnO1xyXG5cclxuICAgIGxldCBzdHlsZU9iaiA9IHtcclxuICAgICAgJ3BhZGRpbmctbGVmdCc6IHBhZGRpbmcsXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHN0eWxlT2JqKTtcclxuICB9XHJcblxyXG4gIHNldE1hcmdpbihtYXJnaW46IG51bWJlcik6IG9iamVjdCB7XHJcbiAgICBsZXQgbWFyID0gbWFyZ2luICsgJ3B4JztcclxuICAgIGxldCBzdHlsZU9iaiA9IHtcclxuICAgICAgJ21hcmdpbi1yaWdodCc6IG1hcixcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oc3R5bGVPYmopO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVmFsaWQoKSB7XHJcbiAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgICBsZXQgcXVlc3Rpb25UeXBlOiBzdHJpbmcgPSB0aGlzLnF1ZXN0aW9uLnR5cGU7XHJcbiAgICBpZiAoXHJcbiAgICAgICdodG1sJyA9PT0gcXVlc3Rpb25UeXBlIHx8XHJcbiAgICAgICdsYWJlbCcgPT09IHF1ZXN0aW9uVHlwZSB8fFxyXG4gICAgICAnc2ltcGxlTGFiZWwnID09PSBxdWVzdGlvblR5cGUgfHxcclxuICAgICAgJ2Rpc3BsYXl0ZXh0YXNsYWJlbCcgPT09IHF1ZXN0aW9uVHlwZSB8fFxyXG4gICAgICAoJ2J1dHRvbicgPT09IHF1ZXN0aW9uVHlwZSAmJlxyXG4gICAgICAgICF0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnMgJiZcclxuICAgICAgICB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudE5hbWUgIT0gJ2FwcC1zaWduLXNzbicgJiZcclxuICAgICAgICB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudE5hbWUgIT0gJ2FwcC1saW5rJykgfHxcclxuICAgICAgJ2xhYmVsLXdpdGgtb3ZlcmxheScgPT09IHF1ZXN0aW9uVHlwZVxyXG4gICAgKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucmVxdWlyZWQgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gdGhpcy5xdWVzdGlvbi5yZXF1aXJlZEVycm9yVGV4dDtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ubWF4bGVuZ3RoICYmXHJcbiAgICAgICh0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5kaXJ0eSB8fFxyXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWQpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ2Vycm9ycz8ubWF4TGVuZ3RoJywgdGhpcy5xdWVzdGlvbik7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIGlmICh0aGlzLnF1ZXN0aW9uLmRlc2NyaXB0aW9uKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlc3Rpb24uZGVzY3JpcHRpb247XHJcbiAgICAgIH1cclxuICAgICAgbGV0IHZhbGlkYXRvckxpc3QgPSB0aGlzLnF1ZXN0aW9uLnZhbGlkYXRvcnM7XHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2goKHZhbGlkYXRvcikgPT4ge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0b3IudHlwZSAnLCB2YWxpZGF0b3IudHlwZSk7XHJcbiAgICAgICAgaWYgKGtlZXBHb2luZykge1xyXG4gICAgICAgICAgaWYgKHZhbGlkYXRvci50eXBlID09PSAndGV4dCcgJiYgdmFsaWRhdG9yLm1heExlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpO1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XHJcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucGF0dGVybiAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdlcnJvcnM/LnBhdHRlcm4nLHRoaXMucXVlc3Rpb24pXHJcbiAgICAgIGxldCB2YWxpZGF0b3JMaXN0ID0gdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzO1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIHZhbGlkYXRvckxpc3QuZm9yRWFjaCgodmFsaWRhdG9yKSA9PiB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlICcsIHZhbGlkYXRvci50eXBlKVxyXG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcclxuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ3JlZ2V4Jykge1xyXG4gICAgICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0b3IudGV4dDtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmRhdGVDb21wYXJpc2lvbiAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3JMaXN0ID0gdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzO1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2goKHZhbGlkYXRvcikgPT4ge1xyXG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcclxuICAgICAgICAgIC8vICAgdGhpcy5sb2dnZXIuZGVidWcoJ3ZhbGlkYXRvci50eXBlLm1pbmxlbmd0aCAnLCB2YWxpZGF0b3IudHlwZSlcclxuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ2V4cHJlc3Npb24nKSB7XHJcbiAgICAgICAgICAgIC8vICB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsaWRhdG9yLnRleHQgJywgdmFsaWRhdG9yLnRleHQpXHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0b3IudGV4dDtcclxuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnF1ZXN0aW9uICYmXHJcbiAgICAgIHRoaXMucXVlc3Rpb24ubmFtZSAmJlxyXG4gICAgICB0aGlzLmZvcm0gJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZXJyb3JzPy5taW5sZW5ndGggJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKCh2YWxpZGF0b3IpID0+IHtcclxuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKCd2YWxpZGF0b3IudHlwZS5taW5sZW5ndGggJywgdmFsaWRhdG9yLnR5cGUpXHJcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICd0ZXh0Jykge1xyXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKCd2YWxpZGF0b3IudGV4dCAnLCB2YWxpZGF0b3IudGV4dClcclxuICAgICAgICAgICAgbWVzc2FnZSA9IHZhbGlkYXRvci50ZXh0O1xyXG4gICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgICBrZWVwR29pbmcgPSBmYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LnBhc3N3b3JkQ29tcGFyaXNpb24gJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICBsZXQgdmFsaWRhdG9yTGlzdCA9IHRoaXMucXVlc3Rpb24udmFsaWRhdG9ycztcclxuICAgICAgdmFyIGtlZXBHb2luZyA9IHRydWU7XHJcbiAgICAgIGxldCBtZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICAgICAgdmFsaWRhdG9yTGlzdC5mb3JFYWNoKCh2YWxpZGF0b3IpID0+IHtcclxuICAgICAgICBpZiAoa2VlcEdvaW5nKSB7XHJcbiAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKCd2YWxpZGF0b3IudHlwZS5taW5sZW5ndGggJywgdmFsaWRhdG9yLnR5cGUpXHJcbiAgICAgICAgICBpZiAodmFsaWRhdG9yLnR5cGUgPT09ICdleHByZXNzaW9uJykge1xyXG4gICAgICAgICAgICAvLyAgY29uc29sZS5sb2coJ3ZhbGlkYXRvci50ZXh0ICcsIHZhbGlkYXRvci50ZXh0KVxyXG4gICAgICAgICAgICBtZXNzYWdlID0gdmFsaWRhdG9yLnRleHQ7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICAgIGtlZXBHb2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZSA9ICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8ucmVxdWlyZWRJZiAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybiAncmVxdWlyZWQnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uYnBFbXBsckZsYWcgJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgJiZcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZFxyXG4gICAgKSB7XHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG4gICAgICBsZXQgbWVzc2FnZTogc3RyaW5nID0gJ0NvbmZpcm0gb3IgRGVsZXRlIGVhY2ggZW1wbG95ZXIocykgdG8gY29udGludWUnO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnNcclxuICAgICAgICA/LnNpbXBsZUNoZWNrQm94VmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICdyZXF1aXJlZCc7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uY3BhdGNodmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICdyZXF1aXJlZCc7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8udXBsb2FkdmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICdyZXF1aXJlZCc7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgIHJldHVybiBtZXNzYWdlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5xdWVzdGlvbiAmJlxyXG4gICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUgJiZcclxuICAgICAgdGhpcy5mb3JtICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmVycm9ycz8uYnBFbXBsckxlbmd0aEZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICdBZGQgcHJldmlvdXMgZW1wbG95bWVudCBkZXRhaWxzJztcclxuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgcmV0dXJuIG1lc3NhZ2U7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LmFkZHJlc3NWYWxpZGF0aW9uRmxhZyAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG4gICAgICAvL2xldCBtZXNzYWdlOiBzdHJpbmcgPSBcIlBsZWFzZSBwcm92aWRlIHZhbGlkIGFkZHJlc3MuXCI7XHJcbiAgICAgIHRoaXMuYWRkcmVzc2VzLmZvckVhY2goKGFkZHJlc3MpID0+IGFkZHJlc3Muc3VibWl0KCkpO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnNcclxuICAgICAgICA/LmJhbmtEZXRhaWxzVmFsaWRhdGlvbkZsYWcgJiZcclxuICAgICAgKHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5IHx8XHJcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0udG91Y2hlZClcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgLy9sZXQgbWVzc2FnZTogc3RyaW5nID0gXCJQbGVhc2UgcHJvdmlkZSB2YWxpZCBiYW5rIGRldGFpbHMuXCI7XHJcbiAgICAgIHRoaXMuYmFua2R0bHM/LnN1Ym1pdCgpO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/LndjRW1wbG95ZXJWYWxpZGF0aW9uICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLmRpcnR5ICYmXHJcbiAgICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLnF1ZXN0aW9uLm5hbWVdLnRvdWNoZWRcclxuICAgICkge1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgLy9sZXQgbWVzc2FnZTogc3RyaW5nID0gXCJQbGVhc2UgcHJvdmlkZSB2YWxpZCBiYW5rIGRldGFpbHMuXCI7XHJcbiAgICAgIHRoaXMud2NFbXBsb3llckdyaWQ/LnN1Ym1pdCgpO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucXVlc3Rpb24gJiZcclxuICAgICAgdGhpcy5xdWVzdGlvbi5uYW1lICYmXHJcbiAgICAgIHRoaXMuZm9ybSAmJlxyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5lcnJvcnM/Lm5vdEVxdWFscyAmJlxyXG4gICAgICAodGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0uZGlydHkgfHxcclxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS50b3VjaGVkKVxyXG4gICAgKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3JMaXN0ID0gdGhpcy5xdWVzdGlvbi52YWxpZGF0b3JzO1xyXG4gICAgICB2YXIga2VlcEdvaW5nID0gdHJ1ZTtcclxuICAgICAgbGV0IG1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gICAgICB2YWxpZGF0b3JMaXN0LmZvckVhY2goKHZhbGlkYXRvcikgPT4ge1xyXG4gICAgICAgIGlmIChrZWVwR29pbmcpIHtcclxuICAgICAgICAgIGlmICh2YWxpZGF0b3IudHlwZSA9PT0gJ2N1c3RvbXZhbGlkYXRpb24nKSB7XHJcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB2YWxpZGF0b3IudGV4dDtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMucXVlc3Rpb24ubmFtZV0ubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAga2VlcEdvaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBtZXNzYWdlID0gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHZhciBrZWVwR29pbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5xdWVzdGlvbi5uYW1lXS5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICByZXR1cm4gbWVzc2FnZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnbWVzc2FnZSBmcm9tIHBhbmVsIG91dGVyLS0gJyxtZXNzYWdlKTtcclxuICAgIHJldHVybiBtZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgb25BY2NlcHRlZChhZ3JlZWQ6IGJvb2xlYW4pIHtcclxuICAgIC8vY29uc29sZS5sb2coJ29uQWNjZXB0ZWQgY2FsbGVkJyxhZ3JlZWQpO1xyXG4gICAgdGhpcy5sZWdhbEFjY2VwdGVkID0gYWdyZWVkO1xyXG4gIH1cclxuXHJcbiAgb25Db21wbGV0ZVJlcXVhbGlmeShyZXF1YWxpZnlEYXRhOiBVbnR5cGVkRm9ybUdyb3VwKSB7XHJcbiAgICAvL2NvbnNvbGUubG9nKFwib25Db21wbGV0ZVJlcXVhbGlmeVwiLCByZXF1YWxpZnlEYXRhKTtcclxuICB9XHJcblxyXG4gIG9uTW9kZWxEaXNwbGF5KG1vZGVsRGlzcGxheTogYm9vbGVhbikge1xyXG4gICAgLy9jb25zb2xlLmxvZygnbW9kZWxEaXNwbGF5IGNhbGxlZCcsbW9kZWxEaXNwbGF5KTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlT3RwRm9yTmV3VXNlckNyZWF0aW9uKGV2ZW50LCBmb3JtKSB7XHJcbiAgICBpZiAoZm9ybS52YWx1ZS5waG9uZSA9PSBudWxsIHx8IGZvcm0udmFsdWUudmVyaWZpY2F0aW9uID09IG51bGwpIHtcclxuICAgICAgdGhpcy5pc090cE1vZGFsRW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkZpZWxkcyBhcmUgbnVsbC5cIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIFJlbW92ZSBub24tbnVtZXJpYyBjaGFyYWN0ZXJzXHJcbiAgICBsZXQgdmFsaWRQaG9uZSA9IGZvcm0udmFsdWUucGhvbmUucmVwbGFjZSgvXFxEL2csICcnKTtcclxuICAgIC8vIENvdW50IGRpZ2l0c1xyXG4gICAgbGV0IHBob25lTGVuZ3RoID0gdmFsaWRQaG9uZS5sZW5ndGg7XHJcbiAgICBpZiAocGhvbmVMZW5ndGggIT0gMTApIHtcclxuICAgICAgY29uc29sZS5sb2coXCJQaG9uZSBudW1iZXIgbXVzdCBiZSBvZiBsZW5ndGggMTBcIilcclxuICAgICAgcmV0dXJuOyBcclxuICAgIH1cclxuICAgIHRoaXMubHNcclxuICAgICAgLmdlbmVyYXRlT3RwRm9yTmV3VXNlckNyZWF0aW9uKGZvcm0udmFsdWUucGhvbmUsIGV2ZW50Lm9wdGlvbi52YWx1ZSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnQWNjZXNzIGNvZGUgc2VudCBzdWNjZXNzZnVsbHkuJyk7XHJcbiAgICAgICAgICB0aGlzLmlzT3RwTW9kYWxFbmFibGVkID0gdHJ1ZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnQ291bGQgbm90IGdlbmVyYXRlIHRoZSBhdXRoZW50aWNhdGlvbiBPVFAgY29kZS4nKTtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTsgXHJcbiAgfVxyXG5cclxuICBvblJhZGlvT3B0aW9uQ2xpY2soZXZlbnQsIGVsZW1lbnQ6IEVsZW1lbnRzTW9kZWwpIHtcclxuICAgIGlmKGVsZW1lbnQ/Lm5hbWUgPT09IFwiZGlmZm1haWxhZGRyZXNzXCIgJiYgbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmbG93S2V5XCIpID09ICczNDUnKXtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2Rpc2FibGVGaWVsZHNPblNpZ251cCcsICdmYWxzZScpO1xyXG4gICAgfVxyXG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XHJcbiAgICBpZiAoZWxlbWVudC5zZXJ2aWNlVHlwZSAmJiBlbGVtZW50LnNlcnZpY2VUeXBlID09PSAnRkVUQ0gnKSB7XHJcbiAgICAgIGxldCBzZXJ2aWNlQ2FsbFR5cGUgPSBlbGVtZW50LnNlcnZpY2VDYWxsVHlwZTtcclxuICAgICAgbGV0IHNlcnZpY2VOYW1lOiBzdHJpbmcgPSBlbGVtZW50LnNlcnZpY2VOYW1lO1xyXG4gICAgICBjb25zdCBvcHRpb25zID0gZXZlbnQub3B0aW9uLnZhbHVlXHJcbiAgICAgICAgPyB7IHBhcmFtczogbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ3NlbGVjdGlvbicsIGV2ZW50Lm9wdGlvbi52YWx1ZSkgfVxyXG4gICAgICAgIDoge307XHJcbiAgICAgIGlmIChzZXJ2aWNlQ2FsbFR5cGUgPT09ICdHRVQnKSB7XHJcbiAgICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldChgJHtzZXJ2aWNlTmFtZX1gLCBvcHRpb25zKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCB2YWx1ZXM6IFNlcnZpY2VBY3Rpb25SZXNwb25zZU1vZGVsID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAodmFsdWVzLnN1Y2Nlc3MgPT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgIC8vY29uc29sZS5sb2codmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzLnNlcnZpY2VUeXBlKTtcclxuICAgICAgICAgICAgICAvL2NvbnNvbGUubG9nKHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcyk7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgdmFsdWVzLnNlcnZpY2VDYWxsVmFsdWVzICYmXHJcbiAgICAgICAgICAgICAgICB2YWx1ZXMuc2VydmljZUNhbGxWYWx1ZXMuc2VydmljZVR5cGUgJiZcclxuICAgICAgICAgICAgICAgIHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlVHlwZSA9PT0gJ0ZFVENIJ1xyXG4gICAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlcnZpY2VDYWxsVHlwZUluVHJ1ZSA9XHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlQ2FsbFR5cGU7XHJcbiAgICAgICAgICAgICAgICBsZXQgc2VydmljZU5hbWVJblRydWU6IHN0cmluZyA9XHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5zZXJ2aWNlQ2FsbFZhbHVlcy5zZXJ2aWNlTmFtZTtcclxuICAgICAgICAgICAgICAgIGlmIChzZXJ2aWNlQ2FsbFR5cGVJblRydWUgPT09ICdHRVQnKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuZ2V0KGAke3NlcnZpY2VOYW1lSW5UcnVlfWApLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgICAgICAocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGxvYWRlck1vZGVsOiBMb2FkZXJNb2RlbCA9IHJlc3A7XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcIiB2YWx1ZSBmcm9tIGxvYWRlciA9IFwiLCBsb2FkZXJNb2RlbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEZvcm1WYWx1ZXMobG9hZGVyTW9kZWwuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgKGVycnApID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudC5uYW1lXT8ucmVzZXQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tcclxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5uYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICBdPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycnApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnQubmFtZV0/LnJlc2V0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1tlbGVtZW50Lm5hbWVdPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRGb3JtVmFsdWVzKGRhdGEpIHtcclxuICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICBsZXQgdmFsdWVUb1NldCA9IGRhdGFba2V5XTtcclxuICAgICAgdGhpcy5zZXRWYWx1ZUluRm9ybUNvbnRyb2woa2V5LCB2YWx1ZVRvU2V0KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0VmFsdWVJbkZvcm1Db250cm9sKG5hbWUsIHZhbHVlKSB7XHJcbiAgICBsZXQgY29udHJvbCA9IHRoaXMuZm9ybS5jb250cm9sc1tuYW1lXTtcclxuICAgIGlmIChjb250cm9sKSB7XHJcbiAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdObyBmb3JtIGNvbnRyb2wgcHJlc2VudCB3aXRoIG5hbWUgJywgbmFtZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJWYWx1ZShldmVudCwgZWxlbWVudDogRWxlbWVudHNNb2RlbCkge1xyXG4gICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ2Nob2ljZXMtLScsY2hvaWNlcyk7XHJcblxyXG4gICAgbGV0IGNob2ljZXM6IGFueVtdID0gW107XHJcblxyXG4gICAgbGV0IGZpbHRlcmVkOiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IHF1ZXJ5ID0gZXZlbnQucXVlcnk7XHJcblxyXG4gICAgaWYgKGVsZW1lbnQuc2VydmljZVR5cGUgJiYgZWxlbWVudC5zZXJ2aWNlVHlwZSA9PT0gJ0ZFVENIJykge1xyXG4gICAgICBsZXQgc2VydmljZUNhbGxQYXJhbSA9IGVsZW1lbnQuc2VydmljZUNhbGxQYXJhbTsgLy9zc24zMjAsbHN0bmFtZTMyMFxyXG4gICAgICBsZXQgc2VydmljZUNhbGxUeXBlID0gZWxlbWVudC5zZXJ2aWNlQ2FsbFR5cGU7IC8vXCJHRVRcIlxyXG4gICAgICBsZXQgc2VydmljZU5hbWU6IHN0cmluZyA9IGVsZW1lbnQuc2VydmljZU5hbWU7IC8vL3NlY3VyaXR5LXNlcnZpY2UvdmFsaWRhdGVTU04vXHJcbiAgICAgIGxldCBzZXJ2aWNlVXBkYXRlUGFyYW0gPSBlbGVtZW50LnNlcnZpY2VVcGRhdGVQYXJhbTtcclxuXHJcbiAgICAgIGlmIChzZXJ2aWNlQ2FsbFR5cGUgPT09ICdHRVQnKSB7XHJcbiAgICAgICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ0luc2lkZSBHRVQnKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldChgJHtzZXJ2aWNlTmFtZX1gKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXMtLScsIHJlcywgJyAtIHJlc1swXS5sZW5ndGggLScsIHJlcyk7XHJcbiAgICAgICAgICAgIGNob2ljZXMucHVzaChyZXMpO1xyXG4gICAgICAgICAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcclxuICAgICAgICAgICAgLy9sZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hvaWNlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgIGxldCBjaG9pY2UgPSBjaG9pY2VzW2ldO1xyXG4gICAgICAgICAgICAgIC8vdGhpcy5sb2dnZXIuZGVidWcoJ2Nob2ljZSAtICcsIGNob2ljZSwgJ2Nob2ljZS50ZXh0LS0nLCBjaG9pY2UudGV4dCwgJ3F1ZXJ5LnRvTG93ZXJDYXNlKCknLCBxdWVyeT8udG9Mb3dlckNhc2UoKSk7XHJcbiAgICAgICAgICAgICAgLy9pZiAoY2hvaWNlLnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpID09IDApIHtcclxuICAgICAgICAgICAgICBmaWx0ZXJlZC5wdXNoKGNob2ljZVswXSk7XHJcbiAgICAgICAgICAgICAgLy99XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJSZXN1bHQgPSBmaWx0ZXJlZDtcclxuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMuZmlsdGVyUmVzdWx0MTIzLS0nLCB0aGlzLmZpbHRlclJlc3VsdCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY2hvaWNlcyA9IGVsZW1lbnQuY2hvaWNlcztcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaG9pY2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGNvdW50cnkgPSBjaG9pY2VzW2ldO1xyXG4gICAgICAgIC8vaWYgKGNvdW50cnkudGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xyXG4gICAgICAgIGZpbHRlcmVkLnB1c2goY291bnRyeSk7XHJcbiAgICAgICAgLy99XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5maWx0ZXJSZXN1bHQgPSBmaWx0ZXJlZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0KGV2ZW50LCBjbnRybE5hbWU6IHN0cmluZykge31cclxuXHJcbiAgLy9UaGlzIHNob3VkIGJlIHNpbWlsaXJhIHRvIG1ldGhvZCBwcmVzZW50IGluIHBhbmVsXHJcbiAgdmFsaWRhdGUoZWxlbWVudDogRWxlbWVudHNNb2RlbCkge1xyXG4gICAgaWYgKCFlbGVtZW50LnNlcnZpY2VOYW1lKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc2VydmljZVR5cGUgPSBlbGVtZW50LnNlcnZpY2VUeXBlO1xyXG4gICAgaWYgKGVsZW1lbnQuc2VydmljZVR5cGUgPT09ICdGRVRDSCcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzZXJ2aWNlQ2FsbFBhcmFtID0gZWxlbWVudC5zZXJ2aWNlQ2FsbFBhcmFtOyAvL3NzbjMyMCxsc3RuYW1lMzIwXHJcbiAgICBsZXQgc2VydmljZUNhbGxUeXBlID0gZWxlbWVudC5zZXJ2aWNlQ2FsbFR5cGU7IC8vXCJHRVRcIlxyXG4gICAgbGV0IHNlcnZpY2VOYW1lOiBzdHJpbmcgPSBlbGVtZW50LnNlcnZpY2VOYW1lOyAvLy9zZWN1cml0eS1zZXJ2aWNlL3ZhbGlkYXRlU1NOL1xyXG4gICAgbGV0IHNlcnZpY2VVcGRhdGVQYXJhbSA9IGVsZW1lbnQuc2VydmljZVVwZGF0ZVBhcmFtO1xyXG4gICAgbGV0IGFsbFZhbHVlUHJlc2VudDogQm9vbGVhbiA9IHRydWU7XHJcbiAgICAvLyAgdGhpcy5sb2dnZXIuZGVidWcoJ3NlcnZpY2VDYWxsUGFyYW0nLHNlcnZpY2VDYWxsUGFyYW0pO1xyXG4gICAgaWYgKHNlcnZpY2VDYWxsUGFyYW0pIHtcclxuICAgICAgdmFyIHNwbGl0dGVkID0gc2VydmljZUNhbGxQYXJhbS5zcGxpdCgnLCcpO1xyXG4gICAgICBsZXQgdmFsdWVBcnI6IHN0cmluZ1tdID0gW107XHJcbiAgICAgIGxldCBwYXJhbUFycjogc3RyaW5nW10gPSBbXTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdHRlZC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIC8vdXNlIGkgaW5zdGVhZCBvZiAwIGRvYjMyMFxyXG4gICAgICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdkb2IzMjAnLHRoaXMuZm9ybS5jb250cm9sc1snZG9iMzIwJ10udmFsdWUpO1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uY29udHJvbHNbc3BsaXR0ZWRbaV1dLnZhbHVlKSB7XHJcbiAgICAgICAgICBwYXJhbUFyci5wdXNoKHNwbGl0dGVkW2ldKTtcclxuICAgICAgICAgIHZhbHVlQXJyLnB1c2godGhpcy5mb3JtLmNvbnRyb2xzW3NwbGl0dGVkW2ldXS52YWx1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGFsbFZhbHVlUHJlc2VudCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygndmFsdWVBcnIxMicsIHZhbHVlQXJyLCAncGFyYW1BcnIxMSAnLCBwYXJhbUFyciwgJyBlbGVtZW50JywgZWxlbWVudCk7XHJcblxyXG4gICAgICB2YXIgbW9kZWw6IFZhbGlkYXRpb25Nb2RlbCA9IHt9O1xyXG4gICAgICBtb2RlbC5wYXJhbU5hbWUgPSBwYXJhbUFycjtcclxuICAgICAgbW9kZWwucGFyYW1WYWx1ZSA9IHZhbHVlQXJyO1xyXG4gICAgICAvLyByZXR1cm4gdGhpcy5wb3N0KGBxdWVzdGlvbm5haXJlL3NjcmVlbi1xdWVzdGlvbm5haXJlYCwgcXVlc3Rpb25uYWlyZURhdGEpO1xyXG4gICAgICBpZiAoYWxsVmFsdWVQcmVzZW50KSB7XHJcbiAgICAgICAgaWYgKHNlcnZpY2VDYWxsVHlwZSA9PT0gJ1BPU1QnKSB7XHJcbiAgICAgICAgICAvLyB0aGlzLmxvZ2dlci5kZWJ1ZygnSW5zaWRlIEdFVCcpO1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5wb3N0KGAke3NlcnZpY2VOYW1lfWAsIG1vZGVsKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChyZXMpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnJldHVybk1vZGVsID0gcmVzO1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHRoaXMucmV0dXJuTW9kZWwucmV0dXJuVHlwZSAmJlxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXR1cm5Nb2RlbC5yZXR1cm5UeXBlID09PSAnUE9QVVAnXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQb3NpdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uID0gJ3RvcCc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvcFVwSGVhZGVyID0gdGhpcy5yZXR1cm5Nb2RlbC5wb3BVcEhlYWRlcjtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9wVXBUZXh0ID0gdGhpcy5yZXR1cm5Nb2RlbC5wb3BVcFRleHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvcFVwWWVzQWN0aW9uTGFiZWwgPSB0aGlzLnJldHVybk1vZGVsLnBvcFVwWWVzQnV0dG9uTGFiZWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvcFVwTm9BY3Rpb25MYWJlbCA9IHRoaXMucmV0dXJuTW9kZWwucG9wVXBOb0J1dHRvbkxhYmVsO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy5yZXR1cm5Nb2RlbCAnLCB0aGlzLnJldHVybk1vZGVsKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWNjZXB0KCkge1xyXG4gICAgY29uc29sZS5sb2coJ2FjY2VwdCBjYWxsZWQxMjMnLCB0aGlzLnJldHVybk1vZGVsLmlkZW50aWZpZXIpO1xyXG4gICAgbGV0IHBhcmFtQXJyYXk6IFBhcmFtc1tdID0gW107XHJcbiAgICBpZiAodGhpcy5yZXR1cm5Nb2RlbC5pZGVudGlmaWVyKSB7XHJcbiAgICAgIGxldCBtb2RlbEFycjogS2V5VmFsdWVNb2RlbFtdID0gdGhpcy5yZXR1cm5Nb2RlbC5pZGVudGlmaWVyO1xyXG4gICAgICBmb3IgKHZhciB2YWwgb2YgbW9kZWxBcnIpIHtcclxuICAgICAgICBwYXJhbUFycmF5LnB1c2goeyBbdmFsLmtleV06IHZhbC52YWx1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBwYXJhbXMgPSBwYXJhbUFycmF5LnJlZHVjZSgoYXJyT2JqLCBpdGVtKSA9PlxyXG4gICAgICAgIE9iamVjdC5hc3NpZ24oYXJyT2JqLCBpdGVtLCB7fSlcclxuICAgICAgKTtcclxuICAgICAgLy90aGlzLnV0aWwub3BlblBhZ2VCeUNvbnRleHRSb290V2l0aERhdGEodGhpcy5nZXRDb250ZXh0Um9vdCgpLCB0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbiwgcGFyYW1zLCB0aGlzLm5hdkNvbnRyb2xsZXIpXHJcbiAgICAgIHRoaXMubmF2Q29udHJvbGxlci5uYXZpZ2F0ZVJvb3QodGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24sIHtcclxuICAgICAgICBxdWVyeVBhcmFtczogcGFyYW1zLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbiAmJlxyXG4gICAgICB0aGlzLnJldHVybk1vZGVsLnllc0FjdGlvbi5zdWJzdHJpbmcoMCwgNCkgIT0gJy9jcC8nXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb25dKTtcclxuICAgICAgdGhpcy5kaXNwbGF5UG9zaXRpb24gPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd2luZG93Lm9wZW4obG9jYXRpb24ub3JpZ2luICsgdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb24sICdfc2VsZicpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5uYXZDb250cm9sbGVyLm5hdmlnYXRlUm9vdChbdGhpcy5yZXR1cm5Nb2RlbC55ZXNBY3Rpb25dKTtcclxuICB9XHJcblxyXG4gIHJlamVjdCgpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5yZXR1cm5Nb2RlbC5ub0FjdGlvbiAmJlxyXG4gICAgICB0aGlzLnJldHVybk1vZGVsLm5vQWN0aW9uLnN1YnN0cmluZygwLCA0KSAhPSAnL2NwLydcclxuICAgICkge1xyXG4gICAgICB0aGlzLm5hdkNvbnRyb2xsZXIubmF2aWdhdGVSb290KFt0aGlzLnJldHVybk1vZGVsLm5vQWN0aW9uXSk7XHJcbiAgICAgIHRoaXMuZGlzcGxheVBvc2l0aW9uID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB3aW5kb3cub3Blbihsb2NhdGlvbi5vcmlnaW4gKyB0aGlzLnJldHVybk1vZGVsLm5vQWN0aW9uLCAnX3NlbGYnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENvbnRleHRSb290KCkge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zdWJzdHJpbmcoXHJcbiAgICAgIDAsXHJcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCcvJywgMilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRGaWxlKGV2OiBhbnkpIHt9XHJcblxyXG4gIGdldFRyYW5zbGF0aW9uKGtleTogc3RyaW5nLCBkeW5hbWljUGFyYW06IGFueSkge1xyXG4gICAgaWYgKCFkeW5hbWljUGFyYW0pIHtcclxuICAgICAgcmV0dXJuIGtleTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZHluYW1pY09iaiA9IHt9O1xyXG5cclxuICAgIGxldCBwYXJhbTogS2V5VmFsdWVNb2RlbDtcclxuICAgIGxldCBwYXJhbXM6IEtleVZhbHVlTW9kZWxbXTtcclxuXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkeW5hbWljUGFyYW0pKSB7XHJcbiAgICAgIHBhcmFtcyA9IGR5bmFtaWNQYXJhbTtcclxuICAgICAgcGFyYW1zLmZvckVhY2goKHBybSkgPT4ge1xyXG4gICAgICAgIGR5bmFtaWNPYmpbcHJtLmtleV0gPSBwcm0udmFsdWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcGFyYW0gPSBkeW5hbWljUGFyYW07XHJcbiAgICAgIGR5bmFtaWNPYmpbcGFyYW0ua2V5XSA9IHBhcmFtLnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlLnVzZSgnZW4nKTtcclxuICAgIGxldCB0cmFuc2xhdGVkU3RyaW5nOiBTdHJpbmcgPSAnJztcclxuICAgIHRoaXMudHJhbnNsYXRlLnNldChrZXksIGtleSk7XHJcbiAgICB0cmFuc2xhdGVkU3RyaW5nID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChrZXksIE9iamVjdC5hc3NpZ24oZHluYW1pY09iaikpO1xyXG4gICAgcmV0dXJuIHRyYW5zbGF0ZWRTdHJpbmc7XHJcbiAgfVxyXG5cclxuICBnZXRUZXh0KG9iamVjdCkge1xyXG4gICAgcmV0dXJuIG9iamVjdD8udGV4dCA/IG9iamVjdD8udGV4dCA6IG9iamVjdDtcclxuICB9XHJcblxyXG4gIHVubWFzayhldmVudCkge1xyXG4gICAgdGhpcy5tYXNrQ2xhc3MgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG1hc2soZXZlbnQpIHtcclxuICAgIHRoaXMubWFza0NsYXNzID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGRhdGVJbnB1dChldmVudCkge1xyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZTogc3RyaW5nID0gZXZlbnQuc3JjRWxlbWVudC52YWx1ZTtcclxuICAgIGlmIChjdXJyZW50VmFsdWUpIHtcclxuICAgICAgaWYgKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gMiAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDIpICE9ICcvJykge1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArICcvJztcclxuICAgICAgfVxyXG4gICAgICBpZiAoY3VycmVudFZhbHVlLmxlbmd0aCA9PSA1ICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoNSkgIT0gJy8nKSB7XHJcbiAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgJy8nO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0ZvclZhbHVlQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKSB7XHJcbiAgICAgIGxldCBjb21wRGF0YTogVmFsdWVDaGFuZ2VDb21wb25lbnRNb2RlbCA9IEpTT04ucGFyc2UoXHJcbiAgICAgICAgdGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhXHJcbiAgICAgICk7XHJcbiAgICAgIGxldCBjdXJyZW50VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICAgIGxldCBvcmlnaW5hbFZhbHVlID0gdGhpcy5mb3JtLmdldChjb21wRGF0YS5vcmlnaW5hbFZhbHVlQ29udHJvbCk/LnZhbHVlO1xyXG4gICAgICBsZXQgZm9ybUNvbnRyb2xUb1VwZGF0ZTogQWJzdHJhY3RDb250cm9sID0gdGhpcy5mb3JtLmdldChcclxuICAgICAgICBjb21wRGF0YS5mb3JtQ29udHJvbFRvVXBkYXRlXHJcbiAgICAgICk7XHJcbiAgICAgIGZvcm1Db250cm9sVG9VcGRhdGUucGF0Y2hWYWx1ZSgnTicpO1xyXG4gICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5mb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5keW5hbWljUGFyYW0gPSB0aGlzLmR5bmFtaWNQYXJhbSA/IHRoaXMuZHluYW1pY1BhcmFtIDogW107XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZHluYW1pY1BhcmFtKSkge1xyXG4gICAgICAgIHRoaXMuZHluYW1pY1BhcmFtLnB1c2goe1xyXG4gICAgICAgICAga2V5OiB0aGlzLnF1ZXN0aW9uLm5hbWUsXHJcbiAgICAgICAgICB2YWx1ZTogY3VycmVudFZhbHVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZHluYW1pY1BhcmFtW3RoaXMucXVlc3Rpb24ubmFtZV0gPSBjdXJyZW50VmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGN1cnJlbnRWYWx1ZSAhPSBvcmlnaW5hbFZhbHVlKSB7XHJcbiAgICAgICAgZm9ybUNvbnRyb2xUb1VwZGF0ZS5wYXRjaFZhbHVlKCdZJyk7XHJcbiAgICAgICAgdGhpcy5vbkR5bmFtaWNQYXJhbVVwZGF0ZS5lbWl0KHRoaXMuZHluYW1pY1BhcmFtKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnBhdGNoVmFsdWUoJ04nKTtcclxuICAgICAgfVxyXG4gICAgICBmb3JtQ29udHJvbFRvVXBkYXRlLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCkge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YSkge1xyXG4gICAgICBsZXQgY29tcERhdGE6IEVtcGxveWVyQWRkcmVzc1VwZGF0ZU1vZGVsID0gSlNPTi5wYXJzZShcclxuICAgICAgICB0aGlzLnF1ZXN0aW9uLmNvbXBvbmVudERhdGFcclxuICAgICAgKTtcclxuICAgICAgbGV0IGFkZHJlc3NGYzogQWJzdHJhY3RDb250cm9sID0gdGhpcy5mb3JtLmdldChcclxuICAgICAgICBjb21wRGF0YS5hZGRyZXNzRm9ybUNvbnRyb2xOYW1lXHJcbiAgICAgICk7XHJcbiAgICAgIGxldCBlbXBJZEZjOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KFxyXG4gICAgICAgIGNvbXBEYXRhLmVtcGxveWVySWRGb3JtQ29udHJvbE5hbWVcclxuICAgICAgKTtcclxuICAgICAgZW1wSWRGYy5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llcklkID8gZW1wbG95ZXIuZW1wbG95ZXJJZCA6ICctMScpO1xyXG4gICAgICBhZGRyZXNzRmMuc2V0VmFsdWUoe1xyXG4gICAgICAgIGNvdW50cnk6IGVtcGxveWVyLmNvdW50cnksXHJcbiAgICAgICAgY2l0eTogZW1wbG95ZXIuY2l0eSxcclxuICAgICAgICB6aXA6IGVtcGxveWVyLnppcCxcclxuICAgICAgICBzdHJlZXRBZGRyZXNzOiBlbXBsb3llci5hZGRyZXNzRGlzcGxheVZhbCxcclxuICAgICAgICBzdGF0ZTogZW1wbG95ZXIuc3RhdGUsXHJcbiAgICAgICAgb3B0aW9uYWxBZGRyZXNzOiBudWxsLFxyXG4gICAgICAgIGNvdW50eTogbnVsbCxcclxuICAgICAgICB0b3duOiBudWxsLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0RW1wbG95ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5xdWVzdGlvbi5jb21wb25lbnREYXRhKSB7XHJcbiAgICAgIGxldCBjb21wRGF0YTogRW1wbG95ZXJBZGRyZXNzVXBkYXRlTW9kZWwgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgIHRoaXMucXVlc3Rpb24uY29tcG9uZW50RGF0YVxyXG4gICAgICApO1xyXG4gICAgICBsZXQgYWRkcmVzc0ZjOiBBYnN0cmFjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KFxyXG4gICAgICAgIGNvbXBEYXRhLmFkZHJlc3NGb3JtQ29udHJvbE5hbWVcclxuICAgICAgKTtcclxuICAgICAgbGV0IGVtcElkRmM6IEFic3RyYWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoXHJcbiAgICAgICAgY29tcERhdGEuZW1wbG95ZXJJZEZvcm1Db250cm9sTmFtZVxyXG4gICAgICApO1xyXG4gICAgICBlbXBJZEZjLnNldFZhbHVlKCctMScpO1xyXG4gICAgICBhZGRyZXNzRmMuc2V0VmFsdWUoe1xyXG4gICAgICAgIGNvdW50cnk6IG51bGwsXHJcbiAgICAgICAgY2l0eTogbnVsbCxcclxuICAgICAgICB6aXA6IG51bGwsXHJcbiAgICAgICAgc3RyZWV0QWRkcmVzczogbnVsbCxcclxuICAgICAgICBzdGF0ZTogbnVsbCxcclxuICAgICAgICBvcHRpb25hbEFkZHJlc3M6IG51bGwsXHJcbiAgICAgICAgY291bnR5OiBudWxsLFxyXG4gICAgICAgIHRvd246IG51bGwsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Rm9ybUNvbnRyb2xWYWx1ZShlbGVtZW50TmFtZSwgZWxlbWVudFZhbHVlKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtLmNvbnRyb2xzW2VsZW1lbnROYW1lXSkge1xyXG4gICAgICB0aGlzLmZvcm0uY29udHJvbHNbZWxlbWVudE5hbWVdLnBhdGNoVmFsdWUoZWxlbWVudFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERlZmF1bHRWYWx1ZSgpIHtcclxuICAgIGlmICh0aGlzLnF1ZXN0aW9uLmRlZmF1bHRWYWx1ZSkge1xyXG4gICAgICBsZXQgdmFsdWUgPSB0aGlzLnF1ZXN0aW9uLmRlZmF1bHRWYWx1ZTtcclxuICAgICAgaWYgKHRoaXMucXVlc3Rpb24udHlwZSA9PSAnZHJvcGRvd24nKSB7XHJcbiAgICAgICAgY29uc3QgY2hvaWNlOiBzdHJpbmcgPSB0aGlzLnF1ZXN0aW9uLmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICB2YXIganNvbk9iamVjdDogQ2hvaWNlcyA9IEpTT04ucGFyc2UoY2hvaWNlKTtcclxuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUoXHJcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLm5hbWUsXHJcbiAgICAgICAgICB0aGlzLnF1ZXN0aW9uLmNob2ljZXMuZmlsdGVyKChjKSA9PiBjLnZhbHVlID09IGpzb25PYmplY3QudmFsdWUpWzBdXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUodGhpcy5xdWVzdGlvbi5uYW1lLCB2YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vZGlmeUNhbGVuZGFyQXR0cmlidXRlcygpIHtcclxuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMucENhbGVuZGFyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcclxuICAgICAgJ3AtY2FsZW5kYXIgW2FyaWEtY29udHJvbHNdJ1xyXG4gICAgKTtcclxuICAgIGlucHV0RWxlbWVudC5mb3JFYWNoKChlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KSA9PiB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICdhcmlhLWNvbnRyb2xzJywgdGhpcy5xdWVzdGlvbi5uYW1lKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2FyaWEtZXhwYW5kZWQnLCAnZmFsc2UnKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIFtpZF09XCIncXVlc3Rpb24tZGl2LScgKyBxdWVzdGlvbi5uYW1lXCI+XHJcbiAgPHAtZGlhbG9nICpuZ0lmPVwiZGlzcGxheVBvc2l0aW9uXCIgWyh2aXNpYmxlKV09XCJkaXNwbGF5UG9zaXRpb25cIiBbcG9zaXRpb25dPVwicG9zaXRpb25cIlxyXG4gICAgW21vZGFsXT1cInRydWVcIiBbYnJlYWtwb2ludHNdPVwieycxMjAwcHgnOiAnNjYwcHgnLCAnOTkycHgnOiAnNjYwcHgnLCAnNzY4cHgnOiAnNjYwcHgnLCAnNTc2cHgnOiAnMTAwdncnfVwiIFtzdHlsZV09XCJ7d2lkdGg6ICc0NXZ3J31cIlxyXG4gICAgW2Jhc2VaSW5kZXhdPVwiNTAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCIgYXBwZW5kVG89XCJib2R5XCIgY2xvc2VPbkVzY2FwZT1cImZhbHNlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG5cclxuICAgIDxoNCBjbGFzcz1cImhlYWRpbmcgaW9uLXBhZGRpbmctbGVmdFwiPlxyXG4gICAgICB7e3BvcFVwSGVhZGVyfX1cclxuICAgIDwvaDQ+XHJcbiAgICA8cD57e3BvcFVwVGV4dH19XHJcbiAgICA8L3A+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiAqbmdJZj1cInBvcFVwTm9BY3Rpb25MYWJlbFwiIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJyZWplY3QoKVwiPlxyXG4gICAgICAgIHt7cG9wVXBOb0FjdGlvbkxhYmVsfX1cclxuICAgICAgPC9pb24tYnV0dG9uPlxyXG5cclxuICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiICpuZ0lmPVwicG9wVXBZZXNBY3Rpb25MYWJlbFwiIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJzdWJtaXRcIiBmaWxsPVwic29saWRcIiAoY2xpY2spPVwiYWNjZXB0KClcIj5cclxuICAgICAgICB7e3BvcFVwWWVzQWN0aW9uTGFiZWx9fVxyXG4gICAgICA8L2lvbi1idXR0b24+XHJcblxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3AtZGlhbG9nPlxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiICpuZ0lmPVwiIWZvclNjcmVlblF1ZXN0aW9ubmFpcmVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5cclxuICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uaW5kZW50PT09MSAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgcXVlc3Rpb24udHlwZSE9J2hpZGRlbicgJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsJ1wiPlxyXG4gICAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgKm5nSWY9XCJmb3JTY3JlZW5RdWVzdGlvbm5haXJlICYmIHF1ZXN0aW9uLmluZGVudD09PTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdoaWRkZW4nICYmIHF1ZXN0aW9uLmRlc2NyaXB0aW9uICYmIHF1ZXN0aW9uLnR5cGUhPSdzaW1wbGVjaGVja2JveCcgJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsJyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwtd2l0aC1vdmVybGF5J1wiPlxyXG4gICAgPGxhYmVsIFthdHRyLmZvcl09XCJxdWVzdGlvbi5uYW1lXCI+XHJcbiAgICA8c3BhbiBbaW5uZXJIdG1sXT1cInF1ZXN0aW9uLnRpdGxlIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW0gfCB0cnVzdEh0bWxcIj48L3NwYW4+XHJcbiAgPC9sYWJlbD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCJcclxuICAgICpuZ0lmPVwiZm9yU2NyZWVuUXVlc3Rpb25uYWlyZSAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgKHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2NvbXBvbmVudCcgfHwgKHF1ZXN0aW9uLmN1c3RvbVRhZz09J2NvbXBvbmVudCcgJiYgc2hvd0xhYmVsRm9yQ3VzdG9tQ29tcG9uZW50KCkpKSAmJiBxdWVzdGlvbi5pbmRlbnQ9PT0xICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiBxdWVzdGlvbi50eXBlIT0naGlkZGVuJyAmJiAhcXVlc3Rpb24uZGVzY3JpcHRpb24gJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsJyAmJiBxdWVzdGlvbi50eXBlIT0nc2ltcGxlY2hlY2tib3gnXCI+XHJcbiAgICA8bGFiZWwgW2F0dHIuZm9yXT1cInF1ZXN0aW9uLm5hbWVcIj5cclxuICAgIDxzcGFuIFtpbm5lckh0bWxdPVwicXVlc3Rpb24udGl0bGUgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB8IHRydXN0SHRtbFwiPjwvc3Bhbj5cclxuICA8L2xhYmVsPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiBjbGFzcz1cImZvcm0tbGFiZWxcIlxyXG4gICAgKm5nSWY9XCJmb3JTY3JlZW5RdWVzdGlvbm5haXJlICYmICFxdWVzdGlvbi5jdXN0b21UYWcgICYmIHF1ZXN0aW9uLmluZGVudD09PTEgJiYgcXVlc3Rpb24udHlwZSE9J2h0bWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdoaWRkZW4nICYmICFxdWVzdGlvbi5kZXNjcmlwdGlvbiAmJiBxdWVzdGlvbi50eXBlIT0nc2ltcGxlY2hlY2tib3gnICYmIHF1ZXN0aW9uLnR5cGUhPSdsYWJlbCcgJiYgcXVlc3Rpb24udHlwZSE9J2xhYmVsLXdpdGgtb3ZlcmxheSdcIj5cclxuICAgIDxsYWJlbCBbYXR0ci5mb3JdPVwicXVlc3Rpb24ubmFtZVwiPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCJxdWVzdGlvbi50aXRsZSB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcblxyXG5cclxuXHJcbiAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWc9PT0nY29tcG9uZW50JyAmJiBxdWVzdGlvbi50eXBlIT0naHRtbCcgJiYgIXF1ZXN0aW9uLmRlc2NyaXB0aW9uXCI+XHJcbiAgICA8YXBwLWVtcGxveWVyLWdyaWQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2Zvcm1dPVwiZm9ybVwiIFtkeW5hbWljUGFyYW1dPVwiZHluYW1pY1BhcmFtXCJcclxuICAgICAgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1lbXBsb3llci1ncmlkJ1wiIChtb2RlbERpc3BsYXkpPVwib25Nb2RlbERpc3BsYXkoJGV2ZW50KVwiPjwvYXBwLWVtcGxveWVyLWdyaWQ+XHJcbiAgICA8YXBwLWxlZ2FsLWRpc2NsYWltYXIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1sZWdhbC1kaXNjbGFpbWFyJ1wiXHJcbiAgICAgIFtjb21wb25lbnREYXRhXT1cInF1ZXN0aW9uLmNvbXBvbmVudERhdGFcIiAoYWNjZXB0ZWQpPVwib25BY2NlcHRlZCgkZXZlbnQpXCIgW3F1ZXN0aW9uXT1cInF1ZXN0aW9uXCIgW2Zvcm1dPVwiZm9ybVwiPlxyXG4gICAgPC9hcHAtbGVnYWwtZGlzY2xhaW1hcj5cclxuICAgIDxtb25leS1leHBlY3QgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J21vbmV5LWV4cGVjdCdcIj48L21vbmV5LWV4cGVjdD5cclxuICAgIDxhcHAtY2FwdGNoYSBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLmNvbXBvbmVudE5hbWU9PT0nYXBwLWNhcHRjaGEnXCI+PC9hcHAtY2FwdGNoYT5cclxuXHJcbiAgICA8YXBwLWZpbGUtdXBsb2FkZXIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1maWxlLXVwbG9hZGVyJ1wiPlxyXG4gICAgPC9hcHAtZmlsZS11cGxvYWRlcj5cclxuICAgIDxhcHAtYWRkcmVzcyBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbZnJvbVBvcHVwXT1cImZhbHNlXCIgW2NvdW50eVJlcXVpcmVkXT1cInF1ZXN0aW9uLmNvdW50eVJlcXVpcmVkXCJcclxuICAgICAgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1hZGRyZXNzJ1wiICNhZGRyZXNzIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIj4gPC9hcHAtYWRkcmVzcz5cclxuICAgIDxhcHAtYmFuay1kZXRhaWxzIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtYmFuay1kZXRhaWxzJ1wiICNiYW5rZHRscz5cclxuICAgIDwvYXBwLWJhbmstZGV0YWlscz5cclxuICAgIDxhcHAtcmVxdWFsaWZ5LWxpZnQtcHJldmlvdXMtaXNzdWVzICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtcmVxdWFsaWZ5LWxpZnQtcHJldmlvdXMtaXNzdWVzJ1wiXHJcbiAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbY29tcG9uZW50RGF0YV09XCJxdWVzdGlvbi5jb21wb25lbnREYXRhXCIgW2Zvcm1dPVwiZm9ybVwiID5cclxuICAgIDwvYXBwLXJlcXVhbGlmeS1saWZ0LXByZXZpb3VzLWlzc3Vlcz4gXHJcbiAgICA8YXBwLWRlcGVuZGVudC1ncmlkIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtZGVwZW5kZW50LWdyaWQnXCI+PC9hcHAtZGVwZW5kZW50LWdyaWQ+XHJcbiAgICA8YXBwLXdlZWtseS1jZXJ0LWVtcGxveWVyLWdyaWQgI3djRW1wbG95ZXJHcmlkIFtkeW5hbWljUGFyYW1dPVwiZHluYW1pY1BhcmFtXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC13ZWVrbHktY2VydC1lbXBsb3llci1ncmlkJ1wiPjwvYXBwLXdlZWtseS1jZXJ0LWVtcGxveWVyLWdyaWQ+XHJcbiAgICA8YXBwLXNlYXJjaC1lbXBsb3llciBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBlbXBUeXBlPVwiUkVHXCIgKG9uRm91bmQpPVwic2V0RW1wbG95ZXIoJGV2ZW50KVwiIFxyXG4gICAgKG9uRW1wdHkpPVwicmVzZXRFbXBsb3llcigpXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1zZWFyY2gtZW1wbG95ZXInXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVyPlxyXG4gICAgPGFwcC1hZGQtcGFydGljaXBhbnQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1hZGQtcGFydGljaXBhbnQnXCI+IDwvYXBwLWFkZC1wYXJ0aWNpcGFudD5cclxuICAgIDxhcHAtYWRkLXBheW1lbnQgW3BvdGVudGlhbElzc3VlSWRdPVwicG90ZW50aWFsSXNzdWVJZFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtYWRkLXBheW1lbnQnXCI+PC9hcHAtYWRkLXBheW1lbnQ+XHJcbiAgICA8YXBwLWxpbmsgW2lzUmVxdWlyZWRdPVwicXVlc3Rpb24uaXNSZXF1aXJlZFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtbGluaydcIiBbdGV4dF09XCJsaW5rQ29tcG9uZW50RGF0YT8udGV4dFwiIFt1cmldPVwibGlua0NvbXBvbmVudERhdGE/LnVyaVwiIFtleHRlcm5hbFVybF09XCJsaW5rQ29tcG9uZW50RGF0YT8uZXh0ZXJuYWxVcmxcIj48L2FwcC1saW5rPlxyXG4gICAgPGFwcC1zaWduLXNzbiBbaXNSZXF1aXJlZF09XCJxdWVzdGlvbi5pc1JlcXVpcmVkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCJxdWVzdGlvbi5jb21wb25lbnROYW1lPT09J2FwcC1zaWduLXNzbidcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCI+PC9hcHAtc2lnbi1zc24+XHJcbiAgICA8YXBwLWpvYi10aXRsZSBbY29udHJvbF09XCJmb3JtLmNvbnRyb2xzW3F1ZXN0aW9uLm5hbWVdXCIgICpuZ0lmPVwicXVlc3Rpb24uY29tcG9uZW50TmFtZT09PSdhcHAtam9iLXRpdGxlJ1wiICNqb2JUaXRsZT4gPC9hcHAtam9iLXRpdGxlPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uaW5kZW50IT0xICYmIHF1ZXN0aW9uLnR5cGUhPSdodG1sJyAmJiBxdWVzdGlvbi50eXBlIT0nbGFiZWwnICYmIHF1ZXN0aW9uLnR5cGUhPSdoaWRkZW4nXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgPHNwYW4gW2lubmVySHRtbF09XCJxdWVzdGlvbi50aXRsZSB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24udHlwZT09PSdodG1sJ1wiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgIDxkaXYgIFtpbm5lckhUTUxdPVwicXVlc3Rpb24uaHRtbCB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtIHwgdHJ1c3RIdG1sXCJcclxuICAgICAgc3R5bGU9XCJjb2xvcjp2YXIoLS1pb24tY29sb3ItbWVkaXVtLWdyYXkpOyBwYWRkaW5nLXRvcDogMjBweDtcIiBjbGFzcz1cImhlYWRpbmdcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6MTNweFwiPlxyXG4gICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIFxyXG4gIDxkaXYgW25nU3dpdGNoXT1cInF1ZXN0aW9uLnR5cGVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J2RhdGUnICYmIHF1ZXN0aW9uLm5hbWUgJiYgcXVlc3Rpb24ubmFtZSE9J2RvYidcIj5cclxuICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiICNwQ2FsZW5kYXI+XHJcbiAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbbW9udGhOYXZpZ2F0b3JdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIHllYXJSYW5nZT1cIjE5MDE6MjA5OVwiIFtzaG93SWNvbl09XCJ0cnVlXCIgW21pbkRhdGVdPVwic2hvd01pbkRhdGUgPyBtaW5EYXRlIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgW21heERhdGVdPVwic2hvd01heERhdGUgPyBtYXhEYXRlIDogbnVsbFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIGFwcGVuZFRvPVwiYm9keVwiIGRhdGFUeXBlPVwic3RyaW5nXCJcclxuICAgICAgICAgICAgICAob25CbHVyKT1cInZhbGlkYXRlKHF1ZXN0aW9uKVwiIChvblNlbGVjdCk9XCJ2YWxpZGF0ZShxdWVzdGlvbilcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiBcclxuICAgICAgICAgICAgICAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiIFtpY29uQXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+XHJcbiAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSdkYXRlJyAmJiBxdWVzdGlvbi5uYW1lICYmIHF1ZXN0aW9uLm5hbWU9PT0nZG9iJ1wiPlxyXG4gICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgI3BDYWxlbmRhcj5cclxuICAgICAgICAgICAgPHAtY2FsZW5kYXIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFttb250aE5hdmlnYXRvcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgW3Nob3dJY29uXT1cInRydWVcIiBbbWluRGF0ZV09XCJtaW5EYXRlRE9CXCJcclxuICAgICAgICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlRE9CXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgYXBwZW5kVG89XCJib2R5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIlxyXG4gICAgICAgICAgICAgIChvbkJsdXIpPVwidmFsaWRhdGUocXVlc3Rpb24pXCIgKG9uU2VsZWN0KT1cInZhbGlkYXRlKHF1ZXN0aW9uKVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCIgW2ljb25BcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiAob25DbG9zZSk9XCJjaGVja0lmVXNlckV4aXN0KClcIj5cclxuICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnPT09J3NzbidcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXRNYXNrIGF1dG9jb21wbGV0ZT1cIm9mZlwiICBbY2xhc3MuaGlkZS1jb250ZW50XT1cIm1hc2tDbGFzc1wiIG1hc2s9XCI5OTktOTktOTk5OVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjk5OS05OS05OTk5XCIgKG9uQ29tcGxldGUpPVwidmFsaWRhdGUocXVlc3Rpb24pXCIgKG9uRm9jdXMpPVwidW5tYXNrKCRldmVudClcIiAob25CbHVyKT1cIm1hc2soJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgIDwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiBxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnPT09J2VhbidcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXRNYXNrIGF1dG9jb21wbGV0ZT1cIm9mZlwiICBtYXNrPVwiOTktOTk5OTktOS05OVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjk5LTk5OTk5LTktOTlcIiBbdmFsdWVdPVwiODEtMDA1ODYtMC0wMVwiIChvbkNvbXBsZXRlKT1cInZhbGlkYXRlKHF1ZXN0aW9uKVwiPlxyXG4gICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWc9PT0nZHVlYW10J1wiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8cC1pbnB1dE51bWJlciBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgbW9kZT1cImRlY2ltYWxcIiBsb2NhbGU9XCJlbi1VU1wiXHJcbiAgICAgICAgICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCIgW2FyaWFMYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgKCFxdWVzdGlvbi5jdXN0b21UYWcgIHx8ICBxdWVzdGlvbi5jdXN0b21UYWc9PT0nT3B0aW9uYWwnKSAmJiAhcXVlc3Rpb24uaXNSZXF1aXJlZFwiXHJcbiAgICAgICAgICBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgcXVlc3Rpb24ubWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiBwbGFjZWhvbGRlcj1cIk9wdGlvbmFsXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgIXF1ZXN0aW9uLm1heExlbmd0aFwiICBwbGFjZWhvbGRlcj1cIk9wdGlvbmFsXCJcclxuICAgICAgICAgICAgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJPcHRpb25hbFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIHBsYWNlaG9sZGVyPVwiT3B0aW9uYWxcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tVXNlciBOYW1lLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCcgJiYgIXF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5pc1JlcXVpcmVkICAmJiAhY2hlY2tGbG93S2V5KClcIlxyXG4gICAgICAgICAgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiIFxyXG4gICAgICAgICAgICBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgIXF1ZXN0aW9uLm1heExlbmd0aFwiICBbaWRdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICAgIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cIiFxdWVzdGlvbi5zaXplICYmIHF1ZXN0aW9uLm1heExlbmd0aFwiIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCJcclxuICAgICAgICAgICAgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0XHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0JyAmJiAhcXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmlzUmVxdWlyZWQgJiYgY2hlY2tGbG93S2V5KClcIlxyXG4gICAgICAgIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemUgJiYgcXVlc3Rpb24ubWF4TGVuZ3RoXCIgXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW2Rpc2FibGVkXT1cIiFwaG9uZVZlcmlmaWVkXCIgW2F1dG9jb21wbGV0ZV09XCJxdWVzdGlvbj8ubmFtZS5pbmNsdWRlcygnc2VjQW5zJyk/J29mZic6ICdvbidcIi8+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCJxdWVzdGlvbi5zaXplICYmICFxdWVzdGlvbi5tYXhMZW5ndGhcIiAgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW2Rpc2FibGVkXT1cIiFwaG9uZVZlcmlmaWVkXCIvPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiICpuZ0lmPVwiIXF1ZXN0aW9uLnNpemUgJiYgcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIlxyXG4gICAgICAgICAgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbZGlzYWJsZWRdPVwiIXBob25lVmVyaWZpZWRcIi8+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZSAmJiAhcXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiAgcElucHV0VGV4dFxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbZGlzYWJsZWRdPVwiIXBob25lVmVyaWZpZWRcIi8+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBcclxuICAgICAgICAgICpuZ0lmPVwicXVlc3Rpb24uaW5wdXRUeXBlICAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCdcclxuICAgICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ2ZpcnN0TmFtZScpICYmIGNoZWNrRmxvd0tleSgpIFwiPlxyXG4gICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgXHJcbiAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1xyXG4gICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ2xhc3ROYW1lJykgJiYgY2hlY2tGbG93S2V5KCkgXCI+XHJcbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiICBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFxdWVzdGlvbi5pbnB1dFR5cGUgJiYgcXVlc3Rpb24uY3VzdG9tVGFnICYmICAhcXVlc3Rpb24uY3VzdG9tVGFnLmluY2x1ZGVzKCdwaG9uZScpXCJcclxuICAgICAgICAgIFtuZ1N0eWxlXT1cInsncGFkZGluZy1sZWZ0LnB4JzogcXVlc3Rpb24uaW5kZW50KjEwfVwiIFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJxdWVzdGlvbi5jdXN0b21UYWcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnLmluY2x1ZGVzKCdwaG9uZScpICAmJiAhY2hlY2tGbG93S2V5KClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TWFzayBhdXRvY29tcGxldGU9XCJvZmZcIiAgbWFzaz1cIjk5OS05OTktOTk5OVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWQgPyAnOTk5LTk5OS05OTk5JyA6ICdPcHRpb25hbCdcIlxyXG4gICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCdcIiAob25CbHVyKT1cImNoZWNrRm9yVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgIDwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bob25lJykgJiYgY2hlY2tGbG93S2V5KClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TWFzayBhdXRvY29tcGxldGU9XCJvZmZcIiAgbWFzaz1cIjk5OSA5OTktOTk5OVwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLmlzUmVxdWlyZWQgPyAnOTk5IDk5OS05OTk5JyA6ICdPcHRpb25hbCdcIlxyXG4gICAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAmJiBxdWVzdGlvbi5pbnB1dFR5cGU9PT0ndGV4dCdcIiAob25CbHVyKT1cImNoZWNrRm9yVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgIDwvcC1pbnB1dE1hc2s+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmN1c3RvbVRhZyAmJiBxdWVzdGlvbi5jdXN0b21UYWcuaW5jbHVkZXMoJ3Bhc3N3b3JkJylcIj5cclxuICAgICAgICAgIDxwLXBhc3N3b3JkIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbdG9nZ2xlTWFza109XCJ0cnVlXCIgW21heExlbmd0aF09XCJxdWVzdGlvbi5tYXhMZW5ndGhcIiB3ZWFrTGFiZWw9XCJXZWFrIHBhc3N3b3JkXCIgXHJcbiAgICAgICAgICBtZWRpdW1MYWJlbD1cIldlYWsgcGFzc3dvcmRcIiBzdHJvbmdMYWJlbD1cIlN0cm9uZyBwYXNzd29yZFwiIHN0cm9uZ1JlZ2V4PVwiXig/PS4qW2Etel0pKD89LipbQS1aXSkoPz0uKlswLTldKSg/PS57OCx9KSg/PS4qW19AKiQhIy5dKVwiIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgICAgICAgPHAtZGl2aWRlcj48L3AtZGl2aWRlcj5cclxuICAgICAgICAgICAgICA8cCBjbGFzcz1cIm10LTFcIiBzdHlsZT1cImZvbnQtc2l6ZTogc21hbGw7XCI+UGFzc3dvcmQgbXVzdCBpbmNsdWRlIGF0IGxlYXN0PC9wPlxyXG4gICAgICAgICAgICAgIDx1bCBzdHlsZT1cImxpbmUtaGVpZ2h0OiAxLjI1XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj4xIHVwcGVyY2FzZSBsZXR0ZXI8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+MSBsb3dlcmNhc2UgbGV0dGVyPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPjEgbnVtYmVyPC9saT5cclxuICAgICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPjEgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzIDxiPl8gJiM2NDsgKiAkICEgIyAuPC9iPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgIDxsaSBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMjVweDsgZm9udC1zaXplOiBzbWFsbDtcIj44IGNoYXJhY3RlcnM8L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgPHAtZGl2aWRlcj48L3AtZGl2aWRlcj5cclxuICAgICAgICAgICAgICA8cCBjbGFzcz1cIm10LTFcIiBzdHlsZT1cImZvbnQtc2l6ZTogc21hbGw7XCI+U3VnZ2VzdGlvbjwvcD5cclxuICAgICAgICAgICAgICA8dWwgc3R5bGU9XCJsaW5lLWhlaWdodDogMS4yNVwiPlxyXG4gICAgICAgICAgICAgICAgPGxpIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0yNXB4OyBmb250LXNpemU6IHNtYWxsO1wiPkRvbid0IHVzZSB5b3VyIG5hbWUsIGVtYWlsIG9yIHBob25lLjwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+RG9uJ3QgdXNlIHlvdXIga2lkLCBwYXJ0bmVyIG9yIHBldCBuYW1lLjwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGkgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTI1cHg7IGZvbnQtc2l6ZTogc21hbGw7XCI+WW91ciBwYXNzd29yZCBjYW5ub3QgY29udGFpbiB5b3VyIG5hbWUgYW5kL29yIHlvdXIgdXNlciBpZC48L2xpPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC9wLXBhc3N3b3JkPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwicXVlc3Rpb24uY3VzdG9tVGFnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZy5pbmNsdWRlcygnZmlsZXVwbG9hZCcpXCI+XHJcbiAgICAgICAgICA8YXBwLWZpbGUtdXBsb2FkZXIgW2FsbG93ZWRGaWxlVHlwZV09XCJxdWVzdGlvbi5hbGxvd2VkRmlsZVR5cGVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIlxyXG4gICAgICAgICAgICBbbWF4U2l6ZUluTUJdPVwicXVlc3Rpb24uc2l6ZUluTUJcIiBbbXVsdGlwbGVdPVwicXVlc3Rpb24ubXVsdGlwbGVcIiBbbm9PZkZpbGVzVG9VcGxvYWRdPVwicXVlc3Rpb24ubm9PRkZpbGVzXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPlxyXG4gICAgICAgICAgPC9hcHAtZmlsZS11cGxvYWRlcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLUVtYWlsIEFkZHJlc3MtLT5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cInF1ZXN0aW9uLmlucHV0VHlwZSAgJiYgcXVlc3Rpb24uaW5wdXRUeXBlPT09J3RleHQnXHJcbiAgICAgICAgICAgICAgICAgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAgJiYgKHF1ZXN0aW9uLmN1c3RvbVRhZyE9J3NzbicgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nT3B0aW9uYWwnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2ZpbGV1cGxvYWQnICBcclxuICAgICAgICAgICAgICAgICAgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0ncGhvbmUnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2ZpcnN0TmFtZScgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nbGFzdE5hbWUnICAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdlYW4nICAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdkdWVhbXQnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J3Bhc3N3b3JkJykgJiYgY2hlY2tGbG93S2V5KClcIj5cclxuICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFtkaXNhYmxlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgKGJsdXIpPVwiY2hlY2tGb3JWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIi8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPGRpdiBcclxuICAgICAgICAgICAgKm5nSWY9XCJxdWVzdGlvbi5pbnB1dFR5cGUgICYmIHF1ZXN0aW9uLmlucHV0VHlwZT09PSd0ZXh0J1xyXG4gICAgICAgICAgICAgICAgICAgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyAgJiYgKHF1ZXN0aW9uLmN1c3RvbVRhZyE9J3NzbicgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0nT3B0aW9uYWwnICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2ZpbGV1cGxvYWQnICBcclxuICAgICAgICAgICAgICAgICAgICAmJiBxdWVzdGlvbi5jdXN0b21UYWchPSdwaG9uZScgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2VhbicgICYmIHF1ZXN0aW9uLmN1c3RvbVRhZyE9J2R1ZWFtdCcgJiYgcXVlc3Rpb24uY3VzdG9tVGFnIT0ncGFzc3dvcmQnKSAmJiAhY2hlY2tGbG93S2V5KClcIj5cclxuICAgICAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiAoYmx1cik9XCJjaGVja0ZvclZhbHVlQ2hhbmdlKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXF1ZXN0aW9uLmlucHV0VHlwZSAmJiAhcXVlc3Rpb24uY3VzdG9tVGFnXCIgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW2lkXT1cInF1ZXN0aW9uLm5hbWVcIiAqbmdJZj1cInF1ZXN0aW9uLnNpemVcIiAgcElucHV0VGV4dFxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgKm5nSWY9XCIhcXVlc3Rpb24uc2l6ZVwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgXHJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDwvaW9uLWNvbD5cclxuICAgIDxpb24tY29sIHNpemU9XCIxXCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy10b3A6IDEycHhcIj5cclxuICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICA8L2lvbi1jb2w+XHJcbiAgPC9pb24tcm93PiAtLT5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjb21tZW50J1wiPlxyXG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIiAqbmdJZj1cInF1ZXN0aW9uLm1heExlbmd0aFwiPlxyXG4gICAgICAgIDx0ZXh0YXJlYSBbaWRdPVwicXVlc3Rpb24ubmFtZVwiIGF1dG9SZXNpemU9XCJ0cnVlXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCJcclxuICAgICAgICAgIFttYXhMZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoXCIgW3Jvd3NdPVwiM1wiIFtjb2xzXT1cIjM1XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICA8ZGl2PlxyXG5cclxuICAgICAgICAgIDxzbWFsbCBzdHlsZUNsYXNzPVwicC1kLWJsb2NrXCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiPnt7cXVlc3Rpb24uZGVzY3JpcHRpb259fTwvc21hbGw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJzZXRTdHlsZShxdWVzdGlvbi5pbmRlbnQpXCIgKm5nSWY9XCIhcXVlc3Rpb24ubWF4TGVuZ3RoXCI+XHJcbiAgICAgICAgPHRleHRhcmVhIFtpZF09XCJxdWVzdGlvbi5uYW1lXCIgYXV0b1Jlc2l6ZT1cInRydWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbcm93c109XCIzXCJcclxuICAgICAgICAgIFtjb2xzXT1cIjM1XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbi5wbGFjZWhvbGRlciA/IHF1ZXN0aW9uLnBsYWNlaG9sZGVyIDogJydcIj48L3RleHRhcmVhPlxyXG4gICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgPHNtYWxsIHN0eWxlQ2xhc3M9XCJwLWQtYmxvY2tcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCI+e3txdWVzdGlvbi5kZXNjcmlwdGlvbn19PC9zbWFsbD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Ryb3Bkb3duJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtYXV0b0NvbXBsZXRlICpuZ0lmPVwiZmFsc2VcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbc3VnZ2VzdGlvbnNdPVwiZmlsdGVyUmVzdWx0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgKGNvbXBsZXRlTWV0aG9kKT1cImZpbHRlclZhbHVlKCRldmVudCxxdWVzdGlvbilcIiBmaWVsZD1cInRleHRcIiBbZHJvcGRvd25dPVwidHJ1ZVwiIG1pbkxlbmd0aD1cIjFcIlxyXG4gICAgICAgICAgICBbZm9yY2VTZWxlY3Rpb25dPVwidHJ1ZVwiIChvblNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQscXVlc3Rpb24ubmFtZSlcIiBbY29tcGxldGVPbkZvY3VzXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YWx1ZSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+e3t2YWx1ZS50ZXh0fX08L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvcC1hdXRvQ29tcGxldGU+XHJcbiAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cImZpbHRlclJlc3VsdFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAob25DaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50LHF1ZXN0aW9uLm5hbWUpXCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiAob25DbGljayk9XCJmaWx0ZXJWYWx1ZSgkZXZlbnQscXVlc3Rpb24pXCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiXHJcbiAgICAgICAgICBbYXJpYUxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvZ3JvdXAnXCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+ICAgICAgICBcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGFyZWQtcm93XCIgKm5nSWY9XCJxdWVzdGlvbi5uYW1lICYmIHF1ZXN0aW9uLm5hbWUhPSd2ZXJpZmljYXRpb24nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicXVlc3Rpb24uY2hvaWNlc1wiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCIgKG9uT3B0aW9uQ2xpY2spPVwib25SYWRpb09wdGlvbkNsaWNrKCRldmVudCxxdWVzdGlvbilcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgPlxyXG4gICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInF1ZXN0aW9uLm5hbWUgJiYgcXVlc3Rpb24ubmFtZT09PSd2ZXJpZmljYXRpb24nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJxdWVzdGlvbi5jaG9pY2VzXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIiAob25PcHRpb25DbGljayk9XCJnZW5lcmF0ZU90cEZvck5ld1VzZXJDcmVhdGlvbigkZXZlbnQsZm9ybSlcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGFwcC1tZmEyICpuZ0lmPVwiaXNPdHBNb2RhbEVuYWJsZWRcIiBbZGlzcGxheV09XCJpc090cE1vZGFsRW5hYmxlZFwiIFtyZXR1cm5pbmdVc2VyXT1cImlzUmV0dXJuaW5nVXNlclwiIFsoZm9ybSldPVwiZm9ybVwiIChzdWNjZXNzKT1cImVuYWJsZUZpZWxkcygpXCI+PC9hcHAtbWZhMj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDhweDsgcGFkZGluZy10b3A6M3B4XCI+XHJcbiAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ251bWJlcidcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGZvcm1Db250cm9sTmFtZT1cInt7cXVlc3Rpb24ubmFtZX19XCIgbW9kZT1cImRlY2ltYWxcIiBbaW5wdXRJZF09XCJxdWVzdGlvbi5uYW1lXCIgW3VzZUdyb3VwaW5nXT1cImZhbHNlXCJcclxuICAgICAgICAgIFttaW5dPVwibWluVmFsdWVcIiBbbWF4XT1cIm1heFZhbHVlXCJcclxuICAgICAgICAgIFtzaXplXT1cInF1ZXN0aW9uLnNpemUgPyBxdWVzdGlvbi5zaXplIDogbnVsbFwiIFttYXhsZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoID8gcXVlc3Rpb24ubWF4TGVuZ3RoIDogbnVsbFwiIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkZWNpbWFsJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgPHAtaW5wdXROdW1iZXIgZm9ybUNvbnRyb2xOYW1lPVwie3txdWVzdGlvbi5uYW1lfX1cIiBtb2RlPVwiZGVjaW1hbFwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWVcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBcclxuICAgICAgICAgIFttaW5GcmFjdGlvbkRpZ2l0c109XCIyXCIgW21heEZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbbWluXT1cIm1pblZhbHVlXCIgXHJcbiAgICAgICAgICBbbWF4XT1cIm1heFZhbHVlXCIgW3NpemVdPVwicXVlc3Rpb24uc2l6ZSA/IHF1ZXN0aW9uLnNpemUgOiBudWxsXCIgIFttYXhsZW5ndGhdPVwicXVlc3Rpb24ubWF4TGVuZ3RoID8gcXVlc3Rpb24ubWF4TGVuZ3RoIDogbnVsbFwiIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInF1ZXN0aW9uLnBsYWNlaG9sZGVyID8gcXVlc3Rpb24ucGxhY2Vob2xkZXIgOiAnJ1wiPjwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiICpuZ0lmPVwicXVlc3Rpb24uZGVzY3JpcHRpb25cIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXRvcDozcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidjdXJyZW5jeSdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLWlucHV0TnVtYmVyIGZvcm1Db250cm9sTmFtZT1cInt7cXVlc3Rpb24ubmFtZX19XCIgbW9kZT1cImN1cnJlbmN5XCIgW2lucHV0SWRdPVwicXVlc3Rpb24ubmFtZVwiIFt1c2VHcm91cGluZ109XCJmYWxzZVwiIFxyXG4gICAgICAgICAgW21pbkZyYWN0aW9uRGlnaXRzXT1cIjJcIiBbbWF4RnJhY3Rpb25EaWdpdHNdPVwiMlwiIGN1cnJlbmN5PVwiVVNEXCIgW21pbl09XCJtaW5WYWx1ZVwiIFxyXG4gICAgICAgICAgW21heF09XCJtYXhWYWx1ZVwiIFtzaXplXT1cInF1ZXN0aW9uLnNpemUgPyBxdWVzdGlvbi5zaXplIDogbnVsbFwiICBbbWF4bGVuZ3RoXT1cInF1ZXN0aW9uLm1heExlbmd0aCA/IHF1ZXN0aW9uLm1heExlbmd0aCA6IG51bGxcIiBcclxuICAgICAgICAgIFthcmlhTGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIiBbcGxhY2Vob2xkZXJdPVwicXVlc3Rpb24ucGxhY2Vob2xkZXIgPyBxdWVzdGlvbi5wbGFjZWhvbGRlciA6ICcnXCI+PC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NoZWNrYm94J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiIGNsYXNzPVwiZm9ybWdyb3VwLWlubGluZVwiPlxyXG4gICAgICAgICAgICA8cC1jaGVja2JveCBbbmFtZV09XCJxdWVzdGlvbi5uYW1lICsgJy1ncm91cCdcIiBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCIgXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cImNob2ljZS50ZXh0XCIgKm5nRm9yPVwibGV0IGNob2ljZSBvZiBxdWVzdGlvbi5jaG9pY2VzXCIgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHNbcXVlc3Rpb24ubmFtZV1cIlxyXG4gICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJhcHAtcC1jaGVja2JveFwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWUgKyAnLScgKyBjaG9pY2UudmFsdWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+PC9wLWNoZWNrYm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtdWx0aWNoZWNrYm94J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiPlxyXG4gICAgICAgICAgICA8cC1jaGVja2JveCBbbmFtZV09XCJxdWVzdGlvbi5uYW1lICsgJy1ncm91cCdcIiBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCIgXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cImNob2ljZS50ZXh0XCIgKm5nRm9yPVwibGV0IGNob2ljZSBvZiBxdWVzdGlvbi5jaG9pY2VzXCIgW2Zvcm1Db250cm9sXT1cImZvcm0uY29udHJvbHNbcXVlc3Rpb24ubmFtZV1cIlxyXG4gICAgICAgICAgICAgIHN0eWxlQ2xhc3M9XCJhcHAtcC1jaGVja2JveFwiIFtpbnB1dElkXT1cInF1ZXN0aW9uLm5hbWUgKyAnLScgKyBjaG9pY2UudmFsdWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCI+PC9wLWNoZWNrYm94PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzaW5nbGVzZWxlY3RjaGVja2JveCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInNldFN0eWxlKHF1ZXN0aW9uLmluZGVudClcIj5cclxuICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicXVlc3Rpb24uY2hvaWNlc1wiIFtmb3JtQ29udHJvbE5hbWVdPVwicXVlc3Rpb24ubmFtZVwiIFttdWx0aXBsZV09ZmFsc2VcclxuICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwicXVlc3Rpb24udGl0bGVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOjNweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzaW1wbGVjaGVja2JveCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cclxuICAgICAgICAgIDxwLWNoZWNrYm94IGJpbmFyeT1cInRydWVcIiBpbnB1dElkPVwiYmluYXJ5XCIgW2Zvcm1Db250cm9sTmFtZV09XCJxdWVzdGlvbi5uYW1lXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJxdWVzdGlvbi50aXRsZVwiPjwvcC1jaGVja2JveD5cclxuICAgICAgICAgIDxsYWJlbCBmb3I9XCJiaW5hcnlcIj57e3F1ZXN0aW9uLnRpdGxlfX08L2xhYmVsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7IHBhZGRpbmctdG9wOiAzcHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGlzcGxheXRleHRhc2xhYmVsJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxsYWJlbD57e2dldFRleHQoZm9ybS5jb250cm9sc1txdWVzdGlvbi5uYW1lXS52YWx1ZSl9fTwvbGFiZWw+XHJcbiAgICAgICAgPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInF1ZXN0aW9uLnRpdGxlXCIvPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJmbGV4LWdyb3c6IDE7XCIgKm5nSWY9XCJxdWVzdGlvbi5kZXNjcmlwdGlvblwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAycHhcIj5cclxuICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJxdWVzdGlvbi5kZXNjcmlwdGlvbiB8IGR5bmFtaWNUcmFuc2xhdGU6ZHluYW1pY1BhcmFtXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGFiZWwnXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XHJcbiAgICAgICAgPGxhYmVsPnt7cXVlc3Rpb24udGl0bGV9fTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cImZsZXgtZ3JvdzogMTtcIiAqbmdJZj1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweFwiPlxyXG4gICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gW292ZXJsYXlUZXh0XT1cInF1ZXN0aW9uLmRlc2NyaXB0aW9uIHwgZHluYW1pY1RyYW5zbGF0ZTpkeW5hbWljUGFyYW1cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGFiZWwtd2l0aC1vdmVybGF5J1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O1wiPlxyXG4gICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtkaXNwbGF5VGV4dF09XCJxdWVzdGlvbi50aXRsZVwiICBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiIFtkaXNwbGF5QXNMYWJlbF09XCJ0cnVlXCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2xhYmVsLXdpdGgtbGluaydcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbZGlzcGxheVRleHRdPVwicXVlc3Rpb24udGl0bGVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbb3ZlcmxheVRleHRdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiIFtsYWJlbFdpdGhMaW5rXT1cInRydWVcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbGFiZWwtd2l0aC1wb3B1cCdcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBbZGlzcGxheVRleHRdPVwicXVlc3Rpb24udGl0bGVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInF1ZXN0aW9uLm5hbWVcIiBbbGFiZWxXaXRoUG9wdXBdPVwicXVlc3Rpb24uZGVzY3JpcHRpb24gfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbVwiIFtsYWJlbFdpdGhMaW5rXT1cInRydWVcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJyZXNwb25zaXZlXCIgKm5nU3dpdGNoQ2FzZT1cIidwYW5lbCdcIj5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBxdWVzdGlvbi5lbGVtZW50c1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sICpuZ0lmPVwiZWxlbWVudC5jb2xFbGVtZW50PT09J0NPTDEnICYmIHZpc2libGVJZihlbGVtZW50LnZpc2libGVJZixlbGVtZW50Lm5hbWUpXCJcclxuICAgICAgICAgICAgICAgIFtzaXplWGxdPVwiZWxlbWVudC5zaXplWExcIiBbc2l6ZUxnXT1cImVsZW1lbnQuc2l6ZUxHXCIgW3NpemVNZF09XCJlbGVtZW50LnNpemVNRFwiXHJcbiAgICAgICAgICAgICAgICBbb2Zmc2V0TWRdPVwiZWxlbWVudC5vZmZTZXRNRFwiIGNsYXNzPVwiY29sLWZpdC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXF1ZXN0aW9uIFtxdWVzdGlvbl09XCJlbGVtZW50XCIgW2Zvcm1dPVwiZm9ybVwiIFtmb3JTY3JlZW5RdWVzdGlvbm5haXJlXT1cImZvclNjcmVlblF1ZXN0aW9ubmFpcmVcIj5cclxuICAgICAgICAgICAgICAgIDwvYXBwLXF1ZXN0aW9uPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgcXVlc3Rpb24uZWxlbWVudHNcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCAqbmdJZj1cImVsZW1lbnQuY29sRWxlbWVudD09PSdDT0wyJyAmJiB2aXNpYmxlSWYoZWxlbWVudC52aXNpYmxlSWYsZWxlbWVudC5uYW1lKVwiXHJcbiAgICAgICAgICAgICAgICBbc2l6ZVhsXT1cImVsZW1lbnQuc2l6ZVhMXCIgW3NpemVMZ109XCJlbGVtZW50LnNpemVMR1wiIFtzaXplTWRdPVwiZWxlbWVudC5zaXplTURcIlxyXG4gICAgICAgICAgICAgICAgW29mZnNldE1kXT1cImVsZW1lbnQub2ZmU2V0TURcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtcXVlc3Rpb24gW3F1ZXN0aW9uXT1cImVsZW1lbnRcIiBbZm9ybV09XCJmb3JtXCIgW2ZvclNjcmVlblF1ZXN0aW9ubmFpcmVdPVwiZm9yU2NyZWVuUXVlc3Rpb25uYWlyZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtcXVlc3Rpb24+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgW25nU3R5bGVdPVwic2V0U3R5bGUocXVlc3Rpb24uaW5kZW50KVwiICpuZ0lmPVwicXVlc3Rpb24udHlwZSE9J3BhbmVsJ1wiPlxyXG4gICAgPHNtYWxsIGNsYXNzPVwicC1lcnJvclwiICpuZ0lmPVwiaXNWYWxpZCE9JydcIiBbQHJvd0V4cGFuc2lvblRyaWdnZXJdPVwiJ2FjdGl2ZSdcIj57e2lzVmFsaWQgfCBkeW5hbWljVHJhbnNsYXRlOmR5bmFtaWNQYXJhbX19PC9zbWFsbD5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|